From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.75]) by sourceware.org (Postfix) with ESMTPS id 826193856DFD for ; Mon, 4 Jul 2022 08:19:45 +0000 (GMT) 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 Received: from calimero.vinschen.de ([24.134.7.25]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M1HmG-1o9w0A0NVi-002pJG for ; Mon, 04 Jul 2022 10:19:44 +0200 Received: by calimero.vinschen.de (Postfix, from userid 500) id 4F464A80BE3; Mon, 4 Jul 2022 10:19:43 +0200 (CEST) Date: Mon, 4 Jul 2022 10:19:43 +0200 From: Corinna Vinschen To: cygwin@cygwin.com Subject: Re: mmap failing with MAP_FIXED Message-ID: Reply-To: cygwin@cygwin.com Mail-Followup-To: cygwin@cygwin.com References: <000001d88d68$4d5a7a40$e80f6ec0$@cl.cam.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 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@cygwin.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: , X-List-Received-Date: Mon, 04 Jul 2022 08:19:46 -0000 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