Re: [PATCH 18/22] Use allocation flags as an index to the zone watermark

Mel Gorman
2009-04-22T17:15:09Z

On Wed, Apr 22, 2009 at 10:11:53AM -0700, Dave Hansen wrote:
> On Wed, 2009-04-22 at 14:53 +0100, Mel Gorman wrote:
> > struct zone {
> > /* Fields commonly accessed by the page allocator */
> > - unsigned long pages_min, pages_low, pages_high;
> > + union {
> > + struct {
> > + unsigned long pages_min, pages_low, pages_high;
> > + };
> > + unsigned long pages_mark[3];
> > + };
>
> Why the union? It's a bit obfuscated for me. Why not just have a
> couple of these:
>
> static inline unsigned long zone_pages_min(struct zone *zone)
> {
> return zone->pages_mark[ALLOC_WMARK_MIN];
> }
>
> and s/zone->pages_min/zone_pages_min(zone)/
>
> ?
>

Preference of taste really. When I started a conversion to accessors, it
changed something recognised to something new that looked uglier to me.
Only one place cares about the union enough to access is via an array so
why spread it everywhere.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab