I want to migrate current task to another CPU without the help migration thread. Because using migration thread causes extra context switch.

In function schedule():

before pick_next_task(), I delete task from run queue by invoking deactivate_task().

After executing context_switch(), the executing stream seems stop. It is very difficult to debug.
I add printk() under the context_switch(), there is no output message. However,
I add printk() at the last line in context_switch(), there is output message.

I'm puzzled for days.

Is there anyone kind enough to give me some tips?