* [Qemu-devel] New kvm-related qemu patch queue
@ 2010-01-10 12:02 Avi Kivity
2010-01-10 14:28 ` [Qemu-devel] " Gleb Natapov
2010-01-11 15:30 ` Anthony Liguori
0 siblings, 2 replies; 8+ messages in thread
From: Avi Kivity @ 2010-01-10 12:02 UTC (permalink / raw)
To: qemu-devel, KVM list
In order to improve qemu.git kvm integration quality wrt performance,
features, and reliability Marcelo and I will begin to maintain a patch
queue based on qemu.git containing kvm-related patches. We will review
and apply patches to this queue, test them using the same test suite
that is used for qemu-kvm.git, and regularly submit them for inclusion
in qemu.git, mimicking the relationship between kvm.git and Linus'
linux-2.6.git.
One of the problems of qemu.git kvm support is that it is a clean
reimplementation, and thus some of the nuances that were carefully
ironed out in qemu-kvm.git are lost. To that end, we would like to
change the process of adding features as follows:
- first, the feature in qemu-kvm.git master is morphed to a form
suitable for merging into qemu.git
- when that has been accomplished, the feature is broken into patches
and merged into the patch queue
This process ensures that important details are not lost: the morphing
step attempts to preserve all the nuances, and it is much easier to spot
a behaviour change in a review than to spot a missing behaviour in a new
feature. This was successfully used to merge i386 and x86_64 arch
support in Linux.
Some qemu-kvm.git features (primarily support for very old kernels) can
be dropped, simplifying the convergence process.
Over time, qemu-kvm.git master will converge with qemu.git master and
all that will remain is the patch queue.
Features in qemu-kvm.git not present in qemu.git include:
- smp support
- in-kernel irqchip
- in-kernel pit
- tpr patching
- device assignment
- kvm paravirtualization
- boot=on (extboot, or a real option rom)
- test suite
- ia64
- signalfd support
Many others are implemented differently in the two trees.
The patch queue will appear as a branch 'uq/master' (for 'upstream
queue); if necessary branches for the stable series will also be created.
In order to get a kvm feature into qemu.git, please observe the
following process:
- post a patch series against qemu-kvm.git/master that implements the
feature, or changes an existing feature to use qemu.git infrastructure
- once that's merged, post a patch series against qemu-kvm.git/uq/master
that brings the same code into qemu.git.
The new branch will be subject to the same automatic testing that
qemu-kvm.git is.
Please post patches to both qemu-devel and kvm mailing lists.
This won't work for all features, so we'll have to feel our way and make
decisions on a case by case basis.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: New kvm-related qemu patch queue
2010-01-10 12:02 [Qemu-devel] New kvm-related qemu patch queue Avi Kivity
@ 2010-01-10 14:28 ` Gleb Natapov
2010-01-10 14:30 ` Avi Kivity
2010-01-11 15:30 ` Anthony Liguori
1 sibling, 1 reply; 8+ messages in thread
From: Gleb Natapov @ 2010-01-10 14:28 UTC (permalink / raw)
To: Avi Kivity; +Cc: qemu-devel, KVM list
On Sun, Jan 10, 2010 at 02:02:27PM +0200, Avi Kivity wrote:
> In order to improve qemu.git kvm integration quality wrt
> performance, features, and reliability Marcelo and I will begin to
> maintain a patch queue based on qemu.git containing kvm-related
> patches. We will review and apply patches to this queue, test them
> using the same test suite that is used for qemu-kvm.git, and
> regularly submit them for inclusion in qemu.git, mimicking the
> relationship between kvm.git and Linus' linux-2.6.git.
>
> One of the problems of qemu.git kvm support is that it is a clean
> reimplementation, and thus some of the nuances that were carefully
> ironed out in qemu-kvm.git are lost. To that end, we would like to
> change the process of adding features as follows:
>
> - first, the feature in qemu-kvm.git master is morphed to a form
> suitable for merging into qemu.git
> - when that has been accomplished, the feature is broken into
> patches and merged into the patch queue
>
If there is the same feature in qemu-kvm.git and qemu.git whom is morphed to
whom and who is merged where? I am confused. We have much of duplicated
code between qemu-kvm.git and qemu.git it is often almost, but not exactly the
same. Is it really productive to set rules who should be morphed and how
at this point?
> This process ensures that important details are not lost: the
> morphing step attempts to preserve all the nuances, and it is much
> easier to spot a behaviour change in a review than to spot a missing
> behaviour in a new feature. This was successfully used to merge
> i386 and x86_64 arch support in Linux.
>
> Some qemu-kvm.git features (primarily support for very old kernels)
> can be dropped, simplifying the convergence process.
>
> Over time, qemu-kvm.git master will converge with qemu.git master
> and all that will remain is the patch queue.
>
> Features in qemu-kvm.git not present in qemu.git include:
> - smp support
> - in-kernel irqchip
> - in-kernel pit
> - tpr patching
> - device assignment
> - kvm paravirtualization
> - boot=on (extboot, or a real option rom)
> - test suite
> - ia64
> - signalfd support
>
> Many others are implemented differently in the two trees.
>
> The patch queue will appear as a branch 'uq/master' (for 'upstream
> queue); if necessary branches for the stable series will also be
> created.
>
> In order to get a kvm feature into qemu.git, please observe the
> following process:
>
> - post a patch series against qemu-kvm.git/master that implements
> the feature, or changes an existing feature to use qemu.git
> infrastructure
It was other way around till last week. Why change?
> - once that's merged, post a patch series against
> qemu-kvm.git/uq/master that brings the same code into qemu.git.
>
> The new branch will be subject to the same automatic testing that
> qemu-kvm.git is.
>
> Please post patches to both qemu-devel and kvm mailing lists.
>
> This won't work for all features, so we'll have to feel our way and
> make decisions on a case by case basis.
>
>
--
Gleb.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: New kvm-related qemu patch queue
2010-01-10 14:28 ` [Qemu-devel] " Gleb Natapov
@ 2010-01-10 14:30 ` Avi Kivity
2010-01-10 14:49 ` Gleb Natapov
0 siblings, 1 reply; 8+ messages in thread
From: Avi Kivity @ 2010-01-10 14:30 UTC (permalink / raw)
To: Gleb Natapov; +Cc: qemu-devel, KVM list
On 01/10/2010 04:28 PM, Gleb Natapov wrote:
> On Sun, Jan 10, 2010 at 02:02:27PM +0200, Avi Kivity wrote:
>
>> In order to improve qemu.git kvm integration quality wrt
>> performance, features, and reliability Marcelo and I will begin to
>> maintain a patch queue based on qemu.git containing kvm-related
>> patches. We will review and apply patches to this queue, test them
>> using the same test suite that is used for qemu-kvm.git, and
>> regularly submit them for inclusion in qemu.git, mimicking the
>> relationship between kvm.git and Linus' linux-2.6.git.
>>
>> One of the problems of qemu.git kvm support is that it is a clean
>> reimplementation, and thus some of the nuances that were carefully
>> ironed out in qemu-kvm.git are lost. To that end, we would like to
>> change the process of adding features as follows:
>>
>> - first, the feature in qemu-kvm.git master is morphed to a form
>> suitable for merging into qemu.git
>> - when that has been accomplished, the feature is broken into
>> patches and merged into the patch queue
>>
>>
> If there is the same feature in qemu-kvm.git and qemu.git whom is morphed to
> whom and who is merged where? I am confused. We have much of duplicated
> code between qemu-kvm.git and qemu.git it is often almost, but not exactly the
> same. Is it really productive to set rules who should be morphed and how
> at this point?
>
If the feature is already in both, then morph qemu-kvm.git into what is
already in qemu.git. Hopefully anything missing in qemu.git will be
discovered while making the changes.
>> In order to get a kvm feature into qemu.git, please observe the
>> following process:
>>
>> - post a patch series against qemu-kvm.git/master that implements
>> the feature, or changes an existing feature to use qemu.git
>> infrastructure
>>
> It was other way around till last week. Why change?
>
There were a lot of regressions.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: New kvm-related qemu patch queue
2010-01-10 14:30 ` Avi Kivity
@ 2010-01-10 14:49 ` Gleb Natapov
2010-01-10 14:52 ` Avi Kivity
0 siblings, 1 reply; 8+ messages in thread
From: Gleb Natapov @ 2010-01-10 14:49 UTC (permalink / raw)
To: Avi Kivity; +Cc: qemu-devel, KVM list
On Sun, Jan 10, 2010 at 04:30:44PM +0200, Avi Kivity wrote:
> On 01/10/2010 04:28 PM, Gleb Natapov wrote:
> >On Sun, Jan 10, 2010 at 02:02:27PM +0200, Avi Kivity wrote:
> >>In order to improve qemu.git kvm integration quality wrt
> >>performance, features, and reliability Marcelo and I will begin to
> >>maintain a patch queue based on qemu.git containing kvm-related
> >>patches. We will review and apply patches to this queue, test them
> >>using the same test suite that is used for qemu-kvm.git, and
> >>regularly submit them for inclusion in qemu.git, mimicking the
> >>relationship between kvm.git and Linus' linux-2.6.git.
> >>
> >>One of the problems of qemu.git kvm support is that it is a clean
> >>reimplementation, and thus some of the nuances that were carefully
> >>ironed out in qemu-kvm.git are lost. To that end, we would like to
> >>change the process of adding features as follows:
> >>
> >> - first, the feature in qemu-kvm.git master is morphed to a form
> >>suitable for merging into qemu.git
> >> - when that has been accomplished, the feature is broken into
> >>patches and merged into the patch queue
> >>
> >If there is the same feature in qemu-kvm.git and qemu.git whom is morphed to
> >whom and who is merged where? I am confused. We have much of duplicated
> >code between qemu-kvm.git and qemu.git it is often almost, but not exactly the
> >same. Is it really productive to set rules who should be morphed and how
> >at this point?
>
> If the feature is already in both, then morph qemu-kvm.git into what
> is already in qemu.git. Hopefully anything missing in qemu.git will
> be discovered while making the changes.
>
What about bugs that are present only in qemu.git? Like this:
http://patchwork.ozlabs.org/patch/42298/. Should it go through
qemu-kvm.git/uq/master?
What about this one: http://patchwork.ozlabs.org/patch/42447/ should it
be postponed untill qemu.git and qemu-kvm.git converge on using the same
cpuid infrastructure, or add similar functionality to qemu-kvm to,
or add new cpu flags to qemu-kvm only and when cpuid code converge
qemu.git will have it too?
> >>In order to get a kvm feature into qemu.git, please observe the
> >>following process:
> >>
> >>- post a patch series against qemu-kvm.git/master that implements
> >>the feature, or changes an existing feature to use qemu.git
> >>infrastructure
> >It was other way around till last week. Why change?
>
> There were a lot of regressions.
>
Yeah :(
--
Gleb.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: New kvm-related qemu patch queue
2010-01-10 14:49 ` Gleb Natapov
@ 2010-01-10 14:52 ` Avi Kivity
2010-01-11 7:51 ` Gleb Natapov
0 siblings, 1 reply; 8+ messages in thread
From: Avi Kivity @ 2010-01-10 14:52 UTC (permalink / raw)
To: Gleb Natapov; +Cc: qemu-devel, KVM list
On 01/10/2010 04:49 PM, Gleb Natapov wrote:
>
>> If the feature is already in both, then morph qemu-kvm.git into what
>> is already in qemu.git. Hopefully anything missing in qemu.git will
>> be discovered while making the changes.
>>
>>
> What about bugs that are present only in qemu.git? Like this:
> http://patchwork.ozlabs.org/patch/42298/. Should it go through
> qemu-kvm.git/uq/master?
>
Yes. So there is a central place for kvm patches, and so they see autotest.
> What about this one: http://patchwork.ozlabs.org/patch/42447/ should it
> be postponed untill qemu.git and qemu-kvm.git converge on using the same
> cpuid infrastructure, or add similar functionality to qemu-kvm to,
> or add new cpu flags to qemu-kvm only and when cpuid code converge
> qemu.git will have it too?
>
Best to make qemu-kvm.git and qemu.git converge first. Duplicating the
patch extends the problem. Of course if something is urgent we can
bypass the process.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: New kvm-related qemu patch queue
2010-01-10 14:52 ` Avi Kivity
@ 2010-01-11 7:51 ` Gleb Natapov
0 siblings, 0 replies; 8+ messages in thread
From: Gleb Natapov @ 2010-01-11 7:51 UTC (permalink / raw)
To: Avi Kivity; +Cc: qemu-devel, KVM list
On Sun, Jan 10, 2010 at 04:52:48PM +0200, Avi Kivity wrote:
> On 01/10/2010 04:49 PM, Gleb Natapov wrote:
> >
> >>If the feature is already in both, then morph qemu-kvm.git into what
> >>is already in qemu.git. Hopefully anything missing in qemu.git will
> >>be discovered while making the changes.
> >>
> >What about bugs that are present only in qemu.git? Like this:
> >http://patchwork.ozlabs.org/patch/42298/. Should it go through
> >qemu-kvm.git/uq/master?
>
> Yes. So there is a central place for kvm patches, and so they see autotest.
>
So I assume you'll take it then.
>
> >What about this one: http://patchwork.ozlabs.org/patch/42447/ should it
> >be postponed untill qemu.git and qemu-kvm.git converge on using the same
> >cpuid infrastructure, or add similar functionality to qemu-kvm to,
> >or add new cpu flags to qemu-kvm only and when cpuid code converge
> >qemu.git will have it too?
>
> Best to make qemu-kvm.git and qemu.git converge first. Duplicating
> the patch extends the problem. Of course if something is urgent we
> can bypass the process.
>
Actually, looking into it, this patch is needed for qemu-kvm.git and qemu.git
to converge. For qemu-kvm to use kvm -cpu flags the patch below should
be applied on top of the previous patch.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
index 82e362c..b3c371c 100644
--- a/qemu-kvm-x86.c
+++ b/qemu-kvm-x86.c
@@ -1308,7 +1308,7 @@ int kvm_arch_init_vcpu(CPUState *cenv)
pv_ent = &cpuid_ent[cpuid_nent++];
memset(pv_ent, 0, sizeof(*pv_ent));
pv_ent->function = KVM_CPUID_FEATURES;
- pv_ent->eax = get_para_features(kvm_context);
+ pv_ent->eax = cenv->cpuid_kvm_features & get_para_features(kvm_context);
#endif
kvm_trim_features(&cenv->cpuid_features,
--
Gleb.
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: New kvm-related qemu patch queue
2010-01-10 12:02 [Qemu-devel] New kvm-related qemu patch queue Avi Kivity
2010-01-10 14:28 ` [Qemu-devel] " Gleb Natapov
@ 2010-01-11 15:30 ` Anthony Liguori
2010-01-17 12:51 ` Avi Kivity
1 sibling, 1 reply; 8+ messages in thread
From: Anthony Liguori @ 2010-01-11 15:30 UTC (permalink / raw)
To: Avi Kivity; +Cc: qemu-devel, KVM list
On 01/10/2010 06:02 AM, Avi Kivity wrote:
> In order to improve qemu.git kvm integration quality wrt performance,
> features, and reliability Marcelo and I will begin to maintain a patch
> queue based on qemu.git containing kvm-related patches. We will
> review and apply patches to this queue, test them using the same test
> suite that is used for qemu-kvm.git, and regularly submit them for
> inclusion in qemu.git, mimicking the relationship between kvm.git and
> Linus' linux-2.6.git.
Thanks for setting this up Avi!
I just want to stress that everyone continue CC'ing qemu-devel on all
KVM patches. Even if the patch is qemu-kvm specific for the moment, I
think it's important for qemu-devel to be exposed to the refactoring work.
It might be good to prefix qemu-kvm.git patches in some manner to make
it clear which repository they belong to.
Regards,
Anthony Liguori
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: New kvm-related qemu patch queue
2010-01-11 15:30 ` Anthony Liguori
@ 2010-01-17 12:51 ` Avi Kivity
0 siblings, 0 replies; 8+ messages in thread
From: Avi Kivity @ 2010-01-17 12:51 UTC (permalink / raw)
To: Anthony Liguori; +Cc: qemu-devel, KVM list
On 01/11/2010 05:30 PM, Anthony Liguori wrote:
> On 01/10/2010 06:02 AM, Avi Kivity wrote:
>> In order to improve qemu.git kvm integration quality wrt performance,
>> features, and reliability Marcelo and I will begin to maintain a
>> patch queue based on qemu.git containing kvm-related patches. We
>> will review and apply patches to this queue, test them using the same
>> test suite that is used for qemu-kvm.git, and regularly submit them
>> for inclusion in qemu.git, mimicking the relationship between kvm.git
>> and Linus' linux-2.6.git.
>
> Thanks for setting this up Avi!
>
> I just want to stress that everyone continue CC'ing qemu-devel on all
> KVM patches. Even if the patch is qemu-kvm specific for the moment, I
> think it's important for qemu-devel to be exposed to the refactoring
> work.
>
> It might be good to prefix qemu-kvm.git patches in some manner to make
> it clear which repository they belong to.
[patch kvm] - qemu-kvm.git uq/master
[patch qemu-kvm] - qemu-kvm.git master
[patch kvm stable-0.12] - qemu-kvm uq/stable-0.12
etc.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-01-17 12:51 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-10 12:02 [Qemu-devel] New kvm-related qemu patch queue Avi Kivity
2010-01-10 14:28 ` [Qemu-devel] " Gleb Natapov
2010-01-10 14:30 ` Avi Kivity
2010-01-10 14:49 ` Gleb Natapov
2010-01-10 14:52 ` Avi Kivity
2010-01-11 7:51 ` Gleb Natapov
2010-01-11 15:30 ` Anthony Liguori
2010-01-17 12:51 ` Avi Kivity
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).