Re: HEADSUP: MPSAFE network drivers

From: Sam Leffler (sam_at_errno.com)
Date: 10/30/03

  • Next message: Sam Leffler: "Re: Panic on ICMP Redirect"
    To: Pawel Jakub Dawidek <nick@garage.freebsd.pl>
    Date: Thu, 30 Oct 2003 08:01:23 -0800
    
    

    On Thursday 30 October 2003 01:22 am, Pawel Jakub Dawidek wrote:
    > On Wed, Oct 29, 2003 at 11:52:48AM -0700, Sam Leffler wrote:
    > +> I'm committing changes to mark various network drivers' interrupt
    > handlers +> MPSAFE. To insure folks have a way to backout if they hit
    > problems I've also +> added a tunable that lets you disable this w/o
    > rebuilding your kernel. By +> default all network drivers that register an
    > interrupt handler INTR_MPSAFE +> are setup to run their ISR w/o Giant. If
    > you want to defeat this w/o +> changing the code you can set
    > +>
    > +> debug.mpsafenet=0
    > +>
    > +> from the loader when booting and the MPSAFE bit will automatically be
    > removed. +> I plan to use this to also control forthcoming changes for
    > registering MPSAFE +> netisrs.
    > +>
    > +> The following drivers are marked MPSAFE:
    > +>
    > +> ath, em, ep, fxp, sn, wi, sis
    > +>
    > +> I've got changes coming for bge. Other drivers probably can be marked
    > MPSAFE +> but I'm only doing it for those drivers that I can test.
    >
    > Because there is so many drivers, maybe you could prepare some regression
    > tests designed to check changed things. This will allow people to test your
    > changes - it is not very easy now if we don't know what we're looking for
    > exactly PLUS those drivers aren't marked MPSAFE by default.

    Unfortunately there is no easy way to decide if the locking in a driver is
    correct; otherwise I'd simply test them and not provide a fallback as a I
    did. Before I commit any driver I run with it for at least a few weeks (in
    some cases months) on a variety of machines (workstation, server, laptop,
    firewall). If there are no problems then I commit the change. The driver
    changes I committed yesterday I've been running for >4 months. Likewise, the
    next round of locking changes to push Giant up have been running for ~2
    months.

    Otherwise the main safeguard I use are numerous assertions to validate
    assumptions.

            Sam

    _______________________________________________
    freebsd-current@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-current
    To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"


  • Next message: Sam Leffler: "Re: Panic on ICMP Redirect"

    Relevant Pages

    • [GIT PATCH] ACPI patches for 2.6.21 - part II (resend)
      ... Adds the sony-laptop driver, which controls brightness on akpm's vaio... ... Adds the ACPI support needed by the upcoming rtc driver ... ACPI: bay: fix wrong order of kzalloc arguments ... commit 255f0385c8e0d6b9005c0e09fffb5bd852f3b506 ...
      (Linux-Kernel)
    • Re: [RESEND x9+ patch 2.6.26-git 1/2] lm75: cleanup and reorg
      ... This patch have been in Mark's tree for a month or so. ... commit 530598a47e8562f680d155eb280dddd6af1b3d9e ... hwmon: ... Misc cleanups to the lm85 hardware monitoring driver: ...
      (Linux-Kernel)
    • cvs-src summary for 04/04/2004
      ... You can get old summaries, and an HTML version of this one, at ... Vinod Hashyap added a driver for `3ware's 9000 series`_ ... depending on which branch the commit is being made to. ... this same change means that USB keyboards will not be ...
      (freebsd-current)
    • [git pull request] ACPI patches for 2.6.32-rc1
      ... sony-laptop: Don't unregister the SPIC driver if it wasn't registered ... ACPI: EC: Restart command even if no interrupts from EC ... commit c7db7ba5fc84e76044f403efbbba3af5fb01d19b ...
      (Linux-Kernel)
    • [git pull] drm fixes
      ... commit fc43896630a421321a19d7970bac27ac94e9d162 ... drm: ignore EDID with really tiny modes. ... A driver will use the _DRM_DRIVER map flag to indicate that it wants ... drm_helper-specific crtc and encoder dpms functions, ...
      (Linux-Kernel)