Re: [PATCH 1/3] RFC: Solved unnecessary schedule latency in the TTY layer (1/3)

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

 



> Note: In a PREEMPT_RT system "normal" spin locks behave like mutexes
> and no interrupts (and therefor no scheduling) is disabled.
> 
> Signed-off-by: Ivo Sieben <meltedpianoman@xxxxxxxxx>

(Coming back round to these patches now the urgent stuff is buried for
a bit)

>  void tty_schedule_flip(struct tty_struct *tty)
>  {
> -	unsigned long flags;
> -	spin_lock_irqsave(&tty->buf.lock, flags);
> -	if (tty->buf.tail != NULL)
> -		tty->buf.tail->commit = tty->buf.tail->used;
> -	spin_unlock_irqrestore(&tty->buf.lock, flags);
> -	schedule_work(&tty->buf.work);
> +	tty_flip_buffer_push(tty);
>  }

You'd need to ifdef both of these for non RT cases. I think it may be
right for RT although I'm not 100% sure on the locking.

At this point I think we'd be better off sorting out our tty locking in
general before tackling RT optimisations. However as an RT patch it
looks good and its interesting to see RT simplifying code not making it
more complex.
--
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