Messages in this thread | | | Date | Thu, 19 Mar 2009 09:04:56 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [PATCH 24/27] Convert gfp_zone() to use a table of precalculated values |
| |
On Wed, 18 Mar 2009 19:46:04 +0000 Mel Gorman <mel@csn.ul.ie> wrote:
> On Wed, Mar 18, 2009 at 03:07:48PM -0400, Christoph Lameter wrote: > > On Wed, 18 Mar 2009, Mel Gorman wrote: > > > > > Thanks.At a quick glance, it looks ok but I haven't tested it. As the intention > > > was to get one pass of patches that are not controversial and are "obvious", > > > I have dropped my version of the gfp_zone patch and the subsequent flag > > > cleanup and will revisit it after the first lot of patches has been dealt > > > with. I'm testing again with the remaining patches. > > > > This fixes buggy behavior of gfp_zone so it would deserve a higher > > priority. > > > > It is buggy behaviour in response to a flag combination that makes no sense > which arguably is a buggy caller. Now that I get to think about it a bit more, > you can't define a const table in a header. If it's declared extern, then > the compiler doesn't know what the constant value is so it can't generate > better code. At best, you end up with equivalent code to what my patch did > in the first place except __GFP_DMA32|__GFP_HIGHMEM will return ZONE_NORMAL. >
I wonder why you have to make the bad caller work insane way ? Is this bad ? == const int gfp_zone_table[GFP_ZONEMASK] = { ZONE_NORMAL, /* 00 No flags set */ ZONE_DMA, /* 01 Only GFP_DMA set */ ZONE_HIGHMEM, /* 02 Only GFP_HIGHMEM set */ BAD_ZONE, /* 03 GFP_HIGHMEM and GFP_DMA set */ ZONE_DMA32, /* 04 Only GFP_DMA32 set */ BAD_ZONE, /* 05 GFP_DMA and GFP_DMA32 set */ BAD_ZONE, /* 06 GFP_DMA32 and GFP_HIGHMEM set */ BAD_ZONE, /* 07 GFP_DMA, GFP_DMA32 and GFP_DMA32 set */ ZONE_MOVABLE, /* 08 Only ZONE_MOVABLE set */ ZONE_DMA, /* 09 MOVABLE + DMA */ ZONE_MOVABLE, /* 0A MOVABLE + HIGHMEM */ BAD_ZONE, /* 0B MOVABLE + DMA + HIGHMEM */ ZONE_DMA32, /* 0C MOVABLE + DMA32 */ BAD_ZONE, /* 0D MOVABLE + DMA + DMA32 */ BAD_ZONE, /* 0E MOVABLE + DMA32 + HIGHMEM */ BAD_ZONE /* 0F MOVABLE + DMA32 + HIGHMEM + DMA }; ==
Thanks, -Kame
> -- > Mel Gorman > Part-time Phd Student Linux Technology Center > University of Limerick IBM Dublin Software Lab > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> >
| |