Skip site navigation (1)Skip section navigation (2)
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>