Date: Thu, 27 May 1999 14:57:59 -0700 (PDT) From: Julian Elischer <julian@whistle.com> To: Dennis <dennis@etinc.com> Cc: Mike Smith <mike@smith.net.au>, hackers@FreeBSD.ORG Subject: Re: mbuf stuff Message-ID: <Pine.BSF.3.95.990527145356.4104H-100000@current1.whistle.com> In-Reply-To: <199905272140.RAA04730@etinc.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 27 May 1999, Dennis wrote: > At 12:26 PM 5/27/99 -0700, you wrote: > >> > >> We've encountered a situation where mbuf allocations inside a device > >> interrupt handler fails occasionally...and it always seems to happen when > >> rtalloc() is interrupted. Is this due to some sort of locking (rtalloc is > >> run at splnet())...should it perhaps be run at splimp() to avoid this > problem? > > > >It sounds like your device's interrupt handler should be in the 'net' > >mask; you certainly shouldn't be doing anything that manipulates mbufs > >in a non-'net'-masked interrupt handler. > > Well how does one check/set this? Splnet is a 'soft interrupt' level. the device drivers should all use splimp() Soft interrupts are by definition held off while a hardware interrupt is being processes, however you may need to occasionally rais your spl level to splimp() when you need to ensure that a hardware interrupt is held off. I believe the old 'net' keyword in config files implied splimp, rather than splnet. julian > > > > >> What other causes for mbuf failures might reasonably be expected? Is > >> allocating mbufs at interrupt time something that wasnt expected in the > >> original system design? > > > >The mbuf pool might be empty. You should always be ready to handle a mbuf allocation failure at the lowest levels where you cannot sleep. The problem may be maomentary but as you can't sleep() you can't wait for it to fix itself. > > This one I figured out :-) > > Dennis > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message > 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.3.95.990527145356.4104H-100000>