From owner-svn-src-all@FreeBSD.ORG Fri Aug 13 19:47:13 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CAA3106566B; Fri, 13 Aug 2010 19:47:13 +0000 (UTC) (envelope-from mdf356@gmail.com) Received: from mail-ew0-f54.google.com (mail-ew0-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 9A9218FC08; Fri, 13 Aug 2010 19:47:12 +0000 (UTC) Received: by ewy26 with SMTP id 26so1843086ewy.13 for ; Fri, 13 Aug 2010 12:47:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=QMvAUEkq6NIVRaakBmoIt5kv8Qu3seK6zT2ZaGwX87s=; b=wc6q44x17UWBsKgwFvTgFAb5XhpRuspLlu4vo4OO5BzbMe2GsnwBofAaMmvSoHYS0c LCVd0z1C4t1q5hBXNPkDUP/ADmaeIEwCYx8FPsxxVFKKjL/ii1uMp2U14gOgrWCH86Fq V0X0zyilwJKFjBfuzDJjHaZ4g22BQABPmlWUE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=VHyjHnU1u1+KKr5F5sBzzHtk5gzuLxKekNSsHKhmRAzk9yVBQoIA4wtOrDp2/sPCt5 8DlOIeGPfmhxe4XxvZqKWn0zMStXkkMACm9LfbZeBiWCb1ZWVihlyFM1hR9NLMhuk3+y /k/8QlflFUbsRRzpIYiQSswqJ0aojArqBhyCg= MIME-Version: 1.0 Received: by 10.213.31.143 with SMTP id y15mr1911860ebc.38.1281728831209; Fri, 13 Aug 2010 12:47:11 -0700 (PDT) Sender: mdf356@gmail.com Received: by 10.213.10.196 with HTTP; Fri, 13 Aug 2010 12:47:11 -0700 (PDT) In-Reply-To: <201008131920.o7DJKZgD004713@svn.freebsd.org> References: <201008131920.o7DJKZgD004713@svn.freebsd.org> Date: Fri, 13 Aug 2010 12:47:11 -0700 X-Google-Sender-Auth: wJPSLIKJH1btOMMem820jCrcXxU Message-ID: From: mdf@FreeBSD.org To: Pawel Jakub Dawidek Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r211284 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Aug 2010 19:47:13 -0000 On Fri, Aug 13, 2010 at 12:20 PM, Pawel Jakub Dawidek wro= te: > Author: pjd > Date: Fri Aug 13 19:20:35 2010 > New Revision: 211284 > URL: http://svn.freebsd.org/changeset/base/211284 > > Log: > =A0Simplify taskqueue_drain() by using proved macros. Thanks! This was on my to-do list since I'd been in this file, once I could figure out why it hand't already been done. :-) Cheers, matthew > > Modified: > =A0head/sys/kern/subr_taskqueue.c > > Modified: head/sys/kern/subr_taskqueue.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/kern/subr_taskqueue.c =A0 =A0 =A0Fri Aug 13 18:17:32 2010 = =A0 =A0 =A0 =A0(r211283) > +++ head/sys/kern/subr_taskqueue.c =A0 =A0 =A0Fri Aug 13 19:20:35 2010 = =A0 =A0 =A0 =A0(r211284) > @@ -248,23 +248,16 @@ taskqueue_run(struct taskqueue *queue, s > =A0void > =A0taskqueue_drain(struct taskqueue *queue, struct task *task) > =A0{ > - =A0 =A0 =A0 if (queue->tq_spin) { =A0 =A0 =A0 =A0 =A0 /* XXX */ > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 mtx_lock_spin(&queue->tq_mutex); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 while (task->ta_pending !=3D 0 || > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (task->ta_running !=3D NULL && task= =3D=3D *task->ta_running)) { > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 msleep_spin(task, &queue->t= q_mutex, "-", 0); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 mtx_unlock_spin(&queue->tq_mutex); > - =A0 =A0 =A0 } else { > + > + =A0 =A0 =A0 if (!queue->tq_spin) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, = NULL, __func__); > > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 mtx_lock(&queue->tq_mutex); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 while (task->ta_pending !=3D 0 || > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (task->ta_running !=3D NULL && task= =3D=3D *task->ta_running)) { > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 msleep(task, &queue->tq_mut= ex, PWAIT, "-", 0); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 mtx_unlock(&queue->tq_mutex); > + =A0 =A0 =A0 TQ_LOCK(queue); > + =A0 =A0 =A0 while (task->ta_pending !=3D 0 || > + =A0 =A0 =A0 =A0 =A0 (task->ta_running !=3D NULL && task =3D=3D *task->t= a_running)) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 TQ_SLEEP(queue, task, &queue->tq_mutex, PWA= IT, "-", 0); > =A0 =A0 =A0 =A0} > + =A0 =A0 =A0 TQ_UNLOCK(queue); > =A0} > > =A0static void >