Message ID | 1601669191-6731-5-git-send-email-mjrosato@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | Retrieve zPCI hardware information from VFIO | expand |
On Fri, 2 Oct 2020 16:06:26 -0400 Matthew Rosato <mjrosato@linux.ibm.com> wrote: > PLACEHOLDER as the kernel patch driving the need for this ("vfio-pci/zdev: > define the vfio_zdev header") isn't merged yet. > > Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> > --- > .../drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h | 14 +++++++------- > linux-headers/linux/kvm.h | 6 ++++-- > linux-headers/linux/vfio.h | 5 +++++ > 3 files changed, 16 insertions(+), 9 deletions(-) > > diff --git a/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h b/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h > index 7b4062a..acd4c83 100644 > --- a/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h > +++ b/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h > @@ -68,7 +68,7 @@ static inline int pvrdma_idx_valid(uint32_t idx, uint32_t max_elems) > > static inline int32_t pvrdma_idx(int *var, uint32_t max_elems) > { > - const unsigned int idx = qatomic_read(var); > + const unsigned int idx = atomic_read(var); Hm... either this shouldn't have been renamed to qatomic_read() in the first place, or we need to add some post-processing to the update script. > > if (pvrdma_idx_valid(idx, max_elems)) > return idx & (max_elems - 1);
On 10/6/20 11:39 AM, Cornelia Huck wrote: > On Fri, 2 Oct 2020 16:06:26 -0400 > Matthew Rosato <mjrosato@linux.ibm.com> wrote: > >> PLACEHOLDER as the kernel patch driving the need for this ("vfio-pci/zdev: >> define the vfio_zdev header") isn't merged yet. >> >> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> >> --- >> .../drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h | 14 +++++++------- >> linux-headers/linux/kvm.h | 6 ++++-- >> linux-headers/linux/vfio.h | 5 +++++ >> 3 files changed, 16 insertions(+), 9 deletions(-) >> >> diff --git a/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h b/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h >> index 7b4062a..acd4c83 100644 >> --- a/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h >> +++ b/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h >> @@ -68,7 +68,7 @@ static inline int pvrdma_idx_valid(uint32_t idx, uint32_t max_elems) >> >> static inline int32_t pvrdma_idx(int *var, uint32_t max_elems) >> { >> - const unsigned int idx = qatomic_read(var); >> + const unsigned int idx = atomic_read(var); > > Hm... either this shouldn't have been renamed to qatomic_read() in the > first place, or we need to add some post-processing to the update > script. > Before I posted this set, I mentioned this in a reply to Stefan's atomic->qatomic patchset that introduced the change... Paolo replied and said the code shouldn't be getting imported during header updates at all: https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg00734.html Copying the maintainers of the pvrdma stuff for their awareness in case they missed the first exchange.
diff --git a/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h b/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h index 7b4062a..acd4c83 100644 --- a/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h +++ b/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h @@ -68,7 +68,7 @@ static inline int pvrdma_idx_valid(uint32_t idx, uint32_t max_elems) static inline int32_t pvrdma_idx(int *var, uint32_t max_elems) { - const unsigned int idx = qatomic_read(var); + const unsigned int idx = atomic_read(var); if (pvrdma_idx_valid(idx, max_elems)) return idx & (max_elems - 1); @@ -77,17 +77,17 @@ static inline int32_t pvrdma_idx(int *var, uint32_t max_elems) static inline void pvrdma_idx_ring_inc(int *var, uint32_t max_elems) { - uint32_t idx = qatomic_read(var) + 1; /* Increment. */ + uint32_t idx = atomic_read(var) + 1; /* Increment. */ idx &= (max_elems << 1) - 1; /* Modulo size, flip gen. */ - qatomic_set(var, idx); + atomic_set(var, idx); } static inline int32_t pvrdma_idx_ring_has_space(const struct pvrdma_ring *r, uint32_t max_elems, uint32_t *out_tail) { - const uint32_t tail = qatomic_read(&r->prod_tail); - const uint32_t head = qatomic_read(&r->cons_head); + const uint32_t tail = atomic_read(&r->prod_tail); + const uint32_t head = atomic_read(&r->cons_head); if (pvrdma_idx_valid(tail, max_elems) && pvrdma_idx_valid(head, max_elems)) { @@ -100,8 +100,8 @@ static inline int32_t pvrdma_idx_ring_has_space(const struct pvrdma_ring *r, static inline int32_t pvrdma_idx_ring_has_data(const struct pvrdma_ring *r, uint32_t max_elems, uint32_t *out_head) { - const uint32_t tail = qatomic_read(&r->prod_tail); - const uint32_t head = qatomic_read(&r->cons_head); + const uint32_t tail = atomic_read(&r->prod_tail); + const uint32_t head = atomic_read(&r->cons_head); if (pvrdma_idx_valid(tail, max_elems) && pvrdma_idx_valid(head, max_elems)) { diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h index 6683e2e..43580c7 100644 --- a/linux-headers/linux/kvm.h +++ b/linux-headers/linux/kvm.h @@ -790,9 +790,10 @@ struct kvm_ppc_resize_hpt { #define KVM_VM_PPC_HV 1 #define KVM_VM_PPC_PR 2 -/* on MIPS, 0 forces trap & emulate, 1 forces VZ ASE */ -#define KVM_VM_MIPS_TE 0 +/* on MIPS, 0 indicates auto, 1 forces VZ ASE, 2 forces trap & emulate */ +#define KVM_VM_MIPS_AUTO 0 #define KVM_VM_MIPS_VZ 1 +#define KVM_VM_MIPS_TE 2 #define KVM_S390_SIE_PAGE_OFFSET 1 @@ -1035,6 +1036,7 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_LAST_CPU 184 #define KVM_CAP_SMALLER_MAXPHYADDR 185 #define KVM_CAP_S390_DIAG318 186 +#define KVM_CAP_STEAL_TIME 187 #ifdef KVM_CAP_IRQ_ROUTING diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h index a906724..68fd67a 100644 --- a/linux-headers/linux/vfio.h +++ b/linux-headers/linux/vfio.h @@ -326,6 +326,11 @@ struct vfio_region_info_cap_type { * to do TLB invalidation on a GPU. */ #define VFIO_REGION_SUBTYPE_IBM_NVLINK2_ATSD (1) +/* + * IBM zPCI specific hardware feature information for a devcie. The contents + * of this region are mapped by struct vfio_region_zpci_info. + */ +#define VFIO_REGION_SUBTYPE_IBM_ZPCI_CLP (2) /* sub-types for VFIO_REGION_TYPE_GFX */ #define VFIO_REGION_SUBTYPE_GFX_EDID (1)
PLACEHOLDER as the kernel patch driving the need for this ("vfio-pci/zdev: define the vfio_zdev header") isn't merged yet. Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> --- .../drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h | 14 +++++++------- linux-headers/linux/kvm.h | 6 ++++-- linux-headers/linux/vfio.h | 5 +++++ 3 files changed, 16 insertions(+), 9 deletions(-)