Re: Powertop shows events/0 waking at high rate due to ptys

From: Jeremy Fitzhardinge
Date: Mon Sep 27 2010 - 20:27:51 EST


On 09/27/2010 11:15 AM, Alan Cox wrote:
> Really the line discipline should wake the work queue when it sets
> tty->receive_room non-zero, but while only n_tty currently uses that
> facility the existing code doesn't do it in any kind of race-free manner
> and sometimes is only saved by the polling picking it up.
>
> It's all really just a symptom of the fact that input and output buffers
> shouldn't be attached to the tty in the first place but to a struct
> representing the physical port. Fix that and the race conditions in
> serial output go away, as do the potential crashes and this wakeup stuff
> as well as a ton of locking in the irq/tx/rx paths. In several cases it
> also saves you an entire copy.
>
> Unfortunately while I got the tty port structures into lots of places
> needed the job never gone done.

OK, so it sounds like there's a basic design problem here which will
need some non-trivial work to fix. In the meantime we'll need to look
at doing something to work around the issue, since it ends up consuming
a non-trivial amount of CPU in events/0. I guess reducing HZ would be
the first, simplest thing to do, but changing xenconsoled to avoid
writing to readerless ptys might not be too hard.

Thanks,
J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/