tree: feng/lru_migration head: d5c4eb7175bf286989f3a47a1435111c976582c3 commit: 5b52060e2e3a850d7cebfe21fd63246de6c7e0bd [7/9] batch isolation compile ok config: x86_64-rhel-7.6 (attached as .config) compiler: gcc-7 (Debian 7.5.0-1) 7.5.0 reproduce: git checkout 5b52060e2e3a850d7cebfe21fd63246de6c7e0bd # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All warnings (new ones prefixed by >>): mm/memcontrol.c: In function 'migrate_pagelist': mm/memcontrol.c:3751:7: warning: unused variable 'zid' [-Wunused-variable] int zid; ^~~ In file included from include/linux/page_counter.h:6:0, from mm/memcontrol.c:25: include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat=] #define KERN_SOH "\001" /* ASCII Start Of Header */ ^ include/linux/kernel.h:845:33: note: in definition of macro '__trace_printk_check_format' ____trace_printk_check_format(fmt, ##args); \ ^~~ include/linux/kernel.h:882:3: note: in expansion of macro 'do_trace_printk' do_trace_printk(fmt, ##__VA_ARGS__); \ ^~~~~~~~~~~~~~~ include/linux/kernel.h:130:9: note: in expansion of macro 'trace_printk' trace_printk(KERN_ERR "" f "\n",##x) ^~~~~~~~~~~~ include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH' #define KERN_ERR KERN_SOH "3" /* error conditions */ ^~~~~~~~ include/linux/kernel.h:130:22: note: in expansion of macro 'KERN_ERR' trace_printk(KERN_ERR "" f "\n",##x) ^~~~~~~~ >> mm/memcontrol.c:3790:2: note: in expansion of macro 'mtp' mtp("scan=%d, nr_taken=%d", scan, nr_taken); ^~~ mm/memcontrol.c:3790:13: note: format string is defined here mtp("scan=%d, nr_taken=%d", scan, nr_taken); ~^ %ld In file included from include/linux/page_counter.h:6:0, from mm/memcontrol.c:25: include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Wformat=] #define KERN_SOH "\001" /* ASCII Start Of Header */ ^ include/linux/kernel.h:845:33: note: in definition of macro '__trace_printk_check_format' ____trace_printk_check_format(fmt, ##args); \ ^~~ include/linux/kernel.h:882:3: note: in expansion of macro 'do_trace_printk' do_trace_printk(fmt, ##__VA_ARGS__); \ ^~~~~~~~~~~~~~~ include/linux/kernel.h:130:9: note: in expansion of macro 'trace_printk' trace_printk(KERN_ERR "" f "\n",##x) ^~~~~~~~~~~~ include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH' #define KERN_ERR KERN_SOH "3" /* error conditions */ ^~~~~~~~ include/linux/kernel.h:130:22: note: in expansion of macro 'KERN_ERR' trace_printk(KERN_ERR "" f "\n",##x) ^~~~~~~~ >> mm/memcontrol.c:3790:2: note: in expansion of macro 'mtp' mtp("scan=%d, nr_taken=%d", scan, nr_taken); ^~~ mm/memcontrol.c:3790:26: note: format string is defined here mtp("scan=%d, nr_taken=%d", scan, nr_taken); ~^ %ld In file included from include/linux/page_counter.h:6:0, from mm/memcontrol.c:25: include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Wformat=] #define KERN_SOH "\001" /* ASCII Start Of Header */ ^ include/linux/kernel.h:898:29: note: in definition of macro 'do_trace_printk' __trace_printk(_THIS_IP_, fmt, ##args); \ ^~~ include/linux/kernel.h:130:9: note: in expansion of macro 'trace_printk' trace_printk(KERN_ERR "" f "\n",##x) ^~~~~~~~~~~~ include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH' #define KERN_ERR KERN_SOH "3" /* error conditions */ ^~~~~~~~ include/linux/kernel.h:130:22: note: in expansion of macro 'KERN_ERR' trace_printk(KERN_ERR "" f "\n",##x) ^~~~~~~~ >> mm/memcontrol.c:3790:2: note: in expansion of macro 'mtp' mtp("scan=%d, nr_taken=%d", scan, nr_taken); ^~~ mm/memcontrol.c:3790:13: note: format string is defined here mtp("scan=%d, nr_taken=%d", scan, nr_taken); ~^ %ld In file included from include/linux/page_counter.h:6:0, from mm/memcontrol.c:25: include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Wformat=] #define KERN_SOH "\001" /* ASCII Start Of Header */ ^ include/linux/kernel.h:898:29: note: in definition of macro 'do_trace_printk' __trace_printk(_THIS_IP_, fmt, ##args); \ ^~~ include/linux/kernel.h:130:9: note: in expansion of macro 'trace_printk' trace_printk(KERN_ERR "" f "\n",##x) ^~~~~~~~~~~~ include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH' #define KERN_ERR KERN_SOH "3" /* error conditions */ ^~~~~~~~ include/linux/kernel.h:130:22: note: in expansion of macro 'KERN_ERR' trace_printk(KERN_ERR "" f "\n",##x) ^~~~~~~~ >> mm/memcontrol.c:3790:2: note: in expansion of macro 'mtp' mtp("scan=%d, nr_taken=%d", scan, nr_taken); ^~~ mm/memcontrol.c:3790:26: note: format string is defined here mtp("scan=%d, nr_taken=%d", scan, nr_taken); ~^ %ld mm/memcontrol.c:3670:16: warning: unused variable 'nr_zone_taken' [-Wunused-variable] unsigned long nr_zone_taken[MAX_NR_ZONES] = { 0 }; ^~~~~~~~~~~~~ mm/memcontrol.c:3664:16: warning: unused variable 'nr_reclaimed' [-Wunused-variable] unsigned long nr_reclaimed = 0; ^~~~~~~~~~~~ mm/memcontrol.c:3663:16: warning: unused variable 'nr_scanned' [-Wunused-variable] unsigned long nr_scanned; ^~~~~~~~~~ mm/memcontrol.c: In function 'migrate_pagelist.isra.50': mm/memcontrol.c:3721:13: warning: 'nr_taken' may be used uninitialized in this function [-Wmaybe-uninitialized] nr_taken += nr_pages; ~~~~~~~~~^~~~~~~~~~~ vim +/mtp +3790 mm/memcontrol.c 3770 3771 3772 /* feng: this is needed */ 3773 // update_lru_sizes(lruvec, lru, nr_zone_taken); 3774 3775 /* some counter stuff, do we need to chime in the counter 3776 * statistics ? */ 3777 3778 #if 0 3779 __mod_node_page_state(pgdat, NR_ISOLATED_ANON + file, nr_taken); 3780 reclaim_stat->recent_scanned[file] += nr_taken; 3781 3782 item = current_is_kswapd() ? PGSCAN_KSWAPD : PGSCAN_DIRECT; 3783 if (global_reclaim(sc)) 3784 __count_vm_events(item, nr_scanned); 3785 __count_memcg_events(lruvec_memcg(lruvec), item, nr_scanned); 3786 #endif 3787 3788 spin_unlock_irq(&pgdat->lru_lock); 3789 > 3790 mtp("scan=%d, nr_taken=%d", scan, nr_taken); 3791 3792 if (nr_taken == 0) 3793 return 0; 3794 3795 } 3796 3797 /* XXXX: isolate done */ 3798 migrated = 0; 3799 i = 0; 3800 while (i < nr_pages && !list_empty(head)) { 3801 /* Get the head page under protection of lru_lock */ 3802 spin_lock_irq(&pgdat->lru_lock); 3803 page = lru_next_to_page(head); 3804 get_page(page); 3805 spin_unlock_irq(&pgdat->lru_lock); 3806 3807 ret = migrate_misplaced_page(page, NULL, tnid); 3808 if (ret) { 3809 /* migration success */ 3810 i += hpage_nr_pages(page); 3811 migrated += hpage_nr_pages(page); 3812 } else { 3813 3814 /* 2222 make sure it won't go back to the original one, 3815 * or we add a bit to skip the scan? 3816 * 3817 * failed it will be "putback_lru_page" will it 3818 * break the lru semantics? 3819 * 3820 * or we need a new function instead of 3821 * migrate_misplaced_page? 3822 * 3823 * how should we keep the original order ? 2 lists 3824 * and append together lru_not_used? 3825 * 3826 * in short, need to avoid endless loop scan 3827 */ 3828 3829 /* Move on even it fails to avoid endless loop */ 3830 i++; 3831 } 3832 } 3833 3834 return migrated; 3835 } 3836 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation