> -----Original Message----- > From: Burakov, Anatoly > Sent: Friday, June 1, 2018 1:09 PM > To: Stojaczyk, DariuszX <dariuszx.stojac...@intel.com>; dev@dpdk.org > Subject: Re: [PATCH 2/2] memalloc: keep in mind a failed MAP_FIXED > mmap may still perform an unmap > > On 01-Jun-18 1:51 PM, Dariusz Stojaczyk wrote: > > This isn't documented in the manuals, but a failed mmap(..., > > MAP_FIXED) may still unmap overlapping regions. In such case, we need > > to remap these regions back into our address space to ensure mem > > contiguity. > > We do it unconditionally now on mmap failure just to be safe. > > > > Verified on Linux 4.9.0-4-amd64. I was getting ENOMEM when trying to > > map in hugetlbfs with no space left, but the previous anonymous > > mapping was still being removed. > > > > Signed-off-by: Dariusz Stojaczyk <dariuszx.stojac...@intel.com> > > --- > > Does this also happen with other error values?
The man pages aren't clear on this. It could. I know this patch only remaps the region if errrno == ENOMEM, but we could remap it unconditionally after each failed mmap just as well. It won't hurt if we remap a region unnecessarily. This was my original intent, but apparently I didn't fully commit my changes before publishing patches here. Uhh, sorry. D. > > -- > Thanks, > Anatoly