#include <linux/kp30.h>
#include <linux/portals_compat25.h>
+#include <linux/libcfs.h>
+
+unsigned int portal_subsystem_debug = ~0 - (S_PORTALS | S_QSWNAL | S_SOCKNAL |
+ S_GMNAL | S_IBNAL);
+EXPORT_SYMBOL(portal_subsystem_debug);
+
+unsigned int portal_debug = (D_WARNING | D_DLMTRACE | D_ERROR | D_EMERG | D_HA |
+ D_RPCTRACE | D_VFSTRACE);
+EXPORT_SYMBOL(portal_debug);
+
+unsigned int portal_cerror = 1;
+EXPORT_SYMBOL(portal_cerror);
+
+unsigned int portal_printk;
+EXPORT_SYMBOL(portal_printk);
+
+unsigned int portal_stack;
+EXPORT_SYMBOL(portal_stack);
+
+#ifdef __KERNEL__
+atomic_t portal_kmemory = ATOMIC_INIT(0);
+EXPORT_SYMBOL(portal_kmemory);
+#endif
#define DEBUG_OVERFLOW 1024
static char *debug_buf = NULL;
if (debug_buf == NULL)
return -EINVAL;
- CDEBUG(0, "********************************************************\n");
+ CDEBUG(D_TRACE,"***************************************************\n");
CWARN("DEBUG MARKER: %s\n", text);
- CDEBUG(0, "********************************************************\n");
+ CDEBUG(D_TRACE,"***************************************************\n");
return 0;
}
copied = 0;
list_for_each(pos, &my_pages) {
unsigned long to_copy;
- page = list_entry(pos, struct page, list);
+ void *addr;
+ page = list_entry(pos, struct page, list);
to_copy = min(total - off, PAGE_SIZE);
if (to_copy == 0) {
off = 0;
to_copy = min(debug_size - off, PAGE_SIZE);
}
finish_partial:
- memcpy(kmap(page), debug_buf + off, to_copy);
- kunmap(page);
+ addr = kmap_atomic(page, KM_USER0);
+ memcpy(addr, debug_buf + off, to_copy);
+ kunmap_atomic(addr, KM_USER0);
copied += to_copy;
if (copied >= total)
break;
subsys, mask, smp_processor_id(),
tv.tv_sec, tv.tv_usec, stack, current->pid);
max_nob -= prefix_nob;
+
if(*(format + strlen(format) - 1) != '\n')
- *(format + strlen(format)) = '\n';
+ printk(KERN_INFO "format at %s:%d:%s doesn't end in newline\n",
+ file, line, fn);
#if defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
msg_nob = snprintf(debug_buf + debug_off + prefix_nob, max_nob,
char *portals_nid2str(int nal, ptl_nid_t nid, char *str)
{
switch(nal){
+/* XXX this should be a nal method of some sort */
+#ifndef CRAY_PORTALS
case TCPNAL:
/* userspace NAL */
case SOCKNAL:
case SCIMACNAL:
sprintf(str, "%u:%u", (__u32)(nid >> 32), (__u32)nid);
break;
+#endif
default:
- return NULL;
+ snprintf(str, PTL_NALFMT_SIZE-1, "(?%llx)", (long long)nid);
}
return str;
}
#ifdef __KERNEL__
-#include <linux/lustre_version.h>
-#if (LUSTRE_KERNEL_VERSION >= 30)
-#warning "FIXME: remove workaround when l30 is widely used"
char stack_backtrace[LUSTRE_TRACE_SIZE];
spinlock_t stack_backtrace_lock = SPIN_LOCK_UNLOCKED;
char *portals_debug_dumpstack(void)
{
asm("int $3");
+ return "dump stack\n";
}
#elif defined(__i386__)
#endif /* __arch_um__ */
EXPORT_SYMBOL(stack_backtrace_lock);
EXPORT_SYMBOL(portals_debug_dumpstack);
-#endif /* LUSTRE_KERNEL_VERSION < 30 */
#endif /* __KERNEL__ */
EXPORT_SYMBOL(portals_debug_dumplog);