[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] "BUG: soft lockup detected on CPU#0!"

From: Atif Hashmi
Subject: Re: [Qemu-devel] "BUG: soft lockup detected on CPU#0!"
Date: Thu, 17 May 2007 16:22:50 -0500

Hi Shashi,

I think it is sufficient to add your intercept code in ops_mem.h. I am not sure about the writes from the I/O though.


On 5/17/07, Shashidhar Mysore <address@hidden> wrote:
Hi Atif,

Thanks for the quick reply. Yes, you are right, I want to consider all updates to memory. Can you tell me if it is sufficient enough to instrument just those in ops_mem.h?  I want to make sure I am not missing any form of write to the memory (even it is from IO devices, which I think is taken care of).


On 5/17/07, Atif Hashmi < address@hidden> wrote:

Answering "1. Am I instrumenting all stores if I instrument the OPROTOs in ops_mem.h? "

Do you consider all updates to memory as stores? e.g. add %ebx, (%eax), will also write to the memory and
void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T0_A0)(void) or one of its variant will be called.

If you are interested in all the memory updates, then your approach is correct. If you are only interested in store instructions then your approach is not correct.


On 5/17/07, Shashidhar Mysore <address@hidden> wrote:

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

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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]