tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: tprof(8) ABI



On Sun, Apr 19, 2026 at 9:32 PM Martin Husemann <martin%duskware.de@localhost> wrote:
>
> On Sun, Apr 19, 2026 at 05:54:23PM -0700, Kevin Bowling wrote:
> > Hi Nick,
> >
> > My understanding is we are trying to capture a 64-bit PC from the
> > kernel into a structure that n32 userland reads. If we sign extend a
> > 32-bit value read from the kernel, I'm not sure if we'd have the right
> > value in every case but I don't fully grasp the sign extension.  I
> > suppose we'd need to understand some other cases like x86 user on
> > amd64 or sparc on sparc64 too, and KASLR?
>
> Why is the kernel PC relevant here? I thought this would sample the
> userland PC as observed by the kernel, and for 32bit userland processes
> this can always only be a 32bit value (on sparc and i386 zero extended,
> on mips and riscv probably sign extended).

We are instrumenting the 64-bit kernel, but we are using a 32-bit
userland utility to tell us what is going on in the 64-bit kernel.  I
think it's a binary contract, the tprof driver pumps out the hardware
events, so you'd want the 'real' PC but for this ABI break.  On 32-bit
systems it would just make the profile files a little bigger.

> Martin


Home | Main Index | Thread Index | Old Index