Re: [Lhms-devel] Re: [RFC] free_area[] bitmap elimination [0/3]

William Lee Irwin III
2004-08-21T05:37:35Z

William Lee Irwin III wrote:
>> In __free_pages_bulk() changing BUG_ON(bad_range(zone, buddy1)) to
>> if (bad_range(zone, buddy1)) break; should fix this. The start of
>> the zone must be aligned to MAX_ORDER so buddy2 doesn't need checks.
>> It may be worthwhile to make a distinction the bounds checks and the
>> zone check and to BUG_ON() the zone check in isolation and not repeat
>> the bounds check for the validity check.

On Sat, Aug 21, 2004 at 02:37:56PM +0900, Hiroyuki KAMEZAWA wrote:
> Okay, I understand several BUG_ON() are needless.
> I'll be more carefull to recognize what is checked.

It's not that it's needless, it's that beforehand the bitmap rounding
up to an even number ensured the __test_and_change_bit() check would
prevent the bounds check from ever failing, but after the bitmap is
eliminated, the bounds check is needed to see if we're even examining
a valid page structure for whether the page can be merged.

-- wli