On Tue, Mar 16, 2021 at 08:42:25AM -0400, Liang, Kan wrote: > > > On 3/16/2021 7:43 AM, Peter Zijlstra wrote: > > On Fri, Mar 12, 2021 at 08:34:34AM -0800, kan.li...@linux.intel.com wrote: > > > From: Kan Liang <kan.li...@linux.intel.com> > > > > > > A self-describing mechanism for the uncore PerfMon hardware has been > > > introduced with the latest Intel platforms. By reading through an MMIO > > > page worth of information, perf can 'discover' all the standard uncore > > > PerfMon registers in a machine. > > > > > > The discovery mechanism relies on BIOS's support. With a proper BIOS, > > > a PCI device with the unique capability ID 0x23 can be found on each > > > die. Perf can retrieve the information of all available uncore PerfMons > > > from the device via MMIO. The information is composed of one global > > > discovery table and several unit discovery tables. > > > > > If a BIOS doesn't support the 'discovery' mechanism, there is nothing > > > changed. > > > > What if the BIOS got it wrong? Will the driver still get it correct if > > it is a known platform? > > Yes, I will submit a platform specific patch to fix this case. > > > > > Do we need a chicken flag to kill the discovery? uncore_no_discover? > > > > Yes, I plan to introduce a .use_discovery_tables flag to indicate whether to > use the discovery tables for the known platform. > > The below codes is part of the upcoming SPR uncore patches. > The first SPR uncore patch will still rely on the BIOS discovery tables, > because some uncore block information hasn't been published yet. We have to > retrieve the information fro the tables. Once all the information is > published, we can kill the discovery by removing the ".use_discovery_tables > = true".
I was thinking of a module parameter, such that we can tell it to skip discovery on module load time etc.