Re: [PATCH 03/18] tty: Simplify tty buffer/ldisc interface with helper function
From: Ilya Zykov <hidden>
Date: 2013-03-20 12:47:17
Also in:
lkml
From: Ilya Zykov <hidden>
Date: 2013-03-20 12:47:17
Also in:
lkml
quoted
I have little question about flush_to_ldisc(). Does can it be multithreaded? I think yes, because on SMP schedule_work() can work on different CPU paralleled.Yes, the same work item can now run in parallel on SMP since Tejun Heo re-did the workqueue implementation on 2.6.36 [Stefan Richter, the firewire maintainer, recently explained this history to me].
About multi threaded delayed works: In many cases tty layer needs single threaded delayed work for each tty instance. I propose discussion about create for this purpose (tty layer)'s workqueue with WQ_NON_REENTRANT flag. And use it instead common schedule_work()'s workqueue - system_wq. I don't know how expensive(for system resource and CPU) it can be, but for tty layer, it can be very useful.
quoted
What do you think about this race condition? https://lkml.org/lkml/2011/11/7/98Yes, that is a possible race condition that could lead to some nasty results. Good find. If you want, I could bring that patch into this patchset or you could re-submit that patch to Greg and I could rebase this patchset on top of that.
Peter, Please, do it anywhere you consider possible, I can't do it myself now. Thank you, Ilya.