Re: [RFC PATCH v4 4/6] mm: Add page table level flags to vm_flags

From: Steven Rostedt
Date: Tue Mar 24 2020 - 14:44:41 EST


On Tue, 24 Mar 2020 21:45:32 +0800
Zhenyu Ye <yezhenyu2@xxxxxxxxxx> wrote:

> --- a/include/trace/events/mmflags.h
> +++ b/include/trace/events/mmflags.h
> @@ -130,6 +130,16 @@ IF_HAVE_PG_IDLE(PG_idle, "idle" )
> #define IF_HAVE_VM_SOFTDIRTY(flag,name)
> #endif
>
> +#ifdef CONFIG_64BIT
> +#define IF_HAVE_VM_LEVEL_PUD(flag,name) {flag, name}
> +#define IF_HAVE_VM_LEVEL_PMD(flag,name) {flag, name}
> +#define IF_HAVE_VM_LEVEL_PTE(flag,name) {flag, name}
> +#else
> +#define IF_HAVE_VM_LEVEL_PUD(flag,name)
> +#define IF_HAVE_VM_LEVEL_PMD(flag,name)
> +#define IF_HAVE_VM_LEVEL_PTE(flag,name)
> +#endif
> +
> #define __def_vmaflag_names \
> {VM_READ, "read" }, \
> {VM_WRITE, "write" }, \
> @@ -161,7 +171,10 @@ IF_HAVE_VM_SOFTDIRTY(VM_SOFTDIRTY, "softdirty" ) \
> {VM_MIXEDMAP, "mixedmap" }, \
> {VM_HUGEPAGE, "hugepage" }, \
> {VM_NOHUGEPAGE, "nohugepage" }, \
> - {VM_MERGEABLE, "mergeable" } \
> + {VM_MERGEABLE, "mergeable" }, \
> +IF_HAVE_VM_LEVEL_PUD(VM_LEVEL_PUD, "pud-level" ), \
> +IF_HAVE_VM_LEVEL_PMD(VM_LEVEL_PMD, "pmd-level" ), \
> +IF_HAVE_VM_LEVEL_PTE(VM_LEVEL_PTE, "pte-level" ) \
>

Have you tested this on 32bit? It looks like you'll get empty commas there.
Perhaps the defines need to be:

#ifdef CONFIG_64BIT
#define IF_HAVE_VM_LEVEL_PUD(flag,name) {flag, name},
#define IF_HAVE_VM_LEVEL_PMD(flag,name) {flag, name},
#define IF_HAVE_VM_LEVEL_PTE(flag,name) {flag, name}
#else
#define IF_HAVE_VM_LEVEL_PUD(flag,name)
#define IF_HAVE_VM_LEVEL_PMD(flag,name)
#define IF_HAVE_VM_LEVEL_PTE(flag,name)
#endif

And leave out the commas in the list.

-- Steve