Re: [PATCH] hvc_console: returning 0 from put_chars is not an error

Benjamin Herrenschmidt
2009-10-16T04:47:53Z

On Thu, 2009-10-15 at 13:57 -0500, Scott Wood wrote:
> I'd say the dropping approach is quite undesirable (significant
> potential for output loss unless the buffer is huge), unless there's
> simply no way to safely spin. Hopefully there are no such backends, but
> if there are perhaps we can have them return some special code to
> indicate that.

Should never spin. Best is to keep a copy in the upper layer of the
pending data and throttle (not accept further data from tty layer) until
we have managed to flush out that "pending" buffer.

> > If we just busy loop, it actually does not matter how we let hvc_console react
> > on 0, as long as we adopt all backends to use that interface consistent.
> >
> > On the other hand, backends might want to do special magic on congestion so I
> > personally tend to let the backend loop instead of hvc_console. But I am really
> > not sure.
>
> Doing it in the backend requires the backend to know whether it's being
> called for printk or for user I/O. In the latter case, we don't want to
> spin, but rather wait for an IRQ (or poll with a timer if there's no IRQ).

Ben.