svn commit: r355301 - head/usr.sbin/bhyve

Rodney W. Grimes freebsd at gndrsh.dnsmgr.net
Tue Dec 3 15:24:10 UTC 2019


> On Mon, 2019-12-02 at 23:22 -0800, Rodney W. Grimes wrote:
> > > On Mon, 2019-12-02 at 20:51 +0000, Vincenzo Maffione wrote:
> > > > Author: vmaffione
> > > > Date: Mon Dec  2 20:51:46 2019
> > > > New Revision: 355301
> > > > URL: https://svnweb.freebsd.org/changeset/base/355301
> > > > 
> > > > Log:
> > > >   bhyve: uniform printf format string newlines
> > > >   
> > > >   Some of the printf statements only use LF to get a newline.
> > > > However, a CR character is also required for the serial console to
> > > > print debug logs in a nice way.
> > > >   Fix those code locations that only use LF, by adding a CR
> > > > character.
> > > >   
> > > >   Reviewed by:	markj, aleksandr.fedorov at itglobal.com
> > > >   MFC after:	1 week
> > > >   Differential Revision:	https://reviews.freebsd.org/D22552
> > > > 
> > > > Modified:
> > > >   head/usr.sbin/bhyve/audio.c
> > > >   head/usr.sbin/bhyve/hda_codec.c
> > > >   head/usr.sbin/bhyve/net_backends.c
> > > >   head/usr.sbin/bhyve/pci_ahci.c
> > > >   head/usr.sbin/bhyve/pci_e82545.c
> > > >   head/usr.sbin/bhyve/pci_hda.c
> > > >   head/usr.sbin/bhyve/pci_nvme.c
> > > >   head/usr.sbin/bhyve/pci_virtio_block.c
> > > >   head/usr.sbin/bhyve/pci_virtio_console.c
> > > >   head/usr.sbin/bhyve/pci_virtio_net.c
> > > >   head/usr.sbin/bhyve/pci_virtio_rnd.c
> > > >   head/usr.sbin/bhyve/pci_virtio_scsi.c
> > > >   head/usr.sbin/bhyve/pci_xhci.c
> > > >   head/usr.sbin/bhyve/rfb.c
> > > > 
> > > 
> > > These changes seem wrong in a couple ways...
> > > 
> > >  - Lines are terminated by linefeeds in unix-like systems.  If
> > > linefeeds need to be translated to include carriage returns, that's the
> > > responsibility of the terminal/line-discipline layer, not the source
> > > strings being printed.
> > 
> > Fully agree, this change seems wrong to me for Ian's stated reason here.
> > 
> > > 
> > >  - The sequence \n\r is very strange.  For systems that do prefer
> > > carriage returns, the \r always comes before the \n (or stands alone on
> > > Mac systems), not after.
> > > 
> > > I have a feeling that the root of this is something like "lots of
> > > people use bhyve for Windows, so they use Windows apps to look at logs,
> > > so the logs should be formatted for Windows."  If that's the reasoning,
> > > then why shouldn't we convert EVERY printf in the source base to
> > > include carriage returns, just in case a windows user wants to browse a
> > > log file?
> > 
> > This is not that issue, it is something going on with the line
> > discipline when using the bhyve console device.  I believe the
> > line displine being different from what bhyve itself is expecting
> > so when console output is intermixed with output from bhyve itself
> > things go wrong.
> > 
> > The printf's in this patch are coming from the bhyve process that
> > has a fd open to the launching tty, the line discipline on that tty
> > is changed to something different after you open the
> > console device from that same controlling tty, or that is my hypothosis
> > on what is going wrong.
> 
> There is a cfmakeraw() call in usr.sbin/bhyve/consport.c; that would
> definitely turn off nl->crnl translations.  I think that is the other
> end of the bhyve console that I posted a patch for yesterday, and I
> think the console driver is probably still the right place to do that
> translation (because other console drivers do it that way).  But I'm
> not set up to run bhyve here, so I can't test my theory.

If no body gets it done by the time I return to Portland I'll test
your patch to see if it fixes the issues I have seen with use of
the console and bhyve mixing output.

> -- Ian
-- 
Rod Grimes                                                 rgrimes at freebsd.org


More information about the svn-src-head mailing list