Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Mar 2004 10:41:26 -0500
From:      John Ackermann N8UR <jra@febo.com>
To:        freebsd-questions@freebsd.org
Subject:   SIO flags -- setting and checking
Message-ID:  <405DB7A6.6000508@febo.com>

next in thread | raw e-mail | index | archive | help
Hi --

I am running FreeBSD 4.9 on a system whose sole purpose in life is to be an NTP time server.  It has two reference clocks attached that communicate via serial ports.  I've built my own kernel to incorporate the "PPS" API and kernel timekeeping discipline (no patches of my own; just enabling options).

To get maximum performance from these clocks, it's important to minimize the jitter in the serial data stream.  To do that, I've also modified the kernel options to set flags 0x02 (disable FIFO) on the two sio ports that talk to my clocks; this lowers jitter by letting the characters get out of the UART one at a time, rather than in bunches.

I am getting the expected results on one of the serial ports and one of the clocks, but the other port is not showing the performance I would expect.  Therefore, I'm trying to troubleshoot (and by the way, when I'm finished this info is going into the NTP Wiki which serves as an FAQ).

I have three questions:

First, on a 4.9 system is there a way to change the sio flags short of rebuilding the kernel?  I know there's a mechanism for 5.0, but I haven't been able to figure out if there's an easier way for my system.

Second, is there a way short of looking at the kernel configuration files to tell what flags are actually set on an sio port?

Third, is there any other tweaking that might improve the jitter in the serial data stream.  Note that actual latency isn't a problem as I can compensate for that, but smoothness of the data flow is the key thing.  Buffers are bad for this application!

Thanks!

John Ackermann
jra@febo.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?405DB7A6.6000508>