Messages in this thread | | | Date | Sun, 4 Apr 2004 03:32:45 +0200 | From | Andrea Arcangeli <> | Subject | Re: anon-vma (and now filebacked-mappings too) mprotect vma merging [Re: 2.6.5-rc2-aa vma merging] |
| |
On Sat, Apr 03, 2004 at 05:13:58PM -0800, Andrew Morton wrote: > That change was made for scheduling latency reasons, mainly due to huge > pagetable walks in zap_page_range(): > > i_shared_lock is held for a very long time during vmtruncate() and > causes high scheduling latencies when truncating a file which is > mmapped. I've seen 100 milliseconds. > > So turn it into a semaphore. It nests inside mmap_sem. This > change is also needed by the shared pagetable patch, which needs to > unshare pte's on the vmtruncate path - lots of pagetable pages need to > be allocated and they are using __GFP_WAIT. > > If we no longer hold that lock during pte takedown then sure, it would > be better if we had a spinlock in there.
agreed, vmtruncate may still be very costly due the pte scan, so I was probably wrong about not needing the semaphore anymore with prio-tree (I was too objrmap centric, and after all objrmap with the trylocks threats it like a spinlock anyways), though the semaphore cannot help the latency of the non-contention case (I mean with preempt disabled), that seem to have room for improvements with a cond_sched() before returning from invalidate_mmap_range_list not present yet. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |