public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Cc: carsteno-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org,
	kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	Xiantao <xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH 0 of 3] create kvm_x86
Date: Fri, 30 Nov 2007 09:26:15 +0200	[thread overview]
Message-ID: <474FBB17.6080800@qumranet.com> (raw)
In-Reply-To: <1196284556.9247.22.camel@basalt>

Hollis Blanchard wrote:
> On Wed, 2007-11-21 at 11:18 +0200, Avi Kivity wrote:
>   
>> Carsten Otte wrote:
>>     
>>> Hollis Blanchard wrote:
>>>   
>>>       
>>>> These patches are based on Xiantao's work to create struct kvm_x86. Patch 1 replaces his "KVM Portability split: Splitting kvm structure (V2)", and patches 2 and 3 build on it.
>>>>     
>>>>         
>>> Looks like a clean approach with to to_kvm_x86 macro. Whole series:
>>> Acked-by: Carsten Otte <cotte-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
>>>
>>>   
>>>       
>> Well, I hate to say it, but the resulting code doesn't look too well
>> (all the kvm_x86 variables), and it's entirely my fault as I recommended
>> this approach.  Not like it was difficult to predict.
>>     
>
> I guess we still have reached no conclusion on this question?
>
>   

Right.  Thanks for re-raising it.

>> I'm thinking again of
>>
>>     struct kvm {
>>         struct kvm_arch a;
>>         ...
>>     }
>>
>> Where each arch defines its own kvm_arch.  Now the changes look like a
>> bunch of "kvm->blah" to "kvm->a.blah" conversions.
>>     
>
> The simplest "container" changes would be a bunch of "kvm->blah" to
> "to_x86(kvm)->blah" conversions. How is that worse? If it's the
> "kvm_x86" variables you're objecting to, it would be easy enough to
> remove them in favor of this approach.
>
>   

It's horribly obfuscated.  I'm accessing a member of a structure but
that is hidden in a no-op function call.


>> IIRC a downside was mentioned that it is easier to cause a build failure
>> for another arch now.
>>
>> Opinions?  In theory correctness should win over style every time, no?
>>     
>
> Which approach is not correct?
>
>   

The nicer one:

   struct kvm {
        struct kvm_arch arch;
        // common fields
   }

or the similar

   struct kvm {
       struct kvm_common s;
       // arch specific fields
   }

"not correct" is an exaggeration; more prone to breaking the build is
more accurate.  Maybe we can set up an hourly cross-compile to
compensate.  Code clarity is important to me.

-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4

  reply	other threads:[~2007-11-30  7:26 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-20 16:57 [PATCH 0 of 3] create kvm_x86 Hollis Blanchard
2007-11-20 16:57 ` [PATCH 1 of 3] Use kvm_x86 to hold x86 specific kvm fields Hollis Blanchard
2007-11-28 21:20   ` Anthony Liguori
     [not found]     ` <474DDB97.6090400-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-11-28 21:43       ` Hollis Blanchard
2007-11-20 16:57 ` [PATCH 2 of 3] Move vm_stat and apic_access_page to kvm_x86 Hollis Blanchard
2007-11-21  9:09 ` [PATCH 0 of 3] create kvm_x86 Carsten Otte
     [not found]   ` <4743F5AE.8090707-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-11-21  9:18     ` Avi Kivity
     [not found]       ` <4743F7DF.4000107-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-21  9:32         ` Amit Shah
2007-11-21  9:39         ` Carsten Otte
2007-11-21  9:42         ` Zhang, Xiantao
     [not found]           ` <42DFA526FC41B1429CE7279EF83C6BDC9E7193-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-11-21  9:55             ` Avi Kivity
2007-11-28 21:15         ` Hollis Blanchard
2007-11-30  7:26           ` Avi Kivity [this message]
     [not found]             ` <474FBB17.6080800-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-30  8:36               ` Zhang, Xiantao
     [not found]                 ` <42DFA526FC41B1429CE7279EF83C6BDCA397C1-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-11-30  9:04                   ` Avi Kivity
     [not found]                     ` <474FD234.5060203-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-30 11:42                       ` Zhang, Xiantao
2007-11-30 18:43                       ` Hollis Blanchard
2007-11-30 20:31                         ` Avi Kivity
     [not found]                           ` <4750732B.7070502-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-30 21:09                             ` Hollis Blanchard
2007-11-30 21:43                               ` Anthony Liguori
     [not found]                                 ` <47508408.8050202-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-11-30 22:08                                   ` Hollis Blanchard
2007-12-01 10:04                                     ` Avi Kivity
2007-12-01 10:02                               ` Avi Kivity

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=474FBB17.6080800@qumranet.com \
    --to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
    --cc=carsteno-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org \
    --cc=hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox