Frank.Hofmann at Sun.COM wrote:
> On Fri, 31 Aug 2007, William P. Taylor wrote:
> 
> 
>>My library does mmap of the InfiniBand driver.  The backing memory is
>>main memory, allocated by the InfiniBand driver via ddi_umem_alloc().
>>My library accesses the memory just fine, and I added printfs to dumps
>>the addresses.  My library goes into an infinite loop, and I suspend it.
>>I run "mdb -p PID" in order to display the mmap'ed memory.  I confirm
>>the address with "$m", here's the line of interest:
>>
>>           BASE            LIMIT             SIZE      NAME
>>   fffffd7ffedcc000 fffffd7ffedec000       20000
>>
>>fffffd7ffedcc000/J
>>mdb: failed to read data from target: no mapping for address
>>
>>Can someone tell me how I can display this memory?

Thanks for the reply.

> That address is the _KERNEL_ address. Use "mdb -k" to see it.

No, it is an amd64 _USER_ address.  "mdb -k" as root on the
same system while "mdb -p PID" is still running shows:

> fffffd7ffedcc000/J
mdb: failed to read data from target: no mapping for address

"pmap PID" confirms my assertion of it being a _USER_ address:

FFFFFD7FFEDCC000        128K rw-s-

Maybe the "s" in "rw-s-" is of consequence, but "man pmap"
just says it means "shared".

> For the userspace address of the buffer, you need to look at the "pmap" 
> output for your app, and see where it ended up.
> 
> FrankH.

  -Bill

Reply via email to