Remove KTR hacks, pass va_list through as needed.
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 28 Dec 2008 03:23:45 +0000 (19:23 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 28 Dec 2008 03:23:45 +0000 (19:23 -0800)
sys/kern/kern_ktr.c
sys/platform/pc64/amd64/trap.c
sys/sys/ktr.h

index 1ada7b9..9506906 100644 (file)
@@ -432,60 +432,9 @@ ktr_resync_callback(void *dummy __unused)
  * KTR_WRITE_ENTRY - Primary entry point for kernel trace logging
  */
 
-void
-ktr_write_str_entry(struct ktr_info *info, const char *file, int line, const char *jg_format, ...)
-{
-       __va_list va;
-       struct ktr_entry *entry;
-       int cpu;
-       __va_start(va, jg_format);
-
-       cpu = mycpu->gd_cpuid;
-       if (!ktr_buf[cpu])
-               return;
-
-       crit_enter();
-       entry = ktr_buf[cpu] + (ktr_idx[cpu] & KTR_ENTRIES_MASK);
-       ++ktr_idx[cpu];
-#ifdef _RDTSC_SUPPORTED_
-       if (cpu_feature & CPUID_TSC) {
-#ifdef SMP
-               entry->ktr_timestamp = rdtsc() - tsc_offsets[cpu];
-#else
-               entry->ktr_timestamp = rdtsc();
-#endif
-       } else
-#endif
-       {
-               entry->ktr_timestamp = get_approximate_time_t();
-       }
-       entry->ktr_info = info;
-       entry->ktr_file = file;
-       entry->ktr_line = line;
-       crit_exit();
-       kvsnprintf(entry->ktr_data, KTR_BUFSIZE, jg_format, va);
-       ((char *)(entry->ktr_data))[KTR_BUFSIZE - 1] = '\0';
-       if (ktr_stacktrace)
-               cpu_ktr_caller(entry);
-#ifdef KTR_VERBOSE
-       if (ktr_verbose && info->kf_format) {
-#ifdef SMP
-               kprintf("cpu%d ", cpu);
-#endif
-               if (ktr_verbose > 1) {
-                       kprintf("%s.%d\t", entry->ktr_file, entry->ktr_line);
-               }
-               kvprintf(info->kf_format, ptr);
-               kprintf("\n");
-       }
-#endif
-       __va_end(va);
-}
-
 static __inline
 void
-ktr_write_entry(struct ktr_info *info, const char *file, int line,
-               const void *ptr)
+ktr_write_entry(struct ktr_info *info, const char *file, int line, __va_list va)
 {
        struct ktr_entry *entry;
        int cpu;
@@ -514,9 +463,9 @@ ktr_write_entry(struct ktr_info *info, const char *file, int line,
        entry->ktr_line = line;
        crit_exit();
        if (info->kf_data_size > KTR_BUFSIZE)
-               bcopy(ptr, entry->ktr_data, KTR_BUFSIZE);
+               bcopy(va, entry->ktr_data, KTR_BUFSIZE);
        else if (info->kf_data_size)
-               bcopy(ptr, entry->ktr_data, info->kf_data_size);
+               bcopy(va, entry->ktr_data, info->kf_data_size);
        if (ktr_stacktrace)
                cpu_ktr_caller(entry);
 #ifdef KTR_VERBOSE
@@ -527,7 +476,7 @@ ktr_write_entry(struct ktr_info *info, const char *file, int line,
                if (ktr_verbose > 1) {
                        kprintf("%s.%d\t", entry->ktr_file, entry->ktr_line);
                }
-               kvprintf(info->kf_format, ptr);
+               kvprintf(info->kf_format, va);
                kprintf("\n");
        }
 #endif
@@ -545,14 +494,6 @@ ktr_log(struct ktr_info *info, const char *file, int line, ...)
        }
 }
 
-void
-ktr_log_ptr(struct ktr_info *info, const char *file, int line, const void *ptr)
-{
-       if (panicstr == NULL) {
-               ktr_write_entry(info, file, line, ptr);
-       }
-}
-
 #ifdef DDB
 
 #define        NUM_LINES_PER_PAGE      19
@@ -676,18 +617,8 @@ db_mach_vtrace(int cpu, struct ktr_entry *kp, int idx)
        }
        db_printf("%s\t", kp->ktr_info->kf_name);
        db_printf("from(%p,%p) ", kp->ktr_caller1, kp->ktr_caller2);
-       if (kp->ktr_info->kf_format) {
-               if (strcmp(kp->ktr_info->kf_format, "STR") == 0) {
-                       db_printf("%s", kp->ktr_data);
-               } else {
-                       int64_t *args = kp->ktr_data;
-                       db_printf(kp->ktr_info->kf_format,
-                               args[0], args[1], args[2], args[3],
-                               args[4], args[5], args[6], args[7],
-                               args[8], args[9], args[10], args[11]);
-               }
-           
-       }
+       if (kp->ktr_info->kf_format)
+               db_vprintf(kp->ktr_info->kf_format, (__va_list)kp->ktr_data);
        db_printf("\n");
 
        return(1);
index d814fd5..aaf8fd2 100644 (file)
@@ -449,13 +449,8 @@ trap(struct trapframe *frame)
        if (ISPL(frame->tf_cs) == SEL_UPL) {
                /* user trap */
 
-#if JG
                KTR_LOG(kernentry_trap, p->p_pid, lp->lwp_tid,
                        frame->tf_trapno, eva);
-#else
-               KTR_LOG_STR(kernentry_trap, "pid=%d, tid=%d, trapno=%ld, eva=%lx", p->p_pid, lp->lwp_tid,
-                       frame->tf_trapno, (frame->tf_trapno == T_PAGEFLT ? frame->tf_addr : 0));
-#endif
 
                userenter(td);
 
@@ -794,11 +789,7 @@ out2:      ;
                rel_mplock();
 #endif
        if (p != NULL && lp != NULL)
-#if JG
                KTR_LOG(kernentry_trap_ret, p->p_pid, lp->lwp_tid);
-#else
-               KTR_LOG_STR(kernentry_trap_ret, "pid=%d, tid=%d", p->p_pid, lp->lwp_tid);
-#endif
 #ifdef INVARIANTS
        KASSERT(crit_count == (td->td_pri & ~TDPRI_MASK),
                ("syscall: critical section count mismatch! %d/%d",
@@ -1064,13 +1055,8 @@ syscall2(struct trapframe *frame)
        }
 #endif
 
-#if JG
        KTR_LOG(kernentry_syscall, p->p_pid, lp->lwp_tid,
                frame->tf_eax);
-#else
-       KTR_LOG_STR(kernentry_syscall, "pid=%d, tid=%d, call=%ld", p->p_pid, lp->lwp_tid,
-               frame->tf_rax);
-#endif
 
 #ifdef SMP
        KASSERT(td->td_mpcount == 0, ("badmpcount syscall2 from %p", (void *)frame->tf_eip));
@@ -1285,11 +1271,7 @@ bad:
        if (have_mplock)
                rel_mplock();
 #endif
-#if JG
        KTR_LOG(kernentry_syscall_ret, p->p_pid, lp->lwp_tid, error);
-#else
-       KTR_LOG_STR(kernentry_syscall_ret, "pid=%d, tid=%d, err=%d", p->p_pid, lp->lwp_tid, error);
-#endif
 #ifdef INVARIANTS
        KASSERT(crit_count == (td->td_pri & ~TDPRI_MASK), 
                ("syscall: critical section count mismatch! %d/%d",
@@ -1306,11 +1288,7 @@ fork_return(struct lwp *lp, struct trapframe *frame)
        frame->tf_rdx = 1;
 
        generic_lwp_return(lp, frame);
-#if JG
        KTR_LOG(kernentry_fork_ret, lp->lwp_proc->p_pid, lp->lwp_tid);
-#else
-       KTR_LOG_STR(kernentry_fork_ret, "pid=%d, tid=%d", lp->lwp_proc->p_pid, lp->lwp_tid);
-#endif
 }
 
 /*
index a5b3755..a4ace05 100644 (file)
@@ -88,9 +88,7 @@ struct ktr_entry {
        int32_t ktr_data[KTR_BUFSIZE / sizeof(int32_t)];
 };
 
-void   ktr_write_str_entry(struct ktr_info *info, const char *file, int line, const char *format, ...);
 void   ktr_log(struct ktr_info *info, const char *file, int line, ...);
-void   ktr_log_ptr(struct ktr_info *info, const char *file, int line, const void *ptr);
 void    cpu_ktr_caller(struct ktr_entry *ktr);
 
 /*
@@ -135,21 +133,11 @@ SYSCTL_DECL(_debug_ktr);
                format,                                                 \
                datasize }
 
-#define KTR_LOG_STR(name, format, args...)                                             \
-           if (ktr_ ## name ## _enable &&                              \
-             (ktr_ ## name ## _mask & *ktr_info_ ## name .kf_master_enable)) \
-           ktr_write_str_entry(&ktr_info_ ## name, __FILE__, __LINE__, format, ##args)
-
 #define KTR_LOG(name, args...)                                         \
            if (ktr_ ## name ## _enable &&                              \
              (ktr_ ## name ## _mask & *ktr_info_ ## name .kf_master_enable)) \
            ktr_log(&ktr_info_ ## name, __FILE__, __LINE__, ##args)
 
-#define KTR_LOG_PTR(name, ptr)                                         \
-           if (ktr_ ## name ## _enable &&                              \
-             (ktr_ ## name ## _mask & *ktr_info_ ## name .kf_master_enable)) \
-           ktr_log_ptr(&ktr_info_ ## name, __FILE__, __LINE__, ptr)
-
 #else
 
 #define KTR_INFO_MASTER(master)                                                \
@@ -163,8 +151,6 @@ SYSCTL_DECL(_debug_ktr);
                1 << maskbit
 
 #define KTR_LOG(info, args...)
-#define KTR_LOG_PTR(info, ptr)
-#define KTR_LOG_STR(info, format, args...)
 
 #endif