Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jun 2000 12:58:40 -0700
From:      Greg Lehey <grog@lemis.com>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        freebsd-smp@freebsd.org
Subject:   Re: SMP discussion moving to freebsd-smp
Message-ID:  <20000620125840.E502@sydney.worldwide.lemis.com>
In-Reply-To: <200006201708.KAA87060@apollo.backplane.com>
References:  <200006201708.KAA87060@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, 20 June 2000 at 10:08:30 -0700, Matthew Dillon wrote:
>     All SMP/FreeBSD/BSDI work should move to the freebsd-smp list.
>
>     (I've BCC'd this to -current).
>
>     --
>
>     I now have mutexes 99% working in an SP build.   I will be making
>     SP (single processor) patch sets available tonight or tomorrow
>     morning.  (99% == I can boot the machine normally but after a
>     while it locks up due to an interrupt nesting issue which I haven't
>     dealt with yet).

Great.

>     In order to make an MP build work, we need interrupt threads (either
>     light or heavy weight).
>
>     Greg, you expressed an interest in doing the light-weight interrupt
>     threads.

Yes, I've committed to both tasks, first the heavyweight processes and
then the light-weight threads.

>     Do you want me to do the heavy-weight interrupt threads first?
>     It's a lot of nasty assembly and it is a prerequisit for being
>     able to do the light weight interrupt threads.

Thanks, I don't have any problem with assembler.

>     I think once the heavy weight interrupt threads are done that
>     the light weight interrupts can be implemented entirely in C.

Interestingly, I was expecting more assembler in the light-weight
threads.  But in both cases I would expect the assembler component to
be minimal in either case.

>     Right now the SP build works because I am allowing (unthreaded)
>     interrupts to steal the idleproc's context, and that only works
>     because they can get the giant mutex without blocking (remember,
>     the BSDI giant mutex is a blocking mutex, not a spin mutex).  In
>     the MP build the interrupts need to be able to block getting the
>     giant mutex which means we need to implement heavy-weight
>     interrupt threads at the very least before we can get anything
>     working, because we are not allowed to block in the idleproc.

Right, that was my understanding last week.

>     I believe I have done almost everything necessary to implement
>     heavy weight interrupt threads, including moving the kthreads
>     initialization code to an earlier point in the boot process (so
>     much so that I think the device init stuff can run with working
>     kernel processes rather then with all the delayed-thread stuff).

Why don't we take this one off line and discuss just how it should be
done?  I'm at USENIX at the moment and don't have much time to invest
on this topic (as promised last week), but we also agreed that it
didn't have to be ready this week.

Greg
--
Finger grog@lemis.com for PGP public key
See complete headers for address and phone numbers


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




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