mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: [PATCH 0/2] Report the size of pages backing VMAs in /proc V3
@ 2008-10-20  9:18 Albert Cahalan
  2008-10-20 10:06 ` Mel Gorman
  0 siblings, 1 reply; 6+ messages in thread
From: Albert Cahalan @ 2008-10-20  9:18 UTC (permalink / raw)
  To: Mel Gorman, adobriyan, kosaki.motohiro, linux-kernel

Adding " (hpagesize=4096kB)" onto the end of a filename is as vile
as adding " (deleted)" onto the end. If anything is going to change
in this area, it should be the elimination of " (deleted)". These
tags are perfectly legitimate in filenames.

Looping on stat() while chopping off suspected tags is dreadful.
Besides just being gross, it's slow.

gdb will tolerate up to 7 flags, procps will tolerate up to 31 flags,
and both will tolerate anything without a '/' before the filename.

Obviously, every author of a /proc-based tool has been forced to
take a random guess at the ABI. The /proc/*/smaps is so gross and
that I put off writing a parser for years.

What you can probably get away with:

After the "rwxp" stuff you can add 3 more flags. (gdb limit)
You could use 'L' for locked pages, 'R' for swap reservation,
and 'D' for deleted files. It's probably much better to save
space though, since gdb will crash if you add too many flags.
Three characters can be 18 bits if you base-64 encode them,
being careful to avoid the '/' character. (adding 0x30 works)

Right before the filename, you can add anything except a '/'.
You could add a few columns of numbers or a second flags field.

Not that it matters on such a slow-ass file format, but you
can make parsing faster if you encode the page size in one byte.
Simply add 0x30 to the page shift, then print that byte. Note that
this would let you cram the page size into the flags field.

BTW, I'm thinking that the /proc/*/*maps files fail when the
lines exceed 4096 bytes. The pathname may legitimately be that
long, plus it can be backslash escaped, plus there is all the
junk on the beginning.

^ permalink raw reply	[flat|nested] 6+ messages in thread
* [PATCH 0/2] Report the size of pages backing VMAs in /proc V3
@ 2008-10-16 15:58 Mel Gorman
  0 siblings, 0 replies; 6+ messages in thread
From: Mel Gorman @ 2008-10-16 15:58 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Alexey Dobriyan, Dave Hansen, KOSAKI Motohiro, Linux-MM, LKML,
	Mel Gorman

The following two patches add support for printing the size of pages used by
the kernel and the MMU to back VMAs. This can be used by a user to verify
that a hugepage-aware application is using the expected page sizes.

The first patch prints the size of page used by the kernel when allocating
pages for a VMA in /proc/pid/smaps. The second patch reports on
the size of page used by the MMU as it can differ - for example on POWER
using 64K as a base pagesize on older processors.

Changelog since V2
  o Drop changes to /proc/pid/maps - could not get agreement and it affects
    procps. Patch to procps was posted but fell into silence. Dropping
    patch as smaps gives the necessary information, just with a bit more
    legwork by the user
  o Drop redundant VM_BUG_ON (Alexey)

Changelog since V1
  o Fix build failure on !CONFIG_HUGETLB_PAGE
  o Uninline helper functions
  o Distinguish between base pagesize and MMU pagesize

 arch/powerpc/include/asm/hugetlb.h |    6 ++++++
 arch/powerpc/mm/hugetlbpage.c      |    7 +++++++
 fs/proc/task_mmu.c                 |    8 ++++++--
 include/linux/hugetlb.h            |    6 ++++++
 mm/hugetlb.c                       |   29 +++++++++++++++++++++++++++++
 5 files changed, 54 insertions(+), 2 deletions(-)


^ permalink raw reply	[flat|nested] 6+ messages in thread
* [PATCH 0/2] Report the size of pages backing VMAs in /proc V3
@ 2008-10-03 16:46 Mel Gorman
  0 siblings, 0 replies; 6+ messages in thread
From: Mel Gorman @ 2008-10-03 16:46 UTC (permalink / raw)
  To: akpm; +Cc: Mel Gorman, kosaki.motohiro, dave, linux-mm, linux-kernel

The following two patches add support for printing the size of pages used
by the kernel to back VMAs in maps and smaps. This can be used by a user
to verify that a hugepage-aware application is using the expected page sizes.
In one case the pagesize used by the MMU differs from the size used by the
kernel. This is on PPC64 using 64K as a base page size running on a processor
that does not support 64K in the MMU. In this case, the kernel uses 64K pages
but the MMU is still using 4K.

The first patch prints the size of page used by the kernel when allocating
pages for a VMA in /proc/pid/smaps and should not be considered too
contentious as it is highly unlikely to break any parsers.  The second patch
reports the size of page used by hugetlbfs regions in /proc/pid/maps. There is
a possibility that the final patch will break parsers but they are arguably
already broken. More details are in the patches themselves.

Thanks to KOSAKI Motohiro for rebasing the patches onto mmotm, reviewing
and testing.

Changelog since V2
  o Drop printing of MMUPageSize (mel)
  o Rebase onto mmotm (KOSAKI Motohiro)

Changelog since V1
  o Fix build failure on !CONFIG_HUGETLB_PAGE
  o Uninline helper functions
  o Distinguish between base pagesize and MMU pagesize

 fs/proc/task_mmu.c      |   27 ++++++++++++++++++---------
 include/linux/hugetlb.h |    3 +++
 mm/hugetlb.c            |   17 +++++++++++++++++
 3 files changed, 38 insertions(+), 9 deletions(-)


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-10-22  9:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-20  9:18 [PATCH 0/2] Report the size of pages backing VMAs in /proc V3 Albert Cahalan
2008-10-20 10:06 ` Mel Gorman
2008-10-20 18:07   ` Albert Cahalan
2008-10-22  9:41     ` Mel Gorman
  -- strict thread matches above, loose matches on Subject: below --
2008-10-16 15:58 Mel Gorman
2008-10-03 16:46 Mel Gorman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome