Messages in this thread | | | From | Alexander Shishkin <> | Subject | Re: [PATCH 1/2] perf/x86/intel/ds: Work around BTS leaking kernel addresses | Date | Fri, 28 Aug 2015 09:06:32 +0300 |
| |
Ingo Molnar <mingo@kernel.org> writes:
> * Alexander Shishkin <alexander.shishkin@linux.intel.com> wrote: > >> + for (at = base; at < top; at++) { >> + /* >> + * Note that right now *this* BTS code only works if >> + * attr::exclude_kernel is set, but let's keep this extra >> + * check here in case that changes. >> + */ >> + if (event->attr.exclude_kernel && >> + (at->from >= PAGE_OFFSET || at->to >= PAGE_OFFSET)) >> + skip++; > > Yeah, so that only works on 32-bit kernels, on 64-bit kernels the check for kernel > addresses is to see whether it's a negative address. PAGE_OFFSET points to above > any hypervisor's address, so even with your fix we could still leak hypervisor > addresses. > > I.e. use the kernel_ip() primitive instead.
That's what I've been looking for, thanks!
Regards, -- Alex
| |