diff mbox series

accel: Allow to build QEMU without TCG or KVM support

Message ID 20190116173527.27741-1-anthony.perard@citrix.com
State New
Headers show
Series accel: Allow to build QEMU without TCG or KVM support | expand

Commit Message

Anthony PERARD Jan. 16, 2019, 5:35 p.m. UTC
Instead of deny build of QEMU without a default accelerator, simply
report an error when the user haven't passed -accel or -machine accel=
and TCG and KVM isn't builtin.

./configure already check that at least one accelerator is available.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 accel/accel.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Paolo Bonzini Jan. 16, 2019, 6:14 p.m. UTC | #1
On 16/01/19 18:35, Anthony PERARD wrote:
> Instead of deny build of QEMU without a default accelerator, simply
> report an error when the user haven't passed -accel or -machine accel=
> and TCG and KVM isn't builtin.
> 
> ./configure already check that at least one accelerator is available.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
>  accel/accel.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/accel/accel.c b/accel/accel.c
> index 68b6d56323..0d5b370dfd 100644
> --- a/accel/accel.c
> +++ b/accel/accel.c
> @@ -91,7 +91,9 @@ void configure_accelerator(MachineState *ms, const char *progname)
>  #elif defined(CONFIG_KVM)
>              accel = "kvm";
>  #else
> -#error "No default accelerator available"
> +            error_report("No accelerator selected and"
> +                         " no default accelerator available");
> +            exit(1);
>  #endif
>          }
>      }
> 

Queued, thanks.

Paolo
Thomas Huth Jan. 17, 2019, 6:02 a.m. UTC | #2
On 2019-01-16 18:35, Anthony PERARD wrote:
> Instead of deny build of QEMU without a default accelerator, simply
> report an error when the user haven't passed -accel or -machine accel=
> and TCG and KVM isn't builtin.
> 
> ./configure already check that at least one accelerator is available.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
>  accel/accel.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/accel/accel.c b/accel/accel.c
> index 68b6d56323..0d5b370dfd 100644
> --- a/accel/accel.c
> +++ b/accel/accel.c
> @@ -91,7 +91,9 @@ void configure_accelerator(MachineState *ms, const char *progname)
>  #elif defined(CONFIG_KVM)
>              accel = "kvm";
>  #else
> -#error "No default accelerator available"
> +            error_report("No accelerator selected and"
> +                         " no default accelerator available");
> +            exit(1);
>  #endif
>          }
>      }

That looks a little bit friendlier, indeed.

Reviewed-by: Thomas Huth <thuth@redhat.com>

Out of curiosity: Did you hit the #error while compiling? Or just by
reading the recent patches?

 Thomas
Anthony PERARD Jan. 17, 2019, 10:55 a.m. UTC | #3
On Thu, Jan 17, 2019 at 07:02:24AM +0100, Thomas Huth wrote:
> On 2019-01-16 18:35, Anthony PERARD wrote:
> > Instead of deny build of QEMU without a default accelerator, simply
> > report an error when the user haven't passed -accel or -machine accel=
> > and TCG and KVM isn't builtin.
> > 
> > ./configure already check that at least one accelerator is available.
> > 
> > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> > ---
> >  accel/accel.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/accel/accel.c b/accel/accel.c
> > index 68b6d56323..0d5b370dfd 100644
> > --- a/accel/accel.c
> > +++ b/accel/accel.c
> > @@ -91,7 +91,9 @@ void configure_accelerator(MachineState *ms, const char *progname)
> >  #elif defined(CONFIG_KVM)
> >              accel = "kvm";
> >  #else
> > -#error "No default accelerator available"
> > +            error_report("No accelerator selected and"
> > +                         " no default accelerator available");
> > +            exit(1);
> >  #endif
> >          }
> >      }
> 
> That looks a little bit friendlier, indeed.
> 
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> 
> Out of curiosity: Did you hit the #error while compiling? Or just by
> reading the recent patches?

I've hit the #error. I often build QEMU with --disable-tcg --disable-kvm
--enable-xen just because I only need to build/test xen. So if I can
disable features that I don't need to build QEMU a tiny bit faster, I do
:).
Thomas Huth Jan. 17, 2019, 11:06 a.m. UTC | #4
On 2019-01-17 11:55, Anthony PERARD wrote:
> On Thu, Jan 17, 2019 at 07:02:24AM +0100, Thomas Huth wrote:
>> On 2019-01-16 18:35, Anthony PERARD wrote:
>>> Instead of deny build of QEMU without a default accelerator, simply
>>> report an error when the user haven't passed -accel or -machine accel=
>>> and TCG and KVM isn't builtin.
>>>
>>> ./configure already check that at least one accelerator is available.
>>>
>>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
>>> ---
>>>  accel/accel.c | 4 +++-
>>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/accel/accel.c b/accel/accel.c
>>> index 68b6d56323..0d5b370dfd 100644
>>> --- a/accel/accel.c
>>> +++ b/accel/accel.c
>>> @@ -91,7 +91,9 @@ void configure_accelerator(MachineState *ms, const char *progname)
>>>  #elif defined(CONFIG_KVM)
>>>              accel = "kvm";
>>>  #else
>>> -#error "No default accelerator available"
>>> +            error_report("No accelerator selected and"
>>> +                         " no default accelerator available");
>>> +            exit(1);
>>>  #endif
>>>          }
>>>      }
>>
>> That looks a little bit friendlier, indeed.
>>
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>>
>> Out of curiosity: Did you hit the #error while compiling? Or just by
>> reading the recent patches?
> 
> I've hit the #error. I often build QEMU with --disable-tcg --disable-kvm
> --enable-xen just because I only need to build/test xen. So if I can
> disable features that I don't need to build QEMU a tiny bit faster, I do
> :).

Oh, good to know that this configuration works, too. Maybe you should
also add a

#elif defined(CONFIG_XEN)
	accel = "xen";
#...

part in that case?

 Thomas
Anthony PERARD Jan. 17, 2019, 11:23 a.m. UTC | #5
On Thu, Jan 17, 2019 at 12:06:09PM +0100, Thomas Huth wrote:
> On 2019-01-17 11:55, Anthony PERARD wrote:
> > On Thu, Jan 17, 2019 at 07:02:24AM +0100, Thomas Huth wrote:
> >> On 2019-01-16 18:35, Anthony PERARD wrote:
> >>> Instead of deny build of QEMU without a default accelerator, simply
> >>> report an error when the user haven't passed -accel or -machine accel=
> >>> and TCG and KVM isn't builtin.
> >>>
> >>> ./configure already check that at least one accelerator is available.
> >>>
> >>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> >>> ---
> >>>  accel/accel.c | 4 +++-
> >>>  1 file changed, 3 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/accel/accel.c b/accel/accel.c
> >>> index 68b6d56323..0d5b370dfd 100644
> >>> --- a/accel/accel.c
> >>> +++ b/accel/accel.c
> >>> @@ -91,7 +91,9 @@ void configure_accelerator(MachineState *ms, const char *progname)
> >>>  #elif defined(CONFIG_KVM)
> >>>              accel = "kvm";
> >>>  #else
> >>> -#error "No default accelerator available"
> >>> +            error_report("No accelerator selected and"
> >>> +                         " no default accelerator available");
> >>> +            exit(1);
> >>>  #endif
> >>>          }
> >>>      }
> >>
> >> That looks a little bit friendlier, indeed.
> >>
> >> Reviewed-by: Thomas Huth <thuth@redhat.com>
> >>
> >> Out of curiosity: Did you hit the #error while compiling? Or just by
> >> reading the recent patches?
> > 
> > I've hit the #error. I often build QEMU with --disable-tcg --disable-kvm
> > --enable-xen just because I only need to build/test xen. So if I can
> > disable features that I don't need to build QEMU a tiny bit faster, I do
> > :).
> 
> Oh, good to know that this configuration works, too. Maybe you should
> also add a
> 
> #elif defined(CONFIG_XEN)
> 	accel = "xen";
> #...
> 
> part in that case?

I though about it, but I don't think that's a good idea. We can't start
a Xen guests with QEMU alone, so there is always some toolstack that is
going to generate the command line anyway. So it's better to always
require "-machine accel=xen".

Thanks,
diff mbox series

Patch

diff --git a/accel/accel.c b/accel/accel.c
index 68b6d56323..0d5b370dfd 100644
--- a/accel/accel.c
+++ b/accel/accel.c
@@ -91,7 +91,9 @@  void configure_accelerator(MachineState *ms, const char *progname)
 #elif defined(CONFIG_KVM)
             accel = "kvm";
 #else
-#error "No default accelerator available"
+            error_report("No accelerator selected and"
+                         " no default accelerator available");
+            exit(1);
 #endif
         }
     }