next up previous contents
Next: LinSec Lifetime Up: Implementation Previous: LinSec Data Structures   Contents


SMP Issues

As of version 2.0, Linux kernel supports Symmetric Multi Processing (SMP) allowing processes to run in kernel mode in parallel on different processors. To avoid race conditions on shared kernel data, Linux kernel provides a set of SMP specific lock data types and corresponding locking primitives. All LinSec shared data structures are implemented in a SMP safe manner by making use of the Linux SMP features. In particular, to enable capability revocation (Subsection 5.8.6) and access domain revocation (Subsection 5.9.4), linsec_usr structure contains a set of, so called, spinlocks, that are used to protect relevant portions of the structure as they are being updated. There is no need for the similar mechanism to be implemented for linsec_task as its contents are only used for read operations once they are created.