I am debugging a device and associated software. The operation of the device requires user applications to poll device registers to know when a certain event happens. It works fine when one process (not threaded) is doing the polling, but when another process starts polling Solaris panics with a xt_sync timeout or some other similar timeout. Appears that one of the cpus is not responding to interrupts. We suspect a problem in the device that causes a polling read to not complete, hanging the cpu.
To make sure this is the case we want to see what PC the polling processes are at when the panic happens. However, when we do ::findstack on the threads of the two polling processes after the panic we see panic_idle() systrap() Appears that the user processes trap down to kernel and go into a idle loop related to panic (how does panic force the cpus out of their hung state ?). Is it possible to use mdb to go into the user stack and see what PC they were at. Thanks for any pointers. Rabin This message posted from opensolaris.org