|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] arm/monitor vm-events: Implement guest-request support
>>> On 19.02.16 at 17:25, <czuzu@xxxxxxxxxxxxxxx> wrote:
> On 2/19/2016 4:26 PM, Jan Beulich wrote:
>>>>> On 18.02.16 at 20:35, <czuzu@xxxxxxxxxxxxxxx> wrote:
>>> ---
>>> MAINTAINERS | 1 +
>>> xen/arch/arm/hvm.c | 8 +++
>>> xen/arch/x86/hvm/event.c | 116
>>> ++++++----------------------------------
>>> xen/arch/x86/hvm/hvm.c | 1 +
>>> xen/arch/x86/monitor.c | 14 -----
>>> xen/arch/x86/vm_event.c | 1 +
>>> xen/common/Makefile | 2 +-
>>> xen/common/hvm/Makefile | 3 +-
>>> xen/common/hvm/event.c | 96 +++++++++++++++++++++++++++++++++
>> So here you _again_ try to introduce something HVM-ish for ARM.
>> Why? Why can't this code live in common/vm_event.c?
>
> Are you referring to "xen/arch/arm/hvm.c"? If so, I did not introduce
> that file, it was already there, all I did is add handling of
> HVMOP_guest_request_vm_event to ARM-side's already existing do_hvm_op :).
No, I'm referring to your initial attempt to create arch/arm/hvm/...
> On the "HVM-ish" note, is there some incompatibility between ARM and the
> concept of HVM?
ARM guests are neither PV nor HVM right now, but somewhere in
the middle (PVHv2 may come closest).
>>> --- a/xen/include/asm-x86/domain.h
>>> +++ b/xen/include/asm-x86/domain.h
>>> @@ -376,17 +376,15 @@ struct arch_domain
>>> unsigned long *pirq_eoi_map;
>>> unsigned long pirq_eoi_map_mfn;
>>>
>>> - /* Monitor options */
>>> + /* Arch-specific monitor options */
>>> struct {
>>> - unsigned int write_ctrlreg_enabled : 4;
>>> - unsigned int write_ctrlreg_sync : 4;
>>> - unsigned int write_ctrlreg_onchangeonly : 4;
>>> - unsigned int mov_to_msr_enabled : 1;
>>> - unsigned int mov_to_msr_extended : 1;
>>> - unsigned int singlestep_enabled : 1;
>>> - unsigned int software_breakpoint_enabled : 1;
>>> - unsigned int guest_request_enabled : 1;
>>> - unsigned int guest_request_sync : 1;
>>> + uint16_t write_ctrlreg_enabled : 4;
>>> + uint16_t write_ctrlreg_sync : 4;
>>> + uint16_t write_ctrlreg_onchangeonly : 4;
>>> + uint16_t mov_to_msr_enabled : 1;
>>> + uint16_t mov_to_msr_extended : 1;
>>> + uint16_t singlestep_enabled : 1;
>>> + uint16_t software_breakpoint_enabled : 1;
>>> } monitor;
>> What is this type change supposed to achieve in general, and in
>> particular in the context of this patch?
>
> Some time before this patch there was a discussion I had w/ ARM
> maintainer Ian Campbell who made the suggestion to try and move parts of
> the monitor vm-events code to the common-side.
> (you can find that discussion here:
> https://www.mail-archive.com/xen-devel@xxxxxxxxxxxxx/msg54139.html).
> In short, the reason for his suggestion was that that previous attempt
> of mine to add guest-request support for ARM highlighted code
> duplication between X86 and ARM if I were to leave the monitor vm-events
> code as it was (that is, completely arch-specific). In an effort to
> avoid that, I first submitted a 7 patch-series which tried to move as
> much as possible to the common-side.
> "As much as possible" meant guest-request, ctrl-reg write, single-step
> and software breakpoints, all moved to the common-side. That also meant
> introducing some Kconfigs to selectively activate some parts of that
> now-common code, since not all of it was used on ARM at that moment.
> Although conceptually that code could have remained on the common-side,
> Tamas pointed out that we could get rid of the Kconfigs (which in his
> opinion bloated the code) by only moving at the moment what is
> implemented on both X86 and ARM. As for the rest, he noted that when I
> add implementations for the other monitor vm-events on ARM as well, I
> could move that to common as well. The above is a result of that -
> guest-request is implemented on both X86 and ARM with this patch, hence
> I also moved it to common.
I agree there are two fields being removed. But the question was
why you also change the type of the other fields.
>>> --- a/xen/include/asm-x86/hvm/event.h
>>> +++ b/xen/include/asm-x86/hvm/event.h
>>> @@ -1,5 +1,9 @@
>>> /*
>>> - * event.h: Hardware virtual machine assist events.
>>> + * include/asm-x86/hvm/event.h
>>> + *
>>> + * Arch-specific hardware virtual machine event abstractions.
>>> + *
>>> + * Copyright (c) 2016, Bitdefender S.R.L.
>> Is this true? Namely, was _all_ of the code here written by people
>> on your company, including what may have got moved here from
>> elsewhere?
>
> My bad. Removing that line would be satisfactory, yes?
To me, yes.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |