mbox series

[kvmtool,00/18] Various fixes

Message ID 20200414143946.1521-1-alexandru.elisei@arm.com (mailing list archive)
Headers show
Series Various fixes | expand

Message

Alexandru Elisei April 14, 2020, 2:39 p.m. UTC
I've taken the fixes from my reassignable BARs and PCIE support series [1]
and created this series because 1. they can be taken independently and 2.
rebasing a 32 patch series was getting very tedious.

Changes from the original series:

* Gathered Reviewed-by tags. Only patch #14 "virtio: Don't ignore
  initialization failures" doesn't have one.
* The virtio net device now frees the allocated devices and the ops copy on
  failure in patch #14.

[1] https://www.spinics.net/lists/kvm/msg211272.html

Alexandru Elisei (14):
  Makefile: Use correct objcopy binary when cross-compiling for x86_64
  hw/i8042: Compile only for x86
  Remove pci-shmem device
  Check that a PCI device's memory size is power of two
  arm/pci: Advertise only PCI bus 0 in the DT
  vfio/pci: Allocate correct size for MSIX table and PBA BARs
  vfio/pci: Don't assume that only even numbered BARs are 64bit
  vfio/pci: Ignore expansion ROM BAR writes
  vfio/pci: Don't access unallocated regions
  virtio: Don't ignore initialization failures
  Don't ignore errors registering a device, ioport or mmio emulation
  hw/vesa: Don't ignore fatal errors
  hw/vesa: Set the size for BAR 0
  ioport: Fail when registering overlapping ports

Julien Thierry (3):
  ioport: pci: Move port allocations to PCI devices
  pci: Fix ioport allocation size
  virtio/pci: Make memory and IO BARs independent

Sami Mujawar (1):
  pci: Fix BAR resource sizing arbitration

 Makefile                       |   6 +-
 arm/ioport.c                   |   3 +-
 arm/pci.c                      |   2 +-
 builtin-run.c                  |   5 -
 hw/i8042.c                     |  14 +-
 hw/pci-shmem.c                 | 400 ---------------------------------
 hw/vesa.c                      |  34 ++-
 include/kvm/devices.h          |   3 +-
 include/kvm/ioport.h           |  10 +-
 include/kvm/kvm.h              |   7 +-
 include/kvm/pci-shmem.h        |  32 ---
 include/kvm/pci.h              |   4 +-
 include/kvm/util.h             |   2 +
 include/kvm/vesa.h             |   6 +-
 include/kvm/virtio.h           |   7 +-
 include/linux/compiler.h       |   2 +-
 ioport.c                       |  50 ++---
 mips/kvm.c                     |   3 +-
 pci.c                          |  59 ++++-
 powerpc/include/kvm/kvm-arch.h |   2 +-
 powerpc/ioport.c               |   3 +-
 vfio/core.c                    |   6 +-
 vfio/pci.c                     |  87 +++++--
 virtio/9p.c                    |   9 +-
 virtio/balloon.c               |  10 +-
 virtio/blk.c                   |  14 +-
 virtio/console.c               |  11 +-
 virtio/core.c                  |   9 +-
 virtio/mmio.c                  |  13 +-
 virtio/net.c                   |  45 ++--
 virtio/pci.c                   |  78 ++++---
 virtio/scsi.c                  |  14 +-
 x86/include/kvm/kvm-arch.h     |   2 +-
 x86/ioport.c                   |  66 ++++--
 34 files changed, 384 insertions(+), 634 deletions(-)
 delete mode 100644 hw/pci-shmem.c
 delete mode 100644 include/kvm/pci-shmem.h

Comments

Andre Przywara April 15, 2020, 10:54 a.m. UTC | #1
On 14/04/2020 15:39, Alexandru Elisei wrote:

Hi Will,

> I've taken the fixes from my reassignable BARs and PCIE support series [1]
> and created this series because 1. they can be taken independently and 2.
> rebasing a 32 patch series was getting very tedious.
> 
> Changes from the original series:
> 
> * Gathered Reviewed-by tags. Only patch #14 "virtio: Don't ignore
>   initialization failures" doesn't have one.

... which is fixed by now.

I compile tested every commit for arm, arm64, x86-64, i386, mips64, and
powerpc64 - no warnings at all.
I also ran a brief test on x86-64 and arm64.

So I would very much recommend this series being merged now.

If you need any further help or tests, please let me know.

Cheers,
Andre


> * The virtio net device now frees the allocated devices and the ops copy on
>   failure in patch #14.
> 
> [1] https://www.spinics.net/lists/kvm/msg211272.html
> 
> Alexandru Elisei (14):
>   Makefile: Use correct objcopy binary when cross-compiling for x86_64
>   hw/i8042: Compile only for x86
>   Remove pci-shmem device
>   Check that a PCI device's memory size is power of two
>   arm/pci: Advertise only PCI bus 0 in the DT
>   vfio/pci: Allocate correct size for MSIX table and PBA BARs
>   vfio/pci: Don't assume that only even numbered BARs are 64bit
>   vfio/pci: Ignore expansion ROM BAR writes
>   vfio/pci: Don't access unallocated regions
>   virtio: Don't ignore initialization failures
>   Don't ignore errors registering a device, ioport or mmio emulation
>   hw/vesa: Don't ignore fatal errors
>   hw/vesa: Set the size for BAR 0
>   ioport: Fail when registering overlapping ports
> 
> Julien Thierry (3):
>   ioport: pci: Move port allocations to PCI devices
>   pci: Fix ioport allocation size
>   virtio/pci: Make memory and IO BARs independent
> 
> Sami Mujawar (1):
>   pci: Fix BAR resource sizing arbitration
> 
>  Makefile                       |   6 +-
>  arm/ioport.c                   |   3 +-
>  arm/pci.c                      |   2 +-
>  builtin-run.c                  |   5 -
>  hw/i8042.c                     |  14 +-
>  hw/pci-shmem.c                 | 400 ---------------------------------
>  hw/vesa.c                      |  34 ++-
>  include/kvm/devices.h          |   3 +-
>  include/kvm/ioport.h           |  10 +-
>  include/kvm/kvm.h              |   7 +-
>  include/kvm/pci-shmem.h        |  32 ---
>  include/kvm/pci.h              |   4 +-
>  include/kvm/util.h             |   2 +
>  include/kvm/vesa.h             |   6 +-
>  include/kvm/virtio.h           |   7 +-
>  include/linux/compiler.h       |   2 +-
>  ioport.c                       |  50 ++---
>  mips/kvm.c                     |   3 +-
>  pci.c                          |  59 ++++-
>  powerpc/include/kvm/kvm-arch.h |   2 +-
>  powerpc/ioport.c               |   3 +-
>  vfio/core.c                    |   6 +-
>  vfio/pci.c                     |  87 +++++--
>  virtio/9p.c                    |   9 +-
>  virtio/balloon.c               |  10 +-
>  virtio/blk.c                   |  14 +-
>  virtio/console.c               |  11 +-
>  virtio/core.c                  |   9 +-
>  virtio/mmio.c                  |  13 +-
>  virtio/net.c                   |  45 ++--
>  virtio/pci.c                   |  78 ++++---
>  virtio/scsi.c                  |  14 +-
>  x86/include/kvm/kvm-arch.h     |   2 +-
>  x86/ioport.c                   |  66 ++++--
>  34 files changed, 384 insertions(+), 634 deletions(-)
>  delete mode 100644 hw/pci-shmem.c
>  delete mode 100644 include/kvm/pci-shmem.h
>
Will Deacon April 15, 2020, 3:44 p.m. UTC | #2
On Tue, Apr 14, 2020 at 03:39:28PM +0100, Alexandru Elisei wrote:
> I've taken the fixes from my reassignable BARs and PCIE support series [1]
> and created this series because 1. they can be taken independently and 2.
> rebasing a 32 patch series was getting very tedious.
> 
> Changes from the original series:
> 
> * Gathered Reviewed-by tags. Only patch #14 "virtio: Don't ignore
>   initialization failures" doesn't have one.
> * The virtio net device now frees the allocated devices and the ops copy on
>   failure in patch #14.
> 
> [1] https://www.spinics.net/lists/kvm/msg211272.html

Thanks! Applied the lot, with Andre's Reviewed-by added to patch 14.

I'm not able to test device passthrough at the moment, but I assume you 
did? I once had ideas about sticking the virtio devices on a separate PCI
bus from the passthrough devices, so we'll need to revert the change to
the "bus range" property if we ever decide to do that.

Will
Alexandru Elisei April 15, 2020, 3:52 p.m. UTC | #3
Hi Will,

On 4/15/20 4:44 PM, Will Deacon wrote:
> On Tue, Apr 14, 2020 at 03:39:28PM +0100, Alexandru Elisei wrote:
>> I've taken the fixes from my reassignable BARs and PCIE support series [1]
>> and created this series because 1. they can be taken independently and 2.
>> rebasing a 32 patch series was getting very tedious.
>>
>> Changes from the original series:
>>
>> * Gathered Reviewed-by tags. Only patch #14 "virtio: Don't ignore
>>   initialization failures" doesn't have one.
>> * The virtio net device now frees the allocated devices and the ops copy on
>>   failure in patch #14.
>>
>> [1] https://www.spinics.net/lists/kvm/msg211272.html
> Thanks! Applied the lot, with Andre's Reviewed-by added to patch 14.
>
> I'm not able to test device passthrough at the moment, but I assume you 
> did? I once had ideas about sticking the virtio devices on a separate PCI
> bus from the passthrough devices, so we'll need to revert the change to
> the "bus range" property if we ever decide to do that.

Many thanks for merging the series!

The changes from the reassignable BARs and PCIE support series were minimal, so I
didn't do any passthrough testing for the standalone fixes (but I did test vesa
with sdl and vnc on x86 and virtio-pci on arm64). However, I did try passthrough
for all the devices that I could get my hands on for the reassignable BARs on
arm64 and x86 (the exact devices that I used are mentioned in the cover letter
[1]) and everything was working fine.

[1] https://www.spinics.net/lists/kvm/msg211272.html

Thanks,
Alex
>
> Will