All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "brookxu.cn" <brookxu.cn@gmail.com>,
	bsingharora@gmail.com, juri.lelli@redhat.com,
	peterz@infradead.org, vincent.guittot@linaro.org
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/3] delayacct: convert task->delays to a object
Date: Sun, 8 Oct 2023 23:47:14 +0800	[thread overview]
Message-ID: <202310082358.5mUe4Xjy-lkp@intel.com> (raw)
In-Reply-To: <531ddc82793a39f4c09316d701a4b1170bcad4ab.1696761522.git.chunguang.xu@shopee.com>

Hi brookxu.cn,

kernel test robot noticed the following build errors:

[auto build test ERROR on tip/sched/core]
[also build test ERROR on linus/master v6.6-rc4 next-20231006]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/brookxu-cn/delayacct-introduce-delayacct_enabled-to-simplify-implement/20231008-185144
base:   tip/sched/core
patch link:    https://lore.kernel.org/r/531ddc82793a39f4c09316d701a4b1170bcad4ab.1696761522.git.chunguang.xu%40shopee.com
patch subject: [PATCH 2/3] delayacct: convert task->delays to a object
config: arm64-randconfig-003-20231008 (https://download.01.org/0day-ci/archive/20231008/202310082358.5mUe4Xjy-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231008/202310082358.5mUe4Xjy-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310082358.5mUe4Xjy-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/kasan.h:33,
                    from include/linux/slab.h:180,
                    from include/linux/delayacct.h:62,
                    from include/linux/sched.h:40,
                    from arch/arm64/include/asm/mte.h:16,
                    from arch/arm64/include/asm/pgtable.h:12,
                    from arch/arm64/include/asm/vmalloc.h:5,
                    from include/linux/vmalloc.h:13,
                    from mm/vmalloc.c:11:
   include/linux/pgtable.h: In function 'pte_offset_kernel':
   include/linux/pgtable.h:94:25: error: implicit declaration of function 'pmd_page_vaddr'; did you mean 'pgd_page_vaddr'? [-Werror=implicit-function-declaration]
      94 |         return (pte_t *)pmd_page_vaddr(*pmd) + pte_index(address);
         |                         ^~~~~~~~~~~~~~
         |                         pgd_page_vaddr
   include/linux/pgtable.h:94:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
      94 |         return (pte_t *)pmd_page_vaddr(*pmd) + pte_index(address);
         |                ^
   include/linux/pgtable.h: In function 'pmd_offset':
   include/linux/pgtable.h:123:16: error: implicit declaration of function 'pud_pgtable'; did you mean 'p4d_pgtable'? [-Werror=implicit-function-declaration]
     123 |         return pud_pgtable(*pud) + pmd_index(address);
         |                ^~~~~~~~~~~
         |                p4d_pgtable
   include/linux/pgtable.h:123:34: warning: returning 'long unsigned int' from a function with return type 'pmd_t *' makes pointer from integer without a cast [-Wint-conversion]
     123 |         return pud_pgtable(*pud) + pmd_index(address);
         |                ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h: In function 'virt_to_kpte':
   include/linux/pgtable.h:177:16: error: implicit declaration of function 'pmd_none'; did you mean 'p4d_none'? [-Werror=implicit-function-declaration]
     177 |         return pmd_none(*pmd) ? NULL : pte_offset_kernel(pmd, vaddr);
         |                ^~~~~~~~
         |                p4d_none
   In file included from arch/arm64/include/asm/kasan.h:10,
                    from arch/arm64/include/asm/processor.h:40,
                    from include/asm-generic/qrwlock.h:18,
                    from ./arch/arm64/include/generated/asm/qrwlock.h:1,
                    from arch/arm64/include/asm/spinlock.h:9,
                    from include/linux/spinlock.h:95,
                    from include/linux/vmalloc.h:5:
   include/linux/pgtable.h: In function 'pte_next_pfn':
   include/linux/pgtable.h:213:45: error: 'PFN_PTE_SHIFT' undeclared (first use in this function); did you mean 'CONT_PTE_SHIFT'?
     213 |         return __pte(pte_val(pte) + (1UL << PFN_PTE_SHIFT));
         |                                             ^~~~~~~~~~~~~
   arch/arm64/include/asm/pgtable-types.h:25:37: note: in definition of macro '__pte'
      25 | #define __pte(x)        ((pte_t) { (x) } )
         |                                     ^
   include/linux/pgtable.h:213:45: note: each undeclared identifier is reported only once for each function it appears in
     213 |         return __pte(pte_val(pte) + (1UL << PFN_PTE_SHIFT));
         |                                             ^~~~~~~~~~~~~
   arch/arm64/include/asm/pgtable-types.h:25:37: note: in definition of macro '__pte'
      25 | #define __pte(x)        ((pte_t) { (x) } )
         |                                     ^
   include/linux/pgtable.h: In function 'set_ptes':
   include/linux/pgtable.h:238:17: error: implicit declaration of function 'set_pte'; did you mean 'set_ptes'? [-Werror=implicit-function-declaration]
     238 |                 set_pte(ptep, pte);
         |                 ^~~~~~~
         |                 set_ptes
   include/linux/pgtable.h: In function 'ptep_test_and_clear_young':
   include/linux/pgtable.h:302:14: error: implicit declaration of function 'pte_young'; did you mean 'pmd_young'? [-Werror=implicit-function-declaration]
     302 |         if (!pte_young(pte))
         |              ^~~~~~~~~
         |              pmd_young
   include/linux/pgtable.h:305:55: error: implicit declaration of function 'pte_mkold' [-Werror=implicit-function-declaration]
     305 |                 set_pte_at(vma->vm_mm, address, ptep, pte_mkold(pte));
         |                                                       ^~~~~~~~~
   include/linux/pgtable.h:247:66: note: in definition of macro 'set_pte_at'
     247 | #define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1)
         |                                                                  ^~~
   include/linux/pgtable.h:305:55: error: incompatible type for argument 4 of 'set_ptes'
     305 |                 set_pte_at(vma->vm_mm, address, ptep, pte_mkold(pte));
         |                                                       ^~~~~~~~~~~~~~
         |                                                       |
         |                                                       int
   include/linux/pgtable.h:247:66: note: in definition of macro 'set_pte_at'
     247 | #define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1)
         |                                                                  ^~~
   include/linux/pgtable.h:232:36: note: expected 'pte_t' but argument is of type 'int'
     232 |                 pte_t *ptep, pte_t pte, unsigned int nr)
         |                              ~~~~~~^~~
   include/linux/pgtable.h: In function 'pmdp_test_and_clear_young':
>> include/linux/pgtable.h:321:17: error: implicit declaration of function 'set_pmd_at'; did you mean 'set_pte_at'? [-Werror=implicit-function-declaration]
     321 |                 set_pmd_at(vma->vm_mm, address, pmdp, pmd_mkold(pmd));
         |                 ^~~~~~~~~~
         |                 set_pte_at
>> include/linux/pgtable.h:321:55: error: implicit declaration of function 'pmd_mkold' [-Werror=implicit-function-declaration]
     321 |                 set_pmd_at(vma->vm_mm, address, pmdp, pmd_mkold(pmd));
         |                                                       ^~~~~~~~~
   include/linux/pgtable.h: In function 'ptep_get_and_clear':
   include/linux/pgtable.h:402:9: error: implicit declaration of function 'pte_clear'; did you mean 'p4d_clear'? [-Werror=implicit-function-declaration]
     402 |         pte_clear(mm, address, ptep);
         |         ^~~~~~~~~
         |         p4d_clear
   include/linux/pgtable.h: In function 'pmdp_huge_get_and_clear':
>> include/linux/pgtable.h:505:9: error: implicit declaration of function 'pmd_clear'; did you mean 'p4d_clear'? [-Werror=implicit-function-declaration]
     505 |         pmd_clear(pmdp);
         |         ^~~~~~~~~
         |         p4d_clear
   include/linux/pgtable.h: In function 'pudp_huge_get_and_clear':
>> include/linux/pgtable.h:518:9: error: implicit declaration of function 'pud_clear'; did you mean 'p4d_clear'? [-Werror=implicit-function-declaration]
     518 |         pud_clear(pudp);
         |         ^~~~~~~~~
         |         p4d_clear
   include/linux/pgtable.h: In function 'pte_mkwrite':
   include/linux/pgtable.h:605:16: error: implicit declaration of function 'pte_mkwrite_novma'; did you mean 'pte_mkwrite'? [-Werror=implicit-function-declaration]
     605 |         return pte_mkwrite_novma(pte);
         |                ^~~~~~~~~~~~~~~~~
         |                pte_mkwrite
   include/linux/pgtable.h:605:16: error: incompatible types when returning type 'int' but 'pte_t' was expected
     605 |         return pte_mkwrite_novma(pte);
         |                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h: In function 'pmd_mkwrite':
>> include/linux/pgtable.h:612:16: error: implicit declaration of function 'pmd_mkwrite_novma'; did you mean 'pmd_mkwrite'? [-Werror=implicit-function-declaration]
     612 |         return pmd_mkwrite_novma(pmd);
         |                ^~~~~~~~~~~~~~~~~
         |                pmd_mkwrite
>> include/linux/pgtable.h:612:16: error: incompatible types when returning type 'int' but 'pmd_t' was expected
     612 |         return pmd_mkwrite_novma(pmd);
         |                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h: In function 'ptep_set_wrprotect':
   include/linux/pgtable.h:621:39: error: implicit declaration of function 'pte_wrprotect'; did you mean 'ptep_set_wrprotect'? [-Werror=implicit-function-declaration]
     621 |         set_pte_at(mm, address, ptep, pte_wrprotect(old_pte));
         |                                       ^~~~~~~~~~~~~
   include/linux/pgtable.h:247:66: note: in definition of macro 'set_pte_at'
     247 | #define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1)
         |                                                                  ^~~
   include/linux/pgtable.h:621:39: error: incompatible type for argument 4 of 'set_ptes'
     621 |         set_pte_at(mm, address, ptep, pte_wrprotect(old_pte));
         |                                       ^~~~~~~~~~~~~~~~~~~~~~
         |                                       |
         |                                       int
   include/linux/pgtable.h:247:66: note: in definition of macro 'set_pte_at'
     247 | #define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1)
         |                                                                  ^~~
   include/linux/pgtable.h:232:36: note: expected 'pte_t' but argument is of type 'int'
     232 |                 pte_t *ptep, pte_t pte, unsigned int nr)
         |                              ~~~~~~^~~
   include/linux/pgtable.h: In function 'pmdp_set_wrprotect':
>> include/linux/pgtable.h:647:39: error: implicit declaration of function 'pmd_wrprotect'; did you mean 'pmdp_set_wrprotect'? [-Werror=implicit-function-declaration]
     647 |         set_pmd_at(mm, address, pmdp, pmd_wrprotect(old_pmd));
         |                                       ^~~~~~~~~~~~~
         |                                       pmdp_set_wrprotect
   include/linux/pgtable.h: In function 'pud_none_or_clear_bad':
   include/linux/pgtable.h:1015:13: error: implicit declaration of function 'pud_none'; did you mean 'p4d_none'? [-Werror=implicit-function-declaration]
    1015 |         if (pud_none(*pud))
         |             ^~~~~~~~
         |             p4d_none
   In file included from include/linux/export.h:5,
                    from include/linux/linkage.h:7,
                    from include/linux/preempt.h:10,
                    from include/linux/spinlock.h:56:
   include/linux/pgtable.h:1017:22: error: implicit declaration of function 'pud_bad'; did you mean 'p4d_bad'? [-Werror=implicit-function-declaration]
    1017 |         if (unlikely(pud_bad(*pud))) {
         |                      ^~~~~~~
   include/linux/compiler.h:77:45: note: in definition of macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                                             ^
   include/linux/pgtable.h: In function 'pmd_none_or_clear_bad':
   include/linux/pgtable.h:1028:22: error: implicit declaration of function 'pmd_bad'; did you mean 'p4d_bad'? [-Werror=implicit-function-declaration]
    1028 |         if (unlikely(pmd_bad(*pmd))) {
         |                      ^~~~~~~
   include/linux/compiler.h:77:45: note: in definition of macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                                             ^
   In file included from arch/arm64/include/asm/pgtable.h:14:
   arch/arm64/include/asm/pgtable-prot.h: At top level:
   arch/arm64/include/asm/pgtable-prot.h:85: warning: "PAGE_KERNEL_RO" redefined
      85 | #define PAGE_KERNEL_RO          __pgprot(_PAGE_KERNEL_RO)
         | 
   include/linux/pgtable.h:1539: note: this is the location of the previous definition
    1539 | # define PAGE_KERNEL_RO PAGE_KERNEL
         | 
   arch/arm64/include/asm/pgtable-prot.h:87: warning: "PAGE_KERNEL_EXEC" redefined
      87 | #define PAGE_KERNEL_EXEC        __pgprot(_PAGE_KERNEL_EXEC)
         | 
   include/linux/pgtable.h:1543: note: this is the location of the previous definition
    1543 | # define PAGE_KERNEL_EXEC PAGE_KERNEL
         | 
>> arch/arm64/include/asm/pgtable.h:42: warning: "flush_pmd_tlb_range" redefined
      42 | #define flush_pmd_tlb_range(vma, addr, end)     \
         | 
   include/linux/pgtable.h:1498: note: this is the location of the previous definition
    1498 | #define flush_pmd_tlb_range(vma, addr, end)     flush_tlb_range(vma, addr, end)
         | 
>> arch/arm64/include/asm/pgtable.h:44: warning: "flush_pud_tlb_range" redefined
      44 | #define flush_pud_tlb_range(vma, addr, end)     \
         | 
   include/linux/pgtable.h:1499: note: this is the location of the previous definition
    1499 | #define flush_pud_tlb_range(vma, addr, end)     flush_tlb_range(vma, addr, end)
         | 
   arch/arm64/include/asm/pgtable.h:60: warning: "flush_tlb_fix_spurious_fault" redefined
      60 | #define flush_tlb_fix_spurious_fault(vma, address, ptep) do { } while (0)
         | 
   include/linux/pgtable.h:935: note: this is the location of the previous definition
     935 | #define flush_tlb_fix_spurious_fault(vma, address, ptep) flush_tlb_page(vma, address)
         | 
   arch/arm64/include/asm/pgtable.h:143: warning: "pte_accessible" redefined
     143 | #define pte_accessible(mm, pte) \
         | 
   include/linux/pgtable.h:931: note: this is the location of the previous definition
     931 | # define pte_accessible(mm, pte)        ((void)(pte), 1)
         | 
   arch/arm64/include/asm/pgtable.h:153: warning: "pte_access_permitted" redefined
     153 | #define pte_access_permitted(pte, write) \
         | 
   include/linux/pgtable.h:767: note: this is the location of the previous definition
     767 | #define pte_access_permitted(pte, write) \
         | 
   arch/arm64/include/asm/pgtable.h:155: warning: "pmd_access_permitted" redefined
     155 | #define pmd_access_permitted(pmd, write) \
         | 
   include/linux/pgtable.h:772: note: this is the location of the previous definition
     772 | #define pmd_access_permitted(pmd, write) \
         | 
   arch/arm64/include/asm/pgtable.h:157: warning: "pud_access_permitted" redefined
     157 | #define pud_access_permitted(pud, write) \
         | 
   include/linux/pgtable.h:777: note: this is the location of the previous definition
     777 | #define pud_access_permitted(pud, write) \
         | 
   arch/arm64/include/asm/pgtable.h:184:21: error: conflicting types for 'pte_mkwrite_novma'; have 'pte_t(pte_t)'
     184 | static inline pte_t pte_mkwrite_novma(pte_t pte)
         |                     ^~~~~~~~~~~~~~~~~
   include/linux/pgtable.h:605:16: note: previous implicit declaration of 'pte_mkwrite_novma' with type 'int()'
     605 |         return pte_mkwrite_novma(pte);
         |                ^~~~~~~~~~~~~~~~~
   arch/arm64/include/asm/pgtable.h:209:21: error: conflicting types for 'pte_wrprotect'; have 'pte_t(pte_t)'
     209 | static inline pte_t pte_wrprotect(pte_t pte)
         |                     ^~~~~~~~~~~~~
   include/linux/pgtable.h:621:39: note: previous implicit declaration of 'pte_wrprotect' with type 'int()'
     621 |         set_pte_at(mm, address, ptep, pte_wrprotect(old_pte));
         |                                       ^~~~~~~~~~~~~
   include/linux/pgtable.h:247:66: note: in definition of macro 'set_pte_at'
     247 | #define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1)
         |                                                                  ^~~
   arch/arm64/include/asm/pgtable.h:223:21: error: conflicting types for 'pte_mkold'; have 'pte_t(pte_t)'
     223 | static inline pte_t pte_mkold(pte_t pte)
         |                     ^~~~~~~~~
   include/linux/pgtable.h:305:55: note: previous implicit declaration of 'pte_mkold' with type 'int()'
     305 |                 set_pte_at(vma->vm_mm, address, ptep, pte_mkold(pte));
         |                                                       ^~~~~~~~~
   include/linux/pgtable.h:247:66: note: in definition of macro 'set_pte_at'
     247 | #define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1)
         |                                                                  ^~~
   arch/arm64/include/asm/pgtable.h:264:20: warning: conflicting types for 'set_pte'; have 'void(pte_t *, pte_t)'
     264 | static inline void set_pte(pte_t *ptep, pte_t pte)
         |                    ^~~~~~~
   arch/arm64/include/asm/pgtable.h:264:20: error: static declaration of 'set_pte' follows non-static declaration
   include/linux/pgtable.h:238:17: note: previous implicit declaration of 'set_pte' with type 'void(pte_t *, pte_t)'
     238 |                 set_pte(ptep, pte);
         |                 ^~~~~~~
   arch/arm64/include/asm/pgtable.h:349:20: error: redefinition of 'set_ptes'
     349 | static inline void set_ptes(struct mm_struct *mm, unsigned long addr,
         |                    ^~~~~~~~
   include/linux/pgtable.h:231:20: note: previous definition of 'set_ptes' with type 'void(struct mm_struct *, long unsigned int,  pte_t *, pte_t,  unsigned int)'
     231 | static inline void set_ptes(struct mm_struct *mm, unsigned long addr,
         |                    ^~~~~~~~
>> arch/arm64/include/asm/pgtable.h:534:20: warning: conflicting types for 'set_pmd_at'; have 'void(struct mm_struct *, long unsigned int,  pmd_t *, pmd_t)'
     534 | static inline void set_pmd_at(struct mm_struct *mm, unsigned long addr,
         |                    ^~~~~~~~~~
>> arch/arm64/include/asm/pgtable.h:534:20: error: static declaration of 'set_pmd_at' follows non-static declaration
   include/linux/pgtable.h:321:17: note: previous implicit declaration of 'set_pmd_at' with type 'void(struct mm_struct *, long unsigned int,  pmd_t *, pmd_t)'
     321 |                 set_pmd_at(vma->vm_mm, address, pmdp, pmd_mkold(pmd));
         |                 ^~~~~~~~~~
   arch/arm64/include/asm/pgtable.h:557: warning: "pgprot_nx" redefined
     557 | #define pgprot_nx(prot) \
         | 
   include/linux/pgtable.h:1099: note: this is the location of the previous definition
    1099 | #define pgprot_nx(prot) (prot)
         | 
   arch/arm64/include/asm/pgtable.h:563: warning: "pgprot_noncached" redefined
     563 | #define pgprot_noncached(prot) \
         | 
   include/linux/pgtable.h:1103: note: this is the location of the previous definition
    1103 | #define pgprot_noncached(prot)  (prot)
         | 
   arch/arm64/include/asm/pgtable.h:565: warning: "pgprot_writecombine" redefined
     565 | #define pgprot_writecombine(prot) \
         | 
   include/linux/pgtable.h:1107: note: this is the location of the previous definition
    1107 | #define pgprot_writecombine pgprot_noncached
         | 
   arch/arm64/include/asm/pgtable.h:567: warning: "pgprot_device" redefined
     567 | #define pgprot_device(prot) \
         | 
   include/linux/pgtable.h:1115: note: this is the location of the previous definition
    1115 | #define pgprot_device pgprot_noncached
         | 
   arch/arm64/include/asm/pgtable.h:571: warning: "pgprot_mhp" redefined
     571 | #define pgprot_mhp      pgprot_tagged
         | 
   include/linux/pgtable.h:1119: note: this is the location of the previous definition
    1119 | #define pgprot_mhp(prot)        (prot)
         | 
   arch/arm64/include/asm/pgtable.h:595: warning: "pmd_leaf" redefined
     595 | #define pmd_leaf(pmd)           (pmd_present(pmd) && !pmd_table(pmd))
         | 
   include/linux/pgtable.h:1634: note: this is the location of the previous definition
    1634 | #define pmd_leaf(x)     0
         | 
   arch/arm64/include/asm/pgtable.h:598: warning: "pmd_leaf_size" redefined
     598 | #define pmd_leaf_size(pmd)      (pmd_cont(pmd) ? CONT_PMD_SIZE : PMD_SIZE)
         | 
   include/linux/pgtable.h:1647: note: this is the location of the previous definition
    1647 | #define pmd_leaf_size(x) PMD_SIZE
         | 
   arch/arm64/include/asm/pgtable.h:599: warning: "pte_leaf_size" redefined
     599 | #define pte_leaf_size(pte)      (pte_cont(pte) ? CONT_PTE_SIZE : PAGE_SIZE)
         | 
   include/linux/pgtable.h:1650: note: this is the location of the previous definition
    1650 | #define pte_leaf_size(x) PAGE_SIZE
         | 
>> arch/arm64/include/asm/pgtable.h:643:20: warning: conflicting types for 'pmd_clear'; have 'void(pmd_t *)'
     643 | static inline void pmd_clear(pmd_t *pmdp)
         |                    ^~~~~~~~~
>> arch/arm64/include/asm/pgtable.h:643:20: error: static declaration of 'pmd_clear' follows non-static declaration
   include/linux/pgtable.h:505:9: note: previous implicit declaration of 'pmd_clear' with type 'void(pmd_t *)'
     505 |         pmd_clear(pmdp);
         |         ^~~~~~~~~
   arch/arm64/include/asm/pgtable.h:653:29: error: conflicting types for 'pmd_page_vaddr'; have 'long unsigned int(pmd_t)'
     653 | static inline unsigned long pmd_page_vaddr(pmd_t pmd)
         |                             ^~~~~~~~~~~~~~
   include/linux/pgtable.h:94:25: note: previous implicit declaration of 'pmd_page_vaddr' with type 'int()'
      94 |         return (pte_t *)pmd_page_vaddr(*pmd) + pte_index(address);
         |                         ^~~~~~~~~~~~~~
   arch/arm64/include/asm/pgtable.h:684: warning: "pud_leaf" redefined
     684 | #define pud_leaf(pud)           (pud_present(pud) && !pud_table(pud))
         | 
   include/linux/pgtable.h:1631: note: this is the location of the previous definition
    1631 | #define pud_leaf(x)     0
         | 
>> arch/arm64/include/asm/pgtable.h:706:20: warning: conflicting types for 'pud_clear'; have 'void(pud_t *)'
     706 | static inline void pud_clear(pud_t *pudp)
         |                    ^~~~~~~~~
>> arch/arm64/include/asm/pgtable.h:706:20: error: static declaration of 'pud_clear' follows non-static declaration
   include/linux/pgtable.h:518:9: note: previous implicit declaration of 'pud_clear' with type 'void(pud_t *)'
     518 |         pud_clear(pudp);
         |         ^~~~~~~~~
   arch/arm64/include/asm/pgtable.h:716:22: error: conflicting types for 'pud_pgtable'; have 'pmd_t *(pud_t)'
     716 | static inline pmd_t *pud_pgtable(pud_t pud)
         |                      ^~~~~~~~~~~
   include/linux/pgtable.h:123:16: note: previous implicit declaration of 'pud_pgtable' with type 'int()'
     123 |         return pud_pgtable(*pud) + pmd_index(address);
         |                ^~~~~~~~~~~
>> arch/arm64/include/asm/pgtable.h:844:19: error: static declaration of 'pmdp_set_access_flags' follows non-static declaration
     844 | static inline int pmdp_set_access_flags(struct vm_area_struct *vma,
         |                   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h:257:12: note: previous declaration of 'pmdp_set_access_flags' with type 'int(struct vm_area_struct *, long unsigned int,  pmd_t *, pmd_t,  int)'
     257 | extern int pmdp_set_access_flags(struct vm_area_struct *vma,
         |            ^~~~~~~~~~~~~~~~~~~~~
   arch/arm64/include/asm/pgtable.h:898:19: error: redefinition of 'ptep_test_and_clear_young'
     898 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma,
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h:296:19: note: previous definition of 'ptep_test_and_clear_young' with type 'int(struct vm_area_struct *, long unsigned int,  pte_t *)'
     296 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma,
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/arm64/include/asm/pgtable.h:906:19: error: static declaration of 'ptep_clear_flush_young' follows non-static declaration
     906 | static inline int ptep_clear_flush_young(struct vm_area_struct *vma,
         |                   ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h:336:5: note: previous declaration of 'ptep_clear_flush_young' with type 'int(struct vm_area_struct *, long unsigned int,  pte_t *)'
     336 | int ptep_clear_flush_young(struct vm_area_struct *vma,
         |     ^~~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/include/asm/pgtable.h:928:19: error: redefinition of 'pmdp_test_and_clear_young'
     928 | static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma,
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h:312:19: note: previous definition of 'pmdp_test_and_clear_young' with type 'int(struct vm_area_struct *, long unsigned int,  pmd_t *)'
     312 | static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma,
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/arm64/include/asm/pgtable.h:937:21: error: redefinition of 'ptep_get_and_clear'
     937 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
         |                     ^~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h:397:21: note: previous definition of 'ptep_get_and_clear' with type 'pte_t(struct mm_struct *, long unsigned int,  pte_t *)'
     397 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
         |                     ^~~~~~~~~~~~~~~~~~
>> arch/arm64/include/asm/pgtable.h:949:21: error: redefinition of 'pmdp_huge_get_and_clear'
     949 | static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm,
         |                     ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h:499:21: note: previous definition of 'pmdp_huge_get_and_clear' with type 'pmd_t(struct mm_struct *, long unsigned int,  pmd_t *)'
     499 | static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm,
         |                     ^~~~~~~~~~~~~~~~~~~~~~~
   arch/arm64/include/asm/pgtable.h:965:20: error: redefinition of 'ptep_set_wrprotect'
     965 | static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long address, pte_t *ptep)
         |                    ^~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h:618:20: note: previous definition of 'ptep_set_wrprotect' with type 'void(struct mm_struct *, long unsigned int,  pte_t *)'
     618 | static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long address, pte_t *ptep)
         |                    ^~~~~~~~~~~~~~~~~~
>> arch/arm64/include/asm/pgtable.h:980:20: error: redefinition of 'pmdp_set_wrprotect'
     980 | static inline void pmdp_set_wrprotect(struct mm_struct *mm,
         |                    ^~~~~~~~~~~~~~~~~~
   include/linux/pgtable.h:643:20: note: previous definition of 'pmdp_set_wrprotect' with type 'void(struct mm_struct *, long unsigned int,  pmd_t *)'
     643 | static inline void pmdp_set_wrprotect(struct mm_struct *mm,
         |                    ^~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
..


vim +321 include/linux/pgtable.h

e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  309  
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  310  #ifndef __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG
eed9a328aa1ae6 include/linux/pgtable.h       Yu Zhao          2022-09-18  311  #if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG)
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  312  static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  313  					    unsigned long address,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  314  					    pmd_t *pmdp)
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  315  {
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  316  	pmd_t pmd = *pmdp;
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  317  	int r = 1;
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  318  	if (!pmd_young(pmd))
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  319  		r = 0;
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  320  	else
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13 @321  		set_pmd_at(vma->vm_mm, address, pmdp, pmd_mkold(pmd));
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  322  	return r;
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  323  }
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  324  #else
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  325  static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  326  					    unsigned long address,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  327  					    pmd_t *pmdp)
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  328  {
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  329  	BUILD_BUG();
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  330  	return 0;
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  331  }
eed9a328aa1ae6 include/linux/pgtable.h       Yu Zhao          2022-09-18  332  #endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG */
^1da177e4c3f41 include/asm-generic/pgtable.h Linus Torvalds   2005-04-16  333  #endif
^1da177e4c3f41 include/asm-generic/pgtable.h Linus Torvalds   2005-04-16  334  
^1da177e4c3f41 include/asm-generic/pgtable.h Linus Torvalds   2005-04-16  335  #ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  336  int ptep_clear_flush_young(struct vm_area_struct *vma,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  337  			   unsigned long address, pte_t *ptep);
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  338  #endif
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  339  
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  340  #ifndef __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  341  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  342  extern int pmdp_clear_flush_young(struct vm_area_struct *vma,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  343  				  unsigned long address, pmd_t *pmdp);
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  344  #else
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  345  /*
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  346   * Despite relevant to THP only, this API is called from generic rmap code
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  347   * under PageTransHuge(), hence needs a dummy implementation for !THP
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  348   */
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  349  static inline int pmdp_clear_flush_young(struct vm_area_struct *vma,
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  350  					 unsigned long address, pmd_t *pmdp)
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  351  {
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  352  	BUILD_BUG();
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  353  	return 0;
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  354  }
bd5e88ad72b26e include/asm-generic/pgtable.h Vineet Gupta     2015-07-09  355  #endif /* CONFIG_TRANSPARENT_HUGEPAGE */
^1da177e4c3f41 include/asm-generic/pgtable.h Linus Torvalds   2005-04-16  356  #endif
^1da177e4c3f41 include/asm-generic/pgtable.h Linus Torvalds   2005-04-16  357  
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  358  #ifndef arch_has_hw_nonleaf_pmd_young
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  359  /*
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  360   * Return whether the accessed bit in non-leaf PMD entries is supported on the
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  361   * local CPU.
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  362   */
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  363  static inline bool arch_has_hw_nonleaf_pmd_young(void)
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  364  {
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  365  	return IS_ENABLED(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG);
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  366  }
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  367  #endif
4aaf269c768dba include/linux/pgtable.h       Juergen Gross    2022-11-23  368  
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  369  #ifndef arch_has_hw_pte_young
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  370  /*
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  371   * Return whether the accessed bit is supported on the local CPU.
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  372   *
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  373   * This stub assumes accessing through an old PTE triggers a page fault.
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  374   * Architectures that automatically set the access bit should overwrite it.
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  375   */
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  376  static inline bool arch_has_hw_pte_young(void)
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  377  {
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  378  	return false;
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  379  }
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  380  #endif
e1fd09e3d1dd4a include/linux/pgtable.h       Yu Zhao          2022-09-18  381  
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  382  #ifndef arch_check_zapped_pte
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  383  static inline void arch_check_zapped_pte(struct vm_area_struct *vma,
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  384  					 pte_t pte)
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  385  {
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  386  }
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  387  #endif
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  388  
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  389  #ifndef arch_check_zapped_pmd
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  390  static inline void arch_check_zapped_pmd(struct vm_area_struct *vma,
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  391  					 pmd_t pmd)
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  392  {
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  393  }
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  394  #endif
e5136e876581ba include/linux/pgtable.h       Rick Edgecombe   2023-06-12  395  
^1da177e4c3f41 include/asm-generic/pgtable.h Linus Torvalds   2005-04-16  396  #ifndef __HAVE_ARCH_PTEP_GET_AND_CLEAR
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  397  static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  398  				       unsigned long address,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  399  				       pte_t *ptep)
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  400  {
c33c794828f212 include/linux/pgtable.h       Ryan Roberts     2023-06-12  401  	pte_t pte = ptep_get(ptep);
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  402  	pte_clear(mm, address, ptep);
aa232204c46894 include/linux/pgtable.h       Kemeng Shi       2023-07-14  403  	page_table_check_pte_clear(mm, pte);
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  404  	return pte;
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  405  }
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  406  #endif
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  407  
de8c8e52836d00 include/linux/pgtable.h       Tong Tiangen     2022-05-12  408  static inline void ptep_clear(struct mm_struct *mm, unsigned long addr,
de8c8e52836d00 include/linux/pgtable.h       Tong Tiangen     2022-05-12  409  			      pte_t *ptep)
de8c8e52836d00 include/linux/pgtable.h       Tong Tiangen     2022-05-12  410  {
de8c8e52836d00 include/linux/pgtable.h       Tong Tiangen     2022-05-12  411  	ptep_get_and_clear(mm, addr, ptep);
de8c8e52836d00 include/linux/pgtable.h       Tong Tiangen     2022-05-12  412  }
de8c8e52836d00 include/linux/pgtable.h       Tong Tiangen     2022-05-12  413  
6ca297d4784625 include/linux/pgtable.h       Peter Zijlstra   2022-10-21  414  #ifdef CONFIG_GUP_GET_PXX_LOW_HIGH
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  415  /*
93b3037a148275 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  416   * For walking the pagetables without holding any locks.  Some architectures
93b3037a148275 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  417   * (eg x86-32 PAE) cannot load the entries atomically without using expensive
93b3037a148275 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  418   * instructions.  We are guaranteed that a PTE will only either go from not
93b3037a148275 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  419   * present to present, or present to not present -- it will not switch to a
93b3037a148275 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  420   * completely different present page without a TLB flush inbetween; which we
93b3037a148275 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  421   * are blocking by holding interrupts off.
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  422   *
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  423   * Setting ptes from not present to present goes:
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  424   *
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  425   *   ptep->pte_high = h;
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  426   *   smp_wmb();
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  427   *   ptep->pte_low = l;
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  428   *
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  429   * And present to not present goes:
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  430   *
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  431   *   ptep->pte_low = 0;
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  432   *   smp_wmb();
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  433   *   ptep->pte_high = 0;
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  434   *
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  435   * We must ensure here that the load of pte_low sees 'l' IFF pte_high sees 'h'.
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  436   * We load pte_high *after* loading pte_low, which ensures we don't see an older
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  437   * value of pte_high.  *Then* we recheck pte_low, which ensures that we haven't
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  438   * picked up a changed pte high. We might have gotten rubbish values from
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  439   * pte_low and pte_high, but we are guaranteed that pte_low will not have the
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  440   * present bit set *unless* it is 'l'. Because get_user_pages_fast() only
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  441   * operates on present ptes we're safe.
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  442   */
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  443  static inline pte_t ptep_get_lockless(pte_t *ptep)
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  444  {
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  445  	pte_t pte;
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  446  
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  447  	do {
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  448  		pte.pte_low = ptep->pte_low;
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  449  		smp_rmb();
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  450  		pte.pte_high = ptep->pte_high;
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  451  		smp_rmb();
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  452  	} while (unlikely(pte.pte_low != ptep->pte_low));
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  453  
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  454  	return pte;
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  455  }
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  456  #define ptep_get_lockless ptep_get_lockless
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  457  
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  458  #if CONFIG_PGTABLE_LEVELS > 2
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  459  static inline pmd_t pmdp_get_lockless(pmd_t *pmdp)
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  460  {
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  461  	pmd_t pmd;
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  462  
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  463  	do {
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  464  		pmd.pmd_low = pmdp->pmd_low;
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  465  		smp_rmb();
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  466  		pmd.pmd_high = pmdp->pmd_high;
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  467  		smp_rmb();
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  468  	} while (unlikely(pmd.pmd_low != pmdp->pmd_low));
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  469  
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  470  	return pmd;
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  471  }
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  472  #define pmdp_get_lockless pmdp_get_lockless
146b42e07494e4 include/linux/pgtable.h       Hugh Dickins     2023-07-11  473  #define pmdp_get_lockless_sync() tlb_remove_table_sync_one()
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  474  #endif /* CONFIG_PGTABLE_LEVELS > 2 */
6ca297d4784625 include/linux/pgtable.h       Peter Zijlstra   2022-10-21  475  #endif /* CONFIG_GUP_GET_PXX_LOW_HIGH */
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  476  
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  477  /*
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  478   * We require that the PTE can be read atomically.
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  479   */
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  480  #ifndef ptep_get_lockless
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  481  static inline pte_t ptep_get_lockless(pte_t *ptep)
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  482  {
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  483  	return ptep_get(ptep);
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  484  }
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  485  #endif
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  486  
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  487  #ifndef pmdp_get_lockless
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  488  static inline pmd_t pmdp_get_lockless(pmd_t *pmdp)
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  489  {
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  490  	return pmdp_get(pmdp);
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  491  }
146b42e07494e4 include/linux/pgtable.h       Hugh Dickins     2023-07-11  492  static inline void pmdp_get_lockless_sync(void)
146b42e07494e4 include/linux/pgtable.h       Hugh Dickins     2023-07-11  493  {
146b42e07494e4 include/linux/pgtable.h       Hugh Dickins     2023-07-11  494  }
024d232ae4fcd7 include/linux/pgtable.h       Peter Zijlstra   2020-11-26  495  #endif
2a4a06da8a4b93 include/linux/pgtable.h       Peter Zijlstra   2020-11-13  496  
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  497  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  498  #ifndef __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR
8809aa2d28d741 include/asm-generic/pgtable.h Aneesh Kumar K.V 2015-06-24  499  static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  500  					    unsigned long address,
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  501  					    pmd_t *pmdp)
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  502  {
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  503  	pmd_t pmd = *pmdp;
de8c8e52836d00 include/linux/pgtable.h       Tong Tiangen     2022-05-12  504  
2d28a2275c21d0 include/asm-generic/pgtable.h Catalin Marinas  2012-10-08 @505  	pmd_clear(pmdp);
1831414cd729a3 include/linux/pgtable.h       Kemeng Shi       2023-07-14  506  	page_table_check_pmd_clear(mm, pmd);
de8c8e52836d00 include/linux/pgtable.h       Tong Tiangen     2022-05-12  507  
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  508  	return pmd;
49b24d6b41c576 include/asm-generic/pgtable.h Nicolas Kaiser   2011-06-15  509  }
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  510  #endif /* __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR */
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  511  #ifndef __HAVE_ARCH_PUDP_HUGE_GET_AND_CLEAR
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  512  static inline pud_t pudp_huge_get_and_clear(struct mm_struct *mm,
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  513  					    unsigned long address,
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  514  					    pud_t *pudp)
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  515  {
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  516  	pud_t pud = *pudp;
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  517  
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24 @518  	pud_clear(pudp);
931c38e16499a0 include/linux/pgtable.h       Kemeng Shi       2023-07-14  519  	page_table_check_pud_clear(mm, pud);
de8c8e52836d00 include/linux/pgtable.h       Tong Tiangen     2022-05-12  520  
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  521  	return pud;
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  522  }
a00cc7d9dd93d6 include/asm-generic/pgtable.h Matthew Wilcox   2017-02-24  523  #endif /* __HAVE_ARCH_PUDP_HUGE_GET_AND_CLEAR */
e2cda322648122 include/asm-generic/pgtable.h Andrea Arcangeli 2011-01-13  524  #endif /* CONFIG_TRANSPARENT_HUGEPAGE */
^1da177e4c3f41 include/asm-generic/pgtable.h Linus Torvalds   2005-04-16  525  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  parent reply	other threads:[~2023-10-08 15:48 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-08 10:49 [PATCH 0/3] delayacct: optimization & code simplify brookxu.cn
2023-10-08 10:49 ` [PATCH 1/3] delayacct: introduce delayacct_enabled() to simplify implement brookxu.cn
2023-10-08 10:56   ` Peter Zijlstra
2023-10-08 11:03     ` brookxu
2023-10-08 10:49 ` [PATCH 2/3] delayacct: convert task->delays to a object brookxu.cn
2023-10-08 10:58   ` Peter Zijlstra
2023-10-08 11:10     ` brookxu
2023-10-09  8:43       ` Peter Zijlstra
2023-10-09 10:29         ` brookxu
2023-10-09 14:17           ` Peter Zijlstra
2023-10-09 11:38         ` brookxu
2023-10-09 14:18           ` Peter Zijlstra
2023-10-08 13:42   ` kernel test robot
2023-10-08 15:47   ` kernel test robot [this message]
2023-10-08 16:18   ` kernel test robot
2023-10-08 10:49 ` [PATCH 3/3] delayacct: remove delayacct_on to simplify the code brookxu.cn

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=202310082358.5mUe4Xjy-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=brookxu.cn@gmail.com \
    --cc=bsingharora@gmail.com \
    --cc=juri.lelli@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=peterz@infradead.org \
    --cc=vincent.guittot@linaro.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: 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.