[xenial][PATCH 00/15] Cherry pick - KVM fix for Power9 - Ubuntu 16.04.3

Jose Ricardo Ziviani joserz at linux.vnet.ibm.com
Thu Jul 20 15:49:15 UTC 2017


buglink: https://bugs.launchpad.net/ubuntu/+source/kernel-package/+bug/1686019

This patchset includes the fix
https://github.com/torvalds/linux/commit/acde257
KVM: PPC: Book3S HV: Add radix checks in real-mode hypercall handlers

which is necessary to have KVM working on Ubuntu 16.04.3 for Power9. It also includes its dependencies.

Unfortunately I wasn't possible to make a clean cherry-pick, then some adjustments was made in order to have them applied. I wrote a list describing what I did. Please, tell me if there's a better way to do such changes and I'll do that.

They are based on zesty/master-next

KVM: PPC: Book3S HV: Add radix checks in real-mode hypercall handlers
    - Cherry picked (upstream: acde257)

KVM: PPC: Reserve KVM_CAP_SPAPR_TCE_VFIO capability number
    - Cherry picked (upstream: 4898d3f)

locking/atomic, kref: Add kref_read()
    - Cherry picked (upstream: 2c935bc)

powerpc/mmu: Add real mode support for IOMMU preregistered memory
    - Cherry picked (upstream: 6b5c19c)

powerpc/vfio_spapr_tce: Add reference counting to iommu_table
    - Cherry picked (upstream: e5afdf9)

powerpc/iommu/vfio_spapr_tce: Cleanup iommu_table disposal
    - Cherry picked (upstream: 11edf11)

powerpc/powernv/ioda2: Update iommu table base on ownership change
    - Cherry picked (upstream: db08e1d)

powerpc/powernv/iommu: Add real mode version of iommu_table_ops::exchange()
    - Cherry picked (upstream: a540aa5)

KVM: PPC: VFIO: Add in-kernel acceleration for VFIO
    - Cherry picked (upstream: 121f80b)

KVM: PPC: Use preregistered memory API to access TCE list
    - Cherry picked (upstream: da6f59e)

KVM: PPC: Pass kvm* to kvmppc_find_table()
    - Cherry picked (upstream: 503bfcb)

Add S390 capabilities based on merge f7b1a77
 - Again, the only change necessary from commit (upstream f7b1a77 Merge tag 'kvm-s390-next-4.12-1') was due to the entries it has added into include/uapi/linux/kvm.h. Since the upstream f7b1a77 is a merge with a huge change that would be very hard to apply, I decided to create a commit adding those two entries.

KVM: MIPS: Add 64BIT capability
 - This commit was cherry-picked (upstream: 578fd61)

KVM: MIPS: Add VZ & TE capabilities
 - This commit add two entries in include/uapi/linux/kvm.h, which they are required in order to apply 58d08f7 (see above). It cannot be cherry-picked due to a small difference in arch/mips/kvm/mips.c, which I modified. (upstream: a8a3c42)

KVM: race-free exit from KVM_RUN without POSIX signals
 - This commit cannot be cherry-picked due to some changes it does to MIPS arch. So I edited the patch, removing all changes to MIPS. (upstream: 460df4c)

Thank you very much!

Alexey Kardashevskiy (9):
  KVM: PPC: Pass kvm* to kvmppc_find_table()
  KVM: PPC: Use preregistered memory API to access TCE list
  KVM: PPC: VFIO: Add in-kernel acceleration for VFIO
  powerpc/powernv/iommu: Add real mode version of
    iommu_table_ops::exchange()
  powerpc/powernv/ioda2: Update iommu table base on ownership change
  powerpc/iommu/vfio_spapr_tce: Cleanup iommu_table disposal
  powerpc/vfio_spapr_tce: Add reference counting to iommu_table
  powerpc/mmu: Add real mode support for IOMMU preregistered memory
  KVM: PPC: Reserve KVM_CAP_SPAPR_TCE_VFIO capability number

James Hogan (2):
  KVM: MIPS: Add VZ & TE capabilities
  KVM: MIPS: Add 64BIT capability

Jose Ricardo Ziviani (1):
  Add S390 capabilities based on merge f7b1a77

Paolo Bonzini (1):
  KVM: race-free exit from KVM_RUN without POSIX signals

Paul Mackerras (1):
  KVM: PPC: Book3S HV: Add radix checks in real-mode hypercall handlers

