lkml.org 
[lkml]   [2004]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: Suspend 2 merge: 43/51: Utility functions.
From
Date
On Thu, 2004-11-25 at 16:04, Nigel Cunningham wrote:
> On Fri, 2004-11-26 at 10:46, Pavel Machek wrote:
> > How many bits do you need? Two? I'd rather use thow two bits than have
> > yet another abstraction. Also note that it is doing big order
> > allocation.
>
> Three if checksumming is enabled IIRC. I'll happily use normal page
> flags, but we only need them when suspending, and I understood they were
> rarer than hen's teeth :>
>
> MM guys copied so they can tell me I'm wrong :>

Please remember that, in almost all cases, any use of page->flags can be
replaced by a simple list. Is a page marked foo? Well, just traverse
this data structure and see if the page is in there. It might be a
stinking slow check, but it will *work*.

I think we're up to using 1 bit in the memory hotplug code, but we don't
even need that if some operations can be implemented more slowly.

An extreme example:

struct list_head foo;

int PageSuspendFoo(page)
{
ret = 0;
lock();
list_for_each(foo, bar) {
if (page == bar)
ret = 1;
}
unlock();
return ret;
}

-- Dave

-
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:08    [W:0.139 / U:0.192 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site