Re: AGP and PAT (induced?) problem (on AMD family 6)
From: Andi Kleen
Date: Thu Aug 21 2008 - 22:10:31 EST
> Andi, we are planning to add couple of page flags which will track
page flags are still scarce unfortunately, at least on 32bit.
It's a little better now than it used to be (at some point
they were nearly out before some were reclaimed), but adding a lot
of flags is still difficult.
In interest of full disclosure I need at least two for other
work too.
On 64bit adding a lot of new flags is fine, but 64bit only
solutions are not good in this case.
> the memory attribute of the page. We need to do some checks like,
> allow the memory attribute of the page to be changed, only if it is not
> mapped any where and not on free lists(like the in the X driver case,
> where they allocate the page and then change the attribute). Similarly,
> in generic -mm, we need to ensure that the page before it gets added to free
> list, has the right memory attribute etc.
You want to handle that in __free_pages?
I would have thought that should be handled in some higher level
function which could just check the memattr.
If the driver is exposing this
> page with special attribute, then it is drivers responsibility to
> use the same attribute across all the mappings.
>
> Is there a reason why this won't work with anonymous pages? Can you please
> elaborate.
The issue is just if you reuse the two list heads in struct page
because they're already used by the
Adding flags does not conflict here of course.
> > Also it doesn't fix the scalability of the data structure anyways
> > (a list is a list), just saves some memory.
>
> With this, we will track only the reserved regions using the linked list
> and typically these reserved regions will be small number (may be huge
> contiguous chunks but total number of such chunks will be reasonably smaller).
Reserved region defined how exactly?
-Andi
--
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/