tty breakage in X (Was: tty vs workqueue oddities)
[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_ldiscconstantly 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
b1c43f82c5aaadded the crap right back in.So does it all work if you just remove the broken
schedule_work()line fromflush_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