svn commit: r192604 - in user/kmacy/releng_7_2_fcs/sys: dev/hwpmc sys

Attilio Rao attilio at freebsd.org
Tue May 26 18:45:41 UTC 2009


2009/5/22 Kip Macy <kmacy at freebsd.org>:
> Author: kmacy
> Date: Fri May 22 21:45:43 2009
> New Revision: 192604
> URL: http://svn.freebsd.org/changeset/base/192604
>
> Log:
>  - remove pmc_kthread_mtx
>  - replace sleep/wakeup on kthread with a condvar

> @@ -341,14 +335,12 @@ pmclog_loop(void *arg)
>
>                mtx_lock_spin(&pmc_bufferlist_mtx);
>                TAILQ_INSERT_HEAD(&pmc_bufferlist, lb, plb_next);
> -               mtx_unlock_spin(&pmc_bufferlist_mtx);
>
>                lb = NULL;
>        }

Is this mtx_unlock_spin() removal intended to happen?
If not, it does introduce a LO between pmc_bufferlist_mtx and po_mtx.

> @@ -591,10 +582,10 @@ pmclog_configure_log(struct pmc_mdep *md
>
>  error:
>        /* shutdown the thread */
> -       mtx_lock(&pmc_kthread_mtx);
> +       mtx_lock_spin(&po->po_mtx);
>        if (po->po_kthread)
>                pmclog_stop_kthread(po);
> -       mtx_unlock(&pmc_kthread_mtx);
> +       mtx_lock_spin(&po->po_mtx);

Shouldn't this be mtx_unlock_spin() ?

The other part looks good.

Thanks,
Attilio


-- 
Peace can only be achieved by understanding - A. Einstein


More information about the svn-src-user mailing list