All of lore.kernel.org
 help / color / mirror / Atom feed
From: Corneliu ZUZU <czuzu@bitdefender.com>
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Kevin Tian <kevin.tian@intel.com>, Keir Fraser <keir@xen.org>,
	Ian Campbell <ian.campbell@citrix.com>,
	Razvan Cojocaru <rcojocaru@bitdefender.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Xen-devel <xen-devel@lists.xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <stefano.stabellini@citrix.com>,
	Jun Nakajima <jun.nakajima@intel.com>
Subject: Re: [PATCH v2 3/7] xen/vm-events: Move monitor_domctl to common-side.
Date: Wed, 10 Feb 2016 19:34:48 +0200	[thread overview]
Message-ID: <56BB74B8.1020207@bitdefender.com> (raw)
In-Reply-To: <CABfawhkkY0t=ydfVG2f_a5e9XAHOZbqTdDnkMM+hMkxKUfUuEg@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 6801 bytes --]

On 2/10/2016 6:39 PM, Tamas K Lengyel wrote:
>
>
> On Wed, Feb 10, 2016 at 8:52 AM, Corneliu ZUZU <czuzu@bitdefender.com 
> <mailto:czuzu@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 <czuzu@bitdefender.com
>     <mailto:czuzu@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.

Regarding single-step & software-breakpoint monitor vm-events for ARM, that
should be very feasible IMO, as I detailed in an email I sent to you in 
v1, in which
I was pointing how we could use the debugging architecture.

>
>     +bool_t arch_monitor_domctl_event(struct domain *d,
>     +                                 struct xen_domctl_monitor_op *mop,
>     +                                 int *rc)
>     +{
>     +    struct arch_domain *ad = &d->arch;
>     +    bool_t requested_status = (XEN_DOMCTL_MONITOR_OP_ENABLE ==
>     mop->op);
>     +
>     +    switch ( mop->event )
>     +    {
>     +        case XEN_DOMCTL_MONITOR_EVENT_MOV_TO_MSR:
>     +        {
>     +            bool_t old_status = ad->monitor.mov_to_msr_enabled;
>     +
>     +            if ( unlikely(old_status == requested_status) )
>     +                return -EEXIST;
>
>
> This function is defined to return bool_t and yet you are returning 
> non-boolean error codes. I think it would be better if this function 
> just had a single rc instead of two (not passing one rc as a pointer 
> on input).

That's a baad mistake, good catch. It should be "*rc = -EEXIST; return 
1", will change in v3.

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

Thank you,
Corneliu.

[-- Attachment #1.2: Type: text/html, Size: 11227 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

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

  reply	other threads:[~2016-02-10 17:34 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-10 15:47 [PATCH v2 0/7] Vm-events: move monitor vm-events code to common-side Corneliu ZUZU
2016-02-10 15:47 ` [PATCH v2 1/7] xen/arm: fix file comments Corneliu ZUZU
2016-02-10 16:05   ` Stefano Stabellini
2016-02-10 15:50 ` [PATCH v2 2/7] xen/x86: merge 2 hvm_event_... functions into 1 Corneliu ZUZU
2016-02-10 16:18   ` Jan Beulich
2016-02-10 16:37     ` Andrew Cooper
2016-02-10 17:05       ` Jan Beulich
2016-02-10 17:04     ` Corneliu ZUZU
2016-02-10 17:11       ` Jan Beulich
2016-02-10 20:50         ` Corneliu ZUZU
2016-02-10 20:56         ` Andrew Cooper
2016-02-11 10:31           ` Jan Beulich
2016-02-11  6:03         ` Corneliu ZUZU
2016-02-10 17:28       ` Razvan Cojocaru
2016-02-10 17:52         ` Tamas K Lengyel
2016-02-10 15:52 ` [PATCH v2 3/7] xen/vm-events: Move monitor_domctl to common-side Corneliu ZUZU
2016-02-10 16:26   ` Jan Beulich
2016-02-10 16:30     ` Jan Beulich
2016-02-10 17:14       ` Corneliu ZUZU
2016-02-10 17:12     ` Corneliu ZUZU
2016-02-10 16:39   ` Tamas K Lengyel
2016-02-10 17:34     ` Corneliu ZUZU [this message]
2016-02-10 17:56       ` Tamas K Lengyel
2016-02-11  7:21         ` Corneliu ZUZU
2016-02-11 15:44           ` Tamas K Lengyel
2016-02-12  6:05             ` Corneliu ZUZU
2016-02-12  8:14               ` Corneliu ZUZU
2016-02-11  6:20     ` Corneliu ZUZU
2016-02-10 15:54 ` [PATCH v2 4/7] Rename monitor_x86.c to monitor.c and monitor_arch.h to monitor.h Corneliu ZUZU
2016-02-10 16:44   ` Tamas K Lengyel
2016-02-10 17:16     ` Jan Beulich
2016-02-10 20:54       ` Corneliu ZUZU
2016-02-10 20:36     ` Corneliu ZUZU
2016-02-10 15:56 ` [PATCH v2 5/7] xen/vm-events: Move hvm_event_* functions to common-side Corneliu ZUZU
2016-02-10 15:58 ` [PATCH v2 6/7] Rename event_x86.c to event.c and event_arch.h to event.h + minor fixes Corneliu ZUZU
2016-02-10 16:00 ` [PATCH v2 7/7] xen/vm-events: move arch_domain.monitor bits to common Corneliu ZUZU
2016-02-10 16:29   ` Jan Beulich
2016-02-10 17:14     ` Corneliu ZUZU

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56BB74B8.1020207@bitdefender.com \
    --to=czuzu@bitdefender.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=jun.nakajima@intel.com \
    --cc=keir@xen.org \
    --cc=kevin.tian@intel.com \
    --cc=rcojocaru@bitdefender.com \
    --cc=stefano.stabellini@citrix.com \
    --cc=tamas@tklengyel.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.