Re: [PATCH] mm/lru: simplify is_file_lru() and is_active_lru()
On Tue, Nov 17, 2020 at 05:59:00PM +, Matthew Wilcox wrote: > On Wed, Nov 18, 2020 at 01:56:58AM +0800, Hui Su wrote: > > On Tue, Nov 17, 2020 at 05:47:27PM +, Matthew Wilcox wrote: > > > On Wed, Nov 18, 2020 at 01:46:33AM +0800, Hui Su wrote: > > > > On Tue, Nov 17, 2020 at 05:41:17PM +, Matthew Wilcox wrote: > > > > > On Wed, Nov 18, 2020 at 01:12:42AM +0800, Hui Su wrote: > > > > > > lru_list lru bit 0 can tell whether the list is > > > > > > avtive lru-list or not. > > > > > > lru_list lru bit 1 can tell whether the list is > > > > > > file lru-list or not. > > > > > > > > > > > > And fix some define type in shrink_active_list() > > > > > > and get_scan_count(). > > > > > > > > > > > > v1->v2: > > > > > > correct the commit message, and fix the define type. > > > > > > > > > > No, still incorrect. > > > > > > > > I am a little confused, can you tell in detail? > > > > > > Have you booted a kernel with this change? Have you run any kind of > > > tests on it? > > > > Yes, I boot it with qemu-system-x86_64-4.1.50 on ubuntu20.04: > > qemu-system-x86_64 -kernel > > /home/rlk/workspace/compile/out/arch/x86_64/boot/bzImage -hda \ > > /home/rlk/myspace/qemu_build/rootfs.img -append "root=/dev/sda > > console=ttyS0" -nographic > > > > using the kernel compiled with ubuntu20.04's default .config. > > > > It seems nothing abnormal. > > And i did not do other test. > > Maybe you should ... how about LTP? I think that's pretty straightforward > to set up and run. Hi Matthew: Thanks for your advice, i finally setup a test platform powered by jenkins and QEMU emulator version 4.2.1 with two evening. This is the things that i always wanted to do but didn't do. I apply this change based on the commit: 4d02da974ea8, and compile it with x86_64_defconfig: make bzImage O=/var/lib/jenkins/workspace/linux_kernel_ltp/out/ Then start qemu: sudo qemu-system-x86_64 \ -kernel /var/lib/jenkins/workspace/linux_kernel_ltp/out/arch/x86/boot/bzImage \ -hda /home/ubuntu/myspace/qemu_build/ubuntu.img \ -hdb /home/ubuntu/myspace/qemu_build/init.img \ -append "root=/dev/sda console=ttyS0" \ -nographic \ -m 1024 \ -fsdev local,id=fs1,path=/home/ubuntu/workspace,security_model=none \ -device virtio-9p-pci,fsdev=fs1,mount_tag=jeff-host-code Then run the ltp test: sudo bash /opt/ltp/runltp -f mm The result is: Test Start Time: Sat Nov 21 02:06:46 2020 - Testcase Result Exit Value -- -- mm01 PASS 0 mm02 PASS 0 mtest01PASS 0 mtest01w PASS 0 mtest05PASS 0 mtest06FAIL 2 mtest06_2 PASS 0 mtest06_3 PASS 0 mem02 PASS 0 mmapstress01 PASS 0 mmapstress02 PASS 0 mmapstress03 PASS 0 mmapstress04 PASS 0 mmapstress05 PASS 0 mmapstress06 PASS 0 mmapstress07 PASS 0 mmapstress08 PASS 0 mmapstress09 PASS 0 mmapstress10 PASS 0 mmap10 PASS 0 mmap10_1 PASS 0 mmap10_2 CONF 32 mmap10_3 CONF 32 mmap10_4 CONF 32 ksm01 CONF 32 ksm01_1CONF 32 ksm02 CONF 32 ksm02_1CONF 32 ksm03 CONF 32 ksm03_1CONF 32 ksm04 CONF 32 ksm04_1CONF 32 ksm05 CONF 32 ksm06 CONF 32 thp02 CONF 32 t
Re: [PATCH] mm/lru: simplify is_file_lru() and is_active_lru()
On Tue, Nov 17, 2020 at 05:59:00PM +, Matthew Wilcox wrote: > On Wed, Nov 18, 2020 at 01:56:58AM +0800, Hui Su wrote: > > On Tue, Nov 17, 2020 at 05:47:27PM +, Matthew Wilcox wrote: > > > On Wed, Nov 18, 2020 at 01:46:33AM +0800, Hui Su wrote: > > > > On Tue, Nov 17, 2020 at 05:41:17PM +, Matthew Wilcox wrote: > > > > > On Wed, Nov 18, 2020 at 01:12:42AM +0800, Hui Su wrote: > > > > > > lru_list lru bit 0 can tell whether the list is > > > > > > avtive lru-list or not. > > > > > > lru_list lru bit 1 can tell whether the list is > > > > > > file lru-list or not. > > > > > > > > > > > > And fix some define type in shrink_active_list() > > > > > > and get_scan_count(). > > > > > > > > > > > > v1->v2: > > > > > > correct the commit message, and fix the define type. > > > > > > > > > > No, still incorrect. > > > > > > > > I am a little confused, can you tell in detail? > > > > > > Have you booted a kernel with this change? Have you run any kind of > > > tests on it? > > > > Yes, I boot it with qemu-system-x86_64-4.1.50 on ubuntu20.04: > > qemu-system-x86_64 -kernel > > /home/rlk/workspace/compile/out/arch/x86_64/boot/bzImage -hda \ > > /home/rlk/myspace/qemu_build/rootfs.img -append "root=/dev/sda > > console=ttyS0" -nographic > > > > using the kernel compiled with ubuntu20.04's default .config. > > > > It seems nothing abnormal. > > And i did not do other test. > > Maybe you should ... how about LTP? I think that's pretty straightforward > to set up and run. Thanks for your advice, Matthew. I will set up an ltp test envirment, thanks again. And Please ignore this change for now.
Re: [PATCH] mm/lru: simplify is_file_lru() and is_active_lru()
On Tue, Nov 17, 2020 at 05:41:17PM +, Matthew Wilcox wrote: > On Wed, Nov 18, 2020 at 01:12:42AM +0800, Hui Su wrote: > > lru_list lru bit 0 can tell whether the list is > > avtive lru-list or not. > > lru_list lru bit 1 can tell whether the list is > > file lru-list or not. > > > > And fix some define type in shrink_active_list() > > and get_scan_count(). > > > > v1->v2: > > correct the commit message, and fix the define type. > > No, still incorrect. I am a little confused, can you tell in detail? Thanks.
Re: [PATCH] mm/lru: simplify is_file_lru() and is_active_lru()
On Wed, Nov 18, 2020 at 01:56:58AM +0800, Hui Su wrote: > On Tue, Nov 17, 2020 at 05:47:27PM +, Matthew Wilcox wrote: > > On Wed, Nov 18, 2020 at 01:46:33AM +0800, Hui Su wrote: > > > On Tue, Nov 17, 2020 at 05:41:17PM +, Matthew Wilcox wrote: > > > > On Wed, Nov 18, 2020 at 01:12:42AM +0800, Hui Su wrote: > > > > > lru_list lru bit 0 can tell whether the list is > > > > > avtive lru-list or not. > > > > > lru_list lru bit 1 can tell whether the list is > > > > > file lru-list or not. > > > > > > > > > > And fix some define type in shrink_active_list() > > > > > and get_scan_count(). > > > > > > > > > > v1->v2: > > > > > correct the commit message, and fix the define type. > > > > > > > > No, still incorrect. > > > > > > I am a little confused, can you tell in detail? > > > > Have you booted a kernel with this change? Have you run any kind of > > tests on it? > > Yes, I boot it with qemu-system-x86_64-4.1.50 on ubuntu20.04: > qemu-system-x86_64 -kernel > /home/rlk/workspace/compile/out/arch/x86_64/boot/bzImage -hda \ > /home/rlk/myspace/qemu_build/rootfs.img -append "root=/dev/sda > console=ttyS0" -nographic > > using the kernel compiled with ubuntu20.04's default .config. > > It seems nothing abnormal. > And i did not do other test. Maybe you should ... how about LTP? I think that's pretty straightforward to set up and run.
Re: [PATCH] mm/lru: simplify is_file_lru() and is_active_lru()
On Tue, Nov 17, 2020 at 05:47:27PM +, Matthew Wilcox wrote: > On Wed, Nov 18, 2020 at 01:46:33AM +0800, Hui Su wrote: > > On Tue, Nov 17, 2020 at 05:41:17PM +, Matthew Wilcox wrote: > > > On Wed, Nov 18, 2020 at 01:12:42AM +0800, Hui Su wrote: > > > > lru_list lru bit 0 can tell whether the list is > > > > avtive lru-list or not. > > > > lru_list lru bit 1 can tell whether the list is > > > > file lru-list or not. > > > > > > > > And fix some define type in shrink_active_list() > > > > and get_scan_count(). > > > > > > > > v1->v2: > > > > correct the commit message, and fix the define type. > > > > > > No, still incorrect. > > > > I am a little confused, can you tell in detail? > > Have you booted a kernel with this change? Have you run any kind of > tests on it? Yes, I boot it with qemu-system-x86_64-4.1.50 on ubuntu20.04: qemu-system-x86_64 -kernel /home/rlk/workspace/compile/out/arch/x86_64/boot/bzImage -hda \ /home/rlk/myspace/qemu_build/rootfs.img -append "root=/dev/sda console=ttyS0" -nographic using the kernel compiled with ubuntu20.04's default .config. It seems nothing abnormal. And i did not do other test.
Re: [PATCH] mm/lru: simplify is_file_lru() and is_active_lru()
On Wed, Nov 18, 2020 at 01:46:33AM +0800, Hui Su wrote: > On Tue, Nov 17, 2020 at 05:41:17PM +, Matthew Wilcox wrote: > > On Wed, Nov 18, 2020 at 01:12:42AM +0800, Hui Su wrote: > > > lru_list lru bit 0 can tell whether the list is > > > avtive lru-list or not. > > > lru_list lru bit 1 can tell whether the list is > > > file lru-list or not. > > > > > > And fix some define type in shrink_active_list() > > > and get_scan_count(). > > > > > > v1->v2: > > > correct the commit message, and fix the define type. > > > > No, still incorrect. > > I am a little confused, can you tell in detail? Have you booted a kernel with this change? Have you run any kind of tests on it?
Re: [PATCH] mm/lru: simplify is_file_lru() and is_active_lru()
On Wed, Nov 18, 2020 at 01:12:42AM +0800, Hui Su wrote: > lru_list lru bit 0 can tell whether the list is > avtive lru-list or not. > lru_list lru bit 1 can tell whether the list is > file lru-list or not. > > And fix some define type in shrink_active_list() > and get_scan_count(). > > v1->v2: > correct the commit message, and fix the define type. No, still incorrect.
Re: [PATCH] mm/lru: simplify is_file_lru() and is_active_lru()
On Wed, Nov 18, 2020 at 12:49:19AM +0800, Hui Su wrote: > page->lru bit 0 can tell whether the page is > avtive page or not. > page->lru bit 1 can tell whether the page is > file page or not. This is wrong. I'll let you figure out why.
Re: [PATCH] mm/lru: simplify is_file_lru() and is_active_lru()
On Wed, Nov 18, 2020 at 12:49:19AM +0800, Hui Su wrote: > page->lru bit 0 can tell whether the page is > avtive page or not. > page->lru bit 1 can tell whether the page is > file page or not. > > Signed-off-by: Hui Su > --- > include/linux/mmzone.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index fb3bf696c05e..294369c652d0 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -258,12 +258,12 @@ enum lru_list { > > static inline bool is_file_lru(enum lru_list lru) > { > - return (lru == LRU_INACTIVE_FILE || lru == LRU_ACTIVE_FILE); > + return lru & LRU_FILE; > } > > static inline bool is_active_lru(enum lru_list lru) > { > - return (lru == LRU_ACTIVE_ANON || lru == LRU_ACTIVE_FILE); > + return lru & LRU_ACTIVE; > } > > #define ANON_AND_FILE 2 > -- > 2.29.0 The commit message is not correct, please ignore this change.