All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Guanghui Feng <guanghuifeng@linux.alibaba.com>,
	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
Date: Fri, 1 Jul 2022 04:15:13 +0800	[thread overview]
Message-ID: <202207010409.ajCVDXYO-lkp@intel.com> (raw)
In-Reply-To: <1656578288-11259-1-git-send-email-guanghuifeng@linux.alibaba.com>

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 <lkp@intel.com>

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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Guanghui Feng <guanghuifeng@linux.alibaba.com>,
	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
Date: Fri, 1 Jul 2022 04:15:13 +0800	[thread overview]
Message-ID: <202207010409.ajCVDXYO-lkp@intel.com> (raw)
In-Reply-To: <1656578288-11259-1-git-send-email-guanghuifeng@linux.alibaba.com>

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 <lkp@intel.com>

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


  parent reply	other threads:[~2022-06-30 20:17 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-30  8:38 [PATCH v2] arm64: mm: fix linear mapping mem access performance degradation Guanghui Feng
2022-06-30  8:38 ` Guanghui Feng
2022-06-30 11:54 ` guanghui.fgh
2022-06-30 11:54   ` guanghui.fgh
2022-06-30 20:15 ` kernel test robot [this message]
2022-06-30 20:15   ` kernel test robot

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=202207010409.ajCVDXYO-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=alikernel-developer@linux.alibaba.com \
    --cc=anshuman.khandual@arm.com \
    --cc=ardb@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=catalin.marinas@arm.com \
    --cc=christophe.leroy@csgroup.eu \
    --cc=david@redhat.com \
    --cc=geert+renesas@glider.be \
    --cc=guanghuifeng@linux.alibaba.com \
    --cc=james.morse@arm.com \
    --cc=jianyong.wu@arm.com \
    --cc=jonathan@marek.ca \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mark.rutland@arm.com \
    --cc=quic_qiancai@quicinc.com \
    --cc=rppt@kernel.org \
    --cc=thunder.leizhen@huawei.com \
    --cc=will@kernel.org \
    --cc=yaohongbo@linux.alibaba.com \
    /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: link
Be 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.