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).
Thanks, -Shashi. On 5/17/07, Atif Hashmi <[EMAIL PROTECTED]> wrote:
Hi, 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. Atif On 5/17/07, Shashidhar Mysore <[EMAIL PROTECTED]> wrote: > > 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. >