lkml.org 
[lkml]   [2009]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] page-types: decode flags directly from command line
    Hi Alex,

    It's easier to illustrate the idea with example and code :)

    # Documentation/vm/page-types -d 0x10,anon
    0x0000000000001010 ____D_______a_____________________ dirty,anonymous


    +static void describe_flags(const char *optarg)
    +{
    + uint64_t flags = parse_flag_names(optarg, 0);
    +
    + printf("0x%016llx\t%s\t%s\n",
    + (unsigned long long)flags,
    + page_flag_name(flags),
    + page_flag_longname(flags));
    +}

    + case 'd':
    + opt_no_summary = 1;
    + describe_flags(optarg);
    + break;

    Thanks,
    Fengguang

    On Thu, Nov 05, 2009 at 04:40:08AM +0800, Alex Chiang wrote:
    > Hi Fengguang,
    >
    > * Wu Fengguang <fengguang.wu@intel.com>:
    > > On Wed, Nov 04, 2009 at 06:54:41AM +0800, Alex Chiang wrote:
    > > > Why is this useful? For instance, if you're using memory hotplug
    > > > and see this in /var/log/messages:
    > > >
    > > > kernel: removing from LRU failed 3836dd0/1/1e00000000000400
    > > >
    > > > It would be nice to decode those page flags without staring at
    > > > the source.
    > >
    > > In fact it's more than decode - encoding is also possible with the
    > > _same_ code! So maybe "-d" and help message will not be all that
    > > appropriate.
    >
    > I'm sorry, I don't understand this use case, so I'm not sure what
    > you're asking me to do.
    >
    > You're saying that a use case would be something like:
    >
    > ./page-types --encode referenced,mmap
    > 0x0000000000000004
    >
    > ?
    >
    > If that's what you're asking for, I guess I'm not sure why that's
    > so useful, but then again, I'm a vm n00b so there are probably
    > lots of things I don't understand. ;)
    >
    > > > Example usage and output:
    > > >
    > > > linux-2.6/Documentation/vm$ ./page-types -d 0x1e00000000000400
    > > > flags page-count MB symbolic-flags long-symbolic-flags
    > > > 0x1e00000000000400 1 0 __________B_______________________buddy
    > > > total 1 0
    > >
    > > The output is a bit redundant - so does the code. Could you simplify
    > > them a bit?
    >
    > Well, the code is redundant, but add_page() / show_summary() is a
    > simple sequence.
    >
    > In contrast, I think I'd have to modify walk_addr_ranges() and
    > maybe walk_pfn() to do something special when we don't really
    > want to do any address space walking, and simply want to
    > decode/encode some user input.
    >
    > Maybe I don't understand you fully? Could you give me a better
    > idea of what you're looking for?
    >
    > As for the output, I'm just reusing show_summary(). Maybe we
    > don't need the flags, page-count, and MB columns, but again, the
    > patch would be more intrusisive because we'd have to teach
    > show_summary() about the special case.
    >
    > Anyway, I'm happy to make changes closer to what you're looking
    > for, but I'd like some more guidance as to what you're expecting.
    >
    > Thanks,
    > /ac


    \
     
     \ /
      Last update: 2009-11-05 03:17    [W:0.025 / U:30.044 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site