Re: [PATCH V13 4/4] LoongArch: Enable ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 26/10/22 14:59, Huacai Chen wrote:
On Mon, Oct 24, 2022 at 4:04 PM Guo Ren <guoren@xxxxxxxxxx> wrote:
On Mon, Oct 24, 2022 at 3:05 PM Huacai Chen <chenhuacai@xxxxxxxxxxx> wrote:

From: Feiyang Chen <chenfeiyang@xxxxxxxxxxx>

The feature of minimizing overhead of struct page associated with each
HugeTLB page is implemented on x86_64. However, the infrastructure of
this feature is already there, so just select ARCH_WANT_HUGETLB_PAGE_
OPTIMIZE_VMEMMAP is enough to enable this feature for LoongArch.

To avoid the following build error on LoongArch we should include linux/
static_key.h in page-flags.h. This is straightforward but the build
error is implicitly a LoongArch-specific problem, because ARM64 and X86
have already include static_key.h from their arch-specific core headers.

diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 0b0ae5084e60..1aafdc73e399 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -9,6 +9,7 @@
  #include <linux/types.h>
  #include <linux/bug.h>
  #include <linux/mmdebug.h>
+#include <linux/static_key.h>
Em... riscv needn't this.

Would guarding the header suffice and make riscv OK with this patch?

 #ifdef CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
 #include <linux/static_key.h>
 #endif

I found that after 36d4b36b69590fed99356a4426c940a25 (" lib/nodemask:
inline next_node_in() and node_random()"), build errors have gone. But
I think this is just an accident. Because that commit adds random.h
inclusion in nodemask.h, then asm-offsets.c --> sched.h --> nodemask.h
--> random.h --> once.h --> jump_label.h. If one day this chain is
adjusted, then build errors come again.

On the other hand, page-flags.h is obviously using some static_key
macros, including static_key.h is straightforward for building.

Huacai




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux