Hi, Arnd, On Thu, Jun 30, 2022 at 2:05 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > On Thu, Jun 30, 2022 at 6:32 AM Huacai Chen <chenhuacai@xxxxxxxxxxx> wrote: > > > > From: Feiyang Chen <chenfeiyang@xxxxxxxxxxx> > > > > Generalise vmemmap_populate_hugepages() so ARM64 & X86 & LoongArch can > > share its implementation. > > Sharing this function is good, thanks for consolidating this > > > Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx> > > Signed-off-by: Feiyang Chen <chenfeiyang@xxxxxxxxxxx> > > The Signed-off-by lines are in the wrong order, it should start with the author > and end with the final submitter. OK, I will change the order. > > > index 33e2a1ceee72..6f2e40bb695d 100644 > > --- a/mm/sparse-vmemmap.c > > +++ b/mm/sparse-vmemmap.c > > @@ -686,6 +686,60 @@ int __meminit vmemmap_populate_basepages(unsigned long start, unsigned long end, > > return vmemmap_populate_range(start, end, node, altmap, NULL); > > } > > > > +void __weak __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node, > > + unsigned long addr, unsigned long next) > > +{ > > +} > > + > > +int __weak __meminit vmemmap_check_pmd(pmd_t *pmd, int node, unsigned long addr, > > + unsigned long next) > > +{ > > + return 0; > > +} > > + > > I think inline functions would be better here, both for compiler optimization > and to make it easier to track the code flow. The normal way we do these > in architecture specific headers is to override the functions by defining a > macro of the same name. In my opinion, weak functions are suitable for overriding if they are only used in a single .c file (this case). If we don't use weak functions, this series needs as many as 4 #ifdefs, for pud_init(), pmd_init(), vmemmap_set_pmd() and vmemmap_check_pmd() respectively, which increase the difficulty of maintain (just my own opinion, maybe not a objective fact). Huacai > > > Arnd