----- 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