Peter Zijlstra (1):
  locking/atomic, kref: Add kref_read()

 Documentation/virtual/kvm/api.txt            |  85 +++++++-
 Documentation/virtual/kvm/devices/vfio.txt   |  18 +-
 arch/arm/kvm/arm.c                           |   4 +
 arch/mips/kvm/mips.c                         |  22 +-
 arch/powerpc/include/asm/iommu.h             |  12 +-
 arch/powerpc/include/asm/kvm_host.h          |   8 +
 arch/powerpc/include/asm/kvm_ppc.h           |   6 +-
 arch/powerpc/include/asm/mmu_context.h       |   4 +
 arch/powerpc/kernel/iommu.c                  |  54 ++++-
 arch/powerpc/kvm/book3s_64_vio.c             | 313 ++++++++++++++++++++++++++-
 arch/powerpc/kvm/book3s_64_vio_hv.c          | 285 ++++++++++++++++++++++--
 arch/powerpc/kvm/book3s_hv_builtin.c         |   9 +-
 arch/powerpc/kvm/powerpc.c                   |   8 +-
 arch/powerpc/mm/mmu_context_iommu.c          |  39 ++++
 arch/powerpc/platforms/powernv/pci-ioda.c    |  63 ++++--
 arch/powerpc/platforms/powernv/pci.c         |   1 +
 arch/powerpc/platforms/pseries/iommu.c       |   3 +-
 arch/powerpc/platforms/pseries/vio.c         |   2 +-
 arch/s390/kvm/kvm-s390.c                     |   4 +
 arch/x86/kvm/x86.c                           |   6 +-
 drivers/block/drbd/drbd_req.c                |   2 +-
 drivers/block/rbd.c                          |   8 +-
 drivers/block/virtio_blk.c                   |   2 +-
 drivers/gpu/drm/drm_gem_cma_helper.c         |   2 +-
 drivers/gpu/drm/drm_info.c                   |   2 +-
 drivers/gpu/drm/drm_mode_object.c            |   4 +-
 drivers/gpu/drm/etnaviv/etnaviv_gem.c        |   2 +-
 drivers/gpu/drm/i915/i915_gem_object.h       |   2 +-
 drivers/gpu/drm/msm/msm_gem.c                |   2 +-
 drivers/gpu/drm/nouveau/nouveau_fence.c      |   2 +-
 drivers/gpu/drm/omapdrm/omap_gem.c           |   2 +-
 drivers/gpu/drm/ttm/ttm_bo.c                 |   4 +-
 drivers/gpu/drm/ttm/ttm_object.c             |   2 +-
 drivers/infiniband/hw/cxgb3/iwch_cm.h        |   6 +-
 drivers/infiniband/hw/cxgb3/iwch_qp.c        |   2 +-
 drivers/infiniband/hw/cxgb4/iw_cxgb4.h       |   6 +-
 drivers/infiniband/hw/cxgb4/qp.c             |   2 +-
 drivers/infiniband/hw/usnic/usnic_ib_sysfs.c |   6 +-
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c |   4 +-
 drivers/misc/genwqe/card_dev.c               |   2 +-
 drivers/misc/mei/debugfs.c                   |   2 +-
 drivers/pci/hotplug/pnv_php.c                |   2 +-
 drivers/pci/slot.c                           |   2 +-
 drivers/scsi/bnx2fc/bnx2fc_io.c              |   8 +-
 drivers/scsi/cxgbi/libcxgbi.h                |   4 +-
 drivers/scsi/lpfc/lpfc_debugfs.c             |   2 +-
 drivers/scsi/lpfc/lpfc_els.c                 |   2 +-
 drivers/scsi/lpfc/lpfc_hbadisc.c             |  40 ++--
 drivers/scsi/lpfc/lpfc_init.c                |   3 +-
 drivers/scsi/qla2xxx/tcm_qla2xxx.c           |   4 +-
 drivers/staging/android/ion/ion.c            |   2 +-
 drivers/staging/comedi/comedi_buf.c          |   2 +-
 drivers/target/target_core_pr.c              |  10 +-
 drivers/target/tcm_fc/tfc_sess.c             |   2 +-
 drivers/usb/gadget/function/f_fs.c           |   2 +-
 drivers/vfio/vfio_iommu_spapr_tce.c          |   2 +-
 fs/exofs/sys.c                               |   2 +-
 fs/ocfs2/cluster/netdebug.c                  |   2 +-
 fs/ocfs2/cluster/tcp.c                       |   2 +-
 fs/ocfs2/dlm/dlmdebug.c                      |  12 +-
 fs/ocfs2/dlm/dlmdomain.c                     |   2 +-
 fs/ocfs2/dlm/dlmmaster.c                     |   8 +-
 fs/ocfs2/dlm/dlmunlock.c                     |   2 +-
 include/drm/drm_framebuffer.h                |   2 +-
 include/drm/ttm/ttm_bo_driver.h              |   4 +-
 include/linux/kref.h                         |   5 +
 include/linux/sunrpc/cache.h                 |   2 +-
 include/net/bluetooth/hci_core.h             |   4 +-
 include/uapi/linux/kvm.h                     |  20 +-
 net/bluetooth/6lowpan.c                      |   2 +-
 net/bluetooth/a2mp.c                         |   4 +-
 net/bluetooth/amp.c                          |   4 +-
 net/bluetooth/l2cap_core.c                   |   4 +-
 net/ceph/messenger.c                         |   4 +-
 net/ceph/osd_client.c                        |  10 +-
 net/sunrpc/cache.c                           |   2 +-
 net/sunrpc/svc_xprt.c                        |   6 +-
 net/sunrpc/xprtrdma/svc_rdma_transport.c     |   4 +-
 virt/kvm/vfio.c                              | 105 +++++++++
 79 files changed, 1130 insertions(+), 181 deletions(-)

-- 
2.7.4





More information about the kernel-team mailing list