[Crash-utility] kmem command problem (bug ofdump_mem_map_SPARSEMEM?)
Takao Indoh
indou.takao at jp.fujitsu.com
Tue Feb 6 19:37:30 UTC 2007
On Tue, 06 Feb 2007 13:52:37 -0500, Dave Anderson wrote:
>How about changing section #3 above to something like this?:
>
> * to the section with that page
> */
> if (mi->flags & ADDRESS_SPECIFIED) {
>- ulong pfn = mi->spec_addr >> PAGESHIFT();
>+ ulong pfn;
>+ physaddr_t tmp;
>+
>+ if (pg_spec) {
>+ if (!page_to_phys(mi->spec_addr, &tmp))
>+ return;
>+ pfn = tmp >> PAGESHIFT();
>+ } else
>+ pfn = mi->spec_addr >> PAGESHIFT();
> section_nr = pfn_to_section_nr(pfn);
> }
>
Thanks, it looks good, but I found another problem.
I applied your patch and tested kmem command.
crash> kmem -p e000000105090000
PAGE PHYSICAL MAPPING INDEX CNT FLAGS
It seems kmem command entered infinite loop. It is another problem.
I found page_to_phys did not return correct physical address.
When mi->spec_addr is 0xe000000105090000, corresponding physical address
is 0x180000000.
> crash> kmem -p | grep e000000105090000
> e000000105090000 180000000 ------- ----- 0 600200080000
However, page_to_phys returns 0x100000000. I think page_to_phys does not
support sparsemem system.
Takao Indoh
More information about the Crash-utility
mailing list