Re: [PATCH 2/3] drivers/tty: convert tty_port to use kthread_worker

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 8, 2015 at 4:10 PM, Peter Hurley <peter@xxxxxxxxxxxxxxxxxx> wrote:
> On 06/08/2015 03:12 PM, Steven Walter wrote:
>> Use kthread_worker instead of workqueues.  For now there is only a
>> single workqueue, but the intention is to bring back the "low_latency"
>> tty option, along with a second high-priority kthread worker.
>> ---
>>  drivers/tty/tty_buffer.c | 17 +++++++++++------
>>  drivers/tty/tty_io.c     |  3 ++-
>>  drivers/tty/tty_port.c   |  2 +-
>>  include/linux/tty.h      |  5 +++--
>>  4 files changed, 17 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c
>> index ed7b5c8..4564202 100644
>> --- a/drivers/tty/tty_buffer.c
>> +++ b/drivers/tty/tty_buffer.c
>> @@ -3,6 +3,7 @@
>>   */
>>
>>  #include <linux/types.h>
>> +#include <linux/kthread.h>
>>  #include <linux/errno.h>
>>  #include <linux/tty.h>
>>  #include <linux/tty_driver.h>
>> @@ -431,7 +432,7 @@ receive_buf(struct tty_struct *tty, struct tty_buffer *head, int count)
>>   *            'consumer'
>>   */
>>
>> -static void flush_to_ldisc(struct work_struct *work)
>> +static void flush_to_ldisc(struct kthread_work *work)
>>  {
>>       struct tty_port *port = container_of(work, struct tty_port, buf.work);
>>       struct tty_bufhead *buf = &port->buf;
>> @@ -520,17 +521,21 @@ EXPORT_SYMBOL(tty_flip_buffer_push);
>>   *   Must be called before the other tty buffer functions are used.
>>   */
>>
>> +static DEFINE_KTHREAD_WORKER(tty_buffer_worker);
>
> One i/o thread for a server running 5000 containers?
> Nope.

Are you really concerned that you would need more than one full CPU's
worth of horsepower just to drive the line disciplines?  I find
that... surprising.

What might you propose instead?  I could envision creating one kthread
per CPU, but that seems heavy-weight.  Altenately, at the cost of
making the code somewhat trickier, I could continue to use workqueues
for "normal" priority ports, and only use the kthread worker for
low-latency ports.

Thoughts?
-- 
-Steven Walter <stevenrwalter@xxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux