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>