From: "Albert Cahalan" <acahalan@gmail.com>
To: "Mel Gorman" <mel@csn.ul.ie>,
adobriyan@gmail.com, kosaki.motohiro@jp.fujitsu.com,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/2] Report the size of pages backing VMAs in /proc V3
Date: Mon, 20 Oct 2008 05:18:32 -0400 [thread overview]
Message-ID: <787b0d920810200218o5f26ee7bj9f8c0e71606dd5cb@mail.gmail.com> (raw)
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.
next reply other threads:[~2008-10-20 9:18 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-20 9:18 Albert Cahalan [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=787b0d920810200218o5f26ee7bj9f8c0e71606dd5cb@mail.gmail.com \
--to=acahalan@gmail.com \
--cc=adobriyan@gmail.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mel@csn.ul.ie \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®