Date: Fri, 22 May 2009 19:28:13 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r192597 - in user/kmacy/releng_7_2_fcs/sys: dev/hwpmc sys Message-ID: <200905221928.n4MJSDON016387@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Fri May 22 19:28:13 2009 New Revision: 192597 URL: http://svn.freebsd.org/changeset/base/192597 Log: switch per-pmc wakeups to a condvar Modified: user/kmacy/releng_7_2_fcs/sys/dev/hwpmc/hwpmc_logging.c user/kmacy/releng_7_2_fcs/sys/dev/hwpmc/hwpmc_mod.c user/kmacy/releng_7_2_fcs/sys/sys/pmc.h Modified: user/kmacy/releng_7_2_fcs/sys/dev/hwpmc/hwpmc_logging.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/hwpmc/hwpmc_logging.c Fri May 22 19:05:48 2009 (r192596) +++ user/kmacy/releng_7_2_fcs/sys/dev/hwpmc/hwpmc_logging.c Fri May 22 19:28:13 2009 (r192597) @@ -287,9 +287,7 @@ pmclog_loop(void *arg) wakeup_one(po->po_kthread); } - - (void) msleep(po, &pmc_kthread_mtx, - PWAIT, "pmcloop", 0); + cv_wait(&po->po_cv, &pmc_kthread_mtx); continue; } @@ -502,6 +500,7 @@ pmclog_schedule_io(struct pmc_owner *po) PMCDBG(LOG,SIO, 1, "po=%p", po); + mtx_assert(&pmc_kthread_mtx, MA_OWNED); mtx_assert(&po->po_mtx, MA_OWNED); /* @@ -510,7 +509,7 @@ pmclog_schedule_io(struct pmc_owner *po) */ TAILQ_INSERT_TAIL(&po->po_logbuffers, po->po_curbuf, plb_next); po->po_curbuf = NULL; - wakeup_one(po); + cv_signal(&po->po_cv); } /* @@ -527,7 +526,7 @@ pmclog_stop_kthread(struct pmc_owner *po mtx_assert(&pmc_kthread_mtx, MA_OWNED); po->po_flags &= ~PMC_PO_OWNS_LOGFILE; - wakeup_one(po); + cv_signal(&po->po_cv); if (po->po_kthread) msleep(po->po_kthread, &pmc_kthread_mtx, PPAUSE, "pmckstp", 0); } Modified: user/kmacy/releng_7_2_fcs/sys/dev/hwpmc/hwpmc_mod.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/hwpmc/hwpmc_mod.c Fri May 22 19:05:48 2009 (r192596) +++ user/kmacy/releng_7_2_fcs/sys/dev/hwpmc/hwpmc_mod.c Fri May 22 19:28:13 2009 (r192597) @@ -1906,6 +1906,7 @@ pmc_allocate_owner_descriptor(struct pro TAILQ_INIT(&po->po_logbuffers); mtx_init(&po->po_mtx, "pmc-owner-mtx", "pmc-per-proc", MTX_SPIN); + cv_init(&po->po_cv, "pmc-cv"); PMCDBG(OWN,ALL,1, "allocate-owner proc=%p (%d, %s) pmc-owner=%p", p, p->p_pid, p->p_comm, po); Modified: user/kmacy/releng_7_2_fcs/sys/sys/pmc.h ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/sys/pmc.h Fri May 22 19:05:48 2009 (r192596) +++ user/kmacy/releng_7_2_fcs/sys/sys/pmc.h Fri May 22 19:28:13 2009 (r192597) @@ -33,6 +33,7 @@ #ifndef _SYS_PMC_H_ #define _SYS_PMC_H_ +#include <sys/condvar.h> #include <dev/hwpmc/pmc_events.h> #include <machine/pmc_mdep.h> @@ -756,6 +757,7 @@ struct pmc_owner { struct file *po_file; /* file reference */ int po_error; /* recorded error */ int po_sscount; /* # SS PMCs owned */ + struct cv po_cv; /* condvar */ }; #define PMC_PO_OWNS_LOGFILE 0x00000001 /* has a log file */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905221928.n4MJSDON016387>