We no longer support these CPUs.
Details
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Please also mention in the commit log that hwpmc(4) no longer supports this CPU model?
Incidentally https://www.freebsd.org/platforms/i386/ states "FreeBSD/i386 should support any CPU compatible with the Intel(T) 80486 or better in 32-bit mode" which is outdated I guess -- what is our actual minimum i386 cpu?
e92a1350b50edf504316434144bea3566cf8badc is the commit that removed support?
From the PMC perspective? The earliest Intel CPU generation we still support appears to be the first generation Core architecture, which was x86-64. I do not think we support anything i386-specific anymore, but it is somewhat hard to tell with the Intel generation scheme.
For AMD we still have k7 (i386) support in the kernel, but the libpmc bits were removed in the commit you linked below. So I do not think it can be used at all, and most likely whoever has such hardware is not concerned with performance profiling.
In other words, I think pmc support may be dead on i386, other than measuring TSC or software events.
e92a1350b50edf504316434144bea3566cf8badc is the commit that removed support?
Yes, this is the one. This was a useful and large step forward in functionality, but the change did not come close to finishing the job in terms of what it removed. I've spent the last couple years purging the dead code, documentation, and fixing bugs.
We still have quite a bit of documentation in the form of class/processor-specific man pages which were made outdated if not obsolete by the change. Here are the Intel/AMD related pages we have:
pmc.atom(3) - measurement events for Intel Atom family CPUs pmc.atomsilvermont(3) - measurement events for Intel Atom Silvermont family CPUs pmc.core(3) - measurement events for Intel Core Solo and Core Duo family CPUs pmc.core2(3) - measurement events for Intel Core2 family CPUs pmc.corei7(3) - measurement events for Intel Core i7 and Xeon 5500 family CPUs pmc.corei7uc(3) - uncore measurement events for Intel Core i7 and Xeon 5500 family CPUs pmc.haswell(3) - measurement events for Intel Haswell family CPUs pmc.haswelluc(3) - uncore measurement events for Intel Haswell family CPUs pmc.haswellxeon(3) - measurement events for Intel Haswell Xeon family CPUs pmc.iaf(3) - measurement events for Intel fixed function performance counters. pmc.ivybridge(3) - measurement events for Intel Ivy Bridge family CPUs pmc.ivybridgexeon(3) - measurement events for Intel Ivy Bridge Xeon family CPUs pmc.k7(3) - measurement events for AMD Athlon (K7 family) CPUs pmc.k8(3) - measurement events for AMD Athlon 64 (K8 family) CPUs pmc.sandybridge(3) - measurement events for Intel Sandy Bridge family CPUs pmc.sandybridgeuc(3) - uncore measurement events for Intel Sandy Bridge family CPUs pmc.sandybridgexeon(3) - measurement events for Intel Sandy Bridge Xeon family CPUs pmc.ucf(3) - measurement events for Intel uncore fixed function performance counters. pmc.westmere(3) - measurement events for Intel Westmere family CPUs pmc.westmereuc, pmc.westmere(3) - uncore measurement events for Intel Westmere family CPUs
Ideally I would like to see these reduced into pmc.intel(3) and pmc.amd(3). I am not so keen on being the one to do it, so I will probably start with filing a PR.
Yes, this is the one. This was a useful and large step forward in functionality, but the change did not come close to finishing the job in terms of what it removed.
Yeah, I'm fine with just not supporting old cruft, and if that means we don't really support much of pmc on i386 that is fine with me.
I am not so keen on being the one to do it, so I will probably start with filing a PR.
Sounds good, having a PR to track is at least a good first step :)