From owner-freebsd-hackers Wed Feb 3 09:59:37 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA20247 for freebsd-hackers-outgoing; Wed, 3 Feb 1999 09:59:37 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from labinfo.iet.unipi.it (labinfo.iet.unipi.it [131.114.9.5]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id JAA20240 for ; Wed, 3 Feb 1999 09:59:35 -0800 (PST) (envelope-from luigi@labinfo.iet.unipi.it) Received: from localhost (luigi@localhost) by labinfo.iet.unipi.it (8.6.5/8.6.5) id QAA00893; Wed, 3 Feb 1999 16:43:12 +0100 From: Luigi Rizzo Message-Id: <199902031543.QAA00893@labinfo.iet.unipi.it> Subject: Re: writing network device driver - pb with interrupt levels To: Emmanuel.Duros@sophia.inria.fr (Emmanuel Duros) Date: Wed, 3 Feb 1999 16:43:12 +0100 (MET) Cc: dennis@etinc.com, freebsd-hackers@FreeBSD.ORG In-Reply-To: <199902031722.SAA11377@chouette.inria.fr> from "Emmanuel Duros" at Feb 3, 99 06:21:48 pm X-Mailer: ELM [version 2.4 PL23] Content-Type: text Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > The transmission rate is constant at 2Mbps and the fifo is 4 Kb. I did > add the flag 0xe0ffe0ff to the IDE controller but I still get > losses. However, results are better with this configuration. > > After some investigation, I notice that when I get losses (= fifo gets > completly filled with incoming traffic), two consecutive interrupts > generated by the card are processed with an interval of 200 to 700 > millisecondes -> meanwhile the fifo runs quickly out of space. 200 to 700ms for an IDE transfer are a very long time. Does this happen on reading or writing to the disk ? It could be a symptom of the IDE driver doing something wrong e.g. not lowering the interrupt level between consecutive transfers. Also i am bit confused on this but i think there are two phases on processing interrupts -- the first one is when the hw interrupt is generated, it calls a small stub routine which runs above any soft interrupt level and posts posts an 'interrupt pending' signal. Then the latter is processed according to the soft interrupt levels. Perhaps you can instrument the stub which handles the hardware interrupt so that it timestamps it and fetches the interrupt mask at the time it runs. luigi -----------------------------------+------------------------------------- Luigi RIZZO . EMAIL: luigi@iet.unipi.it . Dip. di Ing. dell'Informazione HTTP://www.iet.unipi.it/~luigi/ . Universita` di Pisa TEL/FAX: +39-050-568.533/522 . via Diotisalvi 2, 56126 PISA (Italy) -----------------------------------+------------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message