Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Dec 1996 00:26:56 -0600
From:      Chris Csanady <ccsanady@friley216.res.iastate.edu>
To:        freebsd-smp@freebsd.org
Subject:   make locking more generic?
Message-ID:  <199612050626.AAA03220@friley216.res.iastate.edu>

next in thread | raw e-mail | index | archive | help
Could we possibly make our global semaphore a bit more generic?  I guess this
is what I had in mind..

It would allow us to create more locks.  We could then easily give the run
queues their own lock.  This would be a fairly large win for a cpu bound 
workload I believe.  Instead of having kernel entry block, when the kernel is
running on another cpu, we could immediately switch to another process and do
something useful.  This would all be quite simple to implement, imho.

We would then also be able to move the global kernel entry lock out into the
syscalls, and further fan out the lock structure from there.  This is something
that I'd like to work on soon. :)

The reason I was wanting the spin locks earlier was that to move the locks into
the syscalls, we would need to make the interrupt, trap, and exception code 
re-entrant.  I think this would be fairly trivial, and properly done with a
few spin locks.  Although, using semaphores would work fine as for now--and
actually I think some of it was in place last time i checked.

If you like, I could submit some patches for the global lock changes.  I think
I understand enough assembly now to get that right, although anyone else is
more than welcome to do it.. :)


--Chris Csanady






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