From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Christian Ehrhardt
<ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Cc: "kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org"
<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Subject: Re: [PATCH 0/3] Architecture independence layer - v0
Date: Wed, 22 Aug 2007 12:32:10 +0300 [thread overview]
Message-ID: <46CC029A.70400@qumranet.com> (raw)
In-Reply-To: <46CBFDFD.3090501-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Christian Ehrhardt wrote:
> Basics I used:
> - Since architecture will not change at runtime I do not use a arch_ops
> structure
> - Instead I used a hidden Kconfig value specifying the kvm architecture
> which then
> influence the make file to link together the generic and the arch
> specific part
> to one kvm module
>
Isn't there already such a config variable (e.g. CONFIG_X86,
CONFIG_X86_64, CONFIG_S390)?
> - I split the code into kvm_main.c (generic) and kvm_x86.h/kvm_x86.c
> (arch portion)
>
Just x86.[ch], please. Similarly for all other new files.
> - A new header kvm_arch.h specifies the interface the architecture has
> to implement
> - The ioctl interfaces are implemented by the generic kvm_main.c in
> three ways
> a) a completely generic function is covered by kvm_main.c completely
> b) a completely arch dependent function is not covered in kvm_main.c -
> at the end
> each ioctl goes to a architecture mapping doing the rest of the ioctl
> not handled
> in the generic part e.g. in kvm_vcpu_ioctl:
> default:
> r = kvm_arch_vcpu_ioctl(filp, ioctl, arg);
> }
> c) functions that have a significant amount of shared code are
> implemented by
> kvm_main.c using kvm_arch_* to implement the arch specific part.
> Either by just
> mapping the old *_ioctl_whatever to *_arch_whatever or by moving some
> more of the
> code out of the arch function up to the generic portion e.g.:
> case KVM_RUN:
> r = -EINVAL;
> if (arg)
> goto out;
> r = kvm_arch_vcpu_run(vcpu, vcpu->run);
> break;
> - there is still a lot of potential to move code up and down along these
> split, but
> thats it so far. I strive to improve that patch series until we are
> happy with it
>
I agree with all these points. In addition, I'd like to point out that
in some cases an API is generic, but some of its implementation isn't,
and its arguments are not generic. The example I have in mind is
KVM_GET_REGS/KVM_SET_REGS. In this case, the argument structures should
be defined in arch dependent headers.
> The patch compiles and works without issues on my Opteron based machine
> here,
> unfortunately I have no Intel base HW to test.
> I look forward to every comment. Even if this approach may not be what
> we want in
> the end, at least it starts the discussion how to do it :-)
>
> Grüsse / Regards
> Christian Ehrhardt
>
> P.S. Still a todo and not (yet) covered in this patch proposal is the
> arch splitting of structures like vcpu to a generic and an arch part.
>
Yes. I don't think this will be difficult.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
prev parent reply other threads:[~2007-08-22 9:32 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-22 9:12 [PATCH 0/3] Architecture independence layer - v0 Christian Ehrhardt
[not found] ` <46CBFDFD.3090501-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-08-22 9:32 ` Avi Kivity [this message]
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=46CC029A.70400@qumranet.com \
--to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
--cc=ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@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