Hi, In schedule.c, schedule() and sched_adjust() call trace functions during acquiring lock of schedule_lock in each cpu's schedule_data. When trace buffers are enabled, the trace function (__trace_var()) may call vcpu_wake() by calling send_guest_global_virq(). In the case, a deadlock occurs when acquiring lock of schedule_lock. Attached patch fixes this problem. Signed-off-by: Naoki Nishiguchi Regards, Naoki Nishiguchi