From nobody Tue Jan 11 02:45:35 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 8FF3E193B9C4; Tue, 11 Jan 2022 02:45:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4JXw6S28vzz4Ycr; Tue, 11 Jan 2022 02:45:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1CC5F11293; Tue, 11 Jan 2022 02:45:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 20B2jZbB058212; Tue, 11 Jan 2022 02:45:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 20B2jZ8B058211; Tue, 11 Jan 2022 02:45:35 GMT (envelope-from git) Date: Tue, 11 Jan 2022 02:45:35 GMT Message-Id: <202201110245.20B2jZ8B058211@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: 472f92731fb7 - stable/13 - GEOM: Minor polishing in geom_event. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 472f92731fb7ccb8f82476a4f73973655aa367c3 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1641869136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o+rNA03P4MlJYTit4k/LgYis/I0GGmuWE+yLQXqC8Jg=; b=HvCjuz3+uKhYOONvFGYvCxt+yxobljca4+9iCnzg7VwFgZfwDRJje+sum984aMEqZVL82t Y4fKL9XRC3HGias8RpuMKZvSdC42T0kqdfL5APm3pAIU9Lu8yFoSb/0yYKoH3/4rlR8xMw PA/4JRJCb8h1xiiZngSgzSIpAMp/7/9H2H7iIMkyiAisACIPksxnPK9TbdthGKE2+QysV+ TpAHvy+D2Ma8zpoLSi/XrKyeEnRpb6tEUq7VSWS3rgd2LU0/hV3baFoR6Mjdom5PizrQhd zj9L/TUKqCj+uyvcnCJ69C38mAcOyUgToWGYpKp4LAlMNTrxTa3tsewMh8P+nw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1641869136; a=rsa-sha256; cv=none; b=MNJqOd1H9j/hCU6WTQM99NPDTlURPGtznVXTJudre6PqudGlG7YtEXR+hL2ogiCv9gzO/A jq0RJ3xcu2w3rGvWu0d9/sEuiugJOf3wlgm3LqZPT5ya1APgPkSZLig8vror4P3mFNbqpK 3vgLkNihcxW+UYUtyar7hruyJsGYd6nJbfZJt5CIjDmaGVmsUrWTQJiQlRfug7Ns+EyR/z rhJls/+otV8LvMsPTamaZy6gwGXwfBavx0w651WvgX9EzekCD1oJpu2psjdhcbbxtBvVII l2nVlB9vKUpwjCR9525Sz7XcieWw5E4I6Dp7OcYLwPnEzrFhyIPZm45llKwuSg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=472f92731fb7ccb8f82476a4f73973655aa367c3 commit 472f92731fb7ccb8f82476a4f73973655aa367c3 Author: Alexander Motin AuthorDate: 2021-12-28 01:52:59 +0000 Commit: Alexander Motin CommitDate: 2022-01-11 02:45:30 +0000 GEOM: Minor polishing in geom_event. - Remove timeouts from msleep()'s. Those should always be woken up. - Move wakeup() under the lock to not call on possibly freed pointer. - Remove some dead code. MFC after: 2 weeks (cherry picked from commit f4bf48c25c3a8de3fbfd49b45b2d59026df13a6a) --- sys/geom/geom.h | 1 - sys/geom/geom_event.c | 27 +++------------------------ 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/sys/geom/geom.h b/sys/geom/geom.h index 1aba1f46d6d5..d9ba42b005de 100644 --- a/sys/geom/geom.h +++ b/sys/geom/geom.h @@ -269,7 +269,6 @@ int g_attr_changed(struct g_provider *pp, const char *attr, int flag); int g_media_changed(struct g_provider *pp, int flag); int g_media_gone(struct g_provider *pp, int flag); void g_orphan_provider(struct g_provider *pp, int error); -void g_waitidlelock(void); struct g_event *g_alloc_event(int flag); void g_post_event_ep(g_event_t *func, void *arg, struct g_event *ep, ...); diff --git a/sys/geom/geom_event.c b/sys/geom/geom_event.c index f9a1d445d36a..359c7c984f07 100644 --- a/sys/geom/geom_event.c +++ b/sys/geom/geom_event.c @@ -90,29 +90,12 @@ g_waitidle(void) TSWAIT("GEOM events"); while (!TAILQ_EMPTY(&g_events)) msleep(&g_pending_events, &g_eventlock, PPAUSE, - "g_waitidle", hz/5); + "g_waitidle", 0); TSUNWAIT("GEOM events"); mtx_unlock(&g_eventlock); curthread->td_pflags &= ~TDP_GEOM; } -#if 0 -void -g_waitidlelock(void) -{ - - g_topology_assert(); - mtx_lock(&g_eventlock); - while (!TAILQ_EMPTY(&g_events)) { - g_topology_unlock(); - msleep(&g_pending_events, &g_eventlock, PPAUSE, - "g_waitidlel", hz/5); - g_topology_lock(); - } - mtx_unlock(&g_eventlock); -} -#endif - struct g_attrchanged_args { struct g_provider *pp; const char *attr; @@ -254,10 +237,6 @@ one_event(void) wakeup(&g_pending_events); return (0); } - if (ep->flag & EV_INPROGRESS) { - mtx_unlock(&g_eventlock); - return (1); - } ep->flag |= EV_INPROGRESS; mtx_unlock(&g_eventlock); g_topology_assert(); @@ -269,8 +248,8 @@ one_event(void) ep->flag &= ~EV_INPROGRESS; if (ep->flag & EV_WAKEUP) { ep->flag |= EV_DONE; - mtx_unlock(&g_eventlock); wakeup(ep); + mtx_unlock(&g_eventlock); } else { mtx_unlock(&g_eventlock); g_free(ep); @@ -457,7 +436,7 @@ g_waitfor_event(g_event_t *func, void *arg, int flag, ...) mtx_lock(&g_eventlock); while (!(ep->flag & EV_DONE)) - msleep(ep, &g_eventlock, PRIBIO, "g_waitfor_event", hz); + msleep(ep, &g_eventlock, PRIBIO, "g_waitfor_event", 0); if (ep->flag & EV_CANCELED) error = EAGAIN; mtx_unlock(&g_eventlock);