Re: [PATCH v2 01/10] mailbox: Support blocking transfers in atomic context
From: Greg KH <gregkh@linuxfoundation.org>
Date: 2018-12-07 15:39:01
Also in:
linux-arm-kernel, linux-serial, linux-tegra
From: Greg KH <gregkh@linuxfoundation.org>
Date: 2018-12-07 15:39:01
Also in:
linux-arm-kernel, linux-serial, linux-tegra
On Fri, Dec 07, 2018 at 12:32:45PM +0100, Thierry Reding wrote:
Greg, any ideas on how we can move forward here? For reasons given elsewhere in this thread I understand that there is no way to make the console code run in non-atomic context. Have you ever run into a case where the console driver couldn't busy-loop? Were there any solutions to this?
I don't know of any such cases, hardware sucks at times, and we just have to deal with getting it to work by doing stuff like this :(
I've looked through quite a few drivers and they all end up with a busy loop, waiting for the transmission FIFO to become empty. There are also a few implementations for hypervisors that call back into some firmware in order to send the characters, but I expect those to do the busy looping in the firmware.
busy loops are ok here, as you point out.
Perhaps the most prominent case that I came across and that is quite similar to this discussion is netconsole. There's a lot of code in the network layer that exists only to allow using a network device for outputting a console. I don't think the changes to the mailbox framework are anywhere near as complicated.
Neither do I, I have no objection to your changes at all. thanks, greg k-h