On Wed, Feb 10, 2016 at 10:34 AM, Corneliu ZUZU <cz...@bitdefender.com>
wrote:

>
> On 2/10/2016 6:39 PM, Tamas K Lengyel wrote:
>
>
>
> On Wed, Feb 10, 2016 at 8:52 AM, Corneliu ZUZU <cz...@bitdefender.com>
> wrote:
>
>> 1. Kconfig:
>>   * Added Kconfigs for common monitor vm-events:
>>   # see files: common/Kconfig, x86/Kconfig
>>     HAS_VM_EVENT_WRITE_CTRLREG
>>     HAS_VM_EVENT_SINGLESTEP
>>     HAS_VM_EVENT_SOFTWARE_BREAKPOINT
>>     HAS_VM_EVENT_GUEST_REQUEST
>>
>> 2. Moved monitor_domctl from arch-side to common-side
>>   2.1. Moved arch/x86/monitor.c to common/monitor.c
>>     # see files: arch/x86/Makefile, xen/common/Makefile,
>> xen/common/monitor.c
>>     # changes:
>>         - removed status_check (we would have had to duplicate it in X86
>>             arch_monitor_domctl_event otherwise)
>>         - moved get_capabilities to arch-side
>> (arch_monitor_get_capabilities)
>>         - moved XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP to arch-side (see
>>             arch_monitor_domctl_op)
>>         - put XEN_DOMCTL_MONITOR_EVENT_MOV_TO_MSR to x86-side (see
>>             arch_monitor_domctl_event)
>>         - surrounded switch cases w/ CONFIG_HAS_VM_EVENT_*
>>
>>   2.2. Moved asm-x86/monitor.h to xen/monitor.h
>>     # see files: arch/x86/hvm/event.c, arch/x86/hvm/hvm.c,
>>                  arch/x86/hvm/vmx/vmx.c, xen/common/domctl.c
>>
>>   2.3. Removed asm-arm/monitor.h (no longer needed)
>>
>> 3. Added x86/monitor_x86.c => will rename in next commit to monitor.c
>> (not done
>> in this commit to avoid git seeing this as being the modified old
>> monitor.c =>
>> keeping the same name would have rendered an unnecessarily bulky diff)
>>     # see files: arch/x86/Makefile
>>     # implements X86-side arch_monitor_domctl_event
>>
>> 4. Added asm-x86/monitor_arch.h, asm-arm/monitor_arch.h (renamed to
>> monitor.h in next commit, reason is the same as @ (3.).
>>     # define/implement: arch_monitor_get_capabilities,
>> arch_monitor_domctl_op
>>         and arch_monitor_domctl_event
>>
>
> So these commit messages are not very good IMHO. Rather then just
> summarizing what the patch does you should describe why the patch is needed
> in the first place. Usually for longer series having a cover page is also
> helpful to outline how the patches in the series fit together.
>
>
> The intention was to make review easier (following the changes in parallel
> w/
> the commit message). But indeed I was maybe too focused on that, should
> have
> started w/ stating the purpose of these changes rather than jumping
> directly to detailing
> them. Will try to compact these commit messages next time (maybe move
> details to the
> introductory section instead, as you suggest).
>
>
>
>> Signed-off-by: Corneliu ZUZU <cz...@bitdefender.com>
>> ---
>>  xen/arch/x86/Kconfig                              |   4 +
>>  xen/arch/x86/Makefile                             |   2 +-
>>  xen/arch/x86/hvm/event.c                          |   2 +-
>>  xen/arch/x86/hvm/hvm.c                            |   2 +-
>>  xen/arch/x86/hvm/vmx/vmx.c                        |   2 +-
>>  xen/arch/x86/monitor_x86.c                        |  72 ++++++++
>>  xen/common/Kconfig                                |  20 +++
>>  xen/common/Makefile                               |   1 +
>>  xen/common/domctl.c                               |   2 +-
>>  xen/{arch/x86 => common}/monitor.c                | 195
>> +++++++++-------------
>>  xen/include/asm-arm/{monitor.h => monitor_arch.h} |  34 +++-
>>  xen/include/asm-x86/monitor_arch.h                |  74 ++++++++
>>  xen/include/{asm-x86 => xen}/monitor.h            |  17 +-
>>  13 files changed, 293 insertions(+), 134 deletions(-)
>>  create mode 100644 xen/arch/x86/monitor_x86.c
>>  rename xen/{arch/x86 => common}/monitor.c (44%)
>>  rename xen/include/asm-arm/{monitor.h => monitor_arch.h} (46%)
>>  create mode 100644 xen/include/asm-x86/monitor_arch.h
>>  rename xen/include/{asm-x86 => xen}/monitor.h (74%)
>>
>> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
>> index 3a90f47..e46be1b 100644
>> --- a/xen/arch/x86/Kconfig
>> +++ b/xen/arch/x86/Kconfig
>> @@ -14,6 +14,10 @@ config X86
>>         select HAS_MEM_ACCESS
>>         select HAS_MEM_PAGING
>>         select HAS_MEM_SHARING
>> +       select HAS_VM_EVENT_WRITE_CTRLREG
>>
>
> You mentioned in the previous revision of this series that currently you
> only have plans to implement write_ctrleg and guest_request events for ARM.
> I think singlestep and software_breakpoint should not be moved to common
> without a clear plan to have those implemented. Now, if you were to include
> the implementation of write_ctrlreg and guest_request in this series and
> leave the others in x86 as they are now, I don't think there would be any
> reason to have these Kconfig options present at all.
>
>
> Moving what made sense to be moved to common was a suggestion of Ian's.
> The purpose of this patch is to --avoid-- having to go through this
> process again
> when an implementation of feature X for architecture A != X86 comes into
> place.
> IMHO what is common should stay in common and I don't see any issues w/
> having them there, only advantages (future implementations of these
> features will
> be easier).
> Maybe Ian can chime in on this.
>

That's the upside. The downside is that in the interim, while those
features are not implemented, we need to add a bunch of Kconfig variables
to decide under what build they are available. If it was moved to common
only when the feature is available for all architectures, we wouldn't need
that many ifdefs and the code would be clearer. So I do see why it would be
beneficial having these moved to common now, but I still rather have it
happen when it's necessary and without the Kconfig settings.

Tamas
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to