bug-hurd
[Top][All Lists]
Advanced

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

Re: [patch] fixed serial handling in gnumach


From: Marcus Brinkmann
Subject: Re: [patch] fixed serial handling in gnumach
Date: Fri, 4 Jan 2002 06:06:28 +0100
User-agent: Mutt/1.3.24i

On Fri, Oct 19, 2001 at 09:44:28PM +0200, Diego Roversi wrote:
> Hi,
> 
>   I finally fixed gnumach so it can handle sustained transfert on serial
> port at higher speed. On my PC works great so I'm posting the patch for any
> brave guys who want test it on their PC.

I have gotten as far as reproducing the problem, and will soon try your fix.
However, it seems to me that even if it fixes the symptoms, we should have a
better understanding of the code before we checking something in.

The whole thing is a timing issue.  Somehow the current timing makes it that
characters are dropped at high speeds.  Maybe the data comes in faster than
the input queue can be flushed when the watermark is reached.  This seems to
me to have the effect of dropping characters.  Lowering the watermark would
cause to flush the buffer more frequently, so the characters that come in
between two flushes all have room.

I want to do some careful code peeking and some calculations that
involve how fast the bytes appear and the size of the buffer.  Also I want
to make a comparison to the way the queues are handled on BSD and Linux
kernels.  I guess we are probably not going to bother to fix gnumach
properly unless it is easy to do so, but just apply your patch to make it
work, and then make sure that oskit-mach will be proper when it gets serial
drivers.  But anyway, I think we should not miss the chance to learn
something about queue handling for serial lines here.

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de



reply via email to

[Prev in Thread] Current Thread [Next in Thread]