At 17:30 9/9/95 -0400, Jonathan Shapiro wrote:
>Another keychain problem just occurred to me. It is an issue only on
>multiprocessors.
>
>One process is humming along in the kernel and prepares key K. A
>moment later, a second process on the other processor rescinds the
>object named by K. The first process now uses K, assuming it to still
>be valid.
>
>A brute force solution is for the rescind operation to contrive to
>ensure that no other task is in the kernel before proceeding. Anybody
>see a better way?
The locking protocol for MP is a major design issue. Besides resinding objects, you need to keep domains running on two processors from both jumping into one domain at the same time. In general, when the kernel is considering a set of nodes, they should remain unchanged until that unit of operation has completed. When we considered this problem at Key Logic we considered it to be an extension of UP node and page locking.
Bill