From owner-cvs-all Mon Dec 24 2:19:24 2001 Delivered-To: cvs-all@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 8539937B41B; Mon, 24 Dec 2001 02:19:17 -0800 (PST) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id fBOAJDO05785; Mon, 24 Dec 2001 02:19:13 -0800 (PST) (envelope-from dillon) Date: Mon, 24 Dec 2001 02:19:13 -0800 (PST) From: Matthew Dillon Message-Id: <200112241019.fBOAJDO05785@apollo.backplane.com> To: Poul-Henning Kamp Cc: Peter Jeremy , David Greenman , Bruce Evans , Mike Silbersack , cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/dev/sio sio.c References: <83382.1009180276@critter.freebsd.dk> Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG :a target, measuring the spread means looking at how close the holes :are on a blank sheet target. : :Very few people have hardware that allows them to see where the :bulls-eye actually is. (Cost ~= USD1000). : :-- :Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 :phk@FreeBSD.ORG | TCP/IP since RFC 956 :FreeBSD committer | BSD since 4.3-tahoe All you need to measure interrupt latency is a cheap oscilliscope. About $60. If the interrupt rate is high enough (11KHz is plenty high enough, IMHO) you can figure the spread out by eye just by looking at the scope. You trigger the scope on the start bit and adjust the timing so the retrigger doesn't occur in the middle of a character, and you poke a value into the paralell port in the interrupt service routine and tie that into the second channel. Poof, instant latency, jitter & spread measurement. In anycase, the difference between MEDH and HIGH is that MEDH gives us 8 character times of slop before the FIFO overflows, while HIGH gives us only 2 character times. At a standard 115200 baud, 11.52KHz, or 86.8 uS / character, this is the difference between 173 uS and 694 uS, which gives us significant protection. It isn't perfect (you can't *BE* perfect because the 16550A doesn't automatically tie CTS into the FIFO trigger levels, which is utterly stupid but that's the way it works)... but it is far better then what we have now with the myrid of silo overflow bugs reported in both -current AND -stable. -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message