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

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@athlon1100>
> Content-Transfer-Encoding: 7BIT
> Priority: normal
> References: <3BF6A116.CF8A6105@OARcorp.com>
> To: "Fernando RUIZ CASAS \EE-mail\"" <fernando.ruiz@ctv.es>,
> 	<fernando.ruiz@ctv.es>
> Delivered-To: fernando-ruiz.com%correo@fernando-ruiz.com
> Delivered-To: mailing list rtems-users@oarcorp.com
> Cc: "'Fernando RUIZ CASAS \EE-mail\''" <fernando.ruiz@ctv.es>,
> 	"'RTEMS List'" <rtems-users@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@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@imd-systems.de>
> Organization: IMD
> Return-Path: <rtems-users-return-3870-correo=fernando-ruiz.com@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@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@fenando-ruiz.com
> > work:fernando.ruiz@ctv.es
> > 
> > -----Mensaje original-----
> > De: Joel Sherrill [mailto:joel.sherrill@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@fenando-ruiz.com
> > > > work:fernando.ruiz@ctv.es
> > > >
> > > > -----Mensaje original-----
> > > > De: till@MAILBOX.SLAC.Stanford.EDU
> > > > [mailto:till@MAILBOX.SLAC.Stanford.EDU]En nombre de Till 
> Straumann
> > > > Enviado el: viernes, 16 de noviembre de 2001 2:26
> > > > Para: RTEMS List; joel.sherrill@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@MAILBOX.SLAC.Stanford.EDU
> > > > [mailto:till@MAILBOX.SLAC.Stanford.EDU]En nombre de Till 
> Straumann
> > > > Enviado el: viernes, 16 de noviembre de 2001 2:26
> > > > Para: RTEMS List; joel.sherrill@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@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@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

