On Wed, Oct 21, 2020 at 04:53:11PM +0300, Nick Kostirya via freebsd-stable 
wrote:
> Hello.
> I have question about mmap.
> 
> void *OSMem::AllocateDataArea(size_t &space)
> {
>     // Round up to an integral number of pages.
>     space = (space + pageSize-1) & ~(pageSize-1);
>     int fd = -1; // This value is required by FreeBSD.  Linux doesn't care
>     int flags = MAP_PRIVATE | MAP_ANON;
> #ifdef MAP_STACK
>     if (memUsage == UsageStack) flags |= MAP_STACK; // OpenBSD seems to 
> require this
> #endif
>     void *result = mmap(0, space, PROT_READ|PROT_WRITE, flags, fd, 0);
>     // Convert MAP_FAILED (-1) into NULL
>     if (result == MAP_FAILED)
>         return 0;
>     return result;
> }
> 
> 
> When MAP_STACK is used, "insufficient memory" error occurs.
> When MAP_STACK removed, it is all right.
> 
> Please tell me why.
Show ktrace/kdump output of the mmap(2) without and with MAP_STACK.

Or provide a minimal self-contained C source that demonstrates your
issue.
_______________________________________________
freebsd-stable@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to