[PATCH v9 2/5] perf: arm_spe: Add support for filtering on data source

Peter Zijlstra peterz at infradead.org
Tue Nov 11 02:55:26 PST 2025


On Tue, Nov 11, 2025 at 10:51:56AM +0000, James Clark wrote:
> 
> 
> On 10/11/2025 3:48 pm, Peter Zijlstra wrote:
> > On Wed, Oct 29, 2025 at 03:46:02PM +0000, James Clark wrote:
> > > SPE_FEAT_FDS adds the ability to filter on the data source of packets.
> > > Like the other existing filters, enable filtering with PMSFCR_EL1.FDS
> > > when any of the filter bits are set.
> > > 
> > > Each bit maps to data sources 0-63 described by bits[0:5] in the data
> > > source packet (although the full range of data source is 16 bits so
> > > higher value data sources can't be filtered on). The filter is an OR of
> > > all the bits, so for example clearing bits 0 and 3 only includes packets
> > > from data sources 0 OR 3.
> > > 
> > > Invert the filter given by userspace so that the default value of 0 is
> > > equivalent to including all values (no filtering). This allows us to
> > > skip adding a new format bit to enable filtering and still support
> > > excluding all data sources which would have been a filter value of 0 if
> > > not for the inversion.
> > 
> > So from that I'm reading the config4 field will only have like 16 bits,
> 
> The _data source_ is 16 bits, but the _data source filter_ is 64 bits.

Ah!

> It might be clearer if I add a few more words to differentiate "data source"
> and "filter":
> 
>   Each bit of the 64 bit filter maps to data sources 0-63 described by
>   bits[0:5] in the data source packet (although the full range of data
>   source is 16 bits so higher value data sources can't be filtered on).
>   The filter is an OR of all the filter bits, so for example clearing
>   filter bits 0 and 3 only includes packets from data sources 0 OR 3.

Yeah, that might've helped :-)



More information about the linux-arm-kernel mailing list