From owner-cvs-all Sun Dec 23 21:23:23 2001 Delivered-To: cvs-all@freebsd.org Received: from netau1.alcanet.com.au (ntp.alcanet.com.au [203.62.196.27]) by hub.freebsd.org (Postfix) with ESMTP id 88B6F37B417; Sun, 23 Dec 2001 21:23:14 -0800 (PST) Received: from mfg1.cim.alcatel.com.au (mfg1.cim.alcatel.com.au [139.188.23.1]) by netau1.alcanet.com.au (8.9.3 (PHNE_22672)/8.9.3) with ESMTP id QAA04770; Mon, 24 Dec 2001 16:22:50 +1100 (EDT) Received: from gsmx07.alcatel.com.au by cim.alcatel.com.au (PMDF V5.2-32 #37640) with ESMTP id <01KC93WA3BS0VLPOEG@cim.alcatel.com.au>; Mon, 24 Dec 2001 16:22:49 +1100 Received: (from jeremyp@localhost) by gsmx07.alcatel.com.au (8.11.6/8.11.6) id fBO5Mlu85226; Mon, 24 Dec 2001 16:22:47 +1100 Content-return: prohibited Date: Mon, 24 Dec 2001 16:22:47 +1100 From: Peter Jeremy Subject: Re: cvs commit: src/sys/dev/sio sio.c In-reply-to: <61654.1009097922@critter.freebsd.dk>; from phk@critter.freebsd.dk on Sun, Dec 23, 2001 at 09:58:42AM +0100 To: Poul-Henning Kamp Cc: David Greenman , Bruce Evans , Matthew Dillon , Mike Silbersack , cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Mail-Followup-To: Poul-Henning Kamp , David Greenman , Bruce Evans , Matthew Dillon , Mike Silbersack , cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Message-id: <20011224162247.B85044@gsmx07.alcatel.com.au> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-disposition: inline User-Agent: Mutt/1.2.5i References: <20011222193231.D24034@nexus.root.com> <61654.1009097922@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 On Sun, Dec 23, 2001 at 09:58:42AM +0100, Poul-Henning Kamp wrote: >Bruce has a very valid point here: If our bad^H^H^Hlousy interrupt >latency is not visible to developers, people will not think about >it until our entire kernel has become a slow monster. Then the logical solution would seem to be to use FIFO_RX_HIGH in -CURRENT and change it to FIFO_RX_MEDH in -STABLE. This fits into the same category as the malloc(3) defaults in -CURRENT which are designed to flush out mis-behaving programs. An even better solution would be to make this a sysctl or automatically tune itself. >The rest of the project doesn't notice lousy interrupt latency >until timecounters overflow or serial ports drop characters. I'm not sure that even FIFO_RX_HIGH is enough to flush out the problems. Earlier this year, there was a bug in the Alpha that resulted in all interrupts being scheduled as threads. AFAIK, I was the only person who noticed (and in my case, I was still getting SILO overflows at 38.4kbps with FIFO_RX_MEDH). >My guess would be that only four people in the project who have >ever measured our interrupt latency: Bruce, Louie, Warner and me. That's definitely an under-estimate. Andrew Gallatin posted his latency measurements on a Alpha h/w. I think I've seen one or two other people indicate that they'd made measurements on -hackers. I've also done some limited latency testing on both i386 and Alpha's. >If our interrupt latency is so bad that we cannot run a serial port >as well on a PIII/Athlon 1GHz cpu as we could on a 486/66 a few >years back, then the solution is not to make the serial driver more >defensive, the solution is to fix the interrupt latency. Unfortunately, I can't see this happening. 1) The migration of the PC-card interface to Cardbus means that PC- card devices no longer have the option of a fast interrupt. This will bite everyone who uses a laptop without a real builtin modem. 2) -CURRENT seems to be moving further towards having all interrupts handled via kernel threads, rather than in real time. Peter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message