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

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

 



On Fri, Sep 25, 2020 at 1:57 AM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> On Thu, Sep 24, 2020 at 10:04:40PM +0200, Sedat Dilek wrote:
> > On Thu, Sep 24, 2020 at 10:02 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> > >
> > > On Thu, Sep 24, 2020 at 09:54:36PM +0200, Sedat Dilek wrote:
> > > > You are named in "mm: fix misplaced unlock_page in do_wp_page()".
> > > > Is this here a different issue?
> > >
> > > Yes, completely different.  That bug is one Linus introduced in this
> > > cycle; the bug that this patch fixes was introduced a couple of years
> > > ago, and we only noticed now because I added an assertion to -next.
> > > Maybe I should add the assertion for 5.9 too.
> >
> > Can you point me to this "assertion"?
> > Thanks.
>
> Here's the version against 5.8
>
> diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
> index 810f7dae11d9..b421e4efc4bd 100644
> --- a/fs/iomap/buffered-io.c
> +++ b/fs/iomap/buffered-io.c
> @@ -70,11 +70,15 @@ static void
>  iomap_page_release(struct page *page)
>  {
>         struct iomap_page *iop = detach_page_private(page);
> +       unsigned int nr_blocks = PAGE_SIZE / i_blocksize(page->mapping->host);
>
>         if (!iop)
>                 return;
>         WARN_ON_ONCE(atomic_read(&iop->read_count));
>         WARN_ON_ONCE(atomic_read(&iop->write_count));
> +       WARN_ON_ONCE(bitmap_full(iop->uptodate, nr_blocks) !=
> +                       PageUptodate(page));
> +
>         kfree(iop);
>  }
>

I have applied your diff on top of Linux v5.9-rc6+ together with
"iomap: Set all uptodate bits for an Uptodate page".

Run LTP tests:

#1: syscalls (all)
#2: syscalls/preadv203
#3: syscalls/dirtyc0w

With #1 I see some failures with madvise0x tests.

I have attached the excerpt of my kernel-log and my kernel-config.

- Sedat -
Sep 25 14:07:30 iniza kernel: [ 2105.015657] EXT4-fs (loop0): mounting ext2 file system using the ext4 subsystem
Sep 25 14:07:30 iniza kernel: [ 2105.068990] EXT4-fs (loop0): mounted filesystem without journal. Opts: (null)
Sep 25 14:07:30 iniza kernel: [ 2105.069006] ext2 filesystem being mounted at /tmp/ltp-3wMePPxsCO/9lalcN/mntpoint supports timestamps until 2038 (0x7fffffff)
Sep 25 14:07:31 iniza kernel: [ 2106.415695] EXT4-fs (loop0): mounting ext3 file system using the ext4 subsystem
Sep 25 14:07:31 iniza kernel: [ 2106.447863] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null)
Sep 25 14:07:31 iniza kernel: [ 2106.447882] ext3 filesystem being mounted at /tmp/ltp-3wMePPxsCO/9lalcN/mntpoint supports timestamps until 2038 (0x7fffffff)
Sep 25 14:07:32 iniza kernel: [ 2106.902833] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null)
Sep 25 14:07:32 iniza kernel: [ 2106.902848] ext4 filesystem being mounted at /tmp/ltp-3wMePPxsCO/9lalcN/mntpoint supports timestamps until 2038 (0x7fffffff)
Sep 25 14:07:32 iniza kernel: [ 2107.115127] iwlwifi 0000:01:00.0: Radio type=0x1-0x2-0x0
Sep 25 14:07:32 iniza kernel: [ 2107.232797] XFS (loop0): Mounting V5 Filesystem
Sep 25 14:07:32 iniza kernel: [ 2107.241411] XFS (loop0): Ending clean mount
Sep 25 14:07:32 iniza kernel: [ 2107.242364] xfs filesystem being mounted at /tmp/ltp-3wMePPxsCO/9lalcN/mntpoint supports timestamps until 2038 (0x7fffffff)
Sep 25 14:07:32 iniza kernel: [ 2107.247075] XFS (loop0): Unmounting Filesystem
Sep 25 14:07:32 iniza kernel: [ 2107.419466] iwlwifi 0000:01:00.0: Radio type=0x1-0x2-0x0
Sep 25 14:07:33 iniza kernel: [ 2108.187641] BTRFS: device fsid dad7f390-98c5-4f69-b023-8bae34e0c304 devid 1 transid 5 /dev/loop0 scanned by mkfs.btrfs (526266)
Sep 25 14:07:33 iniza kernel: [ 2108.212859] BTRFS info (device loop0): disk space caching is enabled
Sep 25 14:07:33 iniza kernel: [ 2108.212867] BTRFS info (device loop0): has skinny extents
Sep 25 14:07:33 iniza kernel: [ 2108.212872] BTRFS info (device loop0): flagging fs with big metadata feature
Sep 25 14:07:33 iniza kernel: [ 2108.217220] BTRFS info (device loop0): checking UUID tree
Sep 25 14:07:34 iniza kernel: [ 2109.018240] Injecting memory failure for pfn 0x1ad7f7 at process virtual address 0x7fc71504e000
Sep 25 14:07:34 iniza kernel: [ 2109.020242] Memory failure: 0x1ad7f7: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.020268] Injecting memory failure for pfn 0x1c7096 at process virtual address 0x7fc71504f000
Sep 25 14:07:34 iniza kernel: [ 2109.020344] Memory failure: 0x1c7096: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.020357] Injecting memory failure for pfn 0x1fc1f4 at process virtual address 0x7fc715050000
Sep 25 14:07:34 iniza kernel: [ 2109.020417] Memory failure: 0x1fc1f4: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.020432] Injecting memory failure for pfn 0x1ee836 at process virtual address 0x7fc715051000
Sep 25 14:07:34 iniza kernel: [ 2109.020492] Memory failure: 0x1ee836: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.020505] Injecting memory failure for pfn 0x1e9b03 at process virtual address 0x7fc715052000
Sep 25 14:07:34 iniza kernel: [ 2109.020560] Memory failure: 0x1e9b03: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.020572] Injecting memory failure for pfn 0x1c04ab at process virtual address 0x7fc715053000
Sep 25 14:07:34 iniza kernel: [ 2109.020624] Memory failure: 0x1c04ab: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.020636] Injecting memory failure for pfn 0x1c0afb at process virtual address 0x7fc715054000
Sep 25 14:07:34 iniza kernel: [ 2109.020688] Memory failure: 0x1c0afb: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.020701] Injecting memory failure for pfn 0x1dfde5 at process virtual address 0x7fc715055000
Sep 25 14:07:34 iniza kernel: [ 2109.020754] Memory failure: 0x1dfde5: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.020766] Injecting memory failure for pfn 0x1ccf54 at process virtual address 0x7fc715056000
Sep 25 14:07:34 iniza kernel: [ 2109.020815] Memory failure: 0x1ccf54: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.020827] Injecting memory failure for pfn 0x1c0afa at process virtual address 0x7fc715057000
Sep 25 14:07:34 iniza kernel: [ 2109.020874] Memory failure: 0x1c0afa: recovery action for clean LRU page: Recovered
Sep 25 14:07:34 iniza kernel: [ 2109.398611] madvise06 (526306): drop_caches: 3
Sep 25 14:07:42 iniza kernel: [ 2117.106953] Injecting memory failure for pfn 0x2005a3 at process virtual address 0x7f8efa5ae000
Sep 25 14:07:42 iniza kernel: [ 2117.107199] Memory failure: 0x2005a3: recovery action for dirty LRU page: Recovered
Sep 25 14:07:42 iniza kernel: [ 2117.107356] MCE: Killing madvise07:526312 due to hardware memory corruption fault at 7f8efa5ae000
Sep 25 14:07:43 iniza kernel: [ 2118.071944] madvise09 invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=0
Sep 25 14:07:43 iniza kernel: [ 2118.071953] CPU: 3 PID: 526320 Comm: madvise09 Tainted: G            E     5.9.0-rc6-5-amd64-clang-cfi #5~bullseye+dileks1
Sep 25 14:07:43 iniza kernel: [ 2118.071956] Hardware name: SAMSUNG ELECTRONICS CO., LTD. 530U3BI/530U4BI/530U4BH/530U3BI/530U4BI/530U4BH, BIOS 13XK 03/28/2013
Sep 25 14:07:43 iniza kernel: [ 2118.071958] Call Trace:
Sep 25 14:07:43 iniza kernel: [ 2118.071972]  dump_stack+0x64/0x9b
Sep 25 14:07:43 iniza kernel: [ 2118.071977]  dump_header+0x50/0x230
Sep 25 14:07:43 iniza kernel: [ 2118.071981]  oom_kill_process+0xa1/0x170
Sep 25 14:07:43 iniza kernel: [ 2118.071984]  out_of_memory+0x265/0x330
Sep 25 14:07:43 iniza kernel: [ 2118.071991]  mem_cgroup_oom+0x313/0x360
Sep 25 14:07:43 iniza kernel: [ 2118.071996]  try_charge+0x51f/0x730
Sep 25 14:07:43 iniza kernel: [ 2118.072001]  mem_cgroup_charge+0x100/0x300
Sep 25 14:07:43 iniza kernel: [ 2118.072006]  do_anonymous_page+0x229/0x690
Sep 25 14:07:43 iniza kernel: [ 2118.072010]  ? __schedule+0x41a/0x7c0
Sep 25 14:07:43 iniza kernel: [ 2118.072017]  ? dma_get_required_mask.cfi_jt+0x10/0x10
Sep 25 14:07:43 iniza kernel: [ 2118.072020]  handle_mm_fault+0x8b0/0xcc0
Sep 25 14:07:43 iniza kernel: [ 2118.072026]  do_user_addr_fault+0x201/0x3a0
Sep 25 14:07:43 iniza kernel: [ 2118.072031]  ? asm_exc_page_fault+0x8/0x30
Sep 25 14:07:43 iniza kernel: [ 2118.072035]  exc_page_fault+0x7a/0x270
Sep 25 14:07:43 iniza kernel: [ 2118.072039]  ? asm_exc_page_fault+0x8/0x30
Sep 25 14:07:43 iniza kernel: [ 2118.072043]  asm_exc_page_fault+0x1e/0x30
Sep 25 14:07:43 iniza kernel: [ 2118.072047] RIP: 0033:0x563a6a5d955b
Sep 25 14:07:43 iniza kernel: [ 2118.072051] Code: 48 c1 ea 02 48 89 d0 48 f7 e5 48 89 d0 48 83 e2 fc 48 c1 e8 02 48 01 c2 48 8d 04 92 4c 89 f2 49 83 c6 01 48 c1 e0 02 48 29 c2 <41> 88 17 49 01 df e8 3a f5 ff ff 49 81 fe f4 01 00 00 75 b9 44 8b
Sep 25 14:07:43 iniza kernel: [ 2118.072054] RSP: 002b:00007fff4c893550 EFLAGS: 00010206
Sep 25 14:07:43 iniza kernel: [ 2118.072057] RAX: 0000000000000000 RBX: 0000000000001000 RCX: 0000000000000000
Sep 25 14:07:43 iniza kernel: [ 2118.072059] RDX: 0000000000000028 RSI: 0000000000000000 RDI: 0000000000000001
Sep 25 14:07:43 iniza kernel: [ 2118.072061] RBP: 28f5c28f5c28f5c3 R08: 00000000ffffffff R09: 0000000000000000
Sep 25 14:07:43 iniza kernel: [ 2118.072063] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff4c893580
Sep 25 14:07:43 iniza kernel: [ 2118.072065] R13: 00000000001f4000 R14: 0000000000000029 R15: 00007f4fb7c3c000
Sep 25 14:07:43 iniza kernel: [ 2118.072070] memory: usage 8192kB, limit 8192kB, failcnt 496
Sep 25 14:07:43 iniza kernel: [ 2118.072073] memory+swap: usage 16352kB, limit 16384kB, failcnt 7
Sep 25 14:07:43 iniza kernel: [ 2118.072075] kmem: usage 128kB, limit 9007199254740988kB, failcnt 0
Sep 25 14:07:43 iniza kernel: [ 2118.072077] Memory cgroup stats for /ltp_madvise09_526319:
Sep 25 14:07:43 iniza kernel: [ 2118.072097] anon 7974912
Sep 25 14:07:43 iniza kernel: [ 2118.072097] file 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] kernel_stack 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] slab 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] percpu 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] sock 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] shmem 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] file_mapped 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] file_dirty 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] file_writeback 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] anon_thp 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] inactive_anon 7929856
Sep 25 14:07:43 iniza kernel: [ 2118.072097] active_anon 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] inactive_file 8192
Sep 25 14:07:43 iniza kernel: [ 2118.072097] active_file 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] unevictable 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] slab_reclaimable 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] slab_unreclaimable 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] pgfault 4158
Sep 25 14:07:43 iniza kernel: [ 2118.072097] pgmajfault 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] workingset_refault_anon 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] workingset_refault_file 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] workingset_activate_anon 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] workingset_activate_file 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] workingset_restore 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] workingset_restore 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] workingset_nodereclaim 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] pgrefill 0
Sep 25 14:07:43 iniza kernel: [ 2118.072097] pgscan 6135
Sep 25 14:07:43 iniza kernel: [ 2118.072097] pgsteal 2158
Sep 25 14:07:43 iniza kernel: [ 2118.072102] Tasks state (memory values in pages):
Sep 25 14:07:43 iniza kernel: [ 2118.072104] [  pid  ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
Sep 25 14:07:43 iniza kernel: [ 2118.072109] [ 526319]     0 526319      746      326    49152       12             0 madvise09
Sep 25 14:07:43 iniza kernel: [ 2118.072113] [ 526320]     0 526320     5246     2187    81920     2044             0 madvise09
Sep 25 14:07:43 iniza kernel: [ 2118.072115] oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=/,mems_allowed=0,oom_memcg=/ltp_madvise09_526319,task_memcg=/ltp_madvise09_526319,task=madvise09,pid=526320,uid=0
Sep 25 14:07:43 iniza kernel: [ 2118.072128] Memory cgroup out of memory: Killed process 526320 (madvise09) total-vm:20984kB, anon-rss:7996kB, file-rss:752kB, shmem-rss:0kB, UID:0 pgtables:80kB oom_score_adj:0
Sep 25 14:07:43 iniza kernel: [ 2118.074189] oom_reaper: reaped process 526320 (madvise09), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

Attachment: config-5.9.0-rc6-5-amd64-clang-cfi
Description: Binary data


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux