Re: XFree86/QNX SerialRead blocking change

Frank Liu <[email protected]> Mon, 25 Mar 2002 18:18:17 -0500 (EST)
Newsgroups gmane.os.qnx.openqnx.devel
Message-ID <[email protected]>
Here is an reply from a guy from MetroLink, who donated that code.
Hope it's helpful.
Frank

Date: Mon, 25 Mar 2002 18:01:11 -0500 (EST)
From: Chris Bare <[email protected]>
Reply-To: [email protected]
To: [email protected]
Subject: Re: xf-4.2, event blocking

When MetroLink donated that code, the XInput drivers we also donated
were designed to operate with the port opened in blocking mode. If you
use non-blocking, the server can chew up a lot of unnecessary CPU cycles
waiting for the incredibly slow serial input.

I recommend that he look at the implementation of the elo driver. It
could be that the VMIN and VTIME settings are not correct. VMIN is the
minimum number of bytes that must be recieved by the kernel before the
calling process will return from a read. If VMIN is set too large for
the protocol you are using it could cause this type of problem.

I wouldn't recommend making this change for all OS's, as this code has
been in use for quite a while and I'm not aware of similar complaints on
Linux etc. Perhaps it's a QNX thing, but I'd be more suspicious of the
driver.

The original code we donated also supported a config file option to set
non blocking. That would have been an easy work around, but that feature
has been removed.