[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