Hi, I want to instrument all store instructions, and for this I wrote a helper function (in helper.c) which prints out some information every time a store is executed. I call this helper function from within every store OPROTO in ops_mem.h
for example: void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T0_A0)(void) { glue(stl, MEMSUFFIX)(A0, T0); helper_print_info(A0); // MY HELPER FUNCTION FORCE_RET(); } This works just fine for me for some time, but after a while when the frequency of calls to helper_print_info increases, QEMU just hangs throwing out some information on the QEMU console. I have typed in the error message in parts below - (If you need more information, please let me know - I included a subset just because I do not yet know how to copy-paste text from QEMU console to the host machine console) ******************************************* BUG: soft lockup detected on CPU#0! Pid: 0, comm: swapper EIP: 0060:[<c027adfb>] CPU: 0 EIP is at serio_interrupt+0x7f/0x18f EFLAGS: 00000286 ... [c02c1b2d>] cdrom_pc_intr+0x90/0x21a ... [<c0105b1d>] do_IRQ+0x4a/0x82 ======================= ... [<c04242fe>] unknown_bootoption+0x0/0x1cd **************************************** QEMU hangs after throwing out the above error. However, if I switch to the Monitor and disable my helper function, QEMU resumes back and works fine. Can somebody tell me - 1. Am I instrumenting all stores if I instrument the OPROTOs in ops_mem.h? 2. From my above example, am I instrumenting the stores with my helper function in the right way? 3. Can you please tell me why "BUG: soft lockup detected..." error shows up freezing QEMU? Looking forward to your help. Thanks in advance. -Shashi.