|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 2/2] xen: add update indicator to vcpu_runstate_info
On 16/06/16 14:36, Jan Beulich wrote:
>>>> On 16.06.16 at 14:11, <JGross@xxxxxxxx> wrote:
>> On 16/06/16 13:15, Jan Beulich wrote:
>>>>>> On 15.06.16 at 13:34, <JGross@xxxxxxxx> wrote:
>>>> + if ( VM_ASSIST(v->domain, runstate_update_flag) )
>>>> + {
>>>> + off = offsetof(struct vcpu_runstate_info, state_entry_time) +
>>>> + sizeof(v->runstate.state_entry_time) - 1;
>>>> + if ( has_32bit_shinfo(v->domain) )
>>>> + {
>>>> + guest_handle = v->runstate_guest.compat.p;
>>>> + guest_handle +=
>>>> + offsetof(struct compat_vcpu_runstate_info,
>>>> state_entry_time) +
>>>> + sizeof(v->runstate.state_entry_time) - 1;
>>>
>>> The sizes of the native and compat fields happen to be the same,
>>> but it would be nice if the right field/type could be used here.
>>
>> Hmm, this will require some ugly type casting, but it is probably
>> cleaner.
>
> Type casting? I would expect you to be able to use
> v->runstate_guest.compat.p->state_entry_time. In fact I think
> you also could get rid of the offsetof() if you used
> &v->runstate_guest.compat.p->state_entry_time for initializing
> guest_handle.
Aah, of course. This can then be simplified even more:
if ( VM_ASSIST(v->domain, runstate_update_flag) )
{
guest_handle = has_32bit_shinfo(v->domain)
? &v->runstate_guest.compat.p->state_entry_time + 1
: &v->runstate_guest.native.p->state_entry_time + 1;
guest_handle--;
v->runstate.state_entry_time |= XEN_RUNSTATE_UPDATE;
__raw_copy_to_guest(guest_handle,
(void *)(&v->runstate.state_entry_time + 1) - 1, 1);
smp_wmb();
}
This will reduce code size by 25 bytes. :-)
Juergen
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |