From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A249C43334 for ; Thu, 30 Jun 2022 20:16:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 832308E0002; Thu, 30 Jun 2022 16:16:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7BA7D8E0001; Thu, 30 Jun 2022 16:16:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65B028E0002; Thu, 30 Jun 2022 16:16:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 504C48E0001 for ; Thu, 30 Jun 2022 16:16:25 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 01ECC460 for ; Thu, 30 Jun 2022 20:16:24 +0000 (UTC) X-FDA: 79636009530.21.F484038 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by imf03.hostedemail.com (Postfix) with ESMTP id C07B520028 for ; Thu, 30 Jun 2022 20:16:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1656620183; x=1688156183; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=/P8Ef8gRoj8g19WoNvNl9Palb+vUkjurN5jxkAB5JZk=; b=mfRQutk6wQ/S7YyjTArHc9IzjIfaQSZ8Vkij4jaa8Zc5HE8OwN1pgPaX jwuAMMBlAYa+dHmiplGYtGLXnV2zir/y0931+tIEuR8aNi6nXkI1DxFu6 iAhyEJBlLwVbooF/i5utB0n7UjryI3Zhb6pIn1fuUFsjt+q3YRyqDqbik DfDK+Qezr4gveTpWgJHhDKD6tjwcZdGSApYp/Gc/JO+VVBUA/5y5NtyCt 5RRasPSMSvO1j9M3w+Yp0OJUtkI6EpvJJrYsX6mp5XTxTDunmqwXGH3WH P+5gfHomXc98p2fEpLxFP8+zoyFYNaqGS/U09xZBjIi6vmEoNQm5Ofx6x w==; X-IronPort-AV: E=McAfee;i="6400,9594,10394"; a="282488691" X-IronPort-AV: E=Sophos;i="5.92,235,1650956400"; d="scan'208";a="282488691" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2022 13:16:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,235,1650956400"; d="scan'208";a="718365569" Received: from lkp-server01.sh.intel.com (HELO 68b931ab7ac1) ([10.239.97.150]) by orsmga004.jf.intel.com with ESMTP; 30 Jun 2022 13:16:09 -0700 Received: from kbuild by 68b931ab7ac1 with local (Exim 4.95) (envelope-from ) id 1o70a8-000D9s-Ky; Thu, 30 Jun 2022 20:16:08 +0000 Date: Fri, 1 Jul 2022 04:15:13 +0800 From: kernel test robot To: Guanghui Feng , baolin.wang@linux.alibaba.com, catalin.marinas@arm.com, will@kernel.org, akpm@linux-foundation.org, david@redhat.com, jianyong.wu@arm.com, james.morse@arm.com, quic_qiancai@quicinc.com, christophe.leroy@csgroup.eu, jonathan@marek.ca, mark.rutland@arm.com, thunder.leizhen@huawei.com, anshuman.khandual@arm.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, rppt@kernel.org, geert+renesas@glider.be, ardb@kernel.org, linux-mm@kvack.org, yaohongbo@linux.alibaba.com Cc: kbuild-all@lists.01.org, alikernel-developer@linux.alibaba.com Subject: Re: [PATCH v2] arm64: mm: fix linear mapping mem access performance degradation Message-ID: <202207010409.ajCVDXYO-lkp@intel.com> References: <1656578288-11259-1-git-send-email-guanghuifeng@linux.alibaba.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1656578288-11259-1-git-send-email-guanghuifeng@linux.alibaba.com> ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=mfRQutk6; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf03.hostedemail.com: domain of lkp@intel.com has no SPF policy when checking 192.55.52.115) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1656620184; a=rsa-sha256; cv=none; b=tW+qBVf2cfaEI9+OyRd0A93SjpH2IUVLp6b06CArL8vRN+gHtkDi/qUYE5KsJhrJsqVAdL 1xIrUgxu9zLbTN5kbDm0wMHVw1t/zscXAmR8rJVmy5m87+kysUJWqdDrIbfsurJdfpZN47 uze6ZVi7TRw0OjUgDvnpexTHxQJfBrk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656620184; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=uOQ5atNldGpH7u7nTBQUDo1mRw8oZHU8Lyb45MdGXJI=; b=vBFyLNEXpx+d/3FANEqKArt+ATjvEQkKFu5VYSazinvQcBq6EJ+28xF+BoW9qSjRsQkoU6 lTfiDyqJPYxEGWbdcNywVG+bGtCmlYZwhSprqYhRq4s1izm20ai2U+TxSkKNc3c1uJ/GXb wQeWeAxqe6RgNQjWtsVGAZTrrw8+6bQ= X-Stat-Signature: r6myzdjai33fckgqrinubik79jqi4yuj X-Rspamd-Queue-Id: C07B520028 Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=mfRQutk6; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf03.hostedemail.com: domain of lkp@intel.com has no SPF policy when checking 192.55.52.115) smtp.mailfrom=lkp@intel.com X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1656620183-939642 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi Guanghui, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on v5.19-rc4] [also build test WARNING on linus/master next-20220630] [cannot apply to arm64/for-next/core] [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/intel-lab-lkp/linux/commits/Guanghui-Feng/arm64-mm-fix-linear-mapping-mem-access-performance-degradation/20220630-163924 base: 03c765b0e3b4cb5063276b086c76f7a612856a9a config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20220701/202207010409.ajCVDXYO-lkp@intel.com/config) compiler: aarch64-linux-gcc (GCC) 11.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/intel-lab-lkp/linux/commit/168f0d56f0a26c4f7a9470d6f1c398b4e1c1b5b9 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Guanghui-Feng/arm64-mm-fix-linear-mapping-mem-access-performance-degradation/20220630-163924 git checkout 168f0d56f0a26c4f7a9470d6f1c398b4e1c1b5b9 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash arch/arm64/mm/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot All warnings (new ones prefixed by >>): arch/arm64/mm/mmu.c: In function 'alloc_init_pud': >> arch/arm64/mm/mmu.c:426:35: warning: suggest braces around empty body in an 'if' statement [-Wempty-body] 426 | pud_clear_fixmap(); | ^ vim +/if +426 arch/arm64/mm/mmu.c d27cfa1fc823d3 Ard Biesheuvel 2017-03-09 333 20a004e7b017cc Will Deacon 2018-02-15 334 static void alloc_init_pud(pgd_t *pgdp, unsigned long addr, unsigned long end, da141706aea52c Laura Abbott 2015-01-21 335 phys_addr_t phys, pgprot_t prot, 90292aca9854a2 Yu Zhao 2019-03-11 336 phys_addr_t (*pgtable_alloc)(int), c0951366d4b7e0 Ard Biesheuvel 2017-03-09 337 int flags) c1cc1552616d0f Catalin Marinas 2012-03-05 338 { 168f0d56f0a26c Guanghui Feng 2022-06-30 339 phys_addr_t map_offset; c1cc1552616d0f Catalin Marinas 2012-03-05 340 unsigned long next; 168f0d56f0a26c Guanghui Feng 2022-06-30 341 pudval_t pudval; 20a004e7b017cc Will Deacon 2018-02-15 342 pud_t *pudp; e9f6376858b979 Mike Rapoport 2020-06-04 343 p4d_t *p4dp = p4d_offset(pgdp, addr); e9f6376858b979 Mike Rapoport 2020-06-04 344 p4d_t p4d = READ_ONCE(*p4dp); c1cc1552616d0f Catalin Marinas 2012-03-05 345 e9f6376858b979 Mike Rapoport 2020-06-04 346 if (p4d_none(p4d)) { 87143f404f338d Ard Biesheuvel 2021-03-10 347 p4dval_t p4dval = P4D_TYPE_TABLE | P4D_TABLE_UXN; 132233a759580f Laura Abbott 2016-02-05 348 phys_addr_t pud_phys; 87143f404f338d Ard Biesheuvel 2021-03-10 349 87143f404f338d Ard Biesheuvel 2021-03-10 350 if (flags & NO_EXEC_MAPPINGS) 87143f404f338d Ard Biesheuvel 2021-03-10 351 p4dval |= P4D_TABLE_PXN; 132233a759580f Laura Abbott 2016-02-05 352 BUG_ON(!pgtable_alloc); 90292aca9854a2 Yu Zhao 2019-03-11 353 pud_phys = pgtable_alloc(PUD_SHIFT); 87143f404f338d Ard Biesheuvel 2021-03-10 354 __p4d_populate(p4dp, pud_phys, p4dval); e9f6376858b979 Mike Rapoport 2020-06-04 355 p4d = READ_ONCE(*p4dp); c79b954bf6c006 Jungseok Lee 2014-05-12 356 } e9f6376858b979 Mike Rapoport 2020-06-04 357 BUG_ON(p4d_bad(p4d)); c79b954bf6c006 Jungseok Lee 2014-05-12 358 ee017ee353506f Jianyong Wu 2022-02-01 359 /* ee017ee353506f Jianyong Wu 2022-02-01 360 * No need for locking during early boot. And it doesn't work as ee017ee353506f Jianyong Wu 2022-02-01 361 * expected with KASLR enabled. ee017ee353506f Jianyong Wu 2022-02-01 362 */ ee017ee353506f Jianyong Wu 2022-02-01 363 if (system_state != SYSTEM_BOOTING) ee017ee353506f Jianyong Wu 2022-02-01 364 mutex_lock(&fixmap_lock); 168f0d56f0a26c Guanghui Feng 2022-06-30 365 168f0d56f0a26c Guanghui Feng 2022-06-30 366 pudp = (flags & NO_SEC_REMAPPINGS) ? pud_offset(p4dp, addr) : 168f0d56f0a26c Guanghui Feng 2022-06-30 367 pud_set_fixmap_offset(p4dp, addr); c1cc1552616d0f Catalin Marinas 2012-03-05 368 do { 20a004e7b017cc Will Deacon 2018-02-15 369 pud_t old_pud = READ_ONCE(*pudp); c1cc1552616d0f Catalin Marinas 2012-03-05 370 next = pud_addr_end(addr, end); 206a2a73a62d37 Steve Capper 2014-05-06 371 168f0d56f0a26c Guanghui Feng 2022-06-30 372 if (flags & NO_SEC_REMAPPINGS) { 168f0d56f0a26c Guanghui Feng 2022-06-30 373 if (!pud_none(*pudp) && pud_sect(*pudp)) { 168f0d56f0a26c Guanghui Feng 2022-06-30 374 phys_addr_t pmd_phys = pgtable_alloc(PMD_SHIFT); 168f0d56f0a26c Guanghui Feng 2022-06-30 375 pud_clear(pudp); 168f0d56f0a26c Guanghui Feng 2022-06-30 376 pudval = PUD_TYPE_TABLE | PUD_TABLE_UXN; 168f0d56f0a26c Guanghui Feng 2022-06-30 377 if (flags & NO_EXEC_MAPPINGS) 168f0d56f0a26c Guanghui Feng 2022-06-30 378 pudval |= PUD_TABLE_PXN; 168f0d56f0a26c Guanghui Feng 2022-06-30 379 168f0d56f0a26c Guanghui Feng 2022-06-30 380 __pud_populate(pudp, pmd_phys, pudval); 168f0d56f0a26c Guanghui Feng 2022-06-30 381 flush_tlb_kernel_range(addr, addr + PAGE_SIZE); 168f0d56f0a26c Guanghui Feng 2022-06-30 382 168f0d56f0a26c Guanghui Feng 2022-06-30 383 map_offset = addr - (addr & PUD_MASK); 168f0d56f0a26c Guanghui Feng 2022-06-30 384 if (map_offset) 168f0d56f0a26c Guanghui Feng 2022-06-30 385 alloc_init_cont_pmd(pudp, addr & PUD_MASK, 168f0d56f0a26c Guanghui Feng 2022-06-30 386 addr, phys - map_offset, 168f0d56f0a26c Guanghui Feng 2022-06-30 387 prot, pgtable_alloc, 168f0d56f0a26c Guanghui Feng 2022-06-30 388 flags & (~NO_SEC_REMAPPINGS)); 168f0d56f0a26c Guanghui Feng 2022-06-30 389 168f0d56f0a26c Guanghui Feng 2022-06-30 390 if (next < (addr & PUD_MASK) + PUD_SIZE) 168f0d56f0a26c Guanghui Feng 2022-06-30 391 alloc_init_cont_pmd(pudp, next, 168f0d56f0a26c Guanghui Feng 2022-06-30 392 (addr & PUD_MASK) + 168f0d56f0a26c Guanghui Feng 2022-06-30 393 PUD_SIZE, 168f0d56f0a26c Guanghui Feng 2022-06-30 394 next - addr + phys, 168f0d56f0a26c Guanghui Feng 2022-06-30 395 prot, pgtable_alloc, 168f0d56f0a26c Guanghui Feng 2022-06-30 396 flags & (~NO_SEC_REMAPPINGS)); 168f0d56f0a26c Guanghui Feng 2022-06-30 397 } 168f0d56f0a26c Guanghui Feng 2022-06-30 398 alloc_init_cont_pmd(pudp, addr, next, phys, prot, 168f0d56f0a26c Guanghui Feng 2022-06-30 399 pgtable_alloc, flags); 168f0d56f0a26c Guanghui Feng 2022-06-30 400 } 206a2a73a62d37 Steve Capper 2014-05-06 401 /* 206a2a73a62d37 Steve Capper 2014-05-06 402 * For 4K granule only, attempt to put down a 1GB block 206a2a73a62d37 Steve Capper 2014-05-06 403 */ 168f0d56f0a26c Guanghui Feng 2022-06-30 404 else if (pud_sect_supported() && 1310222c276b79 Anshuman Khandual 2022-02-16 405 ((addr | next | phys) & ~PUD_MASK) == 0 && c0951366d4b7e0 Ard Biesheuvel 2017-03-09 406 (flags & NO_BLOCK_MAPPINGS) == 0) { 20a004e7b017cc Will Deacon 2018-02-15 407 pud_set_huge(pudp, phys, prot); 206a2a73a62d37 Steve Capper 2014-05-06 408 206a2a73a62d37 Steve Capper 2014-05-06 409 /* e98216b52176ba Ard Biesheuvel 2016-10-21 410 * After the PUD entry has been populated once, we e98216b52176ba Ard Biesheuvel 2016-10-21 411 * only allow updates to the permission attributes. 206a2a73a62d37 Steve Capper 2014-05-06 412 */ e98216b52176ba Ard Biesheuvel 2016-10-21 413 BUG_ON(!pgattr_change_is_safe(pud_val(old_pud), 20a004e7b017cc Will Deacon 2018-02-15 414 READ_ONCE(pud_val(*pudp)))); 206a2a73a62d37 Steve Capper 2014-05-06 415 } else { 20a004e7b017cc Will Deacon 2018-02-15 416 alloc_init_cont_pmd(pudp, addr, next, phys, prot, c0951366d4b7e0 Ard Biesheuvel 2017-03-09 417 pgtable_alloc, flags); e98216b52176ba Ard Biesheuvel 2016-10-21 418 e98216b52176ba Ard Biesheuvel 2016-10-21 419 BUG_ON(pud_val(old_pud) != 0 && 20a004e7b017cc Will Deacon 2018-02-15 420 pud_val(old_pud) != READ_ONCE(pud_val(*pudp))); 206a2a73a62d37 Steve Capper 2014-05-06 421 } c1cc1552616d0f Catalin Marinas 2012-03-05 422 phys += next - addr; 20a004e7b017cc Will Deacon 2018-02-15 423 } while (pudp++, addr = next, addr != end); f4710445458c0a Mark Rutland 2016-01-25 424 168f0d56f0a26c Guanghui Feng 2022-06-30 425 if (!(flags & NO_SEC_REMAPPINGS)) f4710445458c0a Mark Rutland 2016-01-25 @426 pud_clear_fixmap(); ee017ee353506f Jianyong Wu 2022-02-01 427 if (system_state != SYSTEM_BOOTING) ee017ee353506f Jianyong Wu 2022-02-01 428 mutex_unlock(&fixmap_lock); c1cc1552616d0f Catalin Marinas 2012-03-05 429 } c1cc1552616d0f Catalin Marinas 2012-03-05 430 -- 0-DAY CI Kernel Test Service https://01.org/lkp