2 votos

M1 Macbook Air crash al ejecutar 4 procesos C simples en paralelo

He empezado a leer Sistemas Operativos: Three Easy Pieces, cuando ejecuté el ejemplo 2.1 en mi Macbook Air M1 con 4 instancias en paralelo se generaron 4 procesos únicos, pero luego mi portátil se estrelló después de 2-3 segundos. Por favor, encontrar los pasos para replicar a continuación:

simple-example.c

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <assert.h>
#include "common.h"
int
main(int argc, char *argv[]){
if (argc != 2) {
fprintf(stderr, "usage: cpu <string>\n"); exit(1);
    }
    char *str = argv[1]; 
    while (1) {
Spin(1);
        printf("%s\n", str);
    }
return 0; }

[common.h][1]

#ifndef __common_h__
#define __common_h__

#include <sys/time.h>
#include <sys/stat.h>
#include <assert.h>

double GetTime() {
    struct timeval t;
    int rc = gettimeofday(&t, NULL);
    assert(rc == 0);
    return (double) t.tv_sec + (double) t.tv_usec/1e6;
}

void Spin(int howlong) {
    double t = GetTime();
    while ((GetTime() - t) < (double) howlong)
    ; // do nothing in loop
}

#endif // __common_h__

El programa anterior tal y como se explica en el libro:

La figura 2.1 muestra nuestro primer programa. No hace mucho. De hecho, todo lo que hace es llamar a Spin(), una función que comprueba repetidamente el tiempo y regresa una vez que se ha ejecutado durante un segundo. Entonces, imprime la cadena que el usuario pasó en la línea de comandos, y repite, para siempre.

He copiado common.h del archivo enlazado de github

Compilar:

~ gcc -v
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.5 (clang-1205.0.22.11)
Target: arm64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

gcc -o cpu simple-example.c -Wall

La ejecución de una sola instancia del proceso con una cadena funciona bien:

./cpu "A"

La ejecución de varias instancias bloquea el portátil:

./cpu A & ; ./cpu B & ; ./cpu C & ; ./cpu D &

Esto genera 4 procesos y comienza a imprimir las cadenas A C B D en orden aleatorio, pero luego una luz púrpura parpadeó y el portátil murió.

Especificación del portátil:

OS: Big Sur
Version: 11.5.2
Chip: M1
Memory: 8GB

Informe sobre el accidente:

panic(cpu 0 caller 0xfffffe002fb3f460): "Spinlock timeout after 12584284 ticks, 0xfffffe0033898588 = fffffe1667d2dfe1"
Debugger message: panic
Memory ID: 0xff
OS release type: User
OS version: 20G95
Kernel version: Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:27 PDT 2021; root:xnu-7195.141.2~5/RELEASE_ARM64_T8101
Fileset Kernelcache UUID: 15F4DFDFA9E0154FED96EA8997E65429
Kernel UUID: AC4A14A7-8A8E-3AE6-85A6-55E6B2502BF9
iBoot version: iBoot-6723.140.2
secure boot?: YES
Paniclog version: 13
KernelCache slide: 0x0000000027ec4000
KernelCache base:  0xfffffe002eec8000
Kernel slide:      0x0000000028a0c000
Kernel text base:  0xfffffe002fa10000
Kernel text exec base:  0xfffffe002fadc000
mach_absolute_time: 0xac2324506
Epoch Time:        sec       usec
  Boot    : 0x613ff694 0x00019680
  Sleep   : 0x00000000 0x00000000
  Wake    : 0x00000000 0x00000000
  Calendar: 0x613ffe14 0x00092243

CORE 0 recently retired instr at 0xfffffe002fc4d6a4
CORE 1 recently retired instr at 0xfffffe002fc4ed6c
CORE 2 recently retired instr at 0xfffffe002fc4ed6c
CORE 3 recently retired instr at 0xfffffe002fc4ed6c
CORE 4 recently retired instr at 0xfffffe002fc4ed70
CORE 5 recently retired instr at 0xfffffe002fc4ed70
CORE 6 recently retired instr at 0xfffffe002fc4ed70
CORE 7 recently retired instr at 0xfffffe002fc4ed70
CORE 0 PVH locks held: None
CORE 1 PVH locks held: None
CORE 2 PVH locks held: None
CORE 3 PVH locks held: None
CORE 4 PVH locks held: None
CORE 5 PVH locks held: None
CORE 6 PVH locks held: None
CORE 7 PVH locks held: None
CORE 0 is the one that panicked. Check the full backtrace for details.
CORE 1: PC=0xfffffe002faecc28, LR=0xfffffe002faecc28, FP=0x0000000000000000
CORE 2: PC=0xfffffe002fb251f0, LR=0xfffffe002fb251f0, FP=0xfffffe3f58b4bd50
CORE 3: PC=0xfffffe002faecc28, LR=0xfffffe002faecc28, FP=0x0000000000000000
CORE 4: PC=0xfffffe002fb25200, LR=0xfffffe003004f268, FP=0xfffffe30987c3db0
CORE 5: PC=0xfffffe002fb25200, LR=0xfffffe003004f268, FP=0xfffffe309b17bdb0
CORE 6: PC=0xfffffe002fb25200, LR=0xfffffe003004f268, FP=0xfffffe3f5966bdb0
CORE 7: PC=0xfffffe002fb25200, LR=0xfffffe003004f268, FP=0xfffffe309af7bdb0
Panicked task 0xfffffe167984a1f8: 100 pages, 4 threads: pid 778: redis-server
Panicked thread: 0xfffffe16797df300, backtrace: 0xfffffe3f5958b6d0, tid: 6902
          lr: 0xfffffe002fb2ab68  fp: 0xfffffe3f5958b740
          lr: 0xfffffe002fb2a94c  fp: 0xfffffe3f5958b7b0
          lr: 0xfffffe002fc541c8  fp: 0xfffffe3f5958b7d0
          lr: 0xfffffe002fc45674  fp: 0xfffffe3f5958b880
          lr: 0xfffffe002fae37e8  fp: 0xfffffe3f5958b890
          lr: 0xfffffe002fb2a5dc  fp: 0xfffffe3f5958bc20
          lr: 0xfffffe002fb2a5dc  fp: 0xfffffe3f5958bc90
          lr: 0xfffffe00302dce80  fp: 0xfffffe3f5958bcb0
          lr: 0xfffffe002fb3f460  fp: 0xfffffe3f5958bce0
          lr: 0xfffffe002fb3f2cc  fp: 0xfffffe3f5958bd00
          lr: 0xfffffe002fb25174  fp: 0xfffffe3f5958bd50
          lr: 0xfffffe003004f268  fp: 0xfffffe3f5958bdb0
          lr: 0xfffffe00301320e8  fp: 0xfffffe3f5958be40
          lr: 0xfffffe002fc45350  fp: 0xfffffe3f5958bef0
          lr: 0xfffffe002fae37e8  fp: 0xfffffe3f5958bf00

last started kext at 697335366: com.apple.filesystems.autofs    3.0 (addr 0xfffffe002f988000, size 16384)
loaded kexts:
com.apple.filesystems.autofs    3.0
com.apple.fileutil  20.036.15
com.apple.driver.AppleTopCaseHIDEventDriver 4050.1
com.apple.iokit.IOBluetoothSerialManager    8.0.5d7
com.apple.driver.AppleBiometricServices 1
com.apple.driver.DiskImages.ReadWriteDiskImage  493.0.0
com.apple.driver.DiskImages.UDIFDiskImage   493.0.0
com.apple.driver.DiskImages.RAMBackingStore 493.0.0
com.apple.driver.DiskImages.FileBackingStore    493.0.0
com.apple.filesystems.apfs  1677.141.1
com.apple.driver.BCMWLANFirmware4378.Hashstore  1
com.apple.driver.SEPHibernation 1
com.apple.driver.CoreKDL    1
com.apple.driver.AppleUSBDeviceNCM  5.0.0
com.apple.driver.AppleThunderboltIP 4.0.3
com.apple.driver.AppleSmartBatteryManager   161.0.0
com.apple.driver.AppleALSColorSensor    1.0.0d1
com.apple.driver.AppleAOPVoiceTrigger   11.5
com.apple.driver.AppleFileSystemDriver  3.0.1
com.apple.nke.l2tp  1.9
com.apple.filesystems.tmpfs 1
com.apple.driver.ApplePMP   1
com.apple.driver.ApplePMPFirmware   1
com.apple.driver.AppleSmartIO2  1
com.apple.IOTextEncryptionFamily    1.0.0
com.apple.filesystems.hfs.kext  556.100.11
com.apple.security.BootPolicy   1
com.apple.BootCache 40
com.apple.AppleFSCompression.AppleFSCompressionTypeZlib 1.0.0
com.apple.AppleFSCompression.AppleFSCompressionTypeDataless 1.0.0d1
com.apple.AppleEmbeddedSimpleSPINORFlasher  1
com.apple.driver.AppleDPDisplayTCON 1
com.apple.driver.AppleCS42L83Audio  442.26
com.apple.driver.AppleTAS5770LAmp   442.26
com.apple.driver.AppleSPMIPMU   1.0.1
com.apple.driver.AppleT8020SOCTuner 1
com.apple.driver.AppleT8103CLPCv3   1
com.apple.AGXG13G   173.28.7
com.apple.driver.AppleAVD   385
com.apple.driver.AppleAVE2  401.73.4
com.apple.driver.AppleJPEGDriver    4.6.0
com.apple.driver.AppleMobileDispH13G-DCP    140.0
com.apple.driver.usb.AppleUSBHostT8103  1
com.apple.driver.AudioDMAController-T8103   1.60.5
com.apple.driver.AppleS5L8960XNCO   1
com.apple.driver.AppleT8103PMGR 1
com.apple.driver.AppleS8000AES  1
com.apple.driver.AppleS8000DWI  1.0.0d1
com.apple.driver.AppleS5L8960XWatchDogTimer 1
com.apple.driver.AppleInterruptController   1.0.0d1
com.apple.driver.AppleT8020DART 1
com.apple.driver.AppleBluetoothModule   1
com.apple.driver.AppleSamsungSerial 1.0.0d1
com.apple.driver.AppleBCMWLANBusInterfacePCIe   1
com.apple.driver.AppleS5L8920XPWM   1.0.0d1
com.apple.driver.AppleS5L8940XI2C   1.0.0d2
com.apple.driver.AppleSPIMC 1
com.apple.driver.AppleT8101 1
com.apple.driver.AppleM68Buttons    1.0.0d1
com.apple.iokit.IOUserEthernet  1.0.1
com.apple.driver.usb.AppleUSBUserHCI    1
com.apple.iokit.IOKitRegistryCompatibility  1
com.apple.iokit.EndpointSecurity    1
com.apple.driver.AppleDiskImages2   1
com.apple.AppleSystemPolicy 2.0.0
com.apple.nke.applicationfirewall   311
com.apple.kec.InvalidateHmac    1
com.apple.kext.triggers 1.0
com.apple.driver.AppleActuatorDriver    4440.3
com.apple.driver.AppleHIDKeyboard   224
com.apple.driver.AppleMultitouchDriver  4440.3
com.apple.driver.AppleHSBluetoothDriver 4050.1
com.apple.driver.IOBluetoothHIDDriver   8.0.5d7
com.apple.iokit.IOAVBFamily 940.4
com.apple.plugin.IOgPTPPlugin   985.2
com.apple.iokit.IOEthernetAVBController 1.1.0
com.apple.driver.AppleMesaSEPDriver 100.99
com.apple.iokit.IOBiometricFamily   1
com.apple.driver.DiskImages.KernelBacked    493.0.0
com.apple.driver.AppleXsanScheme    3
com.apple.driver.AppleSEPHDCPManager    1.0.1
com.apple.driver.AppleTrustedAccessory  1
com.apple.iokit.AppleSEPGenericTransfer 1
com.apple.driver.IOBluetoothHostControllerPCIeTransport 8.0.5d7
com.apple.iokit.IOBluetoothHostControllerTransport  8.0.5d7
com.apple.driver.AppleConvergedIPCOLYBTControl  1
com.apple.driver.AppleConvergedPCI  1
com.apple.driver.AppleBluetoothDebug    1
com.apple.driver.AppleBTM   1.0.1
com.apple.driver.usb.networking 5.0.0
com.apple.driver.AppleThunderboltDPInAdapter    8.1.4
com.apple.driver.AppleThunderboltDPAdapterFamily    8.1.4
com.apple.driver.AppleThunderboltUSBDownAdapter 1.0.4
com.apple.driver.AppleThunderboltPCIDownAdapter 4.1.1
com.apple.driver.AppleAOPAudio  16.2
com.apple.driver.AppleHIDTransportSPI   4400.35
com.apple.driver.AppleHIDTransport  4400.35
com.apple.driver.AppleInputDeviceSupport    4400.35
com.apple.nke.ppp   1.9
com.apple.driver.AppleSPU   1
com.apple.driver.AppleDCPDPTXProxy  1.0.0
com.apple.driver.DCPDPFamilyProxy   1
com.apple.AGXFirmwareKextG13GRTBuddy    173.28.7
com.apple.AGXFirmwareKextRTBuddy64  173.28.7
com.apple.driver.AppleBSDKextStarter    3
com.apple.filesystems.hfs.encodings.kext    1
com.apple.iokit.IONVMeFamily    2.1.0
com.apple.driver.AppleDiagnosticDataAccessReadOnly  1.0.0
com.apple.driver.AppleNANDConfigAccess  1.0.0
com.apple.driver.AppleHPM   3.4.4
com.apple.driver.AppleStockholmControl  1.0.0
com.apple.driver.AppleCSEmbeddedAudio   442.26
com.apple.driver.AppleEmbeddedAudio 442.26
com.apple.iokit.AppleARMIISAudio    80.34.1
com.apple.driver.AppleDialogPMU 1.0.1
com.apple.driver.ApplePassthroughPPM    3.0
com.apple.iokit.IOGPUFamily 21.11
com.apple.driver.AppleH11ANEInterface   4.75.0
com.apple.driver.AppleH13CameraInterface    3.58.0
com.apple.driver.AppleH10PearlCameraInterface   16.15.1
com.apple.driver.DCPAVFamilyProxy   1
com.apple.iokit.IOMobileGraphicsFamily-DCP  343.0.0
com.apple.driver.AppleDCP   1
com.apple.driver.AppleFirmwareKit   1
com.apple.iokit.IOMobileGraphicsFamily  343.0.0
com.apple.driver.AppleSPMI  1.0.1
com.apple.driver.AppleUSBXDCIARM    1.0
com.apple.driver.AppleUSBXDCI   1.0
com.apple.iokit.IOUSBDeviceFamily   2.0.0
com.apple.driver.usb.AppleUSBXHCIARM    1
com.apple.driver.usb.AppleUSBXHCI   1.2
com.apple.driver.AppleEmbeddedUSBHost   1
com.apple.driver.usb.AppleUSBHub    1.2
com.apple.driver.usb.AppleUSBHostCompositeDevice    1.2
com.apple.driver.AppleT8103TypeCPhy 1
com.apple.driver.AppleSART  1
com.apple.driver.ApplePMGR  1
com.apple.driver.watchdog   1
com.apple.driver.usb.AppleUSBHostPacketFilter   1.0
com.apple.driver.AppleDisplayCrossbar   1.0.0
com.apple.iokit.IODisplayPortFamily 1.0.0
com.apple.driver.AppleTypeCPhy  1
com.apple.driver.AppleThunderboltNHI    7.2.8
com.apple.driver.AppleT8103PCIeC    1
com.apple.iokit.IOThunderboltFamily 9.3.2
com.apple.driver.ApplePIODMA    1
com.apple.driver.AppleT8103PCIe 1
com.apple.driver.AppleMultiFunctionManager  1
com.apple.driver.AppleEmbeddedPCIE  1
com.apple.driver.AppleBluetoothDebugService 1
com.apple.driver.AppleBCMWLANCore   1.0.0
com.apple.iokit.IO80211FamilyV2 1200.12.2b1
com.apple.driver.IOImageLoader  1.0.0
com.apple.driver.corecapture    1.0.4
com.apple.driver.AppleMCA2-T8103    540.10
com.apple.driver.AppleGPIOICController  1.0.2
com.apple.driver.AppleFireStormErrorHandler 1
com.apple.driver.AppleMobileApNonce 1
com.apple.iokit.IOTimeSyncFamily    985.2
com.apple.driver.DiskImages 493.0.0
com.apple.iokit.IOGraphicsFamily    585.1
com.apple.iokit.IOBluetoothFamily   8.0.5d7
com.apple.iokit.IOBluetoothPacketLogger 8.0.5d7
com.apple.driver.FairPlayIOKit  68.7.1
com.apple.iokit.CoreAnalyticsFamily 1
com.apple.driver.AppleSSE   1.0
com.apple.driver.AppleSEPKeyStore   2
com.apple.driver.AppleUSBTDM    511.141.1
com.apple.iokit.IOUSBMassStorageDriver  184.140.2
com.apple.iokit.IOPCIFamily 2.9
com.apple.iokit.IOSCSIBlockCommandsDevice   436.140.1
com.apple.iokit.IOSCSIArchitectureModelFamily   436.140.1
com.apple.driver.AppleIPAppender    1.0
com.apple.driver.AppleFDEKeyStore   28.30
com.apple.driver.AppleEffaceableStorage 1.0
com.apple.driver.AppleCredentialManager 1.0
com.apple.driver.KernelRelayHost    1
com.apple.iokit.IOUSBHostFamily 1.2
com.apple.driver.AppleUSBHostMergeProperties    1.2
com.apple.driver.usb.AppleUSBCommon 1.0
com.apple.driver.AppleSMC   3.1.9
com.apple.driver.RTBuddy    1.0.0
com.apple.driver.AppleEmbeddedTempSensor    1.0.0
com.apple.driver.AppleARMPMU    1.0
com.apple.iokit.IOAccessoryManager  1.0.0
com.apple.driver.AppleOnboardSerial 1.0
com.apple.iokit.IOSkywalkFamily 1
com.apple.driver.mDNSOffloadUserClient  1.0.1b8
com.apple.iokit.IONetworkingFamily  3.4
com.apple.iokit.IOSerialFamily  11
com.apple.driver.AppleSEPManager    1.0.1
com.apple.driver.AppleA7IOP 1.0.2
com.apple.driver.IOSlaveProcessor   1
com.apple.driver.AppleBiometricSensor   2
com.apple.iokit.IOHIDFamily 2.0.0
com.apple.AUC   1.0
com.apple.iokit.IOAVFamily  1.0.0
com.apple.iokit.IOHDCPFamily    1.0.0
com.apple.iokit.IOCECFamily 1
com.apple.iokit.IOAudio2Family  1.0
com.apple.driver.AppleEmbeddedAudioLibs 1.17
com.apple.driver.AppleFirmwareUpdateKext    1
com.apple.driver.AppleM2ScalerCSCDriver 265.0.0
com.apple.iokit.IOSurface   290.8.1
com.apple.driver.IODARTFamily   1
com.apple.security.quarantine   4
com.apple.security.sandbox  300.0
com.apple.kext.AppleMatch   1.0.0d1
com.apple.driver.AppleMobileFileIntegrity   1.0.5
com.apple.kext.CoreTrust    1
com.apple.security.AppleImage4  3.0.0
com.apple.iokit.IOCryptoAcceleratorFamily   1.0.1
com.apple.driver.AppleARMPlatform   1.0.2
com.apple.iokit.IOStorageFamily 2.1
com.apple.iokit.IOSlowAdaptiveClockingFamily    1.0.0
com.apple.iokit.IOReportFamily  47
com.apple.kec.pthread   1
com.apple.kec.corecrypto    11.1
com.apple.kec.Libm  1

** Stackshot Succeeded ** Bytes Traced 364005 (Uncompressed 950640) **

Esto ha ocurrido las dos veces que he ejecutado el código, Geekbench 5 funciona bien resultado

¿Es un problema de código o de M1 SOC?

¿Cómo le explico esto a Apple para que me sustituya? Compré este portátil el 4 de agosto sin apple care

Actualización: @DarkDust sugirió matar a redis e intentarlo, sigue fallando.

1voto

Acabo de probar en un M1 Mini, ya se bloquea con tres procesos, sin imprimir ninguna letra.

./cpu A & ./cpu B & ./cpu C &

Lo mejor es informar a Apple entonces.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X