Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: A set of "standard" virtual devices? | Date | Tue, 3 Apr 2007 23:51:16 +0200 |
| |
On Tuesday 03 April 2007, Jeremy Fitzhardinge wrote: > That said, something like USB is probably the best bet for this kind of > low-performance device. I think. Not that I really know anything about > USB.
USB has the disadvantage that it is more complex than PCI and requires significantly more code to simulate on the host side.
On the plus side, I think it should be possible to implement a virtual USB host on s390, which is not possible with PCI, but that again takes a lot of work to implement.
One interesting aspect of the PS3 hypervisor is that some of the low-speed interfaces are implemented as a virtual UART, meaning something that only has read and write operations and uses an interrupt for flow control. The implementation in drivers/ps3/vuart.c is probably more complex than what we want as a generic transport mechanism, but simply having a bidirectional data stream sounds like an ideal abstraction for the "simple" case. Some more or less obvious users of this include:
- console - additional tty - random - slow network (using ppp) - printer - watchdog - hid (e.g. mouse) - system management (like ps3) - fast network (in combination with shared memory segment)
The transport can be hypervisor specific, e.g. there could be a virtual PCI serial port on kvm, an hcall interface on the ps3 and a virtual CTC on s390 (kidding), while all of them can have the same kind of hardware _behind_ the serial connection.
Arnd <>< - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |