* [PATCH] remove ptrinfo
@ 2004-09-01 10:02 Christoph Hellwig
0 siblings, 0 replies; 2+ messages in thread
From: Christoph Hellwig @ 2004-09-01 10:02 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel
it's defined in slab.c but not used anywhere
--- 1.34/include/linux/slab.h 2004-09-01 06:07:01 +02:00
+++ edited/include/linux/slab.h 2004-09-01 11:14:11 +02:00
@@ -117,8 +117,6 @@
extern kmem_cache_t *sighand_cachep;
extern kmem_cache_t *bio_cachep;
-void ptrinfo(unsigned long addr);
-
extern atomic_t slab_reclaim_pages;
#endif /* __KERNEL__ */
--- 1.144/mm/slab.c 2004-08-27 22:24:14 +02:00
+++ edited/mm/slab.c 2004-09-01 11:14:11 +02:00
@@ -3023,73 +3024,4 @@
}
return size;
-}
-
-void ptrinfo(unsigned long addr)
-{
- struct page *page;
-
- printk("Dumping data about address %p.\n", (void*)addr);
- if (!virt_addr_valid((void*)addr)) {
- printk("virt addr invalid.\n");
- return;
- }
-#ifdef CONFIG_MMU
- do {
- pgd_t *pgd = pgd_offset_k(addr);
- pmd_t *pmd;
- if (pgd_none(*pgd)) {
- printk("No pgd.\n");
- break;
- }
- pmd = pmd_offset(pgd, addr);
- if (pmd_none(*pmd)) {
- printk("No pmd.\n");
- break;
- }
-#ifdef CONFIG_X86
- if (pmd_large(*pmd)) {
- printk("Large page.\n");
- break;
- }
-#endif
- printk("normal page, pte_val 0x%llx\n",
- (unsigned long long)pte_val(*pte_offset_kernel(pmd, addr)));
- } while(0);
-#endif
-
- page = virt_to_page((void*)addr);
- printk("struct page at %p, flags %08lx\n",
- page, (unsigned long)page->flags);
- if (PageSlab(page)) {
- kmem_cache_t *c;
- struct slab *s;
- unsigned long flags;
- int objnr;
- void *objp;
-
- c = GET_PAGE_CACHE(page);
- printk("belongs to cache %s.\n",c->name);
-
- spin_lock_irqsave(&c->spinlock, flags);
- s = GET_PAGE_SLAB(page);
- printk("slabp %p with %d inuse objects (from %d).\n",
- s, s->inuse, c->num);
- check_slabp(c,s);
-
- objnr = (addr-(unsigned long)s->s_mem)/c->objsize;
- objp = s->s_mem+c->objsize*objnr;
- printk("points into object no %d, starting at %p, len %d.\n",
- objnr, objp, c->objsize);
- if (objnr >= c->num) {
- printk("Bad obj number.\n");
- } else {
- kernel_map_pages(virt_to_page(objp),
- c->objsize/PAGE_SIZE, 1);
-
- print_objinfo(c, objp, 2);
- }
- spin_unlock_irqrestore(&c->spinlock, flags);
-
- }
}
^ permalink raw reply [flat|nested] 2+ messages in thread* [PATCH] remove ptrinfo
@ 2004-09-01 17:53 Manfred Spraul
0 siblings, 0 replies; 2+ messages in thread
From: Manfred Spraul @ 2004-09-01 17:53 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: linux-kernel
Christoph wrote:
>it's defined in slab.c but not used anywhere
>
>
Correct: ptrinfo is a debug-only function. Intended to be called from
kgdb stubs or for local printk debugging tests.
I think gdb even allows to call functions while it's stopped on a
breakpoint.
I added it as an example what slab knows about it's objects - I have
such test functions in my local files, but most developers don't know
how slab tracks objects. It's reference code - I'm not sure if it
belongs into the kernel or not.
--
Manfred
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-09-01 17:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-01 10:02 [PATCH] remove ptrinfo Christoph Hellwig
-- strict thread matches above, loose matches on Subject: below --
2004-09-01 17:53 Manfred Spraul
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox