[PATCH v5 13/13] tty: gunyah: Add tty console driver for RM Console Services

Elliot Berman quic_eberman at quicinc.com
Tue Oct 11 15:04:47 PDT 2022



On 10/11/2022 4:09 AM, Arnd Bergmann wrote:
> On Tue, Oct 11, 2022, at 8:02 AM, Jiri Slaby wrote:
>> On 11. 10. 22, 2:08, Elliot Berman wrote:
>>> +
>>> +	/* below are for printk console.
>>> +	 * gh_rm_console_* calls will sleep and console_write can be called from
>>> +	 * atomic ctx. Two xmit buffers are used. The active buffer is tracked with
>>> +	 * co_xmit_idx. Writes go into the co_xmit_buf[co_xmit_idx] buffer.
>>> +	 * A work is scheduled to flush the bytes. The work will swap the active buffer
>>> +	 * and write out the other buffer.
>>> +	 */
>>
>> Ugh, why? This is too ugly and unnecessary. What about passing the kfifo
>> to gh_rm_console_write() instead? You do memcpy() there anyway.
> 
> Another problem here is that you really want the console output to be
> printed from atomic context, otherwise one would never see e.g. the
> output of a panic() call. Having a deferred write is probably fine for
> normal tty operations, but you probably want a different device for the
> console here, e.g. the hvc_dcc driver.
> 

Yes, that is our perspective on the RM console driver as well. I'll make 
this more explicit in the Kconfig/commit text. We expect most VMs 
(especially Linux) to use some other console mechanism provided by their 
VMM. I'm submitting here because we are presently using RM console on 
some of our VMs where we have other ways to collects logs on panic. It 
also makes it easier to implement a simple virtual machine manager that 
does not want to virtualize a serial device or have a virtio stack.

Thanks,
Elliot



More information about the linux-arm-kernel mailing list