On Tue, Feb 18, 2020 at 03:56:33PM +1100, Dave Chinner wrote: > Latest version in your git tree: > > $ ▶ glo -n 5 willy/readahead > 4be497096c04 mm: Use memalloc_nofs_save in readahead path > ff63497fcb98 iomap: Convert from readpages to readahead > 26aee60e89b5 iomap: Restructure iomap_readpages_actor > 8115bcca7312 fuse: Convert from readpages to readahead > 3db3d10d9ea1 f2fs: Convert from readpages to readahead > $ > > merged into a 5.6-rc2 tree fails at boot on my test vm: > > [ 2.423116] ------------[ cut here ]------------ > [ 2.424957] list_add double add: new=ffffea000efff4c8, prev=ffff8883bfffee60, next=ffffea000efff4c8. > [ 2.428259] WARNING: CPU: 4 PID: 1 at lib/list_debug.c:29 __list_add_valid+0x67/0x70 > [ 2.457484] Call Trace: > [ 2.458171] __pagevec_lru_add_fn+0x15f/0x2c0 > [ 2.459376] pagevec_lru_move_fn+0x87/0xd0 > [ 2.460500] ? pagevec_move_tail_fn+0x2d0/0x2d0 > [ 2.461712] lru_add_drain_cpu+0x8d/0x160 > [ 2.462787] lru_add_drain+0x18/0x20 Are you sure that was 4be497096c04 ? I ask because there was a version pushed to that git tree that did contain a list double-add (due to a mismerge when shuffling patches). I noticed it and fixed it, and 4be497096c04 doesn't have that problem. I also test with CONFIG_DEBUG_LIST turned on, but this problem you hit is going to be probabilistic because it'll depend on the timing between whatever other list is being used and the page actually being added to the LRU.