Re: ZFS committed to the FreeBSD base.

From: Oliver Fromme <olli_at_lurza.secnetix.de>
Date: Thu, 12 Apr 2007 12:18:00 +0200 (CEST)
Peter Jeremy wrote:
 > David Schultz wrote:
 > > As I recall, Solaris 10 targets PPro and later processors, whereas
 > > FreeBSD supports everything back to a 486DX.  Hence we can't
 > > assume that cmpxchg8b is available.
 > 
 > There's a feature bit (CPUID_CX8) that advertises the availability of
 > cmpxchg8b (and maybe some related instructions).  My pre-MMX 586 has
 > this bit set so I presume anything later than 486 will support it.
 > (I'm not sure about the low-end VIA, GEODE etc clones).

They don't seem to support it.

I made a quick survey of the machines of mine for which I
have collected dmesg outputs.  The following ones don't
support cmpxchg8b according to the cpuid feature bits:

CPU: i486 DX2 (486-class CPU)
  Origin = "GenuineIntel"  Id = 0x435  Stepping = 5
  Features=0x3<FPU,VME>

CPU: Cyrix GXm (232.74-MHz 586-class CPU)
  Origin = "CyrixInstead"  Id = 0x540  DIR=0x8246  Stepping=8  Revision=2

CPU: VIA C3 Nehemiah+RNG+ACE (1002.28-MHz 686-class CPU)
  Origin = "CentaurHauls"  Id = 0x698  Stepping = 8
  Features=0x381b83f<FPU,VME,DE,PSE,TSC,MSR,SEP,MTRR,PGE,CMOV,PAT,MMX,FXSR,SSE>

And the following ones do support cmpxchg8b:

CPU: Pentium/P54C (165.79-MHz 586-class CPU)
  Origin = "GenuineIntel"  Id = 0x52c  Stepping = 12
  Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8>

CPU: Pentium II/Pentium II Xeon/Celeron (465.50-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x665  Stepping = 5
  Features=0x183fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>

CPU: Intel Pentium III (799.77-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x683  Stepping = 3
  Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>

CPU: AMD Athlon(tm) Processor (846.23-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x642  Stepping = 2
  Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>

CPU: Pentium III/Pentium III Xeon/Celeron (851.93-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x686  Stepping = 6
  Features=0x387f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,PN,MMX,FXSR,SSE>

CPU: Intel(R) Celeron(R) M processor  1300MHz (1295.80-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x695  Stepping = 5

CPU: Intel(R) Pentium(R) III CPU family      1400MHz (1396.45-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6b1  Stepping = 1
  Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
  Features=0xa7e9f9bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,TM,PBE>

CPU: Intel(R) Pentium(R) M processor 1.60GHz (1596.01-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6d8  Stepping = 8
  Features=0xafe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,TM,PBE>
  Features2=0x180<EST,TM2>

CPU: AMD Athlon(tm) XP 2500+ (1826.03-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x6a0  Stepping = 0
  Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>

CPU: AMD Turion(tm) 64 Mobile Technology ML-37 (1989.82-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x20f42  Stepping = 2
  Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
  Features2=0x1<SSE3>

CPU: AMD Athlon(tm) 64 Processor 3200+ (2000.08-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x20ff2  Stepping = 2
  Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
  Features2=0x1<SSE3>

CPU: AMD Athlon(tm) 64 Processor 3700+ (2199.76-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x30f72  Stepping = 2
  Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
  Features2=0x1<SSE3>

CPU: AMD Athlon(tm) 64 Processor 3800+ (2399.74-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x20ff2  Stepping = 2
  Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
  Features2=0x1<SSE3>

CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (3006.83-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf41  Stepping = 1
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>

So a > 10 years old pre-MMX Pentium (586-class) does
support cmpxchg8b, while a 1 year old C3 Nehemia (686-
class) does not.

Best regards
   Oliver

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart

FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd

We're sysadmins.  To us, data is a protocol-overhead.
Received on Thu Apr 12 2007 - 08:18:09 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:08 UTC