On Thu, 2023-11-09 at 19:34 +0800, Stefan Hajnoczi wrote:
> On Thu, 9 Nov 2023 at 19:10, David Woodhouse <dw...@infradead.org> wrote:
> > 
> > On Tue, 2023-11-07 at 14:15 +0400, marcandre.lur...@redhat.com wrote:
> > > From: Marc-André Lureau <marcandre.lur...@redhat.com>
> > > 
> > > If a display is backed by a specialized VC, allow to override the
> > > default "vc:80Cx24C".
> > > 
> > > As suggested by Paolo, if the display doesn't implement a VC (get_vc()
> > > returns NULL), use a fallback that will use a muxed console on stdio.
> > > 
> > > This changes the behaviour of "qemu -display none", to create a muxed
> > > serial/monitor by default (on TTY & not daemonized).
> > > 
> > > Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com>
> > > Reviewed-by: Thomas Huth <th...@redhat.com>
> > 
> > Hrm. This breaks the command line documented at
> > https://qemu-project.gitlab.io/qemu/system/i386/xen.html
> > 
> >  $ ./qemu-system-x86_64 --accel 
> > kvm,xen-version=0x40011,kernel-irqchip=split \
> >     -display none -chardev stdio,mux=on,id=char0,signal=off -mon char0 \
> >     -device xen-console,chardev=char0  -drive file=${GUEST_IMAGE},if=xen
> > 
> > qemu-system-x86_64: cannot use stdio by multiple character devices
> > qemu-system-x86_64: could not connect serial device to character backend 
> > 'stdio'
> > 
> > Can we make it create a Xen console by default, instead of a serial
> > port? And/or make it *not* use stdio if something else on the command
> > line already does?
> 
> I have filed this in QEMU's bug tracker so it's not forgotten:
> https://gitlab.com/qemu-project/qemu/-/issues/1974
> 
> Here is the list of open 8.2 bugs:
> https://gitlab.com/qemu-project/qemu/-/milestones/10
> 
> Stefan

Thanks. Added a link there to the patch I just sent, along with a note
suggesting that perhaps we should go a bit further.

We're changing the QEMU behaviour in 8.2 to add these new devices using
stdio, and *failing* if something else on the command line already used
stdio.

My patch avoids adding a serial port if there's already a xen-console,
which is all well and good. But surely we shouldn't *fail* if something
else is already using stdio; we should just *not* add the new default
serial port? This might break other command lines which use stdio but
*not* for a serial port? This breaks too:

 $ ./qemu-system-x86_64 -display none -chardev stdio,id=char0
qemu-system-x86_64: cannot use stdio by multiple character devices
qemu-system-x86_64: could not connect serial device to character backend 
'mon:stdio'

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to