Re: [PATCH] Properly account for freed pages in free_pages_bulk() and when allocating high-order pages in buffered_rmqueue()

Hugh Dickins
2009-04-28T17:24:34Z

On Tue, 28 Apr 2009, Mel Gorman wrote:
> On Tue, Apr 28, 2009 at 12:37:22PM -0400, Christoph Lameter wrote:
> > On Tue, 28 Apr 2009, Mel Gorman wrote:
> >
> > > @@ -1151,6 +1151,7 @@ again:
> > > } else {
> > > spin_lock_irqsave(&zone->lock, flags);
> > > page = __rmqueue(zone, order, migratetype);
> > > + __mod_zone_page_state(zone, NR_FREE_PAGES, -(1UL << order));
> > > spin_unlock(&zone->lock);
> > > if (!page)
> > > goto failed;
> >
> > __mod_zone_page_state takes an signed integer argument. Not sure what is
> > won by the UL suffix here.
> >
>
> Matches other call sites such as in __offline_isolated_pages(), habit when
> using shifts like this and matches other locations, paranoia, doesn't hurt.

Well, not a big deal, but I'd say that it does hurt: by wasting people's
time (mine!), wondering what that "UL" is for - I'd have had to ask, if
Christoph hadn't cleared this up first (thank you). And elsewhere,
you're using an int << order to update NR_FREE_PAGES, so I don't see
the consistency argument.

Hugh