Messages in this thread | | | Date | Mon, 13 Jul 2009 14:38:57 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [PATCH] switch free memory back to MIGRATE_MOVABLE |
| |
On Mon, 13 Jul 2009 11:18:01 +0800 Shaohua Li <shaohua.li@intel.com> wrote:
> On Mon, Jul 13, 2009 at 11:08:14AM +0800, KOSAKI Motohiro wrote: > > > On Mon, Jul 13, 2009 at 10:58:03AM +0800, KAMEZAWA Hiroyuki wrote: > > > > On Mon, 13 Jul 2009 11:47:46 +0900 (JST) > > > > KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote: > > > > > > > > > > When page is back to buddy and its order is bigger than pageblock_order, we can > > > > > > switch its type to MIGRATE_MOVABLE. This can reduce fragmentation. The patch > > > > > > has obvious effect when read a block device and then drop caches. > > > > > > > > > > > > Signed-off-by: Shaohua Li <shaohua.li@intel.com> > > > > > > > > > > This patch change hot path, but there is no performance mesurement description. > > > > > Also, I don't like modification buddy core for only drop caches. > > > > > > > > > Li, does this patch imply fallback of migration type doesn't work well ? > > > > What is the bad case ? > > > The page is initialized as migrate_movable, and then switch to reclaimable or > > > something else when fallback occurs, but its type remains even the page gets > > > freed. When the page gets freed, its type actually can be switch back to movable, > > > this is what the patch does. > > > > This answer is not actual answer. > > Why do you think __rmqueue_fallback() doesn't works well? Do you have > > any test-case or found a bug by review? > I never said __rmqueue_fallback() doesn't work well. The page is already freed, switching > back the pageblock to movable might make next page allocation (non-movable) skip this > pageblock. So this could potentially reduce fragmentation and improve memory offline. > But your guys are right, I have no number if this will impact performance. > If this is for memory offlining, plz mention that at first ;) IIUC, if this can be a problem, fixing memory offline itself is better. No ? At implementing memory unplug, I had no problems because I assumes ZONE_MOVABLE. But ok, I welcome enhances to memory unplug.
If this part is bad for you. 4714 /* 4715 * In future, more migrate types will be able to be isolation target. 4716 */ 4717 if (get_pageblock_migratetype(page) != MIGRATE_MOVABLE) 4718 goto out;
plz fix this to do more precise work for zid != ZONE_MOVABLE zones. As I wrote in comments. My codes assumes ZONE_MOVABLE in many parts because I want 100%-success memory offline.
Thanks, -Kame
| |