KVM guest: prevent tracing recursion with kvmclock
commitda84e453c225f742b32ff68f65fd9a2af2691c7c
authorAvi Kivity <avi@redhat.com>
Thu, 12 Jan 2012 10:39:51 +0000 (12 12:39 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 18 Jan 2012 15:31:53 +0000 (18 07:31 -0800)
treeb59fbe5e626f13ef4d57184fe735b4f36d746454
parent70422e598a0f7f24e914187844fefcb4d656903d
KVM guest: prevent tracing recursion with kvmclock

(cherry picked from commit 95ef1e52922cf75b1ea2eae54ef886f2cc47eecb)

Prevent tracing of preempt_disable() in get_cpu_var() in
kvm_clock_read(). When CONFIG_DEBUG_PREEMPT is enabled,
preempt_disable/enable() are traced and this causes the function_graph
tracer to go into an infinite recursion. By open coding the
preempt_disable() around the get_cpu_var(), we can use the notrace
version which prevents preempt_disable/enable() from being traced and
prevents the recursion.

Based on a similar patch for Xen from Jeremy Fitzhardinge.

Tested-by: Gleb Natapov <gleb@redhat.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kernel/kvmclock.c