Subject: Re: uvm_map_findspace alignment fallback
To: None <petrov@netbsd.org>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 11/08/2003 19:44:19
> On Sat, Nov 08, 2003 at 04:36:34AM +0900, YAMAMOTO Takashi wrote:
> > for a request with an alignment requirement, uvm_map_findspace
> > tries aligned addresses first and then siliently fall back to
> > non-aligned addresses.
> 
> Could you give more details on goals and reasons of this
> change. What's an advantage? Why it's needed?
> 
> > it might be bad for callers assuming returned addresses are
> > properly aligned.  (e.g. libpthread.)
> 
> It might or it is?

it is.  see pthread__stackalloc().

it can be workarounded in callers like below, but it's ugly, IMO.
is it supposed when MAP_ALIGNED was introduced?

p = mmap(MAP_ALIGNED());
if (p == MMAP_FAILED)
	return ENOMEM;
if (p is not aligned properly) {
	munmap();
	return ENOMEM;
}

> I suspect that current behavoiur has become
> 'de facto' so there is a possibility to break something with the
> change.

yes.  it's why i mailed. :)

YAMAMOTO Takashi