[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Re: how to handle paged hypercall args?
>>> On 11.11.10 at 21:08, Keir Fraser <keir@xxxxxxx> wrote: > On 11/11/2010 14:33, "Olaf Hering" <olaf@xxxxxxxxx> wrote: > >> So is that an acceptable way to deal with the HVMCOPY_gfn_paged_out >> return codes from __hvm_copy? >> Or should I explore some different way, like spinning there and possible >> let other threads-of-execution make progress while waiting for the gfns >> to come back? > > You can't just spin because Xen is not preemptible. If it were a single CPU > system for example, no other thread would ever run again. You have to 'spin' > via a preemptible loop that returns to guest context and then back into the > hypercall. Which appears to be what you're doing. This works in the context os do_memory_op(), which already has a way to encode a continuation. For other hypercalls (accessible to HVM guests) this may not be as simple, and all of them are potentially running into this same problem. Furthermore, even for the do_memory_op() one, encoding a continuation for a failure of copying in the arguments is clearly acceptable (if no other solution can be found), but unwinding the whole operation when copying out the results fails is at least undesirable (and can lead to a live lock). So I think a general (hopefully transparent to the individual hypercall handlers) solution needs to be found, and a word on the general issue from the original paging code authors (and their thoughts of it when designing the whole thing) would be very much appreciated. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |