lkml.org 
[lkml]   [2004]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Lhms-devel] Re: [RFC] buddy allocator without bitmap(2) [0/3]
Dave Hansen wrote:
> On Tue, 2004-08-31 at 03:36, Hiroyuki KAMEZAWA wrote:
>
>>Disadvantage:
>> - using one more PG_xxx flag.
>> - If mem_map is not aligned, reserve one page as a victim for buddy allocater.
>>
>>How about this approach ?
>
>
> Granted, we have some free wiggle room in page->flags right now, but
> using another bit effectively shifts the entire benefit of your patch.
> Instead of getting rid of the buddy bitmaps, you simply consume a
> page->flag instead. While you don't have to allocate anything (because
> of the page->flags use), the number of bits consumed in the operation is
> still the same as before. And the patch is getting more complex by the
> minute.

Hmm...I understand what you say. Consuming PG_xxx bit in buddy allocator is harmful
because no PG_xxx bit is used in current kernel's one.

What this patch implements is
"How to record shape of the mem_map needed by buddy allocator without using some
structure which must be resized at memory resizing."

Because I had to record some information about shape of mem_map, I used PG_xxx bit.
1 bit is maybe minimum consumption.
If consumption of 1 bit in a page structure is too harmful,
I have to record information in some structure which needs to be resized
at memory resizing. When I do so, this patch itself is meaningless, I think.

I'll consider more, but...



> Something ate your patch:
>
> * Global page accounting. One instance per CPU. Only unsigned longs are
> @@ -290,6 +297,9 @@ extern unsigned long __read_page_state(u
> #define SetPageCompound(page) set_bit(PG_compound, &(page)->flags)
> #define ClearPageCompound(page) clear_bit(PG_compound, &(page)->flags)
>
> +#define PageBuddyend(page) test_bit(PG_buddyend, &(page)->flags)
> +#define SetPageBuddyend(page) set_bit(PG_buddyend, &(page)->flags)
> +
> #ifdef CONFIG_SWAP
> #define PageSwapCache(page) test_bit(PG_swapcache, &(page)->flags)
> #define SetPageSwapCache(page) set_bit(PG_swapcache, &(page)->flags)
>
>
> -- Dave


--
--the clue is these footmarks leading to the door.--
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:05    [W:0.273 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site