[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/4] xen/console: Properly buffer domU output when using CONSOLEIO_write
On Tue, Apr 02, 2019 at 05:42:35PM +0100, Julien Grall wrote: > The output will be buffered if the buffer provided by the DomU does not > contain a newline. This can also happen if buffer provided by DomU is > split in multiple part (Xen can only process 127 characters at the time). > > As Xen will remove any non-printable characters, the output buffer may > be smaller than the buffer provided. However, Xen will buffer using the > original length. This means that the NUL character and garbagge will be > copied in the internal buffer. > > Once the newline is found or the internal buffer is full, only part of > the internal buffer will end up to be printed. > > An easy way to reproduce it is: > > HYPERVISOR_consoleio(CONSOLEIO_write, "\33", 1); > HYPERVISOR_consoleio(CONSOLEIO_write, "d", 1); > HYPERVISOR_consoleio(CONSOLEIO_write, "\n", 1); > > In the current code, the character 'd' will not be printed. > > This problem can be solved by computing the size of the output buffer > (i.e the buffer without the non-printable characters). > > Signed-off-by: Julien Grall <julien.grall@xxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |