Patchwork [v2] vl.c: prohibit simultaneous use of -icount with kvm or xen

login
register
mail settings
Submitter Max Filippov
Date Nov. 10, 2011, 11:38 a.m.
Message ID <1320925122-4422-1-git-send-email-jcmvbkbc@gmail.com>
Download mbox | patch
Permalink /patch/124857/
State New
Headers show

Comments

Max Filippov - Nov. 10, 2011, 11:38 a.m.
With -icount, The vm_clock is updated with help from TCG (it counts
instructions at 2^ICOUNT ns/instructions). With KVM, the instruction
count is not available so KVM cannot provide this help.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
---
v1 -> v2 changes:
- cover both kvm and xen;
- add explanation text.
---
 vl.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
Anthony Liguori - Nov. 11, 2011, 7:45 p.m.
On 11/10/2011 05:38 AM, Max Filippov wrote:
> With -icount, The vm_clock is updated with help from TCG (it counts
> instructions at 2^ICOUNT ns/instructions). With KVM, the instruction
> count is not available so KVM cannot provide this help.
>
> Signed-off-by: Max Filippov<jcmvbkbc@gmail.com>
> Acked-by: Paolo Bonzini<pbonzini@redhat.com>

Applied.  Thanks.

Regards,

Anthony Liguori

> ---
> v1 ->  v2 changes:
> - cover both kvm and xen;
> - add explanation text.
> ---
>   vl.c |    5 +++++
>   1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index f169aac..bb601e2 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -3226,6 +3226,11 @@ int main(int argc, char **argv, char **envp)
>           fprintf(stderr, "could not initialize alarm timer\n");
>           exit(1);
>       }
> +
> +    if (icount_option&&  (kvm_enabled() || xen_enabled())) {
> +        fprintf(stderr, "-icount is not allowed with kvm or xen\n");
> +        exit(1);
> +    }
>       configure_icount(icount_option);
>
>       if (net_init_clients()<  0) {
Anthony Liguori - Nov. 11, 2011, 7:45 p.m.
On 11/10/2011 05:38 AM, Max Filippov wrote:
> With -icount, The vm_clock is updated with help from TCG (it counts
> instructions at 2^ICOUNT ns/instructions). With KVM, the instruction
> count is not available so KVM cannot provide this help.
>
> Signed-off-by: Max Filippov<jcmvbkbc@gmail.com>
> Acked-by: Paolo Bonzini<pbonzini@redhat.com>

Applied.  Thanks.

Regards,

Anthony Liguori

> ---
> v1 ->  v2 changes:
> - cover both kvm and xen;
> - add explanation text.
> ---
>   vl.c |    5 +++++
>   1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index f169aac..bb601e2 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -3226,6 +3226,11 @@ int main(int argc, char **argv, char **envp)
>           fprintf(stderr, "could not initialize alarm timer\n");
>           exit(1);
>       }
> +
> +    if (icount_option&&  (kvm_enabled() || xen_enabled())) {
> +        fprintf(stderr, "-icount is not allowed with kvm or xen\n");
> +        exit(1);
> +    }
>       configure_icount(icount_option);
>
>       if (net_init_clients()<  0) {
Andreas Färber - Aug. 22, 2012, 4:51 p.m.
Am 11.11.2011 20:45, schrieb Anthony Liguori:
> On 11/10/2011 05:38 AM, Max Filippov wrote:
>> With -icount, The vm_clock is updated with help from TCG (it counts
>> instructions at 2^ICOUNT ns/instructions). With KVM, the instruction
>> count is not available so KVM cannot provide this help.
>>
>> Signed-off-by: Max Filippov<jcmvbkbc@gmail.com>
>> Acked-by: Paolo Bonzini<pbonzini@redhat.com>
> 
> Applied.  Thanks.

Applied to stable-0.15. Thanks,

Andreas

> Regards,
> 
> Anthony Liguori
> 
>> ---
>> v1 ->  v2 changes:
>> - cover both kvm and xen;
>> - add explanation text.
>> ---
>>   vl.c |    5 +++++
>>   1 files changed, 5 insertions(+), 0 deletions(-)
>>
>> diff --git a/vl.c b/vl.c
>> index f169aac..bb601e2 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -3226,6 +3226,11 @@ int main(int argc, char **argv, char **envp)
>>           fprintf(stderr, "could not initialize alarm timer\n");
>>           exit(1);
>>       }
>> +
>> +    if (icount_option&&  (kvm_enabled() || xen_enabled())) {
>> +        fprintf(stderr, "-icount is not allowed with kvm or xen\n");
>> +        exit(1);
>> +    }
>>       configure_icount(icount_option);
>>
>>       if (net_init_clients()<  0) {

Patch

diff --git a/vl.c b/vl.c
index f169aac..bb601e2 100644
--- a/vl.c
+++ b/vl.c
@@ -3226,6 +3226,11 @@  int main(int argc, char **argv, char **envp)
         fprintf(stderr, "could not initialize alarm timer\n");
         exit(1);
     }
+
+    if (icount_option && (kvm_enabled() || xen_enabled())) {
+        fprintf(stderr, "-icount is not allowed with kvm or xen\n");
+        exit(1);
+    }
     configure_icount(icount_option);
 
     if (net_init_clients() < 0) {