Messages in this thread |  | | | Date | Mon, 11 Oct 1999 23:14:04 +0200 | | From | Manfred Spraul <> | | Subject | Re: locking question: do_mmap(), do_munmap() |
| |
"Stephen C. Tweedie" wrote: > The swapout method will need to drop the spinlock. We need to preserve > the vma over the call into the swapout method, and the method will need > to be able to block.
no spinlock, a rw-semaphore, ie a multiple-reader single-writer sync object which calls schedule() when the resource is busy.
IIRC, the vma-list is only modified by * insert_vma_struct(): never sleeps, doesn't allocate memory. No problems with swap-out. * merge_vm_area(): dito. * do_munmap(): the area which modifies the vma-list makes no memory allocations, should make no problems under low-memory. --> everyone who needs an exclusive access is OOM safe.
Additionally, the swap-out should use a "starve writer"-policy, ie there will be no dead-locks with multiple concurrent swap-outs in the same "struct mm" [concurrent means overlapped io, still serialized by lock_kernel()]. I think the result should be OOM safe without touching vm_ops->swapout().
-- Manfred
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
|  |