On Fri, 7 Oct 2005 09:08, you wrote:
> I wondered that as well, but there appear to be lots (so it appears from
> other postings I found using google) of 4801s in use with OpenBSD, doing
> essentially the same thing as myself (Soekris w/ carp/pf/pfsynch).  Yet,
> AFAICT, I'm the only one who's posted about this symptom.  Since there are
> lots of people who do what I do, and if the problem were indeed that the
> 4801 processor is too wimpy, then wouldn't there be more problems like mine
> mentioned in the lists?  And I'm running into high interrupts with only
> about 4Mbs throughput while others have claimed much higher values.
>
> Before I used this firewall that I have now, I used m0n0wall on FreeBSD.  I
> chose OpenBSD over m0n0wall/FreeBSD due to m0n0wall state table limitations
> and lack of mature redundance features.  But the m0n0wall handled this much
> traffic, and more, with a relatively low interrupt mode.  As widely as
> OpenBSD is used on Soekris for firewalling compared to m0n0wall/FreeBSD
> with relatively few problems, I'm still not quite ready to decide that I
> haven't gotten myself a setup flaw somewhere.  Just can't figure out where
> it could be.
>
>
You'll find a few of us are running the interrupt holdoff patch, which IIRC, 
comes from the FreeBSD tree via [EMAIL PROTECTED] (See below).
Patch trades off timeliness of response for reduced interrupts.

Index: src/sys/dev/pci/if_sis.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_sis.c,v
retrieving revision 1.46
diff -u -r1.46 if_sis.c
--- src/sys/dev/pci/if_sis.c    27 May 2005 04:52:24 -0000      1.46
+++ src/sys/dev/pci/if_sis.c    7 Jun 2005 07:14:37 -0000
@@ -1692,6 +1692,10 @@
        sis_stop(sc);
        sc->sis_stopped = 0;

+       /* Configure interrupt holdoff register. */
+       if (sc->sis_type == SIS_TYPE_83815 && sc->sis_srr == NS_SRR_16A)
+               CSR_WRITE_4(sc, NS_IHR, NS_IHR_VALUE);
+
        mii = &sc->sc_mii;

        /* Set MAC address */
Index: src/sys/dev/pci/if_sisreg.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_sisreg.h,v
retrieving revision 1.21
diff -u -r1.21 if_sisreg.h
--- src/sys/dev/pci/if_sisreg.h 22 May 2005 05:40:52 -0000      1.21
+++ src/sys/dev/pci/if_sisreg.h 7 Jun 2005 07:14:38 -0000
@@ -208,6 +208,20 @@
         SIS_IMR_RX_IDLE|\
         SIS_IMR_SYSERR)

+/* Interrupt Holdoff Register */
+#define NS_IHR_HOLDCTL         0x00000100
+
+/*
+ * Interrupt holdoff value for NS DP8316. We can have the chip
+ * delay interrupt delivery for a certain period. Units are in
+ * 100us, and the default is 100us holdoff.
+ */
+#ifndef NS_IHR_DELAY
+#define NS_IHR_DELAY           2
+#endif
+
+#define NS_IHR_VALUE           (NS_IHR_HOLDCTL|NS_IHR_DELAY)
+
 #define SIS_IER_INTRENB                0x00000001

 #define SIS_PHYCTL_ACCESS      0x00000010

-- 
Craig

Reply via email to