On Mon, Dec 01, 2014 at 03:42:33PM +0100, Juergen Gross wrote: > On 12/01/2014 02:32 PM, Luis R. Rodriguez wrote: >> On Mon, Dec 01, 2014 at 11:01:18AM +0000, David Vrabel wrote: >>> On 28/11/14 04:49, Juergen Gross wrote: >>>> On 11/27/2014 07:50 PM, Andrew Cooper wrote: >>>>> >>>>> XenServer uses >>>>> >>>>> https://github.com/xenserver/linux-3.x.pg/blob/master/master/0001-x86-xen-allow-privcmd-hypercalls-to-be-preempted.patch >>>>> >>>>> >>>>> to deal with these issues. That patch is based on 3.10. >>>> >>>> Clever. :-) >>>> >>>>> >>>>> I can remember whether this has been submitted upstream before (and >>>>> there were outstanding issues), or whether it fell at an inconvenient >>>>> time with our development cycles. >>>> >>>> I found >>>> >>>> http://lists.xen.org/archives/html/xen-devel/2014-02/msg02540.html >>>> >>>> and nothing else. >>> >>> I dropped it because it copy-and-paste a bunch of otherwise generic x86 >>> assembler and looked unlikely to get an x86 maintainer ack. If you >>> think otherwise, feel free to pick it up and run with it. >> >> I was trying to run with it, but my biggest gripe with this was >> the use of preempt_schedule_irq(), but we can review that on the >> other thread. So much for the other thread :) > I think this can be handled completely inside xen_evtchn_do_upcall(). > > xen_preemptible_hcall_begin() (possibly with another name) could take > the pointer of a function as parameter which is used as continuation > point after an asynchronous interrupt in the critical section. Oh so we'd only preempt to one specific task? > Parameter for that function would be the exception frame of the > original interrupt to be able to continue at the interrupted position > after e.g. calling schedule(). Interesting... if reasonable I wonder if this should be generalized. Are there other CONFIG_PREEMPT=n use cases for such excemptions? Luis -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html