Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Mar 1998 07:38:41 +1100 (EST)
From:      Peter Jeremy <Peter.Jeremy@alcatel.com.au>
To:        freebsd-hackers@FreeBSD.ORG
Cc:        dag-erli@ifi.uio.no, dmlb@ragnet.demon.co.uk, regnauld@deepo.prosa.dk
Subject:   Interrupt windows in FreeBSD
Message-ID:  <199803262038.HAA23930@gsms01.alcatel.com.au>

next in thread | raw e-mail | index | archive | help
As I've previously mentioned (see my mail here on 15-Mar-1998 and PR
kern/6099) I have been having problems with LPIP (as have a couple of
other people - see PRs kern/1271 and i386/5698).  I've now tracked
down what appears to be at least one cause of the problem.

According to the comments in sys/mbuf.h, all mbuf manipulation should
be protected by splimp() (or higher).  The problem is that the LPIP
code never adds the lpt interrupt to net_imask.  This means that an
LPIP interrupt can break mbuf critical regions.  (I haven't had a
chance to actually build a new kernel and check this).

The other area where LPIP interacts with the non-interrupt code is via
ipintrq.  Again, according to the comments in net/if.h, the queue
manipulation routines should only be called at splimp() or greater.
There are a number of cases where it is called at splnet(), although
none of these seem to be manipulating ipintrq.

Peter

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?199803262038.HAA23930>