Re: [PATCH 1/5] Swap Migration V4: LRU operations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 26 Oct 2005, Peter Zijlstra wrote:

> On Tue, 2005-10-25 at 12:30 -0700, Christoph Lameter wrote:
> 
> > +		if (rc == -1) {  /* Not possible to isolate */
> > +			list_del(&page->lru);
> > +			list_add(&page->lru, src);
> >  		}
> 
> Would the usage of list_move() not be simpler?

Hmmm. yes the whole section is a bit weird there (sorry Magnus). How 
about this additional patch:

Index: linux-2.6.14-rc5-mm1/mm/vmscan.c
===================================================================
--- linux-2.6.14-rc5-mm1.orig/mm/vmscan.c	2005-10-25 08:09:52.000000000 -0700
+++ linux-2.6.14-rc5-mm1/mm/vmscan.c	2005-10-26 09:42:34.000000000 -0700
@@ -590,22 +590,22 @@ static int isolate_lru_pages(struct zone
 {
 	struct page *page;
 	int scanned = 0;
-	int rc;
 
 	while (scanned++ < nr_to_scan && !list_empty(src)) {
 		page = lru_to_page(src);
 		prefetchw_prev_lru_page(page, src, flags);
 
-		rc = __isolate_lru_page(zone, page);
-
-		BUG_ON(rc == 0); /* PageLRU(page) must be true */
-
-		if (rc == 1)     /* Succeeded to isolate page */
+		switch (__isolate_lru_page(zone, page)) {
+		case 1:
+			/* Succeeded to isolate page */
 			list_add(&page->lru, dst);
-
-		if (rc == -1) {  /* Not possible to isolate */
-			list_del(&page->lru);
-			list_add(&page->lru, src);
+			break;
+		case -1:
+			/* Not possible to isolate */
+			list_move(&page->lru, src);
+			break;
+		default:
+			BUG();
 		}
 	}
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux