Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 May 2000 19:03:55 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Chuck Paterson <cp@bsdi.com>
Cc:        arch@FreeBSD.ORG
Subject:   Re: Short summary
Message-ID:  <200005250203.TAA78162@apollo.backplane.com>
References:   <200005250103.TAA15470@berserker.bsdi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
:	What is being proposed here is a major kernel architectural
:change. The locking provided by SPLS in the traditional BSD kernel goes away 
:and is replaced by mutexs. This model is very different. Interrupts
:do not in general get blocked. When interrupt service code needs
:access to some piece of data which is actively being modified by
:what is traditionally thought of as the "top half" the interrupt
:thread will block at that point. The finer grained the locking the
:less chance of a collision, but the number of locking operation
:goes up and a price has to be paid.
:...
:Chuck

    We've discussed SMP evolution on and off over the last year or two,
    and I think everyone will agree that the data-centric mid-range
    granularity mutex model is the best way to go.

    The one problem with this concept is that there is no easy migration
    path getting from SPL ops to Mutex ops, because an SPL op currently
    involves a bitmask of several interrupts rather then a single interrupt.
    Thus the SPL ops would translate into several mutexes rather then a 
    single mutex and wind up being *very* expensive for the period of time
    it takes us to then move onto the next step (collapsing them into single
    mutexes again).   We were looking for an easier migration path in 
    order to try to keep the kernel runnable for the month or two (or 
    longer) it would require to get everything straightened out.

    At this point in time I've thrown up my hands and am now willing to
    take this intermediate step just to get the ball rolling, under the
    assumption that we can collapse the mutexes together in fairly short
    order once we get them working in the first place.

    Another possibility is to simply collapse all the spl*()'s into a single
    mutex temporarily and then slowly move code sections into using their
    own data-mutexes, which is easier to do but has obvious interrupt
    performance issues.

    Do you have any thoughts on how to deal with this problem?

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200005250203.TAA78162>