Messages in this thread | | | From | David Mosberger <> | Date | Fri, 12 Jul 2002 14:39:58 -0700 | Subject | Re: MAP_NORESERVE with MAP_SHARED |
| |
>>>>> On 12 Jul 2002 23:15:02 +0100, Alan Cox <alan@lxorguk.ukuu.org.uk> said:
Alan> On Fri, 2002-07-12 at 21:39, David Mosberger wrote: >> Is there a good reason why the MAP_NORESERVE flag is ignored when >> MAP_SHARED is specified? (Hint: it's the call to vm_enough_memory() >> in shmem_file_setup() that's causing MAP_NORESERVE to be ignored.)
Alan> In no overcommit mode MAP_NORESERVE is never honoured. In conventional Alan> overcommit mode I may have broken something between base and -ac. Which Alan> bit of the code are you looking at ?
2.4.18, though as far as I looked, the latest 2.5 has the same behavior. Specifically, in do_mmap_pgoff() we have:
/* Private writable mapping? Check memory availability.. */ if ((vm_flags & (VM_SHARED | VM_WRITE)) == VM_WRITE && !(flags & MAP_NORESERVE) && !vm_enough_memory(len >> PAGE_SHIFT)) return -ENOMEM;
and in shmem_file_setup() we have:
if (!vm_enough_memory((size) >> PAGE_CACHE_SHIFT)) return ERR_PTR(-ENOMEM);
So, if we don't have MAP_SHARED (first case), MAP_NORESERVE is honored, whereas with MAP_SHARED (second case), MAP_NORESERVE is ignored.
--david - 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/
| |