Messages in this thread | | | Date | Mon, 12 Apr 2010 22:26:12 -0700 | From | Yinghai <> | Subject | Re: [PATCH 07/39] lmb: Add lmb_find_area() |
| |
On 04/12/2010 10:07 PM, Benjamin Herrenschmidt wrote: > On Mon, 2010-04-12 at 21:29 -0700, Yinghai wrote: >> >>> Haven't you noticed there's already way too many functions walking >> the >>> LMBs ? :-) >> >> x86 is using original lmb_reserve, lmb_free(), but have own version >> lmb_find_area(), and it will be dropped after >> more testing of generic version of lmb_find_area() > > Do -not- add no APIs that are meant to be dropped. They never are in > practice. What I'm saying here is that the LMB code (including existing > stuff) could use some factoring in this area.
current generic lmb_find_area() is allocating from high to low. x86 32bit seems have problem with that. in this patchset, it is fixed, but not sure if i missed sth. so could remove x86 lmb_find_area after more test coverage.
> >>> >>> I think the ones doing nid alloc could/should be also rewritten to >> use >>> one single low level __lmb_find_* no ? >> >> that nid_alloc() only has one user (sparc64). >> >> maybe could be replaced by lmd_find_area_node(), but need to make sure >> early_node_map[] is filled at first. > > How does it work today ? IE. Which ever mechanism is used that works I > don't care but we shouldn't use 2 different ones.
x86 is only use find_area_early() with node area scope, David point that could have problem with cross node mem map.
YH
| |