perf intel-pt: Allow for a guest kernel address filter

Handling TIP.PGD for an address filter for a guest kernel is the same as a
host kernel, but user space decoding, and hence address filters, are not
supported.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Andi Kleen <ak@linux.intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: https://lore.kernel.org/r/20210218095801.19576-9-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Adrian Hunter 2021-02-18 11:57:58 +02:00 коммит произвёл Arnaldo Carvalho de Melo
Родитель 6e86bfdc4a
Коммит 65faca5ce8
1 изменённых файлов: 7 добавлений и 1 удалений

Просмотреть файл

@ -792,8 +792,14 @@ static int __intel_pt_pgd_ip(uint64_t ip, void *data)
u8 cpumode;
u64 offset;
if (ip >= ptq->pt->kernel_start)
if (ptq->state->to_nr) {
if (intel_pt_guest_kernel_ip(ip))
return intel_pt_match_pgd_ip(ptq->pt, ip, ip, NULL);
/* No support for decoding guest user space */
return -EINVAL;
} else if (ip >= ptq->pt->kernel_start) {
return intel_pt_match_pgd_ip(ptq->pt, ip, ip, NULL);
}
cpumode = PERF_RECORD_MISC_USER;