Messages in this thread | | | Date | Wed, 27 Jun 2018 14:03:45 +0800 | From | kbuild test robot <> | Subject | Re: [PATCH 2/6] x86,tlb: leave lazy TLB mode at page table free time |
| |
Hi Rik,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master] [also build test ERROR on v4.18-rc2 next-20180626] [cannot apply to tip/x86/core] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Rik-van-Riel/mm-allocate-mm_cpumask-dynamically-based-on-nr_cpu_ids/20180627-021116 config: arm-keystone_defconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.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.2.0 make.cross ARCH=arm
All errors (new ones prefixed by >>):
mm/memory.c: In function 'tlb_remove_table_smp_sync': >> mm/memory.c:339:2: error: implicit declaration of function 'tlb_flush_remove_tables_local'; did you mean 'tlb_remove_table'? [-Werror=implicit-function-declaration] tlb_flush_remove_tables_local(mm); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tlb_remove_table mm/memory.c: In function 'tlb_table_flush': >> mm/memory.c:372:2: error: implicit declaration of function 'tlb_flush_remove_tables'; did you mean 'tlb_remove_table'? [-Werror=implicit-function-declaration] tlb_flush_remove_tables(tlb->mm); ^~~~~~~~~~~~~~~~~~~~~~~ tlb_remove_table cc1: some warnings being treated as errors
vim +339 mm/memory.c
328 329 static void tlb_remove_table_smp_sync(void *arg) 330 { 331 struct mm_struct *mm = arg; 332 /* 333 * On most architectures this does nothing. Simply delivering the 334 * interrupt is enough to prevent races with software page table 335 * walking like that done in get_user_pages_fast. 336 * 337 * See the comment near struct mmu_table_batch. 338 */ > 339 tlb_flush_remove_tables_local(mm); 340 } 341 342 static void tlb_remove_table_one(void *table, struct mmu_gather *tlb) 343 { 344 /* 345 * This isn't an RCU grace period and hence the page-tables cannot be 346 * assumed to be actually RCU-freed. 347 * 348 * It is however sufficient for software page-table walkers that rely on 349 * IRQ disabling. See the comment near struct mmu_table_batch. 350 */ 351 smp_call_function(tlb_remove_table_smp_sync, tlb->mm, 1); 352 __tlb_remove_table(table); 353 } 354 355 static void tlb_remove_table_rcu(struct rcu_head *head) 356 { 357 struct mmu_table_batch *batch; 358 int i; 359 360 batch = container_of(head, struct mmu_table_batch, rcu); 361 362 for (i = 0; i < batch->nr; i++) 363 __tlb_remove_table(batch->tables[i]); 364 365 free_page((unsigned long)batch); 366 } 367 368 void tlb_table_flush(struct mmu_gather *tlb) 369 { 370 struct mmu_table_batch **batch = &tlb->batch; 371 > 372 tlb_flush_remove_tables(tlb->mm); 373 374 if (*batch) { 375 call_rcu_sched(&(*batch)->rcu, tlb_remove_table_rcu); 376 *batch = NULL; 377 } 378 } 379
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [unhandled content-type:application/gzip] | |