diff mbox

qemu-kvm.git now live

Message ID 1240955602.24625.57.camel@slate.austin.ibm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hollis Blanchard April 28, 2009, 9:53 p.m. UTC
On Thu, 2009-04-23 at 18:40 +0300, Avi Kivity wrote:
> 
> Still missing:
> - I have not tested powerpc or ia64.  Patches welcome!

This repository seems pretty messed up; I'm not even sure what you want
from me. Some of the bigger problems:

      * configure completely ignores --kerneldir and only uses
        kvm/kernel headers instead.
      * The headers in kvm/kernel/arch/foo seem to be the important
        ones, but they have odd ifdefs at the top and I'm not sure how
        they should be generated.
      * "make -C kvm/kernel sync" doesn't even come close to working.

There are a host of other issues and confusing issues, even with a fresh
checkout. In general it seems like the mess that was kvm-userspace has
been rearranged, and as a consequence is even worse than before.

How am I supposed to create kvm/kernel/arch/powerpc/include/asm/*? Just
cp from a Linux tree, or must I add funny ifdefs somehow?

Here's one patch that I think will be needed:


Set kvm_arch=powerpc for PPC builds.

The name of the Linux arch directory is "powerpc", not "ppc".

Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>

Comments

Anthony Liguori April 28, 2009, 10:20 p.m. UTC | #1
Hollis Blanchard wrote:
> On Thu, 2009-04-23 at 18:40 +0300, Avi Kivity wrote:
>   
>> Still missing:
>> - I have not tested powerpc or ia64.  Patches welcome!
>>     
>
> This repository seems pretty messed up; I'm not even sure what you want
> from me.
Since PPC is now supported in upstream QEMU, does it really matter if it 
works in qemu-kvm.git?

Regards,

Anthony Liguori
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Glauber Costa April 28, 2009, 10:24 p.m. UTC | #2
On Tue, Apr 28, 2009 at 7:20 PM, Anthony Liguori <anthony@codemonkey.ws> wrote:
> Hollis Blanchard wrote:
>>
>> On Thu, 2009-04-23 at 18:40 +0300, Avi Kivity wrote:
>>
>>>
>>> Still missing:
>>> - I have not tested powerpc or ia64.  Patches welcome!
>>>
>>
>> This repository seems pretty messed up; I'm not even sure what you want
>> from me.
>
> Since PPC is now supported in upstream QEMU, does it really matter if it
> works in qemu-kvm.git?

Yes. There are people (me) who still rely on building everything from
the same source.
It can only be done by the superset (qemu-kvm.git)
Anthony Liguori April 28, 2009, 10:28 p.m. UTC | #3
Glauber Costa wrote:
> Yes. There are people (me) who still rely on building everything from
> the same source.
> It can only be done by the superset (qemu-kvm.git)
>   

Fedora doesn't package a KVM enabled qemu-system-ppcemb, do they?

Regards,

Anthony Liguori


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hollis Blanchard April 28, 2009, 10:33 p.m. UTC | #4
On Tue, 2009-04-28 at 17:20 -0500, Anthony Liguori wrote:
> Hollis Blanchard wrote:
> > On Thu, 2009-04-23 at 18:40 +0300, Avi Kivity wrote:
> >   
> >> Still missing:
> >> - I have not tested powerpc or ia64.  Patches welcome!
> >>     
> >
> > This repository seems pretty messed up; I'm not even sure what you want
> > from me.
> Since PPC is now supported in upstream QEMU, does it really matter if it 
> works in qemu-kvm.git?

I was going to take that position too, except Avi asked me specifically
if some of the code inside TARGET_I386 ifdefs in qemu-kvm.c works for
other architectures.

Since it's a safe bet that some version of this code will probably be
submitted to qemu-devel, I figured I'd try a build test... and
discovered that qemu-kvm.git was released a little prematurely.
Hollis Blanchard April 28, 2009, 10:34 p.m. UTC | #5
On Tue, 2009-04-28 at 17:28 -0500, Anthony Liguori wrote:
> Glauber Costa wrote:
> > Yes. There are people (me) who still rely on building everything from
> > the same source.
> > It can only be done by the superset (qemu-kvm.git)
> >   
> 
> Fedora doesn't package a KVM enabled qemu-system-ppcemb, do they?

The more people who notice when the PowerPC build breaks, the better.
Avi Kivity April 29, 2009, 8:29 a.m. UTC | #6
Hollis Blanchard wrote:
> On Thu, 2009-04-23 at 18:40 +0300, Avi Kivity wrote:
>   
>> Still missing:
>> - I have not tested powerpc or ia64.  Patches welcome!
>>     
>
> This repository seems pretty messed up; I'm not even sure what you want
> from me. Some of the bigger problems:
>
>       * configure completely ignores --kerneldir and only uses
>         kvm/kernel headers instead.
>   

That's intentional.

>       * The headers in kvm/kernel/arch/foo seem to be the important
>         ones, but they have odd ifdefs at the top and I'm not sure how
>         they should be generated.
>   

They were generated by the old 'make sync' to remove CONFIG_ 
dependencies.  I guess a better way to generate them is a 'make 
headers-install' from the kernel tree and grab the results.


>       * "make -C kvm/kernel sync" doesn't even come close to working.
>   

One of the goals of qemu-kvm.git was to have a standalone repository so 
I could release kvm-kmod and qemu-kvm independently.

> There are a host of other issues and confusing issues, even with a fresh
> checkout. In general it seems like the mess that was kvm-userspace has
> been rearranged, and as a consequence is even worse than before.
>   

Can you detail specific grievances?  Please exclude temporary brokenness 
that was the result of the change.

> How am I supposed to create kvm/kernel/arch/powerpc/include/asm/*? Just
> cp from a Linux tree, or must I add funny ifdefs somehow?
>   

cp from a Linux tree won't compile.  The results of the old 'make sync' 
would do, but a 'make headers-install' is probably better.

> Here's one patch that I think will be needed:
>
>
> Set kvm_arch=powerpc for PPC builds.
>
> The name of the Linux arch directory is "powerpc", not "ppc".
>
> Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
>
> diff --git a/configure b/configure
> index fc0fb9b..257cf02 100755
> --- a/configure
> +++ b/configure
> @@ -816,6 +816,9 @@ case "$cpu" in
>      i386 | x86_64)
>         kvm_arch="x86"
>         ;;
> +    ppc)
> +       kvm_arch="powerpc"
> +       ;;
>      *)
>         kvm_arch="$cpu"
>         ;;
>
>
>   

Applied, thanks.
Avi Kivity April 29, 2009, 8:31 a.m. UTC | #7
Hollis Blanchard wrote:
>> Since PPC is now supported in upstream QEMU, does it really matter if it 
>> works in qemu-kvm.git?
>>     
>
> I was going to take that position too, except Avi asked me specifically
> if some of the code inside TARGET_I386 ifdefs in qemu-kvm.c works for
> other architectures.
>
>   

In that case it's sufficient to have the build system use the upstream 
kvm integration (CONFIG_KVM) rather than the qemu-kvm integration (USE_KVM).
Hollis Blanchard May 1, 2009, 9:23 p.m. UTC | #8
On Wed, 2009-04-29 at 11:29 +0300, Avi Kivity wrote:
> 
> 
> >       * configure completely ignores --kerneldir and only uses
> >         kvm/kernel headers instead.
> >   
> 
> That's intentional.

Huh? If --kerneldir does nothing, why does it exist?

> >       * The headers in kvm/kernel/arch/foo seem to be the important
> >         ones, but they have odd ifdefs at the top and I'm not sure
> how
> >         they should be generated.
> >   
> 
> They were generated by the old 'make sync' to remove CONFIG_ 
> dependencies.  I guess a better way to generate them is a 'make 
> headers-install' from the kernel tree and grab the results.

'make headers_install' only produces include/asm/kvm.h, which apparently
is not sufficient.

I can use output from an old 'make sync' for now, but obviously that
doesn't help with future changes to these headers. Defining a process
for updating those headers would be useful.

I'll send patches separately.
Hollis Blanchard May 1, 2009, 9:51 p.m. UTC | #9
On Wed, 2009-04-29 at 11:31 +0300, Avi Kivity wrote:
> Hollis Blanchard wrote:
> >> Since PPC is now supported in upstream QEMU, does it really matter if it 
> >> works in qemu-kvm.git?
> >>     
> >
> > I was going to take that position too, except Avi asked me specifically
> > if some of the code inside TARGET_I386 ifdefs in qemu-kvm.c works for
> > other architectures.
> 
> In that case it's sufficient to have the build system use the upstream 
> kvm integration (CONFIG_KVM) rather than the qemu-kvm integration (USE_KVM).

OK, I give up... how is this supposed to work? Nobody ever sets
CONFIG_KVM or KVM_UPSTREAM, but there are a couple tests for it. Glauber
once sent a patch related to that, but I don't see how it helps.

For reference, the actual error is about a hundred instances of e.g.
        /home/hollisb/source/qemu-kvm.git/vl.c:3393: undefined reference
        to `kvm_allowed'
Anthony Liguori May 1, 2009, 10:55 p.m. UTC | #10
Hollis Blanchard wrote:
> On Wed, 2009-04-29 at 11:29 +0300, Avi Kivity wrote:
>   
>>     
>>>       * configure completely ignores --kerneldir and only uses
>>>         kvm/kernel headers instead.
>>>   
>>>       
>> That's intentional.
>>     
>
> Huh? If --kerneldir does nothing, why does it exist?
>   

BTW Avi, if you intend on carrying the KVM kernel headers in qemu-kvm, I 
see no strong reason not to do the same in QEMU.

I'd like to move them from kvm/kernel/include to kvm/include.  I'm open 
to suggestion actually.

How often do you intend on updating the headers?

Regards,

Anthony Liguori
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Avi Kivity May 2, 2009, 7:42 a.m. UTC | #11
Anthony Liguori wrote:
> Hollis Blanchard wrote:
>> On Wed, 2009-04-29 at 11:29 +0300, Avi Kivity wrote:
>>  
>>>    
>>>>       * configure completely ignores --kerneldir and only uses
>>>>         kvm/kernel headers instead.
>>>>         
>>> That's intentional.
>>>     
>>
>> Huh? If --kerneldir does nothing, why does it exist?
>>   
>
> BTW Avi, if you intend on carrying the KVM kernel headers in qemu-kvm, 
> I see no strong reason not to do the same in QEMU.

That's the plan.

>
> I'd like to move them from kvm/kernel/include to kvm/include.  I'm 
> open to suggestion actually.
>
> How often do you intend on updating the headers?

For qemu-kvm.git, as often as they're updated in kvm.git.

For qemu.git, every major Linux release.  This way we don't commit to an 
ABI which may change.
Avi Kivity May 2, 2009, 7:52 a.m. UTC | #12
Hollis Blanchard wrote:
>> In that case it's sufficient to have the build system use the upstream 
>> kvm integration (CONFIG_KVM) rather than the qemu-kvm integration (USE_KVM).
>>     
>
> OK, I give up... how is this supposed to work? Nobody ever sets
> CONFIG_KVM or KVM_UPSTREAM, but there are a couple tests for it. Glauber
> once sent a patch related to that, but I don't see how it helps.
>   

KVM_UPSTREAM is just a marker to let us know which parts of upstream 
qemu/kvm integration conflict with qemu-kvm.git.
Avi Kivity May 2, 2009, 7:54 a.m. UTC | #13
Hollis Blanchard wrote:
>>>   
>>>       
>> They were generated by the old 'make sync' to remove CONFIG_ 
>> dependencies.  I guess a better way to generate them is a 'make 
>> headers-install' from the kernel tree and grab the results.
>>     
>
> 'make headers_install' only produces include/asm/kvm.h, which apparently
> is not sufficient.
>   

That's a bug then.  People should be able to use kvm without copying and 
hacking headers from the kernel source tree.

> I can use output from an old 'make sync' for now, but obviously that
> doesn't help with future changes to these headers. Defining a process
> for updating those headers would be useful.
>   

I plan to setup a script for that (basically an updated make sync).
Avi Kivity May 2, 2009, 7:58 a.m. UTC | #14
Hollis Blanchard wrote:
> On Wed, 2009-04-29 at 11:29 +0300, Avi Kivity wrote:
>   
>>     
>>>       * configure completely ignores --kerneldir and only uses
>>>         kvm/kernel headers instead.
>>>   
>>>       
>> That's intentional.
>>     
>
> Huh? If --kerneldir does nothing, why does it exist?
>   

--kerneldir predates the inclusion of headers in qemu-kvm.git.
Muli Ben-Yehuda May 2, 2009, 2:50 p.m. UTC | #15
On Fri, May 01, 2009 at 04:23:45PM -0500, Hollis Blanchard wrote:

> I can use output from an old 'make sync' for now, but obviously that
> doesn't help with future changes to these headers. Defining a
> process for updating those headers would be useful.

Two thumbs up. People doing kvm development which is not-quite-yet
ready for upstream inclusion will appreciate having a way of keeping
their (changed) kernel headers in sync with the userspace bits as
transparently as possible.

Cheers,
Muli
Hollis Blanchard May 4, 2009, 9:35 p.m. UTC | #16
On Sat, 2009-05-02 at 10:52 +0300, Avi Kivity wrote:
> Hollis Blanchard wrote:
> >> In that case it's sufficient to have the build system use the upstream 
> >> kvm integration (CONFIG_KVM) rather than the qemu-kvm integration (USE_KVM).
> >>     
> >
> > OK, I give up... how is this supposed to work? Nobody ever sets
> > CONFIG_KVM or KVM_UPSTREAM, but there are a couple tests for it. Glauber
> > once sent a patch related to that, but I don't see how it helps.
> >   
> 
> KVM_UPSTREAM is just a marker to let us know which parts of upstream 
> qemu/kvm integration conflict with qemu-kvm.git.

OK, so where do I define KVM_UPSTREAM?

Also, where do I define CONFIG_KVM? I would expect the configure script
to do that, but apparently it does not.
diff mbox

Patch

diff --git a/configure b/configure
index fc0fb9b..257cf02 100755
--- a/configure
+++ b/configure
@@ -816,6 +816,9 @@  case "$cpu" in
     i386 | x86_64)
        kvm_arch="x86"
        ;;
+    ppc)
+       kvm_arch="powerpc"
+       ;;
     *)
        kvm_arch="$cpu"
        ;;