Re: [PATCH] iomap: Set all uptodate bits for an Uptodate page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Sep 27, 2020 at 2:04 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> On Sun, Sep 27, 2020 at 01:31:15PM +0200, Sedat Dilek wrote:
> > > I would suggest that you try applying just the assertion to Linus'
> > > kernel, then try to make it fire.  Then apply the fix and see if you
> > > can still make the assertion fire.
> > >
> > > FWIW, I got it to fire with generic/095 from the xfstests test suite.
> >
> > With...
> >
> > Linux v5.9-rc6+ up to commit a1bf fa48 745a ("Merge tag 'scsi-fixes'
> > of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi")
> > ...and...
> >
> >  xfstests-dev up to commit 75bd80f900ea ("src/t_mmap_dio: do not build
> > if !HAVE_AIO")
> >
> > ...I have seen in my first run of...
> >
> > [ generic/095 ]
> >
> > dileks@iniza:~/src/xfstests-dev/git$ sudo ./check generic/095
> > FSTYP         -- ext4
>
> There's the first problem in your setup; you need to be checking XFS
> to see this problem.  ext4 doesn't use iomap for buffered IO yet.
>
> > PLATFORM      -- Linux/x86_64 iniza 5.9.0-rc6-7-amd64-clang-cfi
> > #7~bullseye+dileks1 SMP 2020-
> > 09-27
> > MKFS_OPTIONS  -- /dev/sdb1
>
> I'm using "-m reflink=1,rmapbt=1 -i sparse=1 -b size=1024"
>

OK, with XFS and your recommended MKFS_OPTIONS I hit it once.

dileks@iniza:~/src/xfstests-dev/git$ sudo ./check generic/095
FSTYP         -- xfs (non-debug)
PLATFORM      -- Linux/x86_64 iniza 5.9.0-rc6-7-amd64-clang-cfi
#7~bullseye+dileks1 SMP 2020-
09-27
MKFS_OPTIONS  -- -f -m reflink=1,rmapbt=1 -i sparse=1 -b size=1024 /dev/sdb1
MOUNT_OPTIONS -- /dev/sdb1 /mnt/scratch

generic/095 19s ... [failed, exit status 1]- output mismatch (see
/home/dileks/src/xfstests-dev/git/results//generic/095.out.bad)
   --- tests/generic/095.out   2020-09-27 12:37:22.094208071 +0200
   +++ /home/dileks/src/xfstests-dev/git/results//generic/095.out.bad
2020-09-27 14:27:53.103222500 +0200
   @@ -1,2 +1,3 @@
    QA output created by 095
    Silence is golden
   +_check_dmesg: something found in dmesg (see
/home/dileks/src/xfstests-dev/git/results//generic/095.dmesg)
   ...
   (Run 'diff -u
/home/dileks/src/xfstests-dev/git/tests/generic/095.out
/home/dileks/src/xfstests-dev/git/results//generic/095.out.bad'  to
see the entire diff)
Ran: generic/095
Failures: generic/095
Failed 1 of 1 tests

dileks@iniza:~/src/xfstests-dev/git$ diff -u
/home/dileks/src/xfstests-dev/git/tests/generic/095.out
/home/dileks/src/xfstests-dev/git/results//generic/095.out.bad
--- /home/dileks/src/xfstests-dev/git/tests/generic/095.out
2020-09-27 12:37:22.094208071 +0200
+++ /home/dileks/src/xfstests-dev/git/results//generic/095.out.bad
 2020-09-27 14:27:53.103222500 +0200
@@ -1,2 +1,3 @@
QA output created by 095
Silence is golden
+_check_dmesg: something found in dmesg (see
/home/dileks/src/xfstests-dev/git/results//generic/095.dmesg)

dileks@iniza:~/src/xfstests-dev/git$ cat
/home/dileks/src/xfstests-dev/git/results//generic/095.dmesg
[ 2740.514321] run fstests generic/095 at 2020-09-27 14:27:34
[ 2746.274226] XFS (sdb1): Mounting V5 Filesystem
[ 2746.332612] XFS (sdb1): Ending clean mount
[ 2746.337449] xfs filesystem being mounted at /mnt/scratch supports
timestamps until 2038 (0x7fffffff)
[ 2747.790334] ------------[ cut here ]------------
[ 2747.790348] WARNING: CPU: 1 PID: 8678 at fs/iomap/buffered-io.c:77
iomap_page_release+0xd7/0x130
[ 2747.790350] Modules linked in: xfs(E) ppp_deflate(E) bsd_comp(E)
ppp_async(E) ppp_generic(E) slhc(E) bnep(E) snd_seq_dummy(E)
snd_hrtimer(E) snd_seq(E) snd_seq_device(E) fuse(E) intel_rapl
_msr(E) intel_rapl_common(E) btusb(E) uvcvideo(E)
x86_pkg_temp_thermal(E) snd_hda_codec_hdmi(E) intel_powerclamp(E)
btrtl(E) snd_hda_codec_realtek(E) btintel(E) videobuf2_vmalloc(E)
snd_hda_c
odec_generic(E) videobuf2_memops(E) btbcm(E) videobuf2_v4l2(E)
coretemp(E) bluetooth(E) videobuf2_common(E) iwldvm(E)
ledtrig_audio(E) kvm_intel(E) mac80211(E) videodev(E) snd_hda_intel(E)
op
tion(E) kvm(E) zram(E) i915(E) mc(E) usb_wwan(E) msr(E)
snd_intel_dspcfg(E) usbserial(E) cdc_ether(E) usbnet(E)
jitterentropy_rng(E) zsmalloc(E) snd_hda_codec(E) libarc4(E) mii(E)
irqbypass(E
) drbg(E) snd_hda_core(E) ghash_clmulni_intel(E) ansi_cprng(E)
ecdh_generic(E) iwlwifi(E) ecc(E) snd_hwdep(E) aesni_intel(E)
snd_pcm(E) cfg80211(E) libaes(E) at24(E) glue_helper(E) mei_me(E)
snd_timer(E) crypto_simd(E) iTCO_wdt(E)
[ 2747.790398]  samsung_laptop(E) drm_kms_helper(E) snd(E)
intel_pmc_bxt(E) cryptd(E) mei(E) sg(E) joydev(E) cec(E) evdev(E)
i2c_algo_bit(E) iTCO_vendor_support(E) rfkill(E) serio_raw(E) rapl
(E) soundcore(E) intel_cstate(E) watchdog(E) intel_uncore(E) ac(E)
pcspkr(E) button(E) binfmt_misc(E) parport_pc(E) ppdev(E) lp(E) drm(E)
parport(E) ip_tables(E) x_tables(E) autofs4(E) ext4(E
) mbcache(E) crc16(E) jbd2(E) btrfs(E) raid6_pq(E) xor(E) libcrc32c(E)
crc32c_generic(E) sr_mod(E) cdrom(E) sd_mod(E) t10_pi(E) crc_t10dif(E)
crct10dif_generic(E) hid_generic(E) usbhid(E) hid
(E) uas(E) usb_storage(E) crct10dif_pclmul(E) crct10dif_common(E)
ahci(E) libahci(E) r8169(E) xhci_pci(E) crc32_pclmul(E) ehci_pci(E)
realtek(E) i2c_i801(E) xhci_hcd(E) ehci_hcd(E) libata(E)
crc32c_intel(E) psmouse(E) mdio_devres(E) lpc_ich(E) i2c_smbus(E)
scsi_mod(E) libphy(E) usbcore(E) fan(E) battery(E) wmi(E) video(E)
[ 2747.790452] CPU: 1 PID: 8678 Comm: fio Tainted: G            E
5.9.0-rc6-7-amd64-clang-cfi #7~bullseye+dileks1
[ 2747.790454] Hardware name: SAMSUNG ELECTRONICS CO., LTD.
530U3BI/530U4BI/530U4BH/530U3BI/530U4BI/530U4BH, BIOS 13XK 03/28/2013
[ 2747.790458] RIP: 0010:iomap_page_release+0xd7/0x130
[ 2747.790461] Code: 29 4c 89 f7 5b 41 5e 41 5f e9 05 62 f2 ff 5b 41
5e 41 5f c3 0f 0b 41 83 7e 04 00 74 af 0f 0b eb ab 48 83 c2 ff 49 89
d7 eb c4 <0f> 0b eb d3 48 83 c0 ff 48 89 c7 66 66 66
66 90 e9 5b ff ff ff 48
[ 2747.790463] RSP: 0018:ffffbf4bcc5d7988 EFLAGS: 00010297
[ 2747.790465] RAX: 0000000000000001 RBX: 0000000000000004 RCX: 0000000000000000
[ 2747.790466] RDX: ffffe561c50018c8 RSI: 0000000000000000 RDI: ffff987c5a007ad0
[ 2747.790468] RBP: ffff987c3817eea8 R08: ffff987c8eb54a80 R09: ffff987c8eb54a80
[ 2747.790469] R10: 0000000000000000 R11: ffffffffc1778290 R12: ffff987c3817eea8
[ 2747.790471] R13: 0000000000000000 R14: ffff987c5a007ac0 R15: ffffe561c5001c80
[ 2747.790473] FS:  00007f3beb952580(0000) GS:ffff987c97a40000(0000)
knlGS:0000000000000000
[ 2747.790475] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2747.790477] CR2: 00007f3b9edfa168 CR3: 000000013fe04003 CR4: 00000000000606e0
[ 2747.790478] Call Trace:
[ 2747.790485]  iomap_releasepage+0x64/0x120
[ 2747.790491]  invalidate_complete_page2+0x3b/0x190
[ 2747.790494]  invalidate_inode_pages2_range+0xf3/0x460
[ 2747.790498]  ? pagevec_lookup_range_tag+0x24/0x30
[ 2747.790502]  ? __filemap_fdatawait_range.llvm.8376122975785580473+0xa5/0x110
[ 2747.790505]  ? __filemap_fdatawrite_range+0x108/0x130
[ 2747.790509]  iomap_dio_rw+0x24f/0x450
[ 2747.790574]  xfs_file_dio_aio_write+0x227/0x340 [xfs]
[ 2747.790619]  ? xfs_file_read_iter+0x8/0x8 [xfs]
[ 2747.790661]  xfs_file_write_iter+0x9c/0xd0 [xfs]
[ 2747.790666]  aio_write+0x148/0x220
[ 2747.790670]  ? file_update_time+0x38/0x1f0
[ 2747.790674]  ? __check_object_size+0x5a/0x1e0
[ 2747.790676]  __io_submit_one+0x3c8/0x600
[ 2747.790679]  ? kmem_cache_alloc+0x116/0x290
[ 2747.790682]  io_submit_one+0x13c/0x520
[ 2747.790686]  __do_sys_io_submit+0x8a/0x180
[ 2747.790688]  ? __x64_sys_io_getevents+0x69/0xb0
[ 2747.790693]  ? __ia32_sys_pipe2.cfi_jt+0x8/0x8
[ 2747.790695]  do_syscall_64+0x53/0x90
[ 2747.790699]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 2747.790703] RIP: 0033:0x7f3bf53d1a79
[ 2747.790706] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00
00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24
08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d e7 53
0c 00 f7 d8 64 89 01 48
[ 2747.790707] RSP: 002b:00007ffc214375b8 EFLAGS: 00000246 ORIG_RAX:
00000000000000d1
[ 2747.790710] RAX: ffffffffffffffda RBX: 00007f3beb950718 RCX: 00007f3bf53d1a79
[ 2747.790711] RDX: 000055e5c234f328 RSI: 0000000000000001 RDI: 00007f3beb919000
[ 2747.790712] RBP: 00007f3beb919000 R08: 0000000000000000 R09: 0000000000000008
[ 2747.790714] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
[ 2747.790715] R13: 0000000000000000 R14: 000055e5c234f328 R15: 000055e5c2339a20
[ 2747.790717] ---[ end trace b283df62bfe0869f ]---
[ 2758.555914] XFS (sdb1): Unmounting Filesystem

Again, I hit this one time.

I will try to reproduce and later test with your other patch.

- Sedat -

P.S.: Updated local.config with MKFS_OPTIONS recommended by willy

[ local.config ]
# Ideally define at least these 4 to match your environment
# The first 2 are required.
# See README for other variables which can be set.
#
# Note: SCRATCH_DEV >will< get overwritten!

export TEST_DEV=/dev/sdc3
##export TEST_DEV=/dev/sdb1
export TEST_DIR=/mnt/test
export SCRATCH_DEV=/dev/sdb1
##export SCRATCH_DEV=/dev/sdc5
export SCRATCH_MNT=/mnt/scratch
MKFS_OPTIONS="-m reflink=1,rmapbt=1 -i sparse=1 -b size=1024"



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux