Dr-Noob / cpufetch

Simple yet fancy CPU architecture fetching tool
GNU General Public License v2.0
1.88k stars 103 forks source link

`[ERROR]: Found invalid cpu_family: 0xFA33415E` on M3 MacBook Air #230

Closed singularitti closed 1 month ago

singularitti commented 6 months ago

When I was running cpufetch --debug, I got the following error message:

$ cpufetch --debug
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.05 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues

$ cpufetch --version
cpufetch v1.05 (macOS ARM build)

macOS version: 14.4 (23E214) Chip: Apple M3

singularitti commented 6 months ago

Related: #225 #217

ThomasKaiser commented 6 months ago

In the meantime I also switched to an M3 machine:

  Model Name: MacBook Air
  Model Identifier: Mac15,13
  Model Number: MXD43D/A
  Chip: Apple M3
  Total Number of Cores: 8 (4 performance and 4 efficiency)
  Memory: 16 GB
  System Firmware Version: 10151.101.3
  OS Loader Version: 10151.101.3
  System Version: macOS 14.4.1 (23E224)
  Kernel Version: Darwin 23.4.0

And unfortunately can confirm v1.05 not working (any more):

tk@mac-tk cpufetch % ./cpufetch --verbose
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.05-6-g2976 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues

tk@mac-tk cpufetch % ./cpufetch --debug  
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.05-6-g2976 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues
Dr-Noob commented 1 month ago

Sorry for the super late reply. Takes some time but eventually I address all issues :sweat_smile:

cpufetch already has support for the M3 (ce6e6f9), but your M3 is reporting a different cpu_family for some reason. If it's the same chip, why reporting a different value? Maybe it's because yours is the one with a 10-core GPU and the one in ce6e6f9 is the one with the 8-core GPU (see here)? Do you guys have any clue?

Anyway, I have added support for your cpu_family in branch i230. Could you confirm if it works as expected?

singularitti commented 1 month ago

I'm sorry. I don't currently possess a M3 chip MacBook Air now. The latest built of cpufetch does work on my M3 Max.

Dr-Noob commented 1 month ago

Maybe @ThomasKaiser can provide some feedback? :eyes:

ThomasKaiser commented 1 month ago

Unfortunately not, I've only access to three identical 'little' 0xFA33415E M3 since 'fast enough':

  Model Name: MacBook Air
  Model Identifier: Mac15,13
  Model Number: MXD43D/A
  Chip: Apple M3
  Total Number of Cores: 8 (4 performance and 4 efficiency)

Sorry, trying out i230 results in this:

tk@mac-tk cpufetch % git checkout -b i230                              
Switched to a new branch 'i230'

tk@mac-tk cpufetch % make
cc -Wall -Wextra -pedantic -DARCH_ARM -Wno-unused-parameter -std=c99 -fstack-protector-all -O2 -Wfloat-equal -Wshadow -Wpointer-arith -Wstrict-prototypes -march=armv8-a+sve -c src/arm/sve.c -o sve.o
cc -Wall -Wextra -pedantic -DARCH_ARM -Wno-unused-parameter -std=c99 -fstack-protector-all -O2 -Wfloat-equal -Wshadow -Wpointer-arith -Wstrict-prototypes -DGIT_FULL_VERSION=\""v1.06-12-g9f66"\" src/common/main.c src/common/cpu.c src/common/udev.c src/common/printer.c src/common/args.c src/common/global.c src/arm/midr.c src/arm/uarch.c src/common/soc.c src/arm/soc.c src/common/pci.c src/arm/udev.c sve.o src/common/sysctl.c -o cpufetch

tk@mac-tk cpufetch % ./cpufetch 
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.06-12-g9f66 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues

tk@mac-tk cpufetch % ./cpufetch --verbose
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.06-12-g9f66 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues

tk@mac-tk cpufetch % ./cpufetch --debug  
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.06-12-g9f66 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues
Dr-Noob commented 1 month ago

Unfortunately not, I've only access to three identical 'little' 0xFA33415E M3 since 'fast enough':

  Model Name: MacBook Air
  Model Identifier: Mac15,13
  Model Number: MXD43D/A
  Chip: Apple M3
  Total Number of Cores: 8 (4 performance and 4 efficiency)

Sorry, trying out i230 results in this:

tk@mac-tk cpufetch % git checkout -b i230                              
Switched to a new branch 'i230'

tk@mac-tk cpufetch % make
cc -Wall -Wextra -pedantic -DARCH_ARM -Wno-unused-parameter -std=c99 -fstack-protector-all -O2 -Wfloat-equal -Wshadow -Wpointer-arith -Wstrict-prototypes -march=armv8-a+sve -c src/arm/sve.c -o sve.o
cc -Wall -Wextra -pedantic -DARCH_ARM -Wno-unused-parameter -std=c99 -fstack-protector-all -O2 -Wfloat-equal -Wshadow -Wpointer-arith -Wstrict-prototypes -DGIT_FULL_VERSION=\""v1.06-12-g9f66"\" src/common/main.c src/common/cpu.c src/common/udev.c src/common/printer.c src/common/args.c src/common/global.c src/arm/midr.c src/arm/uarch.c src/common/soc.c src/arm/soc.c src/common/pci.c src/arm/udev.c sve.o src/common/sysctl.c -o cpufetch

tk@mac-tk cpufetch % ./cpufetch 
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.06-12-g9f66 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues

tk@mac-tk cpufetch % ./cpufetch --verbose
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.06-12-g9f66 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues

tk@mac-tk cpufetch % ./cpufetch --debug  
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.06-12-g9f66 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues

git checkout -b creates a new branch. To actually checkout my branch:

git fetch origin i230
git checkout i230
ThomasKaiser commented 1 month ago

To actually checkout my branch

Unfortunately it doesn't change the output or I'm still doing something wrong:

tk@mac-tk cpufetch % git fetch origin i230
From https://github.com/Dr-Noob/cpufetch
 * branch            i230       -> FETCH_HEAD

tk@mac-tk cpufetch % git checkout i230
Already on 'i230'

tk@mac-tk cpufetch % make clean

tk@mac-tk cpufetch % make
cc -Wall -Wextra -pedantic -DARCH_ARM -Wno-unused-parameter -std=c99 -fstack-protector-all -O2 -Wfloat-equal -Wshadow -Wpointer-arith -Wstrict-prototypes -march=armv8-a+sve -c src/arm/sve.c -o sve.o
cc -Wall -Wextra -pedantic -DARCH_ARM -Wno-unused-parameter -std=c99 -fstack-protector-all -O2 -Wfloat-equal -Wshadow -Wpointer-arith -Wstrict-prototypes -DGIT_FULL_VERSION=\""v1.06-12-g9f66"\" src/common/main.c src/common/cpu.c src/common/udev.c src/common/printer.c src/common/args.c src/common/global.c src/arm/midr.c src/arm/uarch.c src/common/soc.c src/arm/soc.c src/common/pci.c src/arm/udev.c sve.o src/common/sysctl.c -o cpufetch

tk@mac-tk cpufetch % ./cpufetch 
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.06-12-g9f66 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues
Dr-Noob commented 1 month ago

You need git checkout FETCH_HEAD -B i230, or starting from scratch (remove the directory and clone, fetch, checkout again). If you are in the correct branch you should see:

$ git log --oneline | head -n1
1dd8016 [v1.06][ARM] Add support for M3 (different cpu_family) (#230)

otherwise there is something wrong.

ThomasKaiser commented 1 month ago
tk@mac-tk cpufetch % git log --oneline | head -n1
1dd8016 [v1.06][ARM] Add support for M3 (different cpu_family) (#230)

tk@mac-tk cpufetch % ./cpufetch --verbose
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.06-6-g1dd8 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues
[WARNING]: SoC detection failed using cpu_subfamily

                                                            SoC:                 Unknown
                                                            Technology:          Unknown
     ############    ##########   ####  #######  ########   CPU 1:
  ###############    #########    ########################    Microarchitecture: Sawtooth
 ####        ####    ####         #####   ########   #####    Max Frequency:     2.750 GHz
####         ####    ####         ####     ######     ####    Cores:             4 cores
####         ####    ####         ####      ####      ####    Features:          NEON,SHA1,SHA2,AES,CRC32
 ####       #####    ####         ####      ####      ####  CPU 2:
  ###############    ####         ####      ####      ####    Microarchitecture: Everest
   ########  ####    ####         ####      ####      ####    Max Frequency:     4.050 GHz
                                                              Cores:             4 cores
                                                              Features:          NEON,SHA1,SHA2,AES,CRC32
                                                            Peak Performance:    195.60 GFLOP/s

tk@mac-tk cpufetch % ./cpufetch --debug  
[ERROR]: Found invalid cpu_family: 0xFA33415E
[VERSION]: cpufetch v1.06-6-g1dd8 (macOS ARM build)
Please, create a new issue with this error message, your smartphone/computer model, the output of 'cpufetch --verbose' and 'cpufetch --debug' on https://github.com/Dr-Noob/cpufetch/issues
cpufetch v1.06-6-g1dd8 (macOS ARM build)
hw.cpufamily: 0xFA33415E
hw.cpusubfamily: 0x00000002
hw.nperflevels: 2
hw.physicalcpu: 8
hw.perflevel0.physicalcpu: 4
hw.perflevel1.physicalcpu: 4
Dr-Noob commented 1 month ago

Damn, my detection for Apple chips is so annoying! I really need to reimplement this. I forgot to update the SoC detection, it should work with the patch I have pushed recently. I have also pushed a commit to fix the peak performance :+1:

ThomasKaiser commented 1 month ago
                   ."c.         
                 ,xNMM.         
                .lMM"           SoC:                 Apple M3
                MM*             Technology:          3nm
     .;loddo;:.   olloddol;.    CPU 1:
   cKMMMMMMMMMMNWMMMMMMMMMMM0:    Microarchitecture: Sawtooth
 .KMMMMMMMMMMMMMMMMMMMMMMMW*      Max Frequency:     2.750 GHz
 XMMMMMMMMMMMMMMMMMMMMMMMX.       Cores:             4 cores
;MMMMMMMMMMMMMMMMMMMMMMMM:        Features:          NEON,SHA1,SHA2,AES,CRC32
:MMMMMMMMMMMMMMMMMMMMMMMM:      CPU 2:
.MMMMMMMMMMMMMMMMMMMMMMMMX.       Microarchitecture: Everest
 kMMMMMMMMMMMMMMMMMMMMMMMMWd.     Max Frequency:     4.050 GHz
 'XMMMMMMMMMMMMMMMMMMMMMMMMMMk    Cores:             4 cores
  'XMMMMMMMMMMMMMMMMMMMMMMMMK.    Features:          NEON,SHA1,SHA2,AES,CRC32
    kMMMMMMMMMMMMMMMMMMMMMMd    Peak Performance:    782.40 GFLOP/s
     'KMMMMMMMWXXWMMMMMMMk.     
       "cooc"*    "*coo'"       
Dr-Noob commented 1 month ago

Thanks for the feedback! Merged :+1: