Skip to contentSkip to conversation

tty breakage in X (Was: tty vs workqueue oddities)

DISCUSSION Milton Miller 1 participant 1 message Jun 3, 2011

lore
Share & tools
lore
#0 lore raw

[not on list so made up cc list]

Quoted 11 lines · Linus
Quoted 4 lines · Benjamin Herrenschmidt

So I think my theory stands that flush_to_ldisc constantly reschedule itself causing the worker thread to eat all CPU and starve the consumer of the PTY. I won't have time to dig much deeper today nor probably this week-end so I'm sending this email for others who want to look.

Gaah - that commit is total and utter crap.

I *removed* the whole "reschedule the work queue again" crap. It was totally wrong. See commit a5660b41af6a.

Quoted 6 lines

But then commit b1c43f82c5aa added the crap right back in.

So does it all work if you just remove the broken schedule_work() line from flush_to_ldisc?

Otherwise we'll need to just revert it. The commit is clearly totally broken.

Its further broken in that the recieve_buf functions return -ERRORS but the callers don't check for negative values.

milton