Subject: Re: linux-next: Tree for Apr 13

From: Jens Axboe <[email-masked]>
Date: Sat, 15 Apr 2023 14:37:04 -0600

Adding David, who did the splice changes. Always a good idea to CC the
person(s) involved.

On 4/14/23 1:25 AM, Ayush Jain wrote:
> Hello,
> 
> On 4/14/2023 10:41 AM, Jain, Ayush wrote:
>> Hello Broonie,
>>
>> When Running fio-test on latest linux-next tree, I noticed that test hung indefinitely, Going back I see that this problem exists since
>> next-20230316 release, After bisecting I landed on the following merge commit by Jens.
>>
>> Commit   097d3ca138f9 ("Merge branch 'for-6.4/splice' into for-next")
>>
>> Running perf I see following trace and call-stack for fio:
>>
>>   Overhead  Command  Shared Object     Symbol
>>     25.08%  fio      [kernel.vmlinux]  [k] copy_user_generic_string
>>        copy_user_generic_string
>>        __do_splice
>>        __x64_sys_splice
>>        do_syscall_64
>>        entry_SYSCALL_64_after_hwframe
>>        splice
>>        0x1c44be0
>>    ...
>>
>> On a good kernel I see the following perf trace:
>>
>>    Overhead  Command  Shared Object     Symbol
>>      49.93%  fio      fio               [.] fio_crc32
>>       7.23%  fio      fio               [.] clock_thread_fn
>>       2.10%  fio      [kernel.vmlinux]  [k] clear_page_rep
>>       1.55%  fio      fio               [.] __fill_random_buf
>>       1.35%  fio      [kernel.vmlinux]  [k] loop_queue_rq
>>       1.05%  fio      [kernel.vmlinux]  [k] copy_user_generic_string
>>       ...
>>
>> I see some splice changes being added as the part of merge
>> https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/log/?h=for-6.4/splice
>>
>> I observe this problem on 3 EPYC system(Zen1,3,4), with the following disk architecture
>>
>> Zen1: nvme0n1   931.5G Samsung SSD 970 EVO Plus 1TB
>> Zen4: nvme0n1   232.9G Samsung SSD 960 EVO 250GB
>>
>> I am running fio as follows:
>>
>>     $fio fio-simple.job --filename=/dev/test_vg/test_lv
>>
>> where test_lv is mounted as follows:
>>
>> NAME                           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
>> loop0                            7:0    0  12.2G  0 loop
>> └─md127                          9:127  0  12.2G  0 raid0
>>     └─test_vg-test_lv            253:3    0   5.5G  0 lvm
>>
>> You can find fio-simple.job at
>> https://github.com/avocado-framework-tests/avocado-misc-tests/blob/master/io/disk/fiotest.py.data/fio-simple.job
>>
>> Fio Version: fio-3.34-25-g07ed
>>
> Also adding to these observations
> 
> -If we create a filesystem on the raw disk -- Test completes with a Pass
> 
> -If there is no Filesystem on the raw disk(loop, nvme) -- Test hangs with the provided trace
> 
>>
>> Regards
>> Ayush Jain
>> > On 4/13/2023 11:55 PM, [email-masked] wrote:
>>> Hi all,
>>>
>>> Changes since 20230411:
>>>
>>> The sh tree gained a conflict with the mm-unstable tree.
>>>
>>> The erofs tree gained a conflict with the vfs-idmapping tree.
>>>
>>> The ext4 tree gained multiple conflicts with the mm-stable tree.
>>>
>>> The net-next tree gained a conflict with the origin tree.
>>>
>>> The bpf-next tree gained a conflict with the net-net tree.
>>>
>>> Non-merge commits (relative to Linus' tree): 10382
>>>   11028 files changed, 580165 insertions(+), 249563 deletions(-)
>>>
>>> ----------------------------------------------------------------------------
>>>
>>> I have created today's linux-next tree at
>>> git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
>>> (patches at http://www.kernel.org/pub/linux/kernel/next/ ).  If you
>>> are tracking the linux-next tree using git, you should not use "git pull"
>>> to do so as that will try to merge the new linux-next release with the
>>> old one.  You should use "git fetch" and checkout or reset to the new
>>> master.
>>>
>>> You can see which trees have been included by looking in the Next/Trees
>>> file in the source.  There is also the merge.log file in the Next
>>> directory.  Between each merge, the tree was built with a ppc64_defconfig
>>> for powerpc, an allmodconfig for x86_64, a multi_v7_defconfig for arm
>>> and a native build of tools/perf. After the final fixups (if any), I do
>>> an x86_64 modules_install followed by builds for x86_64 allnoconfig,
>>> powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig, allyesconfig
>>> and pseries_le_defconfig and i386, arm64, s390, sparc and sparc64
>>> defconfig and htmldocs. And finally, a simple boot test of the powerpc
>>> pseries_le_defconfig kernel in qemu (with and without kvm enabled).
>>>
>>> Below is a summary of the state of the merge.
>>>
>>> I am currently merging 357 trees (counting Linus' and 102 trees of bug
>>> fix patches pending for the current merge release).
>>>
>>> Stats about the size of the tree over time can be seen at
>>> http://neuling.org/linux-next-size.html .
>>>
>>> Status of my local build tests will be at
>>> http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
>>> advice about cross compilers/configs that work, we are always open to add
>>> more builds.
>>>
>>> Thanks to Randy Dunlap for doing many randconfig builds.  And to Paul
>>> Gortmaker for triage and bug fixes.
>>
> 
> Regards,
> Ayush Jain

-- 
Jens Axboe