From: kernel test robot <lkp@intel.com> To: "Matthew Wilcox (Oracle)" <willy@infradead.org>, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Cc: kbuild-all@lists.01.org, "Matthew Wilcox (Oracle)" <willy@infradead.org>, linux-kernel@vger.kernel.org Subject: Re: [PATCH v9 74/96] mm/workingset: Convert workingset_refault to take a folio Date: Thu, 6 May 2021 04:17:27 +0800 [thread overview] Message-ID: <202105060454.QWwnGhDV-lkp@intel.com> (raw) In-Reply-To: <20210505150628.111735-75-willy@infradead.org> [-- Attachment #1: Type: text/plain, Size: 7692 bytes --] Hi "Matthew, Thank you for the patch! Yet something to improve: [auto build test ERROR on next-20210505] [cannot apply to hnaz-linux-mm/master xfs-linux/for-next tip/perf/core shaggy/jfs-next block/for-next linus/master asm-generic/master v5.12 v5.12-rc8 v5.12-rc7 v5.12] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Matthew-Wilcox-Oracle/Memory-folios/20210506-014108 base: 29955e0289b3255c5f609a7564a0f0bb4ae35c7a config: nds32-defconfig (attached as .config) compiler: nds32le-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/b1883a3797e1623bf783141c25482fee16e1031c git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Matthew-Wilcox-Oracle/Memory-folios/20210506-014108 git checkout b1883a3797e1623bf783141c25482fee16e1031c # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=nds32 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All error/warnings (new ones prefixed by >>): In file included from mm/workingset.c:8: include/linux/memcontrol.h: In function 'folio_uncharge_cgroup': include/linux/memcontrol.h:1213:42: error: parameter name omitted 1213 | static inline void folio_uncharge_cgroup(struct folio *) | ^~~~~~~~~~~~~~ mm/workingset.c: In function 'unpack_shadow': mm/workingset.c:201:15: warning: variable 'nid' set but not used [-Wunused-but-set-variable] 201 | int memcgid, nid; | ^~~ mm/workingset.c: In function 'workingset_refault': >> mm/workingset.c:348:10: error: implicit declaration of function 'folio_memcg' [-Werror=implicit-function-declaration] 348 | memcg = folio_memcg(folio); | ^~~~~~~~~~~ >> mm/workingset.c:348:8: warning: assignment to 'struct mem_cgroup *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 348 | memcg = folio_memcg(folio); | ^ cc1: some warnings being treated as errors vim +/folio_memcg +348 mm/workingset.c 272 273 /** 274 * workingset_refault - evaluate the refault of a previously evicted folio 275 * @page: the freshly allocated replacement folio 276 * @shadow: shadow entry of the evicted folio 277 * 278 * Calculates and evaluates the refault distance of the previously 279 * evicted folio in the context of the node and the memcg whose memory 280 * pressure caused the eviction. 281 */ 282 void workingset_refault(struct folio *folio, void *shadow) 283 { 284 bool file = folio_is_file_lru(folio); 285 struct mem_cgroup *eviction_memcg; 286 struct lruvec *eviction_lruvec; 287 unsigned long refault_distance; 288 unsigned long workingset_size; 289 struct pglist_data *pgdat; 290 struct mem_cgroup *memcg; 291 unsigned long eviction; 292 struct lruvec *lruvec; 293 unsigned long refault; 294 bool workingset; 295 int memcgid; 296 297 unpack_shadow(shadow, &memcgid, &pgdat, &eviction, &workingset); 298 299 rcu_read_lock(); 300 /* 301 * Look up the memcg associated with the stored ID. It might 302 * have been deleted since the folio's eviction. 303 * 304 * Note that in rare events the ID could have been recycled 305 * for a new cgroup that refaults a shared folio. This is 306 * impossible to tell from the available data. However, this 307 * should be a rare and limited disturbance, and activations 308 * are always speculative anyway. Ultimately, it's the aging 309 * algorithm's job to shake out the minimum access frequency 310 * for the active cache. 311 * 312 * XXX: On !CONFIG_MEMCG, this will always return NULL; it 313 * would be better if the root_mem_cgroup existed in all 314 * configurations instead. 315 */ 316 eviction_memcg = mem_cgroup_from_id(memcgid); 317 if (!mem_cgroup_disabled() && !eviction_memcg) 318 goto out; 319 eviction_lruvec = mem_cgroup_lruvec(eviction_memcg, pgdat); 320 refault = atomic_long_read(&eviction_lruvec->nonresident_age); 321 322 /* 323 * Calculate the refault distance 324 * 325 * The unsigned subtraction here gives an accurate distance 326 * across nonresident_age overflows in most cases. There is a 327 * special case: usually, shadow entries have a short lifetime 328 * and are either refaulted or reclaimed along with the inode 329 * before they get too old. But it is not impossible for the 330 * nonresident_age to lap a shadow entry in the field, which 331 * can then result in a false small refault distance, leading 332 * to a false activation should this old entry actually 333 * refault again. However, earlier kernels used to deactivate 334 * unconditionally with *every* reclaim invocation for the 335 * longest time, so the occasional inappropriate activation 336 * leading to pressure on the active list is not a problem. 337 */ 338 refault_distance = (refault - eviction) & EVICTION_MASK; 339 340 /* 341 * The activation decision for this folio is made at the level 342 * where the eviction occurred, as that is where the LRU order 343 * during folio reclaim is being determined. 344 * 345 * However, the cgroup that will own the folio is the one that 346 * is actually experiencing the refault event. 347 */ > 348 memcg = folio_memcg(folio); 349 lruvec = mem_cgroup_lruvec(memcg, pgdat); 350 351 inc_lruvec_state(lruvec, WORKINGSET_REFAULT_BASE + file); 352 353 /* 354 * Compare the distance to the existing workingset size. We 355 * don't activate pages that couldn't stay resident even if 356 * all the memory was available to the workingset. Whether 357 * workingset competition needs to consider anon or not depends 358 * on having swap. 359 */ 360 workingset_size = lruvec_page_state(eviction_lruvec, NR_ACTIVE_FILE); 361 if (!file) { 362 workingset_size += lruvec_page_state(eviction_lruvec, 363 NR_INACTIVE_FILE); 364 } 365 if (mem_cgroup_get_nr_swap_pages(memcg) > 0) { 366 workingset_size += lruvec_page_state(eviction_lruvec, 367 NR_ACTIVE_ANON); 368 if (file) { 369 workingset_size += lruvec_page_state(eviction_lruvec, 370 NR_INACTIVE_ANON); 371 } 372 } 373 if (refault_distance > workingset_size) 374 goto out; 375 376 folio_set_active_flag(folio); 377 workingset_age_nonresident(lruvec, folio_nr_pages(folio)); 378 inc_lruvec_state(lruvec, WORKINGSET_ACTIVATE_BASE + file); 379 380 /* Folio was active prior to eviction */ 381 if (workingset) { 382 folio_set_workingset_flag(folio); 383 /* XXX: Move to lru_cache_add() when it supports new vs putback */ 384 lru_note_cost_folio(folio); 385 inc_lruvec_state(lruvec, WORKINGSET_RESTORE_BASE + file); 386 } 387 out: 388 rcu_read_unlock(); 389 } 390 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 10847 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: Re: [PATCH v9 74/96] mm/workingset: Convert workingset_refault to take a folio Date: Thu, 06 May 2021 04:17:27 +0800 [thread overview] Message-ID: <202105060454.QWwnGhDV-lkp@intel.com> (raw) In-Reply-To: <20210505150628.111735-75-willy@infradead.org> [-- Attachment #1: Type: text/plain, Size: 7867 bytes --] Hi "Matthew, Thank you for the patch! Yet something to improve: [auto build test ERROR on next-20210505] [cannot apply to hnaz-linux-mm/master xfs-linux/for-next tip/perf/core shaggy/jfs-next block/for-next linus/master asm-generic/master v5.12 v5.12-rc8 v5.12-rc7 v5.12] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Matthew-Wilcox-Oracle/Memory-folios/20210506-014108 base: 29955e0289b3255c5f609a7564a0f0bb4ae35c7a config: nds32-defconfig (attached as .config) compiler: nds32le-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/b1883a3797e1623bf783141c25482fee16e1031c git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Matthew-Wilcox-Oracle/Memory-folios/20210506-014108 git checkout b1883a3797e1623bf783141c25482fee16e1031c # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=nds32 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All error/warnings (new ones prefixed by >>): In file included from mm/workingset.c:8: include/linux/memcontrol.h: In function 'folio_uncharge_cgroup': include/linux/memcontrol.h:1213:42: error: parameter name omitted 1213 | static inline void folio_uncharge_cgroup(struct folio *) | ^~~~~~~~~~~~~~ mm/workingset.c: In function 'unpack_shadow': mm/workingset.c:201:15: warning: variable 'nid' set but not used [-Wunused-but-set-variable] 201 | int memcgid, nid; | ^~~ mm/workingset.c: In function 'workingset_refault': >> mm/workingset.c:348:10: error: implicit declaration of function 'folio_memcg' [-Werror=implicit-function-declaration] 348 | memcg = folio_memcg(folio); | ^~~~~~~~~~~ >> mm/workingset.c:348:8: warning: assignment to 'struct mem_cgroup *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 348 | memcg = folio_memcg(folio); | ^ cc1: some warnings being treated as errors vim +/folio_memcg +348 mm/workingset.c 272 273 /** 274 * workingset_refault - evaluate the refault of a previously evicted folio 275 * @page: the freshly allocated replacement folio 276 * @shadow: shadow entry of the evicted folio 277 * 278 * Calculates and evaluates the refault distance of the previously 279 * evicted folio in the context of the node and the memcg whose memory 280 * pressure caused the eviction. 281 */ 282 void workingset_refault(struct folio *folio, void *shadow) 283 { 284 bool file = folio_is_file_lru(folio); 285 struct mem_cgroup *eviction_memcg; 286 struct lruvec *eviction_lruvec; 287 unsigned long refault_distance; 288 unsigned long workingset_size; 289 struct pglist_data *pgdat; 290 struct mem_cgroup *memcg; 291 unsigned long eviction; 292 struct lruvec *lruvec; 293 unsigned long refault; 294 bool workingset; 295 int memcgid; 296 297 unpack_shadow(shadow, &memcgid, &pgdat, &eviction, &workingset); 298 299 rcu_read_lock(); 300 /* 301 * Look up the memcg associated with the stored ID. It might 302 * have been deleted since the folio's eviction. 303 * 304 * Note that in rare events the ID could have been recycled 305 * for a new cgroup that refaults a shared folio. This is 306 * impossible to tell from the available data. However, this 307 * should be a rare and limited disturbance, and activations 308 * are always speculative anyway. Ultimately, it's the aging 309 * algorithm's job to shake out the minimum access frequency 310 * for the active cache. 311 * 312 * XXX: On !CONFIG_MEMCG, this will always return NULL; it 313 * would be better if the root_mem_cgroup existed in all 314 * configurations instead. 315 */ 316 eviction_memcg = mem_cgroup_from_id(memcgid); 317 if (!mem_cgroup_disabled() && !eviction_memcg) 318 goto out; 319 eviction_lruvec = mem_cgroup_lruvec(eviction_memcg, pgdat); 320 refault = atomic_long_read(&eviction_lruvec->nonresident_age); 321 322 /* 323 * Calculate the refault distance 324 * 325 * The unsigned subtraction here gives an accurate distance 326 * across nonresident_age overflows in most cases. There is a 327 * special case: usually, shadow entries have a short lifetime 328 * and are either refaulted or reclaimed along with the inode 329 * before they get too old. But it is not impossible for the 330 * nonresident_age to lap a shadow entry in the field, which 331 * can then result in a false small refault distance, leading 332 * to a false activation should this old entry actually 333 * refault again. However, earlier kernels used to deactivate 334 * unconditionally with *every* reclaim invocation for the 335 * longest time, so the occasional inappropriate activation 336 * leading to pressure on the active list is not a problem. 337 */ 338 refault_distance = (refault - eviction) & EVICTION_MASK; 339 340 /* 341 * The activation decision for this folio is made at the level 342 * where the eviction occurred, as that is where the LRU order 343 * during folio reclaim is being determined. 344 * 345 * However, the cgroup that will own the folio is the one that 346 * is actually experiencing the refault event. 347 */ > 348 memcg = folio_memcg(folio); 349 lruvec = mem_cgroup_lruvec(memcg, pgdat); 350 351 inc_lruvec_state(lruvec, WORKINGSET_REFAULT_BASE + file); 352 353 /* 354 * Compare the distance to the existing workingset size. We 355 * don't activate pages that couldn't stay resident even if 356 * all the memory was available to the workingset. Whether 357 * workingset competition needs to consider anon or not depends 358 * on having swap. 359 */ 360 workingset_size = lruvec_page_state(eviction_lruvec, NR_ACTIVE_FILE); 361 if (!file) { 362 workingset_size += lruvec_page_state(eviction_lruvec, 363 NR_INACTIVE_FILE); 364 } 365 if (mem_cgroup_get_nr_swap_pages(memcg) > 0) { 366 workingset_size += lruvec_page_state(eviction_lruvec, 367 NR_ACTIVE_ANON); 368 if (file) { 369 workingset_size += lruvec_page_state(eviction_lruvec, 370 NR_INACTIVE_ANON); 371 } 372 } 373 if (refault_distance > workingset_size) 374 goto out; 375 376 folio_set_active_flag(folio); 377 workingset_age_nonresident(lruvec, folio_nr_pages(folio)); 378 inc_lruvec_state(lruvec, WORKINGSET_ACTIVATE_BASE + file); 379 380 /* Folio was active prior to eviction */ 381 if (workingset) { 382 folio_set_workingset_flag(folio); 383 /* XXX: Move to lru_cache_add() when it supports new vs putback */ 384 lru_note_cost_folio(folio); 385 inc_lruvec_state(lruvec, WORKINGSET_RESTORE_BASE + file); 386 } 387 out: 388 rcu_read_unlock(); 389 } 390 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 10847 bytes --]
next prev parent reply other threads:[~2021-05-05 20:23 UTC|newest] Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-05 15:04 [PATCH v9 00/96] Memory folios Matthew Wilcox (Oracle) 2021-05-05 15:04 ` [PATCH v9 01/96] mm: Optimise nth_page for contiguous memmap Matthew Wilcox (Oracle) 2021-05-05 17:24 ` Vlastimil Babka 2021-05-05 15:04 ` [PATCH v9 02/96] mm: Make __dump_page static Matthew Wilcox (Oracle) 2021-05-05 15:04 ` [PATCH v9 03/96] mm/debug: Factor PagePoisoned out of __dump_page Matthew Wilcox (Oracle) 2021-05-05 15:04 ` [PATCH v9 04/96] mm/page_owner: Constify dump_page_owner Matthew Wilcox (Oracle) 2021-05-05 15:04 ` [PATCH v9 05/96] mm: Make compound_head const-preserving Matthew Wilcox (Oracle) 2021-05-05 15:04 ` [PATCH v9 06/96] mm: Constify get_pfnblock_flags_mask and get_pfnblock_migratetype Matthew Wilcox (Oracle) 2021-05-05 15:04 ` [PATCH v9 07/96] mm: Constify page_count and page_ref_count Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 08/96] mm: Fix struct page layout on 32-bit systems Matthew Wilcox (Oracle) 2021-05-05 17:33 ` Vlastimil Babka 2021-05-05 15:05 ` [PATCH v9 09/96] mm: Introduce struct folio Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 10/96] mm: Add folio_pgdat and folio_zone Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 11/96] mm/vmstat: Add functions to account folio statistics Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 12/96] mm/debug: Add VM_BUG_ON_FOLIO and VM_WARN_ON_ONCE_FOLIO Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 13/96] mm: Add folio reference count functions Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 14/96] mm: Add folio_put Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 15/96] mm: Add folio_get Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 16/96] mm: Add folio flag manipulation functions Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 17/96] mm: Add folio_young() and folio_idle() Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 18/96] mm: Handle per-folio private data Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 19/96] mm/filemap: Add folio_index, folio_file_page and folio_contains Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 20/96] mm/filemap: Add folio_next_index Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 21/96] mm/filemap: Add folio_offset and folio_file_offset Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 22/96] mm/util: Add folio_mapping and folio_file_mapping Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 23/96] mm: Add folio_mapcount Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 24/96] mm/memcg: Add folio wrappers for various functions Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 25/96] mm/filemap: Add folio_unlock Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 26/96] mm/filemap: Add folio_lock Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 27/96] mm/filemap: Add folio_lock_killable Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 28/96] mm/filemap: Add __folio_lock_async Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 29/96] mm/filemap: Add __folio_lock_or_retry Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 30/96] mm/filemap: Add folio_wait_locked Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 31/96] mm/swap: Add folio_rotate_reclaimable Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 32/96] mm/filemap: Add folio_end_writeback Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 33/96] mm/writeback: Add folio_wait_writeback Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 34/96] mm/writeback: Add folio_wait_stable Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 35/96] mm/filemap: Add folio_wait_bit Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 36/96] mm/filemap: Add folio_wake_bit Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 37/96] mm/filemap: Convert page wait queues to be folios Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 38/96] mm/filemap: Add folio private_2 functions Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 39/96] fs/netfs: Add folio fscache functions Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 40/96] mm: Add folio_mapped Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 41/96] mm/workingset: Convert workingset_activation to take a folio Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 42/96] mm/swap: Add folio_activate Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 43/96] mm/swap: Add folio_mark_accessed Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 44/96] mm/rmap: Add folio_mkclean Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 45/96] mm: Add kmap_local_folio Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 46/96] mm: Add flush_dcache_folio Matthew Wilcox (Oracle) 2021-05-05 23:35 ` kernel test robot 2021-05-05 23:35 ` kernel test robot 2021-05-06 2:33 ` Matthew Wilcox 2021-05-06 2:33 ` Matthew Wilcox 2021-05-05 15:05 ` [PATCH v9 47/96] mm: Add arch_make_folio_accessible Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 48/96] mm/memcg: Remove 'page' parameter to mem_cgroup_charge_statistics Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 49/96] mm/memcg: Use the node id in mem_cgroup_update_tree Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 50/96] mm/memcg: Convert commit_charge to take a folio Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 51/96] mm/memcg: Add folio_charge_cgroup Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 52/96] mm/memcg: Add folio_uncharge_cgroup Matthew Wilcox (Oracle) 2021-05-05 20:24 ` kernel test robot 2021-05-05 20:24 ` kernel test robot 2021-05-05 15:05 ` [PATCH v9 53/96] mm/memcg: Convert mem_cgroup_track_foreign_dirty_slowpath to folio Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 54/96] mm/writeback: Rename __add_wb_stat to wb_stat_mod Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 55/96] flex_proportions: Allow N events instead of 1 Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 56/96] mm/writeback: Change __wb_writeout_inc to __wb_writeout_add Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 57/96] mm/writeback: Convert test_clear_page_writeback to __folio_end_writeback Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 58/96] mm/writeback: Add folio_start_writeback Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 59/96] mm/writeback: Add folio_mark_dirty Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 60/96] mm/writeback: Use __set_page_dirty in __set_page_dirty_nobuffers Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 61/96] mm/writeback: Add __folio_mark_dirty Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 62/96] mm/writeback: Add filemap_dirty_folio Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 63/96] mm/writeback: Add folio_account_cleaned Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 64/96] mm/writeback: Add folio_cancel_dirty Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 65/96] mm/writeback: Add folio_clear_dirty_for_io Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 66/96] mm/writeback: Add folio_account_redirty Matthew Wilcox (Oracle) 2021-05-05 15:05 ` [PATCH v9 67/96] mm/writeback: Add folio_redirty_for_writepage Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 68/96] mm/filemap: Add i_blocks_per_folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 69/96] mm/filemap: Add folio_mkwrite_check_truncate Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 70/96] mm/filemap: Add readahead_folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 71/96] block: Add bio_add_folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 72/96] block: Add bio_for_each_folio_all Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 73/96] mm/lru: Add folio_lru and folio_is_file_lru Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 74/96] mm/workingset: Convert workingset_refault to take a folio Matthew Wilcox (Oracle) 2021-05-05 20:17 ` kernel test robot [this message] 2021-05-05 20:17 ` kernel test robot 2021-05-05 20:57 ` Matthew Wilcox 2021-05-05 20:57 ` Matthew Wilcox 2021-05-05 15:06 ` [PATCH v9 75/96] mm/lru: Add folio_add_lru Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 76/96] mm/page_alloc: Add __alloc_folio, __alloc_folio_node and alloc_folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 77/96] mm/filemap: Add filemap_alloc_folio Matthew Wilcox (Oracle) 2021-05-06 0:00 ` kernel test robot 2021-05-06 0:00 ` kernel test robot 2021-05-06 2:28 ` Matthew Wilcox 2021-05-06 2:28 ` Matthew Wilcox 2021-05-05 15:06 ` [PATCH v9 78/96] mm/filemap: Add folio_add_to_page_cache Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 79/96] mm/filemap: Convert mapping_get_entry to return a folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 80/96] mm/filemap: Add filemap_get_folio and find_get_folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 81/96] mm/filemap: Add filemap_get_stable_folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 82/96] iomap: Convert to_iomap_page to take a folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 83/96] iomap: Convert iomap_page_create " Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 84/96] iomap: Convert iomap_page_release " Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 85/96] iomap: Convert iomap_releasepage to use " Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 86/96] iomap: Convert iomap_invalidatepage " Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 87/96] iomap: Pass the iomap_page into iomap_set_range_uptodate Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 88/96] iomap: Use folio offsets instead of page offsets Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 89/96] iomap: Convert bio completions to use folios Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 90/96] iomap: Convert readahead and readpage to use a folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 91/96] iomap: Convert iomap_page_mkwrite " Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 92/96] iomap: Convert iomap_write_begin and iomap_write_end to folios Matthew Wilcox (Oracle) 2021-05-05 21:36 ` kernel test robot 2021-05-05 21:36 ` kernel test robot 2021-05-05 22:10 ` Matthew Wilcox 2021-05-05 22:10 ` Matthew Wilcox 2021-05-05 15:06 ` [PATCH v9 93/96] iomap: Convert iomap_read_inline_data to take a folio Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 94/96] iomap: Convert iomap_write_end_inline " Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 95/96] iomap: Convert iomap_add_to_ioend " Matthew Wilcox (Oracle) 2021-05-05 15:06 ` [PATCH v9 96/96] iomap: Convert iomap_do_writepage to use " Matthew Wilcox (Oracle)
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202105060454.QWwnGhDV-lkp@intel.com \ --to=lkp@intel.com \ --cc=kbuild-all@lists.01.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=willy@infradead.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.