site_archiver@lists.apple.com Delivered-To: Darwin-dev@lists.apple.com -- Terry On Feb 11, 2009, at 7:00 AM, Stéphane Letz <letz@grame.fr> wrote: Hi, Sampling process 115 for 3 seconds with 1 millisecond of run time between samples Sampling completed, processing symbols... Analysis of sampling coreaudiod (pid 115) every 1 millisecond Call graph: 2473 Thread_2503 2473 0xbfffff38 2473 0x24cc 2473 0xae60 2473 AudioHardwareBeMaster 2473 HALSystem::CheckOutInstance() 2473 HALSystem::InitializeDevices() 2473 HALPlugInManagement::Initialize() 2473 HALPlugInManagement::CreateHALPlugIn(HALCFPlugIn const*) 2473 __ZL40HP_HardwarePlugIn_InitializeWithObjectIDPP28AudioHardwarePlugInInterfacem 2473 JackRouterPlugIn::InitializeWithObjectID(unsigned long) 2473 JackRouterPlugIn::CheckServer(unsigned long) 2473 jack_client_open 2473 jack_client_open_aux 2473 Jack::JackMessageBuffer::Destroy() 2473 Jack::JackMessageBuffer::~JackMessageBuffer() 2473 pthread_cond_destroy 2211 __spin_lock_relinquish 2211 __spin_lock_relinquish 262 __spin_lock 262 __spin_lock Total number in stack (recursive counted multiple, when >=5): Sort by top of stack, same collapsed (when >= 5): __spin_lock_relinquish 2211 __spin_lock 262 Sample analysis of process 115 written to file /dev/stdout pthread_cond_t fCond; pthread_cond_init(&fCond, NULL); What could be the cause of this hang? Thanks Stephane Letz _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/tlambert%40apple.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... Sample only gives statistical profiling; that is, it only gives information about where the program counter happened to be at the time you were looking. As such, you're not going to get a literal call graph like you would with, for example, a dtruss to a gdb bt. The graph you show could just as easily be you repeatedly entering the same code, or making a call that blocks a long time. My guess would be a retry loop at the InitializeWithObjectID, probably at JackRouterPlugIn, or up one level, depending on the return code and how the code above it deals with a bad return with that code. An east way to check this is to see if it's actually blocked by looking at how much CPU it's using (dtruss will only give information on it making real System calls; dtrace in user space might give more information). We get a strange "hang" but report in our code where it seems that "pthread_cond_destroy" is hanging: OS Version: 10.5.6 (Build 9G55) Model: PowerBook6,4, BootROM 4.8.3f1, 1 processor, PowerPC G4 (1.1), 1.33 GHz, 1,25 GB Graphics: GeForce FX Go5200, GeForce FX Go5200, spdisplays_agp_device, 64 MB Memory Module: DIMM0/BUILT-IN, 256 MB, built-in, built-in Memory Module: DIMM1/J31, 1 GB, DDR SDRAM, PC2700U-25330 AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x4E), Broadcom BCM43xx 1.0 (4.170.25.8) Modem: Jump, V.92, Version 1.0 Bluetooth: Version 2.1.3f8, 2 service, 0 devices, 1 incoming serial ports Network Service: AirPort, AirPort, en1 Parallel ATA Device: MATSHITACD-RW CW-8123 Parallel ATA Device: ST980815A, 74,53 GB USB Device: Bluetooth USB Host Controller, (null) mA We checked again that the condition variable is correctly allocated with this kind of code: This email sent to tlambert@apple.com This email sent to site_archiver@lists.apple.com