On Fri, 10 Jan 2020, Alex Shi wrote: > 在 2020/1/2 下午6:21, Alex Shi 写道: > > 在 2020/1/1 上午7:05, Andrew Morton 写道: > >> On Wed, 25 Dec 2019 17:04:16 +0800 Alex Shi wrote: > >> > >>> This patchset move lru_lock into lruvec, give a lru_lock for each of > >>> lruvec, thus bring a lru_lock for each of memcg per node. > >> > >> I see that there has been plenty of feedback on previous versions, but > >> no acked/reviewed tags as yet. > >> > >> I think I'll take a pass for now, see what the audience feedback looks > >> like ;) > >> > > > > Hi Johannes, > > Any comments of this version? :) I (Hugh) tried to test it on v5.5-rc5, but did not get very far at all - perhaps because my particular interest tends towards tmpfs and swap, and swap always made trouble for lruvec lock - one of the reasons why our patches were more complicated than you thought necessary. Booted a smallish kernel in mem=700M with 1.5G of swap, with intention of running small kernel builds in tmpfs and in ext4-on-loop-on-tmpfs (losetup was the last command started but I doubt it played much part): mount -t tmpfs -o size=470M tmpfs /tst cp /dev/zero /tst losetup /dev/loop0 /tst/zero and kernel crashed on the VM_BUG_ON_PAGE(lruvec_memcg(lruvec) != page->mem_cgroup, page); kernel BUG at mm/memcontrol.c:1268! lock_page_lruvec_irqsave relock_page_lruvec_irqsave pagevec_lru_move_fn __pagevec_lru_add lru_add_drain_cpu lru_add_drain swap_cluster_readahead shmem_swapin shmem_swapin_page shmem_getpage_gfp shmem_getpage shmem_write_begin generic_perform_write __generic_file_write_iter generic_file_write_iter new_sync_write __vfs_write vfs_write ksys_write __x86_sys_write do_syscall_64 Hugh