Re: [PATCH] 8250: Hypervisors always export working 16550A UARTs.
From: Greg KH
Date: Fri Apr 29 2016 - 11:15:45 EST
On Fri, Apr 29, 2016 at 08:41:14AM +0100, Richard W.M. Jones wrote:
> On Fri, Apr 29, 2016 at 10:01:08AM +0300, Matwey V. Kornilov wrote:
> > 2016-04-29 1:18 GMT+03:00 Richard W.M. Jones <rjones@xxxxxxxxxx>:
> > > [This is an opinionated patch, mainly for discussion.]
> > >
> > > I'm trying to reduce the time taken in the kernel in initcalls, with
> > > my aim being to reduce the current ~700ms spent in initcalls before
> > > userspace, down to something like 100ms. All times on my Broadwell-U
> > > laptop, under virtualization. The purpose of this is to be able to
> > > launch VMs around containers with minimal overhead, like Intel Clear
> > > Containers, but using standard distro kernels and qemu.
> > >
> > > Currently the kernel spends 25ms inspecting the UART that we passed to
> > > it from qemu to find out whether it's an 8250/16550/16550A perhaps
> > > with a non-working FIFO or other quirks. Well, it isn't -- it's a
> > > working emulated 16550A, with a FIFO and no quirks, and if it isn't,
> > > we should fix qemu.
> > >
> > > So the patch detects if we're running virtualized (perhaps it should
> > > only check for qemu/KVM?) and if so, shortcuts the tests.
> >
> > Does anybody know, whether it is possible to pass through real
> > hardware serial port to a guest? It seems to be as simple as to pass
> > through an interrupt and memory IO ports.
>
> In theory it seems like something VFIO could do. Passing something as
> low performance as a serial port through would seem to make little
> sense though.
Multi-port serial PCI cards are not "low performance" and might be
passed through directly to a guest.
thanks,
greg k-h