Date: Tue, 2 Feb 1999 14:47:58 -0500 (EST) From: Alfred Perlstein <bright@hotjobs.com> To: Jason Thorpe <thorpej@nas.nasa.gov> Cc: Emmanuel Duros <Emmanuel.Duros@sophia.inria.fr>, freebsd-hackers@FreeBSD.ORG Subject: Re: writing network device driver - pb with interrupt levels Message-ID: <Pine.BSF.4.05.9902021445160.535-100000@bright.fx.genx.net> In-Reply-To: <199902021932.LAA26228@lestat.nas.nasa.gov>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2 Feb 1999, Jason Thorpe wrote: > On Tue, 2 Feb 1999 20:17:34 +0100 (MET) > Emmanuel Duros <Emmanuel.Duros@sophia.inria.fr> wrote: > > > When writing on the IDE drive, the fifo of the card gets completely > > filled and therefore loses bytes. In fact I cannot read data as fast as > > it arrives because the CPU is busy with I/O accesses on the IDE > > drive. It seems the drive I/O have higher interrupt level than the card > > has. (BTW, the code works fine with an SCSI drive instead !?!??!) > > In NetBSD, we fixed this by enforcing an "spl heirarchy". > > Note, in my example, I say splnet, because in NetBSD network soft interrupts > are "splsoftnet". > > splbio <= splnet <= spltty <= splimp > > This allows you to block other interrupts from things which are less likely > to lose data if their interrupt is not serviced quickly. > > So, in your device interrupt handler (which is implicitly run at splnet), > bio interrupts are also implicitly blocked so that your driver can work > unhindered (but serial interrrupts, which are less freqent and more prone > to data loss, can still come through). He may just be using the worst method of IDE access, last i checked freebsd doesn't automatically turn on DMA and multiblock options like NetBSD does. I think if he adjusts his IDE flags it will fix things. flags 0xe0ffe0ff That is very interesting how you have recreated interupt levels. I love my netbsd box. -Alfred To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9902021445160.535-100000>