Re: [PATCH kvmtool 1/1] riscv: pci: Add --force-pci option for riscv VMs.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 19 Jan 2023 13:39:32 +0000
Alexandru Elisei <alexandru.elisei@xxxxxxx> wrote:

Hi Alex,

> CC'ing the kvmtool maintainers and other people that might be interested in this
> thread. Sorry for hijacking your patch!
> 
> On Wed, Jan 18, 2023 at 05:20:07PM +0000, Rajnesh Kanwal wrote:
> > Adding force-pci option to allow forcing virtio
> > devices to use pci as the default transport.  
> 
> arm is in the same situation, MMIO is the default virtio transport. I was bitten
> by that in the past. It also cought other people unaware, and I remember maz
> complaining about it on the list.
> 
> So I was thinking about adding a new command line parameter, --virtio-transport,
> with the possible values mmio-legacy, mmio, pci-legacy and pci. Then each
> architecture can define the default value for the transport. For arm, that would
> be pci.
> 
> What do you guys think?

That sounds good to me, definitely much better than proliferating the
force-pci parameter, which is a bit of a misnomer anyway.

I also heard people recently asking explicitly for MMIO transport,
since it's leaner and you can remove PCI support from the guest kernel
entirely. So giving the user explicit choice is probably the way to go.

Cheers,
Andre

> > Signed-off-by: Rajnesh Kanwal <rkanwal@xxxxxxxxxxxx>
> > ---
> >  riscv/include/kvm/kvm-arch.h        | 6 ++++--
> >  riscv/include/kvm/kvm-config-arch.h | 7 ++++++-
> >  2 files changed, 10 insertions(+), 3 deletions(-)
> > 
> > diff --git a/riscv/include/kvm/kvm-arch.h b/riscv/include/kvm/kvm-arch.h
> > index 1e130f5..2cf41c5 100644
> > --- a/riscv/include/kvm/kvm-arch.h
> > +++ b/riscv/include/kvm/kvm-arch.h
> > @@ -46,8 +46,10 @@
> >  
> >  #define KVM_VM_TYPE		0
> >  
> > -#define VIRTIO_DEFAULT_TRANS(kvm) \
> > -	((kvm)->cfg.virtio_legacy ? VIRTIO_MMIO_LEGACY : VIRTIO_MMIO)
> > +#define VIRTIO_DEFAULT_TRANS(kvm)					\
> > +	((kvm)->cfg.arch.virtio_trans_pci ?				\
> > +	 ((kvm)->cfg.virtio_legacy ? VIRTIO_PCI_LEGACY : VIRTIO_PCI) :	\
> > +	 ((kvm)->cfg.virtio_legacy ? VIRTIO_MMIO_LEGACY : VIRTIO_MMIO))
> >  
> >  #define VIRTIO_RING_ENDIAN	VIRTIO_ENDIAN_LE
> >  
> > diff --git a/riscv/include/kvm/kvm-config-arch.h b/riscv/include/kvm/kvm-config-arch.h
> > index 188125c..901a5e0 100644
> > --- a/riscv/include/kvm/kvm-config-arch.h
> > +++ b/riscv/include/kvm/kvm-config-arch.h
> > @@ -6,6 +6,7 @@
> >  struct kvm_config_arch {
> >  	const char	*dump_dtb_filename;
> >  	bool		ext_disabled[KVM_RISCV_ISA_EXT_MAX];
> > +	bool		virtio_trans_pci;
> >  };
> >  
> >  #define OPT_ARCH_RUN(pfx, cfg)						\
> > @@ -26,6 +27,10 @@ struct kvm_config_arch {
> >  		    "Disable Zicbom Extension"),			\
> >  	OPT_BOOLEAN('\0', "disable-zihintpause",			\
> >  		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZIHINTPAUSE],\
> > -		    "Disable Zihintpause Extension"),
> > +		    "Disable Zihintpause Extension"),			\
> > +	OPT_BOOLEAN('\0', "force-pci",					\
> > +			&(cfg)->virtio_trans_pci,			\
> > +		    "Force virtio devices to use PCI as their "		\
> > +		    "default transport"),
> >  
> >  #endif /* KVM__KVM_CONFIG_ARCH_H */
> > -- 
> > 2.25.1
> >   




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux