From nobody Fri May 10 00:57:18 2024 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 4Vb9TB73tpz5KR36; Fri, 10 May 2024 00:57:18 +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 4Vb9TB6Mw1z4JrP; Fri, 10 May 2024 00:57:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1715302638; 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=A/XYkdCzeFxymV/qVoYP2uKYoTCAUsy1YFmgDWe8acY=; b=h59eIelAadmbEGsxa8oPC8EKwoN91KK2uVxSgfrmQ3/pxpM3AwJ+idATFPPq+tuqsyoRhr zWPuvXpLGXsiHoTl1pZQNcFex83a31o364ocPVvo1KIaYmRx6kHU08namM8xYfzHbQl/Bc Oc4woWsx+ei13yQ0toeCEI/M8jwsCIvKgIXgmoZsFtxOBPq+fRfItBznv2OU7emFHXIHY6 EcCurquuYG7hfXRijOhS2myNo9T+axo26aymGJrxZZARyHjzIB9sTEYoUukPLs2+zo05f/ 3yU81dyxtSf3scgP5S23fwpV4y5lWuIuCMF5Wzya68ezh2U0sqp+b9wSfj3KMA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1715302638; a=rsa-sha256; cv=none; b=ZubAMRT+dvI37uoqQDrwT56ujDJlKKSzD23tFD2bQziR8rIFe1I9oBpgfGGTPvO+hUm1bs tZVOy/dHvE1jcmBLZR7vcwTUaXSBfoBgrivF/AHwketKilxRn9QolsAuVfE8r+vLnJTi7Z ppwNt/+ExKXsvR9DYgMYatWyEeEo9QAOOTjj9SYJSNxp+nCO/lleMQ+gLs9ukRME+Wd2Av 7vjTbl+Dib0dGHfojmw+JkwnlVNgQa5f7ogHOZx3bVqrVogIambgvNhl0DmVI2No5Hc2lW uVxeAgVtXMdQRcAxLcy5Vr+HsGuJzHm5pTDHwAMIt7xuz04DsrOuu/9IfMAxRQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1715302638; 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=A/XYkdCzeFxymV/qVoYP2uKYoTCAUsy1YFmgDWe8acY=; b=CjrX7GZIvUOnf6bOsS6Rfd2BEYgd/9p4WCZtOVaV1EGNR2EnP8SL1F/DY6E6myz6BVODUw YBFT3qAO8FhQZ4ynj0ic0wdsT7aBB9gUzA32wgifn5fXV+y2Kh5DCJvalwAlG0SOugDjrb YdgzAxgRollvaKBBe4DLOaFBH1ECw5CyV9lxAPs5Z+pDPjHJt6pvTGm7AFAVJORm8kt7Nu yR/gzLi1wah12ZJy2tzXl1hsiK+FY4CCQm1eEXeeSrRtP2bfwXc0kpeU9Bz5s8Adgic1Y8 S1Ce0wZTootzcxkC55W4mRK9IB4LOQ1/xAEEXo+CzxwEOuOcpBtllyHAOdAkYw== 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 4Vb9TB5fkNzGDc; Fri, 10 May 2024 00:57:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 44A0vIxF016477; Fri, 10 May 2024 00:57:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 44A0vIMJ016474; Fri, 10 May 2024 00:57:18 GMT (envelope-from git) Date: Fri, 10 May 2024 00:57:18 GMT Message-Id: <202405100057.44A0vIMJ016474@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Colin Percival Subject: git: 6437872c1d66 - main - New sysctl to disable NOMATCH until devmatch runs 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6437872c1d665c2605f54e8ff040b0ba41edad07 Auto-Submitted: auto-generated The branch main has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=6437872c1d665c2605f54e8ff040b0ba41edad07 commit 6437872c1d665c2605f54e8ff040b0ba41edad07 Author: Isaac Cilia Attard AuthorDate: 2024-04-29 20:44:27 +0000 Commit: Colin Percival CommitDate: 2024-05-10 00:56:40 +0000 New sysctl to disable NOMATCH until devmatch runs Introduce hw.bus.devctl_nomatch_enabled and use it to suppress NOMATCH until devmatch runs There's a lot of NOMATCH events generated at boot. We also run devmatch once during early boot to load unmatched devices. To avoid redundant work, don't start generating NOMATCH events until after devmatch runs. Set hw.bus.devctl_nomatch_enabled=1 just before we run devmatch. The kernel will suppress NOMATCH events until this is set to true. This saves about 170ms from the boot on aarch64 running atop Apple M-series processors and the VMWare Fusion hypervisor. Reviewed by: imp, cperciva MFC after: 3 days Sponsored by: Google Summer of Code Pull Request: https://github.com/freebsd/freebsd-src/pull/1213 --- libexec/rc/rc.d/devmatch | 1 + sys/kern/kern_devctl.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libexec/rc/rc.d/devmatch b/libexec/rc/rc.d/devmatch index 78050cfa4541..67bb14761614 100755 --- a/libexec/rc/rc.d/devmatch +++ b/libexec/rc/rc.d/devmatch @@ -46,6 +46,7 @@ devmatch_start() if [ -n "$one_nomatch" ]; then list=$(devmatch -p "${one_nomatch}" | sort -u) else + sysctl hw.bus.devctl_nomatch_enabled=1 list=$(devmatch | sort -u) fi diff --git a/sys/kern/kern_devctl.c b/sys/kern/kern_devctl.c index 12d4f9ebfc4d..0dd05a49c9ad 100644 --- a/sys/kern/kern_devctl.c +++ b/sys/kern/kern_devctl.c @@ -89,6 +89,9 @@ static int sysctl_devctl_queue(SYSCTL_HANDLER_ARGS); static int devctl_queue_length = DEVCTL_DEFAULT_QUEUE_LEN; SYSCTL_PROC(_hw_bus, OID_AUTO, devctl_queue, CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, NULL, 0, sysctl_devctl_queue, "I", "devctl queue length"); +static bool nomatch_enabled = false; +SYSCTL_BOOL(_hw_bus, OID_AUTO, devctl_nomatch_enabled, CTLFLAG_RWTUN, + &nomatch_enabled, 0, "enable nomatch events"); static void devctl_attach_handler(void *arg __unused, device_t dev); static void devctl_detach_handler(void *arg __unused, device_t dev, @@ -208,7 +211,8 @@ devctl_detach_handler(void *arg __unused, device_t dev, enum evhdev_detach state static void devctl_nomatch_handler(void *arg __unused, device_t dev) { - devaddq("?", "", dev); + if (nomatch_enabled) + devaddq("?", "", dev); } static int