Re: [RFC/PATCHSET 0/9] perf record: Implement BPF sample filter (v4)

From: Ravi Bangoria
Date: Mon Mar 13 2023 - 11:53:05 EST


>> However, if I add "mem_lvl == l1" (or l2 / ram) in the filter, I see mostly
>> all samples are getting lost:
>>
>> $ sudo ./perf record -d -e ibs_op//p --filter 'mem_op == load, mem_lvl == l1' -c 100000 ~/test
>> [ perf record: Woken up 1 times to write data ]
>> [ perf record: Captured and wrote 0.019 MB perf.data ]
>>
>> $ sudo ./perf report --stat | grep SAMPLE
>> LOST_SAMPLES events: 1 ( 0.8%)
>> LOST_SAMPLES events: 136332
>>
>> What am I missing?
>
> It seems IBS PMU doesn't set the mem_lvlnum field in the data source.
> As I said in the patch 7, 'mem_lvl' actually uses mem_lvlnum fields
> instead of mem_lvl because it's preferred according to the comment in
> the UAPI header.
>
> /*
> * PERF_MEM_LVL_* namespace being depricated to some extent in the
> * favour of newer composite PERF_MEM_{LVLNUM_,REMOTE_,SNOOPX_} fields.
> * Supporting this namespace inorder to not break defined ABIs.
> *
> * memory hierarchy (memory level, hit or miss)
> */
>
> I'll post a patch to set it separately.

Got it. I saw your patch, will review it.

Thanks,
Ravi