Hi Dave, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on xfs-linux/for-next] [also build test WARNING on v5.4-rc5 next-20191031] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Dave-Chinner/xfs-Lower-CIL-flush-limit-for-large-logs/20191102-153137 base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next config: parisc-c3000_defconfig (attached as .config) compiler: hppa-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=parisc If you fix the issue, kindly add following tag Reported-by: kbuild test robot All warnings (new ones prefixed by >>): In file included from ./arch/parisc/include/generated/asm/div64.h:1:0, from include/linux/kernel.h:18, from arch/parisc/include/asm/bug.h:5, from include/linux/bug.h:5, from include/linux/mmdebug.h:5, from include/linux/mm.h:9, from mm/vmscan.c:17: mm/vmscan.c: In function 'shrink_scan_count': include/asm-generic/div64.h:226:28: warning: comparison of distinct pointer types lacks a cast (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \ ^ >> mm/vmscan.c:502:3: note: in expansion of macro 'do_div' do_div(delta, shrinker->seeks); ^~~~~~ vim +/do_div +502 mm/vmscan.c 460 461 /* 462 * Calculate the number of new objects to scan this time around. Return 463 * the work to be done. If there are freeable objects, return that number in 464 * @freeable_objects. 465 */ 466 static int64_t shrink_scan_count(struct shrink_control *shrinkctl, 467 struct shrinker *shrinker, int priority, 468 int64_t *freeable_objects) 469 { 470 int64_t delta; 471 int64_t freeable; 472 473 freeable = shrinker->count_objects(shrinker, shrinkctl); 474 if (freeable == 0 || freeable == SHRINK_EMPTY) 475 return freeable; 476 477 if (shrinker->seeks) { 478 /* 479 * shrinker->seeks is a measure of how much IO is required to 480 * reinstantiate the object in memory. The default value is 2 481 * which is typical for a cold inode requiring a directory read 482 * and an inode read to re-instantiate. 483 * 484 * The scan batch size is defined by the shrinker priority, but 485 * to be able to bias the reclaim we increase the default batch 486 * size by 4. Hence we end up with a scan batch multipler that 487 * scales like so: 488 * 489 * ->seeks scan batch multiplier 490 * 1 4.00x 491 * 2 2.00x 492 * 3 1.33x 493 * 4 1.00x 494 * 8 0.50x 495 * 496 * IOWs, the more seeks it takes to pull the item into cache, 497 * the smaller the reclaim scan batch. Hence we put more reclaim 498 * pressure on caches that are fast to repopulate and to keep a 499 * rough balance between caches that have different costs. 500 */ 501 delta = freeable >> (priority - 2); > 502 do_div(delta, shrinker->seeks); 503 } else { 504 /* 505 * These objects don't require any IO to create. Trim them 506 * aggressively under memory pressure to keep them from causing 507 * refetches in the IO caches. 508 */ 509 delta = freeable / 2; 510 } 511 512 *freeable_objects = freeable; 513 return delta > 0 ? delta : 0; 514 } 515 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation