xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: George Dunlap <george.dunlap@eu.citrix.com>
To: Mukesh Rathor <mukesh.rathor@oracle.com>
Cc: "xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
	"keir.xen@gmail.com" <keir.xen@gmail.com>
Subject: Re: [V10 PATCH 11/23] PVH xen: support invalid op emulation for PVH
Date: Mon, 12 Aug 2013 10:35:52 +0100	[thread overview]
Message-ID: <5208AC78.80004@eu.citrix.com> (raw)
In-Reply-To: <20130809191358.42b41cfe@mantra.us.oracle.com>

On 10/08/13 03:13, Mukesh Rathor wrote:
> On Thu, 8 Aug 2013 09:55:26 +0100
> George Dunlap <george.dunlap@eu.citrix.com> wrote:
>
>> On 08/08/13 02:49, Mukesh Rathor wrote:
>>> On Wed, 7 Aug 2013 12:29:13 +0100
>>> George Dunlap <George.Dunlap@eu.citrix.com> wrote:
>>>
>>>> On Wed, Jul 24, 2013 at 2:59 AM, Mukesh Rathor
>>>> <mukesh.rathor@oracle.com> wrote:
>>>>> This patch supports invalid op emulation for PVH by calling
>>>>> appropriate copy macros and and HVM function to inject PF.
>>>>>
>>>>> Signed-off-by: Mukesh Rathor <mukesh.rathor@oracle.com>
>>>>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>>>> ---
>>>>>    xen/arch/x86/traps.c        |   17 ++++++++++++++---
>>>>>    xen/include/asm-x86/traps.h |    1 +
>>>> Why make this non-static?  No one is using this in this patch.  If
>>>> a later patch needs it, you should make it non-static there, so we
>>>> can decide at that point if making it non-static is merited or not.
>>> Sigh! Originally, it was that way, but then to keep that patch from
>>> getting too big, it got moved here after few versions. We are making
>>> emulation available for outside the PV, ie, to PVH.
>> As far as I'm concerned, the size of the patch itself is immaterial;
>> the only important question, regarding how to break down patches
>> (just like in breaking down functions), is how easy or difficult it
>> is to understand the whole thing.
>>
>> Now it's typically the case that long patches are hard to understand,
>> and that breaking them down into smaller chunks makes them easier to
>> read.  But a division like this, where you've moved some random hunk
>> into a different patch with which it has no logical relation, makes
>> the series *harder* to understand, not easier.
>>
>> Additionally, as the series evolves, it makes it difficult to keep
>> all of the dependencies straight.  Suppose you changed your approach
>> for that future patch so that you didn't need this public anymore.
>> You, and all the reviewers, could easily forget about the dependency,
>> since it's in a separate patch which may have already been classified
>> as "OK".
> But that would happen even if the function was static. Say I make
> changes in function for PVH, dont' make it public. Now I forget to
> use it, the function has been changed already?

I said "as the patch series evolves" -- that means before it gets 
applied.  If the hunk making it public is in the same patch that it's 
used, it is much more likely to be noticed.

> We make it public to be used by future patch, I'll add which patch is
> using it to make it easier to understand.

Why don't you just *move it* to the patch that's actually using it (the 
last patch in the series, it would seem -- the one which implements the 
PVH exit handler)?  In the time it took you to write this e-mail, you 
could have moved that one hunk to the other patch 5 times.

>   Not making it public makes
> possible  another comment -- why the change if it can't be used by
> another PVH module anyways. Can't please all reviewers
> simultaneously!!!
> All my life so far, all reviews are done by one
> person per file, and that makes so much sense..... this is hell!!!

Did someone actually say to you, "This patch is too long, make it shorter"?

I'm not asking for the moon, and I'm not trying to grind your gears.  
I'm just trying to help you write better patches -- ones which are 
easier to review, and ones which will be easier for people looking back 
at to figure out what's going on.  And more importantly, in comments in 
the rest of the series, I'm trying to make code which is easier to 
understand.

This is important enough to me that I'd actually be willing to take your 
series and reformat it myself, to demonstrate what I'm talking about.  
It would be a good exercise for me to become familiar with the code; the 
only problem is that I'm not up to speed with the details of the 
hardware at this point.

  -George

  parent reply	other threads:[~2013-08-12  9:35 UTC|newest]

Thread overview: 174+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-24  1:59 [V10 PATCH 00/23]PVH xen: Phase I, Version 10 patches Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 01/23] PVH xen: Add readme docs/misc/pvh-readme.txt Mukesh Rathor
2013-08-16 10:18   ` George Dunlap
2013-08-16 13:17     ` George Dunlap
2013-08-16 14:11       ` Konrad Rzeszutek Wilk
2013-08-16 21:39     ` Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 02/23] PVH xen: turn gdb_frames/gdt_ents into union Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 03/23] PVH xen: add params to read_segment_register Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 04/23] PVH xen: Move e820 fields out of pv_domain struct Mukesh Rathor
2013-07-24 11:29   ` Andrew Cooper
2013-07-24  1:59 ` [V10 PATCH 05/23] PVH xen: hvm related preparatory changes for PVH Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 06/23] PVH xen: vmx " Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 07/23] PVH xen: vmcs " Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 08/23] PVH xen: Introduce PVH guest type and some basic changes Mukesh Rathor
2013-08-06 11:29   ` George Dunlap
2013-08-06 11:47     ` Jan Beulich
2013-08-06 12:06       ` George Dunlap
2013-08-06 23:26         ` Mukesh Rathor
2013-08-07  7:14           ` Jan Beulich
2013-08-07  9:14           ` George Dunlap
2013-08-07 13:10             ` George Dunlap
2013-08-07 22:37               ` Mukesh Rathor
2013-08-08  8:57                 ` George Dunlap
2013-07-24  1:59 ` [V10 PATCH 09/23] PVH xen: introduce pvh_set_vcpu_info() and vmx_pvh_set_vcpu_info() Mukesh Rathor
2013-07-25 13:47   ` Tim Deegan
2013-07-26  0:58     ` Mukesh Rathor
2013-07-26 10:29       ` Tim Deegan
2013-08-05 11:08       ` Jan Beulich
2013-08-06  1:34         ` Mukesh Rathor
2013-08-07  1:53           ` Mukesh Rathor
2013-08-07  6:34             ` Jan Beulich
2013-08-07 10:01             ` Tim Deegan
2013-08-07 10:07               ` Ian Campbell
2013-08-08  1:27               ` Mukesh Rathor
2013-08-05 11:03   ` Jan Beulich
2013-08-05 11:10   ` Jan Beulich
2013-08-08  1:05     ` Mukesh Rathor
2013-08-08  6:56       ` Jan Beulich
2013-08-08 22:07         ` Mukesh Rathor
2013-08-09 23:41         ` Mukesh Rathor
2013-08-12  7:54           ` Jan Beulich
2013-08-12 10:24             ` Tim Deegan
2013-08-12 11:04               ` Jan Beulich
2013-08-12 11:53                 ` Tim Deegan
2013-08-12 13:24                   ` Jan Beulich
2013-08-13  0:28                     ` Mukesh Rathor
2013-08-13  0:27             ` Mukesh Rathor
2013-08-13 10:49               ` Jan Beulich
2013-08-14  2:21                 ` Mukesh Rathor
2013-08-12  9:00           ` Tim Deegan
2013-08-13  0:02             ` Mukesh Rathor
2013-08-13  8:51               ` Tim Deegan
2013-07-24  1:59 ` [V10 PATCH 10/23] PVH xen: domain create, context switch related code changes Mukesh Rathor
2013-07-25 14:01   ` Tim Deegan
2013-07-26  1:02     ` Mukesh Rathor
2013-08-05 11:16     ` Jan Beulich
2013-08-07 10:24   ` George Dunlap
2013-08-08  1:40     ` Mukesh Rathor
2013-08-08  7:29       ` Jan Beulich
2013-08-08  9:02         ` George Dunlap
2013-08-08  9:08           ` Jan Beulich
2013-08-09  0:12         ` Mukesh Rathor
2013-08-07 10:48   ` George Dunlap
2013-08-08  1:42     ` Mukesh Rathor
2013-08-08  9:14       ` George Dunlap
2013-08-16 15:32   ` George Dunlap
2013-08-16 16:11     ` Jan Beulich
2013-08-20  0:52       ` Mukesh Rathor
2013-08-20  9:29         ` George Dunlap
2013-08-22 23:24           ` Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 11/23] PVH xen: support invalid op emulation for PVH Mukesh Rathor
2013-08-07 11:29   ` George Dunlap
2013-08-08  1:49     ` Mukesh Rathor
2013-08-08  8:55       ` George Dunlap
2013-08-09  0:17         ` Mukesh Rathor
2013-08-10  2:13         ` Mukesh Rathor
2013-08-12  7:38           ` Jan Beulich
2013-08-14  1:13             ` Mukesh Rathor
2013-08-12  9:35           ` George Dunlap [this message]
2013-07-24  1:59 ` [V10 PATCH 12/23] PVH xen: Support privileged " Mukesh Rathor
2013-08-07 13:49   ` George Dunlap
2013-08-07 14:23     ` Jan Beulich
2013-08-07 14:47       ` George Dunlap
2013-08-08  1:59     ` Mukesh Rathor
2013-08-08  7:35       ` Jan Beulich
2013-08-08 14:21         ` George Dunlap
2013-08-08 14:18       ` George Dunlap
2013-08-08 14:36         ` George Dunlap
2013-08-09  1:32         ` Mukesh Rathor
2013-08-09  6:54           ` Jan Beulich
2013-08-09 18:10             ` Konrad Rzeszutek Wilk
2013-08-09 21:15               ` Keir Fraser
2013-08-12  9:43             ` George Dunlap
2013-07-24  1:59 ` [V10 PATCH 13/23] PVH xen: interrupt/event-channel delivery to PVH Mukesh Rathor
2013-08-07 15:37   ` George Dunlap
2013-08-08  2:05     ` Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 14/23] PVH xen: additional changes to support PVH guest creation and execution Mukesh Rathor
2013-08-07 15:50   ` George Dunlap
2013-08-08  8:21     ` Ian Campbell
2013-08-20 14:13   ` George Dunlap
2013-08-20 21:32     ` Mukesh Rathor
2013-08-21  8:37       ` George Dunlap
2013-08-22 23:27         ` Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 15/23] PVH xen: mapcache and show registers Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 16/23] PVH xen: mtrr, tsc, timers, grant changes Mukesh Rathor
2013-08-07 16:04   ` George Dunlap
2013-07-24  1:59 ` [V10 PATCH 17/23] PVH xen: Checks, asserts, and limitations for PVH Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 18/23] PVH xen: add hypercall support " Mukesh Rathor
2013-08-07 16:43   ` George Dunlap
2013-08-08  2:12     ` Mukesh Rathor
2013-08-08  7:41       ` Jan Beulich
2013-08-08  8:26         ` Ian Campbell
2013-08-09  0:55         ` Mukesh Rathor
2013-08-09  6:56           ` Jan Beulich
2013-08-08  9:20       ` George Dunlap
2013-08-08 10:18         ` Jan Beulich
2013-08-20 21:41         ` Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 19/23] PVH xen: vmcs related changes Mukesh Rathor
2013-08-09 10:25   ` George Dunlap
2013-08-10  0:23     ` Mukesh Rathor
2013-08-12  7:42       ` Jan Beulich
2013-08-12 10:15       ` George Dunlap
2013-08-12 10:17         ` George Dunlap
2013-08-12 11:22           ` George Dunlap
2013-08-12 11:25             ` George Dunlap
2013-08-12 13:53             ` Jan Beulich
2013-08-09 13:39   ` George Dunlap
2013-08-10  0:20     ` Mukesh Rathor
2013-08-19 16:00   ` George Dunlap
2013-08-19 16:03     ` George Dunlap
2013-08-19 22:38       ` Mukesh Rathor
2013-08-19 22:21     ` Mukesh Rathor
2013-08-20 14:27       ` George Dunlap
2013-08-20 22:48         ` Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 20/23] PVH xen: HVM support of PVH guest creation/destruction Mukesh Rathor
2013-07-24  1:59 ` [V10 PATCH 21/23] PVH xen: VMX " Mukesh Rathor
2013-08-05 11:25   ` Jan Beulich
2013-08-09 13:44   ` George Dunlap
2013-08-10  1:59     ` Mukesh Rathor
2013-08-12 10:23       ` George Dunlap
2013-07-24  1:59 ` [V10 PATCH 22/23] PVH xen: preparatory patch for the pvh vmexit handler patch Mukesh Rathor
2013-08-09 14:14   ` George Dunlap
2013-08-09 14:44     ` Konrad Rzeszutek Wilk
2013-08-09 14:47       ` George Dunlap
2013-07-24  1:59 ` [V10 PATCH 23/23] PVH xen: introduce vmexit handler for PVH Mukesh Rathor
2013-07-25 16:28   ` Tim Deegan
2013-07-26  2:30     ` Mukesh Rathor
2013-07-26 10:45       ` Tim Deegan
2013-08-07  0:37         ` Mukesh Rathor
2013-08-07  9:54           ` Tim Deegan
2013-08-15 15:51             ` George Dunlap
2013-08-15 16:37               ` Tim Deegan
2013-08-15 16:44                 ` George Dunlap
2013-08-05 11:37   ` Jan Beulich
2013-08-12 16:00   ` George Dunlap
2013-08-12 16:13     ` George Dunlap
2013-08-12 17:30     ` George Dunlap
2013-08-22  1:44     ` Mukesh Rathor
2013-08-22 23:22     ` Mukesh Rathor
2013-08-23  7:16       ` Jan Beulich
2013-08-23 22:51         ` Mukesh Rathor
2013-08-26  8:09           ` Jan Beulich
2013-08-12 16:21   ` George Dunlap
2013-08-22  1:46     ` Mukesh Rathor
2013-07-24  6:21 ` [V10 PATCH 00/23]PVH xen: Phase I, Version 10 patches Keir Fraser
2013-07-24 12:24   ` Andrew Cooper
2013-07-24 15:04     ` Konrad Rzeszutek Wilk
2013-07-24 20:25     ` Keir Fraser
2013-07-25  1:07     ` Mukesh Rathor
2013-07-27  1:05       ` Mukesh Rathor
2013-08-05 11:13         ` Jan Beulich
2013-07-25 16:39 ` Tim Deegan
2013-07-26 18:55   ` Mukesh Rathor
2013-07-27  0:59   ` Mukesh Rathor

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=5208AC78.80004@eu.citrix.com \
    --to=george.dunlap@eu.citrix.com \
    --cc=Xen-devel@lists.xensource.com \
    --cc=keir.xen@gmail.com \
    --cc=mukesh.rathor@oracle.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).