|
From: | Atif Hashmi |
Subject: | Re: [Qemu-devel] "BUG: soft lockup detected on CPU#0!" |
Date: | Thu, 17 May 2007 15:27:57 -0500 |
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.
[Prev in Thread] | Current Thread | [Next in Thread] |