From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Vrabel Subject: Re: [Xen-devel] [RFC v3 2/2] x86/xen: allow privcmd hypercalls to be preempted Date: Thu, 22 Jan 2015 12:55:17 +0000 Message-ID: <54C0F335.6030403@citrix.com> References: <1421893039-426-1-git-send-email-mcgrof@do-not-panic.com> <1421893039-426-3-git-send-email-mcgrof@do-not-panic.com> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Cc: kvm list , "Luis R. Rodriguez" , X86 ML , "linux-kernel@vger.kernel.org" , Steven Rostedt , Ingo Molnar , David Vrabel , Jan Beulich , "H. Peter Anvin" , Masami Hiramatsu , "xen-devel@lists.xenproject.org" , Boris Ostrovsky , Borislav Petkov , Thomas Gleixner To: Andy Lutomirski , "Luis R. Rodriguez" Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 22/01/15 03:18, Andy Lutomirski wrote: >> --- a/drivers/xen/events/events_base.c >> +++ b/drivers/xen/events/events_base.c >> @@ -32,6 +32,8 @@ >> #include >> #include >> #include >> +#include >> +#include >> >> #ifdef CONFIG_X86 >> #include >> @@ -1243,6 +1245,17 @@ void xen_evtchn_do_upcall(struct pt_regs *regs) >> set_irq_regs(old_regs); >> } >> >> +notrace void xen_end_upcall(struct pt_regs *regs) >> +{ >> + if (!xen_is_preemptible_hypercall(regs) || >> + __this_cpu_read(xed_nesting_count)) >> + return; > > What's xed_nesting_count? It used to prevent nested upcalls when a hypercall called from an upcall triggers another upcall. There's no way a such a nested hypercall can be preemptible so the check cfor xed_nesting_count an be removed from here. David