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