|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH V2 8/8] x86/hvm: factor out vm_event related functions into separate file
>>> On 23.01.15 at 09:56, <rcojocaru@xxxxxxxxxxxxxxx> wrote:
> On 01/22/2015 06:42 PM, Tamas K Lengyel wrote:
>> On Thu, Jan 22, 2015 at 5:25 PM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>>>>> On 18.01.15 at 16:18, <tamas.lengyel@xxxxxxxxxxxx> wrote:
>>>> +void hvm_event_msr(unsigned long msr, unsigned long value)
>>>> +{
>>>> + vm_event_request_t req = {
>>>> + .reason = VM_EVENT_REASON_MSR,
>>>> + .vcpu_id = current->vcpu_id,
>>>> + .msr_event.msr = msr,
>>>> + .msr_event.new_value = value,
>>>> + };
>>>
>>> The .msr_event sub-structure also has an old_value member - how
>>> come this doesn't get filled (I realize the old code was this way,
>>> but I now doubt earlier patches are all correct in the regard).
>>
>> Razvan might have more information on this side as I haven't really
>> touched MSR events. I vaguely recall some issues with having access to
>> the old MSR value?
>
> Indeed, getting the previous value would be a bit involved. Please see
> xen/arch/x86/hvm/hvm.c, specifically hvm_msr_write_intercept(). At first
> glance, you'd have to call hvm_msr_read_intercept() to get the previous
> value, or create some sort of cache for previous values for all MSRs,
> updated by hvm_msr_write_intercept().
>
> Since this has not had any real value for my use-case, and since my code
> has only needed to keep track of a handful of MSRs, I took the route of
> caching previous values for them in the userspace application.
>
> This is, of course, not to say that it can't be done at the HV level,
> just that (at least IMHO) the HV-level costs have outweighed the benefits.
In which case the respective interface structure field should have a
comment attached saying that it currently doesn't hold what the field
name promises (and, without having checked whether this may already
be the case, it should be made hold a deterministic value, e.g. zero).
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |