Greeting,
FYI, we noticed the following commit (built with gcc-9):
commit: c0aaf9b7a114f6b75e0da97be7d99c102347a751 ("btrfs: switch to iomap_dio_rw() for dio")
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master
in testcase: ltp
with following parameters:
disk: 1HDD
fs: btrfs
test: dio-00
ucode: 0x21
test-description: The LTP testsuite contains a collection of tools for testing the Linux kernel and related features.
test-url: http://linux-test-project.github.io/
on test machine: 8 threads Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz with 16G memory
caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):
If you fix the issue, kindly add following tag
Reported-by: kernel test robot <[email protected]>
in attached kmsg.xz for c0aaf9b7a1
user :notice: [ 74.917829] diotest03 0 TINFO : 3 testblocks 100 iterations with 1 children completed
user :notice: [ 74.919689] <<<execution_status>>>
user :notice: [ 74.921486] initiation_status="ok"
user :notice: [ 74.924044] duration=3 termination_type=exited termination_id=0 corefile=no
user :notice: [ 74.925798] cutime=1 cstime=4
user :notice: [ 74.927515] <<<test_end>>>
user :notice: [ 74.929115] <<<test_start>>>
user :notice: [ 74.930985] tag=dio04 stime=1598784407
user :notice: [ 74.932697] cmdline="diotest4" <----- start to stuck after diotest4 starting
user :notice: [ 74.934268] contacts=""
user :notice: [ 74.935860] analysis=exit
user :notice: [ 74.937556] <<<test_output>>>
user :notice: [ 90.977611] IPMI BMC is not supported on this machine, skip bmc-watchdog setup!
user :notice: [ 3690.978134] Sun Aug 30 11:47:43 UTC 2020 detected soft_timeout <----- until soft_timeout (1h) detected by robot
below is from attached parent kmsg-b77407c36a.xz
user :notice: [ 74.876938] diotest03 0 TINFO : 3 testblocks 100 iterations with 1 children completed
user :notice: [ 74.878759] <<<execution_status>>>
user :notice: [ 74.880533] initiation_status="ok"
user :notice: [ 74.883052] duration=3 termination_type=exited termination_id=0 corefile=no
user :notice: [ 74.884734] cutime=1 cstime=2
user :notice: [ 74.886381] <<<test_end>>>
user :notice: [ 74.887971] <<<test_start>>>
user :notice: [ 74.889798] tag=dio04 stime=1598804724
user :notice: [ 74.891494] cmdline="diotest4"
user :notice: [ 74.893005] contacts=""
user :notice: [ 74.894584] analysis=exit
user :notice: [ 74.896235] <<<test_output>>>
user :notice: [ 74.898323] diotest4 1 TPASS : Negative Offset <----- diotest4 start to run ...
user :notice: [ 74.900214] diotest4 2 TPASS : removed
...
user :notice: [ 74.941552] diotest4 0 TINFO : 15 testblocks completed <----- ... and finish quickly
user :notice: [ 74.943551] <<<execution_status>>>
user :notice: [ 74.945461] initiation_status="ok"
user :notice: [ 74.948140] duration=0 termination_type=exited termination_id=0 corefile=no
user :notice: [ 74.950018] cutime=0 cstime=0
user :notice: [ 74.951775] <<<test_end>>>
user :notice: [ 74.953532] <<<test_start>>>
user :notice: [ 74.955426] tag=dio05 stime=1598804724
user :notice: [ 74.957168] cmdline="diotest5"
...
user :notice: [ 388.377363] INFO: ltp-pan reported all tests PASS <----- all ltp test finish within 388s
user :notice: [ 388.378190] LTP Version: 20200515-110-gd2768c84e
user :notice: [ 388.379916] ###############################################################
user :notice: [ 388.380922] Done executing testcases.
user :notice: [ 388.382040] LTP Version: 20200515-110-gd2768c84e
user :notice: [ 388.383625] ###############################################################
except kernel, there is no test env changes between parent and c0aaf9b7a1.
the kconfig used for parent and c0aaf9b7a1 is identical as attached.
To reproduce:
git clone https://github.com/intel/lkp-tests.git
cd lkp-tests
bin/lkp install job.yaml # job file is attached in this email
bin/lkp run job.yaml
Thanks,
Oliver Sang
On Thu, Sep 03, 2020 at 02:28:37PM +0800, kernel test robot wrote:
> Greeting,
>
> FYI, we noticed the following commit (built with gcc-9):
>
> commit: c0aaf9b7a114f6b75e0da97be7d99c102347a751 ("btrfs: switch to iomap_dio_rw() for dio")
> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master
That's probably the O_DIRECT + O_(D)SYNC deadlock that was found
recently. One of the cases in diotest4 does
open(filename, O_DIRECT | O_RDWR | O_SYNC)
Fix is work in progress, thanks for the report.
> -----Original Message-----
> From: David Sterba <[email protected]>
> Sent: Thursday, September 3, 2020 5:11 PM
> To: Sang, Oliver <[email protected]>
> Cc: Goldwyn Rodrigues <[email protected]>; David Sterba
> <[email protected]>; LKML <[email protected]>; [email protected];
> lkp <[email protected]>; [email protected]; [email protected]
> Subject: Re: [btrfs] c0aaf9b7a1: ltp: stuck at diotest4
>
> On Thu, Sep 03, 2020 at 02:28:37PM +0800, kernel test robot wrote:
> > Greeting,
> >
> > FYI, we noticed the following commit (built with gcc-9):
> >
> > commit: c0aaf9b7a114f6b75e0da97be7d99c102347a751 ("btrfs: switch to
> > iomap_dio_rw() for dio")
> > https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git
> > master
>
> That's probably the O_DIRECT + O_(D)SYNC deadlock that was found recently.
> One of the cases in diotest4 does
>
> open(filename, O_DIRECT | O_RDWR | O_SYNC)
>
> Fix is work in progress, thanks for the report.
Thanks a lot for information!