Re: loop in crash

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

 




----- Original Message -----

> 
> So I don't understand how you got into a loop unless the kmem_cache list
> walk-through is the real problem.  If you were to print out the "cache"
> address each time through the do-while loop, does the list start repeating
> itself?
> 
> And if that's true, perhaps the kmem_cache_init() should use the
> hq_open()/hq_enter()/hq_close() facility on each cache address to
> catch a duplicate (false) entry.

And if that's true, does the attached patch help?

Thanks,
  Dave
 

 
 
--- memory.c	25 Apr 2012 15:06:59 -0000	1.278
+++ memory.c	25 Apr 2012 18:24:51 -0000
@@ -7918,6 +7918,7 @@
 		kmem_cache_downsize();
 
 	cache_buf = GETBUF(SIZE(kmem_cache_s));
+	hq_open();
 
         do {
 		cache_count++;
@@ -7929,6 +7930,17 @@
 			error(INFO, 
 		          "%sunable to initialize kmem slab cache subsystem\n\n",
 				DUMPFILE() ? "\n" : "");
+			hq_close();
+			return;
+		}
+
+		if (!hq_enter(cache)) {
+			error(WARNING, 
+			    "%sduplicate kmem_cache entry in cache list: %lx\n",
+				DUMPFILE() ? "\n" : "", cache);
+			error(INFO, "unable to initialize kmem slab cache subsystem\n\n");
+			vt->flags |= KMEM_CACHE_UNAVAIL;
+			hq_close();
 			return;
 		}
 
@@ -7944,6 +7956,7 @@
 		 */
 		if (vt->flags & KMEM_CACHE_UNAVAIL) {
 			FREEBUF(cache_buf);
+			hq_close();
 			return;
 		}
 
@@ -7965,6 +7978,7 @@
 
         } while (cache != cache_end);
 
+	hq_close();
 	FREEBUF(cache_buf);
 
 	vt->kmem_max_c_num = max_cnum;
--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility

[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux