On Thu, Jan 20, 2022 at 06:14:07PM +0000, Daniel P. Berrangé wrote: > To me I think of <console> as exclusively reflecting a text I/O > channel targetting humans, while <serial> is a more general > purpose data channel that can be used for multiple purposes. > Either running app protocols or for plain text console I/O. > > In terms of an low level implementation isa-debugcon could be > argued to be a general purpose (unidirectional) data channel, > that is just passing arbitrary bytes. That would push towards > <serial> as a mapping > > In terms of the actual real world use cases though, isa-debugcon > is (AFAIK) only used for spewing text debugging messages aimed > at humans. That pushes towards <console> as a mapping. > > On balance I felt <console> was/is the winner. Essentially every > impl of <console> can be said to be a general purpose data > channel for passing arbitrary bytes. We choose to explicitly > distinguish <console> from <serial> based on the intended use > case of the thing. This interpretation directly contradicts our documentation, specifically https://libvirt.org/formatdomain.html#console The console element is used to represent interactive serial consoles. https://libvirt.org/formatdomain.html#relationship-between-serial-ports-and-consoles Due to historical reasons, the serial and console elements have partially overlapping scopes. In general, both elements are used to configure one or more serial consoles to be used for interacting with the guest. The main difference between the two is that serial is used for emulated, usually native, serial consoles, whereas console is used for paravirtualized ones. Now, to be completely transparent: I happen to be the one who wrote the bulk of that :) But I believe that, in doing so, I have neither inaccurately described the existing practice nor contradicted what the documentation said at the time. And at this point that text has been up on our website for 4+ years without being contested. On account of isa-debugcon being neither interactive nor paravirtualized, I feel that it should be exposed as a <serial> device rather than a <console>. -- Andrea Bolognani / Red Hat / Virtualization