X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C9EC83856DEA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1656922854; bh=mmfVTs28g3Wp8EDgqhlfl5hdwmq5hQ8RaiNueRsRYB4=; h=Date:From:To:Subject:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: Reply-To:From; b=s1zyFNuMGixTjG5deSjtj31LeOdL+W7AjDdPT5l24hfeWJ9O003ErlgRb+DBiXRsT xDNE5D7EJbTnIuCLxHQ8KyYfffhD3F/qs7dkzmyKPjzKm8e7fp/MvpNzzQMYA4ETFN lOd2TzREAqsmCc7P8FXeD+XaDSSlP+qFkiGRUJhc= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 826193856DFD Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=cygwin.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=cygwin.com Date: Mon, 4 Jul 2022 10:19:43 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: mmap failing with MAP_FIXED Message-ID: Mail-Followup-To: cygwin AT cygwin DOT com References: <000001d88d68$4d5a7a40$e80f6ec0$@cl.cam.ac.uk> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <000001d88d68$4d5a7a40$e80f6ec0$@cl.cam.ac.uk> X-Provags-ID: V03:K1:PzlB+wfoU/VPi+/SvB91rlsTZNuN3XJ/glpZ0zNxUWog5qpGhdY 72vFv9FsDs/PoFNXvS5PbLlpeaaufVrWGRyjf0vBfNsfrktUHpXGwho6Wru8DaqvmUkMyEE SMkjytLzjt1N2eKbL5Na378ATJV32+R8ZtoaDHDb/1qVQoBUTMojKxRD/WgeCEz5IUEPA6c o86+jkO8gr9Z8HP6UjfXQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:6sJsmhK2amg=:c8DabZaqf90L9g6wKAJv/1 KCMqqWHPpBC/MtECYHKttSlcnxbLz0Qzx14tzGTo4+ziBjhv5Q0vsxvvimu9HmcwXAcFDFogR VD0OmG7hLII9YiaT5OdmYZaYXPW8Zca/MKNAY+D6dUYR6TK1rSrzY3ViXoWB+ohRw7CyNUFHK +f7BXKkBeojlcBvYj9kWjG6s8qrhZ4K2UVLWRA8tRzp0qIOBeE5dmD0ys9r2jMrqaGTCuSRa0 90Kyjge8YQt/kUWDoAghSH0Eyg/NnEpRxIsyz5Cyv3DD4Gw9FQYlAEB3s+Xs2BLLFbPGz4c9l FMIw/2IhyihEM8V6wGm+Qfl+h43YgDyYA4tqsdQF2xqnqH6N5/WENJoExZkeTHP2mBkyepcsQ 4LQOYsvksrRjDPb8HdEXYqOR5+MdrRkAgB65ADezyF2sKavH03KyIZd++ZTF12vXGLZ1DTS17 Zb8hX7EQZsjAcQZlql1e2waIFsAIlxXtT2rTo4sJ0Z3VzOU5hDpSXtDgLh/iEQz8xrG+ZFJO2 uf+SegciM5Hb6Z6F+QOk589QkQ3krV/yH546lbqKavW9+bJASBRpM9s25HhWb36Nk6VOQNhDN JQtwnYyWsofOR874bsnj0/L74H2R8gy9CYz8/ZV8iumcz7IaeQ00UNyMSMWUybPf0lZV8BK3W pV9JXJyO89VHez8N+2Volvqt2xtL8gK/hh7IUTrzY/W65muh9GYmb1VZMy3GxxA/Fggpg8VVj X1cjgE0RvY+KjCPHfWlUKRTBJ4Q8Lz01QkI3ZqUcn6N9apyF5gJLWad4RtE= X-Spam-Status: No, score=-94.8 required=5.0 tests=BAYES_00, GOOD_FROM_CORINNA_CYGWIN, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, SPF_FAIL, SPF_HELO_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: cygwin AT cygwin DOT com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" On Jul 1 17:33, David Allsopp wrote: > This program fails at the second mmap call with EINVAL: > > #include > #include > #include > > int main (void) { > void * mem; > /* Reserve 256MB address space for the minor heaps */ > mem = mmap(0, 268439552, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); > if (mem == MAP_FAILED) > error(1, 0, "Reservation failed"); > /* Commit the first 2MB heap */ > if (mmap(mem, 2097152, PROT_READ | PROT_WRITE, MAP_PRIVATE | > MAP_ANONYMOUS | MAP_FIXED, -1, 0) == MAP_FAILED) > error(1, 0, "Commit failed"); > } > > Is this something that's expected to fail for Cygwin, or a bug? Depends on the point of view, I guess. PROT_NONE pages are not just reserved pages in the Windows sense. mmap'ed pages are always commited and PROT_NONE is just a page protection. Using mmap to change the page protection of already commited memory is not implemented. To change this, use mprotect. Corinna -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple