# This code is issued under the GNU General Public License.
# See the file COPYING in this distribution
-EXTRA_DIST = Rules.linux archdep.m4
+EXTRA_DIST = Rules.linux archdep.m4 include
DIST_SUBDIRS = libcfs portals knals unals utils tests doc router
if LIBLUSTRE
SUBDIRS = portals unals utils
% ---------------------------------------------------------------
%
-% $Id: ieee.bst,v 1.1.8.1 2003/05/23 07:02:28 adilger Exp $
-%
% by Paolo.Ienne@di.epfl.ch
%
% ---------------------------------------------------------------
{\begin{quote}\textbf{Discussion}: \slshape}%
{\end{quote}}
\pagestyle{myheadings}
-\markboth{$Revision: 1.1.8.1 $\hfil$Date: 2003/05/23 07:02:29 $}%
-{$Date: 2003/05/23 07:02:29 $\hfil$Revision: 1.1.8.1 $}
\end_preamble
\language american
\inputencoding auto
portal_subsystem_debug & (1 << (DEBUG_SUBSYSTEM >> 24)))) \
portals_debug_msg(DEBUG_SUBSYSTEM, mask, \
__FILE__, __FUNCTION__, __LINE__, \
- CDEBUG_STACK(), format , ## a); \
+ CDEBUG_STACK(), format, ## a); \
} while (0)
#define CWARN(format, a...) CDEBUG(D_WARNING, format, ## a)
#endif
#ifdef __arch_um__
-#define LBUG() \
+#define LBUG_WITH_LOC(file, func, line) \
do { \
CEMERG("LBUG - trying to dump log to /tmp/lustre-log\n"); \
portals_debug_dumplog(); \
- portals_run_lbug_upcall(__FILE__, __FUNCTION__, __LINE__); \
+ portals_run_lbug_upcall(file, func, line); \
panic("LBUG"); \
} while (0)
#else
-#define LBUG() \
+#define LBUG_WITH_LOC(file, func, line) \
do { \
CEMERG("LBUG\n"); \
portals_debug_dumplog(); \
- portals_run_lbug_upcall(__FILE__, __FUNCTION__, __LINE__); \
+ portals_run_lbug_upcall(file, func, line); \
set_task_state(current, TASK_UNINTERRUPTIBLE); \
schedule(); \
} while (0)
#endif /* __arch_um__ */
+#define LBUG() LBUG_WITH_LOC(__FILE__, __FUNCTION__, __LINE__)
+
/*
* Memory
*/
/*
-** $Id: defines.h,v 1.1.8.1 2003/05/23 07:02:35 adilger Exp $
**
** This files contains definitions that are used throughout the cplant code.
*/
-/*
-** $Id: internal.h,v 1.1.8.1 2003/05/23 07:02:35 adilger Exp $
-*/
#ifndef _P30_INTERNAL_H_
#define _P30_INTERNAL_H_
#else
-extern kmem_cache_t *ptl_md_slab;
-extern kmem_cache_t *ptl_msg_slab;
-extern kmem_cache_t *ptl_me_slab;
-extern kmem_cache_t *ptl_eq_slab;
+extern kmem_cache_t *ptl_md_slab;
+extern kmem_cache_t *ptl_msg_slab;
+extern kmem_cache_t *ptl_me_slab;
+extern kmem_cache_t *ptl_eq_slab;
extern atomic_t md_in_use_count;
extern atomic_t msg_in_use_count;
extern atomic_t me_in_use_count;
lib_msg_alloc(nal_cb_t *nal)
{
/* ALWAYS called with statelock held */
- lib_msg_t *msg = kmem_cache_alloc(ptl_msg_slab, GFP_ATOMIC);
+ lib_msg_t *msg = kmem_cache_alloc(ptl_msg_slab, GFP_ATOMIC);
if (msg == NULL)
return (NULL);
#else
-extern kmem_cache_t *ptl_md_slab;
-extern kmem_cache_t *ptl_msg_slab;
-extern kmem_cache_t *ptl_me_slab;
-extern kmem_cache_t *ptl_eq_slab;
+extern kmem_cache_t *ptl_md_slab;
+extern kmem_cache_t *ptl_msg_slab;
+extern kmem_cache_t *ptl_me_slab;
+extern kmem_cache_t *ptl_eq_slab;
extern atomic_t md_in_use_count;
extern atomic_t msg_in_use_count;
extern atomic_t me_in_use_count;
lib_msg_alloc(nal_cb_t *nal)
{
/* ALWAYS called with statelock held */
- lib_msg_t *msg = kmem_cache_alloc(ptl_msg_slab, GFP_ATOMIC);
+ lib_msg_t *msg = kmem_cache_alloc(ptl_msg_slab, GFP_ATOMIC);
if (msg == NULL)
return (NULL);
-/*
-** $Id: myrnal.h,v 1.1.8.1 2003/05/23 07:02:36 adilger Exp $
-*/
-
#ifndef MYRNAL_H
#define MYRNAL_H
-/*
-** $Id: nal.h,v 1.1.8.1 2003/05/23 07:02:36 adilger Exp $
-*/
#ifndef _NAL_H_
#define _NAL_H_
-/*
- * TITLE(ppid_h, "@(#) $Id: ppid.h,v 1.1.8.1 2003/05/23 07:02:36 adilger Exp $");
- */
-
#ifndef _INCppidh_
#define _INCppidh_
/*
-** $Id: stringtab.h,v 1.1.8.1 2003/05/23 07:02:36 adilger Exp $
-*/
-/*
* stringtab.h
*/
file = filp_open(debug_file_name, O_CREAT|O_TRUNC|O_RDWR, 0644);
if (!file || IS_ERR(file)) {
- CERROR("cannot open %s for dumping", debug_file_name);
+ CERROR("cannot open %s for dumping: %ld\n", debug_file_name,
+ PTR_ERR(file));
GOTO(out, PTR_ERR(file));
} else {
printk(KERN_ALERT "dumping log to %s ... writing ...\n",
void *journal_info;
mm_segment_t oldfs;
unsigned long force_flush = 0;
- unsigned long size;
+ unsigned long size, off, flags;
int rc;
kportal_daemonize("ldebug_daemon");
debug_daemon_state.overlapped = 0;
debug_daemon_state.stopped = 0;
+
+ spin_lock_irqsave(&portals_debug_lock, flags);
+ off = atomic_read(&debug_off_a) + 1;
+ if (debug_wrapped)
+ off = (off >= debug_size)? 0 : off;
+ else
+ off = 0;
+ atomic_set(&debug_daemon_next_write, off);
atomic_set(&debug_daemon_state.paused, 0);
+ spin_unlock_irqrestore(&portals_debug_lock, flags);
+
oldfs = get_fs();
set_fs(KERNEL_DS);
while (1) {
init_waitqueue_head(&debug_daemon_state.lctl);
init_waitqueue_head(&debug_daemon_state.daemon);
- atomic_set(&debug_daemon_next_write, atomic_read(&debug_off_a));
-
daemon_file_size_limit = size << 20;
debug_daemon_state.lctl_event = 0;
{
portals_debug_msg(0, D_EMERG, file, func, line, CDEBUG_STACK(),
"ASSERTION(%s) failed\n", expr);
- LBUG();
+ LBUG_WITH_LOC(file, func, line);
}
#endif
# This code is issued under the GNU General Public License.
# See the file COPYING in this distribution
-EXTRA_DIST = Rules.linux archdep.m4
+EXTRA_DIST = Rules.linux archdep.m4 include
DIST_SUBDIRS = libcfs portals knals unals utils tests doc router
if LIBLUSTRE
SUBDIRS = portals unals utils
% ---------------------------------------------------------------
%
-% $Id: ieee.bst,v 1.1.8.1 2003/05/23 07:02:28 adilger Exp $
-%
% by Paolo.Ienne@di.epfl.ch
%
% ---------------------------------------------------------------
{\begin{quote}\textbf{Discussion}: \slshape}%
{\end{quote}}
\pagestyle{myheadings}
-\markboth{$Revision: 1.1.8.1 $\hfil$Date: 2003/05/23 07:02:29 $}%
-{$Date: 2003/05/23 07:02:29 $\hfil$Revision: 1.1.8.1 $}
\end_preamble
\language american
\inputencoding auto
portal_subsystem_debug & (1 << (DEBUG_SUBSYSTEM >> 24)))) \
portals_debug_msg(DEBUG_SUBSYSTEM, mask, \
__FILE__, __FUNCTION__, __LINE__, \
- CDEBUG_STACK(), format , ## a); \
+ CDEBUG_STACK(), format, ## a); \
} while (0)
#define CWARN(format, a...) CDEBUG(D_WARNING, format, ## a)
#endif
#ifdef __arch_um__
-#define LBUG() \
+#define LBUG_WITH_LOC(file, func, line) \
do { \
CEMERG("LBUG - trying to dump log to /tmp/lustre-log\n"); \
portals_debug_dumplog(); \
- portals_run_lbug_upcall(__FILE__, __FUNCTION__, __LINE__); \
+ portals_run_lbug_upcall(file, func, line); \
panic("LBUG"); \
} while (0)
#else
-#define LBUG() \
+#define LBUG_WITH_LOC(file, func, line) \
do { \
CEMERG("LBUG\n"); \
portals_debug_dumplog(); \
- portals_run_lbug_upcall(__FILE__, __FUNCTION__, __LINE__); \
+ portals_run_lbug_upcall(file, func, line); \
set_task_state(current, TASK_UNINTERRUPTIBLE); \
schedule(); \
} while (0)
#endif /* __arch_um__ */
+#define LBUG() LBUG_WITH_LOC(__FILE__, __FUNCTION__, __LINE__)
+
/*
* Memory
*/
/*
-** $Id: defines.h,v 1.1.8.1 2003/05/23 07:02:35 adilger Exp $
**
** This files contains definitions that are used throughout the cplant code.
*/
#else
-extern kmem_cache_t *ptl_md_slab;
-extern kmem_cache_t *ptl_msg_slab;
-extern kmem_cache_t *ptl_me_slab;
-extern kmem_cache_t *ptl_eq_slab;
+extern kmem_cache_t *ptl_md_slab;
+extern kmem_cache_t *ptl_msg_slab;
+extern kmem_cache_t *ptl_me_slab;
+extern kmem_cache_t *ptl_eq_slab;
extern atomic_t md_in_use_count;
extern atomic_t msg_in_use_count;
extern atomic_t me_in_use_count;
lib_msg_alloc(nal_cb_t *nal)
{
/* ALWAYS called with statelock held */
- lib_msg_t *msg = kmem_cache_alloc(ptl_msg_slab, GFP_ATOMIC);
+ lib_msg_t *msg = kmem_cache_alloc(ptl_msg_slab, GFP_ATOMIC);
if (msg == NULL)
return (NULL);
-/*
-** $Id: myrnal.h,v 1.1.8.1 2003/05/23 07:02:36 adilger Exp $
-*/
-
#ifndef MYRNAL_H
#define MYRNAL_H
-/*
-** $Id: nal.h,v 1.1.8.1 2003/05/23 07:02:36 adilger Exp $
-*/
#ifndef _NAL_H_
#define _NAL_H_
-/*
- * TITLE(ppid_h, "@(#) $Id: ppid.h,v 1.1.8.1 2003/05/23 07:02:36 adilger Exp $");
- */
-
#ifndef _INCppidh_
#define _INCppidh_
/*
-** $Id: stringtab.h,v 1.1.8.1 2003/05/23 07:02:36 adilger Exp $
-*/
-/*
* stringtab.h
*/
file = filp_open(debug_file_name, O_CREAT|O_TRUNC|O_RDWR, 0644);
if (!file || IS_ERR(file)) {
- CERROR("cannot open %s for dumping", debug_file_name);
+ CERROR("cannot open %s for dumping: %ld\n", debug_file_name,
+ PTR_ERR(file));
GOTO(out, PTR_ERR(file));
} else {
printk(KERN_ALERT "dumping log to %s ... writing ...\n",
void *journal_info;
mm_segment_t oldfs;
unsigned long force_flush = 0;
- unsigned long size;
+ unsigned long size, off, flags;
int rc;
kportal_daemonize("ldebug_daemon");
debug_daemon_state.overlapped = 0;
debug_daemon_state.stopped = 0;
+
+ spin_lock_irqsave(&portals_debug_lock, flags);
+ off = atomic_read(&debug_off_a) + 1;
+ if (debug_wrapped)
+ off = (off >= debug_size)? 0 : off;
+ else
+ off = 0;
+ atomic_set(&debug_daemon_next_write, off);
atomic_set(&debug_daemon_state.paused, 0);
+ spin_unlock_irqrestore(&portals_debug_lock, flags);
+
oldfs = get_fs();
set_fs(KERNEL_DS);
while (1) {
init_waitqueue_head(&debug_daemon_state.lctl);
init_waitqueue_head(&debug_daemon_state.daemon);
- atomic_set(&debug_daemon_next_write, atomic_read(&debug_off_a));
-
daemon_file_size_limit = size << 20;
debug_daemon_state.lctl_event = 0;
{
portals_debug_msg(0, D_EMERG, file, func, line, CDEBUG_STACK(),
"ASSERTION(%s) failed\n", expr);
- LBUG();
+ LBUG_WITH_LOC(file, func, line);
}
#endif
stop() {
echo -n "Shutting down $SERVICE: "
- python2 $LCONF -v --cleanup --failover $confopt
+ python2 $LCONF -v --cleanup --force --failover $confopt
RETVAL=$?
echo done
}