Message ID | 1539795177-21038-2-git-send-email-peng.hao2@zte.com.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/i386: introduce coalesced pio | expand |
Peng Hao <peng.hao2@zte.com.cn> writes: > diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h > index 83ba4eb..b5d4289 100644 > --- a/linux-headers/linux/kvm.h > +++ b/linux-headers/linux/kvm.h > @@ -420,13 +420,19 @@ struct kvm_run { > struct kvm_coalesced_mmio_zone { > __u64 addr; > __u32 size; > - __u32 pad; > + union { > + __u32 pad; > + __u32 pio; > + }; > }; I was just passing by, but what's the point in keeping 'pad'? > > struct kvm_coalesced_mmio { > __u64 phys_addr; > __u32 len; > + unino { 'union' I would guess? How does it compile? > __u32 pad; > + __u32 pio; > + }; > __u8 data[8]; > }; > > @@ -953,6 +959,7 @@ struct kvm_ppc_resize_hpt { > #define KVM_CAP_NESTED_STATE 157 > #define KVM_CAP_ARM_INJECT_SERROR_ESR 158 > #define KVM_CAP_MSR_PLATFORM_INFO 159 > +#define KVM_CAP_COALESCED_PIO 160 > > #ifdef KVM_CAP_IRQ_ROUTING
On 17/10/2018 17:04, Vitaly Kuznetsov wrote: >> + union { >> + __u32 pad; >> + __u32 pio; >> + }; >> }; > I was just passing by, but what's the point in keeping 'pad'? > Backwards compatibility. QEMU does have a couple instances of "x.pad = 0", so... Paolo
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index de12f78..29d208d 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -537,7 +537,7 @@ static void kvm_coalesce_mmio_region(MemoryListener *listener, zone.addr = start; zone.size = size; - zone.pad = 0; + zone.pio = 0; (void)kvm_vm_ioctl(s, KVM_REGISTER_COALESCED_MMIO, &zone); } @@ -554,7 +554,7 @@ static void kvm_uncoalesce_mmio_region(MemoryListener *listener, zone.addr = start; zone.size = size; - zone.pad = 0; + zone.pio = 0; (void)kvm_vm_ioctl(s, KVM_UNREGISTER_COALESCED_MMIO, &zone); } diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h index 83ba4eb..b5d4289 100644 --- a/linux-headers/linux/kvm.h +++ b/linux-headers/linux/kvm.h @@ -420,13 +420,19 @@ struct kvm_run { struct kvm_coalesced_mmio_zone { __u64 addr; __u32 size; - __u32 pad; + union { + __u32 pad; + __u32 pio; + }; }; struct kvm_coalesced_mmio { __u64 phys_addr; __u32 len; + unino { __u32 pad; + __u32 pio; + }; __u8 data[8]; }; @@ -953,6 +959,7 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_NESTED_STATE 157 #define KVM_CAP_ARM_INJECT_SERROR_ESR 158 #define KVM_CAP_MSR_PLATFORM_INFO 159 +#define KVM_CAP_COALESCED_PIO 160 #ifdef KVM_CAP_IRQ_ROUTING
add coalesced_pio's struct and KVM_CAP_COALESCED_PIO header. Signed-off-by: Peng Hao <peng.hao2@zte.com.cn> --- accel/kvm/kvm-all.c | 4 ++-- linux-headers/linux/kvm.h | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-)