[Crash-utility] [PATCH] kmem, snap: iomem/ioport display and vmcore snapshot support
Dave Anderson
anderson at redhat.com
Tue Mar 13 14:17:20 UTC 2012
----- Original Message -----
> Some days ago I was in a situation that I had to convert vmcore in
> kvmdump format into ELF since some extension module we have locally
> can be used only on relatively old crash utility, around version 4,
> but such old crash utility cannot handle kvmdump format.
That's a pretty weak argument -- what did crash version ~4 have
that the latest version does not? I don't recall ever removing
any functionality w/respect to extension module without replacing
it with a better interface. In other words, why can't you fix your
local extension module? I need a better reason for modifying
the snap module other than that.
> To do the conversion in handy, I used snap command with some modifications
> so that it tries to use iomem information in vmcore instead of host's
> /proc/iomem. This patch is its cleaned-up version.
>
> In this development, I naturally got down to also making an interface
> for an access to resource objects, and so together with the snap
> command's patch, I also extended kmem command for iomem/ioport
> support. Actually:
>
> kmem -r displays /proc/iomem
>
> crash> kmem -r
> 00000000-0000ffff : reserved
> 00010000-0009dbff : System RAM
> 0009dc00-0009ffff : reserved
> 000c0000-000c7fff : Video ROM
> ...
>
> and kmem -R displays /proc/ioport
>
> crash> kmem -R
> 0000-001f : dma1
> 0020-0021 : pic1
> 0040-0043 : timer0
> 0050-0053 : timer1
> ...
> Looking into old version of kernel source code back, resource structure
> has been unchanged since linux-2.4.0. I borrowed the way of walking on
> resouce tree in this patch from the lastest v3.3-rc series, but I
> guess the logic is also applicable to old kernels. I expect Dave's
> regression testsuite.
>
> Also, there would be another command more sutable for iomem/ioport.
> If necessay, I'll repost the patch.
> ---
Why reinvent the wheel? The "dev -i" command does all of the above, plus
gives you the resource structure address:
crash> dev -i
RESOURCE RANGE NAME
ffffffff80312080 0000-ffff PCI IO
ffffffff8030a9c0 0000-001f dma1
ffffffff8030a9f8 0020-0021 pic1
ffffffff8030aa30 0040-0043 timer0
ffffffff8030aa68 0050-0053 timer1
ffffffff8030aaa0 0060-0060 keyboard
ffffffff8030aad8 0064-0064 keyboard
ffff81102fd42140 0070-0077 rtc
... [ cut ] ...
ffff8102370a3b28 3400-34ff 0000:00:07.2
ffff810c2ff6dc78 4000-4fff PCI Bus #03
ffff810a3709f360 4000-40ff 0000:03:00.0
ffff81022feb1740 4000-40ff cciss
ffff8106370a3478 5000-5fff PCI Bus #04
ffff810637099360 5000-50ff 0000:04:00.0
ffff81062fd02a00 5000-50ff cciss
RESOURCE RANGE NAME
ffffffff803120c0 00000000-ffffffffffffffff PCI mem
ffff81000009e000 00010000-0009f3ff System RAM
ffff810000102000 0009f400-0009ffff reserved
ffffffff8030aca0 000a0000-000bffff Video RAM area
ffffffff8030ae40 000c0000-000cafff Video ROM
ffffffff8030ace0 000cb000-000cc7ff Adapter ROM
ffffffff8030ae80 000f0000-000fffff System ROM
ffff810000102100 00100000-cfd4bfff System RAM
ffffffff8030ac40 00200000-0048367d Kernel code
ffffffff8030ac00 0048367e-005c9bff Kernel data
ffffffff803166a0 01000000-08ffffff Crash kernel
ffffffff80310880 10000000-13ffffff GART
ffff810000102180 cfd4c000-cfd55fff ACPI Tables
ffff810000102200 cfd56000-cfd56fff System RAM
ffff810000102280 cfd57000-dfffffff reserved
ffff810a370a4ce8 e2000000-e20fffff PCI Bus #01
... [cut] ...
ffff8106370a34b0 fde00000-fdffffff PCI Bus #04
ffff810637099398 fdef0000-fdef0fff 0000:04:00.0
ffff81062fd029c0 fdef0000-fdef0fff cciss
ffff8106370992f0 fdf00000-fdffffff 0000:04:00.0
ffff81062fd02a40 fdf00000-fdffffff cciss
ffff810000102300 fec00000-fecfffff reserved
ffff810000102380 fee00000-fee0ffff reserved
ffff810000102400 ffc00000-ffffffff reserved
ffff810000102480 100000000-102fffefff System RAM
crash>
Dave
More information about the Crash-utility
mailing list