Re: [Lhms-devel] new memory hotremoval patch

From: IWAMOTO Toshihiro
Date: Thu Jul 01 2004 - 00:59:49 EST


At Wed, 30 Jun 2004 22:28:44 -0700,
Dave Hansen wrote:
>
> On Wed, 2004-06-30 at 20:05, IWAMOTO Toshihiro wrote:
> > At Wed, 30 Jun 2004 17:11:11 -0700,
> > Dave Hansen wrote:
> > >
> > > On Wed, 2004-06-30 at 04:17, IWAMOTO Toshihiro wrote:
> > > > Due to struct page changes, page->mapping == NULL predicate can no
> > > > longer be used for detecting cancellation of an anonymous page
> > > > remapping operation. So the PG_again bit is being used again.
> > > > It may be still possible to kill the PG_again bit, but the priority is
> > > > rather low.
> > >
> > > But, you reintroduced it everywhere, including file-backed pages, not
> > > just for anonymous pages? Why was this necessary?
> >
> > Which PG_again check are you talking about?
> > I think BUG_ON()s in file backed page codes should be kept for now.
>
> I'm referring to all of the code segments like this:
>
> + if (PageAgain(page)) {
> + unlock_page(page);
> + page_cache_release(page);
> + goto again;
> + }
> + BUG_ON(PageAgain(page));

Such code only appears only in try_to_unuse and do_swap_page. These
functions aren't for page caches.

I'm confused. Weren't you talking about page cache code?

> For any page that's in the page cache that you want to remove, simply
> take the page lock, overwrite page->mapping, and the page cache code
> will take care of the rest, no PG_again needed.

What do you mean by "to remove"?


> > For swap pages, one possibility to reserve a special swap entry
> > constant (SWAP_AGAIN) and check page->private instead of PageAgain
> > check, but I'm not sure if this is a good idea.
> >
> > #define SWAP_AGAIN ~0UL
>
> Do you mean pages in the swap cache?

Yes.

--
IWAMOTO Toshihiro
-
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/