lkml.org 
[lkml]   [2009]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[Patch 02/29] GRU - Add comments raised in previous code reviews
From: Jack Steiner <steiner@sgi.com>

Add comments from previous code reviews. The comments
help explain some of the more esoteric aspects of the driver.

Move a free() to the other side of an unlock.


Signed-off-by: Jack Steiner <steiner@sgi.com>


---
drivers/misc/sgi-gru/grufault.c | 5 +++++
drivers/misc/sgi-gru/grukservices.c | 4 +++-
2 files changed, 8 insertions(+), 1 deletion(-)

Index: linux/drivers/misc/sgi-gru/grufault.c
===================================================================
--- linux.orig/drivers/misc/sgi-gru/grufault.c 2009-11-20 09:32:15.000000000 -0600
+++ linux/drivers/misc/sgi-gru/grufault.c 2009-11-20 09:32:27.000000000 -0600
@@ -733,6 +733,11 @@ long gru_get_gseg_statistics(unsigned lo
if (copy_from_user(&req, (void __user *)arg, sizeof(req)))
return -EFAULT;

+ /*
+ * The library creates arrays of contexts for threaded programs.
+ * If no gts exists in the array, the context has never been used & all
+ * statistics are implicitly 0.
+ */
gts = gru_find_lock_gts(req.gseg);
if (gts) {
memcpy(&req.stats, &gts->ustats, sizeof(gts->ustats));
Index: linux/drivers/misc/sgi-gru/grukservices.c
===================================================================
--- linux.orig/drivers/misc/sgi-gru/grukservices.c 2009-11-20 09:32:25.000000000 -0600
+++ linux/drivers/misc/sgi-gru/grukservices.c 2009-11-20 09:32:27.000000000 -0600
@@ -200,13 +200,15 @@ static int gru_free_kernel_contexts(void
bs = gru_base[bid];
if (!bs)
continue;
+
+ /* Ignore busy contexts. Don't want to block here. */
if (down_write_trylock(&bs->bs_kgts_sema)) {
kgts = bs->bs_kgts;
if (kgts && kgts->ts_gru)
gru_unload_context(kgts, 0);
- kfree(kgts);
bs->bs_kgts = NULL;
up_write(&bs->bs_kgts_sema);
+ kfree(kgts);
} else {
ret++;
}


\
 
 \ /
  Last update: 2009-11-24 16:11    [W:0.077 / U:0.676 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site