Hi Dave,
On 01/11/2012 01:50 PM, Dave Anderson wrote:
 ----- Original Message -----
>
> ----- Original Message -----
>
>>> But there is still no need to redundantly display the virtual and physical
>>> addresses.  And the displays of the calculated file offsets, zero-fill, etc.
>>> will still end up showing the complete function sequence by putting the
>>> function name in the output.  For example, the updated readmem() output
would
>>> show a call to read_kdump(), but the file offset display would show that it
>>> has transitioned to read_netdump(), so there's no need for any debug
output
>>> at all in read_kdump().
>>
>>
>> Well, read_kdump() in the case of a non-hyper-mode XEN dump has code
>> that has the appearance of a route of change for paddr, i.e. the
>> following doesn't result in no change or in P2M_FAILURE:
>>
>> paddr = xen_kdump_p2m(paddr)
>>
>> The code I posted can show two unique paths through read_kdump() but if
>> as you say, you log calling it with the physical address known and log
>> in read_netdump() with the physical address included then you get the
>> same result.
>
> No, you're right -- that particular "switch" of the paddr value
> should probably have its own debug statement.
>
>> Also, are there any cases of overlapped/threaded execution of reads?
>> If  not then removal of redundant output is wise but the virt/phys addr
>> would identify which thread of execution each line refers to among
>> overlapped output in most cases.
>
> Well, at least in the Xen case, yes it is possible.  But they would be
> encapsulated by the debug statements that indicate the "temporary" change
> from read_kdump() to read_netdump() in x86.c, x86_64.c (and ia64.c).
>
> Dave
 Hi Dave,
 I've attached what I'm going with for now.  It covers all bases that
 your original patch did, and then some.  More specifically I added
 some additional debug statements to xen_kdump_p2m() in order
 to clarify the xen kdump read path through read_kdump(), because
 xen_kdump_p2m() calls read_netdump() directly to get a MFN frame
 before returning to read_kdump() to complete the original read
 via read_netdump().  And so because of that twisty path xen kdump
 reads do take, I left the addr/paddr/cnt display in read_netdump()
 to allay any confusion.  The diskdump path is always straight-forward,
 so the debug statements there only show the paddr/pfn pair, since
 that's all it ever deals with, and the readmem()-generated statement
 just above them would give you all the rest of the arguments.  I didn't
 make individual debug statements in read_netdump() w/respect to whether
 the offset came from a 32-bit ELF vmcore, or from a single or multiple
 PT_LOAD 64-bit ELF vmcore, because you get that information immediately
 with "-d1" on the invocation command line, or from "help -n" during
runtime.
 I added a few simple statements in ia64.c, but this patch is primarily
 concerned with x86/x86_64.  The readmem-assignment display is done
 in one place, using a new readmem_function_name() function, which is
 also used in readmem() and dump_program_context().  Everything is still
 CRASHDEBUG(8) or less.  So I'm hoping that you'll be happy with the
 modifications to your original, quite useful, proposal. 
I agree your version is improved over my original idea so I'm certainly 
happy using your approach. Thanks for putting the time into it.
-- 
David Mair
SUSE Linux