Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Apr 1997 10:03:07 +0300 (EEST)
From:      Narvi <narvi@haldjas.folklore.ee>
To:        Michael Hancock <michaelh@cet.co.jp>
Cc:        FreeBSD-SMP@FreeBSD.org
Subject:   Re: SMP
Message-ID:  <Pine.BSF.3.95.970429090508.21427D-100000@haldjas.folklore.ee>
In-Reply-To: <Pine.SV4.3.95.970429115554.5813A-100000@parkplace.cet.co.jp>

next in thread | previous in thread | raw e-mail | index | archive | help


On Tue, 29 Apr 1997, Michael Hancock wrote:

> On Mon, 28 Apr 1997, Narvi wrote:
> 
> > Couldn't we divide the kernel (and anything "provided" by it into) two (at
> > least initially):
> > 
> > 1) client - accepts syscalls, translates, etc. and passes the result on to
> >    2
> > 2) kernel server - does all the low level stuff
> 
> We want SMP.

I take you didn't read it all carefully enough (especially the part you
snipped). It would be SMP. Initially there would be two locks (= at most
two processors in the kernel). In the progress of further threading the
kernel the number would grow. As already said, both of the "layers" of
the kernel would be threaded and there could be n (def. n=number of
processors in the system) processors  in the kernel, distributed between
the two in whatever manner is needed on the moment. 

The "upper layer" of kernel also would not care in most cases what it was
that the lower did. Lets take something simple, like fork:

1) process calls fork
2) we wait until we can get the syscall_entry lock (the process just
sleeps).
3) we are in the syscall now:
	a) check whetever know syscall - return error if not
	b) call make_syscall_worker_thread(syscall_nr, params) 
	c) release lock, sleep until someone wants to make another syscall
4) the syscall_worker thread (the current one, at any time there may be
   several) does what is needed (acquires locks, calls the "lower
layer") and then returns, unblocking the process.

Obviously eventually there could even be more than one syscall thread
creating syscall_worker threads.

I don't see how any part of it is not SMP.

	Sander

> 
> Mike Hancock
> 
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95.970429090508.21427D-100000>