[Zesty][PATCH v2 00/11] Cherry pick - KVM fix for Power9 - HWE

Jose Ricardo Ziviani joserz at linux.vnet.ibm.com
Fri Jul 21 15:50:33 UTC 2017


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

V2:
 - Cherry-picked with -x -s + added Buglink
 - Rebased on top of zesty/master-next and updated the bug to affect linux-hwe
 - Removed those MIPS/S390 patches from V1 and resolved the conflict of 4898d3f to avoid custom commit
 - Re-compiled in both x86 and Power9 LE, re-tested in Power9 LE

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 it wasn't possible to perform a clean cherry-pick, a small conflict resolution was required in order to apply one of them.

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)
    - small conflict resolved in include/uapi/linux/kvm.h because changes from
      MIPS and S390 have added #defines before it.

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)

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

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/devices/vfio.txt   |  18 +-
 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                   |   2 +
 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 +-
 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                     |   7 +
 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 +++++++++
 74 files changed, 996 insertions(+), 175 deletions(-)

-- 
2.7.4





More information about the kernel-team mailing list