termios+PTY=real-time killer? (was Re: Interrupt Latency on PPC)

Till Straumann strauman at SLAC.Stanford.EDU
Tue Nov 20 18:51:20 UTC 2001


Fernando RUIZ CASAS wrote:

> Well,
>  If the problem is termios this is a problem that other person must change.
>

Hmm - the PTY driver still needs to enable polled or task driven mode.
I believe it's in 'interrupt driven mode' by default (although the pty
device doesn't really generate any IRQ). Out of my head, I can't tell
which one (polled vs. task) is better suited for PTY - does anybody know?

-- Till

>
> If once this change has been made the proplem persists I can think about change the pty.c module
> in order to improve with new features.
>
> BRGDS.
>
> On Mon, 19 November 2001, "Thomas Doerfler" wrote:
>
> > In-Reply-To: <000301c170d9$4cd02c90$7c00a8c0 at athlon1100>
> > Content-Transfer-Encoding: 7BIT
> > Priority: normal
> > References: <3BF6A116.CF8A6105 at OARcorp.com>
> > To: "Fernando RUIZ CASAS \EE-mail\"" <fernando.ruiz at ctv.es>,
> >       <fernando.ruiz at ctv.es>
> > Delivered-To: fernando-ruiz.com%correo at fernando-ruiz.com
> > Delivered-To: mailing list rtems-users at oarcorp.com
> > Cc: "'Fernando RUIZ CASAS \EE-mail\''" <fernando.ruiz at ctv.es>,
> >       "'RTEMS List'" <rtems-users at oarcorp.com>
> > Received: (cpmta 12927 invoked from network); 19 Nov 2001 12:40:15 -0800
> > Received: from 208.166.120.97 (HELO www.oarcorp.com)
> >       by smtp.c007.snv.cp.net (209.228.33.204) with SMTP; 19 Nov 2001 12:40:15 -0800
> > Received: (qmail 6569 invoked by uid 330); 19 Nov 2001 19:32:41 -0000
> > Received: (qmail 6564 invoked from network); 19 Nov 2001 19:32:40 -0000
> > Received: from unknown (HELO nixe.ISAR.net) (212.14.65.1)
> >       by 0 with SMTP; 19 Nov 2001 19:32:40 -0000
> > Received: from zerberus.imd-systems.local (gate.imd-systems.de [212.14.77.47])
> > by nixe.ISAR.net (8.9.3/8.9.3/ni-2.3) with ESMTP id UAA27899;
> > Mon, 19 Nov 2001 20:31:40 +0100 (CET)
> > Received: from hauptimd (hauptimd.imd-systems.local [192.168.64.10])
> > by zerberus.imd-systems.local (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) with ESMTP id UAA17401;
> > Mon, 19 Nov 2001 20:30:55 +0100
> > Mailing-List: contact rtems-users-help at oarcorp.com; run by ezmlm
> > Content-Type: text/plain; charset=US-ASCII
> > Content-Length: 5282
> > X-Received: 19 Nov 2001 20:40:15 GMT
> > Content-Description: Mail message body
> > Subject: RE: termios+PTY=real-time killer? (was Re: Interrupt Latency on PPC)
> > From: "Thomas Doerfler" <Thomas.Doerfler at imd-systems.de>
> > Organization: IMD
> > Return-Path: <rtems-users-return-3870-correo=fernando-ruiz.com at oarcorp.com>
> > Mime-Version: 1.0
> > Date: Mon, 19 Nov 2001 20:30:35 +0100
> > X-Mailer: Pegasus Mail for Win32 (v4.0, beta 40)
> > Message-Id: <3BF96BEB.10576.67E7ED at localhost>
> >
> > Hi,
> >
> > > My own implementation (a very particular) ot PTY is a way to
> > > give to shell() a tcp/ip solution but with a standard
> > conection telnet
> > > client.
> > >
> > > I couldn't think in this kind of problems when the
> > implementation.
> >
> > I think it is the termios code that should be changed, (and
> > possibly I broke it two years ago), there is really no reason
> > to disable interrupts during polled write. I think it is easy
> > to check, whether the device is working polled and skip irq
> > blocking then. Please not that for task-driven mode, some irq
> > disables may still be needed.
> >
> > I won't find time to change this before the next weekend, so
> > if the problem is urgent, maybe someone else could try to
> > solve it?
> >
> > Bye,
> >     Thomas.
> >
> > >
> > > Fernando RUIZ CASAS
> > > home:correo at fenando-ruiz.com
> > > work:fernando.ruiz at ctv.es
> > >
> > > -----Mensaje original-----
> > > De: Joel Sherrill [mailto:joel.sherrill at oarcorp.com]
> > > Enviado el: sabado, 17 de noviembre de 2001 18:41
> > > Para: Till Straumann
> > > CC: Fernando RUIZ CASAS (E-mail); 'RTEMS List'
> > > Asunto: Re: termios+PTY=real-time killer? (was Re: Interrupt
> > Latency on
> > > PPC)
> > >
> > >
> > >
> > >
> > > Till Straumann wrote:
> > > >
> > > > "Fernando RUIZ CASAS (E-mail)" wrote:
> > > >
> > > > > Hi.
> > > > >  Is the PTY driver the pty.c file placed close to
> > telnetd.c?
> > > > >
> > > > >  This pty driver doesn't make any special thing with
> > termios.
> > > > >  If the tcp/ip works fine the driver also.
> > > > >
> > > >
> > > > We are talking about the very one. I agree, pty.c does not
> > do anything
> > > > special. However, termios [under some circumstances] calls
> > > > pty's pollWrite() function with _Interrupts_disabled_:
> > > >
> > > >   rtems_interrupt_disable(level);
> > > >   ...
> > > >   tty->device.write(...);
> > > >   ...
> > > >   rtems_interrupt_enable(level);
> > > >
> > > > Because PTY's pollWrite() does socket/IO, I guess it could
> > even
> > > > block! - Or am I missing something?
> > > >
> > > > I suppose that termios could relax its interrupt-disabling
> > policy
> > > > in task driven mode. PTY should then probably be run in
> > task
> > > > driven or polled mode.
> > >
> > > Another more general solution may be for there to be a PTY
> > > server that processes requests.  I don't know if having
> > > a single task to do all PTY requests is good or bad though.
> > >
> > > I have a couple of more general questions.
> > >
> > >   + Does this mean that the PTY  is doing socket IO inside
> > >     an interrupt?  If so, I suspect this is very dangerous.
> > >     Eric Norum should comment.
> > >   + Is the interrupt disable necessary in general?
> > >
> > > > -- Till
> > > >
> > > > >
> > > > > Perhaps I'm speaking about other oignons.
> > > > >
> > > > > Fernando RUIZ CASAS
> > > > > home:correo at fenando-ruiz.com
> > > > > work:fernando.ruiz at ctv.es
> > > > >
> > > > > -----Mensaje original-----
> > > > > De: till at MAILBOX.SLAC.Stanford.EDU
> > > > > [mailto:till at MAILBOX.SLAC.Stanford.EDU]En nombre de Till
> > Straumann
> > > > > Enviado el: viernes, 16 de noviembre de 2001 2:26
> > > > > Para: RTEMS List; joel.sherrill at oarcorp.com
> > > > > Asunto: Re: Interrupt Latency on PPC
> > > > >
> > > > > Things get _really_ bad when the PTY driver is
> > > > > heavily used. I measured IRQ latencies of ~200us
> > > > > during quite short measurement intervals (remember,
> > > > > we're doing statistics here). This is in the order of
> > > > > 100 times the average.
> > > > >
> > > > > I guess that the problem is caused by termios.c
> > > > > which under some circumstances calls the
> > > > > device's 'write' callback with _IRQs_disabled_.
> > > > > The PTY driver's write callback is a
> > > > >
> > > > > write(socket,...)
> > > > >
> > > > > outchh!
> > > > >
> > > > > Is there a termios expert out there who could explain
> > > > > to me what really needs to be protected from interrupts?
> > > > >
> > > > > Also, shouldn't the PTY driver run in task driven
> > > > > (as opposed to the current IRQ driven) mode?
> > > > >
> > > > > -----Mensaje original-----
> > > > > De: till at MAILBOX.SLAC.Stanford.EDU
> > > > > [mailto:till at MAILBOX.SLAC.Stanford.EDU]En nombre de Till
> > Straumann
> > > > > Enviado el: viernes, 16 de noviembre de 2001 2:26
> > > > > Para: RTEMS List; joel.sherrill at oarcorp.com
> > > > > Asunto: Re: Interrupt Latency on PPC
> > > > >
> > > > > Things get _really_ bad when the PTY driver is
> > > > > heavily used. I measured IRQ latencies of ~200us
> > > > > during quite short measurement intervals (remember,
> > > > > we're doing statistics here). This is in the order of
> > > > > 100 times the average.
> > > > >
> > > > > I guess that the problem is caused by termios.c
> > > > > which under some circumstances calls the
> > > > > device's 'write' callback with _IRQs_disabled_.
> > > > > The PTY driver's write callback is a
> > > > >
> > > > > write(socket,...)
> > > > >
> > > > > outchh!
> > > > >
> > > > > Is there a termios expert out there who could explain
> > > > > to me what really needs to be protected from interrupts?
> > > > >
> > > > > Also, shouldn't the PTY driver run in task driven
> > > > > (as opposed to the current IRQ driven) mode?
> > > > >
> > > > > -- Till.
> > >
> > > --
> > > Joel Sherrill, Ph.D.             Director of Research &
> > Development
> > > joel at OARcorp.com                 On-Line Applications
> > Research
> > > Ask me about RTEMS: a free RTOS  Huntsville AL 35805
> > >    Support Available             (256) 722-9985
> >
> > --------------------------------------------
> > IMD Ingenieurbuero fuer Microcomputertechnik
> > Thomas Doerfler           Herbststrasse 8
> > D-82178 Puchheim          Germany
> > email:    Thomas.Doerfler at imd-systems.de
> > PGP public key available at: http://www.imd-
> > systems.de/pgp_key.htm
>
> =================================
> Fernando RUIZ CASAS
> =================================
> http://www.fernando-ruiz.com
> mailto://correo@fernando-ruiz.com
> Tel.Mov:+34-659238416




More information about the users mailing list