From f82bb284bbc96b153ad211f8b39e13f3a7a0e977 Mon Sep 17 00:00:00 2001 From: Balazs Gerofi Date: Thu, 5 Mar 2015 15:55:38 +0900 Subject: [PATCH] Make pager and devobj debug messages optional --- executer/kernel/syscall.c | 21 +++++++++++---------- kernel/devobj.c | 35 +++++++++++++++++++++-------------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/executer/kernel/syscall.c b/executer/kernel/syscall.c index 90e782b1..44c41b5e 100644 --- a/executer/kernel/syscall.c +++ b/executer/kernel/syscall.c @@ -805,19 +805,19 @@ static int pager_req_create(ihk_os_t os, int fd, uintptr_t result_pa) error = vfs_fstat(fd, &st); if (error) { - printk("pager_req_create(%d,%lx):vfs_stat failed. %d\n", fd, (long)result_pa, error); + dprintk("pager_req_create(%d,%lx):vfs_stat failed. %d\n", fd, (long)result_pa, error); goto out; } if (!S_ISREG(st.mode)) { error = -ESRCH; - printk("pager_req_create(%d,%lx):not VREG. %x\n", fd, (long)result_pa, st.mode); + dprintk("pager_req_create(%d,%lx):not VREG. %x\n", fd, (long)result_pa, st.mode); goto out; } file = fget(fd); if (!file) { error = -EBADF; - printk("pager_req_create(%d,%lx):file not found. %d\n", fd, (long)result_pa, error); + dprintk("pager_req_create(%d,%lx):file not found. %d\n", fd, (long)result_pa, error); goto out; } @@ -840,7 +840,7 @@ static int pager_req_create(ihk_os_t os, int fd, uintptr_t result_pa) } if (!(maxprot & PROT_READ)) { error = -EACCES; - printk("pager_req_create(%d,%lx):cannot read file. %d\n", fd, (long)result_pa, error); + dprintk("pager_req_create(%d,%lx):cannot read file. %d\n", fd, (long)result_pa, error); goto out; } @@ -1123,7 +1123,7 @@ static int pager_req_map(ihk_os_t os, int fd, size_t len, off_t off, uintptr_t r struct pager_map_result *resp; uintptr_t phys; - printk("pager_req_map(%p,%d,%lx,%lx,%lx)\n", os, fd, len, off, result_rpa); + dprintk("pager_req_map(%p,%d,%lx,%lx,%lx)\n", os, fd, len, off, result_rpa); pager = kzalloc(sizeof(*pager), GFP_KERNEL); if (!pager) { error = -ENOMEM; @@ -1193,10 +1193,11 @@ out: if (pager) { kfree(pager); } - printk("pager_req_map(%p,%d,%lx,%lx,%lx): %d\n", os, fd, len, off, result_rpa, error); + dprintk("pager_req_map(%p,%d,%lx,%lx,%lx): %d\n", os, fd, len, off, result_rpa, error); return error; } + static int pager_req_pfn(ihk_os_t os, uintptr_t handle, off_t off, uintptr_t ppfn_rpa) { const ihk_device_t dev = ihk_os_to_dev(os); @@ -1211,7 +1212,7 @@ static int pager_req_pfn(ihk_os_t os, uintptr_t handle, off_t off, uintptr_t ppf uintptr_t phys; uintptr_t *ppfn; - printk("pager_req_pfn(%p,%lx,%lx)\n", os, handle, off); + dprintk("pager_req_pfn(%p,%lx,%lx)\n", os, handle, off); if ((off < pager->map_off) || ((pager->map_off+pager->map_len) < (off + PAGE_SIZE))) { error = -ERANGE; @@ -1256,7 +1257,7 @@ static int pager_req_pfn(ihk_os_t os, uintptr_t handle, off_t off, uintptr_t ppf error = 0; out: - printk("pager_req_pfn(%p,%lx,%lx): %d %lx\n", os, handle, off, error, pfn); + dprintk("pager_req_pfn(%p,%lx,%lx): %d %lx\n", os, handle, off, error, pfn); return error; } @@ -1265,7 +1266,7 @@ static int pager_req_unmap(ihk_os_t os, uintptr_t handle) struct pager * const pager = (void *)handle; int error; - printk("pager_req_unmap(%p,%lx)\n", os, handle); + dprintk("pager_req_unmap(%p,%lx)\n", os, handle); #if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) down_write(¤t->mm->mmap_sem); @@ -1281,7 +1282,7 @@ static int pager_req_unmap(ihk_os_t os, uintptr_t handle) } kfree(pager); - printk("pager_req_unmap(%p,%lx): %d\n", os, handle, error); + dprintk("pager_req_unmap(%p,%lx): %d\n", os, handle, error); return error; } diff --git a/kernel/devobj.c b/kernel/devobj.c index 531221ad..c5b4d656 100644 --- a/kernel/devobj.c +++ b/kernel/devobj.c @@ -34,9 +34,16 @@ #include #include +//#define DEBUG_PRINT_DEVOBJ + +#ifdef DEBUG_PRINT_DEVOBJ +#define dkprintf(...) kprintf(__VA_ARGS__) +#define ekprintf(...) kprintf(__VA_ARGS__) +#else +#define dkprintf(...) do { if (0) kprintf(__VA_ARGS__); } while (0) +#define ekprintf(...) kprintf(__VA_ARGS__) +#endif -#define dkprintf(...) do { if (0) kprintf(__VA_ARGS__); } while (0) -#define ekprintf(...) kprintf(__VA_ARGS__) struct devobj { struct memobj memobj; /* must be first */ @@ -78,7 +85,7 @@ int devobj_create(int fd, size_t len, off_t off, struct memobj **objp, int *maxp struct devobj *obj = NULL; const size_t npages = (len + PAGE_SIZE - 1) / PAGE_SIZE; - kprintf("devobj_create(%d,%lx,%lx)\n", fd, len, off); + dkprintf("devobj_create(%d,%lx,%lx)\n", fd, len, off); #define MAX_PAGES_IN_DEVOBJ (PAGE_SIZE / sizeof(uintptr_t)) if (npages > MAX_PAGES_IN_DEVOBJ) { error = -EFBIG; @@ -113,8 +120,8 @@ int devobj_create(int fd, size_t len, off_t off, struct memobj **objp, int *maxp kprintf("devobj_create(%d,%lx,%lx):map failed. %d\n", fd, len, off, error); goto out; } - kprintf("devobj_create:handle: %lx\n", result.handle); - kprintf("devobj_create:maxprot: %x\n", result.maxprot); + dkprintf("devobj_create:handle: %lx\n", result.handle); + dkprintf("devobj_create:maxprot: %x\n", result.maxprot); obj->memobj.ops = &devobj_ops; obj->memobj.flags = MF_HAS_PAGER; @@ -136,7 +143,7 @@ out: } kfree(obj); } - kprintf("devobj_create(%d,%lx,%lx): %d %p %x%d\n", fd, len, off, error, *objp, *maxprotp); + dkprintf("devobj_create(%d,%lx,%lx): %d %p %x%d\n", fd, len, off, error, *objp, *maxprotp); return error; } @@ -144,7 +151,7 @@ static void devobj_ref(struct memobj *memobj) { struct devobj *obj = to_devobj(memobj); - kprintf("devobj_ref(%p %lx):\n", obj, obj->handle); + dkprintf("devobj_ref(%p %lx):\n", obj, obj->handle); memobj_lock(&obj->memobj); ++obj->ref; memobj_unlock(&obj->memobj); @@ -157,7 +164,7 @@ static void devobj_release(struct memobj *memobj) struct devobj *free_obj = NULL; uintptr_t handle; - kprintf("devobj_release(%p %lx)\n", obj, obj->handle); + dkprintf("devobj_release(%p %lx)\n", obj, obj->handle); memobj_lock(&obj->memobj); --obj->ref; @@ -189,7 +196,7 @@ static void devobj_release(struct memobj *memobj) kfree(free_obj); } - kprintf("devobj_release(%p %lx):free %p\n", + dkprintf("devobj_release(%p %lx):free %p\n", obj, handle, free_obj); return; } @@ -204,7 +211,7 @@ static int devobj_get_page(struct memobj *memobj, off_t off, int p2align, uintpt ihk_mc_user_context_t ctx; int ix; - kprintf("devobj_get_page(%p %lx,%lx,%d)\n", memobj, obj->handle, off, p2align); + dkprintf("devobj_get_page(%p %lx,%lx,%d)\n", memobj, obj->handle, off, p2align); if ((pgoff < obj->pfn_pgoff) || ((obj->pfn_pgoff + obj->npages) <= pgoff)) { error = -EFBIG; @@ -212,7 +219,7 @@ static int devobj_get_page(struct memobj *memobj, off_t off, int p2align, uintpt goto out; } ix = pgoff - obj->pfn_pgoff; -kprintf("ix: %ld\n", ix); + dkprintf("ix: %ld\n", ix); memobj_lock(&obj->memobj); pfn = obj->pfn_table[ix]; @@ -232,7 +239,7 @@ kprintf("ix: %ld\n", ix); if (pfn & PFN_PRESENT) { /* convert remote physical into local physical */ -kprintf("devobj_get_page(%p %lx,%lx,%d):PFN_PRESENT before %#lx\n", memobj, obj->handle, off, p2align, pfn); + dkprintf("devobj_get_page(%p %lx,%lx,%d):PFN_PRESENT before %#lx\n", memobj, obj->handle, off, p2align, pfn); attr = pfn & ~PFN_PFN; /* TODO: do an arch dependent PTE to mapping flag conversion @@ -245,7 +252,7 @@ kprintf("devobj_get_page(%p %lx,%lx,%d):PFN_PRESENT before %#lx\n", memobj, obj- pfn = ihk_mc_map_memory(NULL, (pfn & PFN_PFN), PAGE_SIZE); pfn &= PFN_PFN; pfn |= attr; -kprintf("devobj_get_page(%p %lx,%lx,%d):PFN_PRESENT after %#lx\n", memobj, obj->handle, off, p2align, pfn); + dkprintf("devobj_get_page(%p %lx,%lx,%d):PFN_PRESENT after %#lx\n", memobj, obj->handle, off, p2align, pfn); } memobj_lock(&obj->memobj); @@ -263,6 +270,6 @@ kprintf("devobj_get_page(%p %lx,%lx,%d):PFN_PRESENT after %#lx\n", memobj, obj-> *physp = pfn & PFN_PFN; out: - kprintf("devobj_get_page(%p %lx,%lx,%d): %d %lx\n", memobj, obj->handle, off, p2align, error, *physp); + dkprintf("devobj_get_page(%p %lx,%lx,%d): %d %lx\n", memobj, obj->handle, off, p2align, error, *physp); return error; }