DragonFly BSD
DragonFly kernel List (threaded) for 2005-11
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

MPSAFE network interrupt update

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 22 Nov 2005 01:05:59 -0800 (PST)

    I'm making progress on my personal programming goal for the release,
    which is to make the network interrupt for at least the EM device MPSAFE.
    I'll probably commit a precursor patch tomorrow that integrates the
    LWKT serializer into the IFNET structure.  The other big goal for the
    release is of course PKGSRC.

    I considered locking up the ALTQ independantly but I think it may
    be more efficient to simply use the same serializer for the network
    interrupt, IFNET structure, *and* the ALTQ enqueue/dequeue code.
    This way the interrupt code only needs a single 'lock' to cover
    access to everything it needs and IFNET can be locked in the net/if* ABI
    layers before it calls device driver functions like if_start.  This
    will result in a 'naturally locked' device driver and I'll be able to 
    clean up a lot of the non-serialized vs serialized function names that
    I added to the EM driver in the initial implementation.

    I am going to continue to work on the general MPSAFE infrastructure.  As
    you can see from the commits I've added sysctl's for the various mpsafe
    options that can be adjusted as tunables or on a live system.  They will
    default to off (i.e. the safest mode of operation) for the release. 

    Post-release I intend to make a big push, in particular to get Jeff's
    parallel routing table code in, make the TCP stack MPSAFE in addition
    to the network interrupt, to rewrite the userland scheduler
    to be naturally MPSAFE, and bunches of other things.

					Matthew Dillon 

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]