Skip to contentSkip to conversation

vfs: add cond_resched_lock while scanning dentry LRU lists

PATCH RESEND In review Kentaro Makita 2 participants 2 messages Jun 24, 2008 VFS

lore
Share & tools
lore
#0 lore raw

PATCH RESEND 2/2 vfs: add cond_resched_lock while scanning dentry LRU lists

o add cond_resched_lock(&dcache_lock) while scanning LRU lists on superblocks in __shrink_dcache_sb()

---
 fs/dcache.c |    1 +
 1 files changed, 1 insertion(+)
fs/dcache.c +1 -0
Index: b/fs/dcache.c
===================================================================
@@ -484,6 +484,7 @@ restart:
 				if (--cnt == 0)
 					break;
 			}
+			cond_resched_lock(&dcache_lock);
 		}
 	}
 	while (!list_empty(&tmp)) {
#1 lore raw
Quoted 13 lines · On Tue, 24 Jun 2008 10:45:23 +0900 Kentaro Makita…

o add cond_resched_lock(&dcache_lock) while scanning LRU lists on superblocks in __shrink_dcache_sb()

---
 fs/dcache.c |    1 +
 1 files changed, 1 insertion(+)

Index: b/fs/dcache.c
===================================================================

fs/dcache.c restart: · line 490

Quoted 7 lines
fs/dcache.c +1 -0
@@ -484,6 +484,7 @@ restart:
 				if (--cnt == 0)
 					break;
 			}
+			cond_resched_lock(&dcache_lock);
 		}
 	}
 	while (!list_empty(&tmp)) {

The changelog is insufficient. It tells us what the patch did (which was completely obvious anyway) but it fails to tell us _why_ the patch did it.

That is is easily guessable but a good changelog would have described the problem which you observed and would have described how the the patch changed the runtime behaviour.

And this is not a trivial formality either. Because if, for example, the problem whcih you are fixing here is "machine goes comatose for ten minutes" then we'll need algorithmic changes and not a bandaid of this nature.