At 2012-2-3 15:19, qiaonuohan wrote:
At 2012-2-3 1:24, Dave Anderson wrote:
> But in other circumstances where there may be ambiguity, I've put
> in the option of putting a "\" in front of the name, i.e., you
> could do something like:
>
> crash> kmem -s list
> ffff880079e44a00 nfs_read_data
> ffff880079e44700 nfs_inode_cache
> ffff880079e44d00 fscache_cookie_jar
> ...
>
> crash> kmem -s \list
> CACHE NAME OBJSIZE ALLOCATED TOTAL SLABS SSIZE
> ffff88007b895400 list 240 0 0 0 4k
> crash>
>
> That would be simple enough fix in cmd_kmem() if you re-work this part:
>
> if (sflag == 1) {
> if (STREQ(meminfo.reqname, "list"))
> kmem_cache_list();
> else if (vt->flags& KMEM_CACHE_UNAVAIL)
> error(FATAL,
> "kmem cache slab subsystem not available\n");
> else
> vt->dump_kmem_cache(&meminfo);
> }
Hello Dave,
Thanks for your advice! But after some investigation, "\list" may also
involve ambiguity. I created a kmem_cache called "\list", the original
code can display the following information after executing "kmem -s \list".
crash> kmem -s \list
CACHE NAME OBJSIZE ALLOCATED TOTAL SLABS SSIZE
ffff880874b30c40 \list 8 0 0 0 4k
crash>
Need to use "\\list" to refer the kmem_cache called "\list" if code
is
changed? Please! I find it is better to remain the original code. Could
you give me some tips?
I figured out a style of the command which seems somewhat suitable. If
the "name" of "kmem -s <name>" starts with a "\",
neglect it and search
the slab by the remaining part.
Some examples are listed below:
command argument slab name
--------------------------------------------
\list list
\\list \list
\\\list \\list
kvm_vcpu kvm_vcpu
\kvm_vcpu kvm_vcpu
\\kvm_vcpu \kvm_vcpu
Is this acceptable? If so, I will do the fix like this.
--
--
Regards
Qiao Nuohan