Re: [Lhms-devel] [RFC] buddy allocator without bitmap [2/4]

From: Hiroyuki KAMEZAWA
Date: Thu Aug 26 2004 - 18:22:52 EST


Hi

I understand using these macros cleans up codes as I used them in my previous
version.

In the previous version, I used SetPagePrivate()/ClearPagePrivate()/PagePrivate().
But these are "atomic" operation and looks very slow.
This is why I doesn't used these macros in this version.

My previous version, which used set_bit/test_bit/clear_bit, shows very bad performance
on my test, and I replaced it.

If I made a mistake on measuring the performance and set_bit/test_bit/clear_bit
is faster than what I think, I'd like to replace them.

-- Kame

Dave Hansen wrote:
> On Thu, 2004-08-26 at 05:03, Hiroyuki KAMEZAWA wrote:
>
>>- MARK_USED(index + size, high, area);
>>+ page[size].flags |= (1 << PG_private);
>>+ page[size].private = high;
>> }
>> return page;
>> }
>
> ...
>
>>+ /* Atomic operation is needless here */
>>+ page->flags &= ~(1 << PG_private);
>
>
> See linux/page_flags.h:
>
> #define SetPagePrivate(page) set_bit(PG_private, &(page)->flags)
> #define ClearPagePrivate(page) clear_bit(PG_private, &(page)->flags)
> #define PagePrivate(page) test_bit(PG_private, &(page)->flags)
>
> -- Dave
>
>


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

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