Hi,<div><br></div><div>Why do we need both page_table_lock &amp; mmap_sem in the kernel. Why isn&#39;t mmap_sem good enough for serialization. As far as i see it, all attempts to change the page table hierarchy in the kernel is done after holding the write lock on mmap_sem. As we are already holding the write lock, we do we need an extra page_table_lock (spinlock) ? Are there any code paths in the kernel which attempt to modify the page table hierarchy without holding the write lock on mmap_sem ?</div>

<div><br></div><div>page_table_lock is a finer grained lock than mmap_sem but page_table_lock is only taken after holding a write lock on mmap_sem (as far as i can tell). </div><div><br></div><div>What is the reasoning behind having an extra spinlock?</div>

<div><br></div><div>Thanks.</div><div><br></div><div>Venkatram Tummala</div><div><br></div><div><br></div>