How to hook a context switch??
From: Gromer (osIndgy_at_gmail.com)
Date: 10/22/05
- Next message: Captain Dondo: "Re: Simulating key scancodes in Linux..."
- Previous message: rob: "MPC8xx Low cost BDM wiggler debugger"
- Next in thread: Gromer: "Re: How to hook a context switch??"
- Reply: Gromer: "Re: How to hook a context switch??"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 22 Oct 2005 02:00:55 -0700
Hi,
I have one issue and would like to get some expert advise from the
group. The below shown code snippet gives some idea about the scenario.
I have basically one function (func_1) which does a wake_up after
processing some information. Once the wake_up is executed the system
crashes.
So to debug this, i've put printks after the add_wait_queue() and
schedule function to capture the functions that gets executed with a
wake_up... but for no help.. Im unable to find the thread which gets
executed after the wake_up.
I'm wondering how to capture or debug which thread/function gets the
CPU when this wake_up has been executed... Any pointer would be highly
appreciable.
How is such a situation usually debugged?? Can such a context switching
be hooked..
/* Wait on here when we're waiting device to be ready */
wait_queue_head_t waitDev;
void func_1( struct func_arg*)
{
/*..Do some useful work */
wake_up(&waitDev); /* crash occurs here */
}
int sec_func (struct func_arg2 *)
{
/* some processing work done here */
....
..
set_current_state(TASK_UNINTERRUPTIBLE);
add_wait_queue(&waitDev, &wait);
spin_unlock(mutex);
schedule();
remove_wait_queue(&waitDev, &wait);
spin_lock(chip->mutex);
/* some more work is being done here */
}
Thanks in Advance,
Gromer
- Next message: Captain Dondo: "Re: Simulating key scancodes in Linux..."
- Previous message: rob: "MPC8xx Low cost BDM wiggler debugger"
- Next in thread: Gromer: "Re: How to hook a context switch??"
- Reply: Gromer: "Re: How to hook a context switch??"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|