On Fri, Dec 5, 2014 at 11:57 AM, Wang, Yalin <Yalin.Wang@xxxxxxxxxxxxxx> wrote: > This patch add KPF_ZERO_PAGE flag for zero_page, > so that userspace process can notice zero_page from > /proc/kpageflags, and then do memory analysis more accurately. It would be nice to mark also huge_zero_page. See (completely untested) patch in attachment. > > Signed-off-by: Yalin Wang <yalin.wang@xxxxxxxxxxxxxx> > --- > fs/proc/page.c | 3 +++ > include/uapi/linux/kernel-page-flags.h | 1 + > 2 files changed, 4 insertions(+) > > diff --git a/fs/proc/page.c b/fs/proc/page.c > index 1e3187d..120dbf7 100644 > --- a/fs/proc/page.c > +++ b/fs/proc/page.c > @@ -136,6 +136,9 @@ u64 stable_page_flags(struct page *page) > if (PageBalloon(page)) > u |= 1 << KPF_BALLOON; > > + if (is_zero_pfn(page_to_pfn(page))) > + u |= 1 << KPF_ZERO_PAGE; > + > u |= kpf_copy_bit(k, KPF_LOCKED, PG_locked); > > u |= kpf_copy_bit(k, KPF_SLAB, PG_slab); > diff --git a/include/uapi/linux/kernel-page-flags.h b/include/uapi/linux/kernel-page-flags.h > index 2f96d23..a6c4962 100644 > --- a/include/uapi/linux/kernel-page-flags.h > +++ b/include/uapi/linux/kernel-page-flags.h > @@ -32,6 +32,7 @@ > #define KPF_KSM 21 > #define KPF_THP 22 > #define KPF_BALLOON 23 > +#define KPF_ZERO_PAGE 24 > > > #endif /* _UAPILINUX_KERNEL_PAGE_FLAGS_H */ > -- > 2.1.3
Attachment:
kpageflags-zero-huge-page
Description: Binary data