svn commit: r221962 - in user/avg/xcpu/sys: kern sys
Andriy Gapon
avg at FreeBSD.org
Sun May 15 14:32:55 UTC 2011
Author: avg
Date: Sun May 15 14:32:55 2011
New Revision: 221962
URL: http://svn.freebsd.org/changeset/base/221962
Log:
better name and place for a macro that checks if curthread is panic thread
Suggested by: attilio
Modified:
user/avg/xcpu/sys/kern/kern_mutex.c
user/avg/xcpu/sys/kern/kern_rmlock.c
user/avg/xcpu/sys/kern/kern_rwlock.c
user/avg/xcpu/sys/kern/kern_sx.c
user/avg/xcpu/sys/kern/kern_synch.c
user/avg/xcpu/sys/sys/proc.h
user/avg/xcpu/sys/sys/systm.h
Modified: user/avg/xcpu/sys/kern/kern_mutex.c
==============================================================================
--- user/avg/xcpu/sys/kern/kern_mutex.c Sun May 15 14:01:23 2011 (r221961)
+++ user/avg/xcpu/sys/kern/kern_mutex.c Sun May 15 14:32:55 2011 (r221962)
@@ -348,7 +348,7 @@ _mtx_lock_sleep(struct mtx *m, uintptr_t
return;
}
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
lock_profile_obtain_lock_failed(&m->lock_object,
@@ -510,7 +510,7 @@ _mtx_lock_spin(struct mtx *m, uintptr_t
uint64_t waittime = 0;
#endif
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
if (LOCK_LOG_TEST(&m->lock_object, opts))
@@ -584,7 +584,7 @@ retry:
break;
}
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
lock_profile_obtain_lock_failed(&m->lock_object,
@@ -673,7 +673,7 @@ _mtx_unlock_sleep(struct mtx *m, int opt
return;
}
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
/*
Modified: user/avg/xcpu/sys/kern/kern_rmlock.c
==============================================================================
--- user/avg/xcpu/sys/kern/kern_rmlock.c Sun May 15 14:01:23 2011 (r221961)
+++ user/avg/xcpu/sys/kern/kern_rmlock.c Sun May 15 14:32:55 2011 (r221962)
@@ -279,7 +279,7 @@ _rm_rlock_hard(struct rmlock *rm, struct
return (1);
}
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return (1);
/*
@@ -388,7 +388,7 @@ _rm_unlock_hard(struct thread *td,struct
if (!tracker->rmp_flags)
return;
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
mtx_lock_spin(&rm_spinlock);
@@ -442,7 +442,7 @@ _rm_wlock(struct rmlock *rm)
else
mtx_lock(&rm->rm_lock_mtx);
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
if (rm->rm_writecpus != all_cpus) {
Modified: user/avg/xcpu/sys/kern/kern_rwlock.c
==============================================================================
--- user/avg/xcpu/sys/kern/kern_rwlock.c Sun May 15 14:01:23 2011 (r221961)
+++ user/avg/xcpu/sys/kern/kern_rwlock.c Sun May 15 14:32:55 2011 (r221962)
@@ -323,7 +323,7 @@ _rw_rlock(struct rwlock *rw, const char
rw->lock_object.lo_name, file, line));
WITNESS_CHECKORDER(&rw->lock_object, LOP_NEWORDER, file, line, NULL);
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
for (;;) {
@@ -535,7 +535,7 @@ _rw_runlock(struct rwlock *rw, const cha
WITNESS_UNLOCK(&rw->lock_object, 0, file, line);
LOCK_LOG_LOCK("RUNLOCK", &rw->lock_object, 0, 0, file, line);
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
/* TODO: drop "owner of record" here. */
@@ -665,7 +665,7 @@ _rw_wlock_hard(struct rwlock *rw, uintpt
return;
}
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
if (LOCK_LOG_TEST(&rw->lock_object, 0))
@@ -829,7 +829,7 @@ _rw_wunlock_hard(struct rwlock *rw, uint
return;
}
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
KASSERT(rw->rw_lock & (RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS),
Modified: user/avg/xcpu/sys/kern/kern_sx.c
==============================================================================
--- user/avg/xcpu/sys/kern/kern_sx.c Sun May 15 14:01:23 2011 (r221961)
+++ user/avg/xcpu/sys/kern/kern_sx.c Sun May 15 14:32:55 2011 (r221962)
@@ -493,7 +493,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t
return (0);
}
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return (0);
if (LOCK_LOG_TEST(&sx->lock_object, 0))
@@ -695,7 +695,7 @@ _sx_xunlock_hard(struct sx *sx, uintptr_
return;
}
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
MPASS(sx->sx_lock & (SX_LOCK_SHARED_WAITERS |
@@ -760,7 +760,7 @@ _sx_slock_hard(struct sx *sx, int opts,
int64_t sleep_time = 0;
#endif
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return (0);
/*
@@ -929,7 +929,7 @@ _sx_sunlock_hard(struct sx *sx, const ch
uintptr_t x;
int wakeup_swapper;
- if (IS_PANIC_THREAD())
+ if (THREAD_PANICED())
return;
for (;;) {
Modified: user/avg/xcpu/sys/kern/kern_synch.c
==============================================================================
--- user/avg/xcpu/sys/kern/kern_synch.c Sun May 15 14:01:23 2011 (r221961)
+++ user/avg/xcpu/sys/kern/kern_synch.c Sun May 15 14:32:55 2011 (r221962)
@@ -158,7 +158,7 @@ _sleep(void *ident, struct lock_object *
else
class = NULL;
- if (cold || IS_PANIC_THREAD()) {
+ if (cold || THREAD_PANICED()) {
/*
* During autoconfiguration, just return;
* don't run any other threads or panic below,
@@ -260,7 +260,7 @@ msleep_spin(void *ident, struct mtx *mtx
KASSERT(p != NULL, ("msleep1"));
KASSERT(ident != NULL && TD_IS_RUNNING(td), ("msleep"));
- if (cold || IS_PANIC_THREAD()) {
+ if (cold || THREAD_PANICED()) {
/*
* During autoconfiguration, just return;
* don't run any other threads or panic below,
Modified: user/avg/xcpu/sys/sys/proc.h
==============================================================================
--- user/avg/xcpu/sys/sys/proc.h Sun May 15 14:01:23 2011 (r221961)
+++ user/avg/xcpu/sys/sys/proc.h Sun May 15 14:32:55 2011 (r221962)
@@ -775,6 +775,16 @@ MALLOC_DECLARE(M_SUBPROC);
curthread->td_pflags &= ~TDP_NOSLEEPING; \
} while (0)
+/*
+ * If we have already panic'd and this is the thread that called
+ * panic(), then don't block on any mutexes but silently succeed.
+ * Otherwise, the kernel will deadlock since the scheduler isn't
+ * going to run the thread that holds the lock we need.
+ */
+#define THREAD_PANICED() \
+ (panicstr != NULL && (curthread->td_flags & TDF_INPANIC) != 0)
+
+
#define PIDHASH(pid) (&pidhashtbl[(pid) & pidhash])
extern LIST_HEAD(pidhashhead, proc) *pidhashtbl;
extern u_long pidhash;
Modified: user/avg/xcpu/sys/sys/systm.h
==============================================================================
--- user/avg/xcpu/sys/sys/systm.h Sun May 15 14:01:23 2011 (r221961)
+++ user/avg/xcpu/sys/sys/systm.h Sun May 15 14:32:55 2011 (r221962)
@@ -109,15 +109,6 @@ enum VM_GUEST { VM_GUEST_NO = 0, VM_GUES
((uintptr_t)&(var) & (sizeof(void *) - 1)) == 0, msg)
/*
- * If we have already panic'd and this is the thread that called
- * panic(), then don't block on any mutexes but silently succeed.
- * Otherwise, the kernel will deadlock since the scheduler isn't
- * going to run the thread that holds the lock we need.
- */
-#define IS_PANIC_THREAD() \
- (panicstr != NULL && (curthread->td_flags & TDF_INPANIC) != 0)
-
-/*
* XXX the hints declarations are even more misplaced than most declarations
* in this file, since they are needed in one file (per arch) and only used
* in two files.
More information about the svn-src-user
mailing list