All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] i386/kvm: enable Hyper-V PV IPI mechanism
@ 2018-10-08 11:27 Vitaly Kuznetsov
  2018-10-08 11:27 ` [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue) Vitaly Kuznetsov
  2018-10-08 11:27 ` [Qemu-devel] [PATCH 2/2] i386/kvm: add support for Hyper-V IPI send Vitaly Kuznetsov
  0 siblings, 2 replies; 11+ messages in thread
From: Vitaly Kuznetsov @ 2018-10-08 11:27 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Marcelo Tosatti, Roman Kagan

Hyper-V PV IPI enlightenment was merged to KVM (kvm/queue currently).
Support the feature enablement in Qemu.

Vitaly Kuznetsov (2):
  linux-headers: update to pre-4.20 (kvm/queue)
  i386/kvm: add support for Hyper-V IPI send

 linux-headers/linux/kvm.h  |  7 +++++--
 target/i386/cpu.c          |  1 +
 target/i386/cpu.h          |  1 +
 target/i386/hyperv-proto.h |  1 +
 target/i386/kvm.c          | 14 +++++++++++++-
 5 files changed, 21 insertions(+), 3 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)
  2018-10-08 11:27 [Qemu-devel] [PATCH 0/2] i386/kvm: enable Hyper-V PV IPI mechanism Vitaly Kuznetsov
@ 2018-10-08 11:27 ` Vitaly Kuznetsov
  2018-10-09 12:20   ` Roman Kagan
  2018-10-08 11:27 ` [Qemu-devel] [PATCH 2/2] i386/kvm: add support for Hyper-V IPI send Vitaly Kuznetsov
  1 sibling, 1 reply; 11+ messages in thread
From: Vitaly Kuznetsov @ 2018-10-08 11:27 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Marcelo Tosatti, Roman Kagan

This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
 linux-headers/linux/kvm.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index 66790724f1..043f1e58b6 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -9,7 +9,7 @@
  */
 
 #include <linux/types.h>
-
+#include <linux/compiler.h>
 #include <linux/ioctl.h>
 #include <asm/kvm.h>
 
@@ -481,7 +481,7 @@ struct kvm_dirty_log {
 	__u32 slot;
 	__u32 padding1;
 	union {
-		void *dirty_bitmap; /* one bit per page */
+		void __user *dirty_bitmap; /* one bit per page */
 		__u64 padding2;
 	};
 };
@@ -951,6 +951,9 @@ struct kvm_ppc_resize_hpt {
 #define KVM_CAP_HYPERV_TLBFLUSH 155
 #define KVM_CAP_S390_HPAGE_1M 156
 #define KVM_CAP_NESTED_STATE 157
+#define KVM_CAP_ARM_INJECT_SERROR_ESR 158
+#define KVM_CAP_MSR_PLATFORM_INFO 159
+#define KVM_CAP_HYPERV_SEND_IPI 160
 
 #ifdef KVM_CAP_IRQ_ROUTING
 
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 2/2] i386/kvm: add support for Hyper-V IPI send
  2018-10-08 11:27 [Qemu-devel] [PATCH 0/2] i386/kvm: enable Hyper-V PV IPI mechanism Vitaly Kuznetsov
  2018-10-08 11:27 ` [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue) Vitaly Kuznetsov
@ 2018-10-08 11:27 ` Vitaly Kuznetsov
  2018-10-09 12:47   ` Roman Kagan
  1 sibling, 1 reply; 11+ messages in thread
From: Vitaly Kuznetsov @ 2018-10-08 11:27 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Marcelo Tosatti, Roman Kagan

Hyper-V PV IPI support is merged to KVM, enable the feature in Qemu. When
enabled, this allows Windows guests to send IPIs to other vCPUs with a
single hypercall even when there are >64 vCPUs in the request.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
 target/i386/cpu.c          |  1 +
 target/i386/cpu.h          |  1 +
 target/i386/hyperv-proto.h |  1 +
 target/i386/kvm.c          | 14 +++++++++++++-
 4 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index c88876dfe3..32ea041c06 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -5564,6 +5564,7 @@ static Property x86_cpu_properties[] = {
     DEFINE_PROP_BOOL("hv-frequencies", X86CPU, hyperv_frequencies, false),
     DEFINE_PROP_BOOL("hv-reenlightenment", X86CPU, hyperv_reenlightenment, false),
     DEFINE_PROP_BOOL("hv-tlbflush", X86CPU, hyperv_tlbflush, false),
+    DEFINE_PROP_BOOL("hv-ipi", X86CPU, hyperv_ipi, false),
     DEFINE_PROP_BOOL("check", X86CPU, check_cpuid, true),
     DEFINE_PROP_BOOL("enforce", X86CPU, enforce_cpuid, false),
     DEFINE_PROP_BOOL("kvm", X86CPU, expose_kvm, true),
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 730c06f80a..caa1544b2e 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -1382,6 +1382,7 @@ struct X86CPU {
     bool hyperv_frequencies;
     bool hyperv_reenlightenment;
     bool hyperv_tlbflush;
+    bool hyperv_ipi;
     bool check_cpuid;
     bool enforce_cpuid;
     bool expose_kvm;
diff --git a/target/i386/hyperv-proto.h b/target/i386/hyperv-proto.h
index d6d5a79293..87f36d14e8 100644
--- a/target/i386/hyperv-proto.h
+++ b/target/i386/hyperv-proto.h
@@ -58,6 +58,7 @@
 #define HV_APIC_ACCESS_RECOMMENDED          (1u << 3)
 #define HV_SYSTEM_RESET_RECOMMENDED         (1u << 4)
 #define HV_RELAXED_TIMING_RECOMMENDED       (1u << 5)
+#define HV_CLUSTER_IPI_RECOMMENDED          (1u << 10)
 #define HV_EX_PROCESSOR_MASKS_RECOMMENDED   (1u << 11)
 
 /*
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index dc4047b02f..795aa52938 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
@@ -608,7 +608,8 @@ static bool hyperv_enabled(X86CPU *cpu)
             cpu->hyperv_synic ||
             cpu->hyperv_stimer ||
             cpu->hyperv_reenlightenment ||
-            cpu->hyperv_tlbflush);
+            cpu->hyperv_tlbflush ||
+            cpu->hyperv_ipi);
 }
 
 static int kvm_arch_set_tsc_khz(CPUState *cs)
@@ -888,6 +889,17 @@ int kvm_arch_init_vcpu(CPUState *cs)
             c->eax |= HV_REMOTE_TLB_FLUSH_RECOMMENDED;
             c->eax |= HV_EX_PROCESSOR_MASKS_RECOMMENDED;
         }
+        if (cpu->hyperv_ipi) {
+            if (kvm_check_extension(cs->kvm_state,
+                                    KVM_CAP_HYPERV_SEND_IPI) <= 0) {
+                fprintf(stderr, "Hyper-V IPI send support "
+                        "(requested by 'hv-ipi' cpu flag) "
+                        " is not supported by kernel\n");
+                return -ENOSYS;
+            }
+            c->eax |= HV_CLUSTER_IPI_RECOMMENDED;
+            c->eax |= HV_EX_PROCESSOR_MASKS_RECOMMENDED;
+        }
 
         c->ebx = cpu->hyperv_spinlock_attempts;
 
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)
  2018-10-08 11:27 ` [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue) Vitaly Kuznetsov
@ 2018-10-09 12:20   ` Roman Kagan
  2018-10-09 13:01     ` Vitaly Kuznetsov
  0 siblings, 1 reply; 11+ messages in thread
From: Roman Kagan @ 2018-10-09 12:20 UTC (permalink / raw)
  To: Vitaly Kuznetsov
  Cc: qemu-devel, Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Marcelo Tosatti

On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote:
> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
> KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.
> 
> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> ---
>  linux-headers/linux/kvm.h | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> index 66790724f1..043f1e58b6 100644
> --- a/linux-headers/linux/kvm.h
> +++ b/linux-headers/linux/kvm.h
> @@ -9,7 +9,7 @@
>   */
>  
>  #include <linux/types.h>
> -
> +#include <linux/compiler.h>
>  #include <linux/ioctl.h>
>  #include <asm/kvm.h>
>  
> @@ -481,7 +481,7 @@ struct kvm_dirty_log {
>  	__u32 slot;
>  	__u32 padding1;
>  	union {
> -		void *dirty_bitmap; /* one bit per page */
> +		void __user *dirty_bitmap; /* one bit per page */

Hmm, I thought "__user" and friends are supposed to get stripped while
"make headers_install".  Does it build like this?

Roman.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] i386/kvm: add support for Hyper-V IPI send
  2018-10-08 11:27 ` [Qemu-devel] [PATCH 2/2] i386/kvm: add support for Hyper-V IPI send Vitaly Kuznetsov
@ 2018-10-09 12:47   ` Roman Kagan
  0 siblings, 0 replies; 11+ messages in thread
From: Roman Kagan @ 2018-10-09 12:47 UTC (permalink / raw)
  To: Vitaly Kuznetsov
  Cc: qemu-devel, Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Marcelo Tosatti

On Mon, Oct 08, 2018 at 01:27:26PM +0200, Vitaly Kuznetsov wrote:
> Hyper-V PV IPI support is merged to KVM, enable the feature in Qemu. When
> enabled, this allows Windows guests to send IPIs to other vCPUs with a
> single hypercall even when there are >64 vCPUs in the request.
> 
> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> ---
>  target/i386/cpu.c          |  1 +
>  target/i386/cpu.h          |  1 +
>  target/i386/hyperv-proto.h |  1 +
>  target/i386/kvm.c          | 14 +++++++++++++-
>  4 files changed, 16 insertions(+), 1 deletion(-)

Reviewed-by: Roman Kagan <rkagan@virtuozzo.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)
  2018-10-09 12:20   ` Roman Kagan
@ 2018-10-09 13:01     ` Vitaly Kuznetsov
  2018-10-09 13:17       ` Roman Kagan
  0 siblings, 1 reply; 11+ messages in thread
From: Vitaly Kuznetsov @ 2018-10-09 13:01 UTC (permalink / raw)
  To: Roman Kagan
  Cc: qemu-devel, Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Marcelo Tosatti

Roman Kagan <rkagan@virtuozzo.com> writes:

> On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote:
>> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
>> KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.
>> 
>> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
>> ---
>>  linux-headers/linux/kvm.h | 7 +++++--
>>  1 file changed, 5 insertions(+), 2 deletions(-)
>> 
>> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
>> index 66790724f1..043f1e58b6 100644
>> --- a/linux-headers/linux/kvm.h
>> +++ b/linux-headers/linux/kvm.h
>> @@ -9,7 +9,7 @@
>>   */
>>  
>>  #include <linux/types.h>
>> -
>> +#include <linux/compiler.h>
>>  #include <linux/ioctl.h>
>>  #include <asm/kvm.h>
>>  
>> @@ -481,7 +481,7 @@ struct kvm_dirty_log {
>>  	__u32 slot;
>>  	__u32 padding1;
>>  	union {
>> -		void *dirty_bitmap; /* one bit per page */
>> +		void __user *dirty_bitmap; /* one bit per page */
>
> Hmm, I thought "__user" and friends are supposed to get stripped while
> "make headers_install".

... and of course I forgot about this, will send v2, thanks!

>  Does it build like this?

depends on what you've done to your build system)

-- 
Vitaly

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)
  2018-10-09 13:01     ` Vitaly Kuznetsov
@ 2018-10-09 13:17       ` Roman Kagan
  2018-10-09 13:42         ` Vitaly Kuznetsov
  0 siblings, 1 reply; 11+ messages in thread
From: Roman Kagan @ 2018-10-09 13:17 UTC (permalink / raw)
  To: Vitaly Kuznetsov
  Cc: qemu-devel, Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Marcelo Tosatti

On Tue, Oct 09, 2018 at 03:01:12PM +0200, Vitaly Kuznetsov wrote:
> Roman Kagan <rkagan@virtuozzo.com> writes:
> 
> > On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote:
> >> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
> >> KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.
> >> 
> >> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> >> ---
> >>  linux-headers/linux/kvm.h | 7 +++++--
> >>  1 file changed, 5 insertions(+), 2 deletions(-)
> >> 
> >> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> >> index 66790724f1..043f1e58b6 100644
> >> --- a/linux-headers/linux/kvm.h
> >> +++ b/linux-headers/linux/kvm.h
> >> @@ -9,7 +9,7 @@
> >>   */
> >>  
> >>  #include <linux/types.h>
> >> -
> >> +#include <linux/compiler.h>
> >>  #include <linux/ioctl.h>
> >>  #include <asm/kvm.h>
> >>  
> >> @@ -481,7 +481,7 @@ struct kvm_dirty_log {
> >>  	__u32 slot;
> >>  	__u32 padding1;
> >>  	union {
> >> -		void *dirty_bitmap; /* one bit per page */
> >> +		void __user *dirty_bitmap; /* one bit per page */
> >
> > Hmm, I thought "__user" and friends are supposed to get stripped while
> > "make headers_install".
> 
> ... and of course I forgot about this, will send v2, thanks!

Are you trying to say you didn't follow the regular linux header
harvesting process, which is to use scripts/update-linux-headers.sh
(which does 'make headers_install' and then applies further sanitizing,
so that problems like this wouldn't have popped up)?  I think you
should, unless this is an interim patchset pending the merge of the
corresponding KVM changes in the mainline kernel.

Roman.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)
  2018-10-09 13:17       ` Roman Kagan
@ 2018-10-09 13:42         ` Vitaly Kuznetsov
  2018-10-09 13:59           ` Roman Kagan
  2018-10-09 15:32           ` Paolo Bonzini
  0 siblings, 2 replies; 11+ messages in thread
From: Vitaly Kuznetsov @ 2018-10-09 13:42 UTC (permalink / raw)
  To: Roman Kagan
  Cc: qemu-devel, Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Marcelo Tosatti

Roman Kagan <rkagan@virtuozzo.com> writes:

> On Tue, Oct 09, 2018 at 03:01:12PM +0200, Vitaly Kuznetsov wrote:
>> Roman Kagan <rkagan@virtuozzo.com> writes:
>> 
>> > On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote:
>> >> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
>> >> KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.
>> >> 
>> >> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
>> >> ---
>> >>  linux-headers/linux/kvm.h | 7 +++++--
>> >>  1 file changed, 5 insertions(+), 2 deletions(-)
>> >> 
>> >> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
>> >> index 66790724f1..043f1e58b6 100644
>> >> --- a/linux-headers/linux/kvm.h
>> >> +++ b/linux-headers/linux/kvm.h
>> >> @@ -9,7 +9,7 @@
>> >>   */
>> >>  
>> >>  #include <linux/types.h>
>> >> -
>> >> +#include <linux/compiler.h>
>> >>  #include <linux/ioctl.h>
>> >>  #include <asm/kvm.h>
>> >>  
>> >> @@ -481,7 +481,7 @@ struct kvm_dirty_log {
>> >>  	__u32 slot;
>> >>  	__u32 padding1;
>> >>  	union {
>> >> -		void *dirty_bitmap; /* one bit per page */
>> >> +		void __user *dirty_bitmap; /* one bit per page */
>> >
>> > Hmm, I thought "__user" and friends are supposed to get stripped while
>> > "make headers_install".
>> 
>> ... and of course I forgot about this, will send v2, thanks!
>
> Are you trying to say you didn't follow the regular linux header
> harvesting process, which is to use scripts/update-linux-headers.sh
> (which does 'make headers_install' and then applies further sanitizing,
> so that problems like this wouldn't have popped up)?  I think you
> should, unless this is an interim patchset pending the merge of the
> corresponding KVM changes in the mainline kernel.

Honestly I didn't know about the standard process but looking at the
output:

$ scripts/update-linux-headers.sh PATH/TO/LINUX
...
$ git diff --stat
 include/standard-headers/linux/input.h |  9 +++++----
 linux-headers/asm-arm/kvm.h            | 13 +++++++++++++
 linux-headers/asm-arm64/kvm.h          | 13 +++++++++++++
 linux-headers/asm-s390/kvm.h           |  2 ++
 linux-headers/asm-x86/kvm.h            |  1 +
 linux-headers/linux/kvm.h              |  3 +++
 linux-headers/linux/vfio.h             |  2 ++
 linux-headers/linux/vhost.h            |  2 +-
 8 files changed, 40 insertions(+), 5 deletions(-)

I'm not sure if it would make sense to do this instead: the definition I
need is currently in kvm/queue and I'm not exactly sure that updating
other headers from there (e.g. linux/input.h) makes any sense.

-- 
Vitaly

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)
  2018-10-09 13:42         ` Vitaly Kuznetsov
@ 2018-10-09 13:59           ` Roman Kagan
  2018-10-09 14:59             ` Cornelia Huck
  2018-10-09 15:32           ` Paolo Bonzini
  1 sibling, 1 reply; 11+ messages in thread
From: Roman Kagan @ 2018-10-09 13:59 UTC (permalink / raw)
  To: Vitaly Kuznetsov
  Cc: qemu-devel, Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Marcelo Tosatti

On Tue, Oct 09, 2018 at 03:42:27PM +0200, Vitaly Kuznetsov wrote:
> Roman Kagan <rkagan@virtuozzo.com> writes:
> 
> > On Tue, Oct 09, 2018 at 03:01:12PM +0200, Vitaly Kuznetsov wrote:
> >> Roman Kagan <rkagan@virtuozzo.com> writes:
> >> 
> >> > On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote:
> >> >> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
> >> >> KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.
> >> >> 
> >> >> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> >> >> ---
> >> >>  linux-headers/linux/kvm.h | 7 +++++--
> >> >>  1 file changed, 5 insertions(+), 2 deletions(-)
> >> >> 
> >> >> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> >> >> index 66790724f1..043f1e58b6 100644
> >> >> --- a/linux-headers/linux/kvm.h
> >> >> +++ b/linux-headers/linux/kvm.h
> >> >> @@ -9,7 +9,7 @@
> >> >>   */
> >> >>  
> >> >>  #include <linux/types.h>
> >> >> -
> >> >> +#include <linux/compiler.h>
> >> >>  #include <linux/ioctl.h>
> >> >>  #include <asm/kvm.h>
> >> >>  
> >> >> @@ -481,7 +481,7 @@ struct kvm_dirty_log {
> >> >>  	__u32 slot;
> >> >>  	__u32 padding1;
> >> >>  	union {
> >> >> -		void *dirty_bitmap; /* one bit per page */
> >> >> +		void __user *dirty_bitmap; /* one bit per page */
> >> >
> >> > Hmm, I thought "__user" and friends are supposed to get stripped while
> >> > "make headers_install".
> >> 
> >> ... and of course I forgot about this, will send v2, thanks!
> >
> > Are you trying to say you didn't follow the regular linux header
> > harvesting process, which is to use scripts/update-linux-headers.sh
> > (which does 'make headers_install' and then applies further sanitizing,
> > so that problems like this wouldn't have popped up)?  I think you
> > should, unless this is an interim patchset pending the merge of the
> > corresponding KVM changes in the mainline kernel.
> 
> Honestly I didn't know about the standard process but looking at the
> output:
> 
> $ scripts/update-linux-headers.sh PATH/TO/LINUX
> ...
> $ git diff --stat
>  include/standard-headers/linux/input.h |  9 +++++----
>  linux-headers/asm-arm/kvm.h            | 13 +++++++++++++
>  linux-headers/asm-arm64/kvm.h          | 13 +++++++++++++
>  linux-headers/asm-s390/kvm.h           |  2 ++
>  linux-headers/asm-x86/kvm.h            |  1 +
>  linux-headers/linux/kvm.h              |  3 +++
>  linux-headers/linux/vfio.h             |  2 ++
>  linux-headers/linux/vhost.h            |  2 +-
>  8 files changed, 40 insertions(+), 5 deletions(-)
> 
> I'm not sure if it would make sense to do this instead: the definition I
> need is currently in kvm/queue and I'm not exactly sure that updating
> other headers from there (e.g. linux/input.h) makes any sense.

Another possible problem is that constants may change on their way from
kvm/queue to mainline, so people tend to avoid pulling headers from
anything but Linus' tree.

Anyway that's not my call.  Paolo, Eduardo, what's your take on this?

Roman.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)
  2018-10-09 13:59           ` Roman Kagan
@ 2018-10-09 14:59             ` Cornelia Huck
  0 siblings, 0 replies; 11+ messages in thread
From: Cornelia Huck @ 2018-10-09 14:59 UTC (permalink / raw)
  To: Roman Kagan
  Cc: Vitaly Kuznetsov, Paolo Bonzini, Marcelo Tosatti, qemu-devel,
	Eduardo Habkost, Richard Henderson

On Tue, 9 Oct 2018 13:59:36 +0000
Roman Kagan <rkagan@virtuozzo.com> wrote:

> On Tue, Oct 09, 2018 at 03:42:27PM +0200, Vitaly Kuznetsov wrote:
> > Roman Kagan <rkagan@virtuozzo.com> writes:
> >   
> > > On Tue, Oct 09, 2018 at 03:01:12PM +0200, Vitaly Kuznetsov wrote:  
> > >> Roman Kagan <rkagan@virtuozzo.com> writes:
> > >>   
> > >> > On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote:  
> > >> >> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
> > >> >> KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.
> > >> >> 
> > >> >> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> > >> >> ---
> > >> >>  linux-headers/linux/kvm.h | 7 +++++--
> > >> >>  1 file changed, 5 insertions(+), 2 deletions(-)
> > >> >> 
> > >> >> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> > >> >> index 66790724f1..043f1e58b6 100644
> > >> >> --- a/linux-headers/linux/kvm.h
> > >> >> +++ b/linux-headers/linux/kvm.h
> > >> >> @@ -9,7 +9,7 @@
> > >> >>   */
> > >> >>  
> > >> >>  #include <linux/types.h>
> > >> >> -
> > >> >> +#include <linux/compiler.h>
> > >> >>  #include <linux/ioctl.h>
> > >> >>  #include <asm/kvm.h>
> > >> >>  
> > >> >> @@ -481,7 +481,7 @@ struct kvm_dirty_log {
> > >> >>  	__u32 slot;
> > >> >>  	__u32 padding1;
> > >> >>  	union {
> > >> >> -		void *dirty_bitmap; /* one bit per page */
> > >> >> +		void __user *dirty_bitmap; /* one bit per page */  
> > >> >
> > >> > Hmm, I thought "__user" and friends are supposed to get stripped while
> > >> > "make headers_install".  
> > >> 
> > >> ... and of course I forgot about this, will send v2, thanks!  
> > >
> > > Are you trying to say you didn't follow the regular linux header
> > > harvesting process, which is to use scripts/update-linux-headers.sh
> > > (which does 'make headers_install' and then applies further sanitizing,
> > > so that problems like this wouldn't have popped up)?  I think you
> > > should, unless this is an interim patchset pending the merge of the
> > > corresponding KVM changes in the mainline kernel.  
> > 
> > Honestly I didn't know about the standard process but looking at the
> > output:
> > 
> > $ scripts/update-linux-headers.sh PATH/TO/LINUX
> > ...
> > $ git diff --stat
> >  include/standard-headers/linux/input.h |  9 +++++----
> >  linux-headers/asm-arm/kvm.h            | 13 +++++++++++++
> >  linux-headers/asm-arm64/kvm.h          | 13 +++++++++++++
> >  linux-headers/asm-s390/kvm.h           |  2 ++
> >  linux-headers/asm-x86/kvm.h            |  1 +
> >  linux-headers/linux/kvm.h              |  3 +++
> >  linux-headers/linux/vfio.h             |  2 ++
> >  linux-headers/linux/vhost.h            |  2 +-
> >  8 files changed, 40 insertions(+), 5 deletions(-)
> > 
> > I'm not sure if it would make sense to do this instead: the definition I
> > need is currently in kvm/queue and I'm not exactly sure that updating
> > other headers from there (e.g. linux/input.h) makes any sense.  
> 
> Another possible problem is that constants may change on their way from
> kvm/queue to mainline, so people tend to avoid pulling headers from
> anything but Linus' tree.
> 
> Anyway that's not my call.  Paolo, Eduardo, what's your take on this?

I'm neither Paolo nor Eduardo, but my take is that we can sync headers
against something that we can reasonably expect to end up in mainline
soon. So, I think syncing against current kvm/next would be fine (we're
in the late -rc phase), but I'd avoid syncing against kvm/queue.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)
  2018-10-09 13:42         ` Vitaly Kuznetsov
  2018-10-09 13:59           ` Roman Kagan
@ 2018-10-09 15:32           ` Paolo Bonzini
  1 sibling, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2018-10-09 15:32 UTC (permalink / raw)
  To: Vitaly Kuznetsov, Roman Kagan
  Cc: qemu-devel, Richard Henderson, Eduardo Habkost, Marcelo Tosatti

On 09/10/2018 15:42, Vitaly Kuznetsov wrote:
> 
> $ scripts/update-linux-headers.sh PATH/TO/LINUX
> ...
> $ git diff --stat
>  include/standard-headers/linux/input.h |  9 +++++----
>  linux-headers/asm-arm/kvm.h            | 13 +++++++++++++
>  linux-headers/asm-arm64/kvm.h          | 13 +++++++++++++
>  linux-headers/asm-s390/kvm.h           |  2 ++
>  linux-headers/asm-x86/kvm.h            |  1 +
>  linux-headers/linux/kvm.h              |  3 +++
>  linux-headers/linux/vfio.h             |  2 ++
>  linux-headers/linux/vhost.h            |  2 +-
>  8 files changed, 40 insertions(+), 5 deletions(-)
> 
> I'm not sure if it would make sense to do this instead: the definition I
> need is currently in kvm/queue and I'm not exactly sure that updating
> other headers from there (e.g. linux/input.h) makes any sense.

True, but we always keep all headers in sync for simplicity (and to
avoid inconsistencies the next time someone runs the script).

I'll wait for kvm/queue to become kvm/next and then queue the patch.

Paolo

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-10-09 15:32 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-08 11:27 [Qemu-devel] [PATCH 0/2] i386/kvm: enable Hyper-V PV IPI mechanism Vitaly Kuznetsov
2018-10-08 11:27 ` [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue) Vitaly Kuznetsov
2018-10-09 12:20   ` Roman Kagan
2018-10-09 13:01     ` Vitaly Kuznetsov
2018-10-09 13:17       ` Roman Kagan
2018-10-09 13:42         ` Vitaly Kuznetsov
2018-10-09 13:59           ` Roman Kagan
2018-10-09 14:59             ` Cornelia Huck
2018-10-09 15:32           ` Paolo Bonzini
2018-10-08 11:27 ` [Qemu-devel] [PATCH 2/2] i386/kvm: add support for Hyper-V IPI send Vitaly Kuznetsov
2018-10-09 12:47   ` Roman Kagan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.