[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH xen v2] xen: arm: fully implement multicall interface.
On Mon, 2014-04-07 at 16:13 +0100, Jan Beulich wrote: > >>> On 07.04.14 at 15:42, <Ian.Campbell@xxxxxxxxxx> wrote: > > On Mon, 2014-04-07 at 14:27 +0100, Jan Beulich wrote: > >> >>> On 07.04.14 at 14:48, <ian.campbell@xxxxxxxxxx> wrote: > >> > +static void check_multicall_32bit_clean(struct multicall_entry *multi) > >> > +{ > >> > + int i; > >> > + > >> > + for ( i = 0; i < arm_hypercall_table[multi->op].nr_args; i++ ) > >> > + { > >> > + if ( unlikely(multi->args[i] & 0xffffffff00000000ULL) ) > >> > + { > >> > + printk("%pv: multicall argument %d is not 32-bit clean > >> > %"PRIx64"\n", > >> > + current, i, multi->args[i]); > >> > + domain_crash_synchronous(); > >> > >> On x86 we actually decided quite a long while ago to try to avoid > >> domain_crash_synchronous() whenever possible. I meant to ask why this was? I'm supposing that the for(;;) do_softirqs is not considered very nice... > Would > >> domain_crash(current->domain) not work for you here? > > > > I wondered about that and concluded that I didn't really grok the > > difference so I went with what I thought was the safer option. I'd be > > happy to change if that's considered the right thing to do. > > > > My concern was that domain_crash returns and I wasn't sure what I was > > then supposed to do (obviously not actually run the call though) or when > > the domain was actually guaranteed to die. In particular I might get > > more calls to multicall_call for the rest of the batch. I'm not sure > > that matters other than the possibility that skipping one call in the > > middle might lead to confusing log spam from the remaining calls. > > You'd want to return some error indication, avoid anything else to be > done that might confusion on a dead domain (read: abort the entire > multicall), Hrm, that will involve frobbing around with the common do_multicall code since it currently doesn't consider the possibility of do_multicall_call failing in a fatal way. > and on the hypercall exit path the vCPU would be taken off > the scheduler, i.e. you run your normal call tree to completion and > you're guaranteed that the vCPU in question won't make it back into > guest context. What about other vcpus? I suppose they get nobbled as and when they happen to enter the hypervisor? Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |