[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3] xen: introduce VCPUOP_register_runstate_phys_memory_area hypercall
>>> On 13.06.19 at 14:17, <andrii.anisov@xxxxxxxxx> wrote: > On 12.06.19 10:27, Jan Beulich wrote: >>> Well, my point here is to left it as is, maybe add more documentation. If >>> one likes shooting his leg, we should only care about avoiding ricochet > harms >>> hypervisor or other guests. >>> If you disagree, please suggest your interaction model, I'll be happy to >>> implement it. >> >> Well, if "mix as you like" is fine for guests to follow, then okay. But >> we need to be _really_ certain there's no issue with this. > > I'm not aware about potential problems from the guest side. Do you have any > ideas about it? I didn't spend time trying to figure something out, but ... >> Relaxing >> the interface is always possible, while tightening an interface is >> almost always at least a problem, if possible at all. > > True. ... you agreeing here suggests someone should, and this would better not (only) be the reviewer(s). >>>>> --- a/xen/include/xen/sched.h >>>>> +++ b/xen/include/xen/sched.h >>>>> @@ -163,17 +163,31 @@ struct vcpu >>>>> void *sched_priv; /* scheduler-specific data */ >>>>> >>>>> struct vcpu_runstate_info runstate; >>>>> + >>>>> + enum { >>>>> + RUNSTATE_NONE = 0, >>>>> + RUNSTATE_PADDR = 1, >>>>> + RUNSTATE_VADDR = 2, >>>>> + } runstate_guest_type; >>>>> + >>>>> + unsigned long runstate_in_use; >>>> >>>> Why "unsigned long"? Isn't a bool all you need? >>> >>> Bool should be enough. But it seems we will have a lock here. >>> >>>> Also these would now all want to be grouped in a sub-structure named >>>> "runstate", rather than having "runstate_" prefixes. >>> >>> Member `runstate` has already a type of `struct vcpu_runstate_info` which is >>> an interface type. >>> `runstate_guest` is a union. I'd not like moving `runstate_guest` union into >>> another substructure. Because we would have long lines like >>> `v->struct.runstate_guest.virt.p->state_entry_time`. >> >> You didn't get my point then: What I'm after is >> >> struct { >> struct vcpu_runstate_info info; >> enum { >> RUNSTATE_NONE, >> RUNSTATE_PADDR, >> RUNSTATE_VADDR, >> } guest_type; >> bool in_use; >> } runstate; > > Did you miss runstate_guest as a member of that struct? Quite possible. I've outlined it only anyway, for you to get the idea. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |