DTrace panic while probing syscall::open (and possibly many
others)
Thomas Backman
serenity at exscape.org
Thu Jun 18 11:43:11 UTC 2009
On Jun 18, 2009, at 12:55 PM, Andriy Gapon wrote:
> on 18/06/2009 12:43 Thomas Backman said the following:
>>
>> at dtrace_isa.c:527
>> #14 0xffffffff816b31fc in dtrace_copyinstr (uaddr=34365163021,
>> kaddr=18446743524025463312, size=256, flags=0xffffffff8146e0c0)
>> at dtrace_isa.c:558
>
> kaddr=18446743524025463312 == FFFFFF8004467210
> I think kernelbase on amd64 is 0xFFFFFFFF80000000.
> FFFFFF8004467210 kaddr
> is smaller than
> FFFFFFFF80000000 kernelbase
>
> The numbers do look suspiciously similar, so I am not sure if you
> are seeing a
> race or a real bug somewhere.
> --
> Andriy Gapon
Hmmm...
Looking around a bit for these numbers, I found, in /sys/amd64/include/
vmparam.h:
/*
* Virtual addresses of things. Derived from the page directory and
* page table indexes from pmap.h for precision.
*
* 0x0000000000000000 - 0x00007fffffffffff user map
* 0x0000800000000000 - 0xffff7fffffffffff does not exist (hole)
* 0xffff800000000000 - 0xffff804020100fff recursive page table
(512GB slot)
* 0xffff804020101000 - 0xfffffeffffffffff unused
* 0xffffff0000000000 - 0xffffff7fffffffff 512GB direct map mappings
* 0xffffff8000000000 - 0xffffffffffffffff 512GB kernel map
*
* Within the kernel map:
*
* 0xffffffff80000000 KERNBASE
*/
So, kaddr is inside the "kernel map", but not KERNBASE. What this
means, I have no clue whatsoever. (I'm not a kernel developer and I
don't know too much about (virtual) memory either!)
Regards,
Thomas
More information about the freebsd-current
mailing list