Date: Thu, 19 Nov 2009 16:27:33 +0530 From: Sharad Chandra <sharadc@in.niksun.com> To: freebsd-hackers@freebsd.org Cc: Kostik Belousov <kostikbel@gmail.com>, Robert Watson <rwatson@freebsd.org>, Manprit Singh <manprits@in.niksun.com>, Jung-uk Kim <jkim@freebsd.org> Subject: Re: mprotect(2) clears the flag for whole page which causes program crash. Message-ID: <200911191627.34076.sharadc@in.niksun.com> In-Reply-To: <200911181433.52557.jkim@FreeBSD.org> References: <200911171529.20098.sharadc@in.niksun.com> <alpine.BSF.2.00.0911181849460.12162@fledge.watson.org> <200911181433.52557.jkim@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
,---- [Jung-uk Kim wrote:] | On Wednesday 18 November 2009 01:52 pm, Robert Watson wrote: | > On Tue, 17 Nov 2009, Sharad Chandra wrote: | > > Is it known bug or is there any workaround? How will a userland | > > process make sure that process will not crash as malloc(3) can | > > allocate where ever it get the memory free to use. | > | > mprotect(2) operates on pages, so you'll want to use mmap(2) and | > munmap(2) to allocate and free pages directly rather than | > mallac(3), which manages byte ranges from pages managed using those | > same interfaces. | | For example: | | http://docs.freebsd.org/cgi/mid.cgi?200911181926.nAIJQHOR081471 | Thanks everyone. mmap(2) worked and program did not crash. Only problem with it I use only fraction of allocated memory (each request alocate minimum of one page and my request is in hundreds), rest is waste of it so no one else will get this memory to use. And if a process runs as daemon and makes many request, It can hold a lot of it. Just a question floated in mind. Many thanks, Sharad Chandra
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911191627.34076.sharadc>