From nobody Mon Oct 14 10:23:49 2024 X-Original-To: dev-commits-src-branches@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 4XRtcQ1HlBz5YKVS; Mon, 14 Oct 2024 10:23:50 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XRtcQ071Sz4sH7; Mon, 14 Oct 2024 10:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728901430; 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=kRcou48fpNwyobDs3thOXJ1KnXljTlJn/dzTo4IZO2k=; b=yFZsSv+0sC2Tb1PEXztywIPByoMs6ByXvkrlf5Q+7FsTj7nPKcwDtUXAher3Z1331zwj8c 8kljZ+15taHdTGoTXxRLL3O1pwNh4A0REQPabcLuOkTZcZMAZg238kU1VK3qrD7/9r7tYz PxX0abRSUT4Ze0x1I7z5B/a0dXYls4sgIg/kfXYSz8wCwYG7QZRKC4HwOp/OPRcFV6/hu/ NXPSG5TqQn0kGiVZY+JwF4lC+QYs4OrHXuXW4AYmu+jxkM4nIqGNz8bLpA9tlaZ80H5Luy /ftqtbgl+WwPIb4PUqYraQZDBQGq+i8yqG/NPS8fA0uVX5DltCo97cA04/23yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728901430; 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=kRcou48fpNwyobDs3thOXJ1KnXljTlJn/dzTo4IZO2k=; b=HFov6K5D2XA65tOPeSgMkqOHiYliH77NhulVAvqhBmhJyPlzIJAw5EGh/wHBP3g9q362CM mzqiFV+oj8z5BZ1bBcqRtdE1FpGuiIneVOvy8bwaV1wMqDYypY8PLfzL2JCH/axkH5iHMd AjSsLNJ3K9d58hxZ+4bopsxoFcLBvEqHIYcMKO6nuVsqqK7ELEhiU/wazoCXtXI9GrQNf2 omZVj8YiXeYFrmrV/zKD3Y8FPSz9n9ZYw0QcA27jawZIZ6YpdrPSdb2h7N8u7bgwY0DaNd CTYx2Mfp0KzHlaXKHFNmNZacCzchuCKjhFXkLFgbDCIDbDxwaCq9rQeXPg6bpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728901430; a=rsa-sha256; cv=none; b=cBDUdQSQvX+U+XPWlwFcJas9uzmBz40YP5LWK5aABOGPOUahIQiOmseTacOvkfKKUe3Rx0 oKIUI1X4mZ64ykEpbnqfd3bzFPmK3hTdr2OY8+bgoJE/QzW3HIS1QzKZ+OC/fLQEG+sTdD S94vk6vdXAu0POO6up9OaoMxu9ZhcEzsHibB9VDrZWOdrBbhXVoZDU4JphStMGHM+S/FCu sbjZuVOHthgvlvosgedltPa/TtpDPHbH40Mux2Q8Y75hWmVbvf36VbNMzYAe7hxzaaRGcb ChttyyE/5MaYp4BJQWmu0DVnn53Zftfm5H1iySit9jdyXsZNPqHx1cPqRRgBLg== 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 4XRtcP6q9VzZby; Mon, 14 Oct 2024 10:23:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49EANnce069701; Mon, 14 Oct 2024 10:23:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49EANnVY069698; Mon, 14 Oct 2024 10:23:49 GMT (envelope-from git) Date: Mon, 14 Oct 2024 10:23:49 GMT Message-Id: <202410141023.49EANnVY069698@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 4fc260561e84 - stable/13 - rc.d/sendmail: Fix stopping service during shutdown List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4fc260561e84edf5df13d4ba3aa829e5750c9f6e Auto-Submitted: auto-generated The branch stable/13 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=4fc260561e84edf5df13d4ba3aa829e5750c9f6e commit 4fc260561e84edf5df13d4ba3aa829e5750c9f6e Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2024-10-04 12:26:45 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2024-10-14 10:23:44 +0000 rc.d/sendmail: Fix stopping service during shutdown The sendmail service script needs to be stopped during shutdown to ensure a clean shutdown of active SMTP connections (and writing any in memory queue files). rcorder(8) requires the rcorder block to be an uninterrupted sequence of REQUIRE, PROVIDE, BEFORE, and KEYWORD lines. Having a comment in between REQUIRE and KEYWORD makes rcorder stop parsing the block when it reaches the comment. Fix that by moving the comment out from the rcorder block. Reviewed by: bnovkov, christos, gshapiro, markj Approved by: bnovkov (mentor), christos (mentor), markj (mentor) MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D46924 (cherry picked from commit 8751fbe36ff02ed695f02132ee6eac723d2bbe3f) --- libexec/rc/rc.d/sendmail | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libexec/rc/rc.d/sendmail b/libexec/rc/rc.d/sendmail index 68803a957952..ea97503890f9 100755 --- a/libexec/rc/rc.d/sendmail +++ b/libexec/rc/rc.d/sendmail @@ -4,9 +4,10 @@ # PROVIDE: mail # REQUIRE: LOGIN FILESYSTEMS -# we make mail start late, so that things like .forward's are not -# processed until the system is fully operational # KEYWORD: shutdown +# +# We make mail start late, so that things like .forward's are not processed +# until the system is fully operational. # XXX - Get together with sendmail mantainer to figure out how to # better handle SENDMAIL_ENABLE and 3rd party MTAs. From nobody Mon Oct 14 10:24:04 2024 X-Original-To: dev-commits-src-branches@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 4XRtch5ZcVz5YKSc; Mon, 14 Oct 2024 10:24:04 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XRtch55L6z4ssp; Mon, 14 Oct 2024 10:24:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728901444; 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=UHTlQBuv6wPjC0lU1ZOOpoCK9MfQOymuIo+MiuQFudA=; b=tdUM3DDqphRkAeVqoekAsSP4a1wHFSbRpP4xIqbFDb+KJmW69qP/R5t/2Cyt/pBdzkaYyy +Xpnjxc3oyaqkYv9v5gHAGlqpMWu3bpfr+t8V5KwZCRlmc+8zI4pdyHhMSoiRZdF+KlWSb Jgiy3MwL2QrdYkfzLPhbk1tGWr6LpoRcOsQYyq1vMOsLX+QMNDKq/L/YJu9sRbG2vwCLa1 S6tZYvFEzPAHzX4Mm4EfqJ4CbmWTjDlc0LXsPPwLwk2zJlbHLu2hkVHjLBAAlNhpnPh/pU hBKcMteOHMiSc6znyE1pNMYTHmxIfMfhib7LPUQcfYwMBEHO7yYfuz5GX0y72w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728901444; 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=UHTlQBuv6wPjC0lU1ZOOpoCK9MfQOymuIo+MiuQFudA=; b=xW0Q9dOuQkQkvZoosRIC1Sk1hbvtXKtZRXN4tMC5iW1p44c4lmSC07aDHEVU5fuFoVWIBL 6Sd1yllPvQQXqOD2YaKMwwZsjyVK/SEEvfJVyRJiXgQmk4rzhnCUHGFc2kt1FTRF2Nyk42 km5fjiFFX8dpN+XgcKwYPdlV/wBEYZJ5+1LvuGK+r8EiXB2cpP4R366OEU6N8XmDP295hE AyZEGta6CT2XGIs6oG3VB2wBHmuYD8fX4CgULirzGJH0pzLVw4qqH9vjQo2GuWp3Fv4uGs ykrQOAL4cKmeVFmLS0IsUsMAKy02ETPmnvBYLkg1xUuWMg2qyU0GhGS6My5/jg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728901444; a=rsa-sha256; cv=none; b=pYexmSyQ7nlF10UIPJ3HaqeHBTb8+Q/w9eil8A+HrCowL6Q2dJJ+gdctCUWz0yPyFuKfN2 faIOQjAc23pjNzS6pTJRWX5Mqc3HbIan7P7TPI8369NmfAzJ7gHEPp2hjXXIQEXdjNngzk CkgV3wZR4NLBL1kpRvqMu6YeuB/kSprO+Aiw2eJK0GkKczL3WqT7ObrZZuk7K6QUAHF1ND GxHph0hBCWJzmbwwDCajomPLzZzKjQrUXjPtgku7xNe42Yk4wkeRlxp9gA/scecfUfq2Sd afBN2cMPr40Zm8ZGMCgp2ZUc5guFSO/8yvyed/vYMQv1f2ZY1z1DTHsHT9eByQ== 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 4XRtch4hg3zZlB; Mon, 14 Oct 2024 10:24:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49EAO4WC069929; Mon, 14 Oct 2024 10:24:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49EAO4Yf069926; Mon, 14 Oct 2024 10:24:04 GMT (envelope-from git) Date: Mon, 14 Oct 2024 10:24:04 GMT Message-Id: <202410141024.49EAO4Yf069926@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: ddefa76a69d5 - stable/14 - rc.conf.5: Clarify wording List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ddefa76a69d55161c5211bcbbfc71028ef1fd971 Auto-Submitted: auto-generated The branch stable/14 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=ddefa76a69d55161c5211bcbbfc71028ef1fd971 commit ddefa76a69d55161c5211bcbbfc71028ef1fd971 Author: Andrew Stevenson AuthorDate: 2024-10-11 09:49:42 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2024-10-14 10:23:45 +0000 rc.conf.5: Clarify wording PR: 196736 MFC after: 3 days (cherry picked from commit d80d7a8e46433b90dc5e7ae69144664b9a6e35df) --- share/man/man5/rc.conf.5 | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5 index 0576d26ce059..a13bbab0743f 100644 --- a/share/man/man5/rc.conf.5 +++ b/share/man/man5/rc.conf.5 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 18, 2024 +.Dd October 11, 2024 .Dt RC.CONF 5 .Os .Sh NAME @@ -103,9 +103,8 @@ and will be loaded. If .Ao Ar dir Ac Ns Pa /rc.conf.d/ Ns Ao Ar name Ac -is a directory, -all of the files in the directory will be loaded. -Also see the +is a directory then all of files in the directory will be loaded. +See also the .Va rc_conf_files variable below. .Pp From nobody Mon Oct 14 10:24:05 2024 X-Original-To: dev-commits-src-branches@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 4XRtck0lMzz5YKlk; Mon, 14 Oct 2024 10:24:06 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XRtcj5cVCz4sjg; Mon, 14 Oct 2024 10:24:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728901445; 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=VUaE1SViZqvkK37J+iW/8RrelKTRkOC/j7EQSq0fdXo=; b=Z8HGoTHveh6kztB59nL5GPQWRuYSPj6nAIKDQqPJIxSNJcDK8koaGRZefJBjkb/pilhnFJ Ssk0OjPRZFJPSU7IpOvcvxTm/f+2/56EHYmQAcHkqU4IssGb62THeegF3abi3/sV8Q/nIh 673J9GwITkFFoz7vM2pjYlAee5v9GRi29wfFpCaCKKrphpe+RYf9gQgWoiDgFEGVi1DFn3 bbdH8zZ1h5mSunVw2gJvmFiIS7r7afTpE5RagXzQCA/5mgj7pOwBHQ6UTkSDrHAy1D0ALv kn4Kpkggt7PmtF1j0sZNhpq0dxd0G5pXI27NlGv5kapHJUWE0hRKBhu3ha9dqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728901445; 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=VUaE1SViZqvkK37J+iW/8RrelKTRkOC/j7EQSq0fdXo=; b=XcTbgVPLblwiO3hMsNGq1CIyls994kA4eTL2X87IyjsJ9l8ZCf0Y+t/VQ1a3m2/yyVeVMm WO5cVw1+oLyAQPll3RYH5JuKg63107Kbd6FOaR15pl1p/L7+G7qm+qxp9n9PfYUcYPUUaX j+Q/Y0SoOmBhB3clNSsG74tInJO0nrnPk3jR8hbuXSXYzN0yyzgN4L0rhgbwm78RDZSrgi Q4RJosBjaeOoR7h+023jUlsKDFPeqNSIHrRxTLz6Ng5BAMnBH05LK3xOWxCADEDWbi5Mko MdmU/OXdbTil5Jb+kF09U6kfBEb60T1qB1Ve7gzGvSL9WPWd5G2bwZTBB0ANVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728901445; a=rsa-sha256; cv=none; b=yJZxvnd/xaWte2xyDgC79JyMGT6XBGs9+Fm72PJ7aKsvm/6m6Ex9+pqSgkb/ydIfOTqr3X N0tY4gud6/DlmceCxiFHQuVpkDAL/mZ5Zkch6qiE39+50kwT0kF6nRtsQ1t/tvbXhHSNwr OuRbDHf6ZD+0V+f+UyZwzzngWDFKriX9pwerPe9ioheJMNXjExl1KKEw+Ugqi0eL3CLY/3 YArs1WBWsvL7EM8n8SgLQJtSJhsQnzyVf5CTpjBjxJKLcofRzOyiv56CWA2kyfe0cn05xz s7Hwj8Wy1uNawZLnQr7112Aop3Bxlsf5Q59izhBR461/nD6JQo4oPyMEXOsGvQ== 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 4XRtcj5DlDzZ37; Mon, 14 Oct 2024 10:24:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49EAO5fQ069965; Mon, 14 Oct 2024 10:24:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49EAO5oL069962; Mon, 14 Oct 2024 10:24:05 GMT (envelope-from git) Date: Mon, 14 Oct 2024 10:24:05 GMT Message-Id: <202410141024.49EAO5oL069962@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: f6d6d260a38d - stable/14 - rc.conf.5: Fix grammar List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f6d6d260a38da7e87e511c64e0a49eb196ca2ff9 Auto-Submitted: auto-generated The branch stable/14 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=f6d6d260a38da7e87e511c64e0a49eb196ca2ff9 commit f6d6d260a38da7e87e511c64e0a49eb196ca2ff9 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2024-10-14 10:16:57 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2024-10-14 10:23:46 +0000 rc.conf.5: Fix grammar Reported by: markj Fixes: d80d7a8e4643 rc.conf.5: Clarify wording MFC with: d80d7a8e4643 (cherry picked from commit 4851376de10210fa37644ced3dc97fe10e2a61a6) --- share/man/man5/rc.conf.5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5 index a13bbab0743f..fb010c20af26 100644 --- a/share/man/man5/rc.conf.5 +++ b/share/man/man5/rc.conf.5 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 11, 2024 +.Dd October 14, 2024 .Dt RC.CONF 5 .Os .Sh NAME @@ -103,7 +103,7 @@ and will be loaded. If .Ao Ar dir Ac Ns Pa /rc.conf.d/ Ns Ao Ar name Ac -is a directory then all of files in the directory will be loaded. +is a directory then all of the files in the directory will be loaded. See also the .Va rc_conf_files variable below. From nobody Mon Oct 14 10:24:06 2024 X-Original-To: dev-commits-src-branches@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 4XRtcl16YRz5YKSf; Mon, 14 Oct 2024 10:24:07 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XRtck71jBz4sd4; Mon, 14 Oct 2024 10:24:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728901447; 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=jA02FxEfrEzYSONxmdTouqklfVMXND3hMQ3HsRQfj+g=; b=cKOG6ULTiE+odd4dWZKK1H2gSMlFY4RyGKuhLnujTvG+1Nd/bhw5fIA7/11kO4qFxFEK3G et6k1iVvASdcsZd6sYzqte7OenLNyIY+4VwDAtC06phiBTci0/91387cXzWGwHxm+DWd1Y VGeLWbt1fBZLkYR3+bz+Eb+ujdBrnisWUCcIuS5TUO81mIt0uVfsfAqVBQtmrHgNoSBxY9 bTrmwrlx0akRI4u/rothGRAVALwGu3urgTsbGE/NX6RyvFDlg0GG+goJgTXUK3Lct2E/CX TTCcR1VXBWrVnczIyJevaHxbZG0ZeLWADYGCOy71vds2keHftciFqwNaM6t7/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728901447; 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=jA02FxEfrEzYSONxmdTouqklfVMXND3hMQ3HsRQfj+g=; b=iTv6OZEoqxUP7iIzzY5jcYYKA/R/PSYEDY9vAxFgTE91ECHm/7mU8Mr6AMduFFLLBc/NBd aBnfzbpXWcoHGBlGZt5m8J7xKj2evXj7UKSGxiBkBsQZxF6YKG71oWdY6BrrGnbpM6qI04 g7NdYVijh4X7+ZD+r7MHHD/qTjrJid7DXZ6qz1wHeS+HShsVOsAfK3EBtLj++QXHgmEeut moM5m9Wxa1qRLeKf4Ygv32IKI5ye56it0ibWmcN3JVCEiad4hup/iA5oWWdgp+GzSbWh3s BU9lEWuwtjFE0LrP1J5Sykz5+s+Htu5EsqCfA0Ga+p/gp9uYPYVM61o0rVK29Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728901447; a=rsa-sha256; cv=none; b=Bdu1fMSPt7XA0PJ9e6cta+UAt6u2iM9uOYRBHeOHItjcIy8X9wNxCxfE4SWG+IillLlrOQ XXlpybAaPhkYDdRat9vleai0InnoGmdJqHTo1niA1EaBWm4iF6wMqxSMh9IkEW1ysWLrR6 dsq/9hfOGRBKrgU2qh3Ja/9KdEwRZivNZ2fcuUf3v0H9efXzjQS6i5//ybWSJu7vJQWvHK wVYaNl7kdaQ62T8V88zJuEv1HIsL29ZNgjjSEnI/xtcuAnOucdXDy155Srx33MoaD9t/we ak5gVbLzhHnzcsXkqjjKYR6uR3QqBV5qMoELISCxCmEsGr1EhDCO0ytpRezpHg== 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 4XRtck5y54zZTv; Mon, 14 Oct 2024 10:24:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49EAO6Ag070010; Mon, 14 Oct 2024 10:24:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49EAO6KH070007; Mon, 14 Oct 2024 10:24:06 GMT (envelope-from git) Date: Mon, 14 Oct 2024 10:24:06 GMT Message-Id: <202410141024.49EAO6KH070007@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: f94127e3ee91 - stable/14 - rc.d/sendmail: Fix stopping service during shutdown List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f94127e3ee9181f60576c823ecee6c85625b96e1 Auto-Submitted: auto-generated The branch stable/14 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=f94127e3ee9181f60576c823ecee6c85625b96e1 commit f94127e3ee9181f60576c823ecee6c85625b96e1 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2024-10-04 12:26:45 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2024-10-14 10:23:46 +0000 rc.d/sendmail: Fix stopping service during shutdown The sendmail service script needs to be stopped during shutdown to ensure a clean shutdown of active SMTP connections (and writing any in memory queue files). rcorder(8) requires the rcorder block to be an uninterrupted sequence of REQUIRE, PROVIDE, BEFORE, and KEYWORD lines. Having a comment in between REQUIRE and KEYWORD makes rcorder stop parsing the block when it reaches the comment. Fix that by moving the comment out from the rcorder block. Reviewed by: bnovkov, christos, gshapiro, markj Approved by: bnovkov (mentor), christos (mentor), markj (mentor) MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D46924 (cherry picked from commit 8751fbe36ff02ed695f02132ee6eac723d2bbe3f) --- libexec/rc/rc.d/sendmail | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libexec/rc/rc.d/sendmail b/libexec/rc/rc.d/sendmail index 68803a957952..ea97503890f9 100755 --- a/libexec/rc/rc.d/sendmail +++ b/libexec/rc/rc.d/sendmail @@ -4,9 +4,10 @@ # PROVIDE: mail # REQUIRE: LOGIN FILESYSTEMS -# we make mail start late, so that things like .forward's are not -# processed until the system is fully operational # KEYWORD: shutdown +# +# We make mail start late, so that things like .forward's are not processed +# until the system is fully operational. # XXX - Get together with sendmail mantainer to figure out how to # better handle SENDMAIL_ENABLE and 3rd party MTAs. From nobody Tue Oct 15 04:39:37 2024 X-Original-To: dev-commits-src-branches@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 4XSLwp0mgjz5Nsl8; Tue, 15 Oct 2024 04:39:38 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSLwn6F5lz4fBq; Tue, 15 Oct 2024 04:39:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728967177; 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=XHUJZffpOvjIVSlM1v5O13Cxjl9XTK1aGurHBQKMdJo=; b=syoKx69dE88uf6x6h2yIegz+NBNoTAGFZCwgleK8neYzV0JZoGTZxdl12SjiMKaSSSprn5 5kyegniTTWqz2GGFEeIouVz+5A+utrYj2dNHQSdcXxomfo/KbtVFeaKeFWt7K6ddLtMobO +c6Hw+isaboJs1mRM7aHlFTEe/966rXaE/9ufVmQEeqE3Y8np1Vicb7bKQu27y9P6+oJgx giKlUnmSTOmOF1QDbGUxQOBK2D15qLYIYdJuYBNXPiwPYCeO2XG7bFrPZcPf7E4BRwzzal 1F/YEFGCYtrPiJ0Pz1/oCRDXaWbn9bWetrtF+t73oEfhHO99BwRABG/m5QOQPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728967177; 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=XHUJZffpOvjIVSlM1v5O13Cxjl9XTK1aGurHBQKMdJo=; b=JLEj+PyRqCHmkv5vteFcQmrZGAqoc02dT4UU/yKgWm77/eFvCLrxxRMw3Lslo3U4HSntMA oIVLUmrIazfRKaakXuyRrYRetCHD2Mrt3Ad+iG39g2xyx7QmK+b+y4cSdSbfCzOD50ME5S ejr9yP6hY8GFEMeP278sq1qrbwAQftEwOE/WtOHyo1vewnxGihNkB6mXGUPgybkBr/uywB Zj4PW/PI+/sJbqm1or8BsTKGBR7dMIdjaX/smAUVvAaghuA9US+9KNPvmhjsMFqIarMCao zcrOEh7SgnakzWCghsgY+pJXyOfGqZh5u3XYSnFBZ6j3pd96f7V5kBG1vvF9lA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728967177; a=rsa-sha256; cv=none; b=uyjQDlH6YewuPmQg+Rvee5n2M49G0H2OGuo7wh977wJpzvxzgUVrR9MIkle5o/yAT+NrQe Ikfz8NoXjZlHEnj514etHLkOTrKyuQg56YNK8muAK3HQVqa1k3SB3x9qOijsCpr1VBvNll BeoGqGrDPMa0JiVpdSJIu9zN2DCk3LijA1p63kb+VbAc0MFkNh1ThSWri8sA13BVpsPCzi UBmt5UDC8tgMcjuXsWjTHy2E/tgKWgZQADfF/BCfxH2za5fyUS/l2aM4FQR8eE64jLDWPq yNd5F31TCFoUOOtc6NPhalwAH4ppURmykBeMIhL9LPVFNHpEJQmWtFCiReGNeQ== 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 4XSLwn5s0rz16vj; Tue, 15 Oct 2024 04:39:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49F4dbdw019194; Tue, 15 Oct 2024 04:39:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49F4dbcW019191; Tue, 15 Oct 2024 04:39:37 GMT (envelope-from git) Date: Tue, 15 Oct 2024 04:39:37 GMT Message-Id: <202410150439.49F4dbcW019191@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: f1587b9c7844 - stable/14 - iflib: Make iflib_stop() static List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f1587b9c784426396189eafd8781bd5568493447 Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=f1587b9c784426396189eafd8781bd5568493447 commit f1587b9c784426396189eafd8781bd5568493447 Author: Zhenlei Huang AuthorDate: 2024-10-07 14:19:02 +0000 Commit: Zhenlei Huang CommitDate: 2024-10-15 04:39:06 +0000 iflib: Make iflib_stop() static It is declared as static. Make the definition consistent with the declaration. This follows 7ff9ae90f0bd and partially reverts 09f6ff4f1a47. Reviewed by: erj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D46185 (cherry picked from commit 8161000892830ee52bc8048be91b40cdad25fea8) --- sys/net/iflib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/iflib.c b/sys/net/iflib.c index a2e2c3efa1ad..997da7ca5b00 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -2585,7 +2585,7 @@ iflib_media_status(if_t ifp, struct ifmediareq *ifmr) CTX_UNLOCK(ctx); } -void +static void iflib_stop(if_ctx_t ctx) { iflib_txq_t txq = ctx->ifc_txqs; From nobody Tue Oct 15 05:18:32 2024 X-Original-To: dev-commits-src-branches@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 4XSMnh3yyWz5YKkP; Tue, 15 Oct 2024 05:18:32 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSMnh33CGz4jgL; Tue, 15 Oct 2024 05:18:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728969512; 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=ubsdwHZlkMMKuutiJnD0HQmMt9kT7yde0h+oJBlikok=; b=QDHX5RqbwWGqq5PMfKQqo66cpVJHzuN4ID1B0ldOnuiliZGWwqpVKVZkOHJwTVjYDtrOog h9dJQd0JMYowgTvB5oSKIbDdvjt8O2E9QEUa4yWuWPIQtIp0ss4FiH+vwM2A90GPgeR6py /1VgEIM0pkTe1kkdcRsN5+LEHJlEM88tbxCLDfSiNgObSzcR7FBHywG/fZY+urw7ilWl9J uzlLdi/wp74ZZfCh5vBTUC60sdHDblAIvE72LLUovVXznMFxIHrbgWoNQVoXctDMNVl/1a 4AbnTWQXg5tm2m087tyw7BC9Wz0b7Mn5WGKLfAYHnirQBG3+u4v6KHCPeCI1gA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728969512; 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=ubsdwHZlkMMKuutiJnD0HQmMt9kT7yde0h+oJBlikok=; b=INFsJl86+I4hQKIU8+8NpyFSbKrrWOpzWSfjHg8oV3tuPST46oHvXaWZnbEXamolQokqVq 4WcYZrcp4xK0l7xrH0FVDRbSM23AiPuuo+H90b3lgD+/FIWMrjG4oMxTdtnJ4o6NH9PYUO 9EoiexV+3XhcU+Xa8AqRyTQMtXSC7eVSawKZXcNhUhjMKIvXkkw5QVYMmn5Nt1Hlm/ji7M sNEcAdcgLw0/XKQsyIoPJ+3tHMqW4E2L2wfsXtolowJ/Ko/ouBQlTFf1JndyoguE4eYpL4 DPNQdpwuxP9JVDKlRXMqAzN2CW0F9+RM6YP6u56a3+oIyPIZ55BeqfgAF5NRFg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728969512; a=rsa-sha256; cv=none; b=CcQ8wnPXsvru+jhYdL783Wg+yJFmsm2ePKb97Hih/tgId9SjHQXTQzNyJK5LIX3esVmrR0 1ho8Pc8OuQE7LjytVshq7CpHxzje1/fnW66V1drTxwI3oOinRvTO+VYGR/miDsa4QCzQS+ 2btGwxmXNybxPBmnGDohZaVnlYGGStEmxOLKeqZMX1gjn2HXlXdUVDEjmQBpPLjFh4rjEE OpjjPry7p0y7t7md0Yy0/zYF+MaW36A/GBmkEAT8oMw3T/71ugV5JqTrPToMuQjeYjPl48 5m0n4Wd4qTgU+/OB3kAMkUFun8TDqpE/8bBvQ+7IzWuZKrnw9DavqhkQYsjQXg== 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 4XSMnh2X87z1885; Tue, 15 Oct 2024 05:18:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49F5IWTO087368; Tue, 15 Oct 2024 05:18:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49F5IWwN087365; Tue, 15 Oct 2024 05:18:32 GMT (envelope-from git) Date: Tue, 15 Oct 2024 05:18:32 GMT Message-Id: <202410150518.49F5IWwN087365@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 76c656bd97b7 - stable/14 - sysctl.8: fix format typo List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 76c656bd97b7cbcd55df7301b5e387b3cb1b9a7f Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=76c656bd97b7cbcd55df7301b5e387b3cb1b9a7f commit 76c656bd97b7cbcd55df7301b5e387b3cb1b9a7f Author: Igor Ostapenko AuthorDate: 2024-01-23 14:34:59 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2024-10-15 05:18:07 +0000 sysctl.8: fix format typo Signed-off-by: Igor Ostapenko (cherry picked from commit 380b7eb309478e1aac1609a3dfe1c28436add1c4) --- sbin/sysctl/sysctl.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/sysctl/sysctl.8 b/sbin/sysctl/sysctl.8 index fef7d3842c49..70115fa54318 100644 --- a/sbin/sysctl/sysctl.8 +++ b/sbin/sysctl/sysctl.8 @@ -326,7 +326,7 @@ option has been deprecated and is silently ignored. .Xr sysctl 3 , .Xr loader.conf 5 , .Xr sysctl.conf 5 , -.Xr security 7, +.Xr security 7 , .Xr loader 8 .Sh HISTORY A From nobody Tue Oct 15 05:18:50 2024 X-Original-To: dev-commits-src-branches@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 4XSMp32638z5YKmg; Tue, 15 Oct 2024 05:18:51 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSMp312Ctz4jhg; Tue, 15 Oct 2024 05:18:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728969531; 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=bKTZTJGTFUmMBogXyev0AZ1RCO/pEHEAnTcT/r7ESME=; b=UjNHfTZirwZgORPGh6JwprlwEaVV4apkZrXA85YajQjB17WdFfLk6/PuGiUnZ868oLLCQT Hlz1wyuqIZZgoBgU6Tq9kA3+UTr5owiQ6zlULc2BbWnZoURlB8IN7pf0RqRMOBr4bPSAE/ vJAbM2F8FOSGG19+tD4mU3V/Inqul7AGvnRERJtgNcGOpwxpNbCIFRV+yXj4jXvGvoaRxu 5zdhDGpjrcf/Mw9BEa5OAXC3/SQxulyBZzlazX2zOYq171WZWZN8lFQ7dWfjXKcAvrthsT +sRtwussrkWu/k3a8oubi5JcF5LvivnnYXcPZJ1+F/40x0imtbb6Uc3mpUqFGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728969531; 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=bKTZTJGTFUmMBogXyev0AZ1RCO/pEHEAnTcT/r7ESME=; b=akvV7KFMsKnSXJpOp1iojTXbu2yRodwt926UKQwPMr8O4+ifmbgDB7ZBsb2Tx6LeTVhzO4 WiHEzTPCcv7rvmdofoT5HjaogYMH6NYI4Bz4axhsVv+Ndy9gs1qIf9A/Kb56/K5eQwLCNn IbLH6WyvWLSXyVaLDY27/eaH1mq7E/ECfbhU+Mm59XR2z8QTXLKVT+vw4CeCPkm3L+ckgb qrRICQ9AfBTWKg9URQMtvT0hm3RCBB8eAVxOnOblTZZbG3H0K58kx3IdQBeaSAVK4GF2Jb Cv0FdOtdypKK4Tw9HSwC+H1tssTQjm5F1d1gcOfqZDLdUMz6oY4R/mUu896eyQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728969531; a=rsa-sha256; cv=none; b=N1DH3JCDJJpJ0cvQGHmehvY3JnbglOc5YUjDB5QPXvYHB8ycN6hE37Hf9P/dvViJ8D4IyY GG60/IDXChsGarrInNKeO4GI3vCK8Ld5rdJlyWfMwVXKjWPPBokHziSLvTBTfp/jM6ttM/ UJAYwei+WlZAii6NMd2JaF1RSEblivRun9RomtYWG0Q/rleCUyOdGMRUg4R2DsFXwGJkNM 0oYrTd+Zwgh1wTgpYA/uIBy2nZ1s8J+84IVn9On8Yun40D3oWikmFr/RXI+XQv6x8tCmRi oJSa8N+M/g5jiKtutUwxuagD/R2kGS1umuDBZYhIf9HYMEw34jWZB0aKKOEEqw== 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 4XSMp30Ljtz1886; Tue, 15 Oct 2024 05:18:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49F5Iojb087548; Tue, 15 Oct 2024 05:18:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49F5IoCg087545; Tue, 15 Oct 2024 05:18:50 GMT (envelope-from git) Date: Tue, 15 Oct 2024 05:18:50 GMT Message-Id: <202410150518.49F5IoCg087545@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 54cb2f5b8b89 - stable/13 - sysctl.8: fix format typo List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 54cb2f5b8b89e57f20068f26f00466e22a6b9057 Auto-Submitted: auto-generated The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=54cb2f5b8b89e57f20068f26f00466e22a6b9057 commit 54cb2f5b8b89e57f20068f26f00466e22a6b9057 Author: Igor Ostapenko AuthorDate: 2024-01-23 14:34:59 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2024-10-15 05:18:39 +0000 sysctl.8: fix format typo Signed-off-by: Igor Ostapenko (cherry picked from commit 380b7eb309478e1aac1609a3dfe1c28436add1c4) --- sbin/sysctl/sysctl.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/sysctl/sysctl.8 b/sbin/sysctl/sysctl.8 index 11ed75270e28..ee3f8579882f 100644 --- a/sbin/sysctl/sysctl.8 +++ b/sbin/sysctl/sysctl.8 @@ -315,7 +315,7 @@ option has been deprecated and is silently ignored. .Xr sysctl 3 , .Xr loader.conf 5 , .Xr sysctl.conf 5 , -.Xr security 7, +.Xr security 7 , .Xr loader 8 .Sh HISTORY A From nobody Tue Oct 15 06:30:25 2024 X-Original-To: dev-commits-src-branches@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 4XSPNf1DTvz5YQYk; Tue, 15 Oct 2024 06:30:26 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSPNf0W0Gz4tZ0; Tue, 15 Oct 2024 06:30:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728973826; 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=z1xIOFF4GH1zUqHVeP3TFbTj/3FseQJLqSVbUT++B4Y=; b=huSVTu6TG5VVET4OHPWtiUILcuKFqiUjAnKND7EL/POf1Tb+OpcHjmJN+FeAG2oD0HpylZ l/QDNGZwvmubjQ2FElSNmqB2PmqaOzwE+1VNFZY+Km7Ks80dPE3ekn9CSOqHFMzE1IpbQv IT4DnwlVTl/ZT4acqkSM0x6ZGIAXRAZuzTgNBczeKBRbEucw+dKxCBJ0+uYQLC+5F6DXRE qwd2j8KXZ3l8wsV3pDfM1xQXjYZb1Djvdl/k8LH3CrZ+QGQtKlcLf8mhgtjp7qG3hZIp4k Bhj/k0wXRFiXlan6QNCyLn6plCbSkG5DFidSvl65eQE8xNE4tUhZKfq12okcGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728973826; 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=z1xIOFF4GH1zUqHVeP3TFbTj/3FseQJLqSVbUT++B4Y=; b=FHy5mn9Qf8MrMuKBxvw9KjlfF4dkagTLMKdSRGaN+X4dabRnNHOA/eYzwtizY2GFrDYcJY iatRpBKQg6IW24VVyJ262Pp2TOYBu2Xl+ri5GUIC+JtzcsVLDJmxZXnDNS7bdOHbF6ZLey 31BFDgW5161qb87G5H7vlF5ZmQP/MeJYylC7UastXMDz9t+XWq9V8Z8CI24q3Pc2+aOFq/ g/yXCKVQo8h72vey4dmvvdl+THN8eiRnl7c+9iSmtwkojKDAH1BylYU6kbwqUvBB/XEVs/ YrkntDcgtm/XjSqKwZIIS+uc9QQgZ0KaLEW7DGUUgvDEsWrvILzkAxdgt6IQLQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728973826; a=rsa-sha256; cv=none; b=hdhxHRJTJbfr6QUVeLUuAgyXB96TJWmpXAOc7iJV/nmg40Q0VCyhJqqULJshOJyejAlyim C8mDDr6ATPth0GcmFMC9CQYsvfSMBWorMoSbQrjIYCBfZtzDxXjZNHQIxiStAe5a22v3Qz u0ZswPcvXSE7DBeHcbCYtwjGhyClIgHdhoZTyj7G+3aDaR4ZtS2GermJEVNlOKgqXUQvQP JV9ECyTLs7sptQWNQxoeimyeZ9K+UGTHUSOAujTn3im84J4sSpegQvOtSN5Hm1aVXU82VG UgEhC5oIc+s0hX4X32xNnh7gEzdEI/xw87lyeJQLHcDGSC8rmk2KzWTKV4QLbg== 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 4XSPNd6Z41z19gG; Tue, 15 Oct 2024 06:30:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49F6UP8r015961; Tue, 15 Oct 2024 06:30:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49F6UP25015958; Tue, 15 Oct 2024 06:30:25 GMT (envelope-from git) Date: Tue, 15 Oct 2024 06:30:25 GMT Message-Id: <202410150630.49F6UP25015958@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 08e8554c4a39 - stable/14 - env: Add a handful of test cases. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 08e8554c4a39352da36f63794ef7d2b441a37238 Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=08e8554c4a39352da36f63794ef7d2b441a37238 commit 08e8554c4a39352da36f63794ef7d2b441a37238 Author: Dag-Erling Smørgrav AuthorDate: 2024-10-07 21:00:17 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2024-10-15 05:25:15 +0000 env: Add a handful of test cases. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D46996 (cherry picked from commit 334af5e4131b21c658203635bf713d6a59846585) env: Improve documentation. * The `env` utility's inability to run a command whose name contains an equal sign is a feature, not a bug, so move that paragraph up from the BUGS section to the DESCRIPTION section. * Mention that this can be worked around by prefixing the command name with `command`, and add an example of this to the EXAMPLE section. * Add a test case which verifies that `env` does not run a command with an equal sign in its name even if it exists, and also demonstrates the workaround. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D46997 (cherry picked from commit a0dfb0668b45506de97beb4c7acbe3fd1ba69fc8) env: Add an option to change the directory. This mirrors the equivalent option in GNU coreutils env, but does not add support for long options. MFC after: 3 days Relnotes: yes Sponsored by: Klara, Inc. Reviewed by: 0mp, bcr Differential Revision: https://reviews.freebsd.org/D47008 (cherry picked from commit 6f6166e49c78f6460732c02bbbba6fcc218221cf) env: Check the status of stdout. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D47009 (cherry picked from commit c2d93a803acef634bd0eede6673aeea59e90c277) --- etc/mtree/BSD.tests.dist | 2 + usr.bin/env/Makefile | 4 ++ usr.bin/env/env.1 | 41 ++++++++--- usr.bin/env/env.c | 24 +++++-- usr.bin/env/tests/Makefile | 6 ++ usr.bin/env/tests/env_test.sh | 160 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 222 insertions(+), 15 deletions(-) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 95328d6d293f..a756236fd534 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -1057,6 +1057,8 @@ .. du .. + env + .. factor .. file2c diff --git a/usr.bin/env/Makefile b/usr.bin/env/Makefile index af2e65dd5fc1..d7a34fce92aa 100644 --- a/usr.bin/env/Makefile +++ b/usr.bin/env/Makefile @@ -1,4 +1,5 @@ # From: @(#)Makefile 8.1 (Berkeley) 6/6/93 +.include PACKAGE= runtime PROG= env @@ -6,4 +7,7 @@ SRCS= env.c envopts.c LIBADD= util +HAS_TESTS= +SUBDIR.${MK_TESTS}= tests + .include diff --git a/usr.bin/env/env.1 b/usr.bin/env/env.1 index 8aa78e110505..4badea716143 100644 --- a/usr.bin/env/env.1 +++ b/usr.bin/env/env.1 @@ -30,7 +30,7 @@ .\" From @(#)printenv.1 8.1 (Berkeley) 6/6/93 .\" From FreeBSD: src/usr.bin/printenv/printenv.1,v 1.17 2002/11/26 17:33:35 ru Exp .\" -.Dd March 3, 2021 +.Dd October 8, 2024 .Dt ENV 1 .Os .Sh NAME @@ -44,6 +44,7 @@ .Op Ar name Ns = Ns Ar value ... .Nm .Op Fl iv +.Op Fl C Ar altwd .Op Fl L Ns | Ns Fl U Ar user Ns Op / Ns Ar class .Op Fl P Ar altpath .Op Fl S Ar string @@ -81,6 +82,12 @@ The environment inherited by .Nm is ignored completely. +.\" -C +.It Fl C Ar altwd +Change to the specified alternate working directory before executing +the specified +.Ar utility +program. .\" -L | -U .It Fl L | Fl U Ar user Ns Op / Ns Ar class Add the environment variable definitions from @@ -173,6 +180,19 @@ Both and .Ar utility may not be specified together. +.Pp +The +.Nm +utility does not handle values of +.Ar utility +which have an equals sign +.Pq Ql = +in their name, for obvious reasons. +This can easily be worked around by interposing the +.Xr command 1 +utility, which simply executes its arguments; see +.Sx EXAMPLES +below. .\" .Ss Details of -S (split-string) processing The processing of the @@ -471,6 +491,11 @@ and options: .Pp .Dl "#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} perl" +.Pp +To execute a utility with an equal sign in its name: +.Bd -literal -offset indent +env name=value ... command foo=bar arg ... +.Ed .Sh COMPATIBILITY The .Nm @@ -490,7 +515,7 @@ The utility conforms to .St -p1003.1-2001 . The -.Fl 0 , L , P , S , U , u +.Fl 0 , C , L , P , S , U , u and .Fl v options are non-standard extensions supported by @@ -513,15 +538,11 @@ and .Fl U options were added in .Fx 13.0 . -.Sh BUGS The -.Nm -utility does not handle values of -.Ar utility -which have an equals sign -.Pq Ql = -in their name, for obvious reasons. -.Pp +.Fl C +option was added in +.Fx 14.2 . +.Sh BUGS The .Nm utility does not take multibyte characters into account when diff --git a/usr.bin/env/env.c b/usr.bin/env/env.c index 784caa76063e..724a17d8be4f 100644 --- a/usr.bin/env/env.c +++ b/usr.bin/env/env.c @@ -72,7 +72,7 @@ static void usage(void) __dead2; int main(int argc, char **argv) { - char *altpath, **ep, *p, **parg, term; + char *altpath, *altwd, **ep, *p, **parg, term; char *cleanenv[1]; char *login_class, *login_name; struct passwd *pw; @@ -83,6 +83,7 @@ main(int argc, char **argv) int rtrn; altpath = NULL; + altwd = NULL; login_class = NULL; login_name = NULL; pw = NULL; @@ -90,7 +91,7 @@ main(int argc, char **argv) login_as_user = false; want_clear = 0; term = '\n'; - while ((ch = getopt(argc, argv, "-0iL:P:S:U:u:v")) != -1) + while ((ch = getopt(argc, argv, "-0C:iL:P:S:U:u:v")) != -1) switch(ch) { case '-': case 'i': @@ -99,6 +100,9 @@ main(int argc, char **argv) case '0': term = '\0'; break; + case 'C': + altwd = optarg; + break; case 'U': login_as_user = true; /* FALLTHROUGH */ @@ -106,7 +110,7 @@ main(int argc, char **argv) login_name = optarg; break; case 'P': - altpath = strdup(optarg); + altpath = optarg; break; case 'S': /* @@ -199,6 +203,9 @@ main(int argc, char **argv) if (*argv) { if (term == '\0') errx(EXIT_CANCELED, "cannot specify command with -0"); + if (altwd && chdir(altwd) != 0) + err(EXIT_CANCELED, "cannot change directory to '%s'", + altwd); if (altpath) search_paths(altpath, argv); if (env_verbosity) { @@ -212,9 +219,16 @@ main(int argc, char **argv) execvp(*argv, argv); err(errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE, "%s", *argv); + } else { + if (altwd) + errx(EXIT_CANCELED, "must specify command with -C"); + if (altpath) + errx(EXIT_CANCELED, "must specify command with -P"); } for (ep = environ; *ep; ep++) (void)printf("%s%c", *ep, term); + if (fflush(stdout) != 0) + err(1, "stdout"); exit(0); } @@ -222,7 +236,7 @@ static void usage(void) { (void)fprintf(stderr, - "usage: env [-0iv] [-L|-U user[/class]] [-P utilpath] [-S string] [-u name]\n" - " [name=value ...] [utility [argument ...]]\n"); + "usage: env [-0iv] [-C workdir] [-L|-U user[/class]] [-P utilpath] [-S string]\n" + " [-u name] [name=value ...] [utility [argument ...]]\n"); exit(1); } diff --git a/usr.bin/env/tests/Makefile b/usr.bin/env/tests/Makefile new file mode 100644 index 000000000000..3d2f77b34b67 --- /dev/null +++ b/usr.bin/env/tests/Makefile @@ -0,0 +1,6 @@ +PACKAGE= tests + +ATF_TESTS_SH= env_test +BINDIR= ${TESTSDIR} + +.include diff --git a/usr.bin/env/tests/env_test.sh b/usr.bin/env/tests/env_test.sh new file mode 100644 index 000000000000..2dc8f1a4c911 --- /dev/null +++ b/usr.bin/env/tests/env_test.sh @@ -0,0 +1,160 @@ +# +# Copyright (c) 2024 Klara, Inc. +# +# SPDX-License-Identifier: BSD-2-Clause +# + +magic_words="Squeamish $$ Ossifrage" + +atf_test_case basic +basic_head() +{ + atf_set "descr" "Basic test case" +} +basic_body() +{ + atf_check -o match:"^magic_words=${magic_words}\$" \ + env magic_words="${magic_words}" + export MAGIC_WORDS="${magic_words}" + atf_check -o match:"^MAGIC_WORDS=${magic_words}\$" \ + env + unset MAGIC_WORDS +} + +atf_test_case unset +unset_head() +{ + atf_set "descr" "Unset a variable" +} +unset_body() +{ + export MAGIC_WORDS="${magic_words}" + atf_check -o not-match:"^MAGIC_WORDS=" \ + env -u MAGIC_WORDS + unset MAGIC_WORDS +} + +atf_test_case empty +empty_head() +{ + atf_set "descr" "Empty environment" +} +empty_body() +{ + atf_check env -i +} + +atf_test_case true +true_head() +{ + atf_set "descr" "Run true" +} +true_body() +{ + atf_check env true +} + +atf_test_case false +false_head() +{ + atf_set "descr" "Run false" +} +false_body() +{ + atf_check -s exit:1 env false +} + +atf_test_case false +false_head() +{ + atf_set "descr" "Run false" +} +false_body() +{ + atf_check -s exit:1 env false +} + +atf_test_case altpath +altpath_head() +{ + atf_set "descr" "Use alternate path" +} +altpath_body() +{ + echo "echo ${magic_words}" >magic_words + chmod 0755 magic_words + atf_check -s exit:125 -e match:"must specify command" \ + env -P "${PWD}" + atf_check -s exit:127 -e match:"No such file" \ + env magic_words + atf_check -o inline:"${magic_words}\n" \ + env -P "${PWD}" magic_words +} + +atf_test_case equal +equal_head() +{ + atf_set "descr" "Command name contains equal sign" +} +equal_body() +{ + echo "echo ${magic_words}" >"magic=words" + chmod 0755 "magic=words" + atf_check -o match:"^${PWD}/magic=words$" \ + env "${PWD}/magic=words" + atf_check -s exit:125 -e match:"must specify command" \ + env -P "${PATH}:${PWD}" "magic=words" + atf_check -o inline:"${magic_words}\n" \ + env command "${PWD}/magic=words" + atf_check -o inline:"${magic_words}\n" \ + env PATH="${PATH}:${PWD}" command "magic=words" +} + +atf_test_case chdir +chdir_head() +{ + atf_set "descr" "Change working directory" +} +chdir_body() +{ + local subdir="dir.$$" + atf_check -o inline:"${PWD}\n" \ + env pwd + atf_check -s exit:125 -e match:"must specify command" \ + env -C "${subdir}" + atf_check -s exit:125 \ + -e match:"cannot change directory to '${subdir}':" \ + env -C "${subdir}" pwd + atf_check mkdir "${subdir}" + atf_check -o inline:"${PWD}/${subdir}\n" \ + env -C "${subdir}" pwd +} + +atf_test_case stdout +stdout_head() +{ + atf_set descr "Failure to write to stdout" +} +stdout_body() +{ + ( + trap "" PIPE + env 2>stderr + echo $? >result + ) | true + atf_check -o inline:"1\n" cat result + atf_check -o match:"stdout" cat stderr +} + +atf_init_test_cases() +{ + atf_add_test_case basic + atf_add_test_case unset + atf_add_test_case empty + atf_add_test_case true + atf_add_test_case false + atf_add_test_case altpath + atf_add_test_case equal + atf_add_test_case chdir + atf_add_test_case stdout +} From nobody Tue Oct 15 06:30:26 2024 X-Original-To: dev-commits-src-branches@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 4XSPNg1Zy5z5YQQq; Tue, 15 Oct 2024 06:30:27 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSPNf6wt2z4tZ1; Tue, 15 Oct 2024 06:30:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728973827; 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=Gy2FxaztARHxATR2lweXEnOjtnsTnCDxIc7wsSIcmqw=; b=ie1tLT5A4erfsZt8DPBiu7yMIrtP+qqXlNLa6l6Ek8F9Ez2oUw41wQj4FZl/45bLOUto/C 3YdtbTg29UnBrjSQnai5f+mAUxV0drtNjwxXYUpX2i96UB40jmN3jBp0651ozFzJQeTkA7 yqG0+H6kI12qf4YYtbXx+sEc8hITv28yhXv5+focGEowSwwkql//R+FepoA39XUbhD/LB/ 2yXR94rhYHi3kGmZ9NeILqu8kGpqXT0uaAmDyh+GwlQ0KFB5eHHmh4JUUeFOzCB5kNfCRn ak7+MMaBgyhNVQfzTcakyjQVlnfawcdw6Je8ZSPjc39c+z7KFM4m9VrfXNy50Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728973827; 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=Gy2FxaztARHxATR2lweXEnOjtnsTnCDxIc7wsSIcmqw=; b=mbvDWR46GCOpg4zQnygU4bCvdzKfxOQ95zvyaRnDoAj4EKNUAeO9gUB/GhBZEapVs5NyTD zGXiLHKe0Gx3TzcO98vxQ06LakE8kTe9G+rXqesA1PCPrpMwoIt6O6sXv0VybDEl/v8NvR tXclQeB2j36FTvwunZTrfuOPKas1rA1jDHMtCOwNUpJTKAUHmvwH/kQ53r0/VTvcttZFXr n/vtJe8i3OuovRsed9gk1BHyxD4mvavc2v5zn4yRjboxwApQmmtOWNRIIYjVIIi4bAk3oq la3+dbAVsilRot+wuXyJT1dPlJAaBs1mq4f9JEA2NmB2xjIKoa9gE5HyWo653w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728973827; a=rsa-sha256; cv=none; b=sv40hUewcslj6Ijs9lBdljf1M2hRyrmGydaOcqs9R454hS8XGuGBZr6nxuHYzqhiNp7beX pZOAdWncGkq5C4BpL35xXx7XTrqWbLtBGY86hSANA4tG779/Dt73nq9C2Z3McAh8V0Appm hgilDYJ8RXlNfgnVbrFMHKvK2Y5ZqZl1OqSsCkoZP6pnUWbSSm4Ju/j/tuRAN1r/9f1BRZ 1gA+ixeVwg5aPnJlb3z6YQ4jg/AEorJv4UjVOIvB/uxN4w4PGZLpQe67/xMFjIKUpaaZu9 3h3KMMdNav5fT+l79nTv3z7kFrzjFnToMob5DkSTjeE15KPg7KK924UanCEA6g== 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 4XSPNf6W78z19vG; Tue, 15 Oct 2024 06:30:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49F6UQBa016013; Tue, 15 Oct 2024 06:30:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49F6UQUV016010; Tue, 15 Oct 2024 06:30:26 GMT (envelope-from git) Date: Tue, 15 Oct 2024 06:30:26 GMT Message-Id: <202410150630.49F6UQUV016010@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 02a8a4e4eb25 - stable/14 - cmp: Style and type issues. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 02a8a4e4eb25cb51d244ef835146108f01bc249e Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=02a8a4e4eb25cb51d244ef835146108f01bc249e commit 02a8a4e4eb25cb51d244ef835146108f01bc249e Author: Dag-Erling Smørgrav AuthorDate: 2024-10-09 12:08:42 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2024-10-15 05:25:17 +0000 cmp: Style and type issues. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: 0mp, markj Differential Revision: https://reviews.freebsd.org/D47019 (cherry picked from commit d350e8d795d53dbc58ea428f76355cf5e28f6116) cmp: Check the status of stdout. POSIX requires us to print an error message and exit non-zero if writing to stdout fails. This can only happen if sflag is unset. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D47020 (cherry picked from commit 3c37828ee1874754e1c5e96268016113c1e02ba2) --- usr.bin/cmp/cmp.c | 29 +++++++++++++++----------- usr.bin/cmp/extern.h | 6 +++--- usr.bin/cmp/link.c | 18 ++++++++++------- usr.bin/cmp/misc.c | 10 +++------ usr.bin/cmp/regular.c | 36 ++++++++++++++++++--------------- usr.bin/cmp/special.c | 19 ++++++++++------- usr.bin/cmp/tests/cmp_test2.sh | 46 ++++++++++++++++++++++++++++++++++-------- 7 files changed, 104 insertions(+), 60 deletions(-) diff --git a/usr.bin/cmp/cmp.c b/usr.bin/cmp/cmp.c index 56775e73ffa2..d6eb53620126 100644 --- a/usr.bin/cmp/cmp.c +++ b/usr.bin/cmp/cmp.c @@ -51,6 +51,7 @@ static char sccsid[] = "@(#)cmp.c 8.3 (Berkeley) 4/2/94"; #include #include #include +#include #include #include #include @@ -79,7 +80,6 @@ volatile sig_atomic_t info; static void siginfo(int signo) { - info = signo; } #endif @@ -113,8 +113,9 @@ main(int argc, char *argv[]) int ch, fd1, fd2, oflag; bool special; const char *file1, *file2; + int ret; - limit = skip1 = skip2 = 0; + limit = skip1 = skip2 = ret = 0; oflag = O_RDONLY; while ((ch = getopt_long(argc, argv, "+bhi:ln:sxz", long_opts, NULL)) != -1) switch (ch) { @@ -212,8 +213,8 @@ main(int argc, char *argv[]) if (fd1 == -1) { if (fd2 == -1) { - c_link(file1, skip1, file2, skip2, limit); - exit(0); + ret = c_link(file1, skip1, file2, skip2, limit); + goto end; } else if (!sflag) errx(ERR_EXIT, "%s: Not a symbolic link", file2); else @@ -252,19 +253,23 @@ main(int argc, char *argv[]) #ifdef SIGINFO (void)signal(SIGINFO, siginfo); #endif - if (special) - c_special(fd1, file1, skip1, fd2, file2, skip2, limit); - else { + if (special) { + ret = c_special(fd1, file1, skip1, fd2, file2, skip2, limit); + } else { if (zflag && sb1.st_size != sb2.st_size) { if (!sflag) - (void) printf("%s %s differ: size\n", + (void)printf("%s %s differ: size\n", file1, file2); - exit(DIFF_EXIT); + ret = DIFF_EXIT; + } else { + ret = c_regular(fd1, file1, skip1, sb1.st_size, + fd2, file2, skip2, sb2.st_size, limit); } - c_regular(fd1, file1, skip1, sb1.st_size, - fd2, file2, skip2, sb2.st_size, limit); } - exit(0); +end: + if (!sflag && fflush(stdout) != 0) + err(ERR_EXIT, "stdout"); + exit(ret); } static void diff --git a/usr.bin/cmp/extern.h b/usr.bin/cmp/extern.h index e1327df949c3..bca82eab2ac4 100644 --- a/usr.bin/cmp/extern.h +++ b/usr.bin/cmp/extern.h @@ -36,10 +36,10 @@ #define DIFF_EXIT 1 #define ERR_EXIT 2 /* error exit code */ -void c_link(const char *, off_t, const char *, off_t, off_t); -void c_regular(int, const char *, off_t, off_t, int, const char *, off_t, +int c_link(const char *, off_t, const char *, off_t, off_t); +int c_regular(int, const char *, off_t, off_t, int, const char *, off_t, off_t, off_t); -void c_special(int, const char *, off_t, int, const char *, off_t, off_t); +int c_special(int, const char *, off_t, int, const char *, off_t, off_t); void diffmsg(const char *, const char *, off_t, off_t, int, int); void eofmsg(const char *); diff --git a/usr.bin/cmp/link.c b/usr.bin/cmp/link.c index 550273cb471a..070f52986d50 100644 --- a/usr.bin/cmp/link.c +++ b/usr.bin/cmp/link.c @@ -28,6 +28,7 @@ #include #include + #include #include #include @@ -37,13 +38,14 @@ #include "extern.h" -void +int c_link(const char *file1, off_t skip1, const char *file2, off_t skip2, off_t limit) { char buf1[PATH_MAX], *p1; char buf2[PATH_MAX], *p2; - int dfound, len1, len2; + ssize_t len1, len2; + int dfound; off_t byte; u_char ch; @@ -86,15 +88,17 @@ c_link(const char *file1, off_t skip1, const char *file2, off_t skip2, else (void)printf("%6lld %3o %3o\n", (long long)byte, ch, *p2); - } else + } else { diffmsg(file1, file2, byte, 1, ch, *p2); - /* NOTREACHED */ + return (DIFF_EXIT); + } } byte++; } - if (*p1 || *p2) + if (*p1 || *p2) { eofmsg (*p1 ? file2 : file1); - if (dfound) - exit(DIFF_EXIT); + return (DIFF_EXIT); + } + return (dfound ? DIFF_EXIT : 0); } diff --git a/usr.bin/cmp/misc.c b/usr.bin/cmp/misc.c index 1924025a3a5d..d96654c57074 100644 --- a/usr.bin/cmp/misc.c +++ b/usr.bin/cmp/misc.c @@ -50,17 +50,15 @@ eofmsg(const char *file) { if (!sflag) warnx("EOF on %s", file); - exit(DIFF_EXIT); } void diffmsg(const char *file1, const char *file2, off_t byte, off_t line, int b1, int b2) { - if (sflag) - goto out; - - if (bflag) { + if (sflag) { + /* nothing */ + } else if (bflag) { (void)printf("%s %s differ: char %lld, line %lld is %3o %c %3o %c\n", file1, file2, (long long)byte, (long long)line, b1, b1, b2, b2); @@ -68,6 +66,4 @@ diffmsg(const char *file1, const char *file2, off_t byte, off_t line, (void)printf("%s %s differ: char %lld, line %lld\n", file1, file2, (long long)byte, (long long)line); } -out: - exit(DIFF_EXIT); } diff --git a/usr.bin/cmp/regular.c b/usr.bin/cmp/regular.c index fbe62bb75602..7f7afc5862dd 100644 --- a/usr.bin/cmp/regular.c +++ b/usr.bin/cmp/regular.c @@ -44,6 +44,7 @@ static char sccsid[] = "@(#)regular.c 8.3 (Berkeley) 4/2/94"; #include #include #include +#include #include #include #include @@ -56,7 +57,7 @@ static void segv_handler(int); #define ROUNDPAGE(i) ((i) & ~pagemask) -void +int c_regular(int fd1, const char *file1, off_t skip1, off_t len1, int fd2, const char *file2, off_t skip2, off_t len2, off_t limit) { @@ -68,15 +69,19 @@ c_regular(int fd1, const char *file1, off_t skip1, off_t len1, size_t pagesize; int dfound; - if (skip1 > len1) + if (skip1 > len1) { eofmsg(file1); + return (DIFF_EXIT); + } len1 -= skip1; - if (skip2 > len2) + if (skip2 > len2) { eofmsg(file2); + return (DIFF_EXIT); + } len2 -= skip2; if (sflag && len1 != len2) - exit(DIFF_EXIT); + return (DIFF_EXIT); pagesize = getpagesize(); pagemask = (off_t)pagesize - 1; @@ -88,14 +93,12 @@ c_regular(int fd1, const char *file1, off_t skip1, off_t len1, length = MIN(length, limit); if ((m1 = remmap(NULL, fd1, off1)) == NULL) { - c_special(fd1, file1, skip1, fd2, file2, skip2, limit); - return; + return (c_special(fd1, file1, skip1, fd2, file2, skip2, limit)); } if ((m2 = remmap(NULL, fd2, off2)) == NULL) { munmap(m1, MMAP_CHUNK); - c_special(fd1, file1, skip1, fd2, file2, skip2, limit); - return; + return (c_special(fd1, file1, skip1, fd2, file2, skip2, limit)); } if (caph_rights_limit(fd1, cap_rights_init(&rights, CAP_MMAP_R)) < 0) @@ -126,21 +129,21 @@ c_regular(int fd1, const char *file1, off_t skip1, off_t len1, } #endif if ((ch = *p1) != *p2) { + dfound = 1; if (xflag) { - dfound = 1; (void)printf("%08llx %02x %02x\n", (long long)byte - 1, ch, *p2); } else if (lflag) { - dfound = 1; if (bflag) (void)printf("%6lld %3o %c %3o %c\n", (long long)byte, ch, ch, *p2, *p2); else (void)printf("%6lld %3o %3o\n", (long long)byte, ch, *p2); - } else + } else { diffmsg(file1, file2, byte, line, ch, *p2); - /* NOTREACHED */ + return (DIFF_EXIT); + } } if (ch == '\n') ++line; @@ -167,10 +170,11 @@ c_regular(int fd1, const char *file1, off_t skip1, off_t len1, if (sigaction(SIGSEGV, &oact, NULL)) err(ERR_EXIT, "sigaction()"); - if (len1 != len2) - eofmsg (len1 > len2 ? file2 : file1); - if (dfound) - exit(DIFF_EXIT); + if (len1 != len2) { + eofmsg(len1 > len2 ? file2 : file1); + return (DIFF_EXIT); + } + return (dfound ? DIFF_EXIT : 0); } static u_char * diff --git a/usr.bin/cmp/special.c b/usr.bin/cmp/special.c index 3da54fde24e4..98d18c019d88 100644 --- a/usr.bin/cmp/special.c +++ b/usr.bin/cmp/special.c @@ -40,12 +40,13 @@ static char sccsid[] = "@(#)special.c 8.3 (Berkeley) 4/2/94"; #include #include +#include #include #include #include "extern.h" -void +int c_special(int fd1, const char *file1, off_t skip1, int fd2, const char *file2, off_t skip2, off_t limit) { @@ -104,7 +105,7 @@ c_special(int fd1, const char *file1, off_t skip1, (long long)byte, ch1, ch2); } else { diffmsg(file1, file2, byte, line, ch1, ch2); - /* NOTREACHED */ + return (DIFF_EXIT); } } if (ch1 == '\n') @@ -116,13 +117,17 @@ eof: if (ferror(fp1)) if (ferror(fp2)) err(ERR_EXIT, "%s", file2); if (feof(fp1)) { - if (!feof(fp2)) + if (!feof(fp2)) { eofmsg(file1); - } else - if (feof(fp2)) + return (DIFF_EXIT); + } + } else { + if (feof(fp2)) { eofmsg(file2); + return (DIFF_EXIT); + } + } fclose(fp2); fclose(fp1); - if (dfound) - exit(DIFF_EXIT); + return (dfound ? DIFF_EXIT : 0); } diff --git a/usr.bin/cmp/tests/cmp_test2.sh b/usr.bin/cmp/tests/cmp_test2.sh index ca4f6d7cf848..2ec6071851d3 100755 --- a/usr.bin/cmp/tests/cmp_test2.sh +++ b/usr.bin/cmp/tests/cmp_test2.sh @@ -31,12 +31,12 @@ special_head() { special_body() { echo 0123456789abcdef > a echo 0123456789abcdeg > b - atf_check -s exit:0 -o empty -e empty -x "cat a | cmp a -" - atf_check -s exit:0 -o empty -e empty -x "cat a | cmp - a" - atf_check -s exit:1 -o not-empty -e empty -x "cat b | cmp a -" - atf_check -s exit:1 -o not-empty -e empty -x "cat b | cmp - a" + atf_check -s exit:0 -o empty -e empty cmp a - stderr + echo $? >result + ) | true + atf_check -o inline:"2\n" cat result + atf_check -o match:"stdout" cat stderr +} + +atf_test_case stdout +stdout_head() +{ + atf_set descr "Failure to write to stdout" +} +stdout_body() +{ + echo a >a + echo b >b + atf_check_stdout a b + atf_check_stdout - b To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 80c9caa46b1e - stable/13 - env: Add a handful of test cases. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 80c9caa46b1ec89cca4138a9c8da4fb6b54fbbf7 Auto-Submitted: auto-generated The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=80c9caa46b1ec89cca4138a9c8da4fb6b54fbbf7 commit 80c9caa46b1ec89cca4138a9c8da4fb6b54fbbf7 Author: Dag-Erling Smørgrav AuthorDate: 2024-10-07 21:00:17 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2024-10-15 05:26:12 +0000 env: Add a handful of test cases. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D46996 (cherry picked from commit 334af5e4131b21c658203635bf713d6a59846585) env: Improve documentation. * The `env` utility's inability to run a command whose name contains an equal sign is a feature, not a bug, so move that paragraph up from the BUGS section to the DESCRIPTION section. * Mention that this can be worked around by prefixing the command name with `command`, and add an example of this to the EXAMPLE section. * Add a test case which verifies that `env` does not run a command with an equal sign in its name even if it exists, and also demonstrates the workaround. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D46997 (cherry picked from commit a0dfb0668b45506de97beb4c7acbe3fd1ba69fc8) env: Check the status of stdout. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D47009 (cherry picked from commit c2d93a803acef634bd0eede6673aeea59e90c277) --- etc/mtree/BSD.tests.dist | 2 + usr.bin/env/Makefile | 4 ++ usr.bin/env/env.1 | 28 ++++++--- usr.bin/env/env.c | 2 + usr.bin/env/tests/Makefile | 6 ++ usr.bin/env/tests/env_test.sh | 137 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 170 insertions(+), 9 deletions(-) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index f4b70e543d7b..c2d99ae33e30 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -1029,6 +1029,8 @@ .. du .. + env + .. file2c .. file diff --git a/usr.bin/env/Makefile b/usr.bin/env/Makefile index af2e65dd5fc1..d7a34fce92aa 100644 --- a/usr.bin/env/Makefile +++ b/usr.bin/env/Makefile @@ -1,4 +1,5 @@ # From: @(#)Makefile 8.1 (Berkeley) 6/6/93 +.include PACKAGE= runtime PROG= env @@ -6,4 +7,7 @@ SRCS= env.c envopts.c LIBADD= util +HAS_TESTS= +SUBDIR.${MK_TESTS}= tests + .include diff --git a/usr.bin/env/env.1 b/usr.bin/env/env.1 index 8aa78e110505..6858a6465b97 100644 --- a/usr.bin/env/env.1 +++ b/usr.bin/env/env.1 @@ -30,7 +30,7 @@ .\" From @(#)printenv.1 8.1 (Berkeley) 6/6/93 .\" From FreeBSD: src/usr.bin/printenv/printenv.1,v 1.17 2002/11/26 17:33:35 ru Exp .\" -.Dd March 3, 2021 +.Dd October 7, 2024 .Dt ENV 1 .Os .Sh NAME @@ -173,6 +173,19 @@ Both and .Ar utility may not be specified together. +.Pp +The +.Nm +utility does not handle values of +.Ar utility +which have an equals sign +.Pq Ql = +in their name, for obvious reasons. +This can easily be worked around by interposing the +.Xr command 1 +utility, which simply executes its arguments; see +.Sx EXAMPLES +below. .\" .Ss Details of -S (split-string) processing The processing of the @@ -471,6 +484,11 @@ and options: .Pp .Dl "#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} perl" +.Pp +To execute a utility with an equal sign in its name: +.Bd -literal -offset indent +env name=value ... command foo=bar arg ... +.Ed .Sh COMPATIBILITY The .Nm @@ -516,14 +534,6 @@ options were added in .Sh BUGS The .Nm -utility does not handle values of -.Ar utility -which have an equals sign -.Pq Ql = -in their name, for obvious reasons. -.Pp -The -.Nm utility does not take multibyte characters into account when processing the .Fl S diff --git a/usr.bin/env/env.c b/usr.bin/env/env.c index 8f2f0369c56b..3b7627e534e4 100644 --- a/usr.bin/env/env.c +++ b/usr.bin/env/env.c @@ -215,6 +215,8 @@ main(int argc, char **argv) } for (ep = environ; *ep; ep++) (void)printf("%s%c", *ep, term); + if (fflush(stdout) != 0) + err(1, "stdout"); exit(0); } diff --git a/usr.bin/env/tests/Makefile b/usr.bin/env/tests/Makefile new file mode 100644 index 000000000000..3d2f77b34b67 --- /dev/null +++ b/usr.bin/env/tests/Makefile @@ -0,0 +1,6 @@ +PACKAGE= tests + +ATF_TESTS_SH= env_test +BINDIR= ${TESTSDIR} + +.include diff --git a/usr.bin/env/tests/env_test.sh b/usr.bin/env/tests/env_test.sh new file mode 100644 index 000000000000..a3e05c050216 --- /dev/null +++ b/usr.bin/env/tests/env_test.sh @@ -0,0 +1,137 @@ +# +# Copyright (c) 2024 Klara, Inc. +# +# SPDX-License-Identifier: BSD-2-Clause +# + +magic_words="Squeamish $$ Ossifrage" + +atf_test_case basic +basic_head() +{ + atf_set "descr" "Basic test case" +} +basic_body() +{ + atf_check -o match:"^magic_words=${magic_words}\$" \ + env magic_words="${magic_words}" + export MAGIC_WORDS="${magic_words}" + atf_check -o match:"^MAGIC_WORDS=${magic_words}\$" \ + env + unset MAGIC_WORDS +} + +atf_test_case unset +unset_head() +{ + atf_set "descr" "Unset a variable" +} +unset_body() +{ + export MAGIC_WORDS="${magic_words}" + atf_check -o not-match:"^MAGIC_WORDS=" \ + env -u MAGIC_WORDS + unset MAGIC_WORDS +} + +atf_test_case empty +empty_head() +{ + atf_set "descr" "Empty environment" +} +empty_body() +{ + atf_check env -i +} + +atf_test_case true +true_head() +{ + atf_set "descr" "Run true" +} +true_body() +{ + atf_check env true +} + +atf_test_case false +false_head() +{ + atf_set "descr" "Run false" +} +false_body() +{ + atf_check -s exit:1 env false +} + +atf_test_case false +false_head() +{ + atf_set "descr" "Run false" +} +false_body() +{ + atf_check -s exit:1 env false +} + +atf_test_case altpath +altpath_head() +{ + atf_set "descr" "Use alternate path" +} +altpath_body() +{ + echo "echo ${magic_words}" >magic_words + chmod 0755 magic_words + atf_check -s exit:127 -e match:"No such file" \ + env magic_words + atf_check -o inline:"${magic_words}\n" \ + env -P "${PWD}" magic_words +} + +atf_test_case equal +equal_head() +{ + atf_set "descr" "Command name contains equal sign" +} +equal_body() +{ + echo "echo ${magic_words}" >"magic=words" + chmod 0755 "magic=words" + atf_check -o match:"^${PWD}/magic=words$" \ + env "${PWD}/magic=words" + atf_check -o match:"^magic=words$" \ + env -P "${PATH}:${PWD}" "magic=words" + atf_check -o inline:"${magic_words}\n" \ + env command "${PWD}/magic=words" + atf_check -o inline:"${magic_words}\n" \ + env PATH="${PATH}:${PWD}" command "magic=words" +} + +atf_test_case stdout +stdout_head() +{ + atf_set descr "Failure to write to stdout" +} +stdout_body() +{ + ( + trap "" PIPE + env 2>stderr + echo $? >result + ) | true + atf_check -o inline:"1\n" cat result + atf_check -o match:"stdout" cat stderr +} + +atf_init_test_cases() +{ + atf_add_test_case basic + atf_add_test_case unset + atf_add_test_case empty + atf_add_test_case true + atf_add_test_case false + atf_add_test_case altpath + atf_add_test_case equal + atf_add_test_case stdout +} From nobody Tue Oct 15 06:30:29 2024 X-Original-To: dev-commits-src-branches@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 4XSPNj4n1gz5YQYm; Tue, 15 Oct 2024 06:30:29 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSPNj1yJSz4tLk; Tue, 15 Oct 2024 06:30:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728973829; 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=GvZ0gbcKo0h8Y/aR1c4iIoyQ2IFZP9zW0QSroPKxgpY=; b=lRWVINDgc5UnpV2LNs/9nzKE4o92N5AAuzIdyKhLMXIN+AFKM4qx0NvIYKRMuYRC78QWUg b4vTh3E79HXOJyNiR0KcY8lnVZ1E2FIGWmOI8nA1yzalFx9WP20iUjZ4OD3vNo9HJBhJnE bBVVWd3HL9GhqiTBWc/cXG7sonXkGGDzmXueTNXCl9nzkrLOW9LUOtUQaPVTpvYGQ/f9Md ZWgnlb4agw9TceG11C+wUNJTGSKztKboQAD7KvDciq1kZ64mvpFBnX1PU2m2EVOPQddx3c mhqwM7fFgLBviYJde93S/aYqP90tpRUIH9JKlU6ql4ktJUKCmWtiMhPLfYx04w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728973829; 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=GvZ0gbcKo0h8Y/aR1c4iIoyQ2IFZP9zW0QSroPKxgpY=; b=CD3fd17kVh7BTYxtKDpOkaIb9fiYymyLYs+Mn5ETUJd6gNwu+2vrNdVkt8qqnZ5VxgGvrB izBYf6h3GxpCWf8BBVDN72eoC2MriJ8VRtWkkoNa/zVcPR3pJsAKNsIIhYleMlbHSYIgGz d5cr18035qfNw/i6Zw30Q9WhVCq3DNVribuNCd3i8XBS1SFOZ0rvlVZtXJMOrg1vr+8k6u ZdHH5lIYJ6lK4EkxlJSGYCU5jLE/hJmQDb17scN3CAwyWto5GCyd9J85ZG+T8g/wqhW67+ ZxlCpAak1copmMJ71K+dX7YOx9jMe6kqSITvjJzQl7NcuVNpDAkL8XGA+26tTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728973829; a=rsa-sha256; cv=none; b=KDdG5xOV5kmQsN0W6W26OwUOqsXdMJvMTXlmgbvTTpdX3lx8waKkRvBz3u4KkG8JxoAioJ LYbNVv9bjmuBX7LYwI+OntXWNIQKWSJUK5s1QJFGHa87LuPYePpY/iAOkpka8Nt+okP9z8 /ek4XVgCXv7QX5LnpTGrjpfVXiTtxPSmujFUER9c05oqZ3OGahczbq8zcNQxMc/xtF11L0 /Ud+5dbrWFyxw7A1vTnFE/GHc+PMl6IccNq3zuBQrch/lAm+CwYAKA6sY1cSnSWwHpWIL8 wrA0xL20WT4VLx9ohThf7F2nZcfogsaBQqMYjuaTBYPyI2XdLjx5rtHsGWb+aA== 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 4XSPNj1W9vz19ts; Tue, 15 Oct 2024 06:30:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49F6UT6R016207; Tue, 15 Oct 2024 06:30:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49F6UTiW016204; Tue, 15 Oct 2024 06:30:29 GMT (envelope-from git) Date: Tue, 15 Oct 2024 06:30:29 GMT Message-Id: <202410150630.49F6UTiW016204@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 11b0b75a9fba - stable/13 - cmp: Style and type issues. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 11b0b75a9fba14d8f051c8d5bf30827ed9d8d580 Auto-Submitted: auto-generated The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=11b0b75a9fba14d8f051c8d5bf30827ed9d8d580 commit 11b0b75a9fba14d8f051c8d5bf30827ed9d8d580 Author: Dag-Erling Smørgrav AuthorDate: 2024-10-09 12:08:42 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2024-10-15 05:26:24 +0000 cmp: Style and type issues. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: 0mp, markj Differential Revision: https://reviews.freebsd.org/D47019 (cherry picked from commit d350e8d795d53dbc58ea428f76355cf5e28f6116) cmp: Check the status of stdout. POSIX requires us to print an error message and exit non-zero if writing to stdout fails. This can only happen if sflag is unset. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D47020 (cherry picked from commit 3c37828ee1874754e1c5e96268016113c1e02ba2) --- usr.bin/cmp/cmp.c | 29 +++++++++++++++----------- usr.bin/cmp/extern.h | 6 +++--- usr.bin/cmp/link.c | 18 ++++++++++------- usr.bin/cmp/misc.c | 10 +++------ usr.bin/cmp/regular.c | 36 ++++++++++++++++++--------------- usr.bin/cmp/special.c | 19 ++++++++++------- usr.bin/cmp/tests/cmp_test2.sh | 46 ++++++++++++++++++++++++++++++++++-------- 7 files changed, 104 insertions(+), 60 deletions(-) diff --git a/usr.bin/cmp/cmp.c b/usr.bin/cmp/cmp.c index 01ff26b2b8bc..53e21474da59 100644 --- a/usr.bin/cmp/cmp.c +++ b/usr.bin/cmp/cmp.c @@ -51,6 +51,7 @@ static char sccsid[] = "@(#)cmp.c 8.3 (Berkeley) 4/2/94"; #include #include #include +#include #include #include #include @@ -79,7 +80,6 @@ volatile sig_atomic_t info; static void siginfo(int signo) { - info = signo; } #endif @@ -113,8 +113,9 @@ main(int argc, char *argv[]) int ch, fd1, fd2, oflag; bool special; const char *file1, *file2; + int ret; - limit = skip1 = skip2 = 0; + limit = skip1 = skip2 = ret = 0; oflag = O_RDONLY; while ((ch = getopt_long(argc, argv, "+bhi:ln:sxz", long_opts, NULL)) != -1) switch (ch) { @@ -212,8 +213,8 @@ main(int argc, char *argv[]) if (fd1 == -1) { if (fd2 == -1) { - c_link(file1, skip1, file2, skip2, limit); - exit(0); + ret = c_link(file1, skip1, file2, skip2, limit); + goto end; } else if (!sflag) errx(ERR_EXIT, "%s: Not a symbolic link", file2); else @@ -252,19 +253,23 @@ main(int argc, char *argv[]) #ifdef SIGINFO (void)signal(SIGINFO, siginfo); #endif - if (special) - c_special(fd1, file1, skip1, fd2, file2, skip2, limit); - else { + if (special) { + ret = c_special(fd1, file1, skip1, fd2, file2, skip2, limit); + } else { if (zflag && sb1.st_size != sb2.st_size) { if (!sflag) - (void) printf("%s %s differ: size\n", + (void)printf("%s %s differ: size\n", file1, file2); - exit(DIFF_EXIT); + ret = DIFF_EXIT; + } else { + ret = c_regular(fd1, file1, skip1, sb1.st_size, + fd2, file2, skip2, sb2.st_size, limit); } - c_regular(fd1, file1, skip1, sb1.st_size, - fd2, file2, skip2, sb2.st_size, limit); } - exit(0); +end: + if (!sflag && fflush(stdout) != 0) + err(ERR_EXIT, "stdout"); + exit(ret); } static void diff --git a/usr.bin/cmp/extern.h b/usr.bin/cmp/extern.h index e1327df949c3..bca82eab2ac4 100644 --- a/usr.bin/cmp/extern.h +++ b/usr.bin/cmp/extern.h @@ -36,10 +36,10 @@ #define DIFF_EXIT 1 #define ERR_EXIT 2 /* error exit code */ -void c_link(const char *, off_t, const char *, off_t, off_t); -void c_regular(int, const char *, off_t, off_t, int, const char *, off_t, +int c_link(const char *, off_t, const char *, off_t, off_t); +int c_regular(int, const char *, off_t, off_t, int, const char *, off_t, off_t, off_t); -void c_special(int, const char *, off_t, int, const char *, off_t, off_t); +int c_special(int, const char *, off_t, int, const char *, off_t, off_t); void diffmsg(const char *, const char *, off_t, off_t, int, int); void eofmsg(const char *); diff --git a/usr.bin/cmp/link.c b/usr.bin/cmp/link.c index 550273cb471a..070f52986d50 100644 --- a/usr.bin/cmp/link.c +++ b/usr.bin/cmp/link.c @@ -28,6 +28,7 @@ #include #include + #include #include #include @@ -37,13 +38,14 @@ #include "extern.h" -void +int c_link(const char *file1, off_t skip1, const char *file2, off_t skip2, off_t limit) { char buf1[PATH_MAX], *p1; char buf2[PATH_MAX], *p2; - int dfound, len1, len2; + ssize_t len1, len2; + int dfound; off_t byte; u_char ch; @@ -86,15 +88,17 @@ c_link(const char *file1, off_t skip1, const char *file2, off_t skip2, else (void)printf("%6lld %3o %3o\n", (long long)byte, ch, *p2); - } else + } else { diffmsg(file1, file2, byte, 1, ch, *p2); - /* NOTREACHED */ + return (DIFF_EXIT); + } } byte++; } - if (*p1 || *p2) + if (*p1 || *p2) { eofmsg (*p1 ? file2 : file1); - if (dfound) - exit(DIFF_EXIT); + return (DIFF_EXIT); + } + return (dfound ? DIFF_EXIT : 0); } diff --git a/usr.bin/cmp/misc.c b/usr.bin/cmp/misc.c index 1924025a3a5d..d96654c57074 100644 --- a/usr.bin/cmp/misc.c +++ b/usr.bin/cmp/misc.c @@ -50,17 +50,15 @@ eofmsg(const char *file) { if (!sflag) warnx("EOF on %s", file); - exit(DIFF_EXIT); } void diffmsg(const char *file1, const char *file2, off_t byte, off_t line, int b1, int b2) { - if (sflag) - goto out; - - if (bflag) { + if (sflag) { + /* nothing */ + } else if (bflag) { (void)printf("%s %s differ: char %lld, line %lld is %3o %c %3o %c\n", file1, file2, (long long)byte, (long long)line, b1, b1, b2, b2); @@ -68,6 +66,4 @@ diffmsg(const char *file1, const char *file2, off_t byte, off_t line, (void)printf("%s %s differ: char %lld, line %lld\n", file1, file2, (long long)byte, (long long)line); } -out: - exit(DIFF_EXIT); } diff --git a/usr.bin/cmp/regular.c b/usr.bin/cmp/regular.c index fbe62bb75602..7f7afc5862dd 100644 --- a/usr.bin/cmp/regular.c +++ b/usr.bin/cmp/regular.c @@ -44,6 +44,7 @@ static char sccsid[] = "@(#)regular.c 8.3 (Berkeley) 4/2/94"; #include #include #include +#include #include #include #include @@ -56,7 +57,7 @@ static void segv_handler(int); #define ROUNDPAGE(i) ((i) & ~pagemask) -void +int c_regular(int fd1, const char *file1, off_t skip1, off_t len1, int fd2, const char *file2, off_t skip2, off_t len2, off_t limit) { @@ -68,15 +69,19 @@ c_regular(int fd1, const char *file1, off_t skip1, off_t len1, size_t pagesize; int dfound; - if (skip1 > len1) + if (skip1 > len1) { eofmsg(file1); + return (DIFF_EXIT); + } len1 -= skip1; - if (skip2 > len2) + if (skip2 > len2) { eofmsg(file2); + return (DIFF_EXIT); + } len2 -= skip2; if (sflag && len1 != len2) - exit(DIFF_EXIT); + return (DIFF_EXIT); pagesize = getpagesize(); pagemask = (off_t)pagesize - 1; @@ -88,14 +93,12 @@ c_regular(int fd1, const char *file1, off_t skip1, off_t len1, length = MIN(length, limit); if ((m1 = remmap(NULL, fd1, off1)) == NULL) { - c_special(fd1, file1, skip1, fd2, file2, skip2, limit); - return; + return (c_special(fd1, file1, skip1, fd2, file2, skip2, limit)); } if ((m2 = remmap(NULL, fd2, off2)) == NULL) { munmap(m1, MMAP_CHUNK); - c_special(fd1, file1, skip1, fd2, file2, skip2, limit); - return; + return (c_special(fd1, file1, skip1, fd2, file2, skip2, limit)); } if (caph_rights_limit(fd1, cap_rights_init(&rights, CAP_MMAP_R)) < 0) @@ -126,21 +129,21 @@ c_regular(int fd1, const char *file1, off_t skip1, off_t len1, } #endif if ((ch = *p1) != *p2) { + dfound = 1; if (xflag) { - dfound = 1; (void)printf("%08llx %02x %02x\n", (long long)byte - 1, ch, *p2); } else if (lflag) { - dfound = 1; if (bflag) (void)printf("%6lld %3o %c %3o %c\n", (long long)byte, ch, ch, *p2, *p2); else (void)printf("%6lld %3o %3o\n", (long long)byte, ch, *p2); - } else + } else { diffmsg(file1, file2, byte, line, ch, *p2); - /* NOTREACHED */ + return (DIFF_EXIT); + } } if (ch == '\n') ++line; @@ -167,10 +170,11 @@ c_regular(int fd1, const char *file1, off_t skip1, off_t len1, if (sigaction(SIGSEGV, &oact, NULL)) err(ERR_EXIT, "sigaction()"); - if (len1 != len2) - eofmsg (len1 > len2 ? file2 : file1); - if (dfound) - exit(DIFF_EXIT); + if (len1 != len2) { + eofmsg(len1 > len2 ? file2 : file1); + return (DIFF_EXIT); + } + return (dfound ? DIFF_EXIT : 0); } static u_char * diff --git a/usr.bin/cmp/special.c b/usr.bin/cmp/special.c index 3da54fde24e4..98d18c019d88 100644 --- a/usr.bin/cmp/special.c +++ b/usr.bin/cmp/special.c @@ -40,12 +40,13 @@ static char sccsid[] = "@(#)special.c 8.3 (Berkeley) 4/2/94"; #include #include +#include #include #include #include "extern.h" -void +int c_special(int fd1, const char *file1, off_t skip1, int fd2, const char *file2, off_t skip2, off_t limit) { @@ -104,7 +105,7 @@ c_special(int fd1, const char *file1, off_t skip1, (long long)byte, ch1, ch2); } else { diffmsg(file1, file2, byte, line, ch1, ch2); - /* NOTREACHED */ + return (DIFF_EXIT); } } if (ch1 == '\n') @@ -116,13 +117,17 @@ eof: if (ferror(fp1)) if (ferror(fp2)) err(ERR_EXIT, "%s", file2); if (feof(fp1)) { - if (!feof(fp2)) + if (!feof(fp2)) { eofmsg(file1); - } else - if (feof(fp2)) + return (DIFF_EXIT); + } + } else { + if (feof(fp2)) { eofmsg(file2); + return (DIFF_EXIT); + } + } fclose(fp2); fclose(fp1); - if (dfound) - exit(DIFF_EXIT); + return (dfound ? DIFF_EXIT : 0); } diff --git a/usr.bin/cmp/tests/cmp_test2.sh b/usr.bin/cmp/tests/cmp_test2.sh index ca4f6d7cf848..2ec6071851d3 100755 --- a/usr.bin/cmp/tests/cmp_test2.sh +++ b/usr.bin/cmp/tests/cmp_test2.sh @@ -31,12 +31,12 @@ special_head() { special_body() { echo 0123456789abcdef > a echo 0123456789abcdeg > b - atf_check -s exit:0 -o empty -e empty -x "cat a | cmp a -" - atf_check -s exit:0 -o empty -e empty -x "cat a | cmp - a" - atf_check -s exit:1 -o not-empty -e empty -x "cat b | cmp a -" - atf_check -s exit:1 -o not-empty -e empty -x "cat b | cmp - a" + atf_check -s exit:0 -o empty -e empty cmp a - stderr + echo $? >result + ) | true + atf_check -o inline:"2\n" cat result + atf_check -o match:"stdout" cat stderr +} + +atf_test_case stdout +stdout_head() +{ + atf_set descr "Failure to write to stdout" +} +stdout_body() +{ + echo a >a + echo b >b + atf_check_stdout a b + atf_check_stdout - b To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Roger Pau =?utf-8?Q?Monn=C3=A9?= Subject: git: 11432d8f0765 - stable/14 - xen/blk{front,back}: fix usage of sector sizes different than 512b List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: royger X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 11432d8f076579adbfad6363f0440ebafc5971e5 Auto-Submitted: auto-generated The branch stable/14 has been updated by royger: URL: https://cgit.FreeBSD.org/src/commit/?id=11432d8f076579adbfad6363f0440ebafc5971e5 commit 11432d8f076579adbfad6363f0440ebafc5971e5 Author: Roger Pau Monné AuthorDate: 2024-08-26 11:57:36 +0000 Commit: Roger Pau Monné CommitDate: 2024-10-15 08:12:19 +0000 xen/blk{front,back}: fix usage of sector sizes different than 512b The units of the size reported in the 'sectors' xenbus node is always 512b, regardless of the value of the 'sector-size' node. The sector offsets in the ring requests are also always based on 512b sectors, regardless of the 'sector-size' reported in xenbus. Fix both blkfront and blkback to assume 512b sectors in the required fields. The blkif.h public header has been recently updated in upstream Xen repository to fix the regressions in the specification introduced by later modifications, and clarify the base units of xenstore and shared ring fields. PR: 280884 Reported by: Christian Kujau MFC after: 1 week Sponsored by: Cloud Software Group Reviewed by: markj Differential revision: https://reviews.freebsd.org/D46756 (cherry picked from commit e7fe85643735ffdcf18ebef81343eaac9b8d2584) --- sys/dev/xen/blkback/blkback.c | 22 ++++++++++++++------- sys/dev/xen/blkfront/blkfront.c | 43 ++++++++++++++++++++++++++++++----------- 2 files changed, 47 insertions(+), 18 deletions(-) diff --git a/sys/dev/xen/blkback/blkback.c b/sys/dev/xen/blkback/blkback.c index 43d2134ca5b3..8711bf0b08f5 100644 --- a/sys/dev/xen/blkback/blkback.c +++ b/sys/dev/xen/blkback/blkback.c @@ -145,6 +145,8 @@ static MALLOC_DEFINE(M_XENBLOCKBACK, "xbbd", "Xen Block Back Driver Data"); */ #define XBB_MAX_SEGMENTS_PER_REQLIST XBB_MAX_SEGMENTS_PER_REQUEST +#define XBD_SECTOR_SHFT 9 + /*--------------------------- Forward Declarations ---------------------------*/ struct xbb_softc; struct xbb_xen_req; @@ -1150,7 +1152,9 @@ xbb_get_resources(struct xbb_softc *xbb, struct xbb_xen_reqlist **reqlist, if (*reqlist == NULL) { *reqlist = nreqlist; nreqlist->operation = ring_req->operation; - nreqlist->starting_sector_number = ring_req->sector_number; + nreqlist->starting_sector_number = + (ring_req->sector_number << XBD_SECTOR_SHFT) >> + xbb->sector_size_shift; STAILQ_INSERT_TAIL(&xbb->reqlist_pending_stailq, nreqlist, links); } @@ -2476,13 +2480,13 @@ xbb_open_file(struct xbb_softc *xbb) xbb->sector_size = 512; /* - * Sanity check. The media size has to be at least one - * sector long. + * Sanity check. The media size must be a multiple of the sector + * size. */ - if (xbb->media_size < xbb->sector_size) { + if ((xbb->media_size % xbb->sector_size) != 0) { error = EINVAL; xenbus_dev_fatal(xbb->dev, error, - "file %s size %ju < block size %u", + "file %s size %ju not multiple of block size %u", xbb->dev_name, (uintmax_t)xbb->media_size, xbb->sector_size); @@ -3086,9 +3090,13 @@ xbb_publish_backend_info(struct xbb_softc *xbb) return (error); } + /* + * The 'sectors' node is special and always contains the size + * in units of 512b, regardless of the value in 'sector-size'. + */ leaf = "sectors"; - error = xs_printf(xst, our_path, leaf, - "%"PRIu64, xbb->media_num_sectors); + error = xs_printf(xst, our_path, leaf, "%ju", + (uintmax_t)(xbb->media_size >> XBD_SECTOR_SHFT)); if (error != 0) break; diff --git a/sys/dev/xen/blkfront/blkfront.c b/sys/dev/xen/blkfront/blkfront.c index c7ce7eaa5d8e..a0e6e18ef8bf 100644 --- a/sys/dev/xen/blkfront/blkfront.c +++ b/sys/dev/xen/blkfront/blkfront.c @@ -159,7 +159,8 @@ xbd_free_command(struct xbd_command *cm) static void xbd_mksegarray(bus_dma_segment_t *segs, int nsegs, grant_ref_t * gref_head, int otherend_id, int readonly, - grant_ref_t * sg_ref, struct blkif_request_segment *sg) + grant_ref_t * sg_ref, struct blkif_request_segment *sg, + unsigned int sector_size) { struct blkif_request_segment *last_block_sg = sg + nsegs; vm_paddr_t buffer_ma; @@ -167,9 +168,9 @@ xbd_mksegarray(bus_dma_segment_t *segs, int nsegs, int ref; while (sg < last_block_sg) { - KASSERT(segs->ds_addr % (1 << XBD_SECTOR_SHFT) == 0, + KASSERT((segs->ds_addr & (sector_size - 1)) == 0, ("XEN disk driver I/O must be sector aligned")); - KASSERT(segs->ds_len % (1 << XBD_SECTOR_SHFT) == 0, + KASSERT((segs->ds_len & (sector_size - 1)) == 0, ("XEN disk driver I/Os must be a multiple of " "the sector length")); buffer_ma = segs->ds_addr; @@ -242,7 +243,8 @@ xbd_queue_cb(void *arg, bus_dma_segment_t *segs, int nsegs, int error) xbd_mksegarray(segs, nsegs, &cm->cm_gref_head, xenbus_get_otherend_id(sc->xbd_dev), cm->cm_operation == BLKIF_OP_WRITE, - cm->cm_sg_refs, ring_req->seg); + cm->cm_sg_refs, ring_req->seg, + sc->xbd_disk->d_sectorsize); } else { blkif_request_indirect_t *ring_req; @@ -260,7 +262,8 @@ xbd_queue_cb(void *arg, bus_dma_segment_t *segs, int nsegs, int error) xbd_mksegarray(segs, nsegs, &cm->cm_gref_head, xenbus_get_otherend_id(sc->xbd_dev), cm->cm_operation == BLKIF_OP_WRITE, - cm->cm_sg_refs, cm->cm_indirectionpages); + cm->cm_sg_refs, cm->cm_indirectionpages, + sc->xbd_disk->d_sectorsize); memcpy(ring_req->indirect_grefs, &cm->cm_indirectionrefs, sizeof(grant_ref_t) * sc->xbd_max_request_indirectpages); } @@ -360,7 +363,9 @@ xbd_bio_command(struct xbd_softc *sc) } cm->cm_bp = bp; - cm->cm_sector_number = (blkif_sector_t)bp->bio_pblkno; + cm->cm_sector_number = + ((blkif_sector_t)bp->bio_pblkno * sc->xbd_disk->d_sectorsize) >> + XBD_SECTOR_SHFT; switch (bp->bio_cmd) { case BIO_READ: @@ -632,7 +637,7 @@ xbd_dump(void *arg, void *virtual, off_t offset, size_t length) cm->cm_data = virtual; cm->cm_datalen = chunk; cm->cm_operation = BLKIF_OP_WRITE; - cm->cm_sector_number = offset / dp->d_sectorsize; + cm->cm_sector_number = offset >> XBD_SECTOR_SHFT; cm->cm_complete = xbd_dump_complete; xbd_enqueue_cm(cm, XBD_Q_READY); @@ -1026,7 +1031,19 @@ xbd_instance_create(struct xbd_softc *sc, blkif_sector_t sectors, sc->xbd_disk->d_stripesize = phys_sector_size; sc->xbd_disk->d_stripeoffset = 0; - sc->xbd_disk->d_mediasize = sectors * sector_size; + /* + * The 'sectors' xenbus node is always in units of 512b, regardless of + * the 'sector-size' xenbus node value. + */ + sc->xbd_disk->d_mediasize = sectors << XBD_SECTOR_SHFT; + if ((sc->xbd_disk->d_mediasize % sc->xbd_disk->d_sectorsize) != 0) { + error = EINVAL; + xenbus_dev_fatal(sc->xbd_dev, error, + "Disk size (%ju) not a multiple of sector size (%ju)", + (uintmax_t)sc->xbd_disk->d_mediasize, + (uintmax_t)sc->xbd_disk->d_sectorsize); + return (error); + } sc->xbd_disk->d_maxsize = sc->xbd_max_request_size; sc->xbd_disk->d_flags = DISKFLAG_UNMAPPED_BIO; if ((sc->xbd_flags & (XBDF_FLUSH|XBDF_BARRIER)) != 0) { @@ -1313,7 +1330,7 @@ xbd_connect(struct xbd_softc *sc) /* Allocate datastructures based on negotiated values. */ err = bus_dma_tag_create( bus_get_dma_tag(sc->xbd_dev), /* parent */ - 512, PAGE_SIZE, /* algnmnt, boundary */ + sector_size, PAGE_SIZE, /* algnmnt, boundary */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ @@ -1385,13 +1402,17 @@ xbd_connect(struct xbd_softc *sc) if (sc->xbd_disk == NULL) { device_printf(dev, "%juMB <%s> at %s", - (uintmax_t) sectors / (1048576 / sector_size), + (uintmax_t)((sectors << XBD_SECTOR_SHFT) / 1048576), device_get_desc(dev), xenbus_get_node(dev)); bus_print_child_footer(device_get_parent(dev), dev); - xbd_instance_create(sc, sectors, sc->xbd_vdevice, binfo, + err = xbd_instance_create(sc, sectors, sc->xbd_vdevice, binfo, sector_size, phys_sector_size); + if (err != 0) { + xenbus_dev_fatal(dev, err, "Unable to create instance"); + return; + } } (void)xenbus_set_state(dev, XenbusStateConnected); From nobody Tue Oct 15 08:26:36 2024 X-Original-To: dev-commits-src-branches@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 4XSRyh4bwyz5YZ8M; Tue, 15 Oct 2024 08:26: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSRyh31Mbz46Xq; Tue, 15 Oct 2024 08:26:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728980796; 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=BzcfwuX0t41zjTqIznuh3sUVkuXpIQeMVedXIx3TUj4=; b=brlu4gxe26RyhYdtwWNysl7iBjET095Ag4KR8XfCY202JRhYycAqNJOgnf/LJQEODqJH4A pwJx2hl/8Px2NFszJ6PxmDvSiaKTaGvzSK+LU09LGiVddOelIsWvuFitFiQf+EIrGPD0cR gTkq78NmQ0hxnneJ5/gbjb/aSXh1YHMQDvUtPijlxnezJ2hNXSxOb2s8yQ+Cefw18l19gS SUqteOAQi0NJYaGHw3Dai+DaOvbbikJtLPl5UVxx4If0ovp9sYrHH+Bw6O2o+JxA9Lv5d+ AaMT8aN/psDEb6NjM0bqXcZTfazgenQPPle4g8E9hcit0gDSZxc3LNg0TNEFNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728980796; 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=BzcfwuX0t41zjTqIznuh3sUVkuXpIQeMVedXIx3TUj4=; b=OcDkMqPq0f9RyVgRf3xAvoLgL6FDXfhqdPDrdaI600LMZVkprlwImT24XFd298CtPtj7X1 NP58dZOz7pVZn4ZhhiPjyG/xzhuMYPowbPpyGWwK3LNcWRwxdIVZuoKWGnj+sYEkKIUgNQ wH5H5SLoFXqx7tq7SukEaZ6RqIl3F6nhDxL8FLbiazI5LBtyryKdMgpF3xVTCgiqbOU3eK NMwna/ndP+upjRzzkZ8JTxMH95YGh3h0XNGeQdKBWc99OQCuePqY7CbJNNpvO9nt1crzA/ rpKRLSCxyqZ+EfUyr1R+v60sJCmib0F4dZomYndrITchKhwF780W7Zb6vVaSXQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728980796; a=rsa-sha256; cv=none; b=AbzPgXrQNILlUUnrB4HRLg/8ofDygH8hGHnyUB1STF3UcWN8Ona2wNy7uDbL2MJaR7japy bsou1LfOgkWIN7n3lrZFUjuRdwI+cQBcxDhSKCeRE+YSZu2T4RAVNfxMNz+wb/ID4+i/1e MHp0xAh9nQI3p6+8u8gYbR7A3lZBlSMkTatiPz5K74CLp1mQ6+LBPbVlK6uf5V/i1vavuT p7KIYkIyimBLHo/gt4sydxEoq1cqxzpGCl0Kta2+SjsDSxACsrEzYycVM3LVE3dharZ+ee MlFjoqbTiS+yUgT3BH3DSPIk+Pt0HfR9OohG8bJAHjzKmBlmzRRgUX9CrbrxTA== 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 4XSRyh1qx4zFYk; Tue, 15 Oct 2024 08:26:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49F8QaNQ009679; Tue, 15 Oct 2024 08:26:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49F8QaXu009676; Tue, 15 Oct 2024 08:26:36 GMT (envelope-from git) Date: Tue, 15 Oct 2024 08:26:36 GMT Message-Id: <202410150826.49F8QaXu009676@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Roger Pau =?utf-8?Q?Monn=C3=A9?= Subject: git: 9da7b206f9d6 - stable/13 - xen/blk{front,back}: fix usage of sector sizes different than 512b List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: royger X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9da7b206f9d673a81574d6d08ec430ab49599735 Auto-Submitted: auto-generated The branch stable/13 has been updated by royger: URL: https://cgit.FreeBSD.org/src/commit/?id=9da7b206f9d673a81574d6d08ec430ab49599735 commit 9da7b206f9d673a81574d6d08ec430ab49599735 Author: Roger Pau Monné AuthorDate: 2024-08-26 11:57:36 +0000 Commit: Roger Pau Monné CommitDate: 2024-10-15 08:14:59 +0000 xen/blk{front,back}: fix usage of sector sizes different than 512b The units of the size reported in the 'sectors' xenbus node is always 512b, regardless of the value of the 'sector-size' node. The sector offsets in the ring requests are also always based on 512b sectors, regardless of the 'sector-size' reported in xenbus. Fix both blkfront and blkback to assume 512b sectors in the required fields. The blkif.h public header has been recently updated in upstream Xen repository to fix the regressions in the specification introduced by later modifications, and clarify the base units of xenstore and shared ring fields. PR: 280884 Reported by: Christian Kujau MFC after: 1 week Sponsored by: Cloud Software Group Reviewed by: markj Differential revision: https://reviews.freebsd.org/D46756 (cherry picked from commit e7fe85643735ffdcf18ebef81343eaac9b8d2584) --- sys/dev/xen/blkback/blkback.c | 22 ++++++++++++++------- sys/dev/xen/blkfront/blkfront.c | 43 ++++++++++++++++++++++++++++++----------- 2 files changed, 47 insertions(+), 18 deletions(-) diff --git a/sys/dev/xen/blkback/blkback.c b/sys/dev/xen/blkback/blkback.c index a0ac8e13ec71..c58af5e9c90f 100644 --- a/sys/dev/xen/blkback/blkback.c +++ b/sys/dev/xen/blkback/blkback.c @@ -166,6 +166,8 @@ static MALLOC_DEFINE(M_XENBLOCKBACK, "xbbd", "Xen Block Back Driver Data"); */ #define XBB_MAX_SEGMENTS_PER_REQLIST XBB_MAX_SEGMENTS_PER_REQUEST +#define XBD_SECTOR_SHFT 9 + /*--------------------------- Forward Declarations ---------------------------*/ struct xbb_softc; struct xbb_xen_req; @@ -1226,7 +1228,9 @@ xbb_get_resources(struct xbb_softc *xbb, struct xbb_xen_reqlist **reqlist, if (*reqlist == NULL) { *reqlist = nreqlist; nreqlist->operation = ring_req->operation; - nreqlist->starting_sector_number = ring_req->sector_number; + nreqlist->starting_sector_number = + (ring_req->sector_number << XBD_SECTOR_SHFT) >> + xbb->sector_size_shift; STAILQ_INSERT_TAIL(&xbb->reqlist_pending_stailq, nreqlist, links); } @@ -2633,13 +2637,13 @@ xbb_open_file(struct xbb_softc *xbb) xbb->sector_size = 512; /* - * Sanity check. The media size has to be at least one - * sector long. + * Sanity check. The media size must be a multiple of the sector + * size. */ - if (xbb->media_size < xbb->sector_size) { + if ((xbb->media_size % xbb->sector_size) != 0) { error = EINVAL; xenbus_dev_fatal(xbb->dev, error, - "file %s size %ju < block size %u", + "file %s size %ju not multiple of block size %u", xbb->dev_name, (uintmax_t)xbb->media_size, xbb->sector_size); @@ -3260,9 +3264,13 @@ xbb_publish_backend_info(struct xbb_softc *xbb) return (error); } + /* + * The 'sectors' node is special and always contains the size + * in units of 512b, regardless of the value in 'sector-size'. + */ leaf = "sectors"; - error = xs_printf(xst, our_path, leaf, - "%"PRIu64, xbb->media_num_sectors); + error = xs_printf(xst, our_path, leaf, "%ju", + (uintmax_t)(xbb->media_size >> XBD_SECTOR_SHFT)); if (error != 0) break; diff --git a/sys/dev/xen/blkfront/blkfront.c b/sys/dev/xen/blkfront/blkfront.c index 90b5130273b4..e1fcf378316d 100644 --- a/sys/dev/xen/blkfront/blkfront.c +++ b/sys/dev/xen/blkfront/blkfront.c @@ -160,7 +160,8 @@ xbd_free_command(struct xbd_command *cm) static void xbd_mksegarray(bus_dma_segment_t *segs, int nsegs, grant_ref_t * gref_head, int otherend_id, int readonly, - grant_ref_t * sg_ref, struct blkif_request_segment *sg) + grant_ref_t * sg_ref, struct blkif_request_segment *sg, + unsigned int sector_size) { struct blkif_request_segment *last_block_sg = sg + nsegs; vm_paddr_t buffer_ma; @@ -168,9 +169,9 @@ xbd_mksegarray(bus_dma_segment_t *segs, int nsegs, int ref; while (sg < last_block_sg) { - KASSERT(segs->ds_addr % (1 << XBD_SECTOR_SHFT) == 0, + KASSERT((segs->ds_addr & (sector_size - 1)) == 0, ("XEN disk driver I/O must be sector aligned")); - KASSERT(segs->ds_len % (1 << XBD_SECTOR_SHFT) == 0, + KASSERT((segs->ds_len & (sector_size - 1)) == 0, ("XEN disk driver I/Os must be a multiple of " "the sector length")); buffer_ma = segs->ds_addr; @@ -243,7 +244,8 @@ xbd_queue_cb(void *arg, bus_dma_segment_t *segs, int nsegs, int error) xbd_mksegarray(segs, nsegs, &cm->cm_gref_head, xenbus_get_otherend_id(sc->xbd_dev), cm->cm_operation == BLKIF_OP_WRITE, - cm->cm_sg_refs, ring_req->seg); + cm->cm_sg_refs, ring_req->seg, + sc->xbd_disk->d_sectorsize); } else { blkif_request_indirect_t *ring_req; @@ -261,7 +263,8 @@ xbd_queue_cb(void *arg, bus_dma_segment_t *segs, int nsegs, int error) xbd_mksegarray(segs, nsegs, &cm->cm_gref_head, xenbus_get_otherend_id(sc->xbd_dev), cm->cm_operation == BLKIF_OP_WRITE, - cm->cm_sg_refs, cm->cm_indirectionpages); + cm->cm_sg_refs, cm->cm_indirectionpages, + sc->xbd_disk->d_sectorsize); memcpy(ring_req->indirect_grefs, &cm->cm_indirectionrefs, sizeof(grant_ref_t) * sc->xbd_max_request_indirectpages); } @@ -361,7 +364,9 @@ xbd_bio_command(struct xbd_softc *sc) } cm->cm_bp = bp; - cm->cm_sector_number = (blkif_sector_t)bp->bio_pblkno; + cm->cm_sector_number = + ((blkif_sector_t)bp->bio_pblkno * sc->xbd_disk->d_sectorsize) >> + XBD_SECTOR_SHFT; switch (bp->bio_cmd) { case BIO_READ: @@ -633,7 +638,7 @@ xbd_dump(void *arg, void *virtual, off_t offset, size_t length) cm->cm_data = virtual; cm->cm_datalen = chunk; cm->cm_operation = BLKIF_OP_WRITE; - cm->cm_sector_number = offset / dp->d_sectorsize; + cm->cm_sector_number = offset >> XBD_SECTOR_SHFT; cm->cm_complete = xbd_dump_complete; xbd_enqueue_cm(cm, XBD_Q_READY); @@ -1027,7 +1032,19 @@ xbd_instance_create(struct xbd_softc *sc, blkif_sector_t sectors, sc->xbd_disk->d_stripesize = phys_sector_size; sc->xbd_disk->d_stripeoffset = 0; - sc->xbd_disk->d_mediasize = sectors * sector_size; + /* + * The 'sectors' xenbus node is always in units of 512b, regardless of + * the 'sector-size' xenbus node value. + */ + sc->xbd_disk->d_mediasize = sectors << XBD_SECTOR_SHFT; + if ((sc->xbd_disk->d_mediasize % sc->xbd_disk->d_sectorsize) != 0) { + error = EINVAL; + xenbus_dev_fatal(sc->xbd_dev, error, + "Disk size (%ju) not a multiple of sector size (%ju)", + (uintmax_t)sc->xbd_disk->d_mediasize, + (uintmax_t)sc->xbd_disk->d_sectorsize); + return (error); + } sc->xbd_disk->d_maxsize = sc->xbd_max_request_size; sc->xbd_disk->d_flags = DISKFLAG_UNMAPPED_BIO; if ((sc->xbd_flags & (XBDF_FLUSH|XBDF_BARRIER)) != 0) { @@ -1314,7 +1331,7 @@ xbd_connect(struct xbd_softc *sc) /* Allocate datastructures based on negotiated values. */ err = bus_dma_tag_create( bus_get_dma_tag(sc->xbd_dev), /* parent */ - 512, PAGE_SIZE, /* algnmnt, boundary */ + sector_size, PAGE_SIZE, /* algnmnt, boundary */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ @@ -1386,13 +1403,17 @@ xbd_connect(struct xbd_softc *sc) if (sc->xbd_disk == NULL) { device_printf(dev, "%juMB <%s> at %s", - (uintmax_t) sectors / (1048576 / sector_size), + (uintmax_t)((sectors << XBD_SECTOR_SHFT) / 1048576), device_get_desc(dev), xenbus_get_node(dev)); bus_print_child_footer(device_get_parent(dev), dev); - xbd_instance_create(sc, sectors, sc->xbd_vdevice, binfo, + err = xbd_instance_create(sc, sectors, sc->xbd_vdevice, binfo, sector_size, phys_sector_size); + if (err != 0) { + xenbus_dev_fatal(dev, err, "Unable to create instance"); + return; + } } (void)xenbus_set_state(dev, XenbusStateConnected); From nobody Tue Oct 15 13:36:07 2024 X-Original-To: dev-commits-src-branches@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 4XSZqq2M0Bz5Yxjp; Tue, 15 Oct 2024 13:36:07 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSZqq1nZzz4s1n; Tue, 15 Oct 2024 13:36:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728999367; 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=LupGm9GgiWlQL2Vs3Wiyna3GKY81SmV92EX1dJwFm+E=; b=bfLjIyIehuHSWPlRBTnfv6HF6IZBBdcrxtoe9cFutvhaohnkDPOgAgelXasavs36vJba0f kjsTF3LWzC9+uRJm0Aivs4xQbvZBSmxnVk/CclovwTVj8wHjd5buByV8uXye4WmB2OcpWO DJ0RT0SHmG8D4N5nSCGKMxjfJTvcvjV4tzCGdm67YLIzLyEx/DKxC84NH7JC/Us696C7Fp cxb92zmCrtYZedmuSAmyyDgygv5I2kY148mpE9wz2OUFVMtjxXrmkzne2DToMD/ZzEYxZQ Pyf2XbvCGTE+E5OYQxvhCYs6eibpaacNKPDIgHXQPl556f38Z+bGy+cKiJz1aQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728999367; 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=LupGm9GgiWlQL2Vs3Wiyna3GKY81SmV92EX1dJwFm+E=; b=atA8NFWSvnEDk2jh5WjWr8gs7nD0zWLCRy4t/sNsz67WKXA+5BIr/NcxjS1EWrXfw9JfIz qUIWMBEaWWn2y3NaJmoeFFxoAozh3u7+FZCtOdl3hEvq0mhA1S9kbA1BY1srKGG37kIDUv zbUkQLRmc66BpdqqtEliM5aQWN/pV+oJP45qXnCejrpMkAMKYOuHO3LQNTrwkGb9RC3Bpj FNQmtVGq0ne0X/1XWGM1HibQe0rHAwIIxHeZfRLvi8sDPL6AESWLXxGcVN1DGDbfrdX1GB WtweX5Ve6o+KPobuZIUfblUN4rGAkUG9R/O/B9Hm3EMKchDqOyZPflfLhS4HxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728999367; a=rsa-sha256; cv=none; b=KwiDoPdgsPt/HVWAJ8zdaMTcQ82fTAyWV6rve8PddJpT0aYp4brGzRpxZ3VA3JL4LdJUHb mlFFhl3Qac8gEMawEaG1gYqHawpwG6DcqsFqlQ8jn0XoK/mJ6WqmWdmliaETg+n7eTaEcP 0uhsuyvY+g++fM+AAEv1igFibQ2r8AiX/WSh/LtQGMu//FJu8R2dBMLyVK/4slInIB9UbV JhcTREm7mCkBJg3q/sKqalQbIHs7o+CMOjhhq8EQonUdirHAJX3JtsWLciU3lS/6g0sD+O z5ui49EWJtItTjeiOrPLDYMr5C8sqC3ZVk68F2U9j9N7UtqL+nIg8BYEJtEwdg== 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 4XSZqq1N5dzPRK; Tue, 15 Oct 2024 13:36:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FDa7Bw035217; Tue, 15 Oct 2024 13:36:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FDa70n035214; Tue, 15 Oct 2024 13:36:07 GMT (envelope-from git) Date: Tue, 15 Oct 2024 13:36:07 GMT Message-Id: <202410151336.49FDa70n035214@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 94e5ec7f869e - stable/14 - vm_page: Use atomic loads for cmpset loops List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 94e5ec7f869e244afa174af2f8a61e4355a2cb73 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=94e5ec7f869e244afa174af2f8a61e4355a2cb73 commit 94e5ec7f869e244afa174af2f8a61e4355a2cb73 Author: Mark Johnston AuthorDate: 2024-10-07 20:50:36 +0000 Commit: Mark Johnston CommitDate: 2024-10-15 12:39:44 +0000 vm_page: Use atomic loads for cmpset loops Make sure that the compiler loads the initial value value only once. Because atomic_fcmpset is used to load the value for subsequent iterations, this is probably not needed, but we should not rely on that. I verified that code generated for an amd64 GENERIC kernel does not change. Reviewed by: dougm, alc, kib Tested by: pho MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D46943 (cherry picked from commit d8b32da2354d2fd72ae017fd63affa3684786e1f) --- sys/vm/vm_page.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index fe104e1e87af..7c3083de42de 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -1972,7 +1972,7 @@ _vm_domain_allocate(struct vm_domain *vmd, int req_class, int npages) * Attempt to reserve the pages. Fail if we're below the limit. */ limit += npages; - old = vmd->vmd_free_count; + old = atomic_load_int(&vmd->vmd_free_count); do { if (old < limit) return (0); @@ -4054,7 +4054,7 @@ vm_page_wire_mapped(vm_page_t m) { u_int old; - old = m->ref_count; + old = atomic_load_int(&m->ref_count); do { KASSERT(old > 0, ("vm_page_wire_mapped: wiring unreferenced page %p", m)); @@ -4088,7 +4088,7 @@ vm_page_unwire_managed(vm_page_t m, uint8_t nqueue, bool noreuse) * Use a release store when updating the reference count to * synchronize with vm_page_free_prep(). */ - old = m->ref_count; + old = atomic_load_int(&m->ref_count); do { KASSERT(VPRC_WIRE_COUNT(old) > 0, ("vm_page_unwire: wire count underflow for page %p", m)); @@ -4383,7 +4383,7 @@ vm_page_try_blocked_op(vm_page_t m, void (*op)(vm_page_t)) ("vm_page_try_blocked_op: page %p is not busy", m)); VM_OBJECT_ASSERT_LOCKED(m->object); - old = m->ref_count; + old = atomic_load_int(&m->ref_count); do { KASSERT(old != 0, ("vm_page_try_blocked_op: page %p has no references", m)); From nobody Tue Oct 15 13:36:08 2024 X-Original-To: dev-commits-src-branches@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 4XSZqr3Y7gz5YxdF; Tue, 15 Oct 2024 13:36:08 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSZqr2lSvz4rqw; Tue, 15 Oct 2024 13:36:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728999368; 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=WPWqDX9JFSgyWHklxwki6UgKK41wJ4yAU2BbNXVyOY8=; b=AEDOFbyduEupHGXou1XMdCg5LN1ZopBovpf2rn2jo/TB0TxKY+OAojHDsXy76yrZEEVlJ0 gcJYTp+MVB3XQLpqWlQbjh+Ils71zwNCv+KCN2w7n3raAPmQIrdp27Afnikx+pq/lqoyJn OIrlopx8JfIgLmoimGLwndA3GQ4AhJ0mPclY4QfeNO4UycUfbqWCzKyeTr9AjKVKM9Jxj6 SKiYnm9dgsuzl9yQRolC2IwwvucstQxc23wZvyLAlLhUJcsQMbVF0u0gh281Yur7GpGQ8c zpdkXgFMAAaOWYFZBRkgJB2ttn/ByRY4z8bOJRBHLu7hs3zpHM2Y0DHwp+fx4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728999368; 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=WPWqDX9JFSgyWHklxwki6UgKK41wJ4yAU2BbNXVyOY8=; b=nzJSGsnRfQGVsQG7qsh2h+7LESWjp2fJa0XNXnesLAo3R0x2FGR/z+5TGJPqk6lArO1NTy +dxWvX0EyIlvSvlLrjZoY2aPdqfs7bfGh0onICMkjHvpDUQ5f/1H+KtyJMv0IKrn4zWciy weav8aRYqbO9BTIhbuiqk3iG/ioI+TGvnA+Rs/xAbJyfozoRgFJopd4LAlenOkfQ772LpQ 4EkYkWcCbDQj9Gw+A3Bf3ko1sKy18dYfFdDjLSLFQRwn+2cVJGUpKEpKZhhAvPEF6GzgSk 3LbekpnQuxnMVZ+3iChr6l7Ht8/lpYzpQVl59NH2KuY6Sv6lxGAPEt///hr8SA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728999368; a=rsa-sha256; cv=none; b=ogmQ2pTT1+tyTaEEps8IHt18/tpAk9vVIlSX4IiJ6ZKUxDBY5qXSRJfVHGWGvmZFqPltxl jMgBn4FCBIwEH1q53Luj6g2T1g9H2HzQdnUsaUi8lL7FHrNY4YkOacDzq2iY848dKv3GeO D0UAKPnLNrg8CGei790idrVGP+ePvi+XxtrANa5eWZvzAs3VO6gJ3gcjrKQQopSAl8enHZ 411RrLaR9MT4pz51n19lO6a46AC7qmcFisGF1ca46BFvISoU7xgXL/3NljbT96pIQU7C3u ZLZqTVHYPXJ7Aj5NKixJCBcIxy7ngafASSfQ63Lo3tmpwfMkXh1pm1P2LaP+Xw== 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 4XSZqr2N9ZzPC1; Tue, 15 Oct 2024 13:36:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FDa8IJ035265; Tue, 15 Oct 2024 13:36:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FDa8ZI035262; Tue, 15 Oct 2024 13:36:08 GMT (envelope-from git) Date: Tue, 15 Oct 2024 13:36:08 GMT Message-Id: <202410151336.49FDa8ZI035262@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 81da8e39f789 - stable/14 - geli tests: Work around a missing MFC List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 81da8e39f78956441a27eb6bb55ac16170a21a14 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=81da8e39f78956441a27eb6bb55ac16170a21a14 commit 81da8e39f78956441a27eb6bb55ac16170a21a14 Author: Mark Johnston AuthorDate: 2024-10-15 13:35:03 +0000 Commit: Mark Johnston CommitDate: 2024-10-15 13:35:59 +0000 geli tests: Work around a missing MFC The test assumes commit 96950419f15510287080c557174e0d8409f06956, but that was never MFCed to stable branches, resulting in a broken test. This is a direct commit to stable/14. --- tests/sys/geom/class/eli/attach_test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sys/geom/class/eli/attach_test.sh b/tests/sys/geom/class/eli/attach_test.sh index 8803fa9f1a40..e4aa3a6cd618 100644 --- a/tests/sys/geom/class/eli/attach_test.sh +++ b/tests/sys/geom/class/eli/attach_test.sh @@ -50,7 +50,7 @@ attach_multiple_fails_body() geli_test_setup sectors=1000 - attach_md md -t malloc -s `expr $sectors + 1` + md=$(attach_md -t malloc -s `expr $sectors + 1`) atf_check dd if=/dev/random of=keyfile bs=512 count=16 status=none atf_check geli init -B none -P -K keyfile ${md} From nobody Tue Oct 15 13:51:18 2024 X-Original-To: dev-commits-src-branches@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 4XSb9L69xpz5YyNr; Tue, 15 Oct 2024 13:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSb9L5kv9z4vp4; Tue, 15 Oct 2024 13:51:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729000278; 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=QYvKP84u15ClRfG0dwRERkoX9eQ3szLu+TT2g0j86zA=; b=ZKr7I/hR/3JjtWdVEuslsuntCWd1F2KAwvFi+QZMupTcrHqzNSd60EdHF5305E2LVZiERS tn2IIMxOc3ulqnGbjXJd3xZao0KtJKLyOvHcd9ucOjHiALipCRomQ6mYD74/ttHUcURVVD Y30Bn8HqixskWb2bMHFo2XRm52KjOD5vHM5TQOSNFNSWv+R1yipKHtjficpH5kCseDAAih X7sOSjsmIHcXlo6+zHAtiBstsrizd7uHs9W4C069sx4sI8k9udqp3JkYUxPoY/lk670igB cbuOXznWA2Xb7iO1PIih4lkSmZt7OKv8Zkp/a1QgotltYiHV8pj9jLFiJiettw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729000278; 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=QYvKP84u15ClRfG0dwRERkoX9eQ3szLu+TT2g0j86zA=; b=RVWAs4l3KmUcuWqFgn1vCTeXOU4YshN9YuHM7gxmOgRCAwrG7C9vF4SYd9kocOR3+M+fb4 G3a9HlvIT4V7Vf+kI8FrpdS2IGZqCutdO6EpfepUZHFpMjH6X7dvytJLvgUjjnwtKJvaEB /vQFzKRhKVqUrF6+NDlgEgAlQYxDLvFozgBl+KjaWfMpCkc2bMT4yDJDcFUGQXASH+wMrq SKwlCFEbk16tcm80Q2V6/KsmJUEnfNL8zFQNePtey6P17Jgd8zqBwD6i73UM8lyyPx3L3H 9IQSEA2b4/jZkA74rFGIRkDK8JCLYbL2dAR9aCyb2npM+GbPZJoa45WTbDRxNQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729000278; a=rsa-sha256; cv=none; b=rIDZjoHgNcWRZU+IuhFRezGT6acL+xO7wGkNd/2PK8OmYhUdtrcZiA2fYWQmOaAvUIlmc+ nEb8ChBCIKGNl47cx584A2uzsmRAGld/3PloAygwo1U9acNfI7hnwgCGrXS860IO3jy2Je CuA21RywxhfqSlCbIgqsdOO7KP7EcU8zCOlrJcMlXv+qCqeEERvPu4YiQAbDwmKbjBmtB4 pa8MX8oHwbrFd74rck+rfn7bfkY1PE4LZYr3DPFiKDolfav4CoVcV0JHHcbHJ7W5jgvHI3 jdFVSPoRDHFJLIl8iJIMCRRXGABhwIKbp2azlv0ZM1BgBi24J/8Hs+qlBzizjg== 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 4XSb9L5L07zPVr; Tue, 15 Oct 2024 13:51:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FDpI3e060860; Tue, 15 Oct 2024 13:51:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FDpIj1060857; Tue, 15 Oct 2024 13:51:18 GMT (envelope-from git) Date: Tue, 15 Oct 2024 13:51:18 GMT Message-Id: <202410151351.49FDpIj1060857@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 8a5a9dbf389e - stable/14 - vm_object: Widen the flags field List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8a5a9dbf389e86d278764ababf2f1eb8ee276680 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8a5a9dbf389e86d278764ababf2f1eb8ee276680 commit 8a5a9dbf389e86d278764ababf2f1eb8ee276680 Author: Mark Johnston AuthorDate: 2024-10-06 13:07:31 +0000 Commit: Mark Johnston CommitDate: 2024-10-15 13:45:28 +0000 vm_object: Widen the flags field Take advantage of a nearby 2-byte hole to avoid growing the struct. This way, only the offsets of "flags" and "pg_color" change. Bump __FreeBSD_version since some out-of-tree kernel modules may access these fields, though I haven't found any examples so far. Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D35905 (cherry picked from commit 9d52823bf1dfac237e58b5208299aaa5e2df42e9) --- sys/sys/param.h | 2 +- sys/vm/vm_object.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/sys/param.h b/sys/sys/param.h index 697a96cca916..a900131fe8ec 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -75,7 +75,7 @@ * cannot include sys/param.h and should only be updated here. */ #undef __FreeBSD_version -#define __FreeBSD_version 1401502 +#define __FreeBSD_version 1401503 /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index 3e82a5dc7430..1d00bee603f6 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -110,8 +110,8 @@ struct vm_object { int shadow_count; /* how many objects that this is a shadow for */ vm_memattr_t memattr; /* default memory attribute for pages */ objtype_t type; /* type of pager */ - u_short flags; /* see below */ u_short pg_color; /* (c) color of first page in obj */ + u_int flags; /* see below */ blockcount_t paging_in_progress; /* (a) Paging (in or out) so don't collapse or destroy */ blockcount_t busy; /* (a) object is busy, disallow page busy. */ int resident_page_count; /* number of resident pages */ From nobody Tue Oct 15 13:51:19 2024 X-Original-To: dev-commits-src-branches@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 4XSb9N09SRz5YyDL; Tue, 15 Oct 2024 13:51:20 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSb9M6k24z4vjC; Tue, 15 Oct 2024 13:51:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729000279; 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=6EEC9TezWZCdq12BBX+1TvY/YNiczI2ZS2DqzusHQIE=; b=JaTpv7dkh7Q7vGDvCitK41xMpXkxlypVlDsTmcGdNoCsA1OkTDxWuuylY5IfT0ttPBpUoo zv0CSvLATOx/zd2gN9vOtii7LhuJ5FZFKVPX5K4bxFpDGdEp+XBpb7FYK54GtwZhepi/i5 uk3VUltSGt9DRKfcXzAcqVSKFOJr/CUBT7fSedoawhe57yaruq7azM4HBhvZo3DnWALih5 K1rQrFn1ehog8cGjmSx2e179Cg5To+kPUcXwFTtSOBtprm4sOQp4MtDe1VKB4pTFqLksB3 3S5j2wO97uPCb3QlHMg+Rgfv4s1AH00r8JeKBbm9TRWQtg6Hm66nUBY4slnInQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729000279; 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=6EEC9TezWZCdq12BBX+1TvY/YNiczI2ZS2DqzusHQIE=; b=kLDmg2qse/egpEbGOc+eEQfpTOXTpW8Fhb8bBOtr6x21j7/thd8GbVfUMgIbueEkX8m1cJ oMrrdOTZnspky/HnyFvg4xiaEGHU/uFUsh3MylG3QcnBSzjOftqoDttN4NzimYPPJi7J5j 96zTMe4lR5jfR1pyslLSuoymOBoPqWpgi7OGgoX0ln52OUPWEWvZesMdmmV0jEHcgzxRvt vH760szcgqYIejnAlZpYjRFvfOdP4HOXxFC+9XJZo5q2FuYo1B1BD8E7+uLfYZpBg8jDKo xKQc671KUSuKy8iSjSgGAese6MVamyHRK0N5BC5RvRn8/jPb+iILTNhClMhviA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729000279; a=rsa-sha256; cv=none; b=iWe2xr7l/akUkzdaxl1ImDwWdUodRQc1BhOjFmem3hOh/BblptrmkbwRVOPBiLCIMYVhAN y4xNevaI2YPh3YhE1sTXaq+x0s/+zp+K7CpNrwve41fhSLOcNGuddgVuQezdS2tvOiauMO tyi7giubMiwba1HK4Q4qYI3slF77WodOTA/HSGRhssLbIpK/gwu0MGfVyLgMUTTNShZwjC +mdYmasBm8lWDwmTqb3WzmeuOw3LQOe4TzGESznY/KN4UjvtdGV8WqTIjIsM7kByXi7xyE bYxqF2E7YMR2E4OcRrRuaSh1NU3bOQS58PR8mKh+sjNn6ZSDWv31BUxJ2jvh8A== 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 4XSb9M6JWrzPB5; Tue, 15 Oct 2024 13:51:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FDpJ99060908; Tue, 15 Oct 2024 13:51:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FDpJgC060905; Tue, 15 Oct 2024 13:51:19 GMT (envelope-from git) Date: Tue, 15 Oct 2024 13:51:19 GMT Message-Id: <202410151351.49FDpJgC060905@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 3464b209d61c - stable/14 - vm_object: Fix the argument type to vm_object_set_flag() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3464b209d61ca1512f01bee36008fd5a331de791 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3464b209d61ca1512f01bee36008fd5a331de791 commit 3464b209d61ca1512f01bee36008fd5a331de791 Author: Mark Johnston AuthorDate: 2024-10-06 22:54:13 +0000 Commit: Mark Johnston CommitDate: 2024-10-15 13:45:42 +0000 vm_object: Fix the argument type to vm_object_set_flag() Reported by: kib Fixes: 9d52823bf1df ("vm_object: Widen the flags field") (cherry picked from commit 7f1dfd6c33dbbb6c1136e987de554c5c5a7d014d) --- sys/vm/vm_object.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index 1d00bee603f6..a532d07f6674 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -285,7 +285,7 @@ struct vnode; * The object must be locked or thread private. */ static __inline void -vm_object_set_flag(vm_object_t object, u_short bits) +vm_object_set_flag(vm_object_t object, u_int bits) { object->flags |= bits; From nobody Tue Oct 15 15:05:20 2024 X-Original-To: dev-commits-src-branches@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 4XScpm60G8z5YYbL; Tue, 15 Oct 2024 15:05:20 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScpm5TnNz462J; Tue, 15 Oct 2024 15:05:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004720; 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=mDiObVG0c58UEQhXZ5J93K9wTuw4SrqrXdQDNj9mfcA=; b=YQlmhvBOdfQr4IJpvDw2Xbl/hi3orxP9/6bXZeO1R7JDN3ZeHE+aCiP2SdmYLgJLV53cVT INE8gSoUY2O6HAhhPCgFs9Gmd6xngzlEwNcokMljlGgvI8SxdlpTG9oN1NZ5d5SrXtODu5 ZfxRt2FpW0AUqTWWF0eBsSxRvOh6lNBDGnqkcPghdonds04Lui4J1s5I3Y7nBwz12dAS9X FpfId7I/luQFG9cIXFZ5x2juJuixTz0MWr0xlx3skNQ89sncRjvndv8xC8qPSKTF98b58F 0ikI+fbgREKrCPrAN7xAYJhb0AwS738SKvuEhzWWzGrWemdlSYIJSU/kZRFkRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004720; 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=mDiObVG0c58UEQhXZ5J93K9wTuw4SrqrXdQDNj9mfcA=; b=W0hQ8q6VXxZYyBjtJv1vJxYSg4dA+JPvEVIa38jUdByekEI1mqReIAep7521KLKj9q5JWm x4s9HhbeUrOJIFC/VrGX92xzZokKxaKzEzrFsYaKIYWzZGgtC8LmSfaS1cNUphh+6MKmYu tAeITxxoW7p0nkrSjqTkuQ60wqAEu2EgZUat+5ZQ+ZWZwnBhQQjvqFQTunnGb3FE2EBAzO IsJxkkvaPzYC2wfc2p6dhRMsaZFQgU+Jbq7CrvDVCHVPRZIUJxxeaIAkW2BRQOvxwjdDJW w417QCNp7X/2TqVjHt4CreQkyBAJKDrxRb6dnYmKnvJmthsf1p/nA63c0JNG7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004720; a=rsa-sha256; cv=none; b=OGHvJ2A4s/DWtzWBTt5Rt/8U7v3XSXuPKqMPIL1x9ZqmM9PayAwzSQImX0iRsYZ+KoeTTQ 1Le9VgZhBbwJpWdGT/70RKgBYmYWN0HAReLzgR8YFykylOR9HuXKthyzbWg9SAcVz1XLrl LPLZgmHDY5//X9CvjQtB1NoNNYDLc5/C6nWGoMdGySaxCJVW9OCIZKDKk+sCpf3h0i7A5O +1T36SH3UKqnB7J+2ItAXVv2fOEO4q/mVGvk1GP4LwUBNl3tbuohsJd/pr4XL4tcGhp0mK ycEHHIttwrlw5sUybo2D24brBSBrHsLPV1SV9J6vj59IGPQYJcly4y0SmvaySw== 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 4XScpm55BGzRXM; Tue, 15 Oct 2024 15:05:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5KrG089003; Tue, 15 Oct 2024 15:05:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5K5W089000; Tue, 15 Oct 2024 15:05:20 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:20 GMT Message-Id: <202410151505.49FF5K5W089000@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 2bb9d4f758ec - stable/14 - sysv_ipc: remove sys/cdefs.h include List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2bb9d4f758ec05324825d106fce248e17c776fda Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2bb9d4f758ec05324825d106fce248e17c776fda commit 2bb9d4f758ec05324825d106fce248e17c776fda Author: Konstantin Belousov AuthorDate: 2024-10-05 09:08:03 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:15 +0000 sysv_ipc: remove sys/cdefs.h include (cherry picked from commit 8771dc950a463b35d5cdafd71c86dd5a2dbb9096) --- sys/kern/sysv_ipc.c | 1 - sys/kern/sysv_msg.c | 1 - sys/kern/sysv_sem.c | 1 - sys/kern/sysv_shm.c | 1 - 4 files changed, 4 deletions(-) diff --git a/sys/kern/sysv_ipc.c b/sys/kern/sysv_ipc.c index b812739958df..dc7cac13fdd8 100644 --- a/sys/kern/sysv_ipc.c +++ b/sys/kern/sysv_ipc.c @@ -36,7 +36,6 @@ * $NetBSD: sysv_ipc.c,v 1.9 1995/06/02 19:04:22 mycroft Exp $ */ -#include #include "opt_sysvipc.h" #include diff --git a/sys/kern/sysv_msg.c b/sys/kern/sysv_msg.c index 0620fbd175af..1e84d151b4af 100644 --- a/sys/kern/sysv_msg.c +++ b/sys/kern/sysv_msg.c @@ -55,7 +55,6 @@ * SUCH DAMAGE. */ -#include #include "opt_sysvipc.h" #include diff --git a/sys/kern/sysv_sem.c b/sys/kern/sysv_sem.c index d8c10f837105..ad4243464a96 100644 --- a/sys/kern/sysv_sem.c +++ b/sys/kern/sysv_sem.c @@ -44,7 +44,6 @@ * SUCH DAMAGE. */ -#include #include "opt_sysvipc.h" #include diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c index 835b44ab332a..90b95c7db8e7 100644 --- a/sys/kern/sysv_shm.c +++ b/sys/kern/sysv_shm.c @@ -68,7 +68,6 @@ * SUCH DAMAGE. */ -#include #include "opt_sysvipc.h" #include From nobody Tue Oct 15 15:05:21 2024 X-Original-To: dev-commits-src-branches@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 4XScpp0Bjqz5YYW3; Tue, 15 Oct 2024 15:05:22 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScpn6pjSz45tT; Tue, 15 Oct 2024 15:05:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004722; 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=Hzc9+z9lzhIejvz9BOWb/R137rjRZAjBDg/ioOQd67E=; b=fFv9ArbykbdOUbhaY3LsYnPlkyAW2SjkswJJgV71J+pvhwIVrCqtaB80FWI2Al2DTvAcf8 fqeu1IUdlfEOy2Km0iVLJHkJeshsrO6E7184QM0S6jggStp7FLp4kYeoyiq547HWQweIzF HKb6edgVDSzl5wO7juM4kGgmfrv4TBKPZl4SpxRWYLzPkrG6hDpeu+ffMW95uXj+1VFfJ8 oqU/BeYO/FgMgWe02bJU3T1OQUXdWMOriAk7hsT/SBsnG2cfA7K1sen8F/mrAFUK8EXggM CczDkxwsi/12xsTtER0/N5HmzRA02poFSgtuuv4jfjGEUhPjgcEuCXkn6dQj+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004722; 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=Hzc9+z9lzhIejvz9BOWb/R137rjRZAjBDg/ioOQd67E=; b=HalbwfWPCZd2k0HIdMuDVPUCEFpWrbAiEkNUYpZnJaNFzE3T3d8d7pVE2tdj4oWovrOdIV ZONaPLlA50NJbIIrnye7HHvMn7Xxmlx+kOZPoKY6RaSpIFkhwpWMsC5ndtYGWL6CsXRylK 7nF00wiw9PqnQrSMH2MgirC3JOz9jT60bcws+ox+wViA3DX0xH1vvrOxWTvlNDDjJJHh0Q kU1trZtcfAZYdw+/6nt8wqsTMHGu4QXwxXe0YXPQswRyu2KEp9UGm3sHqNKbFgVZRCBaib wSEAPEorEBemnS983xP5mkkzZCJd+osQcr7TCBmYoIVjd5FnU9whKi65TzQj0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004722; a=rsa-sha256; cv=none; b=s9lupNJDaUR9osS6GJ0uQC3rBOrRAHu3W6InZK7U5J+IM9eJO0tnqL3axdiKQGQpTuBLW3 RCG3nRMg3DnXrnRuz8XO1s6suC0i1PblyGJpKaVYA7fvSXl3VgeiC67wTIpR85eQfLXByW 3P7L1G4xVFtc8P7tGlRyNGR5GihqUzeQ0ZPGfg9iX4VQGuv1pEuLc1Ef+RUHS4rcfYIgCj k+Tcv0ZQgz37lu6OOyxbeFHpfy38w3/WoCgDKMfpNvETq4eApGHtq2X2TpSkBbFrmG3TJt pYkut+mTpe7mrP5YGL/K0GKqwImfpB2i0o/hMGvMRegvHFzFzXCnZCOfnyE10w== 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 4XScpn66fpzRRM; Tue, 15 Oct 2024 15:05:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5LZe089042; Tue, 15 Oct 2024 15:05:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5Lit089039; Tue, 15 Oct 2024 15:05:21 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:21 GMT Message-Id: <202410151505.49FF5Lit089039@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 891664589bd1 - stable/14 - vm_object: reformat flags definitions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 891664589bd1bbfd9eb0f6a0218208995678961c Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=891664589bd1bbfd9eb0f6a0218208995678961c commit 891664589bd1bbfd9eb0f6a0218208995678961c Author: Konstantin Belousov AuthorDate: 2024-10-06 20:54:30 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:15 +0000 vm_object: reformat flags definitions (cherry picked from commit 34935a6b3723422ef27ce4eb80fbe52c3dab12fc) --- sys/vm/vm_object.h | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index a532d07f6674..0a6b8de6574c 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -184,23 +184,25 @@ struct vm_object { /* * Flags */ -#define OBJ_FICTITIOUS 0x0001 /* (c) contains fictitious pages */ -#define OBJ_UNMANAGED 0x0002 /* (c) contains unmanaged pages */ -#define OBJ_POPULATE 0x0004 /* pager implements populate() */ -#define OBJ_DEAD 0x0008 /* dead objects (during rundown) */ -#define OBJ_ANON 0x0010 /* (c) contains anonymous memory */ -#define OBJ_UMTXDEAD 0x0020 /* umtx pshared was terminated */ -#define OBJ_SIZEVNLOCK 0x0040 /* lock vnode to check obj size */ -#define OBJ_PG_DTOR 0x0080 /* dont reset object, leave that for dtor */ -#define OBJ_SHADOWLIST 0x0100 /* Object is on the shadow list. */ -#define OBJ_SWAP 0x0200 /* object swaps, type will be OBJT_SWAP +#define OBJ_FICTITIOUS 0x00000001 /* (c) contains fictitious pages */ +#define OBJ_UNMANAGED 0x00000002 /* (c) contains unmanaged pages */ +#define OBJ_POPULATE 0x00000004 /* pager implements populate() */ +#define OBJ_DEAD 0x00000008 /* dead objects (during rundown) */ +#define OBJ_ANON 0x00000010 /* (c) contains anonymous memory */ +#define OBJ_UMTXDEAD 0x00000020 /* umtx pshared was terminated */ +#define OBJ_SIZEVNLOCK 0x00000040 /* lock vnode to check obj size */ +#define OBJ_PG_DTOR 0x00000080 /* do not reset object, leave that + for dtor */ +#define OBJ_SHADOWLIST 0x00000100 /* Object is on the shadow list. */ +#define OBJ_SWAP 0x00000200 /* object swaps, type will be OBJT_SWAP or dynamically registered */ -#define OBJ_SPLIT 0x0400 /* object is being split */ -#define OBJ_COLLAPSING 0x0800 /* Parent of collapse. */ -#define OBJ_COLORED 0x1000 /* pg_color is defined */ -#define OBJ_ONEMAPPING 0x2000 /* One USE (a single, non-forked) mapping flag */ -#define OBJ_PAGERPRIV1 0x4000 /* Pager private */ -#define OBJ_PAGERPRIV2 0x8000 /* Pager private */ +#define OBJ_SPLIT 0x00000400 /* object is being split */ +#define OBJ_COLLAPSING 0x00000800 /* Parent of collapse. */ +#define OBJ_COLORED 0x00001000 /* pg_color is defined */ +#define OBJ_ONEMAPPING 0x00002000 /* One USE (a single, non-forked) + mapping flag */ +#define OBJ_PAGERPRIV1 0x00004000 /* Pager private */ +#define OBJ_PAGERPRIV2 0x00008000 /* Pager private */ /* * Helpers to perform conversion between vm_object page indexes and offsets. From nobody Tue Oct 15 15:05:22 2024 X-Original-To: dev-commits-src-branches@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 4XScpq11b5z5YYbM; Tue, 15 Oct 2024 15:05:23 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScpq0DYFz45x8; Tue, 15 Oct 2024 15:05:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004723; 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=S8DWzIZ0NEcZiXvIiYbE3ySqQCq0wKQ03zRNZ6HpdbI=; b=iAOwjXwXCmXqSDxHzXLUVWLOI4H1TgjhczO7dLO0L0STB6YDfzIIzuBZmiRNLnod/WAqSV nrIuCXX7MhHDEVbXSJqsisd/2xHlploAdcRxs/B6TdP1yl5Mj9Bvq4SHfkycUm79nl+JQl EDAFKm4AY4QjtyJqV/yVhdvPo7tjlSoluxJAEQVtSO/6YTocXMY4BTYNxdigm8Lybpnx2d SPCHTYWZMqQWQD6CM5LSAr+v9voV/iKq/XKPoVvM7ICD35o/QonOl9W+zkOT/8djvkj7zt zESfIJSQymS8zNWvsz4VGDddKYIfc1/744OtTDa4mvfPC6zvg1XL3jDR60CRIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004723; 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=S8DWzIZ0NEcZiXvIiYbE3ySqQCq0wKQ03zRNZ6HpdbI=; b=qbtHK0tjSRUL6eLjZqIcHlQ8aZYs2Izu2b2dCViWLTC50Oi6kcukprCEDdMiZsUxIQEFc0 pNDr2xUqx5Hop9djs/0nsm57H+D2MhtcqNFaVdr9jDrhUtzd0eKPZ1EBw2dLPfC7Y6J8Y8 IYzqrGxPRkDGMC5Cuyg80WfUV2C5/8262wYBq0XTQDVrPDZsvJdOcTGKjcUUBfr2l3ZCdR 7VOmUS6YTZdd5amQfbMGJKEj7ws02SnyktWwWs1VfVZjGevb6A0/mcbCQ/Wuy4yqtln6hM EWYy4RCOXybsdiniJxBTkgCOMrA3n6MZYZuupTsRVqISWJ7UbOLjlFgz9/8A1w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004723; a=rsa-sha256; cv=none; b=xOzfnPM9B3e0Uxkkcxt4ksO/UvF+CuFGQAoe5kYOjsPMH7Rq7ZzKACUm+tRpKoQAy87HN1 a+Uf7spn5oBuZ+jsJKpmW5tpG5ByPLuWMCyETfsLmgcmAIUmAj+f8gZbPxIjKaAFZIJ7IW Gpf2rjMr6ccqwqD43q/oUwHYhWjWybzhvUW7XZXLBJe1Wlzi//h95V2xo/+jAdROr3pE9R 9sHUQzY7DqfqLDnoVurvDAx+VXGLtMHlh1Vk53KPzg5cNTg5NJj48R4hXk/pcSO5wWnGss vsU5balZUoCeuu7P4+OvMyTrbELFar8SqNTFvhrsbYplJYrFVn/XbiosxtQxvQ== 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 4XScpp6rSbzRbP; Tue, 15 Oct 2024 15:05:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5M2W089099; Tue, 15 Oct 2024 15:05:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5Mo5089096; Tue, 15 Oct 2024 15:05:22 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:22 GMT Message-Id: <202410151505.49FF5Mo5089096@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 1ef669ae413e - stable/14 - vm_object: add OBJ_SYSVSHM flag to indicate SysV shm backing object List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1ef669ae413eaf5517e9cbdd53ff2fe20bb3044c Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=1ef669ae413eaf5517e9cbdd53ff2fe20bb3044c commit 1ef669ae413eaf5517e9cbdd53ff2fe20bb3044c Author: Konstantin Belousov AuthorDate: 2024-10-05 09:08:51 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:16 +0000 vm_object: add OBJ_SYSVSHM flag to indicate SysV shm backing object (cherry picked from commit f186252e0d6ef970a23c6af12ec34003df56055d) --- sys/kern/sysv_shm.c | 4 ++++ sys/vm/vm_object.h | 1 + 2 files changed, 5 insertions(+) diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c index 90b95c7db8e7..4dbe77f19b07 100644 --- a/sys/kern/sysv_shm.c +++ b/sys/kern/sysv_shm.c @@ -742,6 +742,10 @@ shmget_allocate_segment(struct thread *td, key_t key, size_t size, int mode) return (ENOMEM); } + VM_OBJECT_WLOCK(shm_object); + vm_object_set_flag(shm_object, OBJ_SYSVSHM); + VM_OBJECT_WUNLOCK(shm_object); + shmseg->object = shm_object; shmseg->u.shm_perm.cuid = shmseg->u.shm_perm.uid = cred->cr_uid; shmseg->u.shm_perm.cgid = shmseg->u.shm_perm.gid = cred->cr_gid; diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index 0a6b8de6574c..c63a52260baf 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -203,6 +203,7 @@ struct vm_object { mapping flag */ #define OBJ_PAGERPRIV1 0x00004000 /* Pager private */ #define OBJ_PAGERPRIV2 0x00008000 /* Pager private */ +#define OBJ_SYSVSHM 0x00010000 /* SysV SHM */ /* * Helpers to perform conversion between vm_object page indexes and offsets. From nobody Tue Oct 15 15:05:24 2024 X-Original-To: dev-commits-src-branches@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 4XScpr3W1bz5YYbR; Tue, 15 Oct 2024 15:05:24 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScpr1B0wz45xW; Tue, 15 Oct 2024 15:05:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004724; 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=W+tbEINcGT5kjupsqHFRqB1l0DQK6Z4ovxop8srTYks=; b=vPYi0ZN4Z3v+UomkroRLnBZNhDcOGrMSi259Xrmov1ip+JOIIEjvMlbSqPEmlqNcmXCjoq KRKNMvctGUdO2NGZ97ZcfnFvgjXTFLByPHD8AHHs7My3wpNyAGLXww0MvxZ5uG4iYSTn16 ixRRqGJXV/ojpQV85zulZ06FmQ4EKwZGC1gAC40+jFWMRa60CQ5dKO272WYHkUT55vDDWA yWKnhrH2rLk6Q8Hk+eKq0ANBns7UDttQ/dGMIo6x1xJVvGN6Jn11/qknyC5VS2bytgak56 WkFoOJp1wjUfO/vNEclLc2c78ZSb4BccPzcYIGY/Qv5nCs1KZ030namxEG4kHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004724; 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=W+tbEINcGT5kjupsqHFRqB1l0DQK6Z4ovxop8srTYks=; b=ypc6W2ageynoUc6QZdkXEZjwJk8SCqbwQPgxDnEZJHPGMtYzdeiPg07vERgdcZgCLuiOCr icyZMQ+KPMdxuapkU9xLBaCr/C5AY2drZTRdCUbIpq3Dpi/DRQI7Y1BlCjp+rB8yGaincF Rkvaw+QIaBIn+4M8GMSztkq/PdlMl8bYQjRtAEJXuj+TX8YZG4C6mY9Dp0CTrzo9+AMytJ 33KsBL0fkhiHecTUpMq9LyAIEIoCFtnkj3pk6OtWm3WOHZY3Kelm1y4U0ABRJkbwgf7Ha6 1psL6pG++IhZknFmmJNT3VM92LgKQFCdFvlO5wxoYksca6Caz79AgWreZ3td4g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004724; a=rsa-sha256; cv=none; b=d+8/CqjC/3KZJpuhkPFIyQO/izscLzYOkkM7N/uYXjMQWT63C7mpxcvXH/epeihm/e16RW c1D2H30xQ3+GO/yF0XGD1jKaD0sj3DTS+PWX2VwR9iApds5gzdk/hwsIiZi4ISnaH36GaC vko/poLsixVmOb+DQ3D8Y6iLSGHPCYEQOHjyklHvrz9OVXPPHVLBanufawDz6F+/MqXBbQ 8jPAlEZEf3r4HkMglcnHblvN8nQ0QjQIoKDVVSO7k1YSChxSxhC0c0Izz0GBGrguulrnCZ 3gsMJsDfIkmPUcv5iOE7A6W3G+2szwUypnlh1dgBknk3+nHlGDCauL7iPXUj2g== 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 4XScpr0nSXzRT4; Tue, 15 Oct 2024 15:05:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5OZe089172; Tue, 15 Oct 2024 15:05:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5ODQ089169; Tue, 15 Oct 2024 15:05:24 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:24 GMT Message-Id: <202410151505.49FF5ODQ089169@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 30a5ba9ded03 - stable/14 - sysvshm: add shmobjinfo() function to find key/seq of the segment backed by obj List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 30a5ba9ded0321410345cb52cfe8ad0301f7a199 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=30a5ba9ded0321410345cb52cfe8ad0301f7a199 commit 30a5ba9ded0321410345cb52cfe8ad0301f7a199 Author: Konstantin Belousov AuthorDate: 2024-10-05 09:14:15 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:16 +0000 sysvshm: add shmobjinfo() function to find key/seq of the segment backed by obj (cherry picked from commit b72029589e64e04b8f9714ad8535b723276e2e02) --- sys/kern/sysv_ipc.c | 11 +++++++++++ sys/kern/sysv_shm.c | 27 +++++++++++++++++++++++++++ sys/sys/ipc.h | 3 +++ sys/sys/shm.h | 2 ++ 4 files changed, 43 insertions(+) diff --git a/sys/kern/sysv_ipc.c b/sys/kern/sysv_ipc.c index dc7cac13fdd8..7240d7cd7150 100644 --- a/sys/kern/sysv_ipc.c +++ b/sys/kern/sysv_ipc.c @@ -50,6 +50,8 @@ #ifndef SYSVSHM void (*shmfork_hook)(struct proc *, struct proc *) = NULL; void (*shmexit_hook)(struct vmspace *) = NULL; +void (*shmobjinfo_hook)(struct vm_object *, key_t *key, + unsigned short *seq) = NULL; /* called from kern_fork.c */ void @@ -66,6 +68,15 @@ shmexit(struct vmspace *vm) if (shmexit_hook != NULL) shmexit_hook(vm); } + +void +shmobjinfo(struct vm_object *obj, key_t *key, unsigned short *seq) +{ + *key = 0; /* For non-present sysvshm.ko */ + *seq = 0; + if (shmobjinfo_hook != NULL) + shmobjinfo_hook(obj, key, seq); +} #endif /* diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c index 4dbe77f19b07..60e3fe92a4b7 100644 --- a/sys/kern/sysv_shm.c +++ b/sys/kern/sysv_shm.c @@ -133,6 +133,8 @@ static int shmunload(void); #ifndef SYSVSHM static void shmexit_myhook(struct vmspace *vm); static void shmfork_myhook(struct proc *p1, struct proc *p2); +static void shmobjinfo_myhook(vm_object_t obj, key_t *key, + unsigned short *seq); #endif static int sysctl_shmsegs(SYSCTL_HANDLER_ARGS); static void shm_remove(struct shmid_kernel *, int); @@ -856,6 +858,29 @@ shmexit_myhook(struct vmspace *vm) } } +#ifdef SYSVSHM +void +shmobjinfo(vm_object_t obj, key_t *key, unsigned short *seq) +#else +static void +shmobjinfo_myhook(vm_object_t obj, key_t *key, unsigned short *seq) +#endif +{ + int i; + + *key = 0; /* For statically compiled-in sysv_shm.c */ + *seq = 0; + SYSVSHM_LOCK(); + for (i = 0; i < shmalloced; i++) { + if (shmsegs[i].object == obj) { + *key = shmsegs[i].u.shm_perm.key; + *seq = shmsegs[i].u.shm_perm.seq; + break; + } + } + SYSVSHM_UNLOCK(); +} + static void shmrealloc(void) { @@ -962,6 +987,7 @@ shminit(void) #ifndef SYSVSHM shmexit_hook = &shmexit_myhook; shmfork_hook = &shmfork_myhook; + shmobjinfo_hook = &shmobjinfo_myhook; #endif /* Set current prisons according to their allow.sysvipc. */ @@ -1029,6 +1055,7 @@ shmunload(void) #ifndef SYSVSHM shmexit_hook = NULL; shmfork_hook = NULL; + shmobjinfo_hook = NULL; #endif sx_destroy(&sysvshmsx); return (0); diff --git a/sys/sys/ipc.h b/sys/sys/ipc.h index 95a01be20eec..ce0f550900fb 100644 --- a/sys/sys/ipc.h +++ b/sys/sys/ipc.h @@ -129,6 +129,7 @@ struct ipc_perm { struct thread; struct proc; struct vmspace; +struct vm_object; #if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) @@ -139,6 +140,8 @@ void ipcperm_new2old(struct ipc_perm *, struct ipc_perm_old *); int ipcperm(struct thread *, struct ipc_perm *, int); extern void (*shmfork_hook)(struct proc *, struct proc *); extern void (*shmexit_hook)(struct vmspace *); +extern void (*shmobjinfo_hook)(struct vm_object *obj, key_t *key, + unsigned short *seq); #else /* ! _KERNEL */ diff --git a/sys/sys/shm.h b/sys/sys/shm.h index a1aa6ca54c60..15d08becc072 100644 --- a/sys/sys/shm.h +++ b/sys/sys/shm.h @@ -149,6 +149,7 @@ struct shm_info { #ifdef _KERNEL struct proc; struct vmspace; +struct vm_object; extern struct shminfo shminfo; @@ -158,6 +159,7 @@ extern struct shminfo shminfo; void shmexit(struct vmspace *); void shmfork(struct proc *, struct proc *); +void shmobjinfo(struct vm_object *obj, key_t *key, unsigned short *seq); int kern_get_shmsegs(struct thread *td, struct shmid_kernel **res, size_t *sz); From nobody Tue Oct 15 15:05:25 2024 X-Original-To: dev-commits-src-branches@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 4XScps4xzxz5YYW7; Tue, 15 Oct 2024 15:05:25 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScps2RzNz45vC; Tue, 15 Oct 2024 15:05:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004725; 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=EuxssdT1mhZMsRWY21G+ptHUTABELNwQNsmUWvirGiE=; b=yDjACx3FgOxQm1WG0T+it4i3oP1Axg086QE9I3MrePcGSxOKMRGEqzEiVv7KGOsAPL5r4C XiDvqw4qt0wdv8ZwO8B8c6WZIstqH+c7Pm93qwL7xsOSppApEmhrnFY4doZ81sPFRLYhaz 2FDDIKGCB9Eww/YHfYQo87Zx9xgpRKKJ62tMpDNIfzodMrkuPRJOu5kJt4VcHFz9DJhDjC Bi5Xej0s2atXPbkxXO/SPgB4tx0nZXMl6kMuUh9fl85V5rVFqvy5Es41UFrAHGRM/Ktv2C ZFIhphP0wX7NVwKfbqvEyaXY4HgfGxW0YF5QoLhwNicAQGDEjX0HSXHqTEjubw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004725; 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=EuxssdT1mhZMsRWY21G+ptHUTABELNwQNsmUWvirGiE=; b=NBPOT+1xYExjowjugZGERlNSKEGbC/24V4o2Ekj+nW+nYFEqHjNz3zeiuKf65Y87nExJvw tOFcL7yJoEfXOA0YnWtmDKVMfXn2waaX0x/+AhhkWvNtzR3dR9FGcsr0IWhIKoNJ7MzCZF kw26FTgGvj26gxW6HaZzhkO/+3OySGQjD2hYYpaR4kh2lOcfdCL+R3JZAiAfupokhkYO4V 2tRG3FcoAjl+FnJjbH+atOS3d0wTzmBRD+4z/26fzDfcEKOvG1CE1nFatFLjW7zUpAh/VV B37fp2GXjFRw3NbKrmJe2UMoLfhf6UbJIN5gq2FClWf09YyI4luv8Rp7dFht/w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004725; a=rsa-sha256; cv=none; b=N0SQlypp4CQNvnBUq8m/XTXWibgmwWCFds5aNeWbdFNGvl73Y0IfOt42v/qDh1SXiw72RK 3MGbC3qgDllWIDOAVm48UMWtNbd8efKSTZnit7OYegwOX/f7UfaboWCzSK+7RG90wr7GU0 q1nGmHSK8veyV7tirB+y9wh7U6Pc6TvlAMNubUxPyMqeEPVBLxpPAfRSkHj1We2EPTIyi2 FMYKJv65Bokafj3NXLxOxKjZE5nEPfgDVTswrOVmKWEt4C6lagEDTuq2mkBQXro8VSnQfC UuPXN2bfmuuMIYi42miNp5V7QZGfgj0iaQILGUWyHr030c+b8RXjbSlN20mBsQ== 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 4XScps1nPmzRfb; Tue, 15 Oct 2024 15:05:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5PBw089223; Tue, 15 Oct 2024 15:05:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5Pbt089220; Tue, 15 Oct 2024 15:05:25 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:25 GMT Message-Id: <202410151505.49FF5Pbt089220@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: ba8062dc2280 - stable/14 - kinfo_vmentry: report mappings of the SysV shm segments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ba8062dc22805089e69a8b47e0a15c50ae35f007 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=ba8062dc22805089e69a8b47e0a15c50ae35f007 commit ba8062dc22805089e69a8b47e0a15c50ae35f007 Author: Konstantin Belousov AuthorDate: 2024-10-05 09:15:12 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:16 +0000 kinfo_vmentry: report mappings of the SysV shm segments (cherry picked from commit d3dd6bd4039573eb74cd77da5b92e68b04296888) --- sys/kern/kern_proc.c | 10 ++++++++++ sys/sys/user.h | 1 + 2 files changed, 11 insertions(+) diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index b52455f140b2..d20fc0ac4e9a 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -44,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -62,6 +63,7 @@ #include #include #include +#include #include #include #include @@ -2616,6 +2618,8 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags) vm_offset_t addr; unsigned int last_timestamp; int error; + key_t key; + unsigned short seq; bool guard, super; PROC_LOCK_ASSERT(p, MA_OWNED); @@ -2706,6 +2710,12 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags) kve->kve_ref_count = obj->ref_count; kve->kve_shadow_count = obj->shadow_count; VM_OBJECT_RUNLOCK(obj); + if ((lobj->flags & OBJ_SYSVSHM) != 0) { + kve->kve_flags |= KVME_FLAG_SYSVSHM; + shmobjinfo(lobj, &key, &seq); + kve->kve_vn_fileid = key; + kve->kve_vn_fsid_freebsd11 = seq; + } if (vp != NULL) { vn_fullpath(vp, &fullpath, &freepath); kve->kve_vn_type = vntype_to_kinfo(vp->v_type); diff --git a/sys/sys/user.h b/sys/sys/user.h index bd460d452bcc..70592eb44668 100644 --- a/sys/sys/user.h +++ b/sys/sys/user.h @@ -516,6 +516,7 @@ struct kinfo_lockf { #define KVME_FLAG_GROWS_UP 0x00000010 #define KVME_FLAG_GROWS_DOWN 0x00000020 #define KVME_FLAG_USER_WIRED 0x00000040 +#define KVME_FLAG_SYSVSHM 0x00000080 #if defined(__amd64__) #define KINFO_OVMENTRY_SIZE 1168 From nobody Tue Oct 15 15:05:26 2024 X-Original-To: dev-commits-src-branches@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 4XScpt505Tz5Z3HX; Tue, 15 Oct 2024 15:05:26 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScpt3KfTz465c; Tue, 15 Oct 2024 15:05:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004726; 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=vx7d34CyM5nq8/K9TE/bSIFytrLSmNJFtbiljEiZ/JQ=; b=tu0hvcoSCEKVRwgUcHIbtDX5C1hB8Ygw+XVTpm3AtRzYeuBK80Tg6C1TydFExhk6nWHj4t bMFy1SI5r6Zb/gWNpTIUjyAvbpd6pRZrxrZjoM1ESc2VRB9bp8+w3hoxrZCWgZ/v4hGhp3 RLByXxMthbJArpwn+LXm715pO9bEkoVo/326YNFcUiDRowU5kKF75yXYVUgS+Q7Vh+QD7L BPuY/4vWrXmunCH3WvOO3cRjC8h1NuLcE5EA86KW1R1V1/SiQwhr/uq8Vk+oCtnhfqJgrU 8vFUB1Z3gbAKDkVYW2sr/1ivsFHlZuDjS3QtI19SMitnxrZkOvjkTbZ2LX0PCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004726; 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=vx7d34CyM5nq8/K9TE/bSIFytrLSmNJFtbiljEiZ/JQ=; b=kzc6ttJOl+NSbgd2s884SAo8LNds/8COA//s19XVJk94+qn8jRbJ2XzcVY4FCEx4UigBJb Acyufzr9QzbEX/7CYKzWLLJmeir77sjQ/qB7lkIRhW+B5jcR/G9mwUkiY2gGLWo4/D4q2C JYHvbyegFiMx8x4D1sfFWciz3pE6shcQ7q2hTBCFK1X72cK/k2QtTRpUW5otGHPbc3DM/Z 3Uo/oHQtZzaarkDrmMNEpzSLvoikD4cCSvaooRSY3kLFSoRrLlGAaEOpIPYEFvAcLz2QCy Ad4/b2YNpmqGydYBK+dIzGjgCzb9zpfDSxqnmJzJxV6C80HeVe19jhf+iVoUWQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004726; a=rsa-sha256; cv=none; b=Wm0yOe5azs0wBPmMyKv3UK/bEJAEXQ2ZJweE2AvW/r2tVn00u/vKUs5mVapkkY6m/QBfve v1s0bgevoZmjhFjvIJQJH289rVgTxqRflpeKyV2eZJQexWfHlHnGCT1OrCc6WFookYOB1R wgFsXGyjQvWqKrTiwINjPXAmrkB9aySP1J8LjGQSbM1zwdKryuKBh/6XAfXvOMUWbqwXoE 70SEHYB1GOGB5uZtQVnQ0SQQYyXATHoeVdrOi9AoYB4K4JQYgl9BXt2IMf+xQ9riTeGDvX PcXTCdRqZ7lE356QehslvB2JyXBEi0s4NjtXNlbFpLmdeuYWs1foj6KPqjQV2Q== 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 4XScpt2SrZzRXN; Tue, 15 Oct 2024 15:05:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5Qd0089277; Tue, 15 Oct 2024 15:05:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5Qa7089274; Tue, 15 Oct 2024 15:05:26 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:26 GMT Message-Id: <202410151505.49FF5Qa7089274@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 4d5f771c439d - stable/14 - kinfo_vmobject: report backing object of the SysV shm segments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4d5f771c439df34d3c205acbd13eb1250095eeb0 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4d5f771c439df34d3c205acbd13eb1250095eeb0 commit 4d5f771c439df34d3c205acbd13eb1250095eeb0 Author: Konstantin Belousov AuthorDate: 2024-10-05 09:20:21 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:16 +0000 kinfo_vmobject: report backing object of the SysV shm segments (cherry picked from commit 6a3fbdc7e9c8323a1c13c4afcc65f89cb47911e6) --- sys/sys/user.h | 5 ++++- sys/vm/vm_object.c | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/sys/sys/user.h b/sys/sys/user.h index 70592eb44668..47f2984b1eff 100644 --- a/sys/sys/user.h +++ b/sys/sys/user.h @@ -579,6 +579,8 @@ struct kinfo_vmentry { #define kve_vn_fsid kve_type_spec._kve_vn_fsid #define kve_obj kve_type_spec._kve_obj +#define KVMO_FLAG_SYSVSHM 0x0001 + /* * The "vm.objects" sysctl provides a list of all VM objects in the system * via an array of these entries. @@ -602,7 +604,8 @@ struct kinfo_vmobject { uint64_t kvo_me; /* Uniq handle for anon obj */ uint64_t _kvo_qspare[6]; uint32_t kvo_swapped; /* Number of swapped pages */ - uint32_t _kvo_ispare[7]; + uint32_t kvo_flags; + uint32_t _kvo_ispare[6]; char kvo_path[PATH_MAX]; /* Pathname, if any. */ }; #define kvo_vn_fsid kvo_type_spec._kvo_vn_fsid diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 76ae6118a756..a8821f0f2a8b 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -69,6 +69,7 @@ #include #include #include +#include #include #include #include @@ -79,6 +80,7 @@ #include #include #include +#include #include #include #include @@ -2517,6 +2519,8 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) vm_page_t m; u_long sp; int count, error; + key_t key; + unsigned short seq; bool want_path; if (req->oldptr == NULL) { @@ -2564,6 +2568,7 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) kvo->kvo_memattr = obj->memattr; kvo->kvo_active = 0; kvo->kvo_inactive = 0; + kvo->kvo_flags = 0; if (!swap_only) { TAILQ_FOREACH(m, &obj->memq, listq) { /* @@ -2601,6 +2606,12 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) kvo->kvo_swapped = sp > UINT32_MAX ? UINT32_MAX : sp; } VM_OBJECT_RUNLOCK(obj); + if ((obj->flags & OBJ_SYSVSHM) != 0) { + kvo->kvo_flags |= KVMO_FLAG_SYSVSHM; + shmobjinfo(obj, &key, &seq); + kvo->kvo_vn_fileid = key; + kvo->kvo_vn_fsid_freebsd11 = seq; + } if (vp != NULL) { vn_fullpath(vp, &fullpath, &freepath); vn_lock(vp, LK_SHARED | LK_RETRY); From nobody Tue Oct 15 15:05:27 2024 X-Original-To: dev-commits-src-branches@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 4XScpv5hzzz5Z3Hb; Tue, 15 Oct 2024 15:05:27 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScpv3XGFz45yH; Tue, 15 Oct 2024 15:05:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004727; 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=UkPmK0fVL31Kkr+9L9dLMMP3a9ORiJBWK+LwpEP8eps=; b=xhXVxd57bhGYOImDoXpV6x3jG93GxkyDAepYEWESku1vwDb/QpAVLTjXNh2KD7wwf3q0ZS j2MUj6KQ6E8VzyaZK5ZerMFiiciCgbSfksGgAd0Cwgzjj4XtqEcalP6RuO203uJIYxjAns F2bxfno/VxCyFFFHfAKsfGnSc2SDED3rYnrTXrfWK8+oFxG0sJ+ltjbnxFFyyn+PhveE7n xWzIjbbKKc/Ks/FXyi1O8g7qK8u/TTqVOh8usMZB79u0Qo7jEEs70XuaCvBI8NEksfUZUz v3eccszPd53kDmEwzItc+rYzDHSFMWCdm++ah/cWUYRWn2MhGuOaBn4JXc7ujw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004727; 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=UkPmK0fVL31Kkr+9L9dLMMP3a9ORiJBWK+LwpEP8eps=; b=SAfYWk4aGWUfFk/Ou6g3FxEp/asoLnwBSkRk6+2wC0TQ0UwHzzVBUx7WrRHkzx91llXmZi mk8CSG1SV5X7lFUaKHMeb20rP9UVXXV8bSjf222lyHe24wJ3HICJJvAOsbKvkBx2jDzZ83 kz8B9KvzaDDsgxacHF/QVV8j/zKE1aoD6qopVRLJdlQhEYVEmbe3PuekoSdd32yzojxEA3 WR6NHBFDRwmzLwmn+CXtgic/iwRFJSghqqfwLw9+7KoRHCr8mW4n2mzOcHR+it6C0Gfyds 4oYRLsC1NZgdBNlvLswUgWvwjAiPPb+oWqxbVSPfaVtydfsO0vz1Wih0/NcaIA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004727; a=rsa-sha256; cv=none; b=TeLk9eH8pPuggkAF+0Kexzh3++pGjM44E3E3nG6+dHyirmDRgqCE4lgQZAtD9lVf34ViAh Jb0sNz8TNxYyh5OguIhB9DIwwBHLPOXxL9xV0poQ3zDdoCiwE78DdRxZVekHShVMjZTUKU XEtcsbkwsTfhyqjSyIfS6JeOA3ksBghPBvHf3Or1Pjn8ff7NHLK27lGqkSyCBsyEKvUQJy yVPafMidASKK5y+hFpB3KQeKJfSPtAwtS29NoVTspaYTgwOnpOvia+evgGK1y+ksdiM1Qy ql8pXqoVf5QWRHC2ohWQChx8KdNvZMKw1gCSE9sEHpbC/pxbL+xefY8ybpxDYw== 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 4XScpv381dzRT5; Tue, 15 Oct 2024 15:05:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5RcV089325; Tue, 15 Oct 2024 15:05:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5RXI089322; Tue, 15 Oct 2024 15:05:27 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:27 GMT Message-Id: <202410151505.49FF5RXI089322@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: cde459e2206c - stable/14 - procstat vm: report SysV shm segment mapping List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cde459e2206c834a8b11ca7a257fadab10c4cac1 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=cde459e2206c834a8b11ca7a257fadab10c4cac1 commit cde459e2206c834a8b11ca7a257fadab10c4cac1 Author: Konstantin Belousov AuthorDate: 2024-10-05 09:34:59 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:16 +0000 procstat vm: report SysV shm segment mapping (cherry picked from commit 65b832eb6ff76464a65cbf6ba730a54364a5fdc2) --- usr.bin/procstat/procstat_vm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/usr.bin/procstat/procstat_vm.c b/usr.bin/procstat/procstat_vm.c index 26a8fee57d1c..4f69aa3c3244 100644 --- a/usr.bin/procstat/procstat_vm.c +++ b/usr.bin/procstat/procstat_vm.c @@ -115,6 +115,8 @@ procstat_vm(struct procstat *procstat, struct kinfo_proc *kipp) KVME_FLAG_GROWS_DOWN ? "true" : "false"); xo_emit("{en:wired/%s}", kve->kve_flags & KVME_FLAG_USER_WIRED ? "true" : "false"); + xo_emit("{en:sysvshm/%s}", kve->kve_flags & + KVME_FLAG_SYSVSHM ? "true" : "false"); xo_close_container("kve_flags"); switch (kve->kve_type) { case KVME_TYPE_NONE: @@ -165,6 +167,10 @@ procstat_vm(struct procstat *procstat, struct kinfo_proc *kipp) } xo_emit("{d:kve_type/%-2s} ", str); xo_emit("{e:kve_type/%s}", lstr); + if ((kve->kve_flags & KVME_FLAG_SYSVSHM) != 0) + xo_emit(" {:sysvipc:/sysvshm(%ju:%u)/%ju:%u}", + (uintmax_t)kve->kve_vn_fileid, + kve->kve_vn_fsid_freebsd11); xo_emit("{:kve_path/%-s/%s}\n", kve->kve_path); xo_close_instance("vm"); } From nobody Tue Oct 15 15:05:28 2024 X-Original-To: dev-commits-src-branches@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 4XScpw6YT7z5YYSP; Tue, 15 Oct 2024 15:05:28 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScpw50Ynz4685; Tue, 15 Oct 2024 15:05:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004728; 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=LE29BjsiffyHMZo+4z7JajHuSHEjrpBp78B3eJyEROM=; b=lLr3MonCRN//FJQp8UfyF8AP3RkRucjUeMS0LvRVZoxMF800pxfFD02YqOHQCGzkuSUW/G OJSTj7CUcDQbFrfYiJ4o4DJd9cNLHG8YkTK0KMK6K2EXsswh+mxVMNbJbeFse7ZdvRfa9D 5/Fg7pLgO7YQ1oHaDwEd+XB43BK15SGKbXkg6zHOL5qUjCEAoAsJ614kjIuluqj0MKGLrf mN9VVwW9C/5beEmxHycVcDildHaNGZiAtux2LHMnvIYgsQI6O3Fv+xmbnU5CsvgrbaEX/Q bDJs9DIQ+9JEHUGuo7UTVTUqoZBuU76fygOZCkN6uR/NKmnKnvQeygEROcM48Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004728; 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=LE29BjsiffyHMZo+4z7JajHuSHEjrpBp78B3eJyEROM=; b=MN93AHaw4QoLXDdnS5zR2Oc+ici46RLdXcDMhsMaPimJzNzhcPZJVlZIqE/36aGdl5UpXb wVFjV0p6Em+HEPxA6jwN9r+DQp9hq3GSv2NfbxqMPYdtBv/VOSnqDtY5MvF6ES8skAUZqp Ecc6Q/NSExgzDmOOQEdAHRum8ecOMhl833Sx79YFQ3VE5R03qwPrP4wVhOWcliFcGSjING boPoPo2moZIculax5qpyEBDM1gCxs5j5OI5t/L1yzOmRl/wvI0BpDqhaPv4g4DDYjUtluW ilRuMa43/GETih26jQTArdxL9o7ODRj/B4EcccHKjy8sx8+mGWUnfmH9lma8xQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004728; a=rsa-sha256; cv=none; b=UvXsRTMgsKAKutlcHLpCpXQ1CH5uyi/8dlNCR9QBw9aLi2mFVeFA5HB8uX/KwDHr/bgXEl 4E3mS4VojOUye8TJcTGZ9SI9M5R5QU6enRV9x5ZGqON30f6Y+JNLyCX/wwli/jT9RGNgPd nAIAzIYjqHUZ+YzK2c637QFj6gKWlD11z0toUBbAeWfIY++TCurDoLHxABxuXo3YCX03H+ GYX63IvkTC/0ocMlIfQrJL+z1oSc7FDpzfMIfqbtCcPAa5yaoBv+2pRnWnp0UA5oPdnLC0 DQbRILfcsCzJSrMS1YAok0077sa1kZmsjDf/RG85LM/hqbUxp7Sjf3He42yPyQ== 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 4XScpw4XnMzRRN; Tue, 15 Oct 2024 15:05:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5SEi089377; Tue, 15 Oct 2024 15:05:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5SYO089374; Tue, 15 Oct 2024 15:05:28 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:28 GMT Message-Id: <202410151505.49FF5SYO089374@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: cd8f8d34c9fd - stable/14 - vmstat -o: report objects backing SysV shm segments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cd8f8d34c9fde023fb9821c5063abeea66e394ba Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=cd8f8d34c9fde023fb9821c5063abeea66e394ba commit cd8f8d34c9fde023fb9821c5063abeea66e394ba Author: Konstantin Belousov AuthorDate: 2024-10-05 09:43:25 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:16 +0000 vmstat -o: report objects backing SysV shm segments (cherry picked from commit 2d84f79c4e451cac179c7b2111a7f6cba60960b3) --- usr.bin/vmstat/vmstat.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/usr.bin/vmstat/vmstat.c b/usr.bin/vmstat/vmstat.c index c86c335087f5..203c34451874 100644 --- a/usr.bin/vmstat/vmstat.c +++ b/usr.bin/vmstat/vmstat.c @@ -1552,6 +1552,9 @@ display_object(struct kinfo_vmobject *kvo) break; } xo_emit("{:type/%-2s} ", str); + if ((kvo->kvo_flags & KVMO_FLAG_SYSVSHM) != 0) + xo_emit("{:sysvshm/sysvshm(%ju:%u)} ", + (uintmax_t)kvo->kvo_vn_fileid, kvo->kvo_vn_fsid_freebsd11); xo_emit("{:path/%-s}\n", kvo->kvo_path); xo_close_instance("object"); } From nobody Tue Oct 15 15:05:29 2024 X-Original-To: dev-commits-src-branches@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 4XScpy17S4z5YYSS; Tue, 15 Oct 2024 15:05:30 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScpx62nnz463l; Tue, 15 Oct 2024 15:05:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004729; 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=l9L1zWuIOtr6/uJp/YEvAs2GP4I1uOR8adR1NSwJ5qQ=; b=hhJBIm1FkwCmg4skTxjyIbRGlQLvxk0DcZEUs6BrM692WuXrawG4MLzMO2qPCcd4THdFqq xi0ydY3h7UTywcvwC3jw+ZvSBvcc9LSZbctM6bZ2mPOOOHJJvEAzk9FsDcmhztFw0UX7t1 dZTSlWUFUjPTNxUsFeiGp21njC+2T/1y/vak5HY6Gb3RDS+/VkMiIYJrIRURtYxRZniHvA veaG/5srXExp0QmTZ8pPoDLLYLKRq+1ilsEF/wgBEOMhdZkvzUYjHc7ylpHuELCRb24FQJ IzQWzO04JHTP5UeRXqQYsylC6Vrrx3q9KAumOIYQfyPoAFwMQGpaaNLiipTtug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004729; 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=l9L1zWuIOtr6/uJp/YEvAs2GP4I1uOR8adR1NSwJ5qQ=; b=RxW5FvX1AHmC1POmNXGkF/K11EcPTZJ8gHWwpCZtjDrtMpbaQq9yPYIMOW8fljvskMS5Qo CcgEuxXlNBb6To9MOrtIgDWkFAr61v3VtE5TWB9KjIscl6hS74KSJ92t+FxIVftgJa3Ni/ jKo6UH9+YPorkDsKxc5EbsEHdT3zgViENwQy3mmCU1AfHe261sbkId2wDRvxuKN/Uyt3Ut QCR99+dHmQDKSOXQjsNjY55v/qNw8XBGWROV0f1NUa7+zBDDyVho9XCTlw7B5QNwEKpmFN fntzgZ92HmCVZGUfKNA2EZc1hDV45brgL7Xgzd9tka4QifunQFfkA7tfe7zENQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004729; a=rsa-sha256; cv=none; b=gPI5BfVh7zVnSYYN8vRLt7GC89TVHAJygEzR4FCuY1QMpEOLox+zl+bBXD0bM6WwHwPnwg FFjXDpPPicV9dYIQhymlmZQ7Hwgq1tZHscGUY6uahVpOKn7pbS7xsFM3nrXzdbAexhHWAF WWOb+bXd/sV8+Xk7t2zRxBnkbjN0KOod4bIn3KyHngdKXMY6ROLeKdQuX+mPYkc/4O7YbE pyf8GiHCaV6qhmQ7uanyID22AFdzX801XjF86MSmSD50NNg0kq11ll27ENKpUd9oq26usn ZGGhRLCJq7+HOUdjr69nScoPyPC/33eaJBAmHwYFxeoA/0eiXX4yPj8/BsUJ0A== 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 4XScpx5byDzRfc; Tue, 15 Oct 2024 15:05:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5TBn089422; Tue, 15 Oct 2024 15:05:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5Tt7089419; Tue, 15 Oct 2024 15:05:29 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:29 GMT Message-Id: <202410151505.49FF5Tt7089419@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a1ae801880ef - stable/14 - kinfo_vmentry: report max protection List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a1ae801880ef64e2c2fd7ca51744ff86611df313 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a1ae801880ef64e2c2fd7ca51744ff86611df313 commit a1ae801880ef64e2c2fd7ca51744ff86611df313 Author: Konstantin Belousov AuthorDate: 2024-10-07 07:49:43 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:16 +0000 kinfo_vmentry: report max protection (cherry picked from commit 409c2fa385aa34baf7dd86bed2e86fbff16ad86d) --- sys/kern/kern_proc.c | 6 ++++++ sys/sys/user.h | 3 +++ 2 files changed, 9 insertions(+) diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index d20fc0ac4e9a..17d002a29c77 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -2679,6 +2679,12 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags) kve->kve_protection |= KVME_PROT_WRITE; if (entry->protection & VM_PROT_EXECUTE) kve->kve_protection |= KVME_PROT_EXEC; + if (entry->max_protection & VM_PROT_READ) + kve->kve_protection |= KVME_MAX_PROT_READ; + if (entry->max_protection & VM_PROT_WRITE) + kve->kve_protection |= KVME_MAX_PROT_WRITE; + if (entry->max_protection & VM_PROT_EXECUTE) + kve->kve_protection |= KVME_MAX_PROT_EXEC; if (entry->eflags & MAP_ENTRY_COW) kve->kve_flags |= KVME_FLAG_COW; diff --git a/sys/sys/user.h b/sys/sys/user.h index 47f2984b1eff..4ca80741ad5a 100644 --- a/sys/sys/user.h +++ b/sys/sys/user.h @@ -508,6 +508,9 @@ struct kinfo_lockf { #define KVME_PROT_READ 0x00000001 #define KVME_PROT_WRITE 0x00000002 #define KVME_PROT_EXEC 0x00000004 +#define KVME_MAX_PROT_READ 0x00010000 +#define KVME_MAX_PROT_WRITE 0x00020000 +#define KVME_MAX_PROT_EXEC 0x00040000 #define KVME_FLAG_COW 0x00000001 #define KVME_FLAG_NEEDS_COPY 0x00000002 From nobody Tue Oct 15 15:05:30 2024 X-Original-To: dev-commits-src-branches@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 4XScpz1dqqz5YYbc; Tue, 15 Oct 2024 15:05:31 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScpy6dQrz46H5; Tue, 15 Oct 2024 15:05:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004730; 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=ySIck+XowaQlgBv8td/efe5P8qI7GbkzHFr6WDtnzYA=; b=ktDsKWgx8QiHqj+xjAtpOgsbL6ZtLGZyEarYi59TOO+5AVOXseizKP7IvI8zQvdJB9dZGQ O1FKG5xxKQV5yfvj/WFZ9ATtI3YuaQjbjqgA0wRrZVLDlR/A5at/8M2JI9R+uufbdTNVy0 lygo9TSwE9kQuiLmHo9CcyehUpCRUsshN/JyhIpfNDt5jbI34DuNepEPsGUa1qvQjNQZg1 KNjhbAOy3LINYTGVxv/dbU/MML9FSrjL6+kw7ke0XQleoMCHWPS10dg1y9+k2KxinKZ4KR IR3e0sIJ2zQe/7iDY2wiXE2dpSt/Sadg9mR6tt2sk4r32Q6Y3hzwLHQQRWOh+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004730; 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=ySIck+XowaQlgBv8td/efe5P8qI7GbkzHFr6WDtnzYA=; b=AuSeZx3UMS7y6UqhR2FxuSgVnK7lZ3oKL5+TfLbnZfcziFgIzxcqVOepuRHMaysSnBKx9m TCLghw3hAhqwdofaE7CjS6P3rVqBusc4xAjVxDRLlndXvhpLks7Kz14pkr2/evIjHcQJFM tAABJ8tJfl+snvhKDDdGnI8rMtrx21XmsouEo44UsLhFicuClGDeNRNV4ACt40McCz5r9O XwFYOIfjLMdC8UXjeikJ17Sf0pGrBek7NOv5aWmtaUrDoKKSVsumy32X+kl70ASuN3cnt8 ej8U7g81HJfzQUDbzTJ+oi1L8C11R9WP8yfB8x/J4Fat3trRNpOD9HcwVjcd4A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004730; a=rsa-sha256; cv=none; b=PCmKTX2fd7n6yllv1bVk1Iqpqwfja7poT/h+DG0rv5vHKSHLJKAh4rCnbLVhAxX7I4YS24 1BbcpC165/IESv73tQexZX9C4HO1Hd5OyImXOsste2N/ucWw5cns8uc/jHMoDjB0Ot5Kau n3qB9uEy7kjykbR7DCzYfL4tFRGX7FsHCkY3Lpg5aJNG5uPx19gSt3vPamqijQ+EE6AGLn afoZMrjjw+6gB2xWkg7SlcImdH0k7L+ifNkfx+Jsngvz0BwDBACeXWXqo3K3aQgRmcJ8NN smm1bgszIztorPqrmkJEA/dFzeTD3B7BFYdjcEk9pA++eu646UP+qIbVvqxP5g== 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 4XScpy6CJhzR8Y; Tue, 15 Oct 2024 15:05:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5U1O089461; Tue, 15 Oct 2024 15:05:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5Uv0089458; Tue, 15 Oct 2024 15:05:30 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:30 GMT Message-Id: <202410151505.49FF5Uv0089458@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 32b3b01083ce - stable/14 - ptrace(PT_VM_ENTRY): report max protection List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 32b3b01083ce4e7d8df4200ecb2ef21e4a2763b7 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=32b3b01083ce4e7d8df4200ecb2ef21e4a2763b7 commit 32b3b01083ce4e7d8df4200ecb2ef21e4a2763b7 Author: Konstantin Belousov AuthorDate: 2024-10-07 07:53:18 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:16 +0000 ptrace(PT_VM_ENTRY): report max protection (cherry picked from commit e90b2b7d6c173e27dccdb894bb4e34ad30273e22) --- sys/kern/sys_process.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index 647487f86b02..a45d5b065382 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -517,7 +518,8 @@ ptrace_vm_entry(struct thread *td, struct proc *p, struct ptrace_vm_entry *pve) pve->pve_start = entry->start; pve->pve_end = entry->end - 1; pve->pve_offset = entry->offset; - pve->pve_prot = entry->protection; + pve->pve_prot = entry->protection | + PROT_MAX(entry->max_protection); /* Backing object's path needed? */ if (pve->pve_pathlen == 0) From nobody Tue Oct 15 15:05:31 2024 X-Original-To: dev-commits-src-branches@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 4XScq02Pwhz5Z3KW; Tue, 15 Oct 2024 15:05:32 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScq00FhGz46Cc; Tue, 15 Oct 2024 15:05:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004732; 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=CRU1C658/uil6mfw0v56XTQZcRaTE2h34ba1Qs9VHfg=; b=X5PHDSnYVlapL6Y5pm6hmSFHZND8s7LyN4snsj/b95b1E9TF42HyVYsErPGBAGvSxoVEwW rsbDpFNT26y/HR2gkaEwxQV+WRbmzjdDVGid1m7CHtQe6NpOAZGxs2K6QzVkwHL6EHGEYB ZfFi16j7y1Q/O3WtAAd02nLe1XMdvcofB2VTv7dUgB9PLV9xFASWS3D2Gbwamfg+Wrqegy vJfnNUT2Ob50qyGaO6DCIyyvH1uzotnzltZxHTiCu1ekh9V6gw/TC1Qji1Hmosc8ItS1q/ qO+QOsHHPrjHuYRKCozpWrNBSo+4+o71yUgPJIOovhddBS5pt7ktVI7ySjv0Xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004732; 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=CRU1C658/uil6mfw0v56XTQZcRaTE2h34ba1Qs9VHfg=; b=eCAt5/Majvi2eJi/1UMbbIauZHoQnhRH6ftLEvpdDwcVf6jrPZ2dSvMdCE4Hqnz4wqmXMR BZbCnCVcUttczs7TTaaia9KMlqqGS2dzlknSJ5kEymHfO6bDS6vIQwmHnVK/7VeWEuMjNL PTY4VurydLNnrFHFJgOCT2wCBScvQ9wtXJoGuc3LNDvbs/WEy/qaG35z+qhc9hHHN7MTO3 TvMnhZLUSJ1VbsA2ZGeo4ApjNPupH1RUxfnYewtnkFHPDpmTpCvCuerPqntHsyxWJYlnTh mWcxpp/5fguntIgvGKHKJsBQrPp48gFYrTtWkBmurQZq3XbXArdEQQjd4x8jUg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004732; a=rsa-sha256; cv=none; b=Sbs1a4ZT9mWwttyaoqPTuRD/HMPL6Ng1w3ijL00pKDK1UDibTBkFtxqY4IgdwR3DKkaFGM IkjfX80kmsJnN0YXul0Te5QBQF6+05TGvXxKG/aK3wlBdYSGeA71c5FJ7lPlCLVyaDs1tq TgkGi2Exg0FoJYdvrgTxzN1Dul80I++SMZIeyOkpPX6rHRQshP6qI0zJp+KuYjIVexXSGd 704BUlQP1vGqQdrLLmAH90O49k9zy34nuPFKaTCtxdCZojHQbglPEa2pF7Nr21A9GNrwLV GwGZRjeTU4I8kHSex+Pesx+pmVECM/QAPCrn3nScw5SWYdm/kBLhwixMuM8Fmw== 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 4XScpz6g3TzRRP; Tue, 15 Oct 2024 15:05:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5Va8089518; Tue, 15 Oct 2024 15:05:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5VuK089515; Tue, 15 Oct 2024 15:05:31 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:31 GMT Message-Id: <202410151505.49FF5VuK089515@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 987c8e9afa1a - stable/14 - kinfo_{vmobject,vmentry}: move copy of pathes into the vnode handling scope List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 987c8e9afa1a198d7cf9fc304e4855a0d9dcb738 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=987c8e9afa1a198d7cf9fc304e4855a0d9dcb738 commit 987c8e9afa1a198d7cf9fc304e4855a0d9dcb738 Author: Konstantin Belousov AuthorDate: 2024-10-07 07:36:51 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:16 +0000 kinfo_{vmobject,vmentry}: move copy of pathes into the vnode handling scope (cherry picked from commit 71a66883b58f796baf2bf79a43a91c16a71673b3) --- sys/kern/kern_proc.c | 7 +++---- sys/vm/vm_object.c | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index 17d002a29c77..8f5ffeea71d3 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -2741,6 +2741,9 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags) kve->kve_status = KF_ATTR_VALID; } vput(vp); + strlcpy(kve->kve_path, fullpath, sizeof( + kve->kve_path)); + free(freepath, M_TEMP); } } else { kve->kve_type = guard ? KVME_TYPE_GUARD : @@ -2749,10 +2752,6 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags) kve->kve_shadow_count = 0; } - strlcpy(kve->kve_path, fullpath, sizeof(kve->kve_path)); - if (freepath != NULL) - free(freepath, M_TEMP); - /* Pack record size down */ if ((flags & KERN_VMMAP_PACK_KINFO) != 0) kve->kve_structsize = diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index a8821f0f2a8b..1dbebf139683 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -2622,11 +2622,10 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) /* truncate */ } vput(vp); + strlcpy(kvo->kvo_path, fullpath, sizeof(kvo->kvo_path)); + free(freepath, M_TEMP); } - strlcpy(kvo->kvo_path, fullpath, sizeof(kvo->kvo_path)); - free(freepath, M_TEMP); - /* Pack record size down */ kvo->kvo_structsize = offsetof(struct kinfo_vmobject, kvo_path) + strlen(kvo->kvo_path) + 1; From nobody Tue Oct 15 15:05:33 2024 X-Original-To: dev-commits-src-branches@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 4XScq151P7z5YYbk; Tue, 15 Oct 2024 15:05:33 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScq11N5fz46Ks; Tue, 15 Oct 2024 15:05:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004733; 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=n00/AHV/zXNQKRwmnLZUY64j5ezF+iSj/zKSgIwGtx8=; b=ipCOoE3dYKjYgy3ySrJBL1sDtWphRpjn0KOPP5uD07uwXmO20kPlkK9ve+1ByAu7sgPqLm BBEzsUCjOS2EnVmClnc+GNeJuntIh7fsN90TLZzhoNXLG8bW7nqFt3Oj95dN02ZefYqs79 1LoMw826mqGhLoFS0ulSDGIZsxPNR8dQXRCZweeK8FLmEeusJXIVqz1ynCS2xYkhHd+5WI Zujj/bIzqteyEDNlocUW54Ze+CVyqalgq/Pz/9Kdwi3Jozdp+oo4jOz6nl07OzWAlpUva7 i/3mP/0rXUqW/vCixhzgtMBZGqnmoPkWD6iMPiMPDjJ5Ep3iz0udnimQJ9s1Cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004733; 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=n00/AHV/zXNQKRwmnLZUY64j5ezF+iSj/zKSgIwGtx8=; b=Z7fvK1dNoEKez27pISdDwpOzNzo/RCspSKoszKmuXNURC8WQU3PXwAjijy88yoN7kLNvof IpT9el/VnKzIEJFmyOgST+yPk/1RHIAdQKq8shtgIFu5FAm7c+/TTrkMAmuU6IBs/J7xOA y/RgwlbIc850oX0GEYnzGylT/MwO6ndfEpUFILxL6CAScvhFfH95vSxmQvK0Rq2M56RHQf Vd1pHuAqUnVKepBUWgc6DZcynIyQMZG4GfxV4DxBw+18Cv8HcbG1iTcsOmZ2mivN/2cs3+ bYjhNmB8NKamKweyPmYplo56QNSsCl+X4BDMCNmMDwx+MOyHuAyqWPubkH6qsQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004733; a=rsa-sha256; cv=none; b=KnQ4rMxosOU9Pb5IQWzIEhOy072dHCvkqYChDhRWg9iS/WJIUAVFsYJJffzd5zaJSuYHkG YjvIA3+y2eW3D1ew1Q0XVOSoNPxVWeYDuQLn0eugLSipmA1E8EHNg0EOzzecOHgt8RdRNU qar0ZRz6J5qDo5L2yjgy9NfJTYia8BgEAAzJUnRDgez+T6obwgEd2ugAuczBQONLCyJ3sg k+g+nfiVNQMQzOHxtiZ8FE2Od0Pm/ihIQS310DhIOKR8tG0W7BLQmxqjre4dZoN4mfFiK8 t18epuaYLNTzIwhyoAhlSiVhrwK/IbTOLscvtW0sI4sMmCBEvMVZlScgE++Esw== 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 4XScq10ywyzRT6; Tue, 15 Oct 2024 15:05:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5X8c089569; Tue, 15 Oct 2024 15:05:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5XcJ089566; Tue, 15 Oct 2024 15:05:33 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:33 GMT Message-Id: <202410151505.49FF5XcJ089566@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: ec35a9c65d2d - stable/14 - posix shm: mark backing objects with SHM_POSIXSHM flag List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ec35a9c65d2dc27f10097f08ee4ad3c2bf598471 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=ec35a9c65d2dc27f10097f08ee4ad3c2bf598471 commit ec35a9c65d2dc27f10097f08ee4ad3c2bf598471 Author: Konstantin Belousov AuthorDate: 2024-10-07 01:26:38 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:17 +0000 posix shm: mark backing objects with SHM_POSIXSHM flag (cherry picked from commit a10870ecea813042db7c41e906e1a5c5693f8a34) --- sys/kern/uipc_shm.c | 16 +++++++++++----- sys/vm/vm_object.h | 2 ++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c index 20dbe59e2a96..52a569931b01 100644 --- a/sys/kern/uipc_shm.c +++ b/sys/kern/uipc_shm.c @@ -944,15 +944,20 @@ shm_alloc(struct ucred *ucred, mode_t mode, bool largepage) shmfd->shm_gid = ucred->cr_gid; shmfd->shm_mode = mode; if (largepage) { - shmfd->shm_object = phys_pager_allocate(NULL, + obj = shmfd->shm_object = phys_pager_allocate(NULL, &shm_largepage_phys_ops, NULL, shmfd->shm_size, VM_PROT_DEFAULT, 0, ucred); + VM_OBJECT_WLOCK(shmfd->shm_object); + obj->un_pager.phys.phys_priv = shmfd; + vm_object_set_flag(obj, OBJ_POSIXSHM); + VM_OBJECT_WUNLOCK(shmfd->shm_object); shmfd->shm_lp_alloc_policy = SHM_LARGEPAGE_ALLOC_DEFAULT; } else { obj = vm_pager_allocate(shmfd_pager_type, NULL, shmfd->shm_size, VM_PROT_DEFAULT, 0, ucred); VM_OBJECT_WLOCK(obj); obj->un_pager.swp.swp_priv = shmfd; + vm_object_set_flag(obj, OBJ_POSIXSHM); VM_OBJECT_WUNLOCK(obj); shmfd->shm_object = obj; } @@ -992,11 +997,12 @@ shm_drop(struct shmfd *shmfd) rangelock_destroy(&shmfd->shm_rl); mtx_destroy(&shmfd->shm_mtx); obj = shmfd->shm_object; - if (!shm_largepage(shmfd)) { - VM_OBJECT_WLOCK(obj); + VM_OBJECT_WLOCK(obj); + if (shm_largepage(shmfd)) + obj->un_pager.phys.phys_priv = NULL; + else obj->un_pager.swp.swp_priv = NULL; - VM_OBJECT_WUNLOCK(obj); - } + VM_OBJECT_WUNLOCK(obj); vm_object_deallocate(obj); free(shmfd, M_SHMFD); } diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index c63a52260baf..9921f1130e8c 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -174,6 +174,7 @@ struct vm_object { void *data_ptr; uintptr_t data_val; }; + void *phys_priv; } phys; } un_pager; struct ucred *cred; @@ -204,6 +205,7 @@ struct vm_object { #define OBJ_PAGERPRIV1 0x00004000 /* Pager private */ #define OBJ_PAGERPRIV2 0x00008000 /* Pager private */ #define OBJ_SYSVSHM 0x00010000 /* SysV SHM */ +#define OBJ_POSIXSHM 0x00020000 /* Posix SHM */ /* * Helpers to perform conversion between vm_object page indexes and offsets. From nobody Tue Oct 15 15:05:34 2024 X-Original-To: dev-commits-src-branches@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 4XScq25RFdz5YYWX; Tue, 15 Oct 2024 15:05:34 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScq22KHYz46Hm; Tue, 15 Oct 2024 15:05:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004734; 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=BMLy7BbQ5X7ECMnMXjNOQnoGpvb5AS/gHdUbNthL6do=; b=yrxe407d7l2OW3+mbFEuzpZPxo0i8VKBvc0QmI8721YONgigiKdFP5kS17TQy/Xwwtve+j 5O9/pbjEj7I1wKPsj7X+Zbz4NxPb0B+mOBKEHS1SOoV8YP01c2YiGPzrsvTSYA96vzNCLj Vyo5f7JfgZqLXHC2y/Ck5A+x+mrpxxdzGmhLsW+Xd3b5ZNsbw6bs+GynQKqiy45nt7oN6z HuOaVcbkTOzeXEF6BppTkod+n5xmaLKKrAyX1nfYzeRZcEFgs4tQCKoAD0jrPbPAm4wjMQ +5mcw9sEyr/oGFznlJ9/tIqmemN5eX8587w3W3rWgYYU4cI2N3PqyUi7CkruCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004734; 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=BMLy7BbQ5X7ECMnMXjNOQnoGpvb5AS/gHdUbNthL6do=; b=ZOrvbfMxjB8wFT29EqqjLwo6aK1YXrdcJ5t4XPgzdpshFfztZn2je406lbZ4AAgGvvyndK IT1NJUR1tyb6CyOX6gbGe8CAhoZPbOwitSONML8jAfOCijTLk3z0OxPi610+eSKoIMSCNO ZqPtpzESw4ASeqdVNG58WfE1g9t0lrLDs6eLw46MO5ypFp0MwDSgbRLJfsv+B+Sm1k0nVb tCD4cUeCTMK+kkzSlJF5lucZgMN449M1iE6sTJxu2xAG2R5E8+wWnqE4P5eNMBHxlX5sfw xBlRVm5aCqw5VeReW2VcoFjXxGDfK01WdKePXukRPQ/sz7qP23bqTyejYlaQgA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004734; a=rsa-sha256; cv=none; b=IXPHZ70EdC2KzpduCMjHf+aasaMVsVYNBw13lJ/+KSd3/2F7PdMJJyT9h02nSgAUqeS7Ze C7WqCtzCg6DyZF/S3TdS9rTd+acVqxRR11ujsPEz64F4S3QcIR5HX7nT337E2orr7DH7dT oeAvx0qDHTUCdWD1qhJ4on78Tcv8SV6IUlGAOoAn7GVjkm/ihZrIjucXkTZ+IPr4qWDsNA nPK2KaE5qVFtGxYQZAbX5KxSVuKw3qTCnWv5dwnauRnCVry7SpFcaDtGKUK9Fs3ED7wniU sM9rpxY9YAKe7YGWSjgmaI8myWoGL6U0AqDk8dXVV//xdQqIx8MHNxnwGWWnNA== 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 4XScq21xSwzR8Z; Tue, 15 Oct 2024 15:05:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5YB2089609; Tue, 15 Oct 2024 15:05:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5YsC089606; Tue, 15 Oct 2024 15:05:34 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:34 GMT Message-Id: <202410151505.49FF5YsC089606@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 64de7b789b3d - stable/14 - posix shm: add shm_get_path(9) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 64de7b789b3d9fb03dfac93fa8c3ba6fa27bcd82 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=64de7b789b3d9fb03dfac93fa8c3ba6fa27bcd82 commit 64de7b789b3d9fb03dfac93fa8c3ba6fa27bcd82 Author: Konstantin Belousov AuthorDate: 2024-10-07 01:44:49 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:17 +0000 posix shm: add shm_get_path(9) (cherry picked from commit bda73e441f2576de5ad00856d758354c299a3f75) --- sys/kern/uipc_shm.c | 31 +++++++++++++++++++++++++++++++ sys/sys/mman.h | 1 + 2 files changed, 32 insertions(+) diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c index 52a569931b01..8334d7eb3264 100644 --- a/sys/kern/uipc_shm.c +++ b/sys/kern/uipc_shm.c @@ -2196,3 +2196,34 @@ sys_shm_open2(struct thread *td, struct shm_open2_args *uap) return (kern_shm_open2(td, uap->path, uap->flags, uap->mode, uap->shmflags, NULL, uap->name)); } + +int +shm_get_path(struct vm_object *obj, char *path, size_t sz) +{ + struct shmfd *shmfd; + int error; + + error = 0; + shmfd = NULL; + sx_slock(&shm_dict_lock); + VM_OBJECT_RLOCK(obj); + if ((obj->flags & OBJ_POSIXSHM) == 0) { + error = EINVAL; + } else { + if (obj->type == shmfd_pager_type) + shmfd = obj->un_pager.swp.swp_priv; + else if (obj->type == OBJT_PHYS) + shmfd = obj->un_pager.phys.phys_priv; + if (shmfd == NULL) { + error = ENXIO; + } else { + strlcpy(path, shmfd->shm_path == NULL ? "anon" : + shmfd->shm_path, sz); + } + } + if (error != 0) + path[0] = '\0'; + VM_OBJECT_RUNLOCK(obj); + sx_sunlock(&shm_dict_lock); + return (error); +} diff --git a/sys/sys/mman.h b/sys/sys/mman.h index 7eb38a5f59d0..36973b941e61 100644 --- a/sys/sys/mman.h +++ b/sys/sys/mman.h @@ -310,6 +310,7 @@ void shm_drop(struct shmfd *shmfd); int shm_dotruncate(struct shmfd *shmfd, off_t length); bool shm_largepage(struct shmfd *shmfd); void shm_remove_prison(struct prison *pr); +int shm_get_path(struct vm_object *obj, char *path, size_t sz); extern struct fileops shm_ops; From nobody Tue Oct 15 15:05:35 2024 X-Original-To: dev-commits-src-branches@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 4XScq36s7mz5Z3Kd; Tue, 15 Oct 2024 15:05:35 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScq32z80z46LS; Tue, 15 Oct 2024 15:05:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004735; 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=11tBcYNp7JUQv2I+0Dgvw09aRDYw58StLVdDAM5yKdA=; b=F0Sa7974KAUIFd3a1MWrcLKjTgfDQRmHH6xpXBzrWgChuYBH82wtDlmJE/MITYeQhpiWmj zYOaMwSXpXLF4qlHlsfFSGAYl1QPnUoqSZWJx/m0oFDWc6Vm4mwPR7AQoCNimxzTTR13I+ qPdLEraUeQeVircULmdwmoA5sJ5C2sztxTvbx6sosF0gYqVDkKpQyizPUSfr9yXd1T0x7M 5ROVmbzj05msz0pwNGkRtmhk9xVQU/ljYITwWBnoTkznUqbc7LiHBH3fTeb3opcm7BK+cK c1M93GBzcIjsYjuErXuIjVxaUK510v3ioGcIkek7MWO1SmXtgsRyAGeenO70eQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004735; 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=11tBcYNp7JUQv2I+0Dgvw09aRDYw58StLVdDAM5yKdA=; b=maR3509tsfPY7ZR6BvX4KJutNO13seDyTBqs28eB9QnbiVZHhXVuYHVLFm15iADb4pwb92 n/zkP6KAWFROQLvmY/IyFChJZIoq9acQdHa6h+H/OpL6s2+liLu5G3ANwKe3ILyUwIeTpW 6PT2r+CHMCekBEruc+zZTXlVZez5oN+6eVOsWqES5Lsh20l7L4jSqRSQfBk8Fk7KcabmYq B9D1Pg62YzMT+5+n79CWXkpxCEhe6h4GTW0Qovjona39zdqWetzWiTvm6XyBrd61/2+/b1 Gh9fcXFULVvOxsYL8ZY+1kTHQF41621ma4jAGIM+fGJZDRzZi3pvYsuwrpJqIQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004735; a=rsa-sha256; cv=none; b=v2/N1I/GnuKugCgYHNSyKQOz6HPLvhIfqhhUZ/mZpCvdDPgTFb/ZXgsvymUfdXdUm9V/fM +p3WWtgMDRoqadARYRJk1cpB2EvhVDXhJQdpIDGcOwecg2ATtvXVsIfvFDkd1NBFtLp6/9 D56a6lU6ANzt3DgFfmBpjQphinRk7J1/7GGE/0S3Hhnva46eNTS4nbB+bbBWFDxFQZtIYL 9TvZQo4MLT/zTJ56L8NhfKZiwB481B6TGoJG4BIC16Rqn2AbZ75k1w05sYp5cljKu9Z0cN treROVFIWy7SF+aYdJocFIvDDjeRuiPJNHy40Cd6YKTO2YPQY7GKlsn9PDQzMg== 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 4XScq32WQRzRT7; Tue, 15 Oct 2024 15:05:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5Zx6089660; Tue, 15 Oct 2024 15:05:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5Zuk089657; Tue, 15 Oct 2024 15:05:35 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:35 GMT Message-Id: <202410151505.49FF5Zuk089657@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 5dc4245028c0 - stable/14 - sys/user.h: report posix shm mappings List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5dc4245028c05fe37ae79f183ad42d2f0ae6aa0c Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5dc4245028c05fe37ae79f183ad42d2f0ae6aa0c commit 5dc4245028c05fe37ae79f183ad42d2f0ae6aa0c Author: Konstantin Belousov AuthorDate: 2024-10-07 01:49:51 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:17 +0000 sys/user.h: report posix shm mappings (cherry picked from commit a8c641bbcba7badad2d00206245cbfaf73a762b7) --- sys/kern/kern_proc.c | 5 +++++ sys/sys/user.h | 1 + 2 files changed, 6 insertions(+) diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index 8f5ffeea71d3..f89ffde8b5be 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -2722,6 +2722,11 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags) kve->kve_vn_fileid = key; kve->kve_vn_fsid_freebsd11 = seq; } + if ((lobj->flags & OBJ_POSIXSHM) != 0) { + kve->kve_flags |= KVME_FLAG_POSIXSHM; + shm_get_path(lobj, kve->kve_path, + sizeof(kve->kve_path)); + } if (vp != NULL) { vn_fullpath(vp, &fullpath, &freepath); kve->kve_vn_type = vntype_to_kinfo(vp->v_type); diff --git a/sys/sys/user.h b/sys/sys/user.h index 4ca80741ad5a..7ae0779278a4 100644 --- a/sys/sys/user.h +++ b/sys/sys/user.h @@ -520,6 +520,7 @@ struct kinfo_lockf { #define KVME_FLAG_GROWS_DOWN 0x00000020 #define KVME_FLAG_USER_WIRED 0x00000040 #define KVME_FLAG_SYSVSHM 0x00000080 +#define KVME_FLAG_POSIXSHM 0x00000100 #if defined(__amd64__) #define KINFO_OVMENTRY_SIZE 1168 From nobody Tue Oct 15 15:05:36 2024 X-Original-To: dev-commits-src-branches@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 4XScq504YWz5YYWc; Tue, 15 Oct 2024 15:05:37 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScq44Rwcz46Yp; Tue, 15 Oct 2024 15:05:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004736; 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=Z8Tai0L7piEueI/cy9P7grBJPBkr7JgXWHtL28NNs38=; b=CdoOVbYfXPsD6hN9d/eW67fVX1lOGGbjGequwObKZ1cI59KAhc5XCAzID0tpCQ0z59EtEs 7PS1MG6lB2Z6RPo3UOVdSQSoUEsomU/Qp/Fols4qVLe1lx2JU0vkg6NNzHkmWjkCf/3m/Y zrskHcyxfv4gEXZZVp0u4tmkd6KZz94VqzifqeDzgIIx6H5wGD2hm0M+IBw+FX9aU6Zm+P wSEqSdu3Qh8QybyWeWe9CzxfhoT2uxvLiZrT4dF8PZt7FdkzPpIwoYUl47vmTLmgBTt1OC mFwYa2V0K9nB6eiwrm+jGZWn9BD0aiUihZGQBUZvVebfFxzasK1QloPmw+M4Lg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004736; 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=Z8Tai0L7piEueI/cy9P7grBJPBkr7JgXWHtL28NNs38=; b=WM5Axbh6sYr+z7mc7f/94FHv5z0dU2Ws4j/SDiDnKT/QnINmvQpuY9kbVG64SoihOXTNNQ /HfEVTlMraxQK1POjaRbOlylruTaOaFx294+chT+RVm7lZOH2H9lQduwz36ZYFZngOX3RO fRFbICr6rYLdg/YTew4MILISEaqxQCLO/BGf0unFfbMS+qlpdUjuyrRhT6txTNh+AUMZ/1 wZZm4goP8I1obGsxufiR3geB4O4xLQOENV+qdFa31QCrN99REn40P77qTwIlEXCJc6W7FU ji6VwY+ZprJVLSfc7V5Rjm2PKAKvrvTAg3rOghSogJv85TICc+LTF15bG+duug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004736; a=rsa-sha256; cv=none; b=r+Ado88ps9JBHi7FgNvghCSy2xCKYG0mhJwM7HBM9r0EqxrIDBGOvi8u8bjfVZgDkCFYPY cOvQ/DC+lekwwF/Wt86xXweDw8qNYLtt1SUvTFY2lRC+HotV8TGKnJfHMl+TO03gHN6U9/ 7inwG82H8ObwMNWaeesxz6gulsa8L6qcfXMKi3XBeT5qzr2KOAomWA955As9AFMzmlsArP DuPe+FfufyR0eCGdEiKC6eCf+CFTmrqVgfBhtaKpx0HJz5gJsWDwR128O6WQpttkoxjeMd kgm/FK4CK0ep+9tKQhyUzcX4We6mU/QT8Hxci9WaI/rQ2CLTQ17EbcfNj4HCaA== 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 4XScq43gYPzRhm; Tue, 15 Oct 2024 15:05:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5aS6089716; Tue, 15 Oct 2024 15:05:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5aJH089713; Tue, 15 Oct 2024 15:05:36 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:36 GMT Message-Id: <202410151505.49FF5aJH089713@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: dd7b4456983b - stable/14 - sysctl vm.objects: report objects backing posix shm segments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: dd7b4456983be8a7630aa23b0637b0954579abf0 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=dd7b4456983be8a7630aa23b0637b0954579abf0 commit dd7b4456983be8a7630aa23b0637b0954579abf0 Author: Konstantin Belousov AuthorDate: 2024-10-07 01:55:16 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:17 +0000 sysctl vm.objects: report objects backing posix shm segments (cherry picked from commit b0b18b57a55b429cf3f625883da5dcb541b14960) --- sys/sys/user.h | 1 + sys/vm/vm_object.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/sys/sys/user.h b/sys/sys/user.h index 7ae0779278a4..945a51f6c3de 100644 --- a/sys/sys/user.h +++ b/sys/sys/user.h @@ -584,6 +584,7 @@ struct kinfo_vmentry { #define kve_obj kve_type_spec._kve_obj #define KVMO_FLAG_SYSVSHM 0x0001 +#define KVMO_FLAG_POSIXSHM 0x0002 /* * The "vm.objects" sysctl provides a list of all VM objects in the system diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 1dbebf139683..d0f367815469 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -2612,6 +2612,11 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) kvo->kvo_vn_fileid = key; kvo->kvo_vn_fsid_freebsd11 = seq; } + if ((obj->flags & OBJ_POSIXSHM) != 0) { + kvo->kvo_flags |= KVMO_FLAG_POSIXSHM; + shm_get_path(obj, kvo->kvo_path, + sizeof(kvo->kvo_path)); + } if (vp != NULL) { vn_fullpath(vp, &fullpath, &freepath); vn_lock(vp, LK_SHARED | LK_RETRY); From nobody Tue Oct 15 15:05:37 2024 X-Original-To: dev-commits-src-branches@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 4XScq565bGz5YYfD; Tue, 15 Oct 2024 15:05:37 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScq54wWmz46Td; Tue, 15 Oct 2024 15:05:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004737; 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=cCWPa6gFsJzIEcZbrRclj7xPADAok0qcijcycCbHu6Y=; b=oIVMcJaUrFnCWZAp6mcpzE/lD+nnOWMjkzv1oEkIDROm2aT01HT5zG3ynrymiy5u7S4b1Z GOINwqY+HwuQkr4CXwVparlxRzxich3iPUf4yAo5/Wjfpdd9zu8RsEdU2K3AZkwG6Yow9+ ompzPzGyFaNhdZ1G11c6fZJVDRgLDsMTIqwjpLfQ8p53nAqsw+aEowMslSbjNDxu6my5i5 mJJ7+ZmG73AaryULtWiAV+LP1IimLfVRVf4RT3comao6QLblJXC9wOLl3cwlDArXz9H8t2 It+xP8qCwy2CXm5uoJG87Q7oO415Igvy3/WhI02sQhut81bDCnM0megQwmpWxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004737; 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=cCWPa6gFsJzIEcZbrRclj7xPADAok0qcijcycCbHu6Y=; b=QJRSZfkOaGLx8Klv9wL+BNI9HL36Ewjh3C8odvgRojcFgGvMmaEO63QwBk96vUQPweIDL0 sYmdcikhMe9i1bY4s+Gj0lGmlnNxKfzFrvIUajoXXBTGnhPFhCjlSPTfth84SMpnPiY9sB rOvOcCECwprqrg5xwvZ/F01DENTw3t7n0hV9Xr6QZ7pmVKXV+mP74+SbKXnNe8kmwpF7jy TLmArMv363bo0upmSScvHKJZudJ/rty57F9KM+3tE9BGmfd5Uho0WXMYoLrvJTlVPGP0+k rPtqyGf0mnjrWGv6uxyjCkpuNbptx6Y6BuU1MXFvbvAI95M4kVTHiWi772UpiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004737; a=rsa-sha256; cv=none; b=hnWly/nXMw9f30xEbZ5RQ9bybTDCHmcZujh/AmR3nLDtaSBuy6/pXErYZrwiCMgPF9OiZY 10L49ds0jxeehdpGk1dxs6CKW6MgV8Bh59fyPQqokrVKTYH3AYuoCeQg/LjUOTKx7kdmvB FBIiMz+mka+WnNVeEAoy6O+v9Ds3g9naSrWqEkjFl/KskCQjKWfHSaNUnuUZZRmf4wXoDo 81LxhQDVo70stSfdgM14ngQwlILFiGY5NKImaATSor5ZpDO/Kt2AKsY6ihj1rTpSmbskja GardkbVH0q6gmylN97mXfbfbnCzPyAe+45GQ5Jt6bgieFCl9tdenAxelRk9B0w== 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 4XScq54WBDzRXP; Tue, 15 Oct 2024 15:05:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5bww089764; Tue, 15 Oct 2024 15:05:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5b1f089761; Tue, 15 Oct 2024 15:05:37 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:37 GMT Message-Id: <202410151505.49FF5b1f089761@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a6188cd25039 - stable/14 - procstat vm: report posix shm segment mapping List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a6188cd25039b77571ad3212a1fc0c914d55f48a Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a6188cd25039b77571ad3212a1fc0c914d55f48a commit a6188cd25039b77571ad3212a1fc0c914d55f48a Author: Konstantin Belousov AuthorDate: 2024-10-07 01:59:53 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:17 +0000 procstat vm: report posix shm segment mapping (cherry picked from commit a1258191d5e21736e25010c85eb01b5f995cc1d2) --- usr.bin/procstat/procstat_vm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/usr.bin/procstat/procstat_vm.c b/usr.bin/procstat/procstat_vm.c index 4f69aa3c3244..4fc3a1b5f556 100644 --- a/usr.bin/procstat/procstat_vm.c +++ b/usr.bin/procstat/procstat_vm.c @@ -171,6 +171,8 @@ procstat_vm(struct procstat *procstat, struct kinfo_proc *kipp) xo_emit(" {:sysvipc:/sysvshm(%ju:%u)/%ju:%u}", (uintmax_t)kve->kve_vn_fileid, kve->kve_vn_fsid_freebsd11); + if ((kve->kve_flags & KVME_FLAG_POSIXSHM) != 0) + xo_emit(" {:posixshm:/posixshm@/posixshm}"); xo_emit("{:kve_path/%-s/%s}\n", kve->kve_path); xo_close_instance("vm"); } From nobody Tue Oct 15 15:05:38 2024 X-Original-To: dev-commits-src-branches@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 4XScq715gsz5YYWh; Tue, 15 Oct 2024 15:05:39 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScq65xy7z46cm; Tue, 15 Oct 2024 15:05:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004738; 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=CnpUaj7ME088AXl0BlvrmCPhpaqCWa06zK8/1ItvSEA=; b=jntCwddyWSa9+sLoGTzt0xQzBiLgl19GGQsgviKSH7cAlZLgOaZOYnPhnbUqf5yE0y0Xre 4cebzDZ2emlVQrAK3w+6fpG0ZWyiLMV5uZK9n8UQru/7zgAgRFH9EjrdlLJ9y6XeQEpKQc HBdHY4ZP/1VJbIxH058jGtlBh2b9AJF0k0gHoDaXWw2adHl/ytgvYu5Y54pAgvQqF9xqsr 4FX9v7XHDcWnY1NXwFmXxBPU5S+WqeWZEuK9P1LcLrSY3iNKWz9pR45bO7tnprSJK3U7Xn EgZ8aq8rK+vNWUrIl/cIe07zc4qhb0B+rIRKGV8dj0Cmr8qKQ32UgZ/Z4znYJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004738; 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=CnpUaj7ME088AXl0BlvrmCPhpaqCWa06zK8/1ItvSEA=; b=F1ZrCo2Ym3uKDgGKMORV2hXOyH9V2DnIWM43Hc6isOikiI7hBa7EjQXdWELMhTwDWwawFi Gb48g7zJ3OFirm5UiBacD+JdJW5mXFNHG6rofw8LWQ1v8bi769f82ptwWTLGvG7HlLq86D Ge8+d/PFRUfv4hCJfU8oo9pCw46HNnlW+6UUbzmQz11kNsj7k70RMEk4Zagyhr8vPiBFnd WBxAY06f6MPg+qV5nt/EWwG0a6+x2jX0TYB4xGIalHp2788Ymq6qSu70e4MJHuinTq4vD8 w0WQ6pYTe0YXRY0/cEqUXbfWOjwKY1st2kU616RJDBgv8NRmfunH9pvyijiUrQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004738; a=rsa-sha256; cv=none; b=t+eiKtwrruDkrdvvEM0YQSo74JX5nVO2jYRg5sFLSGLs0oOoCT1gyVry6hkQO4zU1l3VCq yGgCC1wNNR2enu/2QPgO37+Rb81UHtYopdSR1cgAgfNhHyRVNiysKkfVuZC5G/iHkaWbeD UTN943fGSWDnpnHiQL5ZO4sx1/bILZW8sNdoht4b5svPKnYghSbtNTk1WuYF2J96e1Umek DyJqh9N+muuiqtIRmgFqFWMdicDyl2SZu2Genl5j/xfyp6hvMATluUT/yKz5ZN9mXuoT0f 3KdW0AlHpwHCq0mLY/OkGgkkWcuhrN2ymA/lX7/geIkOBNv4jPBgWV2mCmg7bA== 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 4XScq65Z2qzRcG; Tue, 15 Oct 2024 15:05:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5c6H089815; Tue, 15 Oct 2024 15:05:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5cAv089812; Tue, 15 Oct 2024 15:05:38 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:38 GMT Message-Id: <202410151505.49FF5cAv089812@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a8ff05830f63 - stable/14 - vmstat -o: report objects backing posix shm segments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a8ff05830f63328a22fa9eccd7a6d9b525b364b8 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a8ff05830f63328a22fa9eccd7a6d9b525b364b8 commit a8ff05830f63328a22fa9eccd7a6d9b525b364b8 Author: Konstantin Belousov AuthorDate: 2024-10-07 02:01:48 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:17 +0000 vmstat -o: report objects backing posix shm segments (cherry picked from commit ba40b2b89962b799ade3b92cdd710e36cccc8810) --- usr.bin/vmstat/vmstat.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/usr.bin/vmstat/vmstat.c b/usr.bin/vmstat/vmstat.c index 203c34451874..ecffdc894e2e 100644 --- a/usr.bin/vmstat/vmstat.c +++ b/usr.bin/vmstat/vmstat.c @@ -1555,6 +1555,8 @@ display_object(struct kinfo_vmobject *kvo) if ((kvo->kvo_flags & KVMO_FLAG_SYSVSHM) != 0) xo_emit("{:sysvshm/sysvshm(%ju:%u)} ", (uintmax_t)kvo->kvo_vn_fileid, kvo->kvo_vn_fsid_freebsd11); + if ((kvo->kvo_flags & KVMO_FLAG_POSIXSHM) != 0) + xo_emit("{:posixshm/posixshm@/posixshm}"); xo_emit("{:path/%-s}\n", kvo->kvo_path); xo_close_instance("object"); } From nobody Tue Oct 15 15:05:39 2024 X-Original-To: dev-commits-src-branches@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 4XScq82Ny3z5YYbv; Tue, 15 Oct 2024 15:05:40 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScq771gPz46XX; Tue, 15 Oct 2024 15:05:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004740; 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=fLnBD65C4jnHoNm1TbAaLM2mH/MhEmq+h/UESa+Ps9o=; b=g7A8pDDiqniDu7eakZDWYRQnUjJ9ikzeWBN0ZlUrADvIjVz0rso2Yim78fo2JuFnGx8wqL bhyoSYMJEJvT+H0QvMen0pvahUYFlHTmiRGVXwB/El680D8mHakxFn9EyeWxn4kVsGFGbQ PMdRn7m/t+ARJAeDyYkJknPR/u5Tq5c7V3inH67MptBAY6VbxkvBkFE29nNu7PXLIy5ahq Fze9r/qQPUsNuV9I/YSH9x28b6/4P+9ueFe8A77aanD35/7AiCt7NSdwwnLXeDTgJTCZS4 XK/INB3cLHtBgh+AL9n3uSXMhVpVt+htWo3KKrM17cZRpWy0hS8ykrXxZMj63g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004740; 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=fLnBD65C4jnHoNm1TbAaLM2mH/MhEmq+h/UESa+Ps9o=; b=C1JuBZWfAolQUtPBzmQLwsZtXv5I6Z3ziks94E0URhO9qF4t/LKXWODtesTxAntvE12Z4/ YLfRswsIorY2OBNhCAWh+a5j6AsJvwcApIuwU93bUvObRs0wxUNGgCkqGOmuR6CZ8CqEXe pFx1201rNq3xpXT7gT+uCBnQwBdB+21Z/3bM7NgIIAwdSFHhNSTvwkO/twbcRx0O5ZWhSk N/MjJV6JmzKQx/d6ZA+LU3YPDiJCzi7vj5V/A+wFpHRnlg8J+8LXhhFVC6MpGQSWTDyVL8 MtJAOzM4lKFME+q0wgCgIhnPExqtaknDLTahKzaFD75cpgwhTdiUwacrKfa6jw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004740; a=rsa-sha256; cv=none; b=KIydkRXigXhno0jXaQNtfIVKC7RBwuPtpDG1xUrU7mbTlHqGmmz/StoX5L4D8CjGC3VeJF 8Wwc+R0cSsgc6vuYAYLII9G1HicoTSaWG1dIx6l9yHP075GaU6Xhu5RIcxFtNL4GPKf0zZ sV8b03WqTFTBL2/h+4Ap8NKgXTJoGHcF6G/eaXUemKQjHgouNH31AuAYON+6ngCi5LROfX gzTwbbSjMRKgMosfznnLa/XnEm/Lt/RrwaU3gX/ITwXBhrO+lQRXz9e3JwjD3IFyO6hPJk sMXI7wLNJInQFYwiC0czXY427hhaeOVxA2/6O7RKdqalQHGh/dIrhIJWRdJWtQ== 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 4XScq76b0jzR8b; Tue, 15 Oct 2024 15:05:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5du0089848; Tue, 15 Oct 2024 15:05:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5d4l089845; Tue, 15 Oct 2024 15:05:39 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:39 GMT Message-Id: <202410151505.49FF5d4l089845@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 1e2317b3bf1b - stable/14 - shm_alloc(): cleanup List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1e2317b3bf1b33dd820d19cb2c1740818b176916 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=1e2317b3bf1b33dd820d19cb2c1740818b176916 commit 1e2317b3bf1b33dd820d19cb2c1740818b176916 Author: Konstantin Belousov AuthorDate: 2024-10-08 17:43:38 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 14:50:17 +0000 shm_alloc(): cleanup (cherry picked from commit e578fd853a251c04d1eeb55c3aa499f8d0cb7480) --- sys/kern/uipc_shm.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c index 8334d7eb3264..8a533428790a 100644 --- a/sys/kern/uipc_shm.c +++ b/sys/kern/uipc_shm.c @@ -944,24 +944,20 @@ shm_alloc(struct ucred *ucred, mode_t mode, bool largepage) shmfd->shm_gid = ucred->cr_gid; shmfd->shm_mode = mode; if (largepage) { - obj = shmfd->shm_object = phys_pager_allocate(NULL, - &shm_largepage_phys_ops, NULL, shmfd->shm_size, - VM_PROT_DEFAULT, 0, ucred); - VM_OBJECT_WLOCK(shmfd->shm_object); + obj = phys_pager_allocate(NULL, &shm_largepage_phys_ops, + NULL, shmfd->shm_size, VM_PROT_DEFAULT, 0, ucred); obj->un_pager.phys.phys_priv = shmfd; - vm_object_set_flag(obj, OBJ_POSIXSHM); - VM_OBJECT_WUNLOCK(shmfd->shm_object); shmfd->shm_lp_alloc_policy = SHM_LARGEPAGE_ALLOC_DEFAULT; } else { obj = vm_pager_allocate(shmfd_pager_type, NULL, shmfd->shm_size, VM_PROT_DEFAULT, 0, ucred); - VM_OBJECT_WLOCK(obj); obj->un_pager.swp.swp_priv = shmfd; - vm_object_set_flag(obj, OBJ_POSIXSHM); - VM_OBJECT_WUNLOCK(obj); - shmfd->shm_object = obj; } - KASSERT(shmfd->shm_object != NULL, ("shm_create: vm_pager_allocate")); + KASSERT(obj != NULL, ("shm_create: vm_pager_allocate")); + VM_OBJECT_WLOCK(obj); + vm_object_set_flag(obj, OBJ_POSIXSHM); + VM_OBJECT_WUNLOCK(obj); + shmfd->shm_object = obj; vfs_timestamp(&shmfd->shm_birthtime); shmfd->shm_atime = shmfd->shm_mtime = shmfd->shm_ctime = shmfd->shm_birthtime; From nobody Tue Oct 15 15:05:40 2024 X-Original-To: dev-commits-src-branches@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 4XScq92McVz5YYc1; Tue, 15 Oct 2024 15:05:41 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScq90sJMz46Xg; Tue, 15 Oct 2024 15:05:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004741; 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=Q1sGuckltPoOq4U1AgAr3NR0d7SJ1cHP6yGWVhavNbE=; b=c0m5EvN5m0CwHsZr2pKDnqAwNwgZ8BenTREv1utskD0wyLAEdAcX8FV9jgxlp+rKDH4+wV OdCuPDFZwYWEpl5uk10oHJqlNNYrB1/MxeY7AuKRMnPglmY/HVVQe+pgX3b/z1fyxhgNpl +gLN5k6tIgfFVKUzs7rqT+ePEsMKEJJ8qynn50fHCCMftQuMmSe8q5VYVpPIuxrckO6KoC 86/gb5Tt9Nh+AcnKKU2vMMM3NAtoIrHHSbphXzkg3encCtEFkmDNh7TtFvpzM6HzoXxOUj fLrsm88gKA3K+yymkjdsv59h9u9t9cpawl1OZ49jf3Pkg25Xj0E/fSXXr3STZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004741; 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=Q1sGuckltPoOq4U1AgAr3NR0d7SJ1cHP6yGWVhavNbE=; b=VOsladVc3qTezEJqT0hGwI5wn6SXGYYtSqiIzmO06X2Z6yppWhR/7X5FdZgyMablPTq9Dd /B3i1K/9y3+uD8j9VywSdwxLMkogE1xce2qsgkqb0VznM5QIQEkJ9b0W96VoaogntJYGdJ KKGKzaOpMemCvuRsb6JgBmKtcB/SgbWEUOjQF+7Hxs0cJMPe6aulvu8mlyPclfOQNdIN34 Vf1FZOzJc+TGFp0BEf0y47/wc6BakHXHRPNddKtCa3SZgnGAK6ysgd4XEU3yJ2+qe8JWr+ 4tuGQICfb8/WxqB/9rg5cV5CnJqh8O2kgrXhMHCDOVTzPn8bNqXEERdedJURHQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004741; a=rsa-sha256; cv=none; b=Pn7O2BZMRU2HNhh5ocOXqpndFWngTVDtQybE0VnGLCrsjIENACuINWCWFjrnEFn32UJf7H VdOYHBG8wKfFKdNTIuqt7Y8ezAKgQv6u5lVRzpwDcTI0ZpQ+XDzuAIBvxnsNOhl/Tw0Rmq D0RFn9UeJ9ZI++GsmjmcdEoHGLQ3XffhNdUo1i/aMX52tYzckLaAadPL6BroZdum4bpuJ6 TKKZc/qp/JsWc7onbX/jqaJtfvzeUB6rG8s0dnEHaJKrQsKfEI7mtA//ywS7BJDs4Q+tNm sWjSTZILOYpe5tdyullPwQy1mn4uqOXL8pGOisTnALtAsUZsVQMFDMtfLbrOyA== 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 4XScq90DmpzRcH; Tue, 15 Oct 2024 15:05:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5eeA089900; Tue, 15 Oct 2024 15:05:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5eWf089897; Tue, 15 Oct 2024 15:05:40 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:40 GMT Message-Id: <202410151505.49FF5eWf089897@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: cdc72c496065 - stable/14 - kinfo_vmentry: report cdev name for device mappings List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cdc72c4960656d581fd566425de7bfa50b3ef654 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=cdc72c4960656d581fd566425de7bfa50b3ef654 commit cdc72c4960656d581fd566425de7bfa50b3ef654 Author: Konstantin Belousov AuthorDate: 2024-10-10 09:31:37 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 15:03:59 +0000 kinfo_vmentry: report cdev name for device mappings (cherry picked from commit ac9b565b1aa1adc359a5b0a0d83d0aea63643d62) --- sys/kern/kern_proc.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index f89ffde8b5be..b8bc1a7e5dfe 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -2615,9 +2616,11 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags) struct ucred *cred; struct vnode *vp; struct vmspace *vm; + struct cdev *cdev; + struct cdevsw *csw; vm_offset_t addr; unsigned int last_timestamp; - int error; + int error, ref; key_t key; unsigned short seq; bool guard, super; @@ -2715,6 +2718,19 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags) kve->kve_ref_count = obj->ref_count; kve->kve_shadow_count = obj->shadow_count; + if (obj->type == OBJT_DEVICE || + obj->type == OBJT_MGTDEVICE) { + cdev = obj->un_pager.devp.dev; + if (cdev != NULL) { + csw = dev_refthread(cdev, &ref); + if (csw != NULL) { + strlcpy(kve->kve_path, + cdev->si_name, sizeof( + kve->kve_path)); + dev_relthread(cdev, ref); + } + } + } VM_OBJECT_RUNLOCK(obj); if ((lobj->flags & OBJ_SYSVSHM) != 0) { kve->kve_flags |= KVME_FLAG_SYSVSHM; From nobody Tue Oct 15 15:05:42 2024 X-Original-To: dev-commits-src-branches@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 4XScqB3m47z5YYSh; Tue, 15 Oct 2024 15:05:42 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScqB1cM4z46jb; Tue, 15 Oct 2024 15:05:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004742; 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=ZGVlnukS3u8MznP0roWIxsRuYIr6EY1veT5J/Tr1kos=; b=LOuHl7Q6pu+uKFqNR5LICDHA2rEIHdN5zQuw7ZUEwaLupRyfPZ388CyVqjyTMC2lpwgqTE e8++fr/cOzLYJw0HDSF7O7WPSvVlDYovkhp5THZ3aR8m91BB2zhhjp5wCX59/UsQJpxzjM WqgrrWNTql93To4uAoez3qyhEdjRmSeb3LXEJX/aGGa9qz5y74J/BdiNpK2GThu1cQT0ly KCkPqkcPqpuI+zxVARNObrDtBtfzBfEC6ArfWHDZHOuJh7TKx0kLEubrTkPN+uoq9EbG+P dBhLNZ0uAh0Cpw6QeWu0pIvl0qGqXtzrAgoRG3zHVfZbg+lDzoen/9+cwepQvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004742; 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=ZGVlnukS3u8MznP0roWIxsRuYIr6EY1veT5J/Tr1kos=; b=f/LuEmgX66qAewTdlJFF7L/dCxp1Waf8Fwt8nsg23WHLBrRBX7VP7nAiifbtNVUcQXeQxl 4ing1PEdtucFSgfClSIVFJzdVDPBPFssyuz5pBe+evwpuhG3lsz6y1wOkvg0IXclufrhT9 n7rBrYJaHpg3YQyS3F5z3CaL95QjwXVVxwlXpEEcFKNFofTT5kf+rjSTMu/Jyzc+XWb3aS deHkTy40XFph1N7Cu0qLKNJy66bkNW3kamHfutdW0if+qQ5mNbCRPa9ka70xG9Ye7hGn4r cRz2nOCAh6G5ApV26GiyYRAP+Nc81cdAXaD2Wt8Fdyq+SOcXx12z75WoVMFArw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004742; a=rsa-sha256; cv=none; b=UuVEEn6pNLuGo1aqjUhAJx2EYMZQlorWYO0Fs2yt5R3c1JlSxJogFKmVTvD406LOQ//LuM z6rp5XI95+O4iqXmeUqHLOxWvdiJTQpYGiWnxjFPurpCIg9j6RtColBPk1TvmVJ0IfKnQD Z9BMLOGikGF3SJRR5G2Aj+Y9r/lF+RWxFsD3AUcAX8Zbq/A8e2kLiTAI7iGHtBtQrCBxre jrNedsHUu9mKS2mLXCieuUWUjwkl7ysC2R6Q6hRvIMDnaTvNgTIu98FTUBunPfnRcAcglk reb892axWx/EDh4QGjNg2sl8O0kGlbUUWSVLuGWSE4RBaUOFiyF+5IGbSTLe8w== 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 4XScqB1DmhzRT8; Tue, 15 Oct 2024 15:05:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5gPQ089953; Tue, 15 Oct 2024 15:05:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5gFS089950; Tue, 15 Oct 2024 15:05:42 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:42 GMT Message-Id: <202410151505.49FF5gFS089950@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: dfe83ae4da34 - stable/14 - sysctl vm.vm_objects: report cdev name for device-backed objects List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: dfe83ae4da34798a7bd0e6c7607b548ead4a1869 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=dfe83ae4da34798a7bd0e6c7607b548ead4a1869 commit dfe83ae4da34798a7bd0e6c7607b548ead4a1869 Author: Konstantin Belousov AuthorDate: 2024-10-10 09:37:19 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 15:03:59 +0000 sysctl vm.vm_objects: report cdev name for device-backed objects (cherry picked from commit d9daa28c364d0b1189ab616d8d697b4c9f748038) --- sys/vm/vm_object.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index d0f367815469..d2ac8f696634 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -68,6 +68,7 @@ #include #include +#include #include #include #include @@ -2517,8 +2518,10 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) struct vattr va; vm_object_t obj; vm_page_t m; + struct cdev *cdev; + struct cdevsw *csw; u_long sp; - int count, error; + int count, error, ref; key_t key; unsigned short seq; bool want_path; @@ -2605,6 +2608,17 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) sp = swap_pager_swapped_pages(obj); kvo->kvo_swapped = sp > UINT32_MAX ? UINT32_MAX : sp; } + if (obj->type == OBJT_DEVICE || obj->type == OBJT_MGTDEVICE) { + cdev = obj->un_pager.devp.dev; + if (cdev != NULL) { + csw = dev_refthread(cdev, &ref); + if (csw != NULL) { + strlcpy(kvo->kvo_path, cdev->si_name, + sizeof(kvo->kvo_path)); + dev_relthread(cdev, ref); + } + } + } VM_OBJECT_RUNLOCK(obj); if ((obj->flags & OBJ_SYSVSHM) != 0) { kvo->kvo_flags |= KVMO_FLAG_SYSVSHM; From nobody Tue Oct 15 15:05:43 2024 X-Original-To: dev-commits-src-branches@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 4XScqC39yfz5YYSj; Tue, 15 Oct 2024 15:05:43 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScqC2Vvbz46js; Tue, 15 Oct 2024 15:05:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004743; 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=usUgUxtFM8TdrMxWkYs1XtDUXNL7zDh2DNm18V89D4w=; b=gaINb0LfZ+lAEc28auPwkBTgJtgUbUb9mGOK2RmM+mqZjepFz47PGAApS47hsub+GiXo3/ l6i/h9zfeP9CX6XIvaIsuymnvVKAXMOfftrOlGbu4phYpyi4tSPBNCTAIWFfYluuYC7o6m HsGjjR1/RdxBixJWrYxE12S956D3Yyv3xxY8jhZT8iQQoXcYLWd3pMiePoFer0EWd2+Av2 I+9p5FqSojm02TCTNgAkW+2DmlTZtedTD/7I//kHNWrcNi2lb8S/e761/hFoKYaSpGOjyd L2a2Rl5vMTJxgoZCA7/xZ15YD4MHCZ0Sz/z7yX0rkdjfaGqb0oi60bOP7mN9Qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004743; 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=usUgUxtFM8TdrMxWkYs1XtDUXNL7zDh2DNm18V89D4w=; b=Zv1y4bAMiC1Osoyt25mRH3KQ6Zg5OdsATg1NDnct67Dbms7pCYOMzb61tcnwyPAPMH6n06 qdh2d8P7kaCw5IPQ9X8kvKvsbHDHrkifjACH8x4+8tJK1Es8qPrmzn2cbrZ/auKaUqqHle 67NwQsoEmmUcU7yuswOpuAv5+7L13v6jidXUmuUyWaNOt9NbuOKdC4xcwFqYbK9lBLtSNk W6RvJ71OC1i9jPylQSZ9l7pMTpT4x9xojFRW0wSBtFP+HGW2efUv7/71SIZTAymOPr+3CD xk3E1RTCLc4nIpNyavwJpHgeZdtI9LV25EQoYP7MPYblIZlHeTi9II2s5i5W1Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004743; a=rsa-sha256; cv=none; b=ehWb/JcDTk6Wb468TbSY97EcOl93sv/FkOWVn7COQiVFo2qoPtyvoAUfCEgoneIXmodOcf WOP8E962nvmjVo6HmvtibXp6gVAhDzcy8fzd1lk89k3R09TnKJXIu0LbP//yGz0E490NEN NXAzSfOCthHNRFvm0pygxKiPlGA0wC6UDZ//NfaHVTAZVqDfuMHVAWp/zbq/noSxOwTooI pavHLOuyXyuQdR8DZNgdQo4H6mydgwehgaIDq8hk9on4kPiuqI4dj77X6dMaVJGp2bP2AZ ZRfY56Mzy8gc1RNjj/581++L86xTIyp+g0LZYt4+0ilIF7h6RtbI8L/uHlNY6g== 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 4XScqC27KWzR8c; Tue, 15 Oct 2024 15:05:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF5hRk090001; Tue, 15 Oct 2024 15:05:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF5hsk089998; Tue, 15 Oct 2024 15:05:43 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:05:43 GMT Message-Id: <202410151505.49FF5hsk089998@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 7b8de6a84b30 - stable/14 - vnode.h: add comment line about VIRF_ flags List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7b8de6a84b309a393ab347679f167ff06800175e Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=7b8de6a84b309a393ab347679f167ff06800175e commit 7b8de6a84b309a393ab347679f167ff06800175e Author: Konstantin Belousov AuthorDate: 2024-09-20 04:53:02 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 15:03:59 +0000 vnode.h: add comment line about VIRF_ flags (cherry picked from commit f50a0944d034519c300be1cd1c9518d259a17337) --- sys/sys/vnode.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index 2667b77d7c52..0cd48ea44747 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -233,6 +233,7 @@ _Static_assert(sizeof(struct vnode) <= 448, "vnode size crosses 448 bytes"); /* * Vnode flags. * VI flags are protected by interlock and live in v_iflag + * VIRF flags are protected by interlock and live in v_irflag * VV flags are protected by the vnode lock and live in v_vflag * * VIRF_DOOMED is doubly protected by the interlock and vnode lock. Both From nobody Tue Oct 15 15:07:09 2024 X-Original-To: dev-commits-src-branches@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 4XScrs6p5dz5YYhr; Tue, 15 Oct 2024 15:07:09 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XScrs6JJJz4Dwf; Tue, 15 Oct 2024 15:07:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004829; 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=SKDzS7Kbi2AAJx+V8l2v8+1VnMleOsKSbM+bgkfGrQs=; b=NC3Q6rxVrBWcuXujAQlEPzPujnR+XyOpHiENeh0aLmk8iBeRuxGht0YBAqQDs8AqhmmaJo s74qtfOWYD+SKmkzZ9nS5BSMVHM9tKJi0s8DYJNEDbdIayzJGEu15Xtx4Q/yQkssO4aqMX nVG+BYjK6HgLA8prV2FQBQ9kxX1IUUz+tba1wU9g0H2ScEDuiVclAtr8dq0vHMIWsr4FuN Xf6RFlObHnQp4gi3DTMCRsN6VYN9vN5JRbV6P8zpVdX6kzBzjCMhRcq1638YWvZNMOKISY NIuREI6rhF7cifLIPmD7IUOxKLIo7ZJHphvAHjhmO51hmw2Dezk3RWn/Ml7t7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729004829; 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=SKDzS7Kbi2AAJx+V8l2v8+1VnMleOsKSbM+bgkfGrQs=; b=JRS8hxnEHdITWWYk8+zYWtO1JE9T7fPmqNa5265mi8ovQBpr8yl2wm2W9rILfgHIntD42u h6WR/RTRJbUyCQIjFlSf6blIy8rmLdxqyAiAtqB/3hDKcAAIca2MIBr3+OcsTwYat0bIPq g/tPTRP7QZQ/I2pI1woTPWYBTdmwRdTZ4HZwXDM/L19oECTmI8p+7Zi5d88Gd4laJoP56S /ijWz4ZPWbDM6Pv3Ptx1SxK0HqC+JsN6GDiXuKj2l/8qzvxxRCipX5ouTrz47R0mBQdBDF tjcgwGX1BvATDtmrSKzj4TLeLE//Vnu9RfCZiv4cV+z65tzytWe20uVbl0yv0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729004829; a=rsa-sha256; cv=none; b=ozxWKGIMrdQUjulgSJA5+U9xJIKsbp+Scsgwyy3nnh4ie9OOLKTw1WTXG1QK2fPUVWH+cm Qlo2x7I422yeaf821IhI4c2+or9OJXmm5om+BY38GwYOAn/o426Svpzb0RCPVyg4+qGAGo 7ykfiHLMtIWKl1qUOoiWrqeWvbhEHDv2QtAKb19J00DJLCu0XsGmFumspfjylaf1urnmFI 4S/FPGuD3eNKeQKGrSucr8Pj14abGK8Brljyp/v2SJa0sgn9mMg2Y+aUVB5vyXZVH5ex+p QZjAZY8Q/E0hnKJrp6GaIwWtCY6K1v87ydi/JyLCBplpkLRkMlWXbETJ1QWgGQ== 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 4XScrs5jJGzRhn; Tue, 15 Oct 2024 15:07:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49FF79KK090441; Tue, 15 Oct 2024 15:07:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49FF790k090438; Tue, 15 Oct 2024 15:07:09 GMT (envelope-from git) Date: Tue, 15 Oct 2024 15:07:09 GMT Message-Id: <202410151507.49FF790k090438@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: b90d68c9b28b - stable/14 - jemalloc: set LG_VADDR to 64 on amd64 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b90d68c9b28b0a458bdf4a963397817974ed0f90 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=b90d68c9b28b0a458bdf4a963397817974ed0f90 commit b90d68c9b28b0a458bdf4a963397817974ed0f90 Author: Konstantin Belousov AuthorDate: 2024-09-16 21:09:03 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-15 15:06:44 +0000 jemalloc: set LG_VADDR to 64 on amd64 (cherry picked from commit eade2001aa9d91440886de8359a4dec9edcde2a9) --- contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h | 4 ++++ lib/libc/stdlib/malloc/jemalloc/Makefile.inc | 3 +++ share/mk/src.opts.mk | 1 + tools/build/options/WITHOUT_JEMALLOC_LG_VADDR_WIDE | 5 +++++ 4 files changed, 13 insertions(+) diff --git a/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h b/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h index ea8e8d42b14e..493300157a70 100644 --- a/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h +++ b/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h @@ -39,7 +39,11 @@ # define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec"))) #endif #ifdef __amd64__ +#ifdef _USE_LG_VADDR_WIDE +# define LG_VADDR 64 +#else # define LG_VADDR 48 +#endif # define LG_SIZEOF_PTR 3 # define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec"))) #endif diff --git a/lib/libc/stdlib/malloc/jemalloc/Makefile.inc b/lib/libc/stdlib/malloc/jemalloc/Makefile.inc index 1ba7725fe8a8..d916d69f471f 100644 --- a/lib/libc/stdlib/malloc/jemalloc/Makefile.inc +++ b/lib/libc/stdlib/malloc/jemalloc/Makefile.inc @@ -5,6 +5,9 @@ JEMALLOCSRCS:= jemalloc.c arena.c background_thread.c base.c bin.c bitmap.c \ test_hooks.c ticker.c tsd.c witness.c CFLAGS+=-I${SRCTOP}/contrib/jemalloc/include +.if ${MK_JEMALLOC_LG_VADDR_WIDE} != no +CFLAGS+=-D_USE_LG_VADDR_WIDE +.endif .for src in ${JEMALLOCSRCS} MISRCS+=jemalloc_${src} diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 600daa9ef61b..774b6fffd3df 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -118,6 +118,7 @@ __DEFAULT_YES_OPTIONS = \ IPFW \ ISCSI \ JAIL \ + JEMALLOC_LG_VADDR_WIDE \ KDUMP \ KVM \ LDNS \ diff --git a/tools/build/options/WITHOUT_JEMALLOC_LG_VADDR_WIDE b/tools/build/options/WITHOUT_JEMALLOC_LG_VADDR_WIDE new file mode 100644 index 000000000000..9efc4022e9cf --- /dev/null +++ b/tools/build/options/WITHOUT_JEMALLOC_LG_VADDR_WIDE @@ -0,0 +1,5 @@ +Disallow programs to use more than 48 address bits on amd64. +Incompatible with LA57 mode. +Enabling this option might result in a slight reduction in memory +consumption for jemalloc metadata, but also requires disabling LA57 +(if hardware supports it). From nobody Wed Oct 16 04:16:40 2024 X-Original-To: dev-commits-src-branches@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 4XSyMr3gXlz5ZRvy; Wed, 16 Oct 2024 04:16:40 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSyMr37ptz4RlS; Wed, 16 Oct 2024 04:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729052200; 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=sIv3la/M3cBfk4sdLWi0tsUctOX0KnP/zzvu9ZaeP20=; b=JdNo0x+Hj03jGeUoibHuy22r4C7UdB1NHh2BjqDuxbWJl9CS5ziWrvUmxVUNA0CkxDhKJT 4KFMSYUewaWaAWt68hVI/+5EENjwHTdzRpRC4/3856ORcuUI5ZrDzZDenE4mDXWjpKlQSA KqP26hIcEWofNWe9rYlA8n8WeMT/yFzW8cQVVvjkuzN8lj/u9bEtHApgRe17+H2BrGoKBC 3EolDy7Pr+pPSoGckiCV/Fea+8Sd1I7h1Pedk+EPwduo9NRFntmM4QmjiKVOUok0rV1J7J 6L8qsRk1K6m5AA4FUFyArOLlv5DPx58IYSDsp8XggyV0gj5SaWGgjpVstOpNUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729052200; 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=sIv3la/M3cBfk4sdLWi0tsUctOX0KnP/zzvu9ZaeP20=; b=yjey0MbjZVXbboW9zY+iG6xBoNw6iuxocv7iVLFr1uSVPqJjdZ1wRZJUpUcw/VR++wR+za Dg0XTmQNtTvnYnjQv0OXjpUcTD5cLH9oZTuEcljuY8xF07q02AlRWK7n2ALZ0/ASqdJqC4 TD4mKzTHZa2v5dHDiebGYIeKHaZMa1F3ya5gmlXMxicD0uCCB2G4BLIw2R0tTw/E7CmfLv GWzrAjnIrmy8yByv327Bys8PtWKCCZPeoTDvEBJviD7473mS22TxknOjOYwaJf0xgcxkgy DBj7hobGDvDExJvG7HlFSMKLoIvdr30SpOoOwqNCWetAlmi5U2JSqYu8a1lHDw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729052200; a=rsa-sha256; cv=none; b=btIC4suTrT+ZUmpO2XvUYRCkQEXnV0etpXgHJDoqXo8ai1ehALv1Z99SEHL+1lwAZkI67y pXrvk7zNEsl4kRuu4X+urYLXnw42rYytJtOYjfRKIDkl0BI5x/RJvmkZ5RXzILkSD9U3X/ vHr5Ol4xa4YY8YfGuuKxj1HG/IjSDk2W4QpAn2/r8YQt3+XfFHUChwd/AsrbZwzoRpIITR JUSuSkGr4hwwIF9e/C3tEQT/j7uR6dATkCnohYfdsLx2h52Iro2Nv79LF9EDqsBpwxntEO A9L9ehVUAw4L/cEzVEdxnJ5hNfBC/YPjpGQpNBZe6jREY1u7PrLBaRofjdzCKg== 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 4XSyMr2d8VzrQs; Wed, 16 Oct 2024 04:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49G4GeIr036255; Wed, 16 Oct 2024 04:16:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49G4GewC036251; Wed, 16 Oct 2024 04:16:40 GMT (envelope-from git) Date: Wed, 16 Oct 2024 04:16:40 GMT Message-Id: <202410160416.49G4GewC036251@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 277ed435d478 - stable/13 - release: Bump default VM size for riscv64 to 6 GB List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 277ed435d478e59851d394f033efe99bc988e94a Auto-Submitted: auto-generated The branch stable/13 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=277ed435d478e59851d394f033efe99bc988e94a commit 277ed435d478e59851d394f033efe99bc988e94a Author: Colin Percival AuthorDate: 2024-06-28 22:47:11 +0000 Commit: Colin Percival CommitDate: 2024-10-16 04:15:15 +0000 release: Bump default VM size for riscv64 to 6 GB Due to issues with the riscv64 toolchain, some binaries end up significantly larger on riscv64 than they should be. This results in riscv64 VM images -- and at present *only* riscv64 images -- not fitting within the default 5 GB filesystem size. Bump the default size for riscv64 to 6 GB until the toolchain issues can be resolved. MFC after: 1 week Sponsored by: Amazon (cherry picked from commit 59c21ed6e811c753f7806766ba45a5bfa71ae2ed) --- release/Makefile.vm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/release/Makefile.vm b/release/Makefile.vm index 520f47ab3ca6..4d301672836d 100644 --- a/release/Makefile.vm +++ b/release/Makefile.vm @@ -6,7 +6,11 @@ VMTARGETS= vm-image VMFORMATS?= vhd vmdk qcow2 raw +.if ${TARGET_ARCH} == riscv64 +VMSIZE?= 6144m +.else VMSIZE?= 5120m +.endif SWAPSIZE?= 1g VMBASE?= vm From nobody Wed Oct 16 04:16:41 2024 X-Original-To: dev-commits-src-branches@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 4XSyMs4xShz5ZRw1; Wed, 16 Oct 2024 04:16:41 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XSyMs4Hf2z4RnC; Wed, 16 Oct 2024 04:16:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729052201; 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=vjIcKxX3nyT1yrw4oxzCVDd2a2+S5NUZ4otBWyPupjM=; b=gMZO6W+BB46n5tLPoAA6errusKpTQEiqWIXJXurptmoBUlAsvqgaMYHbIZRmTPZuTet5v8 W/57+eHJ12nEoiqj6qHQ1zCwNPtjwkDl5Ei3N90iPh4Q97Q63zY6801skLxAZV8DN9yJri Es1/A1ZfIiGRXbxHRaTD7XuGMebwMt1dxGViaTlAHh7CcrLZxhpFiCmlNPNAC0CYIujWjO QwtaNK7uNoqOwnopJUvj9ukns4ZqfJ0NndwAZjQAAJw4zeJiMBTCopwxtAb7y0ggh/648l qQUlbE38H6d9X7vcWzcpmLNZBB1yfNm6HvrjqB/bvuvaRwz4BobbMHcYVXCyxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729052201; 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=vjIcKxX3nyT1yrw4oxzCVDd2a2+S5NUZ4otBWyPupjM=; b=Dbk8o5uS3N4Ru09YxcqgNd0KNX7IhjV7quF6EouPYbP38DubO9eyd4EjdAhEnv15YdqJpR CvHfDnpXnUjJBzFCWsGrymsMwMmSI8k+ooIsihbk4MuQCixdhJ41QrO4lJzj4hb5X00kqf updAFXACox73lQX34dADP6cUYB1cdrYTjNnvkOG7BwSLjM2aV76SVnzNMIrPx7E7TEoBXw 6g9kcRIrVzTDN0kSKDF7TyapHCYqTahiO3S2qFjwBXaC1sOkyrPXnHmyVPRTaFaOiL53MD sQQ6tp1DdMmKFj2Dekc1MDwptwECNEvi/rIRUrg+8tB6BNIQQnqL8k9UPD9GZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729052201; a=rsa-sha256; cv=none; b=fb6ETdpsVNVMoJo1Pr7cBS9b/JAqizEax7XMr2UCTujv1YLOUVwEOrlGwi4xUYhDZaQUI5 Xt3dHtb6LXVcWEOTX++Jhqq2nK0PkD7akUTfGL4+bsPrqgNpvB9WVhjpPHvbH9CZk7R7Gq d89vA35NcPYPYHQS6LwON3R0gpitRngCAEp+TqxOwyW2f5LQjBs4hKDdP8ptxc9yt/0qLq 3RTBtO3KHQ27oLBh0gh5cBYpfPYOWZFo0Ji+8npBs9QwZlCbWbEeu6Xynar4BNmTkflP2D i7M8xtCBTlYpjwRC5CjZCRn3+u3RKwpquY+kA3UiSHfFudh/f4A39bdP7dhKCA== 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 4XSyMs3Bz8zrF7; Wed, 16 Oct 2024 04:16:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49G4GfYE036303; Wed, 16 Oct 2024 04:16:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49G4GfSZ036300; Wed, 16 Oct 2024 04:16:41 GMT (envelope-from git) Date: Wed, 16 Oct 2024 04:16:41 GMT Message-Id: <202410160416.49G4GfSZ036300@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 024b595495f2 - stable/13 - release.sh: Pass ARCH_FLAGS when setting VMSIZE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 024b595495f240625ef2096efd6969084770855b Auto-Submitted: auto-generated The branch stable/13 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=024b595495f240625ef2096efd6969084770855b commit 024b595495f240625ef2096efd6969084770855b Author: Colin Percival AuthorDate: 2024-07-06 17:15:22 +0000 Commit: Colin Percival CommitDate: 2024-10-16 04:16:18 +0000 release.sh: Pass ARCH_FLAGS when setting VMSIZE The default VM size may depend on the architecture. In particular, it is currently larged on riscv64 due to a toolchain issue which results in bloated binaries. MFC after: 3 days Fixes: 59c21ed6e811 "release: Bump default VM size for riscv64 to 6 GB" Sponsored by: Amazon (cherry picked from commit ed807f7bcaecbf32b0b81a7d18cee489a3666157) --- release/release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/release.sh b/release/release.sh index c9d0203debd4..8e22af254d69 100755 --- a/release/release.sh +++ b/release/release.sh @@ -335,7 +335,7 @@ chroot_build_release() { fi if [ -z "${VMSIZE}" ]; then VMSIZE="$(eval chroot ${CHROOTDIR} \ - make -C /usr/src/release -V VMSIZE)" + make -C /usr/src/release ${ARCH_FLAGS} -V VMSIZE)" fi RELEASE_RMAKEFLAGS="${RELEASE_RMAKEFLAGS} \ VMFORMATS=\"${VMFORMATS}\" VMSIZE=${VMSIZE}" From nobody Wed Oct 16 12:15:16 2024 X-Original-To: dev-commits-src-branches@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 4XT9050fqcz5YQsG; Wed, 16 Oct 2024 12:15:17 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XT90506mWz4CcN; Wed, 16 Oct 2024 12:15:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729080917; 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=hIyR8fMzdsnWBJIOzlgbi0G2zq33tnbaY6pabgwkOcU=; b=Baaid0Wnl8RQ2GNmY/5cq094rmqpoa53MYGhhAPhPKXF52H783pwZCCwcazW5rfoTafjAh peg5FWTskDZjyoG+LIXLfsiD73vS5UZ1CS6aW5qOiQeQCbUr3kIr4ujZ65bzybjJP4Zlzu HRvaFGqo3LwZCLwtcemaDgDTTC69hqgm5geUlb4bFfVwgvFaEFXcWjrRY4NEzNO5tlmg3D 3HreTzxvGVAz0/fRpdve1O1tY3ITDhbGRNTTj4yLQ2tRfmzIeMCVZRYNehJoGEcXHa0FEL ARy8W7S8HnYXQcTYiPlgHgzZcAk+k1ljFlhUWM2ZHEm7r9ctEXZAV0G8or3gWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729080917; 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=hIyR8fMzdsnWBJIOzlgbi0G2zq33tnbaY6pabgwkOcU=; b=tYo9/D9Pit+9o/LM78kAWLQOghQat0ZItywOmtXvegd0EfxL3VcDU4NXQPzKNO60O1GaJn hZ/DX/BE0UQ4yZ/ft+wc33caa9BA+JUma58HGIJpvUmjKSuYrPrRwrxf8dFRNtJoihuYL/ IsRPBEU7T/Ei8nTUJO+7wkRK+Wg8tND4P6jXVV8s2wA7HrBuw24eU19lHYAaBZHQdvjEOu fHKaSUXVtV74y1gKQbz4h1UB8pAaxzBTvmFOOx5Vlv7unih1PJyPCWYsNebpH5p6YDmnma N0wf/q0rkv+f864XYxrWSuFtaed4P1JCVfrXAmmKsokVTSkFDWt61lLbiWG8Yg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729080917; a=rsa-sha256; cv=none; b=xuAcCupgnHsGsyYoyIIHoOgz0XYSu0UWyEDYjvJZD5IlOPKxpZwsn3+cACsx0mC2uSeW29 Iap0Vga6selzFMo9Xc6E+sM7Xu3uTfD73YTUeZtq4hrvN49sfG5lZ596uVP4pi1gJwKsIl L8rFaBqQOkUOKLSUoppfN55zrCVfqYEs01sZv2D7v/ajAMtWYc9buH8f0ly9sxp6/7/pK2 tpamOCh9p4vj3FJtnGjG6w4yYur7ndrNUEpMnvqnwRhpFuPIxOAN0rQMAVnaeMN1X+ejTm Mlyr0fxyxTAVDxbp7WWm+q1gFO3FlNKpL0xlOHk+lMSgyUMNJ/Dxiv0cF0s5hQ== 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 4XT9046jDPz14vj; Wed, 16 Oct 2024 12:15:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49GCFGEQ053005; Wed, 16 Oct 2024 12:15:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49GCFGb0053002; Wed, 16 Oct 2024 12:15:16 GMT (envelope-from git) Date: Wed, 16 Oct 2024 12:15:16 GMT Message-Id: <202410161215.49GCFGb0053002@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 3f0d6925ef38 - stable/14 - membarrier.h: fix typo List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3f0d6925ef38d3cc8793a21e5045b9b96f2b7cee Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=3f0d6925ef38d3cc8793a21e5045b9b96f2b7cee commit 3f0d6925ef38d3cc8793a21e5045b9b96f2b7cee Author: Ed Maste AuthorDate: 2024-10-06 17:21:49 +0000 Commit: Ed Maste CommitDate: 2024-10-16 12:15:04 +0000 membarrier.h: fix typo Sponsored by: The FreeBSD Foundation (cherry picked from commit 357185a966c10397c971ef23525943ebc47d58d9) --- sys/sys/membarrier.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/membarrier.h b/sys/sys/membarrier.h index 958b769da23e..31a605634ddb 100644 --- a/sys/sys/membarrier.h +++ b/sys/sys/membarrier.h @@ -50,7 +50,7 @@ enum membarrier_cmd { /* * RSEQ constants are defined for source compatibility but are - * not yes supported, MEMBARRIER_CMD_QUERY does not return + * not yet supported, MEMBARRIER_CMD_QUERY does not return * them in the mask. */ MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 0x00000080, From nobody Wed Oct 16 12:16:25 2024 X-Original-To: dev-commits-src-branches@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 4XT91P32Kkz5YRRs; Wed, 16 Oct 2024 12:16:25 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XT91P2SbNz4D7c; Wed, 16 Oct 2024 12:16:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729080985; 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=YRo4IeHx4ThcXt0ow3pWF/up+TMIVQphYDw8WF2dJBM=; b=wTLyLGFTCn9gMPiKvPce9n9bCi71FD+FXD352ob2zON2vjb5V/z0NrkPBh13P+D8X0nrMf UMTL+sfRtgKF6/G8kd7EQDSdH37+2F1PAKHZ1BO/3wQQKSdme7NCCT0dG4n3XqJo0UM1ZG Oo2eem4sm/99p0FoB9VF19JqPvPbE0ruma++u/9Tf7zGtb/kQdbhEZYdF/6kIcVg6sf6/0 maNmRxMgT9HxfXEvpbNHBoC/PlfYKJUkJyn/PGEgTdidk6KPmVDuVv1atR8LMrr0VUo4Ef 9Wt8IsFBjWx49gIDNue++QW5porylnu9FN9wP3KpHaXqw49SjWke7sJbQdsRPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729080985; 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=YRo4IeHx4ThcXt0ow3pWF/up+TMIVQphYDw8WF2dJBM=; b=K1w0ibvi5x96CuZcx0nmK2p592ShjnLMDMlfuNaekcGMj+LoLJ7EUdbeJcVHQXPO/FRDTz hNyvcoqWxAVZXuKOEf7YcGIUzAYOJCxC3fIAfiDh+c9AdmlrsmcjhkMFZ1p11N+DSSI15K UoNwquImC7hWJG72LTQqLvYIPdl4uHHL7fcPnthALUVGCd9RBY7U5qgEWmzXmuQdHfuaph EZdiO5Bi+f8/A07Hug9xwZXQ8yEKGLGg1CbJhv1eTg7II3g/I+RLTX3fIaeG0VSyJVYJvP A6AlPHbQU1lUG5ayhLqTm1p+PM2uaZnksYcrOsTIPw1OzgxA9xPwHxDbNcOvjw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729080985; a=rsa-sha256; cv=none; b=GFil2E+Gz1DcRK371nURrw8rIUHMNe46rrH21KguV/sRp2JlWui+E33n2TWR7C79PDOjxM 2Q+hB8LFamrNaP/RaoFhrTN6r6sbQ/RDcxnpg0xwFfchCh+HAA3nngLc/vythv+xdz/9zx AhsRBkK4M7N2kw8Sf07a+ffa6i29JxyIFTrpmpyGtVumeY0O5ZcUK2qkooeGYHhysZ1jcH c1/lEF9ZAuYbd8D4QGSUmB/pilFJ7l6Rm9bMOCRcRx6u9lOkYPY4tCo86fk6Uqqb91glLD 52kchSOXEPS0jRYB5Gtnv0OLE8t+j/SCXwlGBY2TOy82WKrQgkdPFavtjcbIrA== 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 4XT91P20Lmz15Bx; Wed, 16 Oct 2024 12:16:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49GCGPPV053263; Wed, 16 Oct 2024 12:16:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49GCGPvZ053260; Wed, 16 Oct 2024 12:16:25 GMT (envelope-from git) Date: Wed, 16 Oct 2024 12:16:25 GMT Message-Id: <202410161216.49GCGPvZ053260@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 9cfc5a27742f - stable/13 - membarrier.h: fix typo List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9cfc5a27742f665738d37ea37af19b71dd55b133 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=9cfc5a27742f665738d37ea37af19b71dd55b133 commit 9cfc5a27742f665738d37ea37af19b71dd55b133 Author: Ed Maste AuthorDate: 2024-10-06 17:21:49 +0000 Commit: Ed Maste CommitDate: 2024-10-16 12:16:07 +0000 membarrier.h: fix typo Sponsored by: The FreeBSD Foundation (cherry picked from commit 357185a966c10397c971ef23525943ebc47d58d9) (cherry picked from commit 3f0d6925ef38d3cc8793a21e5045b9b96f2b7cee) --- sys/sys/membarrier.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/membarrier.h b/sys/sys/membarrier.h index 958b769da23e..31a605634ddb 100644 --- a/sys/sys/membarrier.h +++ b/sys/sys/membarrier.h @@ -50,7 +50,7 @@ enum membarrier_cmd { /* * RSEQ constants are defined for source compatibility but are - * not yes supported, MEMBARRIER_CMD_QUERY does not return + * not yet supported, MEMBARRIER_CMD_QUERY does not return * them in the mask. */ MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 0x00000080, From nobody Wed Oct 16 14:32:03 2024 X-Original-To: dev-commits-src-branches@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 4XTD1v3xNSz5YbQM; Wed, 16 Oct 2024 14:32:03 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTD1v3Sjpz4Rqp; Wed, 16 Oct 2024 14:32:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089123; 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=GgDGzcFyPvM2WE+onfaKQYV85Sd97CfvTkQsk+nmZKA=; b=Fq7l3l7hQ3pgjTs2+8Fw1oHI0I2mdUAIVvm8TgnZRRIcC3cvG+xvcWwT08cOe25kGOXtQ8 OPLBlmYdY0dBP6hzNgVWrK99ngX859DOuSvvA9hyLU5hN8EIjbHnh5CqRB/gdkUvkydECn t0euQxB6ixNAaM+cE41Nu/WT5UEF3yZqTIGlI12a2onCFyViWZ94ReBDCTOlMKRf8B7NF9 pJWm7FiernGzBh8/K6YXkGjH5yDVDKEIxP0zJFT3D7hZ8nYFega/oPb6EE/pXswPhF7V0F MSX6gru0u87guseB6E08McGWUGdeSnc47Q2yAaSfC9CC+IcWwXchr3xhoGfrPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089123; 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=GgDGzcFyPvM2WE+onfaKQYV85Sd97CfvTkQsk+nmZKA=; b=dZwotaZIzLUNAHAI4J5VlqhsHiYoi2vXTZ9Reh/ULjL815mloK1h+FeuqBRkWT5ruXY4Pn pQ90xpfodvb2tHWWIZD+11/04LFT+adaK6UWpcyB/wMIePQLqo6Zgc0OHJyxD4LEPM/n4s f/yTXKz4AJtSV0JQ6EtO3SX5L6LiIqRQLd+YmGKgYoente66b75JIw/qdq3f5sUcVwyJog 4RGkK9pvsiL32FTq5p2RLu7g91C84KcccPtHrGbn3otmlqeysYm/3WNcuzvB9F2SnDzmzq e16oPirvwrCZw4wjfhIzAMCM0kJMu7/3v3GbUVNfk07Wh5IeC3xOsZrgwJ2m+w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729089123; a=rsa-sha256; cv=none; b=Od1+f/Ykj7GB6w84UwVyW8bLH0PJAYA+BQS8CKPIlTIEC3Nl/F3BdHnRKeV0N49bLhRdPg XtBED4C2vCT8LN2icZtp0Dq+l6/1tl72fEROKf4p1vh32l+2woBB5YbXpcc3IJC1u5IS1/ G/eSQrkODnuvmIk2jqFT54MbMh1/DyQSrq7VsUCVbTB8QN5Ap8cexh4g111WdlpDUuFXhK 34cQ9GO9BSoZIQn7OouSXsp+ZWyqnhwM2YEd22KYmbBeVJJMISe+SxRaNFBvw0BYR2Dt0F /p/y7Wd0EUh/tpHaAaOFJDDDtnwWR2x42mCYPi5AE01D09e5/h7EtNdJBdzRzA== 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 4XTD1v331Gz18fp; Wed, 16 Oct 2024 14:32:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49GEW3a3089571; Wed, 16 Oct 2024 14:32:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49GEW3L4089568; Wed, 16 Oct 2024 14:32:03 GMT (envelope-from git) Date: Wed, 16 Oct 2024 14:32:03 GMT Message-Id: <202410161432.49GEW3L4089568@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: b57229a80465 - stable/14 - mps/mpr: Add workaround for firmware not responding to IOC_FACTS or IOC_INIT List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b57229a80465b390a31fb30b3127c4cb93d8987f Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=b57229a80465b390a31fb30b3127c4cb93d8987f commit b57229a80465b390a31fb30b3127c4cb93d8987f Author: prateek sethi AuthorDate: 2024-10-13 18:38:54 +0000 Commit: Warner Losh CommitDate: 2024-10-16 14:19:21 +0000 mps/mpr: Add workaround for firmware not responding to IOC_FACTS or IOC_INIT Sometimes, especially with older firmware, mps(4) would have trouble initializing the card in one of these two steps. Add in a retry after a short delay. Sean Bruno and Stephen McConnell thought this was OK in the bug discussions, but never committed it. Steve indicated the delay might not be necessary, but the OP clearly needed to make it longer to make things work. I've kept the delay, and added the suggested comment. Ported the iocfacts part to mpr as well, since we see similar errors about once every month or two over a few thousand controllers at work. We've not seen it with IOC_INIT as far back as I can query the error log database, so I didn't port that forward. We'll see if this helps, but won't know for sure until next year (so I'm committing it now since it won't hurt and might help). We usually see this failure in connection with complicated recovery operations with a drive that's failing, though, at least in the last year's worth of failures. It's not clear this is the same as OP or not. PR: 212841 Sponsored by: Netflix Co-authored-by: imp (cherry picked from commit c0e0e530ced057502f51d7a6086857305e08fae0) --- sys/dev/mpr/mpr.c | 23 ++++++++++++++++++----- sys/dev/mps/mps.c | 38 ++++++++++++++++++++++++++++++-------- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/sys/dev/mpr/mpr.c b/sys/dev/mpr/mpr.c index d5c02f9608ca..d1c572e40669 100644 --- a/sys/dev/mpr/mpr.c +++ b/sys/dev/mpr/mpr.c @@ -1195,7 +1195,7 @@ mpr_get_iocfacts(struct mpr_softc *sc, MPI2_IOC_FACTS_REPLY *facts) { MPI2_DEFAULT_REPLY *reply; MPI2_IOC_FACTS_REQUEST request; - int error, req_sz, reply_sz; + int error, req_sz, reply_sz, retry = 0; MPR_FUNCTRACE(sc); mpr_dprint(sc, MPR_INIT, "%s entered\n", __func__); @@ -1204,13 +1204,26 @@ mpr_get_iocfacts(struct mpr_softc *sc, MPI2_IOC_FACTS_REPLY *facts) reply_sz = sizeof(MPI2_IOC_FACTS_REPLY); reply = (MPI2_DEFAULT_REPLY *)facts; + /* + * Retry sending the initialization sequence. Sometimes, especially with + * older firmware, the initialization process fails. Retrying allows the + * error to clear in the firmware. + */ bzero(&request, req_sz); request.Function = MPI2_FUNCTION_IOC_FACTS; - error = mpr_request_sync(sc, &request, reply, req_sz, reply_sz, 5); - - adjust_iocfacts_endianness(facts); - mpr_dprint(sc, MPR_TRACE, "facts->IOCCapabilities 0x%x\n", facts->IOCCapabilities); + while (retry < 5) { + error = mpr_request_sync(sc, &request, reply, req_sz, reply_sz, 5); + if (error == 0) + break; + mpr_dprint(sc, MPR_FAULT, "%s failed retry %d\n", __func__, retry); + DELAY(1000); + retry++; + } + if (error == 0) { + adjust_iocfacts_endianness(facts); + mpr_dprint(sc, MPR_TRACE, "facts->IOCCapabilities 0x%x\n", facts->IOCCapabilities); + } mpr_dprint(sc, MPR_INIT, "%s exit, error= %d\n", __func__, error); return (error); } diff --git a/sys/dev/mps/mps.c b/sys/dev/mps/mps.c index adad2450a3d4..9dfa0471ac0a 100644 --- a/sys/dev/mps/mps.c +++ b/sys/dev/mps/mps.c @@ -1127,7 +1127,7 @@ mps_get_iocfacts(struct mps_softc *sc, MPI2_IOC_FACTS_REPLY *facts) { MPI2_DEFAULT_REPLY *reply; MPI2_IOC_FACTS_REQUEST request; - int error, req_sz, reply_sz; + int error, req_sz, reply_sz, retry = 0; MPS_FUNCTRACE(sc); mps_dprint(sc, MPS_INIT, "%s entered\n", __func__); @@ -1136,10 +1136,21 @@ mps_get_iocfacts(struct mps_softc *sc, MPI2_IOC_FACTS_REPLY *facts) reply_sz = sizeof(MPI2_IOC_FACTS_REPLY); reply = (MPI2_DEFAULT_REPLY *)facts; + /* + * Retry sending the initialization sequence. Sometimes, especially with + * older firmware, the initialization process fails. Retrying allows the + * error to clear in the firmware. + */ bzero(&request, req_sz); request.Function = MPI2_FUNCTION_IOC_FACTS; - error = mps_request_sync(sc, &request, reply, req_sz, reply_sz, 5); - mps_dprint(sc, MPS_INIT, "%s exit error= %d\n", __func__, error); + while (retry < 5) { + error = mps_request_sync(sc, &request, reply, req_sz, reply_sz, 5); + if (error == 0) + break; + mps_dprint(sc, MPS_FAULT, "%s failed retry %d\n", __func__, retry); + DELAY(1000); + retry++; + } return (error); } @@ -1149,7 +1160,7 @@ mps_send_iocinit(struct mps_softc *sc) { MPI2_IOC_INIT_REQUEST init; MPI2_DEFAULT_REPLY reply; - int req_sz, reply_sz, error; + int req_sz, reply_sz, error, retry = 0; struct timeval now; uint64_t time_in_msec; @@ -1193,10 +1204,21 @@ mps_send_iocinit(struct mps_softc *sc) time_in_msec = (now.tv_sec * 1000 + now.tv_usec/1000); init.TimeStamp.High = htole32((time_in_msec >> 32) & 0xFFFFFFFF); init.TimeStamp.Low = htole32(time_in_msec & 0xFFFFFFFF); - - error = mps_request_sync(sc, &init, &reply, req_sz, reply_sz, 5); - if ((reply.IOCStatus & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS) - error = ENXIO; + /* + * Retry sending the initialization sequence. Sometimes, especially with + * older firmware, the initialization process fails. Retrying allows the + * error to clear in the firmware. + */ + while (retry < 5) { + error = mps_request_sync(sc, &init, &reply, req_sz, reply_sz, 5); + if ((reply.IOCStatus & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS) + error = ENXIO; + if (error == 0) + break; + mps_dprint(sc, MPS_FAULT, "%s failed retry %d\n", __func__, retry); + DELAY(1000); + retry++; + } mps_dprint(sc, MPS_INIT, "IOCInit status= 0x%x\n", reply.IOCStatus); mps_dprint(sc, MPS_INIT, "%s exit\n", __func__); From nobody Wed Oct 16 14:32:04 2024 X-Original-To: dev-commits-src-branches@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 4XTD1x0P6qz5Yb60; Wed, 16 Oct 2024 14:32:05 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTD1w5SC2z4Rcb; Wed, 16 Oct 2024 14:32:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089124; 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=k2Af6E+q6S/KytSmEtRqpUPTTws9PyCAJ0mejUkiZ8g=; b=o822jgxG8isNmFRledo+23pVbdQhMEKcA30jiQ02rGLRDLP0kfzkRtTjGF16/ZMBVSF51C qEj2E3BujDNLxQnRwrTStoOh0F2aMFreQcMomI1IovF4WlQLMXO/zCWzKDUI8JkrI2+Whu mdWPJ6wRLZWnR4JgDbsWOJ9mZu2EvBEFqFASr+0wshtq84WM7TebsBWJhtwHI5bD7JFqJW dvyoDO5gjZVKcfkt06kQovLGqGIWD+XJGcAvCF3rHYSJtogUQLjCwvyJxPVYH04c9ZK1CT CWhxulU7tpf0J+tAIcMBenC80sgBZrEtIqAqia3qDc25y3j3dVBDskybyeyF5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089124; 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=k2Af6E+q6S/KytSmEtRqpUPTTws9PyCAJ0mejUkiZ8g=; b=htl82ddoem1M+j419g4ZcoiAarRXKOR6xd/SY45KmzooDChBULZrU0dXx1eK2kFjk8Slrw d52qDr9g4VcUIaEXGRrbZOX7ZrlrnpghNlAGhw3lkBO7w0D9F4GuZmb1XCVHqKerFn6JKR 1H16URupLRBUFO1tBFQdiSrN0Ugk2ZzckqZRWc/7OF70/BNjsrJEx7pgH8xDxsPzjdPe0D 4C2SgmimE19zdkP80a7w4ssL1KVcLSjpJhjlasCArd66Z5MQNwummLs6DzfR0JCI2/ANP7 1CQ+VzOUAuFTq1dN5i0W+NDHq9KDwwGdxXyU4/oLXtOS/bzk+ysNiL2eP9rzRQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729089124; a=rsa-sha256; cv=none; b=DrmogBpkXhrGKIh4w+i7sab/eA2Aw/XqmwCGw3lbPwzKIgBiYBq9Q9z6cWViaNevjaioH7 0yVMINSxKcVVQe/8crJYL1Z9JGmOAHKrzl8zMlMDnKGLJvZMrG3wUDOfBji11VSYpBmm6i VEIkSLVoNUq+yZ9kxkIRpSYICsh/4b+6Ec/2jw2EQCQMhX5H3NBpA2u8Bt2vhAOKLAJc9z zMdiKYVKdXa77UnhveAnxHu3Omelj7LAAi9bLQSAc38Y7lf9/QipeJgBD58fo3X7gQ8jRz 9sXrI3mnEzokO/ZDHpaUZGobmtD2ngxZPUmgwHQViswknBSMiMoPRYVbEfAB5w== 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 4XTD1w40W1z18Pv; Wed, 16 Oct 2024 14:32:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49GEW4gR089608; Wed, 16 Oct 2024 14:32:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49GEW4Q5089605; Wed, 16 Oct 2024 14:32:04 GMT (envelope-from git) Date: Wed, 16 Oct 2024 14:32:04 GMT Message-Id: <202410161432.49GEW4Q5089605@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: dfd6b1ee5b83 - stable/14 - subr_firmware: Sort includes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: dfd6b1ee5b83f8616b8538a63f493558cf3477ba Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=dfd6b1ee5b83f8616b8538a63f493558cf3477ba commit dfd6b1ee5b83f8616b8538a63f493558cf3477ba Author: Warner Losh AuthorDate: 2024-02-05 03:12:37 +0000 Commit: Warner Losh CommitDate: 2024-10-16 14:19:21 +0000 subr_firmware: Sort includes Sponsored by: Netflix (cherry picked from commit 4b62b42a8dbd3be7c5e9e107fbba2c9adfa49673) --- sys/kern/subr_firmware.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sys/kern/subr_firmware.c b/sys/kern/subr_firmware.c index 00b084bd0a07..6947bcb110e4 100644 --- a/sys/kern/subr_firmware.c +++ b/sys/kern/subr_firmware.c @@ -28,20 +28,20 @@ #include #include +#include +#include +#include #include -#include -#include -#include -#include +#include #include +#include +#include #include -#include -#include -#include #include #include -#include -#include +#include +#include +#include #include #include From nobody Wed Oct 16 14:32:05 2024 X-Original-To: dev-commits-src-branches@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 4XTD1y0ZK7z5Yb3H; Wed, 16 Oct 2024 14:32:06 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTD1x6B0Sz4RKg; Wed, 16 Oct 2024 14:32:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089125; 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=V+6b7ARLGLYLedIXChYsNzUpfp2sOD1FZuAInOKiSpI=; b=sPVJD232vffaeWh90XTbe1WdAtb5tdPxUnzewWXJZSfGjMRSYFBNXQjm+nWJf48KHZD/gB CvT7UhXCh+x0BEo9tRhcG3oQIeDC/YyT6Ai6MNNZUyojbw9UJTu0Ycdx/4Wou8aJwAWTb4 k0IF249Cwh/GQ6VIw1Jr71tNtfh5lOMHZG18apqJe5I+7P+07gbGfbKC1EhGlkYIRF8JKF UB15B1zaopk8yk6x2cmpXAPvR3t6GleqlqqJifLUvhQpmJnom5gnS4CDANIrC4ITG+X2OH LWJplmxaOC8lR2ybNnnXNmftmBn//+Ywr9K2YM18iJzvouusWtSNnYrnEqyPjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089125; 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=V+6b7ARLGLYLedIXChYsNzUpfp2sOD1FZuAInOKiSpI=; b=srYHGGBcgcI7MDLxiZWnOPdQS3uk6vbLtQjHr+A3gFwXclonUUUFIfbNEyIrHrOcqmRv9M 0yj9dBoryizmIR0HlTFwUwFRS9Zncjuba/ynIIgZYPkOvLyCpq9he4o6orxEDW2DFjTElO Vi3kGSfTdrJ3K1SkheFrQpVCaftcud/ETSFgCV7mDRxRVEaiR4YkiPszek+BY8JZGSa3MM FDe8SxdwPmyJtzVKkG2axW9Q9WiBP2KLed/qW/0E8I+uLJxiy2unubVwU+CxRUsrOwxKNc tMcZPkFd0+BEkryaNKYUflV3RMUuH/bieZOrhPj+2rBnq6MDmI9B+R7QPsi37w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729089125; a=rsa-sha256; cv=none; b=YanM1dazo8Kzffz2HeQsa+rtClVJ4A7clqJl+x3x3MbSwjWNUKNI0COulr9z8+dWDpOwni qUxfGpXa1B0OyNSM3od6Wo+yxAwkC62dPtJNHvi7kh0+qzMYdcaHJzw8FbrQOfPLnpZ2Ag 4TvscxqVv9I1vQtw2mDLkIMS1vzH1PPKNoCi57a08Tu1UvRej13WgtCIX1NzeiT5Ta1ll7 3U77JiJBcyavff5/d7GFbvHL1XlvCFbWjQ6YVPqTUv8LmW3931bZmr2Wts8R+AMM9fi29+ ugNgk7mbcSnvpFkc7peH5akTeA7b1BpMDMxk3Ie8D3tVKBXOCjVdwka5yadJPA== 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 4XTD1x51FKz187l; Wed, 16 Oct 2024 14:32:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49GEW5Ns089650; Wed, 16 Oct 2024 14:32:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49GEW5JC089647; Wed, 16 Oct 2024 14:32:05 GMT (envelope-from git) Date: Wed, 16 Oct 2024 14:32:05 GMT Message-Id: <202410161432.49GEW5JC089647@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 2ca7b03d6275 - stable/14 - firmware: load binary firmware files List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2ca7b03d62750bc29d35b4b58dadf7f7a9520a01 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=2ca7b03d62750bc29d35b4b58dadf7f7a9520a01 commit 2ca7b03d62750bc29d35b4b58dadf7f7a9520a01 Author: Warner Losh AuthorDate: 2024-02-29 16:36:20 +0000 Commit: Warner Losh CommitDate: 2024-10-16 14:19:21 +0000 firmware: load binary firmware files When we can't find a .ko module to satisfy the firmware request, try harder by looking for a file to read in directly. We compose this file's name by appending the imagename parameter to the firmware path (currently hard-wired to be /boot/firmware, future plans are for a path). Allow this file to be unloaded when firmware_put() releases the last reference, but we don't need to do the indirection and dance we need to do when unloading the .ko that will unregister the firmware. Sponsored by: Netflix Reviewed by: manu, jhb Differential Revision: https://reviews.freebsd.org/D43555 (cherry picked from commit c7b1e980ae16c094e64f318ad2feb98e17bd8f2f) --- sys/kern/subr_firmware.c | 122 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 114 insertions(+), 8 deletions(-) diff --git a/sys/kern/subr_firmware.c b/sys/kern/subr_firmware.c index 6947bcb110e4..138eb6a7fcd8 100644 --- a/sys/kern/subr_firmware.c +++ b/sys/kern/subr_firmware.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -37,9 +38,12 @@ #include #include #include +#include #include #include #include +#include +#include #include #include @@ -86,8 +90,9 @@ struct priv_fw { */ struct priv_fw *parent; - int flags; /* record FIRMWARE_UNLOAD requests */ -#define FW_UNLOAD 0x100 + int flags; +#define FW_BINARY 0x080 /* Firmware directly loaded, file == NULL */ +#define FW_UNLOAD 0x100 /* record FIRMWARE_UNLOAD requests */ /* * 'file' is private info managed by the autoload/unload code. @@ -121,7 +126,8 @@ static LIST_HEAD(, priv_fw) firmware_table; /* * Firmware module operations are handled in a separate task as they - * might sleep and they require directory context to do i/o. + * might sleep and they require directory context to do i/o. We also + * use this when loading binaries directly. */ static struct taskqueue *firmware_tq; static struct task firmware_unload_task; @@ -134,6 +140,11 @@ MTX_SYSINIT(firmware, &firmware_mtx, "firmware table", MTX_DEF); static MALLOC_DEFINE(M_FIRMWARE, "firmware", "device firmware images"); +static uint64_t firmware_max_size = 8u << 20; /* Default to 8MB cap */ +SYSCTL_U64(_debug, OID_AUTO, firmware_max_size, + CTLFLAG_RWTUN, &firmware_max_size, 0, + "Max size permitted for a firmware file."); + /* * Helper function to lookup a name. * As a side effect, it sets the pointer to a free slot, if any. @@ -241,6 +252,85 @@ struct fw_loadimage { uint32_t flags; }; +static const char *fw_path = "/boot/firmware/"; + +static void +try_binary_file(const char *imagename, uint32_t flags) +{ + struct nameidata nd; + struct thread *td = curthread; + struct ucred *cred = td ? td->td_ucred : NULL; + struct sbuf *sb; + struct priv_fw *fp; + const char *fn; + struct vattr vattr; + void *data = NULL; + const struct firmware *fw; + int flags; + size_t resid; + int error; + bool warn = flags & FIRMWARE_GET_NOWARN; + + /* + * XXX TODO: Loop over some path instead of a single element path. + * and fetch this path from the 'firmware_path' kenv the loader sets. + */ + sb = sbuf_new_auto(); + sbuf_printf(sb, "%s%s", fw_path, imagename); + sbuf_finish(sb); + fn = sbuf_data(sb); + if (bootverbose) + printf("Trying to load binary firmware from %s\n", fn); + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, fn); + flags = FREAD; + error = vn_open(&nd, &flags, 0, NULL); + if (error) + goto err; + NDFREE_PNBUF(&nd); + if (nd.ni_vp->v_type != VREG) + goto err2; + error = VOP_GETATTR(nd.ni_vp, &vattr, cred); + if (error) + goto err2; + + /* + * Limit this to something sane, 8MB by default. + */ + if (vattr.va_size > firmware_max_size) { + printf("Firmware %s is too big: %ld bytes, %ld bytes max.\n", + fn, vattr.va_size, firmware_max_size); + goto err2; + } + data = malloc(vattr.va_size, M_FIRMWARE, M_WAITOK); + error = vn_rdwr(UIO_READ, nd.ni_vp, (caddr_t)data, vattr.va_size, 0, + UIO_SYSSPACE, IO_NODELOCKED, cred, NOCRED, &resid, td); + /* XXX make data read only? */ + VOP_UNLOCK(nd.ni_vp); + vn_close(nd.ni_vp, FREAD, cred, td); + nd.ni_vp = NULL; + if (error != 0 || resid != 0) + goto err; + fw = firmware_register(fn, data, vattr.va_size, 0, NULL); + if (fw == NULL) + goto err; + fp = PRIV_FW(fw); + fp->flags |= FW_BINARY; + if (bootverbose) + printf("%s: Loaded binary firmware using %s\n", imagename, fn); + sbuf_delete(sb); + return; + +err2: /* cleanup in vn_open through vn_close */ + VOP_UNLOCK(nd.ni_vp); + vn_close(nd.ni_vp, FREAD, cred, td); +err: + free(data, M_FIRMWARE); + if (bootverbose || warn) + printf("%s: could not load binary firmware %s either\n", imagename, fn); + sbuf_delete(sb); +} + static void loadimage(void *arg, int npending __unused) { @@ -254,6 +344,7 @@ loadimage(void *arg, int npending __unused) if (bootverbose || (fwli->flags & FIRMWARE_GET_NOWARN) == 0) printf("%s: could not load firmware image, error %d\n", fwli->imagename, error); + try_binary_file(fwli->imagename, fwli->flags); mtx_lock(&firmware_mtx); goto done; } @@ -409,17 +500,32 @@ EVENTHANDLER_DEFINE(mountroot, firmware_mountroot, NULL, 0); static void unloadentry(void *unused1, int unused2) { - struct priv_fw *fp; + struct priv_fw *fp, *tmp; mtx_lock(&firmware_mtx); restart: - LIST_FOREACH(fp, &firmware_table, link) { - if (fp->file == NULL || fp->refcnt != 0 || - (fp->flags & FW_UNLOAD) == 0) + LIST_FOREACH_SAFE(fp, &firmware_table, link, tmp) { + if (((fp->flags & FW_BINARY) == 0 && fp->file == NULL) || + fp->refcnt != 0 || (fp->flags & FW_UNLOAD) == 0) + continue; + + /* + * If we directly loaded the firmware, then we just need to + * remove the entry from the list and free the entry and go to + * the next one. There's no need for the indirection of the kld + * module case, we free memory and go to the next one. + */ + if ((fp->flags & FW_BINARY) != 0) { + LIST_REMOVE(fp, link); + free(__DECONST(char *, fp->fw.data), M_FIRMWARE); + free(__DECONST(char *, fp->fw.name), M_FIRMWARE); + free(fp, M_FIRMWARE); continue; + } /* - * Found an entry. Now: + * Found an entry. This is the kld case, so we have a more + * complex dance. Now: * 1. make sure we scan the table again * 2. clear FW_UNLOAD so we don't try this entry again. * 3. release the lock while trying to unload the module. From nobody Wed Oct 16 14:32:06 2024 X-Original-To: dev-commits-src-branches@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 4XTD1z0RNwz5YbcH; Wed, 16 Oct 2024 14:32:07 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTD1y6KQwz4Rch; Wed, 16 Oct 2024 14:32:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089126; 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=OvVesz/kp6DO+yz24j2LIZRhvxir/hhwIq3xF5w1lX8=; b=ndQPhcNkjBUY03uPpxn1iB65i9wQJYRxXIAwvPJuuj42WXk10xo2zauge9veAE7z8M/Z0V KzFkpfuWmaWI2xC1yCh+5HejHJkJ01c2NiF+mBJz3L+y82jrnQcAJ4dFs1Y2sFw4FcbLgH P929/GNLucPP7uZIySMzBQFW8PScRXKz4ScgSrSu2duDyXFLOZlMfBvn4thmOMVQVbLVfm YPItdRYDWzQuMZsQ5gWCf/wAsHBl5Bu9PnzUlfRe/jlbcPGX0INRDabBWfCQLmX885n8Ip uH10KoAP6my4jId/zoycFS0min4ZJJGm/QUVAUIZhlrjjWCoUiOcea5fZiy+oA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089126; 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=OvVesz/kp6DO+yz24j2LIZRhvxir/hhwIq3xF5w1lX8=; b=N7KRsAPR6vDE1nEqOpvEqyrQjpsp/s3V47Pq5DB8Xln775+CQJe3UZ/+ZNlKCHYNrbpD7b YibPujrRymJVGPer4L+RG9Mm6pCx5GaWNAOYI89XNElhueQaipNiwNGOcbofrge6/rjRFy 1YjeMiGhWDiLTLRY3exujUjVZpKkttoSMgBsfD7U1p75zCSpqfaoN3pmNvVeAlWr6f8hSn e6qHFdKvYhWGpOduJmpR2scafiv9Ip1L6YNQJtdH5d2wJNQHHnK+d6OkI+4gaaTMBnYTq0 6xoqNpnavkuYkWKJ2tu/MdbPjtsjcYWUuDLFdCtvULz904ppquT+n9BHWXQM7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729089126; a=rsa-sha256; cv=none; b=Hf+DhwKtatTYQGHw3RN5AKGrbmNZ5XInuRATuaAbtQU2PiZ57iBbcWHEG8g0hs0bvaviom WaLXSKfQfc4gp/0jZAtzo0qPpKdIPaR/71KvhKhS9TKAGAg+QcKSDtRcV03MADyMyLFg6q yO+FNcm/cwiq2AG35l5pZFcmsvLasPVIB3S9PoxX5/LfjuUc8mk1QT00Z+j5RiKgBxLSmv 4yICPTphijI1VbKV0q1AOKoF67Q0+owiN4gvZgXZrG3v12vFrbeWq4348xF+5OyqcLwMOj WoBvDCSTHEhu5O6FqwkAU3+j7Au4bPQYzT4DN5QqZwDh5N4dlaKka7aO6tH7Mg== 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 4XTD1y5Ymqz18Pw; Wed, 16 Oct 2024 14:32:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49GEW6WM089714; Wed, 16 Oct 2024 14:32:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49GEW6Su089711; Wed, 16 Oct 2024 14:32:06 GMT (envelope-from git) Date: Wed, 16 Oct 2024 14:32:06 GMT Message-Id: <202410161432.49GEW6Su089711@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 903ddc7f14bc - stable/14 - firmware: Allow binary files to be loaded by /boot/loader List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 903ddc7f14bc2f9977cec22e3f9f2f6c510b9538 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=903ddc7f14bc2f9977cec22e3f9f2f6c510b9538 commit 903ddc7f14bc2f9977cec22e3f9f2f6c510b9538 Author: Warner Losh AuthorDate: 2024-02-29 16:36:31 +0000 Commit: Warner Losh CommitDate: 2024-10-16 14:19:21 +0000 firmware: Allow binary files to be loaded by /boot/loader Files loaded "-t firmware" (or module_type="firmware"). They are registered with the firmware system using the full path to the file. There's only one firmware per file, and it is the entire file. We do an extra firmware_get() on any firmware we find here to prevent them from ever being unloaded (we can't handle that case sanely). Sponsored by: Netflix Reviewed by: tsoome, jhb Differential Revision: https://reviews.freebsd.org/D43522 (cherry picked from commit 479905a1ed26c54ef29cdff65cf25f7feade654b) --- sys/kern/subr_firmware.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/sys/kern/subr_firmware.c b/sys/kern/subr_firmware.c index 138eb6a7fcd8..94538670e38c 100644 --- a/sys/kern/subr_firmware.c +++ b/sys/kern/subr_firmware.c @@ -162,6 +162,19 @@ lookup(const char *name) LIST_FOREACH(fp, &firmware_table, link) { if (fp->fw.name != NULL && strcasecmp(name, fp->fw.name) == 0) break; + + /* + * If the name looks like an absolute path, also try to match + * the last part of the string to the requested firmware if it + * matches the trailing components. This allows us to load + * /boot/firmware/abc/bca2233_fw.bin and match it against + * requests for bca2233_fw.bin or abc/bca2233_fw.bin. + */ + if (*fp->fw.name == '/' && strlen(fp->fw.name) > strlen(name)) { + const char *p = fp->fw.name + strlen(fp->fw.name) - strlen(name); + if (p[-1] == '/' && strcasecmp(name, p) == 0) + break; + } } return (fp); } @@ -549,6 +562,42 @@ restart: mtx_unlock(&firmware_mtx); } +/* + * Find all the binary firmware that was loaded in the boot loader via load -t + * firmware foo. There is only one firmware per file, it's the whole file, and + * there's no meaningful version passed in, so pass 0 for that. If version is + * needed by the consumer (and not just arbitrarily defined), the .ko version + * must be used instead. + */ +static void +firmware_binary_files(void) +{ + caddr_t file; + char *name; + const char *type; + const void *addr; + size_t size; + unsigned int version = 0; + const struct firmware *fw; + struct priv_fw *fp; + + file = 0; + for (;;) { + file = preload_search_next_name(file); + if (file == 0) + break; + type = (const char *)preload_search_info(file, MODINFO_TYPE); + if (type == NULL || strcmp(type, "firmware") != 0) + continue; + name = preload_search_info(file, MODINFO_NAME); + addr = preload_fetch_addr(file); + size = preload_fetch_size(file); + fw = firmware_register(name, addr, size, version, NULL); + fp = PRIV_FW(fw); + fp->refcnt++; /* Hold an extra reference so we never unload */ + } +} + /* * Module glue. */ @@ -567,6 +616,7 @@ firmware_modevent(module_t mod, int type, void *unused) /* NB: use our own loop routine that sets up context */ (void) taskqueue_start_threads(&firmware_tq, 1, PWAIT, "firmware taskq"); + firmware_binary_files(); if (rootvnode != NULL) { /* * Root is already mounted so we won't get an event; From nobody Wed Oct 16 14:32:07 2024 X-Original-To: dev-commits-src-branches@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 4XTD2070pzz5YbQS; Wed, 16 Oct 2024 14:32:08 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTD201xlfz4Rhv; Wed, 16 Oct 2024 14:32:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089128; 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=uJL+BLJKkG6FGqxfIsTys+NPT2cuVJkRFhRfwfiJru4=; b=YyLMChvXBkWuRI+LQQNzhzEe9N4K7fryHvDp/l9mmSPR0QPopMFzgEIG17KXpcgRN7TjcX vVEG0MW+Ox+9k1fnh6yjEcTYSoOacqmjFn+YvjKDFM30X/iVugCMDMTLB/3E8QMEEm74Nb SoaAXE0DgZt2CJFQsw2dXYfqkLo73NZBXhrjAItKO85/Zhp4U4itPgT6XjJ0qYiHB8SuKK FPZ89Uqz4E79FGYOEsRB/ul29i6rYs1DUHp+etHNpM7RLlQogpjjXJxL3GAQmDYeASLXr/ cfSp53QVjiEWthWTx9uCyPqqePug3WFUKlUjr+fFCfjxz2l+PU2ExDqAG9GQ5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089128; 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=uJL+BLJKkG6FGqxfIsTys+NPT2cuVJkRFhRfwfiJru4=; b=rSmbTLkdw0UgkojYoPlbSVyf/6RErUgukrqRdfviSbvNQ6L9Cn5Y02/qDm5nMJ69ImmhsF /71W4+LLpbXnpLaJfLu4+f3UZ9nVcnM0hujoRL4Badg5JZlkHkgTY2iitt+ss0FdgpqEDJ ZEQAacsqQlxKZ7G5GwcSEBtFldg642gzab1itEYPd1jl2FiODLK0eMjB+HTTvZFpF+Vwyv j5oeJnikPpeU6ClC48FCYzY5sxRW2frGZlqZZ5k5i5m5YN/VGV9Dwk8hgNN63ekAkXh7FE 96cYU7rlwwMmVPHB/HgIYvAl59ZHEuIUux5XT99EHk8XpSMZBAzZWX63UXgU/w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729089128; a=rsa-sha256; cv=none; b=NvLduTPBH++oVP7jOSJBVzYuHHlCofOlYh91Oq5X7XLk75xg9VSbKA58xO0Zun6mR804+T 4QCbwgptMNvK3Z4mpE5cw0iFy886od4OOxH+6aVZ7zOpvYo31tq/BI0PlS5Y/M4sxIEJJO 26mA+wEICwD01KxxZQX9q4IoIsLiTpHKSpA4jJ97/FrgZds0zEKxYZmp93BstZP4Qvsain tN1C3AYqPfkUkSvd1TVO5ehEL915e8dbaay/FUAmm1cEIUH4j2sQG57MOKDvvV8RZqogwt XZlHHADQEO+uC/qbPihK06lsL0tdH0WmBjdDrAghCi0Br+4zUD9rtsaGaTQLqA== 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 4XTD1z6XXPz1895; Wed, 16 Oct 2024 14:32:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49GEW7lM089750; Wed, 16 Oct 2024 14:32:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49GEW7PE089747; Wed, 16 Oct 2024 14:32:07 GMT (envelope-from git) Date: Wed, 16 Oct 2024 14:32:07 GMT Message-Id: <202410161432.49GEW7PE089747@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: d36ba3989ca9 - stable/14 - firmware: unbreak armv7 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d36ba3989ca9fb684f51a300714fadbe82cb59d6 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=d36ba3989ca9fb684f51a300714fadbe82cb59d6 commit d36ba3989ca9fb684f51a300714fadbe82cb59d6 Author: Warner Losh AuthorDate: 2024-02-29 17:53:05 +0000 Commit: Warner Losh CommitDate: 2024-10-16 14:19:21 +0000 firmware: unbreak armv7 Use proper format specifiers (with casts) and don't redefine flags. Fixes: c7b1e980ae16 Sponsored by: Netflix (cherry picked from commit 3a3afbec3860b0eb4178b63713ca12bd223b585a) --- sys/kern/subr_firmware.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/kern/subr_firmware.c b/sys/kern/subr_firmware.c index 94538670e38c..e8f9493decc0 100644 --- a/sys/kern/subr_firmware.c +++ b/sys/kern/subr_firmware.c @@ -279,7 +279,7 @@ try_binary_file(const char *imagename, uint32_t flags) struct vattr vattr; void *data = NULL; const struct firmware *fw; - int flags; + int oflags; size_t resid; int error; bool warn = flags & FIRMWARE_GET_NOWARN; @@ -296,8 +296,8 @@ try_binary_file(const char *imagename, uint32_t flags) printf("Trying to load binary firmware from %s\n", fn); NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, fn); - flags = FREAD; - error = vn_open(&nd, &flags, 0, NULL); + oflags = FREAD; + error = vn_open(&nd, &oflags, 0, NULL); if (error) goto err; NDFREE_PNBUF(&nd); @@ -311,8 +311,8 @@ try_binary_file(const char *imagename, uint32_t flags) * Limit this to something sane, 8MB by default. */ if (vattr.va_size > firmware_max_size) { - printf("Firmware %s is too big: %ld bytes, %ld bytes max.\n", - fn, vattr.va_size, firmware_max_size); + printf("Firmware %s is too big: %lld bytes, %ld bytes max.\n", + fn, (long long)vattr.va_size, (long)firmware_max_size); goto err2; } data = malloc(vattr.va_size, M_FIRMWARE, M_WAITOK); From nobody Wed Oct 16 14:44:12 2024 X-Original-To: dev-commits-src-branches@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 4XTDHw3H1pz5Yc63; Wed, 16 Oct 2024 14:44:12 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTDHw2Q7qz4VcV; Wed, 16 Oct 2024 14:44:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089852; 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=NwbnqU2/xr/jSYfJRcCFsnUTkFp6UyD0bNp7NfkkeVM=; b=iZDAIzqY8uU130XDrHW/2nS0wYOXE2kNBCBv1ObC2XWHXLiTLnD3RLSDcm2fdScuuPdWxN 8oRsuZfwii3UL1Qn0i+42h+QUSr1hjCEvTcZiILYxeZXzO5aCfk9B+VaBq9w8KGrwppMdy ZZZQBWkj24APBe3coXmv3EorUm7nFJUmha8TvrpEGazCkABxoWVnkUiu8wKZg513M6Aluq xFSJO+jG2h8NB0ML2RuPyEkrCXgLNOhBtrDiLCntNVW2H7o8ID5Ys+5UDh23hIU+/1zh9L jWgQE+ls1ytWiC+Goh7HbAuYbZiQk+Ht7hSWRcoIDNf8mK5/9pcFbFCeZZENTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729089852; 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=NwbnqU2/xr/jSYfJRcCFsnUTkFp6UyD0bNp7NfkkeVM=; b=HQxOfVhu5o0cKpxAVfFZcpL83L2PmjXPrWhPxUlEQUOi5aRTBjVWtBM0tSgsyTywJDEjrg 0wd1irp3P/cnS+CrfCIqUW48rdXiYUVwbEqfG7T3pPr8hZXDFK/ndEWWSZMKJ8U+yRVy4S qf8Nk2LPX4zSBvylI0r8c+ZLHO9Qfc/+R4TVsEr8qJ85BUCUFBemJcCI752fQqI1JJNe8K 1KkTb/QXR6eTW8ud8k8FxbARIqy3OL3LCLwyQh8VmxLHkT/B18GU6dkFp12AqazggmII/c 61foWfcuhXkRfn33ZuAuUXJD6VrXz2o2QFiYaHXUT8h3C4hOrnvDovNu+oIGhg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729089852; a=rsa-sha256; cv=none; b=e6i/UtBLp8H5ENblihj7hO9qDWb18/BU/I6RWbOD9lrRVNkax1JGmHQGPfYYu74KkAG4Ij BbJIaK6+mNF8E1OCOMCuqQoVzZjR8ErBzWLq9d+sTOTd4+gthrw5e3Jv+p5XAjrq0uTHzo Ufd9UNJlEckIGh7oOCUvnUYErvE+1xTZF8W6ja0HjpDknt3Nar7P1rZ2zV29fFGQaaOfrY ip62hWCJmEyAqxr4uBIhhz1osM93vvMZpmw5UXzlZjkhTv8ntHQKAmwqhnwQjD4wqBsjlD xzTYGL+Oe0FnxgK+kPV4sAs1RyU7GnOKTVpB8B2iYCe+F7GD1MAGGGlwlG2niQ== 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 4XTDHw20vcz199d; Wed, 16 Oct 2024 14:44:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49GEiC5I007142; Wed, 16 Oct 2024 14:44:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49GEiCa1007139; Wed, 16 Oct 2024 14:44:12 GMT (envelope-from git) Date: Wed, 16 Oct 2024 14:44:12 GMT Message-Id: <202410161444.49GEiCa1007139@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: e360f8c8fecc - stable/13 - mps/mpr: Add workaround for firmware not responding to IOC_FACTS or IOC_INIT List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e360f8c8fecc78d8f2aa2aee46940ec5eca86c87 Auto-Submitted: auto-generated The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e360f8c8fecc78d8f2aa2aee46940ec5eca86c87 commit e360f8c8fecc78d8f2aa2aee46940ec5eca86c87 Author: prateek sethi AuthorDate: 2024-10-13 18:38:54 +0000 Commit: Warner Losh CommitDate: 2024-10-16 14:33:33 +0000 mps/mpr: Add workaround for firmware not responding to IOC_FACTS or IOC_INIT Sometimes, especially with older firmware, mps(4) would have trouble initializing the card in one of these two steps. Add in a retry after a short delay. Sean Bruno and Stephen McConnell thought this was OK in the bug discussions, but never committed it. Steve indicated the delay might not be necessary, but the OP clearly needed to make it longer to make things work. I've kept the delay, and added the suggested comment. Ported the iocfacts part to mpr as well, since we see similar errors about once every month or two over a few thousand controllers at work. We've not seen it with IOC_INIT as far back as I can query the error log database, so I didn't port that forward. We'll see if this helps, but won't know for sure until next year (so I'm committing it now since it won't hurt and might help). We usually see this failure in connection with complicated recovery operations with a drive that's failing, though, at least in the last year's worth of failures. It's not clear this is the same as OP or not. PR: 212841 Sponsored by: Netflix Co-authored-by: imp (cherry picked from commit c0e0e530ced057502f51d7a6086857305e08fae0) --- sys/dev/mpr/mpr.c | 23 ++++++++++++++++++----- sys/dev/mps/mps.c | 38 ++++++++++++++++++++++++++++++-------- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/sys/dev/mpr/mpr.c b/sys/dev/mpr/mpr.c index f042f71825b5..f87b55c3dba5 100644 --- a/sys/dev/mpr/mpr.c +++ b/sys/dev/mpr/mpr.c @@ -1195,7 +1195,7 @@ mpr_get_iocfacts(struct mpr_softc *sc, MPI2_IOC_FACTS_REPLY *facts) { MPI2_DEFAULT_REPLY *reply; MPI2_IOC_FACTS_REQUEST request; - int error, req_sz, reply_sz; + int error, req_sz, reply_sz, retry = 0; MPR_FUNCTRACE(sc); mpr_dprint(sc, MPR_INIT, "%s entered\n", __func__); @@ -1204,13 +1204,26 @@ mpr_get_iocfacts(struct mpr_softc *sc, MPI2_IOC_FACTS_REPLY *facts) reply_sz = sizeof(MPI2_IOC_FACTS_REPLY); reply = (MPI2_DEFAULT_REPLY *)facts; + /* + * Retry sending the initialization sequence. Sometimes, especially with + * older firmware, the initialization process fails. Retrying allows the + * error to clear in the firmware. + */ bzero(&request, req_sz); request.Function = MPI2_FUNCTION_IOC_FACTS; - error = mpr_request_sync(sc, &request, reply, req_sz, reply_sz, 5); - - adjust_iocfacts_endianness(facts); - mpr_dprint(sc, MPR_TRACE, "facts->IOCCapabilities 0x%x\n", facts->IOCCapabilities); + while (retry < 5) { + error = mpr_request_sync(sc, &request, reply, req_sz, reply_sz, 5); + if (error == 0) + break; + mpr_dprint(sc, MPR_FAULT, "%s failed retry %d\n", __func__, retry); + DELAY(1000); + retry++; + } + if (error == 0) { + adjust_iocfacts_endianness(facts); + mpr_dprint(sc, MPR_TRACE, "facts->IOCCapabilities 0x%x\n", facts->IOCCapabilities); + } mpr_dprint(sc, MPR_INIT, "%s exit, error= %d\n", __func__, error); return (error); } diff --git a/sys/dev/mps/mps.c b/sys/dev/mps/mps.c index ca037071c298..33b64fe7f9cf 100644 --- a/sys/dev/mps/mps.c +++ b/sys/dev/mps/mps.c @@ -1127,7 +1127,7 @@ mps_get_iocfacts(struct mps_softc *sc, MPI2_IOC_FACTS_REPLY *facts) { MPI2_DEFAULT_REPLY *reply; MPI2_IOC_FACTS_REQUEST request; - int error, req_sz, reply_sz; + int error, req_sz, reply_sz, retry = 0; MPS_FUNCTRACE(sc); mps_dprint(sc, MPS_INIT, "%s entered\n", __func__); @@ -1136,10 +1136,21 @@ mps_get_iocfacts(struct mps_softc *sc, MPI2_IOC_FACTS_REPLY *facts) reply_sz = sizeof(MPI2_IOC_FACTS_REPLY); reply = (MPI2_DEFAULT_REPLY *)facts; + /* + * Retry sending the initialization sequence. Sometimes, especially with + * older firmware, the initialization process fails. Retrying allows the + * error to clear in the firmware. + */ bzero(&request, req_sz); request.Function = MPI2_FUNCTION_IOC_FACTS; - error = mps_request_sync(sc, &request, reply, req_sz, reply_sz, 5); - mps_dprint(sc, MPS_INIT, "%s exit error= %d\n", __func__, error); + while (retry < 5) { + error = mps_request_sync(sc, &request, reply, req_sz, reply_sz, 5); + if (error == 0) + break; + mps_dprint(sc, MPS_FAULT, "%s failed retry %d\n", __func__, retry); + DELAY(1000); + retry++; + } return (error); } @@ -1149,7 +1160,7 @@ mps_send_iocinit(struct mps_softc *sc) { MPI2_IOC_INIT_REQUEST init; MPI2_DEFAULT_REPLY reply; - int req_sz, reply_sz, error; + int req_sz, reply_sz, error, retry = 0; struct timeval now; uint64_t time_in_msec; @@ -1193,10 +1204,21 @@ mps_send_iocinit(struct mps_softc *sc) time_in_msec = (now.tv_sec * 1000 + now.tv_usec/1000); init.TimeStamp.High = htole32((time_in_msec >> 32) & 0xFFFFFFFF); init.TimeStamp.Low = htole32(time_in_msec & 0xFFFFFFFF); - - error = mps_request_sync(sc, &init, &reply, req_sz, reply_sz, 5); - if ((reply.IOCStatus & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS) - error = ENXIO; + /* + * Retry sending the initialization sequence. Sometimes, especially with + * older firmware, the initialization process fails. Retrying allows the + * error to clear in the firmware. + */ + while (retry < 5) { + error = mps_request_sync(sc, &init, &reply, req_sz, reply_sz, 5); + if ((reply.IOCStatus & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS) + error = ENXIO; + if (error == 0) + break; + mps_dprint(sc, MPS_FAULT, "%s failed retry %d\n", __func__, retry); + DELAY(1000); + retry++; + } mps_dprint(sc, MPS_INIT, "IOCInit status= 0x%x\n", reply.IOCStatus); mps_dprint(sc, MPS_INIT, "%s exit\n", __func__); From nobody Thu Oct 17 09:16:42 2024 X-Original-To: dev-commits-src-branches@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 4XThzb3T9vz5Ym7J; Thu, 17 Oct 2024 09:16:43 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzb1bK3z4HXV; Thu, 17 Oct 2024 09:16:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156603; 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=qvBrvEFg6OcYVPX1w7EsCEshifQUqt+vkO6BQDiAKwo=; b=SUXzSJrhE2jGXXbxadWu9Ns0o1wsm4YMSxoDibjJ44k+I7DOejrCuwVxJldfNR/n5qdlW3 /nxxxbXrubHhjo3ESmNPjWojqRk/md3OfG50gSJwc3H0x89JAq7IsOUkU0Cr55+v55kx7P TnT8wtAEfPeme1TaGeN9tR9nhCL4noKpQq9TZ0V3fEOH6I8IbsK8PAuoGS/dmRe7OGqPXO 0wAiS3W6kHXCKzpSxT7sEvyZ/TmGnNIFj51vQUkpS/0cIEBbyVTIdTGhF9gFabZoATXYtM F1zltiYmJxnVdLW2SVuA0akU6PQUPzLsq586SLH+yu8BGUtOHCrSro2lMf6DoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156603; 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=qvBrvEFg6OcYVPX1w7EsCEshifQUqt+vkO6BQDiAKwo=; b=psg7OJt7ZhbF+Bu33mlZtN7ksE8Vg5xjqqJKyfQv7qr9VgGY0qcuTFl85Tv9Gv4d21HjD9 V//qvAIeBSLY3h9ejNtRpFoqBxduC1UwBiuQzVoOami6ZjIi7Y2/wc3smgkn6gJrVgynJk tEA9Z3d5Ts9Qk0VNT+ve6EV9Yqmq1op+RdaTJw0L5NxhZZfklCpf6z659+M01qf3vC7RdX YQK+ZzNBcw7r0zDFjORjgzO1H1/9cYkwX4lmAorVuTaqu9O86zBbcrB/essq36ZZKJJq4k pGB7Cm5lzutpnvz5qbnX0qIK4H+jWSQ0fQFxDLEynnDj1jJFwIHSGHaUOPTapw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156603; a=rsa-sha256; cv=none; b=X0XXH+8IWjB0oOSZzCiMMnqfT0gKMpOAcEHI7yAbW3XVfw4+4RK1BtHhZ4HFnlwSatVijx 8nVRO9Lh0sJtwEnat/uFoQ5iQloMzqKaChH+sclIS+GQao3pYGfSL2JiPAI1UIrUPH8s0n A2rVcfcRaDKxa7SMF2wFRrKH6QsgPFrep4E75jaaN7xbPyuv/wD9EZzhNzfERLN0wyKnAy FdBc6xePFJ9UXRaQTD/XWMYJKjOUNtOqZO6q17pruJAOVifbJPLfrDwDr/3QBB1gep8NLk dq/sand35JW75EgKiJzi1tj4eRhToE/m3pinaXVCPe3Uhiw6ZNUAR68dNbLr5Q== 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 4XThzZ6xXMzk8r; Thu, 17 Oct 2024 09:16:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9GgTM087502; Thu, 17 Oct 2024 09:16:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9GgF1087499; Thu, 17 Oct 2024 09:16:42 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:42 GMT Message-Id: <202410170916.49H9GgF1087499@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 65de0f1855f3 - stable/14 - LinuxKPI: 802.11: fix ieee80211_schedule_txq() to avoid rtw89 panic List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 65de0f1855f3e2e49413dfa03ffbfd6735d3e738 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=65de0f1855f3e2e49413dfa03ffbfd6735d3e738 commit 65de0f1855f3e2e49413dfa03ffbfd6735d3e738 Author: Austin Shafer AuthorDate: 2024-10-10 15:31:07 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:46:19 +0000 LinuxKPI: 802.11: fix ieee80211_schedule_txq() to avoid rtw89 panic rtw89 TX path was faulting in linuxkpi_ieee80211_next_txq() due to a "double scheduling" check in linuxkpI_ieee80211_schedule_txq() being incorrect: the next pointer may be NULL there if the element is the last in the tailq, so correctly check tqe_prev. Without the fix we may have queued the same element to the tailq twice, and because it was the last element and had a NULL tqe_next, that NULL value would get propogated into another node's tqe_prev on removal, and other such nastiness. With this rtw89 no longer panics. Reviewed by: bz Differential Revision: https://reviews.freebsd.org/D47006 (cherry picked from commit 41b746e05231b44c87f3a3087a7fe29966af6d0f) --- sys/compat/linuxkpi/common/src/linux_80211.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 56bc9252511a..ff257bf32766 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -6075,8 +6075,12 @@ void linuxkpi_ieee80211_schedule_txq(struct ieee80211_hw *hw, if (!withoutpkts && ltxq_empty) goto out; - /* Make sure we do not double-schedule. */ - if (ltxq->txq_entry.tqe_next != NULL) + /* + * Make sure we do not double-schedule. We do this by checking tqe_prev, + * the previous entry in our tailq. tqe_prev is always valid if this entry + * is queued, tqe_next may be NULL if this is the only element in the list. + */ + if (ltxq->txq_entry.tqe_prev != NULL) goto out; lhw = HW_TO_LHW(hw); From nobody Thu Oct 17 09:16:44 2024 X-Original-To: dev-commits-src-branches@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 4XThzc29lbz5Ylxk; Thu, 17 Oct 2024 09:16:44 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzc1DQyz4HZC; Thu, 17 Oct 2024 09:16:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156604; 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=c4y/F/1pYSV+wXWyapvIZLgg0AR9Jqtnv+b3f8TTAnk=; b=sjF/hH686UJzbiOar3G3aVZ+kp/NaLp7P5rRx9zTh9VjEsgtWFX/HkCT7ODFzzbMAP5CQI 65DIfIlgtVlnL7eDV267f7rX05QkubFqW6qvORFj/xf8I+RQ9qUgS9ErmkEhUYs7WJoMER OZBkLuMbhXzGBeSCnsE0zpWlkp6UgKIZOX6V5Pmgf9MVN4pMsmigKryZcs4UMuEvsqgkkM Cj/yhCtttLqzvsLkrDG8SkKqDq1itjRFdHCu1MrwI9f92/K68NeJ08EGj1lU7CAR2Cfgnx qwH1MrjydHIXgq+Mn7gknfcSVisXoLyMHJmIb1kiyO0x0yTl+jcoik5PtyGukQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156604; 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=c4y/F/1pYSV+wXWyapvIZLgg0AR9Jqtnv+b3f8TTAnk=; b=k/UWArckOF83HuNdTStuDwW9VtDJCE7a+GF2+E4Wj+INfpIEpb0aPGV8+HaKRzcvAHczi6 tjcoOSmZofAwO4F5FKI3nsXJUmtIno+ipPX5O3UghHZbf6oiDmG0y2uQfuQ/xmGgd565CL XSXOAD5VkzkT8ZwaDdHaVoo74yw3tEtof4NuWYQcTEuL8pLyW/Y5LhyI8xHVdi9NgPf8Hg P7SJ9ZJR/Xe5CnzVVnL7gtk7J5ocV0i51/4eW6ddxvNi9XobPAaOBRzpSV621FL0e4h5+Z BcV4l3qUXEU0eceLMJ1oEu7xS+Vlp4HjL1f2mLgzpz4G5dQ1j7l8Y4rnYnVCtQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156604; a=rsa-sha256; cv=none; b=P0nPpZF2gkooxBMwm7eOI83x8UNErcB7djIzy8x6KtTgM67rNTB5N6cHZAh0lvdKFlUcWV dsHlQg6JKVyG58JwsrsLRnLKT6hP4qZ6UOuifUBsM2Ggtn/SPYJPHxMIsnSRvQowjq+WCz NkVjLe9e+Cuq+n5WUHTn2Fi/zZYsvp483Mq5iire0vep5HlqedQn8KIuscMaLuc0YZ+WsT 7yLlypAn8ippwofBPtcoabIfk8/ECf9nLn2vj7BUicp0J9DEPgZxzbS/c6+kbgJVh/5JLv MO7zuTRPiO6dTe6nBFGldaLXFs61DaheROqWz7smo5G+5N2dXg5cgpt09/oWAQ== 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 4XThzc0qj0zkRm; Thu, 17 Oct 2024 09:16:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9GimG087563; Thu, 17 Oct 2024 09:16:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9GiVs087560; Thu, 17 Oct 2024 09:16:44 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:44 GMT Message-Id: <202410170916.49H9GiVs087560@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 9bb9bfc76941 - stable/14 - rtw89: add missing bsddriver.name assignments for two chipsets List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9bb9bfc76941e5a72560e57499cbad6d856fc75f Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9bb9bfc76941e5a72560e57499cbad6d856fc75f commit 9bb9bfc76941e5a72560e57499cbad6d856fc75f Author: Bjoern A. Zeeb AuthorDate: 2024-10-10 23:07:55 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:46:27 +0000 rtw89: add missing bsddriver.name assignments for two chipsets On FreeBSDs we locally set bsddriver.name in struct pci_driver to have the same name for all chipsets. This helps with, e.g., device enumeration. For two chipsets the manual entry was missing. Sponsored by: The FreeBSD Foundation (cherry picked from commit ce15215befa1022d9a20ec15bdb0739dbe55f10f) --- sys/contrib/dev/rtw89/rtw8851be.c | 3 +++ sys/contrib/dev/rtw89/rtw8852be.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/sys/contrib/dev/rtw89/rtw8851be.c b/sys/contrib/dev/rtw89/rtw8851be.c index 0f7711c50bd1..76216b790450 100644 --- a/sys/contrib/dev/rtw89/rtw8851be.c +++ b/sys/contrib/dev/rtw89/rtw8851be.c @@ -78,6 +78,9 @@ static struct pci_driver rtw89_8851be_driver = { .probe = rtw89_pci_probe, .remove = rtw89_pci_remove, .driver.pm = &rtw89_pm_ops, +#if defined(__FreeBSD__) + .bsddriver.name = KBUILD_MODNAME, +#endif }; module_pci_driver(rtw89_8851be_driver); diff --git a/sys/contrib/dev/rtw89/rtw8852be.c b/sys/contrib/dev/rtw89/rtw8852be.c index ecf39d2d9f81..be96ff56d699 100644 --- a/sys/contrib/dev/rtw89/rtw8852be.c +++ b/sys/contrib/dev/rtw89/rtw8852be.c @@ -82,6 +82,9 @@ static struct pci_driver rtw89_8852be_driver = { .probe = rtw89_pci_probe, .remove = rtw89_pci_remove, .driver.pm = &rtw89_pm_ops, +#if defined(__FreeBSD__) + .bsddriver.name = KBUILD_MODNAME, +#endif }; module_pci_driver(rtw89_8852be_driver); From nobody Thu Oct 17 09:16:45 2024 X-Original-To: dev-commits-src-branches@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 4XThzd2YpJz5Ylxl; Thu, 17 Oct 2024 09:16:45 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzd1m90z4HVG; Thu, 17 Oct 2024 09:16:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156605; 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=zL49oYIjqCGcupqXJP6CnMw76Q61Hshv5huAxaslvLw=; b=YNejMiJsFhhc9g8SbbQZWn46Hgqx7aWlxbblQ8E8fYQuxWk8eaWMt++d5Oo9BtWzB13UGT cMfY33FtVIr33rQ9J9E0mnm8yvzAfYHFsNI3spVPs8ZHiV8c+sDvMxrifKqVqPDxBacBDv xb5kvkNTsPfLzc2SMJb3ZKjc+eK+zn4GvHNrrkhkJDj6kAqWUWK2UlEoq/+jWggclwU18e GeDdgC1NPDBAwnzcBGcMMtdOrvfHTkoAuyMEIuO8f5sze92JJJiORlwgF/cDWgiXDganM4 Z5MrQiU4rAqQbk5zhtQlFH6DHli2E0MCz/e0YU/cROxkWbPsd9LgAzYlsHElew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156605; 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=zL49oYIjqCGcupqXJP6CnMw76Q61Hshv5huAxaslvLw=; b=yTA6g1Qj5WIZsI3cHJsX7oad9NAb6TBoMJYq+CuLF3RLJeKsKH/AJYBNNfpyt2suqnnoYv FUkyvi4cqO2MuZCYwZcaOni9ErFI6aLTQcAw0+vHLbtIsqM62FYSEpGEz7ey9rhOj++IOr zzu8KcIUg6mw4MgBoGUM6wIo+N6E2X9buRTXW4DsAW5WsWI18yVnz4WvkCDhbF86RvR+Ua fWS9JYhJjFAv+tuOwN9LZW6HnLwgQLpJSwMmRR6tRda92zq7XoMQJ6nMiBLri8o5zfRbQb EjFDJD48zYf7kjEWHn4/jraGF77iUnzx+Rnm0wHN3TpL8hMpBZTWbtwh0P/6Lw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156605; a=rsa-sha256; cv=none; b=s1csOZlHnShFEILK/v1u3Oo+a8MruEC/HzjMvy7o1HHxn7iDcSLHg5D8hHg1R9OXS6GgBM QZBqiKzbXDVX3rs9gSPi4y9nzydJnoMOFvcKcDftSFmAHjxc9e2YExnGcenJW9P+oPEF2e 7hJ9aazTHBrERLzZeiUyP61CdHNpJX54aFSbK9fDL6gpTwqq9MRgLEL6z+IEWScLbKpsAk Ql6TS1318vBH85TKi4128IVDRm30h9gZWzvWMw7MWyMSKwUMVIWhh80crntvmcloEIM0nr pup9ngsanFUCvmTgS8r+fTt13afk7BW+pzjxF5EUm24NGurt0iCvefAabzc8Wg== 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 4XThzd1Mn1zkBn; Thu, 17 Oct 2024 09:16:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9Gj3W087627; Thu, 17 Oct 2024 09:16:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9GjHa087624; Thu, 17 Oct 2024 09:16:45 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:45 GMT Message-Id: <202410170916.49H9GjHa087624@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: a2d1e07f6451 - stable/14 - rtw89: add man page and hook driver up to the build List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a2d1e07f6451fa5d1803e6dba819db2020bf1c31 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a2d1e07f6451fa5d1803e6dba819db2020bf1c31 commit a2d1e07f6451fa5d1803e6dba819db2020bf1c31 Author: Bjoern A. Zeeb AuthorDate: 2023-04-18 15:17:41 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:49:29 +0000 rtw89: add man page and hook driver up to the build After two years, add the initial man page and hook Realteks rtw89 driver up to the build for more people to test given successful reports. devd.conf is already providing support based on the rtw regex. The driver uses the LinuxKPI compat layer. Firmware is provided by ports: net/wifi-firmware-rtw89-kmod or one of the flavours. People are advised to used fwget(8) to automatically install the correct firmware for their chipset. Please note that for the moment the driver requires a tunable to be set in loader.conf: compat.linuxkpi.skb.mem_limit=1 Many thanks to everyone who in the last two years helped testing, debugged, submitted patches to get the driver to this stage where initial functionality seems working. Sponsored by: The FreeBSD Foundation (cherry picked from commit 310c31d3f04ef9d3ebe598fd076d017a48d0ca0d) --- share/man/man4/Makefile | 1 + share/man/man4/rtw89.4 | 126 ++++++++++++++++++++++++++++++++++++++++++++++++ sys/modules/Makefile | 2 + 3 files changed, 129 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index d4b5e39e94d9..7f6c9a501238 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -474,6 +474,7 @@ MAN= aac.4 \ rtsx.4 \ rtw88.4 \ rtw88fw.4 \ + rtw89.4 \ rtwn.4 \ rtwnfw.4 \ rtwn_pci.4 \ diff --git a/share/man/man4/rtw89.4 b/share/man/man4/rtw89.4 new file mode 100644 index 000000000000..2e1f2676eb8e --- /dev/null +++ b/share/man/man4/rtw89.4 @@ -0,0 +1,126 @@ +.\"- +.\" Copyright (c) 2023-2024 Bjoern A. Zeeb +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd October 10, 2024 +.Dt RTW89 4 +.Os +.Sh NAME +.Nm rtw89 +.Nd Realtek IEEE 802.11ax wireless network driver +.Sh SYNOPSIS +The driver will auto-load without any user interaction using +.Xr devmatch 8 +if enabled in +.Xr rc.conf 5 . +.Pp +Only if auto-loading is explicitly disabled, place the following +lines in +.Xr rc.conf 5 +to manually load the driver as a module at boot time: +.Bd -literal -offset indent +kld_list="${kld_list} if_rtw89" +.Ed +.Pp +It is discouraged to load the driver from +.Xr loader 8 . +.Sh DESCRIPTION +The +.Nm +driver is derived from Realtek's Linux rtw89 driver. +.Pp +This driver requires firmware to be loaded before it will work. +The package +.Pa wifi-firmware-rtw89-kmod +from the +.Pa ports/net/wifi-firmware-rtw89-kmod +port needs to be installed before the driver is loaded. +Otherwise no +.Xr wlan 4 +interface can be created using +.Xr ifconfig 8 . +One should use +.Xr fwget 8 +to install the correct firmware package. +.Pp +The driver uses the +.\" No LinuxKPI man pages so no .Xr here. +.Em linuxkpi_wlan +and +.Em linuxkpi +compat framework to bridge between the Linux and +native +.Fx +driver code as well as to the native +.Xr net80211 4 +wireless stack. +.Pp +While +.Nm +supports all 802.11 a/b/g/n/ac and ax +the compatibility code currently only supports 802.11 a/b/g modes. +Support for 802.11 n/ac is to come. +.Sh LOADER TUNABLES +.Bl -tag -width indent +.It Va compat.linuxkpi.skb.mem_limit +If you are running a 64bit system with more than 4GB of main memory +you need to set this tunable to +.Sy 1 +in +.Xr loader.conf 5 +and reboot once to make it effective. +This tunable will work around a problem with DMA and limit allocations +for network buffer memory to the lower 32bit of physical memory and +make the driver work. +.El +.Sh HARDWARE +The +.Nm +driver supports PCIe devices with the following chipsets: +.Pp +.Bl -tag -width Ds -offset indent -compact +.It Realtek 802.11ax wireless 8851be (RTL8851BE) +.It Realtek 802.11ax wireless 8852ae (RTL8852AE) +.It Realtek 802.11ax wireless 8852be (RTL8852BE) +.It Realtek 802.11ax wireless 8852ce (RTL8852CE) +.El +.Sh BUGS +Certainly. +.Pp +Does not seem to work (reliably) on machines with more than 4GB of +main memory. +See in the +.Sx LOADER TUNABLES +section above. +.Sh SEE ALSO +.Xr wlan 4 , +.Xr fwget 8 , +.Xr ifconfig 8 , +.Xr wpa_supplicant 8 +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 14.2 . diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 674ae1a86bc5..45eec38565e2 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -342,6 +342,7 @@ SUBDIR= \ rtsx \ ${_rtw88} \ ${_rtw88fw} \ + ${_rtw89} \ rtwn \ rtwn_pci \ rtwn_usb \ @@ -572,6 +573,7 @@ _rtw88= rtw88 .if ${MK_SOURCELESS_UCODE} != "no" _rtw88fw= rtw88fw .endif +_rtw89= rtw89 _vmware= vmware .endif From nobody Thu Oct 17 09:16:46 2024 X-Original-To: dev-commits-src-branches@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 4XThzf51mCz5Yld5; Thu, 17 Oct 2024 09:16:46 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzf3brQz4HZN; Thu, 17 Oct 2024 09:16:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156606; 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=Rs3/kCuKg2+4ITUgp8cyV858OY+/YRtvbKLQRab7/i0=; b=axII1X2E4SVe7rWWYI+EkURx8QhQKe42fRguedCGOIEzUem2tBtbhRqkXprSlzbqG5v/+1 kMSgNKdO9suakTB5TnzAQUNBQL8B9zk+Mi92qHFdaHlnCcGF9L6c9CvykXdCKzXvziQZhy xpGEm6NN5wf4lW1NJag0diVtckzn50n3ZcWfnyXg6z4dnl48z2gB73PQJqf9YC4hl07aa+ XvXvM45yFqSNTw4lqDgbYpZIu46oSq8MMjiKykYoEAcmAFpokHfB0fcOID5oCXiPfI5XOO qouye6a3CrLTUaPIu7LuIW6AhuD/bh9MF5lciayK+el4QYWG91SdHLSAVlm/Dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156606; 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=Rs3/kCuKg2+4ITUgp8cyV858OY+/YRtvbKLQRab7/i0=; b=GbqfvMHdNPLnppQJLh75rpK0cxw2vBEA0Q3E1wsoTjG8imyuveJsGg88H9yOAfBL5XdWZH SO8IwemlU52+PLYPFLCIZVKvzV+BsdbKsf3kyebHjWhmfy47zeAJy/a4X270Sr8jWgLF4B WEoWmNzZ6IYLdwjnmU+b5DvOQUcVE6z4y4pfg0I9DsGWSP/DgsrqgCszzt4PQVmuhtAdtM CJ7AH56CpYResp89J4EOxQkP0eNGjALkR/KXSMk7H/cqT+MBGjIrOWD/5hlxIDaX5EB2CM IeaLPLJJhEcb1Px0dF95u/Bwl/ZffG288S615k5f63U/uG1WrZHx0BK/HPIeaw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156606; a=rsa-sha256; cv=none; b=rBM6rKnRkCTtCbasV1gtEDG+68KeotPEe54ID+sDmGPsp4B4vRGm7pIL5/1eOtDdrTMKZi ksZ9re2+rtYVFB8CnPMV1oBfFngvhVZYNSJOFU16sD6bY5+TavYTyO/qmI2FvK1FeqPWen F55069sUTCl5UyJd1j9sGu5aFk91lpPYasDIzYGCUr8g0rophTl+P5japJPGA1OODZ5kWT 2Iu+wFP8I9vEW8onlUiAfze1F1KdUkuYBYAfpE0c9iULY4zF1iSah+gSGAbpUuZ4/x3odq wC9XO9YhKS4NbNzuP6hxyrTOZknG9PVwOuIp9jejnyOphLrJS6Ij+UBhOAwB+w== 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 4XThzf2dh1zkcL; Thu, 17 Oct 2024 09:16:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9GkaT087675; Thu, 17 Oct 2024 09:16:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9Gkgx087672; Thu, 17 Oct 2024 09:16:46 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:46 GMT Message-Id: <202410170916.49H9Gkgx087672@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 080484840344 - stable/14 - LinuxKPI: add time_is_before_jiffies() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 080484840344fbf243b67f2541bb3be296679a8b Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=080484840344fbf243b67f2541bb3be296679a8b commit 080484840344fbf243b67f2541bb3be296679a8b Author: Bjoern A. Zeeb AuthorDate: 2024-09-28 22:32:03 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:49:40 +0000 LinuxKPI: add time_is_before_jiffies() Add time_is_before_jiffies() as needed by iwlwifi from v6.11. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D46841 (cherry picked from commit 8f9567628cb2ccb335640c4bb044df2ebf45d83a) --- sys/compat/linuxkpi/common/include/linux/jiffies.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/compat/linuxkpi/common/include/linux/jiffies.h b/sys/compat/linuxkpi/common/include/linux/jiffies.h index d5cb6e14860e..bd05a0db0767 100644 --- a/sys/compat/linuxkpi/common/include/linux/jiffies.h +++ b/sys/compat/linuxkpi/common/include/linux/jiffies.h @@ -52,6 +52,7 @@ (time_after_eq(a,b) && time_before_eq(a,c)) #define time_is_after_eq_jiffies(a) time_after_eq(a, jiffies) #define time_is_after_jiffies(a) time_after(a, jiffies) +#define time_is_before_jiffies(a) time_before(a, jiffies) #define HZ hz From nobody Thu Oct 17 09:16:47 2024 X-Original-To: dev-commits-src-branches@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 4XThzg66ywz5Ym52; Thu, 17 Oct 2024 09:16:47 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzg437Dz4Hg6; Thu, 17 Oct 2024 09:16:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156607; 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=9s9xSgJSQl6Wfor7ocsKtx8OA1OVsZdHqpUz7Enh8Gs=; b=FluZqW2KY2KL9W+otELb5av3gdd0m+jjaubX/1liK0adptPyZfxKUhWDFvFMB/sRFJX2It 5IbJ27jN7hemvOdHNMaGnHg2asm4r5T/lyUS+SNN5MDnAI6s8xgfIdFKvY+0CTH2Re6sNX ZaLDHiMzJm6ASrj4Wbe9IxczFek2R4k7Nm9eW/vgKuEj8cUaJGf0mK9dbYW4GgtXFMe7xi wYvO8iyQASJ9/Kdv43OZrIOp6B3CJxdpWlCtwzmBonR72VPcUDBUgznZLH72ZLdsuIhQKV v8Kz+CPfvOrwsboh7tvZjyCN7P6n+PE/GVqzWThr+WBIPajmE/xsK9UBTLETAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156607; 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=9s9xSgJSQl6Wfor7ocsKtx8OA1OVsZdHqpUz7Enh8Gs=; b=PvrZx2EQGPahDVsM8hzp4pqjCjIAeqYQDtgbniJATrJedWvdA0ApjSBP7UKD6l7W4uVQRE Ki0+9aoQxS8oJ+g6pOPJogvvGQXvOxQzZ+uli8djn1UL/BpnokAu1qOqSHG9VylihQRGSb X3RXs9tJYP0WDVKoRS9kV+QwlKiTOUtcVmB8uxRahjkJjxcnhz5G4TlmSkuvh0pIi7ZZyr 7b+vWEXE+xV6iM969wNJbUxHCYk9zV2YPJv0qMtb7HojXEdtdjDpa67xpKZwzy+lmJKPPo TfbGIwFCUP3kWl/yIognQoc0D648fIIsbbI4SUwl/tF7Q5rERSv4f+oerttpQw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156607; a=rsa-sha256; cv=none; b=lOaakiKzdWIWtwudp59AWO7kMIkIKLM29E2X6SLgqovyGIhkNRviPsFa3Q6r1EGmB46PNk vPw66Ta3XFBO73Qcuzf2aV0WRlIvT5jXrjH323dNn8BVpK3h0RTnA68Cc4fq/T2hmHDsvQ JNSY0f6paagS9UU9EJva2JB+Zs+wGk7FiBoG1yKq/hpqH98AVZZLNnHAL3KP8ilYZiKDIu JMJIBGkQxWSkx62efv0a+syo7lfIx83m/p+9/Uy+gEI+YPG3GxzpGnOKm4OxKyMUPxWXy3 Ffg+L9qbBLFejwRbxY6j0l5ZJtBVwR9+v2HsZLJCHGyD/FxowxtKYxT4zgdACA== 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 4XThzg3cTJzkRn; Thu, 17 Oct 2024 09:16:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9GliS087717; Thu, 17 Oct 2024 09:16:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9GlIM087714; Thu, 17 Oct 2024 09:16:47 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:47 GMT Message-Id: <202410170916.49H9GlIM087714@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 20fe7e889f3f - stable/14 - LinuxKPI: always include linux/kconfig.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 20fe7e889f3fa6cdd3587ee03cbd2fe4d9d38041 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=20fe7e889f3fa6cdd3587ee03cbd2fe4d9d38041 commit 20fe7e889f3fa6cdd3587ee03cbd2fe4d9d38041 Author: Bjoern A. Zeeb AuthorDate: 2024-09-26 21:36:17 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:49:45 +0000 LinuxKPI: always include linux/kconfig.h Always include linux/kconfig.h which seems to match Linux behaviour and avoid errors compiling code expected from that file but never included. Sponsored by: The FreeBSD Foundation Reviewed by: emaste, imp Differential Revision: https://reviews.freebsd.org/D46801 (cherry picked from commit 41283b454b7abd3de251ec8234d19b67dbca3916) --- sys/conf/kern.pre.mk | 3 ++- sys/conf/kmod.mk | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index 53b9862f2145..6c027ca7c208 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -318,7 +318,8 @@ NORMAL_CTFCONVERT= @: # Linux Kernel Programming Interface C-flags LINUXKPI_INCLUDES= -I$S/compat/linuxkpi/common/include \ - -I$S/compat/linuxkpi/dummy/include + -I$S/compat/linuxkpi/dummy/include \ + -include $S/compat/linuxkpi/common/include/linux/kconfig.h LINUXKPI_C= ${NORMAL_C} ${LINUXKPI_INCLUDES} # Infiniband C flags. Correct include paths and omit errors that linux diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index 48872f88932d..9310f1572b41 100644 --- a/sys/conf/kmod.mk +++ b/sys/conf/kmod.mk @@ -109,7 +109,8 @@ LINUXKPI_GENSRCS+= \ LINUXKPI_INCLUDES+= \ -I${SYSDIR}/compat/linuxkpi/common/include \ - -I${SYSDIR}/compat/linuxkpi/dummy/include + -I${SYSDIR}/compat/linuxkpi/dummy/include \ + -include ${SYSDIR}/compat/linuxkpi/common/include/linux/kconfig.h CFLAGS+= ${WERROR} CFLAGS+= -D_KERNEL From nobody Thu Oct 17 09:16:48 2024 X-Original-To: dev-commits-src-branches@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 4XThzj0Nrjz5Ym38; Thu, 17 Oct 2024 09:16:49 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzh53xrz4HPc; Thu, 17 Oct 2024 09:16:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156608; 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=6M6KMDw8qEr2UkxqC6YwdMAnpPh0ztsupTFJFhoESkM=; b=YqfwPye3ZYRP3oRTwgdGkvsmsvzHUdIdZEF9OAbv3GTB7GjBtpswKUq7BhGUBDU1RIg6+X XQj3FZS664l7ScodYlW13sJef4WYfIbymq2ql00y22j0ti6GG6LpaHeL1LXCMzbP+OYRUO 7fGxrF9XkMR3UNWIOy6M6L5CWVUhLkSIsyLI0OhU9m/z+G8a2cIGGsIjST3Ynpti4q6gFn WyjNusCVTLgBMMHVrFBHTrnTpdqjPWEwJ8MhrZkcNIqbIdM8XPbakhZ2FOxHAeYoBABv69 1LdVhG4ZPkwTf/MrUZUO1cos9sdTazU7FIXOwcIw4vHI1C1AmQ+VS5uaj+n6ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156608; 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=6M6KMDw8qEr2UkxqC6YwdMAnpPh0ztsupTFJFhoESkM=; b=vyl1CuabwTLN5fFr21sj0xsrgkLF5WsIBT6pEuv2uuMkUI4QPvFP//6l4VaghEUju/duwI CXRIqsTR6TdfpXAZPbagshmxbSgHh+HAzjicZYGGiAtDEgalj98kZXNe3htmHy4NQMu5rP 7i5cQSAXLhpAe8hbjCBdoMBqN8A525pSBAHfM62WezlQdikfbwXj4hqsqi4pVj050tZYex 9s1aB3CBBZHYcHtSl+vD0biX+QpgTVwrt4oXnGGDO5dgIuNx48R991AWhv/nEnWEaYnGB/ dJKuOTpG7/CKX/lm4tSno2jwTpiTDy38QPaqGktIqJTc5LcQ7rUVgvv8ztV0mg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156608; a=rsa-sha256; cv=none; b=MLIIpIKvzpPSX/13m4XQgH4XpT3Wj4quxyGpmuJy+T0xh4M258+C1UjlHWsuUi0IK41QZk E6UqojBfbG8DGUkPIPoML5qoMZpP6UIjdFdupsT7kjH4kyKlmlp29rehxCxUy1e/fX1LKY N9MV4aF3shgc78DpyRPp4kVhekRU3HL/J0VJ6jsWFGme0qaxAz1//iTVV/VaffS1qh4V2+ AWToYP4ZniJ53P4jN/YBs5l9vsZPPbNkB7iXw+nE8qGcWxWzjCH6bkZVi7pn10tj+6A0q8 WaLv8+IRbqOVtXUzx/1f2z2zW4frBbH4Q1WQ9aka+S3nTVQW2dgQzVqB0ZZA+g== 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 4XThzh4hHVzk8s; Thu, 17 Oct 2024 09:16:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9GmpG087780; Thu, 17 Oct 2024 09:16:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9Gm5G087777; Thu, 17 Oct 2024 09:16:48 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:48 GMT Message-Id: <202410170916.49H9Gm5G087777@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 775a6c0036a9 - stable/14 - man.4: Add .Sh HARDWARE for some wireless drivers for release notes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 775a6c0036a90e4f6eef5f890eda4cc23defdb62 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=775a6c0036a90e4f6eef5f890eda4cc23defdb62 commit 775a6c0036a90e4f6eef5f890eda4cc23defdb62 Author: Bjoern A. Zeeb AuthorDate: 2024-09-30 20:01:23 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:50:19 +0000 man.4: Add .Sh HARDWARE for some wireless drivers for release notes iwlwifi.4 and rtw88.4 did not show up in the hardware list in the release notes for 13.4. The doc/website/tools/hardware-notes-processor.rb script parses the .Sh HARDWARE section to automagically create a note once the manual page is listed in the website/archetypes/release/hardware.adoc file. While here update the other committed man pages not yet connected to the build. Reported by: re (cperciva), grahamperrin Sponsored by: The FreeBSD Foundation Reviewed by: concussious.bugzilla_runbox.com (Alexander Ziaee) Differential Revision: https://reviews.freebsd.org/D46851 (cherry picked from commit 5dbb0b7c19cf40ab6562c03396d245cf3a7374fe) --- share/man/man4/ath10k.4 | 31 ++++++++++++----------- share/man/man4/iwlwifi.4 | 65 +++++++++++++++++++++++++----------------------- share/man/man4/mt7915.4 | 19 ++++++++------ share/man/man4/mt7921.4 | 19 ++++++++------ share/man/man4/rtw88.4 | 25 +++++++++++-------- 5 files changed, 87 insertions(+), 72 deletions(-) diff --git a/share/man/man4/ath10k.4 b/share/man/man4/ath10k.4 index 61c44543815f..4e23382e2450 100644 --- a/share/man/man4/ath10k.4 +++ b/share/man/man4/ath10k.4 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2022 Bjoern A. Zeeb +.\" Copyright (c) 2022-2024 Bjoern A. Zeeb .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 22, 2023 +.Dd September 30, 2024 .Dt ATH10K 4 .Os .Sh NAME @@ -47,18 +47,7 @@ It is discouraged to load the driver from .Sh DESCRIPTION The .Nm -driver is derived from Qualcomm Atheros' Linux ath10k driver and -provides support for the following PCI chipsets: -.Pp -.Bl -tag -width Ds -offset indent -compact -.It QCA6174 -.It QCA9377 -.It QCA9887 -.It QCA9888 -.It QCA988X -.It QCA9984 -.It QCA99X0 -.El +driver is derived from Qualcomm Atheros' Linux ath10k driver .Pp This driver requires firmware to be loaded before it will work. The package @@ -87,6 +76,20 @@ While supports all 802.11 a/b/g/n and ac the compatibility code currently only supports 802.11 a/b/g modes. Support for 802.11 n/ac is to come. +.Sh HARDWARE +The +.Nm +driver supports PCIe devices with the following chipsets: +.Pp +.Bl -tag -width Ds -offset indent -compact +.It QCA6174 +.It QCA9377 +.It QCA9887 +.It QCA9888 +.It QCA988X +.It QCA9984 +.It QCA99X0 +.El .Sh SEE ALSO .Xr wlan 4 , .Xr ifconfig 8 , diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4 index 1cf61c0008b5..ddeeb549d0f4 100644 --- a/share/man/man4/iwlwifi.4 +++ b/share/man/man4/iwlwifi.4 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2021-2023 The FreeBSD Foundation +.\" Copyright (c) 2021-2024 The FreeBSD Foundation .\" .\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from .\" the FreeBSD Foundation. @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 21, 2023 +.Dd September 30, 2024 .Dt IWLWIFI 4 .Os .Sh NAME @@ -54,10 +54,39 @@ It is discouraged to load the driver from .Sh DESCRIPTION The .Nm -driver is derived from Intel's Linux iwlwifi driver and provides support for -all chipsets supported by the +driver is derived from Intel's Linux iwlwifi driver +.Pp +.Nm +will be a successor to +.Xr iwm 4 +and may supersede that driver in the future. +It still complements the +.Xr iwn 4 +driver which supports older chipsets. +.Pp +The driver uses the +.\" No LinuxKPI man pages so no .Xr here. +.Em linuxkpi_wlan +and +.Em linuxkpi +compat framework to bridge between the Linux and +native +.Fx +driver code as well as to the native +.Xr net80211 4 +wireless stack. +.Pp +While +.Nm +supports all 802.11 a/b/g/n/ac/ax +the compatibility code currently only supports 802.11 a/b/g modes. +Support for 802.11 n/ac is to come. 802.11ax and 6Ghz support are planned. +.Sh HARDWARE +The +.Nm +driver supports PCIe devices from the .Em mvm -part of that driver. +sub-driver with the following chipsets: .Pp .Bl -bullet -compact .\" --------------------------------------------------------------------- @@ -182,32 +211,6 @@ Intel(R) Wi-Fi 6 AX204 160MHz Intel(R) TBD Sc device .\" --------------------------------------------------------------------- .El -.Pp -.Nm -will be a successor to -.Xr iwm 4 -and may supersede that driver in the future. -It still complements the -.Xr iwn 4 -driver which supports older chipsets. -.Pp -The driver uses the -.\" No LinuxKPI man pages so no .Xr here. -.Em linuxkpi_wlan -and -.Em linuxkpi -compat framework to bridge between the Linux and -native -.Fx -driver code as well as to the native -.Xr net80211 4 -wireless stack. -.Pp -While -.Nm -supports all 802.11 a/b/g/n/ac/ax -the compatibility code currently only supports 802.11 a/b/g modes. -Support for 802.11 n/ac is to come. 802.11ax and 6Ghz support are planned. .Sh BUGS Certainly. .Sh SEE ALSO diff --git a/share/man/man4/mt7915.4 b/share/man/man4/mt7915.4 index fa5fd626d870..eece142c11a5 100644 --- a/share/man/man4/mt7915.4 +++ b/share/man/man4/mt7915.4 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2023 Bjoern A. Zeeb +.\" Copyright (c) 2023-2024 Bjoern A. Zeeb .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 18, 2023 +.Dd September 30, 2024 .Dt MT7915 4 .Os .Sh NAME @@ -50,12 +50,7 @@ It is discouraged to load the driver from .Sh DESCRIPTION The .Nm -driver is derived from MediaTek's Linux mt76 driver and provides support for -the following chipsets: -.Pp -.Bl -tag -width Ds -offset indent -compact -.It MediaTek MT7915E (PCIe) -.El +driver is derived from MediaTek's Linux mt76 driver. .Pp This driver requires firmware to be loaded before it will work. The package @@ -85,6 +80,14 @@ While supports all 802.11 a/b/g/n/ac and ax the compatibility code currently only supports 802.11 a/b/g modes. Support for 802.11 n/ac is to come. +.Sh HARDWARE +The +.Nm +driver supports PCIe devices with the following chipsets: +.Pp +.Bl -tag -width Ds -offset indent -compact +.It MediaTek MT7915E +.El .Sh BUGS Certainly. .Sh SEE ALSO diff --git a/share/man/man4/mt7921.4 b/share/man/man4/mt7921.4 index 460c90ece808..d28dc520de6b 100644 --- a/share/man/man4/mt7921.4 +++ b/share/man/man4/mt7921.4 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2023 Bjoern A. Zeeb +.\" Copyright (c) 2023-2024 Bjoern A. Zeeb .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 18, 2023 +.Dd September 30, 2024 .Dt MT7921 4 .Os .Sh NAME @@ -50,12 +50,7 @@ It is discouraged to load the driver from .Sh DESCRIPTION The .Nm -driver is derived from MediaTek's Linux mt76 driver and provides support for -the following chipsets: -.Pp -.Bl -tag -width Ds -offset indent -compact -.It MediaTek MT7921E (PCIe) -.El +driver is derived from MediaTek's Linux mt76 driver. .Pp This driver requires firmware to be loaded before it will work. The package @@ -85,6 +80,14 @@ While supports all 802.11 a/b/g/n/ac and ax the compatibility code currently only supports 802.11 a/b/g modes. Support for 802.11 n/ac is to come. +.Sh HARDWARE +The +.Nm +driver supports PCIe devices with the following chipsets: +.Pp +.Bl -tag -width Ds -offset indent -compact +.It MediaTek MT7921E +.El .Sh BUGS Certainly. .Sh SEE ALSO diff --git a/share/man/man4/rtw88.4 b/share/man/man4/rtw88.4 index 6036ad62d84d..f2446a346f59 100644 --- a/share/man/man4/rtw88.4 +++ b/share/man/man4/rtw88.4 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2022 Bjoern A. Zeeb +.\" Copyright (c) 2022-2024 Bjoern A. Zeeb .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 22, 2023 +.Dd September 30, 2024 .Dt RTW88 4 .Os .Sh NAME @@ -51,15 +51,7 @@ It is discouraged to load the driver from .Sh DESCRIPTION The .Nm -driver is derived from Realtek's Linux rtw88 driver and provides support for -the following chipsets: -.Pp -.Bl -tag -width Ds -offset indent -compact -.It Realtek 802.11n wireless 8723de (RTL8723DE) -.It Realtek 802.11ac wireless 8821ce (RTL8821CE) -.It Realtek 802.11ac wireless 8822be (RTL8822BE) -.It Realtek 802.11ac wireless 8822ce (RTL8822CE) -.El +driver is derived from Realtek's Linux rtw88 driver. .Pp The driver uses the .\" No LinuxKPI man pages so no .Xr here. @@ -91,6 +83,17 @@ This tunable will work around a problem with DMA and limit allocations for network buffer memory to the lower 32bit of physical memory and make the driver work. .El +.Sh HARDWARE +The +.Nm +driver supports PCIe devices with the following chipsets: +.Pp +.Bl -tag -width Ds -offset indent -compact +.It Realtek 802.11n wireless 8723de (RTL8723DE) +.It Realtek 802.11ac wireless 8821ce (RTL8821CE) +.It Realtek 802.11ac wireless 8822be (RTL8822BE) +.It Realtek 802.11ac wireless 8822ce (RTL8822CE) +.El .Sh BUGS Certainly. .Pp From nobody Thu Oct 17 09:16:49 2024 X-Original-To: dev-commits-src-branches@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 4XThzk2FB9z5YldH; Thu, 17 Oct 2024 09:16:50 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzj6BXKz4HYJ; Thu, 17 Oct 2024 09:16:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156609; 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=+hD0N7fzU2ygVsuQyYZAmtvVJ5H4JUDku2VhvPeW0EA=; b=e2r1huM9KOJ13M9HsbgA6XS00eqsfvfbYNZ5el0zbOzceKe8TfESSDXhwLDq9f/DBxJFqa elFs70ko8R9Zlza0Gl1IMknpHP3FH6lwcSDM1HPIwOfCx26ctthyoNxG1Kg9JtqNhOjMI+ rexLVBQlVlbE6ImPYsMvyFBikrO+bJ8AhN+GcNIUX1XnU1z+7qYaehXXUeHwcYx1LXhAGt msZU82EFLE9MgVAAmZWXYMqc2nDecLyyqsbTt3XoLGAgBvm6JofW6xjCQVh/lBp8+VzYMW 7184mc0NMYGCTTcsixMyXaTdR1wnSY4FtO5GqPupDmaO5phACKca4CL3ITDSyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156609; 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=+hD0N7fzU2ygVsuQyYZAmtvVJ5H4JUDku2VhvPeW0EA=; b=S7eldBDULF+Qy/atP1k3B7onJUd/VcltPRLpaE4A4fl7napC11RO5gfV2WuVtC1HxvJiiT 6M2eXwhblXl0lD+6nmC+Vov3qqzMruW6qBxilXlFTYdIT099t4GUBK903BEdGDA02PBkIv s3CAB8EzhSiNDtiAxrm9XHhtfYu7UNdMZBOjICVCEljVSCouy+jiVPnBY6sUwza3F60HZR yNrIHisff8/tX0eKL+iv/YtBH9t82lcJXL1fvAiO9mLi22HShOILplohJle1waMiu9AMRK Ogo9z8508JLGZobjrbzCdHFqt3iVxYkoATMffTS8YIGYJESpteU9xN45o7N0pg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156609; a=rsa-sha256; cv=none; b=Iv+xIiWmdqDU/ps4ZdkMAvb/TJPm2hJVr0WYNH832hsYKOsNL4ApxCN9W16R94tO/87EOJ qVUEuDi2FbDZYGJLsQygFTBj6l/9AK7TAGQ+Ncnqy9CU6aJQx04JUqvtfsawqajPMkAqMa wR58ICdZkYm6hWH+kgO4l39c/oXrTD2u00GRlTh4rGbl1GTU40ob4uVysqVZCU93LAfMYp L7C2b6vp86th2Y8gyxOaImfU3Nw4h/5Qn0fyEDKE3Ao2d8dOVvEN3pXf0vpYrc6U1FSrxG kng5EWkLswMBcwassErKq7mMQ4CtONwkwhQkMjDwyXunJc/1p/8l4GeiwDq9QQ== 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 4XThzj5mk0zk8t; Thu, 17 Oct 2024 09:16:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9GnI8087840; Thu, 17 Oct 2024 09:16:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9GnQi087837; Thu, 17 Oct 2024 09:16:49 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:49 GMT Message-Id: <202410170916.49H9GnQi087837@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: f9c867bf4e4c - stable/14 - LinuxKPI: add new dummy headers visibility.h and of_net.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f9c867bf4e4cb18e7bdda073ab9a74a4c1331497 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=f9c867bf4e4cb18e7bdda073ab9a74a4c1331497 commit f9c867bf4e4cb18e7bdda073ab9a74a4c1331497 Author: Bjoern A. Zeeb AuthorDate: 2024-09-28 22:35:56 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:50:30 +0000 LinuxKPI: add new dummy headers visibility.h and of_net.h Those files are required by updated wireless drivers. Sponsored by: The FreeBSD Foundation (cherry picked from commit 6621842ccfb4dd01470e9085697b553d10634eb0) --- sys/compat/linuxkpi/dummy/include/kunit/visibility.h | 0 sys/compat/linuxkpi/dummy/include/linux/of_net.h | 0 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/sys/compat/linuxkpi/dummy/include/kunit/visibility.h b/sys/compat/linuxkpi/dummy/include/kunit/visibility.h new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/sys/compat/linuxkpi/dummy/include/linux/of_net.h b/sys/compat/linuxkpi/dummy/include/linux/of_net.h new file mode 100644 index 000000000000..e69de29bb2d1 From nobody Thu Oct 17 09:16:50 2024 X-Original-To: dev-commits-src-branches@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 4XThzl28tvz5YlvG; Thu, 17 Oct 2024 09:16:51 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzk6qrtz4HQ1; Thu, 17 Oct 2024 09:16:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156611; 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=pSaWGixFIJcNIGHtck1jlVQn1l2CxGcJWNETGcLpUso=; b=VbTAXtAeK13qKDIZjPsx9VlYkPB4+KC1cZhTTWMhcZSNK8Bfh1dfMoBZNJBj5IPijvpm8p sLWdx2IQ8pD+hvTIAi1IUAAs60pZKDWBpD62PIVQG+09jqozPRxkw/bfjpSN/2noZb0RQe TKcdBx0ijn8TGUTl01VYHHJmw1hOqEHis3lec8so9YZha0Zp6+0RQemM6kV29p/rFI23Xd IRpqRV+IGJ2haNaMIVcGpGQIDd7W1UeBXlE/+E5o8gbq0hSxrYFPY9K2+iwVnxJ1V1Tep+ bcoPM6c8CsED1IMULO3qhb8ELrz8cwOJBWVKkeCn/5DACcyNNyea9o2UWzwA0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156611; 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=pSaWGixFIJcNIGHtck1jlVQn1l2CxGcJWNETGcLpUso=; b=P/+Hhg8pEjedDYPZyIyTPOFunJP//mREplNxXBJ7Pq7wBKq8Zsyw3nnJkvGX6ZZG/n3lFa CQvcyGfiFppEDjrUF4eqoM++6TAhyML7N3BZIaQ/qhaVvqkij/VPSKr8eQNqSD44SwrABl UOBA4OfrV3euvsFkIdhCUYGjfjpPrMS6jbxbwqROePr8Vmk3CBBKw9Vj6BYzZHdX/1CRht VjTNnfp0fIFdPTSPBHje8SwHCAImyNIg/A2PeMjYNVKHNUumnLI0MI+mlIJ1siZw4runk1 YWtzEScAlYkpz8y4x6C7wGxgBo8rC2MCaOpXUZpqWajLTfJTrZ7X1uoEwpjcNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156611; a=rsa-sha256; cv=none; b=JFzqmLQcKoKHCdqfjkAHW7+15rrUkOJ1IeP5xIgGQMW2e5ZOAm1DCyDwEP6KQNQ/AUJc/x 8hGhaDMkxPw6GdwhuHsano49mZTMIZOzZkjRoUNsMGSCLqTtMNOe6G3Djb7cS4BxyykZCS n+yBCOL6uQmxoAMG1gKKd59wFJQlZV7qG6cns+f+kNceKB1wblEw1alPM5wvbEwJazf+dm fc00DWeVkPo0xostkPT8iMdJAlsk4ZD0nx1RqK9q/GvAg4LnuDt08uMhHVFkO/To6/dAw6 S/ZNqvkY4atHU1LvUtEw5U2q0iL3mCoQEFCRk+xlOv1DXZ7NA4sZlc3Hqh0pZA== 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 4XThzk6N1kzkZQ; Thu, 17 Oct 2024 09:16:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9GoiJ087888; Thu, 17 Oct 2024 09:16:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9Go20087885; Thu, 17 Oct 2024 09:16:50 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:50 GMT Message-Id: <202410170916.49H9Go20087885@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 75ac24a7dfeb - stable/14 - LinuxKPI: add cleanup.h for guard DEFINE_GUARD/guard. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 75ac24a7dfeb93301d4bb8b0118e2c98cc201f5e Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=75ac24a7dfeb93301d4bb8b0118e2c98cc201f5e commit 75ac24a7dfeb93301d4bb8b0118e2c98cc201f5e Author: Bjoern A. Zeeb AuthorDate: 2024-09-28 22:38:03 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:50:37 +0000 LinuxKPI: add cleanup.h for guard DEFINE_GUARD/guard. iwlwifi v6.11 started to use guard(). _T in the implementation needs to be exposed to the driver which uses it in DEFINE_GUARD(). Given this is the first instance of attribute(cleanup) in the tree: - gcc has support for it since at least 2003-06-04 (0bfa5f65bfb186f10d43304946fd7fcd69988732) - llvm gained support on 2009-01-31 (d277d790e0f6f23043397ba919619b5c3e157ff3, llvm-svn 63462). Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D46843 (cherry picked from commit fa81baa307da9a0055d7d08f6d141ea310f067ed) --- sys/compat/linuxkpi/common/include/linux/cleanup.h | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/cleanup.h b/sys/compat/linuxkpi/common/include/linux/cleanup.h new file mode 100644 index 000000000000..01f234f0cbe7 --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/cleanup.h @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2024 The FreeBSD Foundation + * + * This software was developed by Björn Zeeb under sponsorship from + * the FreeBSD Foundation. + */ + +#ifndef _LINUXKPI_LINUX_CLEANUP_H +#define _LINUXKPI_LINUX_CLEANUP_H + +#define __cleanup(_f) __attribute__((__cleanup__(_f))) + +/* + * Note: "_T" are special as they are exposed into common code for + * statements. Extra care should be taken when changing the code. + */ +#define DEFINE_GUARD(_n, _dt, _lock, _unlock) \ + \ + typedef _dt guard_ ## _n ## _t; \ + \ + static inline _dt \ + guard_ ## _n ## _create( _dt _T) \ + { \ + _dt c; \ + \ + c = ({ _lock; _T; }); \ + return (c); \ + } \ + \ + static inline void \ + guard_ ## _n ## _destroy(_dt *t) \ + { \ + _dt _T; \ + \ + _T = *t; \ + if (_T) { _unlock; }; \ + } + +/* We need to keep these calls unique. */ +#define guard(_n) \ + guard_ ## _n ## _t guard_ ## _n ## _ ## __COUNTER__ \ + __cleanup(guard_ ## _n ## _destroy) = guard_ ## _n ## _create + +#endif /* _LINUXKPI_LINUX_CLEANUP_H */ From nobody Thu Oct 17 09:16:51 2024 X-Original-To: dev-commits-src-branches@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 4XThzm2RDgz5Ym3K; Thu, 17 Oct 2024 09:16:52 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzm0XXFz4Hrn; Thu, 17 Oct 2024 09:16:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156612; 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=gZR3qLbN2/34s0Q7USLJON9J6lKaltjqguPIVABuF/c=; b=ty8Tjf5IkxKkZW6chLtGCKHJ4yVoNBBJ5kaDWpXTnRjCC4Sp58YHpb5ALzgjTOiDZWhFh2 47ep3HYR8mXNh+LbbfFuy2eO10dknvRI/gXGakBAioB8GgXbe+t19nfZ+ww0WL3if31hH8 FzaorD8AvUJI2uKjskDacbyg2EhivcaIAQS3kHEgKSCi3+ykvNFnPloQkmGLUXCpHh7rbG 5QE3XM1GaU81fLELcVa6BZhOFPHAfA0osXB0DsxUpJ/XzewqN0VUrvdUvpzQSoa0NTlAND nZcq8TuXJ2jjPbl9UAQzzHHwnqLV8OCVuPQFb9tskqYSF9xHTRpvoXmn7Z1vnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156612; 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=gZR3qLbN2/34s0Q7USLJON9J6lKaltjqguPIVABuF/c=; b=yizCQbFE/DmTAMjjsX6Uu/hoBOIGtwI8hu6toWwtG3Oxj2tyv06eq9iPkbGwnHR+wfl5U2 JYBlYOgkicYDDVE3YPYIKNp85717S5G1/nM6++HYw/xj2F67PauUaGgRy1BCJAsSfoqWT9 0wniOpnS/HpTnptttTmzcIN16Exml2LAjsalEWMOx6ufW1mgRhTbgZXFiPNnV+Cvjk7iEA 9W75y7xsb+IBY0VI2zNPSRC6pCObMqxF3J4UW9DnVroqIkCyEfXU8y2mm8SdlNN5/jrx6F GgqP1q+oJ1bXMULIyrWfsmhZjSGzRIvOxuQ9QEYzHgG0SUeotAnECWy19MBjtg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156612; a=rsa-sha256; cv=none; b=xZDKKGEMem4t+OWADsMRsKicGFxWKpIKyrVYsVdjwwaC4kxuQRwxsIyMyp86tJvqxg5qP8 PVRTpyCaU8Y3Ahp177ub76HhxoJ5JuSxSfqEIOUMLvAtxFN0v8tYKK1fpP35WD5acg3Zsn KIr7rHMiZ9Qqh2l1cncwTEOUCmVLx01Z6s4VG9E7V5gXkm0+ndtGhm342h0eciC1QXI+mN GMzPQ4yEtKEgjDIS80FtCVeG4P6M/HIPwCzFKhhHxH8kHTMzagmEGte6UWTGHrAiY6wnrN btGwAr+8jOQZXQwzCjJjIvun+gXOfeIu8vcBWBQF/WxX7r4LSPX9j/wvUTU8zA== 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 4XThzm06RqzkZR; Thu, 17 Oct 2024 09:16:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9GpWa087945; Thu, 17 Oct 2024 09:16:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9Gpsa087942; Thu, 17 Oct 2024 09:16:51 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:51 GMT Message-Id: <202410170916.49H9Gpsa087942@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 217024001f17 - stable/14 - dpaa2: fix MRU for dpni (and software vlans along) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 217024001f17f8288aab98cb700b3ef8305abeee Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=217024001f17f8288aab98cb700b3ef8305abeee commit 217024001f17f8288aab98cb700b3ef8305abeee Author: Bjoern A. Zeeb AuthorDate: 2024-10-11 18:51:32 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:50:44 +0000 dpaa2: fix MRU for dpni (and software vlans along) 0480dccd3f34 tried to fix the MTU for software VLANs given dpni announces IFCAP_VLAN_MTU. Unfortunately the initial MRU during setup is reduced from the maximum supported by the HW to our maximum ethernet RX frame length so only after further mtu toggles the solution there would work. Set the maximum RX frame size (without CRC) to jumbo length + vlan encap len by default given we also announce IFCAP_JUMBO_MTU. While here improve the manual (ioctl) MTU setting by checking if IFCAP_VLAN_MTU is currently enabled and only then add the extra bytes. Fixes: 0480dccd3f347da0dbccf5917633435d5ce6cb86 Reviewed by: dsl Differential Revision: https://reviews.freebsd.org/D47066 (cherry picked from commit fa3dfeff95a5bafcf13accaed5164bfc4e028d9a) --- sys/dev/dpaa2/dpaa2_ni.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sys/dev/dpaa2/dpaa2_ni.c b/sys/dev/dpaa2/dpaa2_ni.c index 6ed656849709..622e63626bfe 100644 --- a/sys/dev/dpaa2/dpaa2_ni.c +++ b/sys/dev/dpaa2/dpaa2_ni.c @@ -138,8 +138,9 @@ MALLOC_DEFINE(M_DPAA2_TXB, "dpaa2_txb", "DPAA2 DMA-mapped buffer (Tx)"); #define DPNI_IRQ_LINK_CHANGED 1 /* Link state changed */ #define DPNI_IRQ_EP_CHANGED 2 /* DPAA2 endpoint dis/connected */ -/* Default maximum frame length. */ -#define DPAA2_ETH_MFL (ETHER_MAX_LEN - ETHER_CRC_LEN) +/* Default maximum RX frame length w/o CRC. */ +#define DPAA2_ETH_MFL (ETHER_MAX_LEN_JUMBO + ETHER_VLAN_ENCAP_LEN - \ + ETHER_CRC_LEN) /* Minimally supported version of the DPNI API. */ #define DPNI_VER_MAJOR 7 @@ -2561,8 +2562,10 @@ dpaa2_ni_ioctl(if_t ifp, u_long c, caddr_t data) DPNI_UNLOCK(sc); /* Update maximum frame length. */ - error = DPAA2_CMD_NI_SET_MFL(dev, child, &cmd, - mtu + ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN); + mtu += ETHER_HDR_LEN; + if (if_getcapenable(ifp) & IFCAP_VLAN_MTU) + mtu += ETHER_VLAN_ENCAP_LEN; + error = DPAA2_CMD_NI_SET_MFL(dev, child, &cmd, mtu); if (error) { device_printf(dev, "%s: failed to update maximum frame " "length: error=%d\n", __func__, error); From nobody Thu Oct 17 09:16:53 2024 X-Original-To: dev-commits-src-branches@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 4XThzn5L95z5Ym57; Thu, 17 Oct 2024 09:16:53 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzn1XqZz4Hq9; Thu, 17 Oct 2024 09:16:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156613; 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=Ae6VoMtGUCE/QvNHShEgIW8uBF/tc3moEkaMPjib8SU=; b=oB30jDu0oP1OwOJcfBNagzjsv1r5L08013DGyjLr0N8SKWxRfe2qI+iWZt06nHZ0bBtJd/ pETXE1gmr4yvEpEZqXEgZ74enkf3MlzPtlm4rathqBDqHgcaBmWUsBACZ8U+Byc9di6M+2 MUR8A7qgN3tWwKHCdKJZImSC+uZMDKg0+gavyXKpgz1WORiX7ee5Uh8W9lTWMkuG7P2k1l 2AGoeMyWvQDkDzmVXMgKGMKhVXqYRYEDPae+eRYm3DYSiK351BG+e+NzrgOvsUrhV2L6fl o0gAQmkksK0334I40jPnRo4nfvVv1Ig3mX0jeWFRXiilz+Dma0oBGQqeEoFQJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156613; 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=Ae6VoMtGUCE/QvNHShEgIW8uBF/tc3moEkaMPjib8SU=; b=PPA9mm5tO4b/SgAuP+hYPuK5tMLupI6X9zbZ9YJaMgFYdxgiOhUI2yBsLiQ86TCMqGF45y esOOvJFYEypzwiH7MkvLPalUSCzLQ9Bg4sou3YSyNy5dh0cBw8BBVdCiqLxf2xJf9UsEsY y0st+osrUAtiUFtkiwIlvjE9E0l/AIliSlqF45gXEyji59udda/o2jT5k+v6HVoOLG5U6o 2mxLBYn6qCwr4ST8blOJ8pSjiK48NwuMARNNJskEA8ZPGzfbvWyWqbJfgzt4HaUQxaHYwn K56AKiLQidaczGBhZBexAnKeRdSGnkY9pq1qMagS9dsohocd1etLwL58JfCgRQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156613; a=rsa-sha256; cv=none; b=p8sHX+Vk4SWUdO4GpWUVoxOYLt8N1wFikhYDvkD3WTFjN6sStrtRx4teE3lkXdQTo+e6nc YWEqmXWGmQoX3TO+1rWThVW3zeoQC1mttAdrEeVph+z2HRH/97jmfb8mMQZk1UUJnT2u3A PnaHakjz/69v9DBxeXHmtKnl1dmLlZX1RejfxoP/2tJ6s4yA3ZYUUWVtjU74KOx+QK3nkD ZjHgWtt5LPVxdzzEJTsotzwo1OgdEcgx/2/ytItkfF9gpGlaHXViCowRlSTtuYQ4rJ91hO xaGINYJYd1Cdi/VF3MKgM+knhD14l0JKZIEv7fvQue38NDNbUrAcaq5MSPyzVw== 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 4XThzn188HzkcM; Thu, 17 Oct 2024 09:16:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9Grup087999; Thu, 17 Oct 2024 09:16:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9Gr4C087996; Thu, 17 Oct 2024 09:16:53 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:53 GMT Message-Id: <202410170916.49H9Gr4C087996@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 9e596eab21d4 - stable/14 - dpaa2: allow tapping of tx packets in dpni List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9e596eab21d46864f0d90aae085319a1782e565e Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9e596eab21d46864f0d90aae085319a1782e565e commit 9e596eab21d46864f0d90aae085319a1782e565e Author: Bjoern A. Zeeb AuthorDate: 2024-10-13 23:14:35 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 21:50:49 +0000 dpaa2: allow tapping of tx packets in dpni Packet capturing on dpni is only half-working given the BPF_MTAP call in the TX path is missing. Add it to see packets in both directions. Reviewed by: dsl Differential Revision: https://reviews.freebsd.org/D47103 (cherry picked from commit e69e172d40585cfbcfdb28433cec523ca4867cf1) --- sys/dev/dpaa2/dpaa2_ni.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/dev/dpaa2/dpaa2_ni.c b/sys/dev/dpaa2/dpaa2_ni.c index 622e63626bfe..698b440376e3 100644 --- a/sys/dev/dpaa2/dpaa2_ni.c +++ b/sys/dev/dpaa2/dpaa2_ni.c @@ -2936,6 +2936,8 @@ dpaa2_ni_tx(struct dpaa2_ni_softc *sc, struct dpaa2_channel *ch, KASSERT(btx->fq->chan == ch, ("%s: unexpected channel", __func__)); #endif /* INVARIANTS */ + BPF_MTAP(sc->ifp, m); + error = bus_dmamap_load_mbuf_sg(buf->dmat, buf->dmap, m, segs, &nsegs, BUS_DMA_NOWAIT); if (__predict_false(error != 0)) { From nobody Thu Oct 17 09:16:54 2024 X-Original-To: dev-commits-src-branches@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 4XThzp4wMwz5YlvK; Thu, 17 Oct 2024 09:16:54 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XThzp2nf4z4Hby; Thu, 17 Oct 2024 09:16:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156614; 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=oXCsxSrJh+2dvhxwcsSrzwygg3gQBXczMAGdXfL8xAI=; b=rIbteJgclG5aKoS7a2s5ifugiqmDbkHyc8j7j2vSsNKvKjsYgN5I1hU+v0CBXFKd33rJ32 GaSDBiC7QApUJ41p/oflCktcxfeavej24yrKiLQPIWPS8b9IG6XIXY+m5Uy4WoOFM5Zf0P 3aKf0ZKZo+R+nrmbDJNldrpxJ+wlE+qKcC3BqUOItgFjnU+m+7zBStHkUox8eQ0DSpRKUN 2OaNACG1hRXJQiKqYNlh+lu3SUl+x3cG/cflUVcRq8HQAcLLm8MDalXb2Jq25De4N41FNx 3/BCVmIQsIhBcxK6STBV6FLJJS3mtwUfKPN/d3DMadty4mxeVwEgeQ19rc92Vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729156614; 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=oXCsxSrJh+2dvhxwcsSrzwygg3gQBXczMAGdXfL8xAI=; b=LhMKFHqr42qNDE8FfsI1Fphel2eX6vCvgj1IJ5pCohoIRA21j44JnLQZQ1m2cO52NcPc5Q o/w4hSw3ILpjUQWXdW1RU6XyMZt89bZtpH9nsuUc4ojWDd7QoDpA6la6rv61eFMo0sGn40 LjvG7igfFg4GHAmQma4bA7Xy4ya/R5frFL9ZAQUk5jJDGUNiCAmeBUNzlUtb6BcGLtpVGT SHgmTnVW6DgWaXWth02YBrCYHsniEHTr/bP+7OrMLjpPMXs8NH5TaZxRMRobWY1JIIErR1 NfoqIkcUxCBLVOqF8mGqgX7dc+7hQilr+uxM0EkosOCacHMY0CU0yFAWuq2SQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729156614; a=rsa-sha256; cv=none; b=sw45aRzCZWi/9/4peIOIjdz6ZIFWpqHN/dfP1mGZYI6Cjewa5I4862MO9/v95AeMd25nET bdqmzo6ay8gbp2npspBv38a/TgS+h8Nu1ZlszpjIyFmMWp3m9DK8rk+XIxSLgzqn865E1t NwbUH+Js6aTmy9CvggZCh8vNOC7rDNqBu2ZTqGSKHVpNpvlCgAFUKTtvvgtHyMgkmBjwlJ nKwWD4bIyPKMn17eIs4FijFgsRwsMDVyS2Oo9FXnS5fRPpA9FTdSoNO4bbJNhvX8CBj1r7 Xhlq/zx6CH84L2KZX3qYp3ogvGskA1lKk2dVsjgiAvdhjWeyVEbcNpf4n86y9Q== 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 4XThzp2PJczjxx; Thu, 17 Oct 2024 09:16:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49H9GsSE088051; Thu, 17 Oct 2024 09:16:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49H9Gslh088048; Thu, 17 Oct 2024 09:16:54 GMT (envelope-from git) Date: Thu, 17 Oct 2024 09:16:54 GMT Message-Id: <202410170916.49H9Gslh088048@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 71f81398f7a7 - stable/14 - rtw89fw: remove module build dirs and firmware List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 71f81398f7a7160cf78275537703d360bc747f29 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=71f81398f7a7160cf78275537703d360bc747f29 commit 71f81398f7a7160cf78275537703d360bc747f29 Author: Bjoern A. Zeeb AuthorDate: 2024-10-10 22:43:29 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-10-16 22:01:56 +0000 rtw89fw: remove module build dirs and firmware rtw89 firmware files were removed from main a year ago after core members asked to not import more biinary blobs into main. Also remove the module build framework for them on stable/14 to avoid any confusion (it was never attached to the build). People are asked to use fwget(8) to automatically install firmware from ports according to the man page. A solution for the install media is still pending. X-MFC after: rtw89 only Sponsored by: The FreeBSD Foundation (cherry picked from commit cf94672363d6638b7268c05b4628b62bbfc8dbe5) (cherry picked from commit 7ff12dd25ada486c4d33e854977514b2db690e7f) --- .../dev/rtw89fw/LICENCE.rtlwifi_firmware.txt | 39 --------------------- sys/contrib/dev/rtw89fw/WHENCE | 8 ----- sys/contrib/dev/rtw89fw/rtw8852a_fw.bin | Bin 1423232 -> 0 bytes sys/contrib/dev/rtw89fw/rtw8852c_fw.bin | Bin 1340192 -> 0 bytes sys/modules/rtw89fw/Makefile | 6 ---- sys/modules/rtw89fw/Makefile.inc | 16 --------- sys/modules/rtw89fw/rtw8852a/Makefile | 5 --- sys/modules/rtw89fw/rtw8852c/Makefile | 5 --- 8 files changed, 79 deletions(-) diff --git a/sys/contrib/dev/rtw89fw/LICENCE.rtlwifi_firmware.txt b/sys/contrib/dev/rtw89fw/LICENCE.rtlwifi_firmware.txt deleted file mode 100644 index d70921f49379..000000000000 --- a/sys/contrib/dev/rtw89fw/LICENCE.rtlwifi_firmware.txt +++ /dev/null @@ -1,39 +0,0 @@ -Copyright (c) 2010, Realtek Semiconductor Corporation -All rights reserved. - -Redistribution. Redistribution and use in binary form, without -modification, are permitted provided that the following conditions are -met: - -* Redistributions must reproduce the above copyright notice and the - following disclaimer in the documentation and/or other materials - provided with the distribution. -* Neither the name of Realtek Semiconductor Corporation nor the names of its - suppliers may be used to endorse or promote products derived from this - software without specific prior written permission. -* No reverse engineering, decompilation, or disassembly of this software - is permitted. - -Limited patent license. Realtek Semiconductor Corporation grants a world-wide, -royalty-free, non-exclusive license under patents it now or hereafter -owns or controls to make, have made, use, import, offer to sell and -sell ("Utilize") this software, but solely to the extent that any -such patent is necessary to Utilize the software alone, or in -combination with an operating system licensed under an approved Open -Source license as listed by the Open Source Initiative at -http://opensource.org/licenses. The patent license shall not apply to -any other combinations which include this software. No hardware per -se is licensed hereunder. - -DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/sys/contrib/dev/rtw89fw/WHENCE b/sys/contrib/dev/rtw89fw/WHENCE deleted file mode 100644 index 496ef115ef0b..000000000000 --- a/sys/contrib/dev/rtw89fw/WHENCE +++ /dev/null @@ -1,8 +0,0 @@ - -Driver: rtw89 - Realtek 802.11ax WLAN driver for RTL8852A - -File: rtw89/rtw8852a_fw.bin -File: rtw89/rtw8852c_fw.bin - -Licence: Redistributable. See LICENCE.rtlwifi_firmware.txt for details. - diff --git a/sys/contrib/dev/rtw89fw/rtw8852a_fw.bin b/sys/contrib/dev/rtw89fw/rtw8852a_fw.bin deleted file mode 100644 index 00d139b3f2f1..000000000000 Binary files a/sys/contrib/dev/rtw89fw/rtw8852a_fw.bin and /dev/null differ diff --git a/sys/contrib/dev/rtw89fw/rtw8852c_fw.bin b/sys/contrib/dev/rtw89fw/rtw8852c_fw.bin deleted file mode 100644 index 86b634aeb69f..000000000000 Binary files a/sys/contrib/dev/rtw89fw/rtw8852c_fw.bin and /dev/null differ diff --git a/sys/modules/rtw89fw/Makefile b/sys/modules/rtw89fw/Makefile deleted file mode 100644 index 7732d9d868ff..000000000000 --- a/sys/modules/rtw89fw/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -SUBDIR= \ - rtw8852a \ - rtw8852c - -.include diff --git a/sys/modules/rtw89fw/Makefile.inc b/sys/modules/rtw89fw/Makefile.inc deleted file mode 100644 index 349041ea5fff..000000000000 --- a/sys/modules/rtw89fw/Makefile.inc +++ /dev/null @@ -1,16 +0,0 @@ -# -# Common rules for building firmware. Note this gets auto-included -# by the subdir Makefile's as a consequence of included bsd.kmod.mk. - -_NAME= rtw${NAME}_fw.bin - -IMG= ${_NAME} -KMOD= ${_NAME} - -CLEANFILES+= ${IMG} - -FIRMWS= ${IMG}:${IMG}:${VERSION} - -${IMG}: ${SRCTOP}/sys/contrib/dev/rtw89fw/${IMG} - cp ${.ALLSRC} ${.TARGET} - diff --git a/sys/modules/rtw89fw/rtw8852a/Makefile b/sys/modules/rtw89fw/rtw8852a/Makefile deleted file mode 100644 index 910468870e78..000000000000 --- a/sys/modules/rtw89fw/rtw8852a/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -VERSION= 013360 -NAME= 8852a - -.include diff --git a/sys/modules/rtw89fw/rtw8852c/Makefile b/sys/modules/rtw89fw/rtw8852c/Makefile deleted file mode 100644 index b051945017e5..000000000000 --- a/sys/modules/rtw89fw/rtw8852c/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -VERSION= 027200 -NAME= 8852c - -.include From nobody Thu Oct 17 12:32:06 2024 X-Original-To: dev-commits-src-branches@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 4XTnK237N9z5YxYR; Thu, 17 Oct 2024 12:32:06 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTnK22dBxz4dgm; Thu, 17 Oct 2024 12:32:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729168326; 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=+EB9/aTQNHnWjWnRwdInxvzp7bVAs18CXF4bwjjHz/U=; b=xnhzIjaJzRpyCAq+Ng2FNyOPVHqJAIcvVZssKe+MgNKBYDi7FEQz5cCt4BRvDT2ccHkVcq r0LnCMjc2tOe/7ZXTf9uD3Ch7IHPHbfbB3Cwx3v2vXs4FOeHIUkPc/DlO6VlyIU3M2Pxv6 p3hdUPKrJ9JCkKF98Ng7qqHNG61m/m6Do5gvoIOcqITeoaNRxDIwU497FGOLg/Uzh4VRko WqnTsfGyfesGfguoyWexDINzjaRtXCgzEsbepDk0rUz0kK0Cj+ZMwTEhwoaWIjti0RuF+H XLGT34gDNjj/DfubviUCca/14EHGnwPfhqbYZp50B/8eOAd4Zyppjy20uvbiwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729168326; 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=+EB9/aTQNHnWjWnRwdInxvzp7bVAs18CXF4bwjjHz/U=; b=LW+d5kMAPo8VoN5KBb7WXXHGflPh6RqwFUIdSt5Tdr1c1IBQ1WslTQc9KXWCupoj3X2CI3 bNgRFqt5q4PqbsgX6FayRvKW36Uw0GyvUccicykeO/YGQhsrj0qRTBwHwa4CWEQOhtmoPa LZYKdxAQFWbiAWKv4FbtjTTT2UJH8avd8fv1wfrUZyguVphxBe3KCcLyZUL6kZGd0DONiW 3fte9RkUviqzrOap6sKlAzAkI/XMUOFvjRv/hgzTeeqcY829N5gDP1BBeW0nYTKs1FxQlA GPGcasU9Jpq+GISaTZlYvkIc9xVp8E7pGVDfiBDIx6LrjVoVpYiHSoKnHUtp3A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729168326; a=rsa-sha256; cv=none; b=BZWIimoho9bsEGOzshayXWCCjrvjxO2chee7iRDtq+NXjKG4plbtwjCecr7Nb8AGE68DC2 NIQqQQAlOvH1RvTVTdTbs9jhs/cPr4yXo8Y10OCllDd6uitk5n01L3kU09zNqZBJXxXlhl lMaikWOftxbTlO4qG6/olj5xdi1DYCG/LTF6ENVzkR+gQ6crgBm9Keetsxw6tMfKu5XhNw +IN6r1pN4WLGHLGXZav0ea1oWl+7TmJf4l6awE1mh6vCsxmDx8G19CjOGtB2iRSsWOe+xL qX4Q4qBew4hZxFmhwkBEy/gM8Yi1cfx6ZSSZJkpt2wFZDZO8M7p3RJEd+os7sg== 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 4XTnK2276yzq9R; Thu, 17 Oct 2024 12:32:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HCW6dm024159; Thu, 17 Oct 2024 12:32:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HCW67D024156; Thu, 17 Oct 2024 12:32:06 GMT (envelope-from git) Date: Thu, 17 Oct 2024 12:32:06 GMT Message-Id: <202410171232.49HCW67D024156@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: c17d96fe7952 - stable/14 - bhyve: avoid buffer overflow in pci_vtcon_control_send List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c17d96fe79529b2490011e7c857739f41a7c3ce6 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=c17d96fe79529b2490011e7c857739f41a7c3ce6 commit c17d96fe79529b2490011e7c857739f41a7c3ce6 Author: Pierre Pronchery AuthorDate: 2024-07-24 18:23:12 +0000 Commit: Ed Maste CommitDate: 2024-10-17 12:31:39 +0000 bhyve: avoid buffer overflow in pci_vtcon_control_send The program copies an input buffer to an output buffer without verifying that the size of the input buffer is less than the size of the output buffer, leading to a buffer overflow. Inside the function pci_vtcon_control_send, the length of the iov buffer is not validated before copy of the payload. Reported by: Synacktiv Reviewed by: markj Security: HYP-19 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46105 (cherry picked from commit 8934002959e02bcf5e3262730c3a731af95afb15) This is a follow-up to the fix for HYP-19, addressing another condition where an overflow might still occur. (Spotted by jhb@, thanks!) Reported by: Synacktiv Reviewed by: markj Security: HYP-19 Sponsored by: Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46882 (cherry picked from commit b34a4edefb0a40ced9b17ffd640f52fe55edc1f5) --- usr.sbin/bhyve/pci_virtio_console.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_virtio_console.c b/usr.sbin/bhyve/pci_virtio_console.c index a0bb8591811c..183dd1da934d 100644 --- a/usr.sbin/bhyve/pci_virtio_console.c +++ b/usr.sbin/bhyve/pci_virtio_console.c @@ -573,6 +573,9 @@ pci_vtcon_control_send(struct pci_vtcon_softc *sc, struct iovec iov; int n; + if (len > SIZE_T_MAX - sizeof(struct pci_vtcon_control)) + return; + vq = pci_vtcon_port_to_vq(&sc->vsc_control_port, true); if (!vq_has_descs(vq)) @@ -581,11 +584,15 @@ pci_vtcon_control_send(struct pci_vtcon_softc *sc, n = vq_getchain(vq, &iov, 1, &req); assert(n == 1); + if (iov.iov_len < sizeof(struct pci_vtcon_control) + len) + goto out; + memcpy(iov.iov_base, ctrl, sizeof(struct pci_vtcon_control)); - if (payload != NULL && len > 0) + if (len > 0) memcpy((uint8_t *)iov.iov_base + sizeof(struct pci_vtcon_control), payload, len); +out: vq_relchain(vq, req.idx, sizeof(struct pci_vtcon_control) + len); vq_endchains(vq, 1); } From nobody Thu Oct 17 12:34:25 2024 X-Original-To: dev-commits-src-branches@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 4XTnMj3fSRz5Yxs8; Thu, 17 Oct 2024 12:34:25 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTnMj2wTrz4f08; Thu, 17 Oct 2024 12:34:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729168465; 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=BxYB8yFRYgO34BWXt6og4Gscz7PlY4IrUqyDc9bnJcg=; b=rDTgPVf4DUoeH6WA+S7CCdhwopWk3UMCnYDXow906cLaG3a/6sSupZ2NBi+lxbVmMmXz1b lfzrZD1k52R+L9SUORK0l5okcHenXBYXtvFwVJ/CNcHfGlEwjBngXgLQu2eSger+/dR0Qg 5HoTLqiyQKky+9oIb6WMpeVV9VWAMUm8USLgM3ApGi7bs8l00Ej+YsGddpVgpdFRGgRqIU 2YU8efulH5N4ORvdMrySfv9/T/xHsRiDe5Gy5TgL+cmPue3tYBEC183BGfGfxDdEi5RzmM k336Kl/bHybtEBaboZ+lI5xomScHlIEPGnhvxnlraDdCsB31leZby5jUr7iQkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729168465; 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=BxYB8yFRYgO34BWXt6og4Gscz7PlY4IrUqyDc9bnJcg=; b=u6oblt1XsTIBj9n9zliGyEOxJDPM8f9nkWBWvNpOkgjXvctWMv8HwlP0UF3eT62UYCToaA 0Y76a32uIavU/ZGMoqzHWDBeiLxKkMJHZBaRXl/3fSflbDcnLDUNHIJpPkjaZpl2ztmN0u /br7or8LhaJBfvt7HAup3+IfjBBExAfzokQYwk+ORlFkYCUUG/00f0jFdhorZKAwXc4Oup /uKcK+03bZJ9qmOYY32L8hhVEf7UpDpkWggpxNvEW6/8O/OIyQBSpzjyFMJ4yLltvajCJV xkY5ISn9Mzgq+nU2EBRfpB3N3Ktx0om7WVfZSPeUb4uPwePxMLm+T2fRFuZP0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729168465; a=rsa-sha256; cv=none; b=HG96rHd4JNSyaVt5LLqIzqvhmiQs8jw7FGJuu/kMuOCfKtWESpQGqWxgLiQW3U2QeYAvNa A1xBzpNXZYuZcVgAp6RFSCMC+h0jVGVCMu069LwfOXMI2Cmqp2Gzj2L69UvgckxNmERqZe UJ1+Ory8imKmu99IE6yJ++BKlsB7C/MpVJxcmHj5UziVaz+c84F8OhsJiNlvpzdQ9EaRQa acHPA/58laSlgVvGID2feqMye26Ly0J9pmFJpnj4ZtAqJd1wzvQ2i4CP3tl9fXC4KAxyDE N8ocw2z4jwAXziopaFVUVBc5G0Ag6nkFZHtS+DNdni/nIhapCM7b2luVVJqBMA== 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 4XTnMj2QvczqLt; Thu, 17 Oct 2024 12:34:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HCYPJe025678; Thu, 17 Oct 2024 12:34:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HCYPnW025675; Thu, 17 Oct 2024 12:34:25 GMT (envelope-from git) Date: Thu, 17 Oct 2024 12:34:25 GMT Message-Id: <202410171234.49HCYPnW025675@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: c4ec2918f26e - stable/13 - bhyve: avoid buffer overflow in pci_vtcon_control_send List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c4ec2918f26e0277e7243ed4fa0ac890b1ce12cd Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=c4ec2918f26e0277e7243ed4fa0ac890b1ce12cd commit c4ec2918f26e0277e7243ed4fa0ac890b1ce12cd Author: Pierre Pronchery AuthorDate: 2024-07-24 18:23:12 +0000 Commit: Ed Maste CommitDate: 2024-10-17 12:34:11 +0000 bhyve: avoid buffer overflow in pci_vtcon_control_send The program copies an input buffer to an output buffer without verifying that the size of the input buffer is less than the size of the output buffer, leading to a buffer overflow. Inside the function pci_vtcon_control_send, the length of the iov buffer is not validated before copy of the payload. Reported by: Synacktiv Reviewed by: markj Security: HYP-19 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46105 (cherry picked from commit 8934002959e02bcf5e3262730c3a731af95afb15) This is a follow-up to the fix for HYP-19, addressing another condition where an overflow might still occur. (Spotted by jhb@, thanks!) Reported by: Synacktiv Reviewed by: markj Security: HYP-19 Sponsored by: Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46882 (cherry picked from commit b34a4edefb0a40ced9b17ffd640f52fe55edc1f5) (cherry picked from commit c17d96fe79529b2490011e7c857739f41a7c3ce6) --- usr.sbin/bhyve/pci_virtio_console.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_virtio_console.c b/usr.sbin/bhyve/pci_virtio_console.c index a0bb8591811c..183dd1da934d 100644 --- a/usr.sbin/bhyve/pci_virtio_console.c +++ b/usr.sbin/bhyve/pci_virtio_console.c @@ -573,6 +573,9 @@ pci_vtcon_control_send(struct pci_vtcon_softc *sc, struct iovec iov; int n; + if (len > SIZE_T_MAX - sizeof(struct pci_vtcon_control)) + return; + vq = pci_vtcon_port_to_vq(&sc->vsc_control_port, true); if (!vq_has_descs(vq)) @@ -581,11 +584,15 @@ pci_vtcon_control_send(struct pci_vtcon_softc *sc, n = vq_getchain(vq, &iov, 1, &req); assert(n == 1); + if (iov.iov_len < sizeof(struct pci_vtcon_control) + len) + goto out; + memcpy(iov.iov_base, ctrl, sizeof(struct pci_vtcon_control)); - if (payload != NULL && len > 0) + if (len > 0) memcpy((uint8_t *)iov.iov_base + sizeof(struct pci_vtcon_control), payload, len); +out: vq_relchain(vq, req.idx, sizeof(struct pci_vtcon_control) + len); vq_endchains(vq, 1); } From nobody Thu Oct 17 13:49:48 2024 X-Original-To: dev-commits-src-branches@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 4XTq2h6yJ3z5Z2Kh; Thu, 17 Oct 2024 13:49:48 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTq2h6F3Cz4lSQ; Thu, 17 Oct 2024 13:49:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172988; 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=6c7xQmoNgD0qStjnzYRA0U0jLzVnaahi11/gXd0Uldg=; b=ZzCzS+Ly+mmvrv7H5azZ08FLy5h8ZqAs0Rah8s7GxOGhYEnKbvHVMOGWdZnedKZSydhNL7 u8jBQWgIJjoX5mmxisvxHZBha6o7Lt4qkrkKEc5NgL4I5JieVRIbUR5eRDNWfm5NjfEBlb zBta7flvYYjrfRF8krelCYkzZWLXAuFTkNGDI7F2q9g8x1sLcxykaG+RlI++6I8QNWFhkp 9tqm837Xz60UyAsW33ur6FvS33UH3zr1jkFbQUQHFXozFjH1zehgQPx218T4TlZ2rPfw21 AU7EvrZrSkOUwvX8vK3JFe+dqlJSZU/eRI5eHadVQe5n3uGty46Nrip4N1Bu6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172988; 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=6c7xQmoNgD0qStjnzYRA0U0jLzVnaahi11/gXd0Uldg=; b=q+q7ig08FvKLajK5ilqbxhTCQc4Ita4lu2WcULXZXdr3aM91vo3QjjCu/R4ZalwICFJcN2 dqTDLBdPmOopLEKNBzldDj0Aq5snk4Yz4qH3NvJP1HZjP7O5BRsDezWVbUJ7orDOQrKIw9 4rnmQ28XBt1vBjKiDSeqMQZwQ8nfGdHZYUUVhc8UwWhkd7DKAZsjZNmHXyni9YcRq3XJ2/ ELE2grDkpk0fpp6RJf8B6tL8sWerBFp/snEMy1y2ii2nk/5OdIykrzebOseKh21jCacPwd LO+J5hJMDXzJqnaauh2sHEwRnmXufYvd0NUlD7MugjNNr4pxv74fwM6AJTg02w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729172988; a=rsa-sha256; cv=none; b=a+T3NPk6fQzjn+O5Hm0nbSFPWo+Gc2zGg+JHAG10l03v8QGuRh30QhAOWJ2hWczyr9MPlC QLVYrbMqApSpf31t+x+P75y2Ri5IcDopq5q7daGgAhebMrBQEMM2tO3u7sundnuOEC5D5T XrmVzcMzfRsPwaCDs/xCHjbqK9RrNKpy5XJu6DKQt/pYt83C2EpTMSUgiqrVdXtDsrfc3U QMXL1/RzeoE8CV9ao1i+XKxMaOzNv65l3+wFlWCDF8tGQLK6aFdJp+50vvA2xhqihex3KW xBnTYwUNCfhI0l2uHvAf3bGNq7t3kCK2Rk8EKocDNhVS6qPvF9kjAtmfTKgUGg== 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 4XTq2h5qzbzrbm; Thu, 17 Oct 2024 13:49:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HDnms7044601; Thu, 17 Oct 2024 13:49:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HDnmXv044598; Thu, 17 Oct 2024 13:49:48 GMT (envelope-from git) Date: Thu, 17 Oct 2024 13:49:48 GMT Message-Id: <202410171349.49HDnmXv044598@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Igor Ostapenko Subject: git: 26980dceaef3 - stable/14 - kyua: Add FreeBSD Jail execution environment support List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: igoro X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 26980dceaef31cb2fec887b3cd5d928438d8579a Auto-Submitted: auto-generated The branch stable/14 has been updated by igoro: URL: https://cgit.FreeBSD.org/src/commit/?id=26980dceaef31cb2fec887b3cd5d928438d8579a commit 26980dceaef31cb2fec887b3cd5d928438d8579a Author: Igor Ostapenko AuthorDate: 2024-07-16 18:41:12 +0000 Commit: Igor Ostapenko CommitDate: 2024-10-17 13:44:34 +0000 kyua: Add FreeBSD Jail execution environment support A new Kyua concept is added -- "execution environment". A test can be configured to be run within a specific environment. The test case lifecycle is extended respectively: - execenv init (creates a jail or does nothing for default execenv="host") - test exec - cleanup exec (optional) - execenv cleanup (removes a jail or does nothing for default execenv="host") The following new functionality is provided, from bottom to top: 1 ATF based tests - The new "execenv" metadata property can be set to explicitly ask for an execution environment: "host" or "jail". If it's not defined, as all existing tests do, then it implicitly means "host". - The new "execenv.jail.params" metadata property can be optionally defined to ask Kyua to use specific jail(8) parameters during creation of a temporary jail. An example is "vnet allow.raw_sockets". Kyua implicitly adds "children.max" to "execenv_jail_params" parameters with the maximum possible value. A test case can override it. 2 Kyuafile - The same new metadata properties can be defined on Kyuafile level: "execenv" and "execenv_jail_params". - Note that historically ATF uses dotted style of metadata naming, while Kyua uses underscore style. Hence "execenv.jail.params" vs. "execenv_jail_params". 3 kyua.conf, kyua CLI - The new "execenvs" engine configuration variable can be set to a list of execution environments to run only tests designed for. Tests of not listed environments are skipped. - By default, this variable lists all execution environments supported by a Kyua binary, e.g. execenvs="host jail". - This variable can be changed via "kyua.conf" or via kyua CLI's "-v" parameter. For example, "kyua -v execenvs=host test" will run only host-based tests and skip jail-based ones. - Current value of this variable can be examined with "kyua config". [markj] This feature has not landed upstream yet. See the discussion in https://github.com/freebsd/kyua/pull/224 . Having the ability to automatically jail tests allows many network tests to run in parallel, giving a drastic speedup. So, let's import the feature and start using it in main. Signed-off-by: Igor Ostapenko Reviewed by: markj, kp Tested by: markj, kp MFC after: 3 months Differential Revision: https://reviews.freebsd.org/D45865 (cherry picked from commit 257e70f1d5ee61037c8c59b116538d3b6b1427a2) Approved by: kp (mentor), markj (mentor) --- contrib/kyua/AUTHORS | 1 + contrib/kyua/cli/cmd_config_test.cpp | 12 +- contrib/kyua/doc/kyua.conf.5.in | 13 +- contrib/kyua/doc/kyuafile.5.in | 103 +++++++- contrib/kyua/drivers/report_junit_test.cpp | 8 + contrib/kyua/engine/atf.cpp | 11 +- contrib/kyua/engine/atf_list.cpp | 4 + contrib/kyua/engine/config.cpp | 18 ++ contrib/kyua/engine/execenv/execenv.cpp | 74 ++++++ contrib/kyua/engine/execenv/execenv.hpp | 149 +++++++++++ contrib/kyua/engine/execenv/execenv_host.cpp | 52 ++++ contrib/kyua/engine/execenv/execenv_host.hpp | 63 +++++ contrib/kyua/engine/plain.cpp | 7 +- contrib/kyua/engine/requirements.cpp | 33 +++ contrib/kyua/engine/scheduler.cpp | 274 ++++++++++++++++++- contrib/kyua/engine/scheduler.hpp | 1 + contrib/kyua/engine/tap.cpp | 7 +- contrib/kyua/examples/kyua.conf | 3 + contrib/kyua/integration/cmd_config_test.sh | 2 + contrib/kyua/integration/cmd_report_junit_test.sh | 8 + contrib/kyua/integration/cmd_report_test.sh | 2 + contrib/kyua/main.cpp | 3 + contrib/kyua/model/metadata.cpp | 76 ++++++ contrib/kyua/model/metadata.hpp | 5 + contrib/kyua/model/metadata_test.cpp | 8 +- contrib/kyua/model/test_case_test.cpp | 3 +- contrib/kyua/model/test_program_test.cpp | 13 +- contrib/kyua/os/freebsd/execenv_jail.cpp | 78 ++++++ contrib/kyua/os/freebsd/execenv_jail.hpp | 65 +++++ contrib/kyua/os/freebsd/execenv_jail_manager.cpp | 63 +++++ contrib/kyua/os/freebsd/execenv_jail_manager.hpp | 54 ++++ contrib/kyua/os/freebsd/execenv_jail_stub.cpp | 75 ++++++ contrib/kyua/os/freebsd/main.cpp | 54 ++++ contrib/kyua/os/freebsd/main.hpp | 41 +++ contrib/kyua/os/freebsd/utils/jail.cpp | 306 ++++++++++++++++++++++ contrib/kyua/os/freebsd/utils/jail.hpp | 64 +++++ contrib/kyua/utils/config/nodes.ipp | 9 +- contrib/kyua/utils/process/executor.cpp | 42 +++ contrib/kyua/utils/process/executor.hpp | 1 + usr.bin/kyua/Makefile | 15 +- 40 files changed, 1792 insertions(+), 28 deletions(-) diff --git a/contrib/kyua/AUTHORS b/contrib/kyua/AUTHORS index ac0998fb937c..26bfcd3471d3 100644 --- a/contrib/kyua/AUTHORS +++ b/contrib/kyua/AUTHORS @@ -9,3 +9,4 @@ # * Organization * Google Inc. +* Igor Ostapenko diff --git a/contrib/kyua/cli/cmd_config_test.cpp b/contrib/kyua/cli/cmd_config_test.cpp index f084f99bb90a..a5f6930ba027 100644 --- a/contrib/kyua/cli/cmd_config_test.cpp +++ b/contrib/kyua/cli/cmd_config_test.cpp @@ -61,6 +61,7 @@ fake_config(void) { config::tree user_config = engine::default_config(); user_config.set_string("architecture", "the-architecture"); + user_config.set_string("execenvs", "the-env"); user_config.set_string("parallelism", "128"); user_config.set_string("platform", "the-platform"); //user_config.set_string("unprivileged_user", ""); @@ -83,12 +84,13 @@ ATF_TEST_CASE_BODY(all) cmdline::ui_mock ui; ATF_REQUIRE_EQ(EXIT_SUCCESS, cmd.main(&ui, args, fake_config())); - ATF_REQUIRE_EQ(5, ui.out_log().size()); + ATF_REQUIRE_EQ(6, ui.out_log().size()); ATF_REQUIRE_EQ("architecture = the-architecture", ui.out_log()[0]); - ATF_REQUIRE_EQ("parallelism = 128", ui.out_log()[1]); - ATF_REQUIRE_EQ("platform = the-platform", ui.out_log()[2]); - ATF_REQUIRE_EQ("test_suites.foo.bar = first", ui.out_log()[3]); - ATF_REQUIRE_EQ("test_suites.foo.baz = second", ui.out_log()[4]); + ATF_REQUIRE_EQ("execenvs = the-env", ui.out_log()[1]); + ATF_REQUIRE_EQ("parallelism = 128", ui.out_log()[2]); + ATF_REQUIRE_EQ("platform = the-platform", ui.out_log()[3]); + ATF_REQUIRE_EQ("test_suites.foo.bar = first", ui.out_log()[4]); + ATF_REQUIRE_EQ("test_suites.foo.baz = second", ui.out_log()[5]); ATF_REQUIRE(ui.err_log().empty()); } diff --git a/contrib/kyua/doc/kyua.conf.5.in b/contrib/kyua/doc/kyua.conf.5.in index 05a9499b48c4..7188bb8888c3 100644 --- a/contrib/kyua/doc/kyua.conf.5.in +++ b/contrib/kyua/doc/kyua.conf.5.in @@ -1,4 +1,4 @@ -.\" Copyright 2012 The Kyua Authors. +.\" Copyright 2012-2024 The Kyua Authors. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE .\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.Dd February 20, 2015 +.Dd March 22, 2024 .Dt KYUA.CONF 5 .Os .Sh NAME @@ -36,6 +36,7 @@ .Pp Variables: .Va architecture , +.Va execenvs , .Va platform , .Va test_suites , .Va unprivileged_user . @@ -72,6 +73,14 @@ The following variables are internally recognized by .Bl -tag -width XX -offset indent .It Va architecture Name of the system architecture (aka processor type). +.It Va execenvs +Whitespace-separated list of execution environment names. +.Pp +Only tests which require one of the given execution environments will be run. +.Pp +See +.Xr kyuafile 5 +for the list of possible execution environments. .It Va parallelism Maximum number of test cases to execute concurrently. .It Va platform diff --git a/contrib/kyua/doc/kyuafile.5.in b/contrib/kyua/doc/kyuafile.5.in index 06cb2dbc42a8..a667f5dc2816 100644 --- a/contrib/kyua/doc/kyuafile.5.in +++ b/contrib/kyua/doc/kyuafile.5.in @@ -1,4 +1,4 @@ -.\" Copyright 2012 The Kyua Authors. +.\" Copyright 2012-2024 The Kyua Authors. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE .\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.Dd July 3, 2015 +.Dd March 23, 2024 .Dt KYUAFILE 5 .Os .Sh NAME @@ -173,6 +173,75 @@ Refer to the section below for clarification. .It Va description Textual description of the test. +.It Va execenv +The name of the execution environment to be used for running the test. +If empty or not defined, the +.Sq host +execution environment is meant. +The possible values are: +.Bl -tag -width xUnnnnnnn +.It host +The default environment which runs the test as a usual child process. +.It jail +The +.Fx +.Xr jail 8 +environment. +It creates a temporary jail to run the test and its optional cleanup logic +within. +.Pp +This feature requires +.Xr kyua 1 +to be running with superuser privileges. +.Pp +The difference between +.Va security.jail.children.max +and +.Va security.jail.children.cur +sysctl of the jail +.Xr kyua 1 +is running within must have a value high enough for the jail based tests +planned to be run. +For instance, the value 1 should be enough for a sequential run of simple +tests. +Otherwise, such aspects as parallel test execution and sub-jails spawned +by specific test cases should be considered. +.Pp +The formula of a temporary jail name is +.Sq kyua ++ +.Va test program path ++ +.Sq _ ++ +.Va test case name . +All non-alphanumeric characters are replaced with +.Sq _ . +.Sq kyua_usr_tests_sys_netpfil_pf_pass_block_v4 +is an example for /usr/tests/sys/netpfil/pf/pass_block:v4 test case. +.El +.It Va execenv_jail_params +Additional test-specific whitespace-separated parameters of +.Fx +.Xr jail 8 +to create a temporary jail within which the test is run. +It makes sense only if execenv is set to +.Sq jail . +.sp +.Xr kyua 1 +implicitly passes +.Sq children.max +parameter to +.Xr jail 8 +for a temporary jail with the maximum possible value according to +the jail +.Xr kyua 1 +itself is running within. +It allows tests to easily spawn their own sub-jails without additional +configuration. +It can be overridden via +.Va execenv_jail_params +if needed. .It Va is_exclusive If true, indicates that this test program cannot be executed along any other programs at the same time. @@ -360,6 +429,36 @@ test_suite('FreeBSD') plain_test_program{name='the_test', ['custom.FreeBSD-Bug-Id']='category/12345'} .Ed +.Ss FreeBSD jail execution environment +The following example configures the test to be run within a temporary jail +with +.Xr vnet 9 +support and the permission to create raw sockets: +.Bd -literal -offset indent +syntax(2) + +test_suite('FreeBSD') + +atf_test_program{name='network_test', + execenv='jail', + execenv_jail_params='vnet allow.raw_sockets', + required_user='root'} +.Ed +.Pp +A test case itself may have no requirements in superuser privileges, +but required_user='root' metadata property reminds that the jail execution +environment requires +.Xr kyua 1 +being running with root privileges, and the test is skipped otherwise with +the respective message. The combination of +.Va execenv +set to +.Sq jail +and +.Va required_user +set to +.Sq unprivileged +does not work respectively. .Ss Connecting disjoint test suites Now suppose you had various test suites on your file system and you would like to connect them together so that they could be executed and treated as diff --git a/contrib/kyua/drivers/report_junit_test.cpp b/contrib/kyua/drivers/report_junit_test.cpp index 462dca72f9be..0f009c6befd3 100644 --- a/contrib/kyua/drivers/report_junit_test.cpp +++ b/contrib/kyua/drivers/report_junit_test.cpp @@ -63,6 +63,8 @@ static const char* const default_metadata = "allowed_architectures is empty\n" "allowed_platforms is empty\n" "description is empty\n" + "execenv is empty\n" + "execenv_jail_params is empty\n" "has_cleanup = false\n" "is_exclusive = false\n" "required_configs is empty\n" @@ -80,6 +82,8 @@ static const char* const overriden_metadata = "allowed_architectures is empty\n" "allowed_platforms is empty\n" "description = Textual description\n" + "execenv is empty\n" + "execenv_jail_params is empty\n" "has_cleanup = false\n" "is_exclusive = false\n" "required_configs is empty\n" @@ -199,6 +203,8 @@ ATF_TEST_CASE_BODY(junit_metadata__overrides) .add_allowed_architecture("arch1") .add_allowed_platform("platform1") .set_description("This is a test") + .set_execenv("jail") + .set_execenv_jail_params("vnet") .set_has_cleanup(true) .set_is_exclusive(true) .add_required_config("config1") @@ -215,6 +221,8 @@ ATF_TEST_CASE_BODY(junit_metadata__overrides) + "allowed_architectures = arch1\n" + "allowed_platforms = platform1\n" + "description = This is a test\n" + + "execenv = jail\n" + + "execenv_jail_params = vnet\n" + "has_cleanup = true\n" + "is_exclusive = true\n" + "required_configs = config1\n" diff --git a/contrib/kyua/engine/atf.cpp b/contrib/kyua/engine/atf.cpp index eb63be20b0e7..f6746dd2f29f 100644 --- a/contrib/kyua/engine/atf.cpp +++ b/contrib/kyua/engine/atf.cpp @@ -39,6 +39,7 @@ extern "C" { #include "engine/atf_list.hpp" #include "engine/atf_result.hpp" #include "engine/exceptions.hpp" +#include "engine/execenv/execenv.hpp" #include "model/test_case.hpp" #include "model/test_program.hpp" #include "model/test_result.hpp" @@ -54,6 +55,7 @@ extern "C" { #include "utils/stream.hpp" namespace config = utils::config; +namespace execenv = engine::execenv; namespace fs = utils::fs; namespace process = utils::process; @@ -190,7 +192,10 @@ engine::atf_interface::exec_test(const model::test_program& test_program, args.push_back(F("-r%s") % (control_directory / result_name)); args.push_back(test_case_name); - process::exec(test_program.absolute_path(), args); + + auto e = execenv::get(test_program, test_case_name); + e->init(); + e->exec(args); } @@ -219,7 +224,9 @@ engine::atf_interface::exec_cleanup( } args.push_back(F("%s:cleanup") % test_case_name); - process::exec(test_program.absolute_path(), args); + + auto e = execenv::get(test_program, test_case_name); + e->exec(args); } diff --git a/contrib/kyua/engine/atf_list.cpp b/contrib/kyua/engine/atf_list.cpp index a16b889c74f0..c9c2fed70175 100644 --- a/contrib/kyua/engine/atf_list.cpp +++ b/contrib/kyua/engine/atf_list.cpp @@ -121,6 +121,10 @@ engine::parse_atf_metadata(const model::properties_map& props) mdbuilder.set_string("has_cleanup", value); } else if (name == "require.arch") { mdbuilder.set_string("allowed_architectures", value); + } else if (name == "execenv") { + mdbuilder.set_string("execenv", value); + } else if (name == "execenv.jail.params") { + mdbuilder.set_string("execenv_jail_params", value); } else if (name == "require.config") { mdbuilder.set_string("required_configs", value); } else if (name == "require.files") { diff --git a/contrib/kyua/engine/config.cpp b/contrib/kyua/engine/config.cpp index 3f162a94fbb5..a7c418e3164c 100644 --- a/contrib/kyua/engine/config.cpp +++ b/contrib/kyua/engine/config.cpp @@ -35,6 +35,7 @@ #include #include "engine/exceptions.hpp" +#include "engine/execenv/execenv.hpp" #include "utils/config/exceptions.hpp" #include "utils/config/parser.hpp" #include "utils/config/tree.ipp" @@ -43,6 +44,7 @@ #include "utils/text/operations.ipp" namespace config = utils::config; +namespace execenv = engine::execenv; namespace fs = utils::fs; namespace passwd = utils::passwd; namespace text = utils::text; @@ -59,6 +61,7 @@ static void init_tree(config::tree& tree) { tree.define< config::string_node >("architecture"); + tree.define< config::strings_set_node >("execenvs"); tree.define< config::positive_int_node >("parallelism"); tree.define< config::string_node >("platform"); tree.define< engine::user_node >("unprivileged_user"); @@ -74,6 +77,14 @@ static void set_defaults(config::tree& tree) { tree.set< config::string_node >("architecture", KYUA_ARCHITECTURE); + + std::set< std::string > supported; + for (auto em : execenv::execenvs()) + if (em->is_supported()) + supported.insert(em->name()); + supported.insert(execenv::default_execenv_name); + tree.set< config::strings_set_node >("execenvs", supported); + // TODO(jmmv): Automatically derive this from the number of CPUs in the // machine and forcibly set to a value greater than 1. Still testing // the new parallel implementation as of 2015-02-27 though. @@ -229,6 +240,13 @@ engine::empty_config(void) { config::tree tree(false); init_tree(tree); + + // Tests of Kyua itself tend to use an empty config, i.e. default + // execution environment is used. Let's allow it. + std::set< std::string > supported; + supported.insert(engine::execenv::default_execenv_name); + tree.set< config::strings_set_node >("execenvs", supported); + return tree; } diff --git a/contrib/kyua/engine/execenv/execenv.cpp b/contrib/kyua/engine/execenv/execenv.cpp new file mode 100644 index 000000000000..b043bcda52cb --- /dev/null +++ b/contrib/kyua/engine/execenv/execenv.cpp @@ -0,0 +1,74 @@ +// Copyright 2023 The Kyua Authors. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google Inc. nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#include "engine/execenv/execenv.hpp" + +#include "engine/execenv/execenv_host.hpp" + +namespace execenv = engine::execenv; + +using utils::none; + + +const char* execenv::default_execenv_name = "host"; + + +/// List of registered execution environments, except default host one. +/// +/// Use register_execenv() to add an entry to this global list. +static std::vector< std::shared_ptr< execenv::manager > > + execenv_managers; + + +void +execenv::register_execenv(const std::shared_ptr< execenv::manager > manager) +{ + execenv_managers.push_back(manager); +} + + +const std::vector< std::shared_ptr< execenv::manager> > +execenv::execenvs() +{ + return execenv_managers; +} + + +std::unique_ptr< execenv::interface > +execenv::get(const model::test_program& test_program, + const std::string& test_case_name) +{ + for (auto m : execenv_managers) { + auto e = m->probe(test_program, test_case_name); + if (e != nullptr) + return e; + } + + return std::unique_ptr< execenv::interface >( + new execenv::execenv_host(test_program, test_case_name)); +} diff --git a/contrib/kyua/engine/execenv/execenv.hpp b/contrib/kyua/engine/execenv/execenv.hpp new file mode 100644 index 000000000000..e667ff205d85 --- /dev/null +++ b/contrib/kyua/engine/execenv/execenv.hpp @@ -0,0 +1,149 @@ +// Copyright 2023 The Kyua Authors. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google Inc. nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/// \file engine/execenv/execenv.hpp +/// Execution environment subsystem interface. + +#if !defined(ENGINE_EXECENV_EXECENV_HPP) +#define ENGINE_EXECENV_EXECENV_HPP + +#include "model/test_program.hpp" +#include "utils/optional.ipp" +#include "utils/process/operations_fwd.hpp" + +using utils::process::args_vector; +using utils::optional; + +namespace engine { +namespace execenv { + + +extern const char* default_execenv_name; + + +/// Abstract interface of an execution environment. +class interface { +protected: + const model::test_program& _test_program; + const std::string& _test_case_name; + +public: + /// Constructor. + /// + /// \param program The test program. + /// \param test_case_name Name of the test case. + interface(const model::test_program& test_program, + const std::string& test_case_name) : + _test_program(test_program), + _test_case_name(test_case_name) + {} + + /// Destructor. + virtual ~interface() {} + + /// Initializes execution environment. + /// + /// It's expected to be called inside a fork which runs + /// scheduler::interface::exec_test(), so we can fail a test fast if its + /// execution environment setup fails, and test execution could use the + /// configured proc environment, if expected. + virtual void init() const = 0; + + /// Cleanups or removes execution environment. + /// + /// It's expected to be called inside a fork for execenv cleanup. + virtual void cleanup() const = 0; + + /// Executes a test within the execution environment. + /// + /// It's expected to be called inside a fork which runs + /// scheduler::interface::exec_test() or exec_cleanup(). + /// + /// \param args The arguments to pass to the binary. + virtual void exec(const args_vector& args) const UTILS_NORETURN = 0; +}; + + +/// Abstract interface of an execution environment manager. +class manager { +public: + /// Destructor. + virtual ~manager() {} + + /// Returns name of an execution environment. + virtual const std::string& name() const = 0; + + /// Returns whether this execution environment is actually supported. + /// + /// It can be compile time and/or runtime check. + virtual bool is_supported() const = 0; + + /// Returns execution environment for a test. + /// + /// It checks if the given test is designed for this execution environment. + /// + /// \param program The test program. + /// \param test_case_name Name of the test case. + /// + /// \return An execenv object if the test conforms, or none. + virtual std::unique_ptr< interface > probe( + const model::test_program& test_program, + const std::string& test_case_name) const = 0; + + // TODO: execenv related extra metadata could be provided by a manager + // not to know how exactly and where it should be added to the kyua +}; + + +/// Registers an execution environment. +/// +/// \param manager Execution environment manager. +void register_execenv(const std::shared_ptr< manager > manager); + + +/// Returns list of registered execenv managers, except default host one. +/// +/// \return A vector of pointers to execenv managers. +const std::vector< std::shared_ptr< manager> > execenvs(); + + +/// Returns execution environment for a test case. +/// +/// \param program The test program. +/// \param test_case_name Name of the test case. +/// +/// \return An execution environment of a test. +std::unique_ptr< execenv::interface > get( + const model::test_program& test_program, + const std::string& test_case_name); + + +} // namespace execenv +} // namespace engine + +#endif // !defined(ENGINE_EXECENV_EXECENV_HPP) diff --git a/contrib/kyua/engine/execenv/execenv_host.cpp b/contrib/kyua/engine/execenv/execenv_host.cpp new file mode 100644 index 000000000000..4e37fca3e7d3 --- /dev/null +++ b/contrib/kyua/engine/execenv/execenv_host.cpp @@ -0,0 +1,52 @@ +// Copyright 2024 The Kyua Authors. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google Inc. nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#include "engine/execenv/execenv_host.hpp" + +#include "utils/fs/path.hpp" +#include "utils/process/operations.hpp" + +void +execenv::execenv_host::init() const +{ + // nothing to do +} + + +void +execenv::execenv_host::cleanup() const +{ + // nothing to do +} + + +void +execenv::execenv_host::exec(const args_vector& args) const +{ + utils::process::exec(_test_program.absolute_path(), args); +} diff --git a/contrib/kyua/engine/execenv/execenv_host.hpp b/contrib/kyua/engine/execenv/execenv_host.hpp new file mode 100644 index 000000000000..2742366cfd6f --- /dev/null +++ b/contrib/kyua/engine/execenv/execenv_host.hpp @@ -0,0 +1,63 @@ +// Copyright 2024 The Kyua Authors. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google Inc. nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/// \file engine/execenv/execenv_host.hpp +/// Default execution environment. + +#if !defined(ENGINE_EXECENV_EXECENV_HOST_HPP) +#define ENGINE_EXECENV_EXECENV_HOST_HPP + +#include "engine/execenv/execenv.hpp" + +#include "utils/process/operations_fwd.hpp" + +namespace execenv = engine::execenv; + +using utils::process::args_vector; + +namespace engine { +namespace execenv { + + +class execenv_host : public execenv::interface { +public: + execenv_host(const model::test_program& test_program, + const std::string& test_case_name) : + execenv::interface(test_program, test_case_name) + {} + + void init() const; + void cleanup() const; + void exec(const args_vector& args) const UTILS_NORETURN; +}; + + +} // namespace execenv +} // namespace engine + +#endif // !defined(ENGINE_EXECENV_EXECENV_HOST_HPP) diff --git a/contrib/kyua/engine/plain.cpp b/contrib/kyua/engine/plain.cpp index 8346e50bbecf..9a2c63f8b663 100644 --- a/contrib/kyua/engine/plain.cpp +++ b/contrib/kyua/engine/plain.cpp @@ -34,6 +34,7 @@ extern "C" { #include +#include "engine/execenv/execenv.hpp" #include "model/test_case.hpp" #include "model/test_program.hpp" #include "model/test_result.hpp" @@ -47,6 +48,7 @@ extern "C" { #include "utils/sanity.hpp" namespace config = utils::config; +namespace execenv = engine::execenv; namespace fs = utils::fs; namespace process = utils::process; @@ -104,7 +106,10 @@ engine::plain_interface::exec_test( } process::args_vector args; - process::exec(test_program.absolute_path(), args); + + auto e = execenv::get(test_program, test_case_name); + e->init(); + e->exec(args); } diff --git a/contrib/kyua/engine/requirements.cpp b/contrib/kyua/engine/requirements.cpp index a7b0a90d97db..a6a4cae7511c 100644 --- a/contrib/kyua/engine/requirements.cpp +++ b/contrib/kyua/engine/requirements.cpp @@ -28,6 +28,7 @@ #include "engine/requirements.hpp" +#include "engine/execenv/execenv.hpp" #include "model/metadata.hpp" #include "model/types.hpp" #include "utils/config/nodes.ipp" @@ -100,6 +101,34 @@ check_allowed_architectures(const model::strings_set& allowed_architectures, } +/// Checks if test's execenv matches the user configuration. +/// +/// \param execenv Execution environment name a test is designed for. +/// \param user_config Runtime user configuration. +/// +/// \return Empty if the execenv is in the list or an error message otherwise. +static std::string +check_execenv(const std::string& execenv, const config::tree& user_config) +{ + std::string name = execenv; + if (name.empty()) + name = engine::execenv::default_execenv_name; // if test claims nothing + + std::set< std::string > execenvs; + try { + execenvs = user_config.lookup< config::strings_set_node >("execenvs"); + } catch (const config::unknown_key_error&) { + // okay, user config does not define it, empty set then + } + + if (execenvs.find(name) == execenvs.end()) + return F("'%s' execenv is not supported or not allowed by " + "the runtime user configuration") % name; + + return ""; +} + + /// Checks if the allowed platforms match the current architecture. /// /// \param allowed_platforms Set of allowed platforms. @@ -263,6 +292,10 @@ engine::check_reqs(const model::metadata& md, const config::tree& cfg, if (!reason.empty()) return reason; + reason = check_execenv(md.execenv(), cfg); + if (!reason.empty()) + return reason; + reason = check_allowed_platforms(md.allowed_platforms(), cfg); if (!reason.empty()) return reason; diff --git a/contrib/kyua/engine/scheduler.cpp b/contrib/kyua/engine/scheduler.cpp index e7b51d23acca..e75091a40e38 100644 --- a/contrib/kyua/engine/scheduler.cpp +++ b/contrib/kyua/engine/scheduler.cpp @@ -40,6 +40,7 @@ extern "C" { #include "engine/config.hpp" #include "engine/exceptions.hpp" +#include "engine/execenv/execenv.hpp" #include "engine/requirements.hpp" #include "model/context.hpp" #include "model/metadata.hpp" @@ -68,6 +69,7 @@ extern "C" { namespace config = utils::config; namespace datetime = utils::datetime; +namespace execenv = engine::execenv; namespace executor = utils::process::executor; namespace fs = utils::fs; namespace logging = utils::logging; @@ -87,6 +89,10 @@ using utils::optional; datetime::delta scheduler::cleanup_timeout(60, 0); +/// Timeout for the test case execenv cleanup operation. +datetime::delta scheduler::execenv_cleanup_timeout(60, 0); + + /// Timeout for the test case listing operation. /// /// TODO(jmmv): This is here only for testing purposes. Maybe we should expose @@ -206,6 +212,18 @@ struct test_exec_data : public exec_data { /// denote that no further attempts shall be made at cleaning this up. bool needs_cleanup; + /// Whether this test case still needs to have its execenv cleanup executed. + /// + /// This is set externally when the cleanup routine is actually invoked to + /// denote that no further attempts shall be made at cleaning this up. + bool needs_execenv_cleanup; + + /// Original PID of the test case subprocess. + /// + /// This is used for the cleanup upon termination by a signal, to reap the + /// leftovers and form missing exit_handle. *** 1724 LINES SKIPPED *** From nobody Thu Oct 17 13:49:49 2024 X-Original-To: dev-commits-src-branches@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 4XTq2k0hWrz5Z2DD; Thu, 17 Oct 2024 13:49:50 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTq2k04s2z4lNG; Thu, 17 Oct 2024 13:49:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172990; 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=BK6w8wVTDwqEPgKASBI7Bs0HRcbn3ygbzVx/WQUHujo=; b=sHwk1Gvx0IAAeyZaHlXWzZvscDc/OWprrs03aejaY2DMAPou3+amz4mJMu91X2rmYpKDRp /YdAnG8FFeggfO9mxXhZWRWjjxHZie4FvoyuT5koVjLJDhmfKKwcwMuJExPYDaKZByzRw7 0TSqRxRsq/nUQryH1hwVLszyZ7v7SfBzxth5+7upqUJ+I1gvax2TBvwDYftjJX8NILU2o0 mRSGTKGDn98N1HyGrAQbw5PaxZWwdskgxtAvHSqkSHjmd9OieeFeZxx0I0tLf2aEm/7Gqb d6wSAE4XDHNciqirf3qqhgCI5RyBpP5qDbqEA16GPRVJZzEd2//qTci//6eQVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172990; 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=BK6w8wVTDwqEPgKASBI7Bs0HRcbn3ygbzVx/WQUHujo=; b=wFLCB+d4AG/p0/FdfpQi21WH6ih9IKNoIa38p/pR0BA1LR/LEUBVTvgZXA1iMPnUma1mfa KiwXZMBt/vofFdeJ3F6P1x07WuvfrpZDcjMgzWFI4F+0LaFkzYJEiSwagnG3MOV1+VFN9d APzxGp5O4uPVfXrUjZDwM0bJZNv3E5SfRwAIMVhjfVoSPJ2prwxF46TgNoq6BrLO0lHb6K g7dBaWBT2DxR0sumezaSK1K6QwZcccu3lGAGXYJlqFV1TvsGOUZgrprRNIKTbDR54QLzrU +TUuphjrkvYOXBDJkiHL6D6qsTrOlkp5pK7yz4sbqs77nJWNfecrpO2JjTFSjg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729172990; a=rsa-sha256; cv=none; b=B7uVWyn2D4WzT9fHtovkTR8ntDKQFF7ZWylQIh3p7l8iA917SMGyXX6geF+bO1kXuCOkM5 eEYYARw3/jmio5i3Oy5nLXlBV4yagFfV6wx7fPx+BARG6YJXYhzJwfQvUzCqT0m1Y/E9CD sJl+Qx04scfYN44+qf4UsAMIX59sPq6288oWrJROvknb1A4a9+jfXf3jCF8FULWo7absuP QIUb4EPejEJrFSaPD8GbWm88wvylAEpxa93YCjzuoPboV8BTaHq3ywZxSsDFvX+iwgLsBA 78zBpzwXycPjhdCCVdD5YLXNSZS91DpQSffTqeLiJlzbQrS1wgZjLAqRYn9tZg== 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 4XTq2j6mHyzsJg; Thu, 17 Oct 2024 13:49:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HDnnOd044649; Thu, 17 Oct 2024 13:49:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HDnnvK044646; Thu, 17 Oct 2024 13:49:49 GMT (envelope-from git) Date: Thu, 17 Oct 2024 13:49:49 GMT Message-Id: <202410171349.49HDnnvK044646@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Igor Ostapenko Subject: git: 946d76fb154b - stable/14 - kyua: fix gcc builds List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: igoro X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 946d76fb154bde23115ec4463d7968ee803769c8 Auto-Submitted: auto-generated The branch stable/14 has been updated by igoro: URL: https://cgit.FreeBSD.org/src/commit/?id=946d76fb154bde23115ec4463d7968ee803769c8 commit 946d76fb154bde23115ec4463d7968ee803769c8 Author: Brooks Davis AuthorDate: 2024-07-19 23:24:35 +0000 Commit: Igor Ostapenko CommitDate: 2024-10-17 13:45:15 +0000 kyua: fix gcc builds For some reason execenv::exec() isn't successfully marked noreturn (rlibby reports that virtual functions can't be noreturn), but calling methods are so gcc rightly complains. Work around this by adding explicit __builtin_unreachable() calls. Reviewed by: imp, markj Fixes: 257e70f1d5ee kyua: Add FreeBSD Jail execution environment support Differential Revision: https://reviews.freebsd.org/D46041 (cherry picked from commit 47fb5d2b13c5ca8e1a3b05ed223d62ea4b43b3e8) Approved by: kp (mentor), markj (mentor) --- contrib/kyua/engine/atf.cpp | 2 ++ contrib/kyua/engine/plain.cpp | 1 + contrib/kyua/engine/tap.cpp | 1 + 3 files changed, 4 insertions(+) diff --git a/contrib/kyua/engine/atf.cpp b/contrib/kyua/engine/atf.cpp index f6746dd2f29f..47f3bd2a1903 100644 --- a/contrib/kyua/engine/atf.cpp +++ b/contrib/kyua/engine/atf.cpp @@ -196,6 +196,7 @@ engine::atf_interface::exec_test(const model::test_program& test_program, auto e = execenv::get(test_program, test_case_name); e->init(); e->exec(args); + __builtin_unreachable(); } @@ -227,6 +228,7 @@ engine::atf_interface::exec_cleanup( auto e = execenv::get(test_program, test_case_name); e->exec(args); + __builtin_unreachable(); } diff --git a/contrib/kyua/engine/plain.cpp b/contrib/kyua/engine/plain.cpp index 9a2c63f8b663..0aba9b3fb6fa 100644 --- a/contrib/kyua/engine/plain.cpp +++ b/contrib/kyua/engine/plain.cpp @@ -110,6 +110,7 @@ engine::plain_interface::exec_test( auto e = execenv::get(test_program, test_case_name); e->init(); e->exec(args); + __builtin_unreachable(); } diff --git a/contrib/kyua/engine/tap.cpp b/contrib/kyua/engine/tap.cpp index ed35ba40433f..716212d18d02 100644 --- a/contrib/kyua/engine/tap.cpp +++ b/contrib/kyua/engine/tap.cpp @@ -157,6 +157,7 @@ engine::tap_interface::exec_test( auto e = execenv::get(test_program, test_case_name); e->init(); e->exec(args); + __builtin_unreachable(); } From nobody Thu Oct 17 13:49:50 2024 X-Original-To: dev-commits-src-branches@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 4XTq2l30Wmz5Z2Kk; Thu, 17 Oct 2024 13:49:51 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTq2l1YHhz4lQG; Thu, 17 Oct 2024 13:49:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172991; 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=U3SjLJc4niQ6i+MlklwL48W87NEyKeBfidqsQiplppc=; b=Kd/LuZynwLepB3zgP2HgPm+kD6B+90GKvi/1P3SziupR1XSHXiVekgwQIdeHo6yHdplPi0 5XXGlEqYmPHKPib313mekeMF0ekMTN62a7MGL4d5UAQS8EQtCF7aQW6W7v2TRizsxZ7uO8 e/Shd2NC8NeuUFFXQaDFcbunH5iswYy5EyZsO7cTXMeCx+4Bk3m0TxSCdsrioVpRTQNMN4 hmgR+qUGCS/CZDGlkpcu2uSgV1snOWQqLMva9DoYKPG3x1bLgpui5XwFQbm8m8kCwn3C+v otpRpMTs2oiJHGnATCNxQq3vQVmVlHIcMPSFmnTew5tYh0Yehey0dVxogkLZ8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172991; 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=U3SjLJc4niQ6i+MlklwL48W87NEyKeBfidqsQiplppc=; b=QN6GE9DpqeVBJiIBz6hH2A4geGVqtN141StFohiU4Q3wNwGr7VWXZi2dU/5SbclV+1weku MM1TzsjYNtdOGJwWooWLGsdIFnw7qv7FW8NPRLfuY4Y6gCm0ZSysyVcW7NNr5PM5COLKre rM9Ew3qm6kmtiGFxhmgDIIi3K+GIJ803YUbZu6H7fM3jlmHVrZxJaHnS5sBT5UClCNzcD0 je/RXdQk7TQPLVmtQpcBzdfiiDy0sFj3j4cU/gUfwMEnfwukSYjM37I++rTxfIkACNnMIQ 6G1utyuY68CwG2Imva8MTZNcu9rd5sqU4NHLDfcNYTUrBey6if/aK4m1WRpM1Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729172991; a=rsa-sha256; cv=none; b=ZSg2wwap+iudIEKAkF5buvit/p1gME3OQ/M/bQf3iIMeRwJ0FH6+3PKnRO5dOl0UKkXwVG e22CVtQ0L0IIIGdrWZQmWK+t6K2Sc2i6lagBMmTzRWDvJXiGNVqDNzzWFHbqb/Sr8QB+2h RRQnhqcmY0kHHc1DR/zfWwYw392SNgYrW+kTYsCk0cVpBOleI6z+eXTb7KWaJqUKsO7Sp4 CuTxbLefaRXiz3Fhm+usWlUnF9L/nII6DbWgTnarlbsGRZWddMSI6h/QSpOoMeajUu8JBg CSLyXWIk9BzBFeVbasAjRU0opWdG2eI12DQ1N3QHtuznx3IJM/yw3pC8f4vjwg== 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 4XTq2l0NCPzs12; Thu, 17 Oct 2024 13:49:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HDnoos044706; Thu, 17 Oct 2024 13:49:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HDnoW3044703; Thu, 17 Oct 2024 13:49:50 GMT (envelope-from git) Date: Thu, 17 Oct 2024 13:49:50 GMT Message-Id: <202410171349.49HDnoW3044703@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Igor Ostapenko Subject: git: 1152da4a99fb - stable/14 - kyua: Do not count skipped as passed in test cmd List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: igoro X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1152da4a99fb2bb06e7d45b646580bd31904317a Auto-Submitted: auto-generated The branch stable/14 has been updated by igoro: URL: https://cgit.FreeBSD.org/src/commit/?id=1152da4a99fb2bb06e7d45b646580bd31904317a commit 1152da4a99fb2bb06e7d45b646580bd31904317a Author: Igor Ostapenko AuthorDate: 2024-10-05 10:19:31 +0000 Commit: Igor Ostapenko CommitDate: 2024-10-17 13:45:21 +0000 kyua: Do not count skipped as passed in test cmd It changes output of 'kyua test' CLI command only. Hence, other outputs like junit are kept intact for CI and other use cases. It's meant to improve UX of attended use cases. The issue is that the following can be tricky to interpret: 222/222 passed (0 failed) It can be read as all tests are passed, but it might be a summary line of all tests skipped due to some requirement is not met. It's reworked to easily distinguish such cases: 222/222 passed (0 broken, 0 failed, 0 skipped) 0/222 passed (0 broken, 0 failed, 222 skipped) The overall formula is: / (
) Suggested by: kp Reviewed by: ngie, markj Approved by: markj (mentor) Differential Revision: https://reviews.freebsd.org/D46653 (cherry picked from commit 99689201a1eb7bcd503987c5220b79330dc058b7) Approved by: kp (mentor), markj (mentor) --- contrib/kyua/cli/cmd_test.cpp | 50 +++++++++++++++++++++---------- contrib/kyua/integration/cmd_test_test.sh | 42 +++++++++++++------------- contrib/kyua/model/test_result.cpp | 48 ++++++++++++++++++++++------- contrib/kyua/model/test_result.hpp | 15 ++++++++++ 4 files changed, 107 insertions(+), 48 deletions(-) diff --git a/contrib/kyua/cli/cmd_test.cpp b/contrib/kyua/cli/cmd_test.cpp index cfaeec9b74cc..b7afa6d11547 100644 --- a/contrib/kyua/cli/cmd_test.cpp +++ b/contrib/kyua/cli/cmd_test.cpp @@ -64,11 +64,8 @@ class print_hooks : public drivers::run_tests::base_hooks { bool _parallel; public: - /// The amount of positive test results found so far. - unsigned long good_count; - - /// The amount of negative test results found so far. - unsigned long bad_count; + /// The amount of test results per type. + std::map type_count; /// Constructor for the hooks. /// @@ -76,10 +73,10 @@ public: /// \param parallel_ True if we are executing more than one test at once. print_hooks(cmdline::ui* ui_, const bool parallel_) : _ui(ui_), - _parallel(parallel_), - good_count(0), - bad_count(0) + _parallel(parallel_) { + for (const auto& pair : model::test_result_types) + type_count[pair.first] = 0; } /// Called when the processing of a test case begins. @@ -116,10 +113,8 @@ public: } _ui->out(F("%s [%s]") % cli::format_result(result) % cli::format_delta(duration)); - if (result.good()) - good_count++; - else - bad_count++; + + type_count[result.type()]++; } }; @@ -159,8 +154,21 @@ cmd_test::run(cmdline::ui* ui, const cmdline::parsed_cmdline& cmdline, kyuafile_path(cmdline), build_root_path(cmdline), results.second, parse_filters(cmdline.arguments()), user_config, hooks); + unsigned long total = 0; + unsigned long good = 0; + unsigned long bad = 0; + for (const auto& pair : model::test_result_types) { + const auto& type = pair.second; + const auto count = hooks.type_count[type.id]; + total += count; + if (type.is_run && type.is_good) + good += count; + if (!type.is_good) + bad += count; + } + int exit_code; - if (hooks.good_count > 0 || hooks.bad_count > 0) { + if (total > 0) { ui->out(""); if (!results.first.empty()) { ui->out(F("Results file id is %s") % results.first); @@ -168,10 +176,20 @@ cmd_test::run(cmdline::ui* ui, const cmdline::parsed_cmdline& cmdline, ui->out(F("Results saved to %s") % results.second); ui->out(""); - ui->out(F("%s/%s passed (%s failed)") % hooks.good_count % - (hooks.good_count + hooks.bad_count) % hooks.bad_count); + ui->out(F("%s/%s passed (") % good % total, false); + const auto& types = model::test_result_types; + for (auto it = types.begin(); it != types.end(); it++) { + const auto& type = it->second; + if (!type.is_run || !type.is_good) { + if (it != types.begin()) + ui->out(", ", false); + ui->out(F("%s %s") % hooks.type_count[type.id] % type.name, + false); + } + } + ui->out(")"); - exit_code = (hooks.bad_count == 0 ? EXIT_SUCCESS : EXIT_FAILURE); + exit_code = (bad == 0 ? EXIT_SUCCESS : EXIT_FAILURE); } else { // TODO(jmmv): Delete created empty file; it's useless! if (!results.first.empty()) { diff --git a/contrib/kyua/integration/cmd_test_test.sh b/contrib/kyua/integration/cmd_test_test.sh index bc8c62daf223..f0862cf29582 100755 --- a/contrib/kyua/integration/cmd_test_test.sh +++ b/contrib/kyua/integration/cmd_test_test.sh @@ -44,7 +44,7 @@ simple_all_pass:skip -> skipped: The reason for skipping is this [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -2/2 passed (0 failed) +1/2 passed (0 broken, 0 failed, 1 skipped) EOF utils_cp_helper simple_all_pass . @@ -69,7 +69,7 @@ simple_some_fail:pass -> passed [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -1/2 passed (1 failed) +1/2 passed (0 broken, 1 failed, 0 skipped) EOF utils_cp_helper simple_some_fail . @@ -102,7 +102,7 @@ third:skip -> skipped: The reason for skipping is this [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -7/7 passed (0 failed) +3/7 passed (0 broken, 0 failed, 4 skipped) EOF utils_cp_helper simple_all_pass first @@ -138,7 +138,7 @@ third:skip -> skipped: The reason for skipping is this [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -4/7 passed (3 failed) +3/7 passed (0 broken, 3 failed, 1 skipped) EOF utils_cp_helper simple_some_fail first @@ -172,7 +172,7 @@ expect_all_pass:timeout -> expected_failure: This times out [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -5/5 passed (0 failed) +5/5 passed (0 broken, 0 failed, 0 skipped) EOF # CHECK_STYLE_ENABLE @@ -203,7 +203,7 @@ expect_some_fail:timeout -> failed: Test case was expected to hang but it cont Results file id is $(utils_results_id) Results saved to $(utils_results_file) -1/6 passed (5 failed) +1/6 passed (0 broken, 5 failed, 0 skipped) EOF # CHECK_STYLE_ENABLE @@ -231,7 +231,7 @@ bogus_test_cases:pass -> passed [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -1/3 passed (2 failed) +1/3 passed (2 broken, 0 failed, 0 skipped) EOF # CHECK_STYLE_ENABLE @@ -270,7 +270,7 @@ subdir/simple_some_fail:pass -> passed [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -3/4 passed (1 failed) +2/4 passed (0 broken, 1 failed, 1 skipped) EOF atf_check -s exit:1 -o file:expout -e empty kyua test } @@ -302,7 +302,7 @@ subdir/simple_all_pass:skip -> skipped: The reason for skipping is this [S.UU Results file id is $(utils_results_id) Results saved to $(utils_results_file) -2/2 passed (0 failed) +1/2 passed (0 broken, 0 failed, 1 skipped) EOF # CHECK_STYLE_ENABLE atf_check -s exit:0 -o file:expout -e empty kyua test subdir @@ -328,7 +328,7 @@ first:skip -> skipped: The reason for skipping is this [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -1/1 passed (0 failed) +0/1 passed (0 broken, 0 failed, 1 skipped) EOF atf_check -s exit:0 -o file:expout -e empty kyua test first:skip } @@ -354,7 +354,7 @@ second:pass -> passed [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -1/2 passed (1 failed) +1/2 passed (0 broken, 1 failed, 0 skipped) EOF atf_check -s exit:1 -o file:expout -e empty kyua test second } @@ -402,7 +402,7 @@ subdir/second:pass -> passed [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -2/3 passed (1 failed) +2/3 passed (0 broken, 1 failed, 0 skipped) EOF atf_check -s exit:1 -o file:expout -e empty kyua test subdir first:pass } @@ -470,7 +470,7 @@ third:pass -> passed [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -3/4 passed (1 failed) +2/4 passed (0 broken, 1 failed, 1 skipped) EOF cat >experr < failed: This fails on purpose [S.UUUs] Results file id is $(utils_results_id root) Results saved to $(utils_results_file root) -2/3 passed (1 failed) +1/3 passed (0 broken, 1 failed, 1 skipped) EOF atf_check -s exit:1 -o file:expout -e empty kyua test \ -k "$(pwd)/root/Kyuafile" first subdir/fourth:fail @@ -542,7 +542,7 @@ first:skip -> skipped: The reason for skipping is this [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -2/2 passed (0 failed) +1/2 passed (0 broken, 0 failed, 1 skipped) EOF CREATE_COOKIE="$(pwd)/cookie"; export CREATE_COOKIE atf_check -s exit:0 -o file:expout -e empty kyua test first @@ -612,7 +612,7 @@ some-program:pass -> passed [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -1/2 passed (1 failed) +1/2 passed (0 broken, 1 failed, 0 skipped) EOF atf_check -s exit:1 -o file:expout -e empty kyua test @@ -710,7 +710,7 @@ subdir/third:skip -> skipped: The reason for skipping is this [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -6/6 passed (0 failed) +3/6 passed (0 broken, 0 failed, 3 skipped) EOF mkdir build @@ -745,7 +745,7 @@ sometest:skip -> skipped: The reason for skipping is this [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -2/2 passed (0 failed) +1/2 passed (0 broken, 0 failed, 1 skipped) EOF atf_check -s exit:0 -o file:expout -e empty kyua test -k myfile atf_check -s exit:0 -o file:expout -e empty kyua test --kyuafile=myfile @@ -774,7 +774,7 @@ sometest:skip -> skipped: The reason for skipping is this [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -2/2 passed (0 failed) +1/2 passed (0 broken, 0 failed, 1 skipped) EOF atf_check -s exit:0 -o file:expout -e empty kyua test -k myfile sometest cat >expout < skipped: The reason for skipping is this [S.UUUs] Results file id is $(utils_results_id) Results saved to $(utils_results_file) -2/2 passed (0 failed) +1/2 passed (0 broken, 0 failed, 1 skipped) EOF atf_check -s exit:0 -o file:expout -e empty kyua test --kyuafile=myfile \ sometest @@ -987,7 +987,7 @@ non_executable:__test_cases_list__ -> broken: Permission denied to run test pr Results file id is $(utils_results_id) Results saved to $(utils_results_file) -0/2 passed (2 failed) +0/2 passed (2 broken, 0 failed, 0 skipped) EOF # CHECK_STYLE_ENABLE atf_check -s exit:1 -o file:expout -e empty kyua test diff --git a/contrib/kyua/model/test_result.cpp b/contrib/kyua/model/test_result.cpp index 7392e77f5561..f3e1b66f260b 100644 --- a/contrib/kyua/model/test_result.cpp +++ b/contrib/kyua/model/test_result.cpp @@ -35,6 +35,42 @@ namespace text = utils::text; +const std::map + model::test_result_types = +{ + { test_result_broken, + { .id = test_result_broken, + .name = "broken", + .is_run = true, + .is_good = false, } }, + + { test_result_expected_failure, + { .id = test_result_expected_failure, + .name = "xfail", + .is_run = true, + .is_good = true, } }, + + { test_result_failed, + { .id = test_result_failed, + .name = "failed", + .is_run = true, + .is_good = false, } }, + + { test_result_passed, + { .id = test_result_passed, + .name = "passed", + .is_run = true, + .is_good = true, } }, + + { test_result_skipped, + { .id = test_result_skipped, + .name = "skipped", + .is_run = false, + .is_good = true, } }, +}; + + /// Constructs a base result. /// /// \param type_ The type of the result. @@ -74,17 +110,7 @@ model::test_result::reason(void) const bool model::test_result::good(void) const { - switch (_type) { - case test_result_expected_failure: - case test_result_passed: - case test_result_skipped: - return true; - - case test_result_broken: - case test_result_failed: - return false; - } - UNREACHABLE; + return test_result_types.at(_type).is_good; } diff --git a/contrib/kyua/model/test_result.hpp b/contrib/kyua/model/test_result.hpp index b9c439ce789a..33c76124550f 100644 --- a/contrib/kyua/model/test_result.hpp +++ b/contrib/kyua/model/test_result.hpp @@ -34,12 +34,27 @@ #include "model/test_result_fwd.hpp" +#include #include #include namespace model { +/// Test result type metadata. +struct test_result_type_desc { + enum test_result_type id; + std::string name; + bool is_run; + bool is_good; +}; + + +/// Description of each test result type. +extern const std::map test_result_types; + + /// Representation of a single test result. /// /// A test result is a simple pair of (type, reason). The type indicates the From nobody Thu Oct 17 13:49:52 2024 X-Original-To: dev-commits-src-branches@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 4XTq2m3J7rz5Z2DK; Thu, 17 Oct 2024 13:49:52 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTq2m264yz4ldB; Thu, 17 Oct 2024 13:49:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172992; 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=qIUnyiK3y/sV3XxqHtV0d3cgwFsN7+k81knF4avsBDI=; b=CQwnLYNGWmpbZIUJoaaZAokYX9eU9BrqF/axO4P4UhKC4Rp3uI5Wd6zLgZ6NLE4IgdSUOK dVrhQvvOIHS+Dwj7a9tKXI6gvN5wk20kPj0/3JG8notJ70HRwwJmiIIyKy4TbzcVKjb7qx YUN2D9RtPzklfQcuqNGKnE29UbQ/zsZ2hFMAvccyXIKJ+I/iLDLei3H5fx7ZL0sgpkSE9y Lb6I2MXWWJtkqs66ZCzgTpUFMV6V3mOuz2RUTJpw3hI8NgalHm9ratQ3zQjq7S/BTiw38h FGfeW2jw8NXqAcuW73CiF5gYfy/7lQLqnzTFRzkF7xvtbYQMpEY7lW7FQWhx1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172992; 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=qIUnyiK3y/sV3XxqHtV0d3cgwFsN7+k81knF4avsBDI=; b=knO3VcQndaT08kCUweFrq5gme/FgGVZLzIcQ0SZrFAVQak4rnrl0wF1OpNhXqqYoA6VCjW 7rAkzu7N9CNmkH8c5pxI8cyK9fN1/RmNYWdnVUMxxpo0f5EY79JxOzyXHHD5VyI1I08I5u nvc+zoix6gVwqcVDEMdAj1CQOykQLKcNhe3BdPN5E5ofPRQG7aXYvVbty2nk+HE0eBg0S0 gxQU9HaTl2CmikyyeZ30W1bJ4szGmmnzu6qaK4TtvWZguH2sVHk1TkiACo2awGrXo9XTwG egTSLLw2gNwFfv6MTwUPenNozWIITflZWfS6ECvspFFenwmeO3GaaNH0EhVjcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729172992; a=rsa-sha256; cv=none; b=qOtuEV+jIdx4jlT6XazccW5/jYt/bgQgSPsuRN934zcGmhfNypX3BJg83DwRw7YLCOgt81 Dwhiqt+iXNqbhGOkg1LlyAfTfe6oRsKnDZCKEyIkxduRfL/TPiTAcOGjq4HbUj+GbpAreD QuCO307UFsS8DaL0eg6TCeXE367Sdk2I1xyGGHrFAwFErx8se+FKePbPk0eC3s6GbT6665 /iRE6Hnmlh90lbMXRvrpxa+hJTAygje/cHGLxNSpJLrK4eVyuE2iyym92BJ+jNF1B5QZeK xRN34WR4MReiUQudy1wAGwjoRyoVHDpy211/x1SHByfrS3c2x85FX2HC2SttMw== 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 4XTq2m1j45zs2Q; Thu, 17 Oct 2024 13:49:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HDnq99044749; Thu, 17 Oct 2024 13:49:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HDnqTN044746; Thu, 17 Oct 2024 13:49:52 GMT (envelope-from git) Date: Thu, 17 Oct 2024 13:49:52 GMT Message-Id: <202410171349.49HDnqTN044746@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Igor Ostapenko Subject: git: c5fc967cf158 - stable/14 - netpfil tests: run in parallel List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: igoro X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c5fc967cf158f47ff479155b9ee2f9cfa852cd85 Auto-Submitted: auto-generated The branch stable/14 has been updated by igoro: URL: https://cgit.FreeBSD.org/src/commit/?id=c5fc967cf158f47ff479155b9ee2f9cfa852cd85 commit c5fc967cf158f47ff479155b9ee2f9cfa852cd85 Author: Kristof Provost AuthorDate: 2024-07-19 08:03:30 +0000 Commit: Igor Ostapenko CommitDate: 2024-10-17 13:45:29 +0000 netpfil tests: run in parallel Run these tests in their own (vnet) jail so we don't have to worry about IP range or jail name conflicts. Reviewed by: markj Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46040 (cherry picked from commit 4f752a1583dc97d166caae7f844bf42715e99978) Approved by: kp (mentor), markj (mentor) --- tests/sys/netpfil/common/Makefile | 5 +++-- tests/sys/netpfil/ipfw/Makefile | 4 ++++ tests/sys/netpfil/pf/Makefile | 5 +++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/sys/netpfil/common/Makefile b/tests/sys/netpfil/common/Makefile index 0003aac28779..2b6a812482ec 100644 --- a/tests/sys/netpfil/common/Makefile +++ b/tests/sys/netpfil/common/Makefile @@ -13,8 +13,9 @@ ATF_TESTS_SH+= \ fragments \ forward -# Tests reuse jail names and so cannot run in parallel. -TEST_METADATA+= is_exclusive=true +# Allow tests to run in parallel in their own jails +TEST_METADATA+= execenv="jail" +TEST_METADATA+= execenv_jail_params="vnet allow.raw_sockets" ${PACKAGE}FILES+= \ utils.subr \ diff --git a/tests/sys/netpfil/ipfw/Makefile b/tests/sys/netpfil/ipfw/Makefile index 1d4629c0e738..78882ef51aec 100644 --- a/tests/sys/netpfil/ipfw/Makefile +++ b/tests/sys/netpfil/ipfw/Makefile @@ -5,4 +5,8 @@ TESTSDIR= ${TESTSBASE}/sys/netpfil/ipfw ATF_TESTS_SH+= fwd ${PACKAGE}FILES+= fwd_inetd.conf +# Allow tests to run in parallel in their own jails +TEST_METADATA+= execenv="jail" +TEST_METADATA+= execenv_jail_params="vnet allow.raw_sockets" + .include diff --git a/tests/sys/netpfil/pf/Makefile b/tests/sys/netpfil/pf/Makefile index 9b793417c1d8..085cdf043606 100644 --- a/tests/sys/netpfil/pf/Makefile +++ b/tests/sys/netpfil/pf/Makefile @@ -47,8 +47,9 @@ ATF_TESTS_SH+= altq \ ATF_TESTS_PYTEST+= frag6.py ATF_TESTS_PYTEST+= sctp.py -# Tests reuse jail names and so cannot run in parallel. -TEST_METADATA+= is_exclusive=true +# Allow tests to run in parallel in their own jails +TEST_METADATA+= execenv="jail" +TEST_METADATA+= execenv_jail_params="vnet allow.raw_sockets" PROGS= divapp From nobody Thu Oct 17 13:49:53 2024 X-Original-To: dev-commits-src-branches@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 4XTq2n5gvZz5Z2DL; Thu, 17 Oct 2024 13:49:53 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTq2n3yrmz4lXw; Thu, 17 Oct 2024 13:49:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172993; 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=4gP33WVMl/rERWsuuPfgYbZSOpdtzM39iJ6C0TnYLmA=; b=l/KzJu8YDqm7wWueoEzkoCZ4XbgEHtYCM+SVfmNONTSwYqUHNSN6ghjogQ5BSmzgsHORio Z+fY4fur32aPZ/b1dsbV/2Kqad7WtrqLA1lBz/3h9NMORhwbIpovuQx0r44yHp0gugMJGN xAab/5DFmICOwCOYWVt8doGgsH7MO9dcp22J4+dlwjCueXJRH1TRbzbWDEy0pBinlB6tH9 o+QkTpU4k9IaCt3B3xMQkBGeqReqIub+HEaGbP+vscU/oh05vRHit4wKCgeSHSh6CCk0fb wbiTuvtiH1TZnvJDdU/H+GlfmQcKJK0gzgUo77/3VQuBR61XG8GjIR8i/r8thA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172993; 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=4gP33WVMl/rERWsuuPfgYbZSOpdtzM39iJ6C0TnYLmA=; b=nWpcuWj9SQBaexxuM6woRfz+XPWv85h9duEav3hOWpSaPltjoU2ZC0JXe69zGPjeD+n6Cp LQVYWanvAdxOrFkE6UZ2ICTa3h8QKgipW4R7HkmyzhV3U5YPMu573TlT83YwThvqHkQXH5 7kNXhfIWvWUlw0sH1UB5SSjrNSDSUWO8hmv9FV7RQf3AtKUq75/IorbyrmWXLjMD3Vut31 g+PcWOFoaKqFYRr3vi1WjOUYAkMvHrRtWjOgubp6qU04HPV2ckp/YLG0G8b3nYm2cpb4ff aJGSgOnUwSFLEtnOwZnbHvfTsVmfmaor2QNamq7VnQKgGbEkCdGBaNjp3YIX5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729172993; a=rsa-sha256; cv=none; b=uC1RFK3dHWl171huhySRbTpGqEi1fJiwskDCQKzTKlcVMZlGwFwaNqK+82ZATnww4D4mPC uH2EbtstVCVe/EeFYenoGjjHsMre6oajV47e2vgJiB2Zr0SOHmb/55VNxxVTIfLZdo86d5 o/ZHbXFC3wiTbR9aJXSRAMRMnegZWYkXGdnaemYDD1lFN1ZPnbwrwwdzu0h20vJ3rZIxQG zngdBiIcQCkKHhld47cUdOeKaIdsYn+RRSckGIwpFhQpQd9u9cLKq2zVV7YAwDDH3qOIlX Lp0kP9bSNLycAW22jnpntkmVn4kta7C9FjM6fq8wfyuKkxWAVyFAu1224DCQzQ== 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 4XTq2n2kyNzs13; Thu, 17 Oct 2024 13:49:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HDnr5C044803; Thu, 17 Oct 2024 13:49:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HDnriN044800; Thu, 17 Oct 2024 13:49:53 GMT (envelope-from git) Date: Thu, 17 Oct 2024 13:49:53 GMT Message-Id: <202410171349.49HDnriN044800@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Igor Ostapenko Subject: git: 0e2a3e1da9c2 - stable/14 - if_ovpn tests: allow these tests to run in parallel List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: igoro X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0e2a3e1da9c29c943b6f7272ecf2527cc8046633 Auto-Submitted: auto-generated The branch stable/14 has been updated by igoro: URL: https://cgit.FreeBSD.org/src/commit/?id=0e2a3e1da9c29c943b6f7272ecf2527cc8046633 commit 0e2a3e1da9c29c943b6f7272ecf2527cc8046633 Author: Kristof Provost AuthorDate: 2024-09-06 16:47:06 +0000 Commit: Igor Ostapenko CommitDate: 2024-10-17 13:45:35 +0000 if_ovpn tests: allow these tests to run in parallel Now that kyua can isolate tests in their own vnets we can run these tests in parallel. Reviewed by: markj Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46600 (cherry picked from commit a05decec2d194821f8bf5c8f2ae72063de0c87a8) Approved by: kp (mentor), markj (mentor) --- tests/sys/net/if_ovpn/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/sys/net/if_ovpn/Makefile b/tests/sys/net/if_ovpn/Makefile index 823ad06e76ee..85746226e122 100644 --- a/tests/sys/net/if_ovpn/Makefile +++ b/tests/sys/net/if_ovpn/Makefile @@ -6,8 +6,8 @@ TESTSDIR= ${TESTSBASE}/sys/net/if_ovpn .if ${MK_PF} != "no" ATF_TESTS_SH+= if_ovpn -# Tests reuse jail names and so cannot run in parallel. -TEST_METADATA.if_ovpn+= is_exclusive=true +TEST_METADATA.if_ovpn+= execenv="jail" +TEST_METADATA.if_ovpn+= execenv_jail_params="vnet allow.raw_sockets" .endif ATF_TESTS_C+= if_ovpn_c From nobody Thu Oct 17 13:49:54 2024 X-Original-To: dev-commits-src-branches@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 4XTq2p6lN4z5Z2HS; Thu, 17 Oct 2024 13:49:54 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTq2p4nYvz4lT9; Thu, 17 Oct 2024 13:49:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172994; 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=FjcUsVZNirVUVI+CMTwgkOEJIgjqInwZnWstRLzn3Ow=; b=IaZrHHbSQSd0iHlHoAR1TV+vl8+7c56KyaNwWsiD7oRAia1zTApplYHVxy6rx+iq9Gzq0s rytUL4qXw2hMiOpgaaM7FFESHrhBLwXDZx59rtdNVdsWGwyrqh4OXOPzVnoO8Ip1fB8AKI Wn4oicBit87xNLyZz89a274xYF/FJy9Qcx8wn85doxprmOxes7LKUxRvo1UahFgGsSistS JegXqzg6NjKE3T5SNjaOCl5gj1HevmfeNgF22uIP3CN7dbyY3P24lPiLYQn/gOMjmM7LiB qtlXPxfRUwCoDQEo4DIl2gdrFyz/eV82M5CX2sdqvBHBxEvmHQ1IwbBMi+SZUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729172994; 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=FjcUsVZNirVUVI+CMTwgkOEJIgjqInwZnWstRLzn3Ow=; b=pr4olgGizWNUswEGT91pU2KE8lorwyGeEf8B77DZYXGJnTM5KX9a36PHKMmtqivnTAUxFc Mgl27y2nkRODUUNm7Fk95GAJUyjxZxiCw1CacZ4bNkrOoAX+h9yh/UDPV/hSdzZhFbYiIq GKw9I4/XXPz/gd2YhUQbu/sZSwruAG1GN3OpVbG4PH3ZSv9SZgn5YucT8PyB6ppvDDqg2E Hl44oOec+Duj6q7hTuuP8tnBMj3VWWyJvJmk5kmmHeKqfbcic9iocPNiqzLMa791kODiz3 alMrrusRQzWKNfFdBxJ2h+G9kCqx5RK4gdCfAyDWjOv8MjvlT00OMMRPcu/58g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729172994; a=rsa-sha256; cv=none; b=XB78xRN3GtPKBvoXoZeXZJQnkEvU5g1ba4pklX9lrBjeOe+yXALaLyoqd5j4naLFrxgCl+ CKJN7mlhFsfCjxy0smlNbMIG1gwzJJjCiS0EfpjBaaCF+y2TKhZHEP6GH19j5pGq1Ttzaa yhMSk6p5x329eWRt/RAwg+FjcxtuKdFQmR6eBsXocOsp4f31yPhJmVwRdDAsjSARQ7Wjc+ cO0hi8LMLbKDLlZEjBSzQq+ZpqqkhFi79WOQeu0c+dm03qW/DZuVWtXRPuTELOfNvXpUEz 5hU9a7j6/WvhFkqf2gMuRO0gD6qTJsSHV0TFd+d87q7srJniMTkLE3Gx1igC/g== 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 4XTq2p3XQlzsJh; Thu, 17 Oct 2024 13:49:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HDnsGS044863; Thu, 17 Oct 2024 13:49:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HDnsYB044860; Thu, 17 Oct 2024 13:49:54 GMT (envelope-from git) Date: Thu, 17 Oct 2024 13:49:54 GMT Message-Id: <202410171349.49HDnsYB044860@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Igor Ostapenko Subject: git: 9e6ff43535e4 - stable/14 - netinet tests: Make some tests more reliable when run in parallel List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: igoro X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9e6ff43535e4b345202ff9586c2e72eed14e4114 Auto-Submitted: auto-generated The branch stable/14 has been updated by igoro: URL: https://cgit.FreeBSD.org/src/commit/?id=9e6ff43535e4b345202ff9586c2e72eed14e4114 commit 9e6ff43535e4b345202ff9586c2e72eed14e4114 Author: Mark Johnston AuthorDate: 2024-09-09 15:28:24 +0000 Commit: Igor Ostapenko CommitDate: 2024-10-17 13:45:45 +0000 netinet tests: Make some tests more reliable when run in parallel Many of the modified tests add epair interfaces to the host, though most of the tests themselves run in a VNET jail. scapy in particular becomes unhappy when the list of interfaces changes as it is running, so, to improve reliability of parallel test runs, isolate tests which add epairs to the host. Also serialize arp tests, as they examine the dmesg as part of the test. The list of modified tests is not exhaustive, it was determined by running the test suite with parallelization enabled and looking at failures. It may be easier to just automatically enable VNET jailing of all netinet tests, but let's be more particular for now. Reviewed by: kp MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D46606 (cherry picked from commit b103fc49ae160fdce221c2fffa98dde9bc0ff3b0) Approved by: kp (mentor), markj (mentor) --- tests/sys/netinet/Makefile | 11 +++++++++-- tests/sys/netinet6/Makefile | 18 +++++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/tests/sys/netinet/Makefile b/tests/sys/netinet/Makefile index 44f76508bf5c..8fa12378990c 100644 --- a/tests/sys/netinet/Makefile +++ b/tests/sys/netinet/Makefile @@ -25,8 +25,15 @@ ATF_TESTS_SH= arp \ ATF_TESTS_PYTEST+= carp.py -TEST_METADATA.divert+= required_programs="python" -TEST_METADATA.forward+= required_programs="python" +# Some of the arp tests look for log messages in the dmesg buffer, so run them +# serially to avoid problems with interleaved output. +TEST_METADATA.arp+= is_exclusive="true" +TEST_METADATA.divert+= required_programs="python" \ + execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.forward+= required_programs="python" \ + execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" TEST_METADATA.output+= required_programs="python" TEST_METADATA.redirect+= required_programs="python" TEST_METADATA.tcp6_v4mapped_bind_test+= is_exclusive="true" diff --git a/tests/sys/netinet6/Makefile b/tests/sys/netinet6/Makefile index 46f6f26115fe..6af0d13c5f03 100644 --- a/tests/sys/netinet6/Makefile +++ b/tests/sys/netinet6/Makefile @@ -17,7 +17,23 @@ ATF_TESTS_SH= exthdr \ ndp \ proxy_ndp -TEST_METADATA.output6+= required_programs="python" +TEST_METADATA.divert+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.exthdr+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.forward6+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.ndp+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.output6+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" \ + required_programs="python" +TEST_METADATA.proxy_ndp+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.redirect+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.scapyi386+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" ${PACKAGE}FILES+= exthdr.py \ mld.py \ From nobody Thu Oct 17 16:16:35 2024 X-Original-To: dev-commits-src-branches@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 4XTtJ32Cmpz5Z9w1; Thu, 17 Oct 2024 16:16:35 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtJ31xk3z42vy; Thu, 17 Oct 2024 16:16:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181795; 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=fxn9IDUeVeiHxVU8DzR8xSwVGOrXbrHDBQq3j3aWDCQ=; b=egWur70u5xeOjnyitaRSN1YBwgwLEmEK7eDtyBl2sf8OV0PtsXkHO1F0qskHj9yjbcsS4/ 9bQdPy1cxxe1Dqjft7ql+z1X/8Qph3gduIEGxE9euwGpvuwEXzZ5wnLjI/u3Pq9QFTX2Wd /7MF4TqqxaUKf0OhKQc6AIrpkoH2GuJ+h0tdYBNtec+Lxo99KXoBpQugkl8kLYXUVntxHO WdOu9rmY5z5pA2ZfYzi9aUcBvGB8LPWwTRm+xvgH/2cNFHvO8U016w4+OgjOFJ8j13Pc8g h+28egleaw9wTT9HZIue2yq/Ipt66EHgiIpn8OWFFRHm721ckzg2hLykMcWHPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181795; 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=fxn9IDUeVeiHxVU8DzR8xSwVGOrXbrHDBQq3j3aWDCQ=; b=Cf2Y62Z9jybMrqZTIg4ZWx3nIeAeq7I940WhfzxYshSIMC3wEE89Ie22HQsGO7vkr0ONfS u1COoduRBRyjw470Pe6JDlHicoAr1sGUFxTKeLUq9I/j307ESFAuo3wrNGhcjJoy6f24LB B5dMnma+c+ESZYvhqv0gkLCCxpIDUBgs/RbL9lK/dRScQKpsKwnMXQOBF6pbgAXfaL9IG4 KJYZTzfpL0WVa99j2wXqNdKbluiFxQxYJ/YwhzFTaPZ0z2ocg2XQ4BszijhuOW+gyTyB1g 1VraMjm8jYwKUa2URoUnOTMRogtbNmMK3ycWJlckf4F11krg9Jcrb7QLqZwaUg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729181795; a=rsa-sha256; cv=none; b=nSEKQv4pO0ilnoJMZfb3rCVPxsvTFjB4/E/kZ8JQ1xyBdEGb4PvxiIFNBLtN9WKAaCsjl/ 7H5Mu6Fc0LvyyDHzK80yZLMhR++gq2hNNqQPYYUKgX3a38r2rWN97jLislrmIr+sIs2Gti M5ETQVUcLINNMHFlwp0qgpYivc9mC3cGkb6WghV+Ut41e8i2ejukO/T8Y2DCZWZa3KN996 1laiKXqmVGai35CFtXH7aBs2l/gkjjBL2GrjPQ2juaD0nfxo0b3Met2rWIl+uV4451nmR4 uzIouBI1XIWTMBgz1kT7z/FseFAw/11nkisipaSzH5fZOcSZrQVf51Eur4CNnQ== 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 4XTtJ31XJWzwpw; Thu, 17 Oct 2024 16:16:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGGZd9099061; Thu, 17 Oct 2024 16:16:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGGZIr099058; Thu, 17 Oct 2024 16:16:35 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:16:35 GMT Message-Id: <202410171616.49HGGZIr099058@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 93ff7dbaea1d - stable/14 - socket: Implement SO_SPLICE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 93ff7dbaea1dac5a6a4309de3780eaf39d52a2a4 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=93ff7dbaea1dac5a6a4309de3780eaf39d52a2a4 commit 93ff7dbaea1dac5a6a4309de3780eaf39d52a2a4 Author: Mark Johnston AuthorDate: 2024-09-10 16:50:30 +0000 Commit: Mark Johnston CommitDate: 2024-10-17 15:48:36 +0000 socket: Implement SO_SPLICE This is a feature which allows one to splice two TCP sockets together such that data which arrives on one socket is automatically pushed into the send buffer of the spliced socket. This can be used to make TCP proxying more efficient as it eliminates the need to copy data into and out of userspace. The interface is copied from OpenBSD, and this implementation aims to be compatible. Splicing is enabled by setting the SO_SPLICE socket option. When spliced, data that arrives on the receive buffer is automatically forwarded to the other socket. In particular, splicing is a unidirectional operation; to splice a socket pair in both directions, SO_SPLICE needs to be applied to both sockets. More concretely, when setting the option one passes the following struct: struct splice { int fd; off_t max; struct timveval idle; }; where "fd" refers to the socket to which the first socket is to be spliced, and two setsockopt(SO_SPLICE) calls are required to set up a bi-directional splice. select(), poll() and kevent() do not return when data arrives in the receive buffer of a spliced socket, as such data is expected to be removed automatically once space is available in the corresponding send buffer. Userspace can perform I/O on spliced sockets, but it will be unpredictably interleaved with splice I/O. A splice can be configured to unsplice once a certain number of bytes have been transmitted, or after a given time period. Once unspliced, the socket behaves normally from userspace's perspective. The number of bytes transmitted via the splice can be retrieved using getsockopt(SO_SPLICE); this works after unsplicing as well, up until the socket is closed or spliced again. Userspace can also manually trigger unsplicing by splicing to -1. Splicing work is handled by dedicated threads, similar to KTLS. A worker thread is assigned at splice creation time. At some point it would be nice to have a direct dispatch mode, wherein the thread which places data into a receive buffer is also responsible for pushing it into the sink, but this requires tighter integration with the protocol stack in order to avoid reentrancy problems. Currently, sowakeup() and related functions will signal the worker thread assigned to a spliced socket. so_splice_xfer() does the hard work of moving data between socket buffers. Co-authored by: gallatin Reviewed by: brooks (interface bits) MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Stormshield Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D46411 (cherry picked from commit a1da7dc1cdad8c000622a7b23ff5994ccfe9cac6) --- lib/libc/sys/getsockopt.2 | 62 +++- sys/kern/uipc_sockbuf.c | 34 ++- sys/kern/uipc_socket.c | 702 +++++++++++++++++++++++++++++++++++++++++++++- sys/sys/ktrace.h | 2 + sys/sys/sockbuf.h | 3 +- sys/sys/socket.h | 12 + sys/sys/socketvar.h | 49 +++- 7 files changed, 854 insertions(+), 10 deletions(-) diff --git a/lib/libc/sys/getsockopt.2 b/lib/libc/sys/getsockopt.2 index 3f49c3186209..548e2f738e22 100644 --- a/lib/libc/sys/getsockopt.2 +++ b/lib/libc/sys/getsockopt.2 @@ -27,7 +27,7 @@ .\" .\" @(#)getsockopt.2 8.4 (Berkeley) 5/2/95 .\" -.Dd February 8, 2021 +.Dd July 8, 2024 .Dt GETSOCKOPT 2 .Os .Sh NAME @@ -193,6 +193,7 @@ The following options are recognized in .It Dv SO_MAX_PACING_RATE Ta "set the maximum transmit rate in bytes per second for the socket" .It Dv SO_NO_OFFLOAD Ta "disables protocol offloads" .It Dv SO_NO_DDP Ta "disables direct data placement offload" +.It Dv SO_SPLICE Ta "splice two sockets together" .El .Pp .Dv SO_DEBUG @@ -553,6 +554,56 @@ DDP is an offload supported by Chelsio network adapters that permits reassembled TCP data streams to be received via zero-copy in user-supplied buffers using .Xr aio_read 2 . +.Pp +.Dv SO_SPLICE , +when passed to +.Fn setsockopt , +splices two sockets together using the following +.Fa optval : +.Bd -literal +struct so_splice { + int sp_fd; + off_t sp_max; + struct timeval sp_idle; +}; +.Ed +.Pp +Data received on +.Fa s +will automatically be transmitted from the socket specified in +.Fa sp_fd +without any intervention by userspace. +Splicing is a one-way operation; a given pair of sockets may be +spliced in one or both directions. +Currently only connected +.Xr tcp 4 +sockets may be spliced together. +If +.Fa sp_max +is greater than zero, the socket pair will automatically be unspliced +once that number of bytes have been transmitted. +If +.Fa sp_idle +is non-zero, the socket pair will automatically be unspliced once the +specified amount of time has elapsed since the initial call to +.Fn setsockopt . +If +.Fa sp_fd +is -1, the socket will be unspliced immediately. +.Pp +When passed to +.Fn getsockopt , +the +.Dv SO_SPLICE +option returns a 64-bit integer containing the number of bytes transmitted by +the most recent splice. +That is, while the socket is spliced, the value returned will be the number +of bytes spliced so far. +When unsplicing, this value is saved and is returned until the socket is closed +or spliced again. +For example, if a splice transmits 100 bytes and is then unspliced, a subsequent +.Nm getsockopt +call will return 100 until the socket is spliced again. .Sh RETURN VALUES .Rv -std .Sh ERRORS @@ -620,5 +671,14 @@ and .Fn setsockopt system calls appeared in .Bx 4.2 . +The +.Dv SO_SPLICE +option originated in +.Ox 4.9 +and first appeared in +.Fx 15.0 . +The +.Fx +implementation aims to be source-compatible. .Sh BUGS Several of the socket options should be handled at lower levels of the system. diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c index 406fdca11b47..0c28812aa3c2 100644 --- a/sys/kern/uipc_sockbuf.c +++ b/sys/kern/uipc_sockbuf.c @@ -510,6 +510,32 @@ sowakeup(struct socket *so, const sb_which which) SOCK_BUF_UNLOCK_ASSERT(so, which); } +static void +splice_push(struct socket *so) +{ + struct so_splice *sp; + + SOCK_RECVBUF_LOCK_ASSERT(so); + + sp = so->so_splice; + mtx_lock(&sp->mtx); + SOCK_RECVBUF_UNLOCK(so); + so_splice_dispatch(sp); +} + +static void +splice_pull(struct socket *so) +{ + struct so_splice *sp; + + SOCK_SENDBUF_LOCK_ASSERT(so); + + sp = so->so_splice_back; + mtx_lock(&sp->mtx); + SOCK_SENDBUF_UNLOCK(so); + so_splice_dispatch(sp); +} + /* * Do we need to notify the other side when I/O is possible? */ @@ -524,7 +550,9 @@ void sorwakeup_locked(struct socket *so) { SOCK_RECVBUF_LOCK_ASSERT(so); - if (sb_notify(&so->so_rcv)) + if (so->so_rcv.sb_flags & SB_SPLICED) + splice_push(so); + else if (sb_notify(&so->so_rcv)) sowakeup(so, SO_RCV); else SOCK_RECVBUF_UNLOCK(so); @@ -534,7 +562,9 @@ void sowwakeup_locked(struct socket *so) { SOCK_SENDBUF_LOCK_ASSERT(so); - if (sb_notify(&so->so_snd)) + if (so->so_snd.sb_flags & SB_SPLICED) + splice_pull(so); + else if (sb_notify(&so->so_snd)) sowakeup(so, SO_SND); else SOCK_SENDBUF_UNLOCK(so); diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index cdff5f23de0a..edd26f28a292 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -124,6 +124,7 @@ #include #include #include +#include #include #include #include @@ -135,7 +136,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -161,8 +164,17 @@ #include #endif +static int soreceive_generic_locked(struct socket *so, + struct sockaddr **psa, struct uio *uio, struct mbuf **mp, + struct mbuf **controlp, int *flagsp); static int soreceive_rcvoob(struct socket *so, struct uio *uio, int flags); +static int soreceive_stream_locked(struct socket *so, struct sockbuf *sb, + struct sockaddr **psa, struct uio *uio, struct mbuf **mp, + struct mbuf **controlp, int flags); +static int sosend_generic_locked(struct socket *so, struct sockaddr *addr, + struct uio *uio, struct mbuf *top, struct mbuf *control, + int flags, struct thread *td); static void so_rdknl_lock(void *); static void so_rdknl_unlock(void *); static void so_rdknl_assert_lock(void *, int); @@ -206,6 +218,21 @@ MALLOC_DEFINE(M_PCB, "pcb", "protocol control block"); VNET_DEFINE(struct hhook_head *, socket_hhh[HHOOK_SOCKET_LAST + 1]); #define V_socket_hhh VNET(socket_hhh) +#ifdef COMPAT_FREEBSD32 +#ifdef __amd64__ +/* off_t has 4-byte alignment on i386 but not on other 32-bit platforms. */ +#define __splice32_packed __packed +#else +#define __splice32_packed +#endif +struct splice32 { + int32_t sp_fd; + int64_t sp_max; + struct timeval32 sp_idle; +} __splice32_packed; +#undef __splice32_packed +#endif + /* * Limit on the number of connections in the listen queue waiting * for accept(2). @@ -278,6 +305,371 @@ socket_zone_change(void *tag) maxsockets = uma_zone_set_max(socket_zone, maxsockets); } +static int splice_init_state; +static struct sx splice_init_lock; +SX_SYSINIT(splice_init_lock, &splice_init_lock, "splice_init"); + +static SYSCTL_NODE(_kern_ipc, OID_AUTO, splice, CTLFLAG_RW, 0, + "Settings relating to the SO_SPLICE socket option"); + +static bool splice_receive_stream = true; +SYSCTL_BOOL(_kern_ipc_splice, OID_AUTO, receive_stream, CTLFLAG_RWTUN, + &splice_receive_stream, 0, + "Use soreceive_stream() for stream splices"); + +static uma_zone_t splice_zone; +static struct proc *splice_proc; +struct splice_wq { + struct mtx mtx; + STAILQ_HEAD(, so_splice) head; + bool running; +} __aligned(CACHE_LINE_SIZE); +static struct splice_wq *splice_wq; +static uint32_t splice_index = 0; + +static void so_splice_timeout(void *arg, int pending); +static void so_splice_xfer(struct so_splice *s); +static int so_unsplice(struct socket *so, bool timeout); + +static void +splice_work_thread(void *ctx) +{ + struct splice_wq *wq = ctx; + struct so_splice *s, *s_temp; + STAILQ_HEAD(, so_splice) local_head; + int cpu; + + cpu = wq - splice_wq; + if (bootverbose) + printf("starting so_splice worker thread for CPU %d\n", cpu); + + for (;;) { + mtx_lock(&wq->mtx); + while (STAILQ_EMPTY(&wq->head)) { + wq->running = false; + mtx_sleep(wq, &wq->mtx, 0, "-", 0); + wq->running = true; + } + STAILQ_INIT(&local_head); + STAILQ_CONCAT(&local_head, &wq->head); + STAILQ_INIT(&wq->head); + mtx_unlock(&wq->mtx); + STAILQ_FOREACH_SAFE(s, &local_head, next, s_temp) { + mtx_lock(&s->mtx); + CURVNET_SET(s->src->so_vnet); + so_splice_xfer(s); + CURVNET_RESTORE(); + } + } +} + +static void +so_splice_dispatch_async(struct so_splice *sp) +{ + struct splice_wq *wq; + bool running; + + wq = &splice_wq[sp->wq_index]; + mtx_lock(&wq->mtx); + STAILQ_INSERT_TAIL(&wq->head, sp, next); + running = wq->running; + mtx_unlock(&wq->mtx); + if (!running) + wakeup(wq); +} + +void +so_splice_dispatch(struct so_splice *sp) +{ + mtx_assert(&sp->mtx, MA_OWNED); + + if (sp->state != SPLICE_IDLE) { + mtx_unlock(&sp->mtx); + } else { + sp->state = SPLICE_QUEUED; + mtx_unlock(&sp->mtx); + so_splice_dispatch_async(sp); + } +} + +static int +splice_zinit(void *mem, int size __unused, int flags __unused) +{ + struct so_splice *s; + + s = (struct so_splice *)mem; + mtx_init(&s->mtx, "so_splice", NULL, MTX_DEF); + return (0); +} + +static void +splice_zfini(void *mem, int size) +{ + struct so_splice *s; + + s = (struct so_splice *)mem; + mtx_destroy(&s->mtx); +} + +static int +splice_init(void) +{ + struct thread *td; + int error, i, state; + + state = atomic_load_acq_int(&splice_init_state); + if (__predict_true(state > 0)) + return (0); + if (state < 0) + return (ENXIO); + sx_xlock(&splice_init_lock); + if (splice_init_state != 0) { + sx_xunlock(&splice_init_lock); + return (0); + } + + splice_zone = uma_zcreate("splice", sizeof(struct so_splice), NULL, + NULL, splice_zinit, splice_zfini, UMA_ALIGN_CACHE, 0); + + splice_wq = mallocarray(mp_maxid + 1, sizeof(*splice_wq), M_TEMP, + M_WAITOK | M_ZERO); + + /* + * Initialize the workqueues to run the splice work. We create a + * work queue for each CPU. + */ + CPU_FOREACH(i) { + STAILQ_INIT(&splice_wq[i].head); + mtx_init(&splice_wq[i].mtx, "splice work queue", NULL, MTX_DEF); + } + + /* Start kthreads for each workqueue. */ + error = 0; + CPU_FOREACH(i) { + error = kproc_kthread_add(splice_work_thread, &splice_wq[i], + &splice_proc, &td, 0, 0, "so_splice", "thr_%d", i); + if (error) { + printf("Can't add so_splice thread %d error %d\n", + i, error); + break; + } + + /* + * It's possible to create loops with SO_SPLICE; ensure that + * worker threads aren't able to starve the system too easily. + */ + thread_lock(td); + sched_prio(td, PUSER); + thread_unlock(td); + } + + splice_init_state = error != 0 ? -1 : 1; + sx_xunlock(&splice_init_lock); + + return (error); +} + +/* + * Lock a pair of socket's I/O locks for splicing. Avoid blocking while holding + * one lock in order to avoid potential deadlocks in case there is some other + * code path which acquires more than one I/O lock at a time. + */ +static void +splice_lock_pair(struct socket *so_src, struct socket *so_dst) +{ + int error; + + for (;;) { + error = SOCK_IO_SEND_LOCK(so_dst, SBL_WAIT | SBL_NOINTR); + KASSERT(error == 0, + ("%s: failed to lock send I/O lock: %d", __func__, error)); + error = SOCK_IO_RECV_LOCK(so_src, 0); + KASSERT(error == 0 || error == EWOULDBLOCK, + ("%s: failed to lock recv I/O lock: %d", __func__, error)); + if (error == 0) + break; + SOCK_IO_SEND_UNLOCK(so_dst); + + error = SOCK_IO_RECV_LOCK(so_src, SBL_WAIT | SBL_NOINTR); + KASSERT(error == 0, + ("%s: failed to lock recv I/O lock: %d", __func__, error)); + error = SOCK_IO_SEND_LOCK(so_dst, 0); + KASSERT(error == 0 || error == EWOULDBLOCK, + ("%s: failed to lock send I/O lock: %d", __func__, error)); + if (error == 0) + break; + SOCK_IO_RECV_UNLOCK(so_src); + } +} + +static void +splice_unlock_pair(struct socket *so_src, struct socket *so_dst) +{ + SOCK_IO_RECV_UNLOCK(so_src); + SOCK_IO_SEND_UNLOCK(so_dst); +} + +/* + * Move data from the source to the sink. Assumes that both of the relevant + * socket I/O locks are held. + */ +static int +so_splice_xfer_data(struct socket *so_src, struct socket *so_dst, off_t max, + ssize_t *lenp) +{ + struct uio uio; + struct mbuf *m; + struct sockbuf *sb_src, *sb_dst; + ssize_t len; + long space; + int error, flags; + + SOCK_IO_RECV_ASSERT_LOCKED(so_src); + SOCK_IO_SEND_ASSERT_LOCKED(so_dst); + + error = 0; + m = NULL; + memset(&uio, 0, sizeof(uio)); + + sb_src = &so_src->so_rcv; + sb_dst = &so_dst->so_snd; + + space = sbspace(sb_dst); + if (space < 0) + space = 0; + len = MIN(max, MIN(space, sbavail(sb_src))); + if (len == 0) { + SOCK_RECVBUF_LOCK(so_src); + if ((sb_src->sb_state & SBS_CANTRCVMORE) != 0) + error = EPIPE; + SOCK_RECVBUF_UNLOCK(so_src); + } else { + flags = MSG_DONTWAIT; + uio.uio_resid = len; + if (splice_receive_stream && sb_src->sb_tls_info == NULL) { + error = soreceive_stream_locked(so_src, sb_src, NULL, + &uio, &m, NULL, flags); + } else { + error = soreceive_generic_locked(so_src, NULL, + &uio, &m, NULL, &flags); + } + if (error != 0 && m != NULL) { + m_freem(m); + m = NULL; + } + } + if (m != NULL) { + len -= uio.uio_resid; + error = sosend_generic_locked(so_dst, NULL, NULL, m, NULL, + MSG_DONTWAIT, curthread); + } else if (error == 0) { + len = 0; + SOCK_SENDBUF_LOCK(so_dst); + if ((sb_dst->sb_state & SBS_CANTSENDMORE) != 0) + error = EPIPE; + SOCK_SENDBUF_UNLOCK(so_dst); + } + if (error == 0) + *lenp = len; + return (error); +} + +/* + * Transfer data from the source to the sink. + * + * If "direct" is true, the transfer is done in the context of whichever thread + * is operating on one of the socket buffers. We do not know which locks are + * held, so we can only trylock the socket buffers; if this fails, we fall back + * to the worker thread, which invokes this routine with "direct" set to false. + */ +static void +so_splice_xfer(struct so_splice *sp) +{ + struct socket *so_src, *so_dst; + off_t max; + ssize_t len; + int error; + + mtx_assert(&sp->mtx, MA_OWNED); + KASSERT(sp->state == SPLICE_QUEUED || sp->state == SPLICE_CLOSING, + ("so_splice_xfer: invalid state %d", sp->state)); + KASSERT(sp->max != 0, ("so_splice_xfer: max == 0")); + + if (sp->state == SPLICE_CLOSING) { + /* Userspace asked us to close the splice. */ + goto closing; + } + + sp->state = SPLICE_RUNNING; + so_src = sp->src; + so_dst = sp->dst; + max = sp->max > 0 ? sp->max - so_src->so_splice_sent : OFF_MAX; + if (max < 0) + max = 0; + + /* + * Lock the sockets in order to block userspace from doing anything + * sneaky. If an error occurs or one of the sockets can no longer + * transfer data, we will automatically unsplice. + */ + mtx_unlock(&sp->mtx); + splice_lock_pair(so_src, so_dst); + + error = so_splice_xfer_data(so_src, so_dst, max, &len); + + mtx_lock(&sp->mtx); + + /* + * Update our stats while still holding the socket locks. This + * synchronizes with getsockopt(SO_SPLICE), see the comment there. + */ + if (error == 0) { + KASSERT(len >= 0, ("%s: len %zd < 0", __func__, len)); + so_src->so_splice_sent += len; + } + splice_unlock_pair(so_src, so_dst); + + switch (sp->state) { + case SPLICE_CLOSING: +closing: + sp->state = SPLICE_CLOSED; + wakeup(sp); + mtx_unlock(&sp->mtx); + break; + case SPLICE_RUNNING: + if (error != 0 || + (sp->max > 0 && so_src->so_splice_sent >= sp->max)) { + sp->state = SPLICE_EXCEPTION; + soref(so_src); + mtx_unlock(&sp->mtx); + (void)so_unsplice(so_src, false); + sorele(so_src); + } else { + /* + * Locklessly check for additional bytes in the source's + * receive buffer and queue more work if possible. We + * may end up queuing needless work, but that's ok, and + * if we race with a thread inserting more data into the + * buffer and observe sbavail() == 0, the splice mutex + * ensures that splice_push() will queue more work for + * us. + */ + if (sbavail(&so_src->so_rcv) > 0 && + sbspace(&so_dst->so_snd) > 0) { + sp->state = SPLICE_QUEUED; + mtx_unlock(&sp->mtx); + so_splice_dispatch_async(sp); + } else { + sp->state = SPLICE_IDLE; + mtx_unlock(&sp->mtx); + } + } + break; + default: + __assert_unreachable(); + } +} + static void socket_hhook_register(int subtype) { @@ -1192,6 +1584,219 @@ solisten_dequeue(struct socket *head, struct socket **ret, int flags) return (0); } +static struct so_splice * +so_splice_alloc(off_t max) +{ + struct so_splice *sp; + + sp = uma_zalloc(splice_zone, M_WAITOK); + sp->src = NULL; + sp->dst = NULL; + sp->max = max > 0 ? max : -1; + do { + sp->wq_index = atomic_fetchadd_32(&splice_index, 1) % + (mp_maxid + 1); + } while (CPU_ABSENT(sp->wq_index)); + sp->state = SPLICE_IDLE; + TIMEOUT_TASK_INIT(taskqueue_thread, &sp->timeout, 0, so_splice_timeout, + sp); + return (sp); +} + +static void +so_splice_free(struct so_splice *sp) +{ + KASSERT(sp->state == SPLICE_CLOSED, + ("so_splice_free: sp %p not closed", sp)); + uma_zfree(splice_zone, sp); +} + +static void +so_splice_timeout(void *arg, int pending __unused) +{ + struct so_splice *sp; + + sp = arg; + (void)so_unsplice(sp->src, true); +} + +/* + * Splice the output from so to the input of so2. + */ +static int +so_splice(struct socket *so, struct socket *so2, struct splice *splice) +{ + struct so_splice *sp; + int error; + + if (splice->sp_max < 0) + return (EINVAL); + /* Handle only TCP for now; TODO: other streaming protos */ + if (so->so_proto->pr_protocol != IPPROTO_TCP || + so2->so_proto->pr_protocol != IPPROTO_TCP) + return (EPROTONOSUPPORT); + if (so->so_vnet != so2->so_vnet) + return (EINVAL); + + /* so_splice_xfer() assumes that we're using these implementations. */ + KASSERT(so->so_proto->pr_sosend == sosend_generic, + ("so_splice: sosend not sosend_generic")); + KASSERT(so2->so_proto->pr_soreceive == soreceive_generic || + so2->so_proto->pr_soreceive == soreceive_stream, + ("so_splice: soreceive not soreceive_generic/stream")); + + sp = so_splice_alloc(splice->sp_max); + so->so_splice_sent = 0; + sp->src = so; + sp->dst = so2; + + error = 0; + SOCK_LOCK(so); + if (SOLISTENING(so)) + error = EINVAL; + else if ((so->so_state & (SS_ISCONNECTED | SS_ISCONNECTING)) == 0) + error = ENOTCONN; + else if (so->so_splice != NULL) + error = EBUSY; + if (error != 0) { + SOCK_UNLOCK(so); + uma_zfree(splice_zone, sp); + return (error); + } + soref(so); + so->so_splice = sp; + SOCK_RECVBUF_LOCK(so); + so->so_rcv.sb_flags |= SB_SPLICED; + SOCK_RECVBUF_UNLOCK(so); + SOCK_UNLOCK(so); + + error = 0; + SOCK_LOCK(so2); + if (SOLISTENING(so2)) + error = EINVAL; + else if ((so2->so_state & (SS_ISCONNECTED | SS_ISCONNECTING)) == 0) + error = ENOTCONN; + else if (so2->so_splice_back != NULL) + error = EBUSY; + if (error != 0) { + SOCK_UNLOCK(so2); + SOCK_LOCK(so); + so->so_splice = NULL; + SOCK_RECVBUF_LOCK(so); + so->so_rcv.sb_flags &= ~SB_SPLICED; + SOCK_RECVBUF_UNLOCK(so); + SOCK_UNLOCK(so); + sorele(so); + uma_zfree(splice_zone, sp); + return (error); + } + soref(so2); + so2->so_splice_back = sp; + SOCK_SENDBUF_LOCK(so2); + so2->so_snd.sb_flags |= SB_SPLICED; + mtx_lock(&sp->mtx); + SOCK_SENDBUF_UNLOCK(so2); + SOCK_UNLOCK(so2); + + if (splice->sp_idle.tv_sec != 0 || splice->sp_idle.tv_usec != 0) { + taskqueue_enqueue_timeout_sbt(taskqueue_thread, &sp->timeout, + tvtosbt(splice->sp_idle), 0, C_PREL(4)); + } + + /* + * Transfer any data already present in the socket buffer. + */ + sp->state = SPLICE_QUEUED; + so_splice_xfer(sp); + return (0); +} + +static int +so_unsplice(struct socket *so, bool timeout) +{ + struct socket *so2; + struct so_splice *sp; + bool drain; + + /* + * First unset SB_SPLICED and hide the splice structure so that + * wakeup routines will stop enqueuing work. This also ensures that + * a only a single thread will proceed with the unsplice. + */ + SOCK_LOCK(so); + if (SOLISTENING(so)) { + SOCK_UNLOCK(so); + return (EINVAL); + } + SOCK_RECVBUF_LOCK(so); + if ((so->so_rcv.sb_flags & SB_SPLICED) == 0) { + SOCK_RECVBUF_UNLOCK(so); + SOCK_UNLOCK(so); + return (ENOTCONN); + } + so->so_rcv.sb_flags &= ~SB_SPLICED; + sp = so->so_splice; + so->so_splice = NULL; + SOCK_RECVBUF_UNLOCK(so); + SOCK_UNLOCK(so); + + so2 = sp->dst; + SOCK_LOCK(so2); + KASSERT(!SOLISTENING(so2), ("%s: so2 is listening", __func__)); + SOCK_SENDBUF_LOCK(so2); + KASSERT((so2->so_snd.sb_flags & SB_SPLICED) != 0, + ("%s: so2 is not spliced", __func__)); + KASSERT(so2->so_splice_back == sp, + ("%s: so_splice_back != sp", __func__)); + so2->so_snd.sb_flags &= ~SB_SPLICED; + so2->so_splice_back = NULL; + SOCK_SENDBUF_UNLOCK(so2); + SOCK_UNLOCK(so2); + + /* + * No new work is being enqueued. The worker thread might be + * splicing data right now, in which case we want to wait for it to + * finish before proceeding. + */ + mtx_lock(&sp->mtx); + switch (sp->state) { + case SPLICE_QUEUED: + case SPLICE_RUNNING: + sp->state = SPLICE_CLOSING; + while (sp->state == SPLICE_CLOSING) + msleep(sp, &sp->mtx, PSOCK, "unsplice", 0); + break; + case SPLICE_IDLE: + case SPLICE_EXCEPTION: + sp->state = SPLICE_CLOSED; + break; + default: + __assert_unreachable(); + } + if (!timeout) { + drain = taskqueue_cancel_timeout(taskqueue_thread, &sp->timeout, + NULL) != 0; + } else { + drain = false; + } + mtx_unlock(&sp->mtx); + if (drain) + taskqueue_drain_timeout(taskqueue_thread, &sp->timeout); + + /* + * Now we hold the sole reference to the splice structure. + * Clean up: signal userspace and release socket references. + */ + sorwakeup(so); + CURVNET_SET(so->so_vnet); + sorele(so); + sowwakeup(so2); + sorele(so2); + CURVNET_RESTORE(); + so_splice_free(sp); + return (0); +} + /* * Free socket upon release of the very last reference. */ @@ -1205,6 +1810,12 @@ sofree(struct socket *so) ("%s: so %p has references", __func__, so)); KASSERT(SOLISTENING(so) || so->so_qstate == SQ_NONE, ("%s: so %p is on listen queue", __func__, so)); + KASSERT(SOLISTENING(so) || (so->so_rcv.sb_flags & SB_SPLICED) == 0, + ("%s: so %p rcvbuf is spliced", __func__, so)); + KASSERT(SOLISTENING(so) || (so->so_snd.sb_flags & SB_SPLICED) == 0, + ("%s: so %p sndbuf is spliced", __func__, so)); + KASSERT(so->so_splice == NULL && so->so_splice_back == NULL, + ("%s: so %p has spliced data", __func__, so)); SOCK_UNLOCK(so); @@ -3315,6 +3926,59 @@ sosetopt(struct socket *so, struct sockopt *sopt) so->so_max_pacing_rate = val32; break; + case SO_SPLICE: { + struct splice splice; + +#ifdef COMPAT_FREEBSD32 + if (SV_CURPROC_FLAG(SV_ILP32)) { + struct splice32 splice32; + + error = sooptcopyin(sopt, &splice32, + sizeof(splice32), sizeof(splice32)); + if (error == 0) { + splice.sp_fd = splice32.sp_fd; + splice.sp_max = splice32.sp_max; + CP(splice32.sp_idle, splice.sp_idle, + tv_sec); + CP(splice32.sp_idle, splice.sp_idle, + tv_usec); + } + } else +#endif + { + error = sooptcopyin(sopt, &splice, + sizeof(splice), sizeof(splice)); + } + if (error) + goto bad; + ktrsplice(&splice); + + error = splice_init(); + if (error != 0) + goto bad; + + if (splice.sp_fd >= 0) { + struct file *fp; + struct socket *so2; + + if (!cap_rights_contains(sopt->sopt_rights, + &cap_recv_rights)) { + error = ENOTCAPABLE; + goto bad; + } + error = getsock(sopt->sopt_td, splice.sp_fd, + &cap_send_rights, &fp); + if (error != 0) + goto bad; + so2 = fp->f_data; + + error = so_splice(so, so2, &splice); + fdrop(fp, sopt->sopt_td); + } else { + error = so_unsplice(so, false); + } + break; + } default: if (V_socket_hhh[HHOOK_SOCKET_OPT]->hhh_nhooks > 0) error = hhook_run_socket(so, sopt, @@ -3532,6 +4196,33 @@ integer: optval = so->so_max_pacing_rate; goto integer; + case SO_SPLICE: { + off_t n; + + /* + * Acquire the I/O lock to serialize with + * so_splice_xfer(). This is not required for + * correctness, but makes testing simpler: once a byte + * has been transmitted to the sink and observed (e.g., + * by reading from the socket to which the sink is + * connected), a subsequent getsockopt(SO_SPLICE) will + * return an up-to-date value. + */ + error = SOCK_IO_RECV_LOCK(so, SBL_WAIT); + if (error != 0) + goto bad; + SOCK_LOCK(so); + if (SOLISTENING(so)) { + n = 0; + } else { + n = so->so_splice_sent; + } + SOCK_UNLOCK(so); + SOCK_IO_RECV_UNLOCK(so); + error = sooptcopyout(sopt, &n, sizeof(n)); *** 226 LINES SKIPPED *** From nobody Thu Oct 17 16:16:36 2024 X-Original-To: dev-commits-src-branches@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 4XTtJ44w8dz5Z9WV; Thu, 17 Oct 2024 16:16: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtJ433pHz42hY; Thu, 17 Oct 2024 16:16:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181796; 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=Wv+JUOSXaNgy8ye4xmCmz8bKZeBBHJIQ00il+eKdyeY=; b=esV9C733HXxoyAhrY1dtUy+k4m5yBuCwpQq0efLoQLdSaqGhv2u7glmzbGRzPLC6QS1F5I gOLN39FI19Hf9GYq3J54zCcP5hslPTmSsM6J7c9FPUu8LHD63zCBPX+aDuBQJEL7TH5TW9 i5C5X0Si38jux18/5J+Av8Gz78XCcGWqbt1HzBnrjKuMhgc0aycWLemfp8DTmO+zNLDdIw M7Q2f3sHS+yhIa2XHohJ2yMph2WmNihz90P+foLSQ8tPCSvdL6gbRXEhTa6I+e1ApZzJEM w2eRddD/uu9xl1WtSGMvi9HPVMJIn+dSG9BkKFj8A45vTWszzh5pajkjj/50PA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181796; 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=Wv+JUOSXaNgy8ye4xmCmz8bKZeBBHJIQ00il+eKdyeY=; b=UpwizweFD2f3EzwJDBzMMUWtYxGOkzgAlR8a2m9cmN1+dJX/zNxIgLBKK1iapVcjOaNf8V 57yhXCKgeTBfbQSL8YaKVBrkmFW4ZVE0kmU1358SpLowaYBWHXrJEPz6R4RMrwdSEOlcX2 mHqUur7hI8jcnTBnXg6niAZR8QcwYFhjK90+LeylSFbHEr2hPBKs2336OMw7bendVXkIgc 8z/I1Rb+3jNsemoBLNDnqJz8kgYiDYimuCNvpdc6T7x3/4NFrH2qWka9CaLoyJuAKT0lIq 2+nk5N6zw9FdUTCDBjc4Da4HWOKTu5/YgDn7wm4C2J4sP8yxEE9TY+59ZXgyEA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729181796; a=rsa-sha256; cv=none; b=HPkXtnAIyuVellqBBx9U6B/K2VCUyOYMVeMeUVa3+ZD6lZQnezEAf1NkE35XASeuvwZS3p RgZNBX/n6+OSvsVhc+qUuk3PMu4mMhEo3+EFDRFVvgkMrriMHoa7h3cQ+KOhHNplHIeR7m zzQIzooumBO6FflZMZLDwva2O7SDEj7svUtJ6oEqNITFBicx1oav9NgejvUPErJCDLxnK5 8dNpALiWCkKR3wLGvIIVxmRhSp7nh1zKcsp6oAL2sOEqC7IVODBby2YbqzStmAKzCsukdI v5T7pZhH8AvpjCByPfgJeV8Rv4FFpqJwKLc1cmqMxXZHLdhUazQDIwDxHItM7A== 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 4XTtJ42483zwbJ; Thu, 17 Oct 2024 16:16:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGGaCu099119; Thu, 17 Oct 2024 16:16:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGGaqE099116; Thu, 17 Oct 2024 16:16:36 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:16:36 GMT Message-Id: <202410171616.49HGGaqE099116@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 794fd74ab8bd - stable/14 - tests: Add some test cases for SO_SPLICE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 794fd74ab8bdfae50dcb5f31ffdeb2d186a3fd9c Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=794fd74ab8bdfae50dcb5f31ffdeb2d186a3fd9c commit 794fd74ab8bdfae50dcb5f31ffdeb2d186a3fd9c Author: Mark Johnston AuthorDate: 2024-09-10 16:51:03 +0000 Commit: Mark Johnston CommitDate: 2024-10-17 15:48:37 +0000 tests: Add some test cases for SO_SPLICE Reviewed by: gallatin MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D46412 (cherry picked from commit 877cf210c08b99aa532107e176b372de58579493) --- tests/sys/kern/Makefile | 2 + tests/sys/kern/socket_splice.c | 979 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 981 insertions(+) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 29d33f4c617c..b6333c9f04f3 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -32,6 +32,7 @@ ATF_TESTS_C+= sigwait ATF_TESTS_C+= socket_accf ATF_TESTS_C+= socket_msg_trunc ATF_TESTS_C+= socket_msg_waitall +ATF_TESTS_C+= socket_splice TEST_METADATA.sigwait+= is_exclusive="true" .if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH:Mpowerpc*} == "" ATF_TESTS_C+= subr_physmem_test @@ -78,6 +79,7 @@ LIBADD.kcov+= pthread CFLAGS.ktls_test+= -DOPENSSL_API_COMPAT=0x10100000L LIBADD.ktls_test+= crypto util LIBADD.socket_msg_waitall+= pthread +LIBADD.socket_splice+= pthread LIBADD.sendfile_helper+= pthread LIBADD.fdgrowtable_test+= util pthread kvm procstat LIBADD.sigwait+= rt diff --git a/tests/sys/kern/socket_splice.c b/tests/sys/kern/socket_splice.c new file mode 100644 index 000000000000..3970f16b34dc --- /dev/null +++ b/tests/sys/kern/socket_splice.c @@ -0,0 +1,979 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2024 Stormshield + */ + +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +static void +checked_close(int fd) +{ + int error; + + error = close(fd); + ATF_REQUIRE_MSG(error == 0, "close failed: %s", strerror(errno)); +} + +static int +fionread(int fd) +{ + int data, error; + + data = 0; + error = ioctl(fd, FIONREAD, &data); + ATF_REQUIRE_MSG(error == 0, "ioctl failed: %s", strerror(errno)); + ATF_REQUIRE(data >= 0); + return (data); +} + +static void +noblocking(int fd) +{ + int flags, error; + + flags = fcntl(fd, F_GETFL); + ATF_REQUIRE_MSG(flags != -1, "fcntl failed: %s", strerror(errno)); + flags |= O_NONBLOCK; + error = fcntl(fd, F_SETFL, flags); + ATF_REQUIRE_MSG(error == 0, "fcntl failed: %s", strerror(errno)); +} + +/* + * Create a pair of connected TCP sockets, returned via the "out" array. + */ +static void +tcp_socketpair(int out[2], int domain) +{ + struct sockaddr_in sin; + struct sockaddr_in6 sin6; + struct sockaddr *sinp; + int error, sd[2]; + + sd[0] = socket(domain, SOCK_STREAM, 0); + ATF_REQUIRE_MSG(sd[0] >= 0, "socket failed: %s", strerror(errno)); + sd[1] = socket(domain, SOCK_STREAM, 0); + ATF_REQUIRE_MSG(sd[1] >= 0, "socket failed: %s", strerror(errno)); + + error = setsockopt(sd[0], IPPROTO_TCP, TCP_NODELAY, &(int){ 1 }, + sizeof(int)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + error = setsockopt(sd[1], IPPROTO_TCP, TCP_NODELAY, &(int){ 1 }, + sizeof(int)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + + if (domain == PF_INET) { + memset(&sin, 0, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_len = sizeof(sin); + sin.sin_addr.s_addr = htonl(INADDR_ANY); + sin.sin_port = htons(0); + sinp = (struct sockaddr *)&sin; + } else { + ATF_REQUIRE(domain == PF_INET6); + memset(&sin6, 0, sizeof(sin6)); + sin6.sin6_family = AF_INET6; + sin6.sin6_len = sizeof(sin6); + sin6.sin6_addr = in6addr_any; + sin6.sin6_port = htons(0); + sinp = (struct sockaddr *)&sin6; + } + + error = bind(sd[0], sinp, sinp->sa_len); + ATF_REQUIRE_MSG(error == 0, "bind failed: %s", strerror(errno)); + error = listen(sd[0], 1); + ATF_REQUIRE_MSG(error == 0, "listen failed: %s", strerror(errno)); + + error = getsockname(sd[0], sinp, &(socklen_t){ sinp->sa_len }); + ATF_REQUIRE_MSG(error == 0, "getsockname failed: %s", strerror(errno)); + + error = connect(sd[1], sinp, sinp->sa_len); + ATF_REQUIRE_MSG(error == 0, "connect failed: %s", strerror(errno)); + out[0] = accept(sd[0], NULL, NULL); + ATF_REQUIRE_MSG(out[0] >= 0, "accept failed: %s", strerror(errno)); + checked_close(sd[0]); + out[1] = sd[1]; +} + +static void +tcp4_socketpair(int out[2]) +{ + tcp_socketpair(out, PF_INET); +} + +static void +tcp6_socketpair(int out[2]) +{ + tcp_socketpair(out, PF_INET6); +} + +static off_t +nspliced(int sd) +{ + off_t n; + socklen_t len; + int error; + + len = sizeof(n); + error = getsockopt(sd, SOL_SOCKET, SO_SPLICE, &n, &len); + ATF_REQUIRE_MSG(error == 0, "getsockopt failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(len == sizeof(n), "unexpected length: %d", len); + return (n); +} + +/* + * Use a macro so that ATF_REQUIRE_MSG prints a useful line number. + */ +#define check_nspliced(sd, n) do { \ + off_t sofar; \ + \ + sofar = nspliced(sd); \ + ATF_REQUIRE_MSG(sofar == (off_t)n, "spliced %jd bytes, expected %jd", \ + (intmax_t)sofar, (intmax_t)n); \ +} while (0) + +static void +splice_init(struct splice *sp, int fd, off_t max, struct timeval *tv) +{ + memset(sp, 0, sizeof(*sp)); + sp->sp_fd = fd; + sp->sp_max = max; + if (tv != NULL) + sp->sp_idle = *tv; + else + sp->sp_idle.tv_sec = sp->sp_idle.tv_usec = 0; +} + +static void +unsplice(int fd) +{ + struct splice sp; + int error; + + splice_init(&sp, -1, 0, NULL); + error = setsockopt(fd, SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); +} + +static void +unsplice_pair(int fd1, int fd2) +{ + unsplice(fd1); + unsplice(fd2); +} + +static void +splice_pair(int fd1, int fd2, off_t max, struct timeval *tv) +{ + struct splice sp; + int error; + + splice_init(&sp, fd1, max, tv); + error = setsockopt(fd2, SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + + splice_init(&sp, fd2, max, tv); + error = setsockopt(fd1, SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); +} + +/* + * A structure representing a spliced pair of connections. left[1] is + * bidirectionally spliced with right[0]. + */ +struct splice_conn { + int left[2]; + int right[2]; +}; + +/* + * Initialize a splice connection with the given maximum number of bytes to + * splice and the given idle timeout. For now we're forced to use TCP socket, + * but at some point it would be nice (and simpler) to use pairs of PF_LOCAL + * sockets. + */ +static void +splice_conn_init_limits(struct splice_conn *sc, off_t max, struct timeval *tv) +{ + memset(sc, 0, sizeof(*sc)); + tcp4_socketpair(sc->left); + tcp4_socketpair(sc->right); + splice_pair(sc->left[1], sc->right[0], max, tv); +} + +static void +splice_conn_init(struct splice_conn *sc) +{ + splice_conn_init_limits(sc, 0, NULL); +} + +static void +splice_conn_check_empty(struct splice_conn *sc) +{ + int data; + + data = fionread(sc->left[0]); + ATF_REQUIRE_MSG(data == 0, "unexpected data on left[0]: %d", data); + data = fionread(sc->left[1]); + ATF_REQUIRE_MSG(data == 0, "unexpected data on left[1]: %d", data); + data = fionread(sc->right[0]); + ATF_REQUIRE_MSG(data == 0, "unexpected data on right[0]: %d", data); + data = fionread(sc->right[1]); + ATF_REQUIRE_MSG(data == 0, "unexpected data on right[1]: %d", data); +} + +static void +splice_conn_fini(struct splice_conn *sc) +{ + checked_close(sc->left[0]); + checked_close(sc->left[1]); + checked_close(sc->right[0]); + checked_close(sc->right[1]); +} + +static void +splice_conn_noblocking(struct splice_conn *sc) +{ + noblocking(sc->left[0]); + noblocking(sc->left[1]); + noblocking(sc->right[0]); + noblocking(sc->right[1]); +} + +/* Pass a byte through a pair of spliced connections. */ +ATF_TC_WITHOUT_HEAD(splice_basic); +ATF_TC_BODY(splice_basic, tc) +{ + struct splice_conn sc; + ssize_t n; + char c; + + splice_conn_init(&sc); + + check_nspliced(sc.left[1], 0); + check_nspliced(sc.right[0], 0); + + /* Left-to-right. */ + c = 'M'; + n = write(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'M', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 0); + + /* Right-to-left. */ + c = 'J'; + n = write(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'J', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + /* Unsplice and verify that the byte counts haven't changed. */ + unsplice(sc.left[1]); + unsplice(sc.right[0]); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + splice_conn_fini(&sc); +} + +static void +remove_rights(int fd, const cap_rights_t *toremove) +{ + cap_rights_t rights; + int error; + + error = cap_rights_get(fd, &rights); + ATF_REQUIRE_MSG(error == 0, "cap_rights_get failed: %s", + strerror(errno)); + cap_rights_remove(&rights, toremove); + error = cap_rights_limit(fd, &rights); + ATF_REQUIRE_MSG(error == 0, "cap_rights_limit failed: %s", + strerror(errno)); +} + +/* + * Verify that splicing fails when the socket is missing the necessary rights. + */ +ATF_TC_WITHOUT_HEAD(splice_capsicum); +ATF_TC_BODY(splice_capsicum, tc) +{ + struct splice sp; + cap_rights_t rights; + off_t n; + int error, left[2], right[2]; + + tcp4_socketpair(left); + tcp4_socketpair(right); + + /* + * Make sure that we splice a socket that's missing recv rights. + */ + remove_rights(left[1], cap_rights_init(&rights, CAP_RECV)); + splice_init(&sp, right[0], 0, NULL); + error = setsockopt(left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCAPABLE, error == -1); + + /* Make sure we can still splice left[1] in the other direction. */ + splice_init(&sp, left[1], 0, NULL); + error = setsockopt(right[0], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + splice_init(&sp, -1, 0, NULL); + error = setsockopt(right[0], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + + /* + * Now remove send rights from left[1] and verify that splicing is no + * longer possible. + */ + remove_rights(left[1], cap_rights_init(&rights, CAP_SEND)); + splice_init(&sp, left[1], 0, NULL); + error = setsockopt(right[0], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCAPABLE, error == -1); + + /* + * It's still ok to query the SO_SPLICE state though. + */ + n = -1; + error = getsockopt(left[1], SOL_SOCKET, SO_SPLICE, &n, + &(socklen_t){ sizeof(n) }); + ATF_REQUIRE_MSG(error == 0, "getsockopt failed: %s", strerror(errno)); + ATF_REQUIRE(n == 0); + + /* + * Make sure that we can unsplice a spliced pair without any rights + * other than CAP_SETSOCKOPT. + */ + splice_pair(left[0], right[1], 0, NULL); + error = cap_rights_limit(left[0], + cap_rights_init(&rights, CAP_SETSOCKOPT)); + ATF_REQUIRE_MSG(error == 0, "cap_rights_limit failed: %s", + strerror(errno)); + unsplice(left[0]); + + checked_close(left[0]); + checked_close(left[1]); + checked_close(right[0]); + checked_close(right[1]); +} + +/* + * Check various error cases in splice configuration. + */ +ATF_TC_WITHOUT_HEAD(splice_error); +ATF_TC_BODY(splice_error, tc) +{ + struct splice_conn sc; + struct splice sp; + char path[PATH_MAX]; + int error, fd, sd, usd[2]; + + memset(&sc, 0, sizeof(sc)); + tcp4_socketpair(sc.left); + tcp4_socketpair(sc.right); + + /* A negative byte limit is invalid. */ + splice_init(&sp, sc.right[0], -3, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + + /* Can't unsplice a never-spliced socket. */ + splice_init(&sp, -1, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCONN, error == -1); + + /* Can't double-unsplice a socket. */ + splice_init(&sp, sc.right[0], 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + unsplice(sc.left[1]); + splice_init(&sp, -1, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCONN, error == -1); + + /* Can't splice a spliced socket */ + splice_init(&sp, sc.right[0], 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + splice_init(&sp, sc.right[1], 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EBUSY, error == -1); + splice_init(&sp, sc.right[0], 0, NULL); + error = setsockopt(sc.left[0], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EBUSY, error == -1); + splice_init(&sp, -1, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + + /* Can't splice to a non-socket. */ + snprintf(path, sizeof(path), "/tmp/splice_error.XXXXXX"); + fd = mkstemp(path); + ATF_REQUIRE_MSG(fd >= 0, "mkstemp failed: %s", strerror(errno)); + splice_init(&sp, fd, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTSOCK, error == -1); + + /* Can't splice to an invalid fd. */ + checked_close(fd); + splice_init(&sp, fd, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EBADF, error == -1); + + /* Can't splice a unix stream socket. */ + error = socketpair(AF_UNIX, SOCK_STREAM, 0, usd); + ATF_REQUIRE_MSG(error == 0, "socketpair failed: %s", strerror(errno)); + splice_init(&sp, usd[0], 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EPROTONOSUPPORT, error == -1); + error = setsockopt(usd[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EPROTONOSUPPORT, error == -1); + checked_close(usd[0]); + checked_close(usd[1]); + + /* Can't splice an unconnected TCP socket. */ + sd = socket(PF_INET, SOCK_STREAM, 0); + ATF_REQUIRE_MSG(sd >= 0, "socket failed: %s", strerror(errno)); + splice_init(&sp, sd, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCONN, error == -1); + splice_init(&sp, sc.right[0], 0, NULL); + error = setsockopt(sd, SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCONN, error == -1); + + splice_conn_fini(&sc); +} + +/* + * Make sure that kevent() doesn't report read I/O events on spliced sockets. + */ +ATF_TC_WITHOUT_HEAD(splice_kevent); +ATF_TC_BODY(splice_kevent, tc) +{ + struct splice_conn sc; + struct kevent kev; + struct timespec ts; + ssize_t n; + int error, nev, kq; + uint8_t b; + + splice_conn_init(&sc); + + kq = kqueue(); + ATF_REQUIRE_MSG(kq >= 0, "kqueue failed: %s", strerror(errno)); + + EV_SET(&kev, sc.left[1], EVFILT_READ, EV_ADD, 0, 0, NULL); + error = kevent(kq, &kev, 1, NULL, 0, NULL); + ATF_REQUIRE_MSG(error == 0, "kevent failed: %s", strerror(errno)); + + memset(&ts, 0, sizeof(ts)); + nev = kevent(kq, NULL, 0, &kev, 1, &ts); + ATF_REQUIRE_MSG(nev >= 0, "kevent failed: %s", strerror(errno)); + ATF_REQUIRE(nev == 0); + + b = 'M'; + n = write(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'M'); + + nev = kevent(kq, NULL, 0, &kev, 1, &ts); + ATF_REQUIRE_MSG(nev >= 0, "kevent failed: %s", strerror(errno)); + ATF_REQUIRE(nev == 0); + + b = 'J'; + n = write(sc.right[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'J'); + + splice_conn_fini(&sc); + checked_close(kq); +} + +/* + * Verify that a splice byte limit is applied. + */ +ATF_TC_WITHOUT_HEAD(splice_limit_bytes); +ATF_TC_BODY(splice_limit_bytes, tc) +{ + struct splice_conn sc; + ssize_t n; + uint8_t b, buf[128]; + + splice_conn_init_limits(&sc, sizeof(buf) + 1, NULL); + + memset(buf, 'A', sizeof(buf)); + for (size_t total = sizeof(buf); total > 0; total -= n) { + n = write(sc.left[0], buf, total); + ATF_REQUIRE_MSG(n > 0, "write failed: %s", strerror(errno)); + } + for (size_t total = sizeof(buf); total > 0; total -= n) { + n = read(sc.right[1], buf, sizeof(buf)); + ATF_REQUIRE_MSG(n > 0, "read failed: %s", strerror(errno)); + } + + check_nspliced(sc.left[1], sizeof(buf)); + check_nspliced(sc.right[0], 0); + + /* Trigger an unsplice by writing the last byte. */ + b = 'B'; + n = write(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'B'); + + /* + * The next byte should appear on the other side of the connection + * rather than the splice. + */ + b = 'C'; + n = write(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'C'); + + splice_conn_check_empty(&sc); + + splice_conn_fini(&sc); +} + +/* + * Verify that a splice timeout limit is applied. + */ +ATF_TC_WITHOUT_HEAD(splice_limit_timeout); +ATF_TC_BODY(splice_limit_timeout, tc) +{ + struct splice_conn sc; + ssize_t n; + int error; + uint8_t b, buf[128]; + + splice_conn_init_limits(&sc, 0, + &(struct timeval){ .tv_sec = 0, .tv_usec = 500000 /* 500ms */ }); + + /* Write some data through the splice. */ + memset(buf, 'A', sizeof(buf)); + for (size_t total = sizeof(buf); total > 0; total -= n) { + n = write(sc.left[0], buf, total); + ATF_REQUIRE_MSG(n > 0, "write failed: %s", strerror(errno)); + } + for (size_t total = sizeof(buf); total > 0; total -= n) { + n = read(sc.right[1], buf, sizeof(buf)); + ATF_REQUIRE_MSG(n > 0, "read failed: %s", strerror(errno)); + } + + check_nspliced(sc.left[1], sizeof(buf)); + check_nspliced(sc.right[0], 0); + + /* Wait for the splice to time out. */ + error = usleep(550000); + ATF_REQUIRE_MSG(error == 0, "usleep failed: %s", strerror(errno)); + + /* + * The next byte should appear on the other side of the connection + * rather than the splice. + */ + b = 'C'; + n = write(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'C'); + + splice_conn_fini(&sc); +} + +/* + * Make sure that listen() fails on spliced sockets, and that SO_SPLICE can't be + * used with listening sockets. + */ +ATF_TC_WITHOUT_HEAD(splice_listen); +ATF_TC_BODY(splice_listen, tc) +{ + struct splice sp; + struct splice_conn sc; + int error, sd[3]; + + /* + * These should fail regardless since the sockets are connected, but it + * doesn't hurt to check. + */ + splice_conn_init(&sc); + error = listen(sc.left[1], 1); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + error = listen(sc.right[0], 1); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + splice_conn_fini(&sc); + + tcp4_socketpair(sd); + sd[2] = socket(PF_INET, SOCK_STREAM, 0); + ATF_REQUIRE_MSG(sd[2] >= 0, "socket failed: %s", strerror(errno)); + error = listen(sd[2], 1); + ATF_REQUIRE_MSG(error == 0, "listen failed: %s", strerror(errno)); + + /* + * Make sure a listening socket can't be spliced in either direction. + */ + splice_init(&sp, sd[2], 0, NULL); + error = setsockopt(sd[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + splice_init(&sp, sd[1], 0, NULL); + error = setsockopt(sd[2], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + + /* + * Make sure we can't try to unsplice a listening socket. + */ + splice_init(&sp, -1, 0, NULL); + error = setsockopt(sd[2], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + + checked_close(sd[0]); + checked_close(sd[1]); + checked_close(sd[2]); +} + +static void +sigalarm(int sig __unused) +{ +} + +/* + * Our SO_SPLICE implementation doesn't do anything to prevent loops. We should + * however make sure that they are interruptible. + */ +ATF_TC_WITHOUT_HEAD(splice_loop); +ATF_TC_BODY(splice_loop, tc) +{ + ssize_t n; + int sd[2], status; + pid_t child; + char c; + + tcp_socketpair(sd, PF_INET); + splice_pair(sd[0], sd[1], 0, NULL); + + /* + * Let the child process trigger an infinite loop. It should still be + * possible to kill the child with a signal, causing the connection to + * be dropped and ending the loop. + */ + child = fork(); + ATF_REQUIRE_MSG(child >= 0, "fork failed: %s", strerror(errno)); + if (child == 0) { + alarm(2); + c = 42; + n = write(sd[0], &c, 1); + if (n != 1) + _exit(2); + c = 24; + n = write(sd[1], &c, 1); + if (n != 1) + _exit(3); + + for (;;) { + /* Wait for SIGALARM. */ + sleep(100); + } + + _exit(0); + } else { + checked_close(sd[0]); + checked_close(sd[1]); + + child = waitpid(child, &status, 0); + ATF_REQUIRE_MSG(child >= 0, + "waitpid failed: %s", strerror(errno)); + ATF_REQUIRE(WIFSIGNALED(status)); + ATF_REQUIRE(WTERMSIG(status) == SIGALRM); + } +} + +/* + * Simple I/O test. + */ +ATF_TC_WITHOUT_HEAD(splice_nonblock); +ATF_TC_BODY(splice_nonblock, tc) +{ + struct splice_conn sc; + char buf[200]; + size_t sofar; + ssize_t n; + + splice_conn_init(&sc); + splice_conn_noblocking(&sc); + + memset(buf, 'A', sizeof(buf)); + for (sofar = 0;;) { + n = write(sc.left[0], buf, sizeof(buf)); + if (n < 0) { + ATF_REQUIRE_ERRNO(EAGAIN, n == -1); + break; + } + sofar += n; + } + + while (sofar > 0) { + n = read(sc.right[1], buf, sizeof(buf)); + if (n < 0) { + ATF_REQUIRE_ERRNO(EAGAIN, n == -1); + usleep(100); + } else { + for (size_t i = 0; i < (size_t)n; i++) + ATF_REQUIRE(buf[i] == 'A'); + sofar -= n; + } + } + + splice_conn_fini(&sc); +} + +ATF_TC_WITHOUT_HEAD(splice_resplice); +ATF_TC_BODY(splice_resplice, tc) +{ + struct splice_conn sc; + ssize_t n; + char c; + + splice_conn_init(&sc); + + /* Left-to-right. */ + c = 'M'; + n = write(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'M', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 0); + + /* Right-to-left. */ + c = 'J'; + n = write(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'J', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + /* Unsplice and verify that the byte counts haven't changed. */ + unsplice(sc.left[1]); + unsplice(sc.right[0]); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + /* Splice again, check that byte counts are reset. */ + splice_pair(sc.left[1], sc.right[0], 0, NULL); + check_nspliced(sc.left[1], 0); + check_nspliced(sc.right[0], 0); + + /* Left-to-right. */ + c = 'M'; + n = write(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'M', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 0); + + /* Right-to-left. */ + c = 'J'; + n = write(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'J', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + splice_conn_fini(&sc); +} + +struct xfer_args { + pthread_barrier_t *barrier; + uint32_t bytes; + int fd; +}; + +static void * +xfer(void *arg) +{ + struct xfer_args *xfer; + uint8_t *buf; + size_t sz; + ssize_t n; + uint32_t resid; + int error; + + xfer = arg; + + error = fcntl(xfer->fd, F_SETFL, O_NONBLOCK); + ATF_REQUIRE_MSG(error == 0, "fcntl failed: %s", strerror(errno)); + + sz = MIN(xfer->bytes, 1024 * 1024); + buf = malloc(sz); + ATF_REQUIRE(buf != NULL); + arc4random_buf(buf, sz); + + pthread_barrier_wait(xfer->barrier); + + for (resid = xfer->bytes; xfer->bytes > 0 || resid > 0;) { + n = write(xfer->fd, buf, MIN(sz, xfer->bytes)); + if (n < 0) { + ATF_REQUIRE_ERRNO(EAGAIN, n == -1); + usleep(1000); + } else { + ATF_REQUIRE(xfer->bytes >= (size_t)n); + xfer->bytes -= n; + } + + n = read(xfer->fd, buf, sz); + if (n < 0) { + ATF_REQUIRE_ERRNO(EAGAIN, n == -1); + usleep(1000); + } else { + ATF_REQUIRE(resid >= (size_t)n); + resid -= n; + } + } + + free(buf); + return (NULL); +} + +/* + * Use two threads to transfer data between two spliced connections. + */ +ATF_TC_WITHOUT_HEAD(splice_throughput); +ATF_TC_BODY(splice_throughput, tc) +{ + struct xfer_args xfers[2]; + pthread_t thread[2]; + pthread_barrier_t barrier; + struct splice_conn sc; + uint32_t bytes; + int error; + + /* Transfer an amount between 1B and 1GB. */ + bytes = arc4random_uniform(1024 * 1024 * 1024) + 1; + splice_conn_init(&sc); + + error = pthread_barrier_init(&barrier, NULL, 2); + ATF_REQUIRE(error == 0); + xfers[0] = (struct xfer_args){ + .barrier = &barrier, + .bytes = bytes, + .fd = sc.left[0] + }; + xfers[1] = (struct xfer_args){ + .barrier = &barrier, + .bytes = bytes, + .fd = sc.right[1] + }; + + error = pthread_create(&thread[0], NULL, xfer, &xfers[0]); + ATF_REQUIRE_MSG(error == 0, + "pthread_create failed: %s", strerror(errno)); + error = pthread_create(&thread[1], NULL, xfer, &xfers[1]); + ATF_REQUIRE_MSG(error == 0, + "pthread_create failed: %s", strerror(errno)); + + error = pthread_join(thread[0], NULL); + ATF_REQUIRE_MSG(error == 0, + "pthread_join failed: %s", strerror(errno)); + error = pthread_join(thread[1], NULL); + ATF_REQUIRE_MSG(error == 0, + "pthread_join failed: %s", strerror(errno)); + + error = pthread_barrier_destroy(&barrier); + ATF_REQUIRE(error == 0); + splice_conn_fini(&sc); +} + +/* + * Make sure it's possible to splice v4 and v6 sockets together. + */ +ATF_TC_WITHOUT_HEAD(splice_v4v6); +ATF_TC_BODY(splice_v4v6, tc) +{ + struct splice sp; + ssize_t n; + int sd4[2], sd6[2]; + int error; + uint8_t b; + + tcp4_socketpair(sd4); + tcp6_socketpair(sd6); + + splice_init(&sp, sd6[0], 0, NULL); *** 43 LINES SKIPPED *** From nobody Thu Oct 17 16:16:37 2024 X-Original-To: dev-commits-src-branches@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 4XTtJ55sLsz5Z9LD; Thu, 17 Oct 2024 16:16:37 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtJ53qfZz42cD; Thu, 17 Oct 2024 16:16:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181797; 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=KvFJAdir/p8N+MJp5buLpXGqMrDneJifBYLCh4MuWp0=; b=wETZLBKNkbZy05KJotvFdYwa8dUGVcb7Ss6RIZGkfQKOSu3OQpgQz2rJsbOMAKuy2L2y4x n4NadDh9P0qEPraJpSIvYDH4UA4uONI+yB7IIYHkNUCMmejzoleL6fLGMypdyVrd1rIosd esh3nnWG/HGoNYrE5FGmnk00WQFjKdgqFMV3fJsP71VmVKR+JZd3hWCEiYi0PlAVgLoEd0 7c05YdymHSdkpWT24wana6+hKsoekuM5C2c6QeBxW2BGLtJ23w/JIQuYAMwUvGM2pW5kQq /LBgsbga6RRK4xC1Mq4O5OhmfjURkXcNk2qfDVnhjTWKE2jUljWEJt+xyZAieQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181797; 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=KvFJAdir/p8N+MJp5buLpXGqMrDneJifBYLCh4MuWp0=; b=mLd/rpFveRDwjRM0nEK1ppckcrbkUQuujSQZEv5F0c6skjon7WujjgbgueQd44bAct2hMs epXTYLwCzrnfiNtpRuV4g9kWgH5SD8UiREONqZ3cl4eLEcEVxgM4DIKSu/hq44uNqNN3+r 4I0jZ19oTQlV/28bgHvvLN11KAsEXd7nbUOOtCue2ptdaVy6WFHjCYb5S46DcbWy5xGdUw Wc4th+p5qFwDsZ5wa9s9zVhbmYgQmS4lIlfeop5/BfZyZTqLTwDgok+b43yMBiW5//LQz0 Lif8T18+OAunNhoPY/pq7QnxEdOuQDBdR9zVNzYSD16XhgIBeAb4Lp4pP6tVPw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729181797; a=rsa-sha256; cv=none; b=kb77gRo8y8Yf/WNh1HQgUj+ZsPHe8fTObcsHhfX6CMv/L03h3v4k3FOyNP4EAs9Ad4+m7X pvDlwupGe4XPloih+CNW/COcqbhU4g/jujacIy65pRl5baqfQRmkAfNPWWt1o1nxS2xp1n lafDG4RhPUzOmvt4An/2LD08v2arlNVDF+pfgclYel1J3YaMlxTQQZF4GGhlputTJYtf68 UmmHhcEANtzQtlSIlvGX1ZgMc3hiQlEfUvHdTt2E8KBl6u/Us8ki99eF/1bK9ch77cTSSg Pf7bCyW2VsQP94QFTTA226kJVC7LuJ66NNXTMVdtBAEIuStQ4HNwqWQUo85ONw== 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 4XTtJ52gC5zwvW; Thu, 17 Oct 2024 16:16:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGGbTA099182; Thu, 17 Oct 2024 16:16:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGGbYH099179; Thu, 17 Oct 2024 16:16:37 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:16:37 GMT Message-Id: <202410171616.49HGGbYH099179@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 51edbf66a816 - stable/14 - sockstat: Show the address of the spliced socket when -I is specified List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 51edbf66a8166a3698c875db8fbf00c965fa9f60 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=51edbf66a8166a3698c875db8fbf00c965fa9f60 commit 51edbf66a8166a3698c875db8fbf00c965fa9f60 Author: Mark Johnston AuthorDate: 2024-09-10 16:51:18 +0000 Commit: Mark Johnston CommitDate: 2024-10-17 15:48:37 +0000 sockstat: Show the address of the spliced socket when -I is specified MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D46413 (cherry picked from commit 051a2132f41d8394a34b29ac3cfebf8601ede5b6) --- usr.bin/sockstat/sockstat.1 | 11 +++++++++-- usr.bin/sockstat/sockstat.c | 31 +++++++++++++++++++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/usr.bin/sockstat/sockstat.1 b/usr.bin/sockstat/sockstat.1 index 2e1b06688afa..d7174b48f8d5 100644 --- a/usr.bin/sockstat/sockstat.1 +++ b/usr.bin/sockstat/sockstat.1 @@ -25,7 +25,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 6, 2022 +.Dd July 9, 2024 .Dt SOCKSTAT 1 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd list open sockets .Sh SYNOPSIS .Nm -.Op Fl 46CciLlnqSsUuvw +.Op Fl 46CcIiLlnqSsUuvw .Op Fl j Ar jail .Op Fl p Ar ports .Op Fl P Ar protocols @@ -59,6 +59,13 @@ Display the congestion control module, if applicable. This is currently only implemented for TCP. .It Fl c Show connected sockets. +.It Fl I +Show the local address of the socket to which the current socket is spliced, if +any. +See the +.Xr setsockopt 2 +.Dv SO_SPLICE +option for more information. .It Fl i Display the .Dv inp_gencnt . diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c index 56f107b5cdaf..0481e82efee0 100644 --- a/usr.bin/sockstat/sockstat.c +++ b/usr.bin/sockstat/sockstat.c @@ -83,6 +83,7 @@ static int opt_4; /* Show IPv4 sockets */ static int opt_6; /* Show IPv6 sockets */ static int opt_C; /* Show congestion control */ static int opt_c; /* Show connected sockets */ +static int opt_I; /* Show spliced socket addresses */ static int opt_i; /* Show inp_gencnt */ static int opt_j; /* Show specified jail */ static int opt_L; /* Don't show IPv4 or IPv6 loopback sockets */ @@ -133,6 +134,7 @@ struct sock { RB_ENTRY(sock) pcb_tree; kvaddr_t socket; kvaddr_t pcb; + kvaddr_t splice_socket; uint64_t inp_gencnt; int shown; int vflag; @@ -767,6 +769,7 @@ gather_inet(int proto) if ((faddr = calloc(1, sizeof *faddr)) == NULL) err(1, "malloc()"); sock->socket = so->xso_so; + sock->splice_socket = so->so_splice_so; sock->proto = proto; sock->inp_gencnt = xip->inp_gencnt; if (xip->inp_vflag & INP_IPV4) { @@ -1202,6 +1205,25 @@ displaysock(struct sock *s, int pos) default: abort(); } + if (opt_I) { + if (s->splice_socket != 0) { + struct sock *sp; + + sp = RB_FIND(socks_t, &socks, &(struct sock) + { .socket = s->splice_socket }); + if (sp != NULL) { + while (pos < offset) + pos += xprintf(" "); + pos += printaddr(&sp->laddr->address); + } else { + while (pos < offset) + pos += xprintf(" "); + pos += xprintf("??"); + offset += opt_w ? 46 : 22; + } + } + offset += opt_w ? 46 : 22; + } if (opt_i) { if (s->proto == IPPROTO_TCP || s->proto == IPPROTO_UDP) { @@ -1308,6 +1330,8 @@ display(void) "USER", "COMMAND", "PID", "FD", "PROTO", opt_w ? 45 : 21, "LOCAL ADDRESS", opt_w ? 45 : 21, "FOREIGN ADDRESS"); + if (opt_I) + printf(" %-*s", opt_w ? 45 : 21, "SPLICE ADDRESS"); if (opt_i) printf(" %-8s", "ID"); if (opt_U) @@ -1431,7 +1455,7 @@ static void usage(void) { fprintf(stderr, - "usage: sockstat [-46CciLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]\n"); + "usage: sockstat [-46CcIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]\n"); exit(1); } @@ -1446,7 +1470,7 @@ main(int argc, char *argv[]) int o, i; opt_j = -1; - while ((o = getopt(argc, argv, "46Ccij:Llnp:P:qSsUuvw")) != -1) + while ((o = getopt(argc, argv, "46CcIij:Llnp:P:qSsUuvw")) != -1) switch (o) { case '4': opt_4 = 1; @@ -1460,6 +1484,9 @@ main(int argc, char *argv[]) case 'c': opt_c = 1; break; + case 'I': + opt_I = 1; + break; case 'i': opt_i = 1; break; From nobody Thu Oct 17 16:16:38 2024 X-Original-To: dev-commits-src-branches@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 4XTtJ64llPz5Z9WZ; Thu, 17 Oct 2024 16:16:38 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtJ648Yhz42wJ; Thu, 17 Oct 2024 16:16:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181798; 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=Z5XjN9+YqOlaMdkeFpeQNyg5F8zpC2aF2AWhUPfLuYg=; b=eGoXr7IHXHyVLu1kWUZZyZCCEs6w0ZGfVJWsYndohbFavYXaJhML1IkII1wIyZWc9JjCto BXO7IzxjEw33SFGj/BUWIWZ7IQr1rU7GltAg/qQCrXHGUuDI4cTPt1eVulGemvvyhkpN9j dyKvwBpYGq8B0E3pvEJ3Y8JUnSSyNKErHtuOR5j6M6/JogbTejsx47uUVdHYMq7OxcKDDQ YK/vWDJ7JuqE8VOWplpfrxDTaTpqNFwGHyRrL/QL/xZxFIaM0vz9FFx82bDclygB5DM/QR EYZz7Va5AGbZxqGc0k0jbn4/szg2cdwKZkYJQlknual/OcTsEERupYnbUGGbNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181798; 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=Z5XjN9+YqOlaMdkeFpeQNyg5F8zpC2aF2AWhUPfLuYg=; b=SAfGK3467Y3WLXsWG/PehVomdik55ntvkYD8GrfhoPkam38lm2hQ+je9ER62m4ObRUowUi V57pX+7yROIEbwZOXpMBEdkZK6ziMmOF8MhaSY6Jf0O+e/2+bi1tSGAY9YxAwHD16/CrHy FlrC5M9zqwTOfQdQiPxGkJ8OqFztrOo2jnvytEeICa0u5kEW1CUl0wQW3sB6fa4VZhTdZ7 RkmGQHh0KQX10m0tmm/OhMWyEMWuzYMozSIvWCl+eqpj4oUyObyOnQMyDzhv9MeLR/QKOW uUlOb+n9qGz+0AwHYg5stgb8aqIkHTf9sFeUjguYfPCBmU6jX5r9qXILjq1kPQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729181798; a=rsa-sha256; cv=none; b=anDd8vr1J+tC+8ecNsBl6pVbX8h6sbKE92RerdULXpWRYdiEvWd1XV55kuoFGHMqeqQLQQ nBc45SMqHmFG9T2N1N8w56B+mCpNG8g4FLlRfuvB1++0zlNaddUA8GWhhdgR4BYEJvFWHl BrZMA3Q5Vs2OzdjT65DDNHLCSOTGWidJKCQpLJXU53z11BNYOqDZlKummaYLyepkGXuo4V VO9lTsCdY1vP0mtGUQQTGE1f29D7vDQkeZD6Dqgkx9J2mcnyrlxcm8d0VYP+ui1oxaIDu0 p3HXVuEVrxWrON5LIdBy6Id1nvVkaQgsuQPXPoo4NPUEpVDO+DxGaIHXAVfbLw== 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 4XTtJ63kJTzwvX; Thu, 17 Oct 2024 16:16:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGGc1Z099221; Thu, 17 Oct 2024 16:16:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGGcM0099218; Thu, 17 Oct 2024 16:16:38 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:16:38 GMT Message-Id: <202410171616.49HGGcM0099218@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9a2d163115f5 - stable/14 - kdump: Print splice structures List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9a2d163115f509c4a046295a6ffc4f2cd7162a7d Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9a2d163115f509c4a046295a6ffc4f2cd7162a7d commit 9a2d163115f509c4a046295a6ffc4f2cd7162a7d Author: Mark Johnston AuthorDate: 2024-09-10 16:51:26 +0000 Commit: Mark Johnston CommitDate: 2024-10-17 15:48:37 +0000 kdump: Print splice structures MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Stormshield (cherry picked from commit b76961e3a21a820f15ebff9d115ff67feb910cec) --- lib/libsysdecode/ktrace.out | Bin 0 -> 23596 bytes usr.bin/kdump/kdump.c | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/libsysdecode/ktrace.out b/lib/libsysdecode/ktrace.out new file mode 100644 index 000000000000..29d35f0de3ce Binary files /dev/null and b/lib/libsysdecode/ktrace.out differ diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c index abbe57b0b75e..bde4eb7657e0 100644 --- a/usr.bin/kdump/kdump.c +++ b/usr.bin/kdump/kdump.c @@ -117,6 +117,7 @@ void ktruser(int, void *); void ktrcaprights(cap_rights_t *); void ktritimerval(struct itimerval *it); void ktrsockaddr(struct sockaddr *); +void ktrsplice(struct splice *); void ktrstat(struct stat *); void ktrstruct(char *, size_t); void ktrcapfail(struct ktr_cap_fail *); @@ -1935,6 +1936,14 @@ ktrsockaddr(struct sockaddr *sa) printf(" }\n"); } +void +ktrsplice(struct splice *sp) +{ + printf("struct splice { fd=%d, max=%#jx, idle=%jd.%06jd }\n", + sp->sp_fd, (uintmax_t)sp->sp_max, (intmax_t)sp->sp_idle.tv_sec, + (intmax_t)sp->sp_idle.tv_usec); +} + void ktrstat(struct stat *statp) { @@ -2123,6 +2132,13 @@ ktrstruct(char *buf, size_t buflen) memcpy(set, data, datalen); ktrbitset(name, set, datalen); free(set); + } else if (strcmp(name, "splice") == 0) { + struct splice sp; + + if (datalen != sizeof(sp)) + goto invalid; + memcpy(&sp, data, datalen); + ktrsplice(&sp); } else { #ifdef SYSDECODE_HAVE_LINUX if (ktrstruct_linux(name, data, datalen) == false) From nobody Thu Oct 17 16:16:39 2024 X-Original-To: dev-commits-src-branches@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 4XTtJ76nSQz5Z9xG; Thu, 17 Oct 2024 16:16:39 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtJ74qv6z42ym; Thu, 17 Oct 2024 16:16:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181799; 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=WWRZreaxwvIU4Cnf1pAeTDtT2Dd3YC4GZGXDnV1L7lw=; b=jE94VKXWxPMxFqEDCrJMs3aRMvKNYzJrp3tO4tah1ey8QBbQWdY9kcU7iqav74+TpcHJhP KI+HpqH2o3eR2NhJfflGtSi/Dk1zpJlG9ebTNeuFqExqObkbkqem4c8c5Vp6qP6Bux70qP qT+C0jaeK3O/wkmklLLrXHHMkXcmmzURJROk2adKOTYtc/ZUgEaXJPCJzo493yh2C+uSnd SRHx977p11stc9fXdk8x7U3vW+w6Dn3CzhNjIYLwhpm0xeZYCW1UzJE5GrNEyuJmjEL4Rd YnD2UfFbe160kCc6T1T16ieMe1LafKWlQvJdgQZ7VOXU1xbcV7i3s8gegsOHHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181799; 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=WWRZreaxwvIU4Cnf1pAeTDtT2Dd3YC4GZGXDnV1L7lw=; b=WzAtea41/VqvRvuKBlKARf/NU1LZmJYOvHktoU+Oa4qh7I5/qv8cIuQ7YjjrTfxiHN2yRS CCgKVL7x41Djvbo1gTfmgf2UmEaMRIaxyNqGKLXiYarmqWZcjkQwvuLhmkb98xPwE8c3dY h5JiQAZgJ1Eb/RdMrKyiWI+V3AO8hKdKTggQY0k2oUCk/Px8fzwakbj0AR6MaD1OHfFecO nwapE8s5KIIiVEhoWZuM6Uo7AnEyXqpvPERTihTa6oX6LBmJ8iDmMSfFbZ4S4ds8hTtgtr Oa+ITi7t1Ks4J8xu8ZSPRLdZcpjD5dzOHMaqHaC8ManSqsmPvuSiHZl2FIjCkQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729181799; a=rsa-sha256; cv=none; b=idJALS9Ls0pEb4/WmHSQeSbz5O9LxX5Tpu+ydeHafjc1kXTAe2qgIyYToXHgKFZtf/pF8v 5xjZcpP+iahD6Ho4yo6tVODf+9LHFi1M3qP9iQ0xG5ghYjGBW58+GZhdzaiHa2o4AAoqg/ dR96o5MP88qSo7Jwq+kd4+qqy9bJoxaai77NjGAjJqdoemiUdHIfE3EgzHqyOjFvD/QaM3 GwQeMozQzosUeEx9KDEEElq0BGjD4/KLxdisdYvxmIn71PTf1jv7iGs8jgkdGPDI/RX4Fi RyZcS8/Q6s5txiz6a2W6DcZvDoeFOkInL7chmIJHbXczcj37zpjsSpfXOKPZRQ== 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 4XTtJ74RgkzwvY; Thu, 17 Oct 2024 16:16:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGGdMX099275; Thu, 17 Oct 2024 16:16:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGGdsP099272; Thu, 17 Oct 2024 16:16:39 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:16:39 GMT Message-Id: <202410171616.49HGGdsP099272@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 418e9b60837b - stable/14 - Remove a ktrace.out which snuck into an earlier commit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 418e9b60837b96730f1c8c538545f5e791d7fc61 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=418e9b60837b96730f1c8c538545f5e791d7fc61 commit 418e9b60837b96730f1c8c538545f5e791d7fc61 Author: Mark Johnston AuthorDate: 2024-09-10 17:52:43 +0000 Commit: Mark Johnston CommitDate: 2024-10-17 15:48:37 +0000 Remove a ktrace.out which snuck into an earlier commit Fixes: b76961e3a21a ("kdump: Print splice structures") (cherry picked from commit a86678a3d6b4d394d2979c41c2686523aa831888) --- lib/libsysdecode/ktrace.out | Bin 23596 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/libsysdecode/ktrace.out b/lib/libsysdecode/ktrace.out deleted file mode 100644 index 29d35f0de3ce..000000000000 Binary files a/lib/libsysdecode/ktrace.out and /dev/null differ From nobody Thu Oct 17 16:16:40 2024 X-Original-To: dev-commits-src-branches@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 4XTtJ92WCqz5ZB34; Thu, 17 Oct 2024 16:16:41 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtJ86WXLz431y; Thu, 17 Oct 2024 16:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181800; 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=nrdSMarihb7q2KmMEKevKoaaOfUxTQoNeoMJrTxoyO0=; b=JizNO5cIohamKzagvcID7lKENcOBsQgcvdTmn//7MCyEO+uhjL81VzeWB1fecUMRLnrZ7m 5ChBDxXNvfJ/9DjWnT3zgdP9IYzvBP4BnOTXA08OLTxq7l4dcAUczGbrYx5zbs1ofYxn2+ IVU+rrYBQ7Yf5d7jDlvK+j/8H8WBOipiQEOiK3uPxJMgwuSZqmEUqgdNrbynEEiPeozCQ8 svIyqeaIj4gpGCLeFlhYkuFKz1z9c4D5HaipYGscFwjL5bIuIaOBJNkiSFJ1nqxvDWAVWv w4EmprHl6TUG23w2zGTrxHo7fDg5Kb9Sah/N5J0iWwSR8QZ4pcgQsGSF+NWNrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181800; 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=nrdSMarihb7q2KmMEKevKoaaOfUxTQoNeoMJrTxoyO0=; b=gYM7khEiSkSAvmbYC4WsZdz/eqI6GXMAPvMWd9vUEkUHS03+5E8RAavcrjqXIg0btJel64 ZP9UDhpvl5RSC8C5x91DVTrhAWfCBWkYDX9NVPvREdxRBBvCmt7uXPsLqXlD9u9ZZ3d2Zv Lxa8x9tZUEZ1oTmPtIXZh2UeRi8VIUkizYwol9B08FH01PpCz2GE/WpJ1itMjAowiVnBee HK3iKL9UCvPNZjabweJbWn7+pX5LR+8eq31LxuG2rxLt2J3m0Okd9/jRkY5pLeJZsZtu3B n9d2oQjzrPBPvcE6rTABxDXEV5NSZFo+IObyAg66uiXp6m0TETa2YKESMnWfJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729181800; a=rsa-sha256; cv=none; b=N9qH7kF6owIRyI0GoNyVJquMqx/ouwZslc4ibb7ox6w13CPShkVlWn2+iEy1GhQthnWrHR xYWRTu+2Vgo6XJ+ZZTg5whQBb/Ez/07KFvJZx3Fyom02PUQuAfqaoUShCIxvxcv0R1o9H/ wqjEqQpGYbrZ1AsrllsXCOcuwiUitpkez7S9dmfV9gn1tJ4OoAgVW0onzsOWcR3VxgDmDL 8hvz8GXZHL0WTR5wGOGTlaY+BsOcDUz92lHRUAtbiAxUzZXrmRBRfyvvSZ2x3lrd5DcTY5 Whf8DUVL5Hfv0qaZQc+EKtdvC9EfoRXU++o2uJSK7EgW8aK3hSe/fOEr7OuLVw== 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 4XTtJ85jl2zwxd; Thu, 17 Oct 2024 16:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGGee5099323; Thu, 17 Oct 2024 16:16:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGGej6099320; Thu, 17 Oct 2024 16:16:40 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:16:40 GMT Message-Id: <202410171616.49HGGej6099320@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 032014aaae70 - stable/14 - socket: wrap ktrsplice call with KTRACE ifdef List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 032014aaae70c7166b714eb911ccb5b86213f837 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=032014aaae70c7166b714eb911ccb5b86213f837 commit 032014aaae70c7166b714eb911ccb5b86213f837 Author: Siva Mahadevan AuthorDate: 2024-09-16 01:46:00 +0000 Commit: Mark Johnston CommitDate: 2024-10-17 15:49:11 +0000 socket: wrap ktrsplice call with KTRACE ifdef This fixes a build error when the kernel is built without KTRACE support. Reviewed by: emaste, markj Fixes: a1da7dc1cdad ("socket: Implement SO_SPLICE") Pull Request: https://github.com/freebsd/freebsd-src/pull/1426 (cherry picked from commit 75cd1e534c75fbdd3294debe6edea27e780bc5f1) --- sys/kern/uipc_socket.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index edd26f28a292..1f5e09ada217 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -3951,7 +3951,9 @@ sosetopt(struct socket *so, struct sockopt *sopt) } if (error) goto bad; +#ifdef KTRACE ktrsplice(&splice); +#endif error = splice_init(); if (error != 0) From nobody Thu Oct 17 16:16:41 2024 X-Original-To: dev-commits-src-branches@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 4XTtJB24S6z5ZB37; Thu, 17 Oct 2024 16:16:42 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtJB04h8z430G; Thu, 17 Oct 2024 16:16:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181802; 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=KvopPzgPIEIja1n+fsMA5uL7BtFsB+zOlwK4FCUw1hY=; b=o4cfHQVGjwh1VcEzvJNzzO3MkFYhSGV6EVghmV7h1qpHStn3/486ClKM1CS4v+pOyUSG35 BpUfjvZaUzjgSqNcShliQ7jcl46rrrzcOhjfKsPXyC6V0lRrV/dZps04b0xGuWZTYG7myj 7IxnOoDb9lpiY/+ReGO2IAE3ef9BE2nYJUDE17BkzJW0SuUibzxljcv4yD0QvOKGgnzuKF Di2M1Gz1IYVVYrclKkad2LbS1haJtocgbfEWo6rwx3ckT36TdvzBgL16JpHomj64K/89j7 W204BbOLp8KZeAw5s1QDwC32H4JwFx0IF9xqd2Xx1nctl529b/K2X8bNQ02xIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729181802; 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=KvopPzgPIEIja1n+fsMA5uL7BtFsB+zOlwK4FCUw1hY=; b=HtE1GhfdcKG5+2fcwaCSbdsFPCOGeepDC+49Q2aqJHTMOLILmcMtarA4W9rKdqon1jZGg0 f0a6elFLZcnPnBJ+dibMSqmcELM1u49c8CCdivzHNDU6mQf7baLwo7Ty1m+d8GMahVRSol PukMrNFwj30sjtkISVXBkzpyQ5WfIVYoVTDwBcXw1+jYt34Kwsb7SC8ULPSQgR59F10pqL XxkA9l+CKBejQxXfAb1vOcBN84p+tX8IIKPGmY1sCkw5AJpFycjncXZHzOallsRaUeopXb KKyEnNBk/u/pLGgRQHi1vveZqBLB8+Qh44K8DGg6F106Wk2FIznc4+2PMQvZ0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729181802; a=rsa-sha256; cv=none; b=EDZNw1SmZwSPHd4hczYk4awPWaMbhWz+oDWkYOIko+8WDQhdpI1YhjJfju/7Gx+33+CVzD LjVsYqws5swcT2ygeSURyOoEazbrDYBTKfCHiF3KWi6/wjZVhJtr4qiVyO75xY7CFGu1Gy BIUZAwX17MWXgqTKaBffPs1RYrbNSjD8sjU2EqLuGRzz0D5h++uprrdvJWM7272FeNbJvu teknUK5EsSBkIAT5VzHIxTmaUti0h92LqnMvnap3CxMZMFhJsu/yTtlHscechUPOhWOqpT Dk15MfJp49O8lXji3bVUToPgKPLBRpdnp+nBuu1a5tXxvYGn7EucjvSUMBQabw== 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 4XTtJ96kjKzw6H; Thu, 17 Oct 2024 16:16:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGGfKa099384; Thu, 17 Oct 2024 16:16:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGGfpa099381; Thu, 17 Oct 2024 16:16:41 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:16:41 GMT Message-Id: <202410171616.49HGGfpa099381@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 4601b3e04d5e - stable/14 - socket: Only log splice structs to ktrace if KTR_STRUCT is configured List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4601b3e04d5e30fa6c4432feeb2cb09a597cf763 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=4601b3e04d5e30fa6c4432feeb2cb09a597cf763 commit 4601b3e04d5e30fa6c4432feeb2cb09a597cf763 Author: Mark Johnston AuthorDate: 2024-09-20 11:40:31 +0000 Commit: Mark Johnston CommitDate: 2024-10-17 15:49:12 +0000 socket: Only log splice structs to ktrace if KTR_STRUCT is configured Fixes: a1da7dc1cdad ("socket: Implement SO_SPLICE") (cherry picked from commit 283bf3b4b105ad24e919444ab0e21f3296891283) --- sys/kern/uipc_socket.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 1f5e09ada217..a038939399e3 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -3952,7 +3952,8 @@ sosetopt(struct socket *so, struct sockopt *sopt) if (error) goto bad; #ifdef KTRACE - ktrsplice(&splice); + if (KTRPOINT(curthread, KTR_STRUCT)) + ktrsplice(&splice); #endif error = splice_init(); From nobody Thu Oct 17 16:29:47 2024 X-Original-To: dev-commits-src-branches@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 4XTtbH5bLHz5ZBGx; Thu, 17 Oct 2024 16:29:47 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtbH58dRz44kL; Thu, 17 Oct 2024 16:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729182587; 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=hstkhZYBINmJL/Q50HYn9Gfp68Y26VD6QRyBvqBL2p0=; b=A+1FjlZoD9JKc2I2RSMv2tqu/hqpT5SZyTy5nnCnoJMqHFZLUFJ9YBBpLSKyIPg27tPBHD hu7EEmDth0+WGHZwD8926GHGx7UbHjiKeh1iWbCfxFDbEvGC6bxPQ/IOtZhctH9kgb5c3+ chbWz1Tas4RbkFaqSTq/keobiojeHMNLGlQt0JS9AWX8LX/Q6rC12uzHfJizlL0D8x2zNr Fj48tFT56+6tYCgT9viw6VoL4dUHGswhvWp2qM02WavVvNPnB1jEk0lWY22E6z6Gxh2gpk 9E0HNVLpVJQ3jDcxSb0rw8xQa6Ob19YvLbtYRR4RYXwX8qU8ewLAM7XEKuexDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729182587; 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=hstkhZYBINmJL/Q50HYn9Gfp68Y26VD6QRyBvqBL2p0=; b=Z5zjts9KKeq7JEEj0Z3ah5rg8bbdT2wa6mtb5HSJyarkksN+p3MrXBY12XQsVdQxktcLLB /PF8EjcnnWiqp5woYNNNML8eSww9kGMQSttCiAcQ+wS4bLhkEhU32mHvoGmS4Uo5gzMhAn ua4sHsF/+4nQsIESqkZH6BBVpBcXxQdzLKHmx6bg4w7FUfoPZp4rCRu6FbBxaGPO3+wnN6 Sx+QWu4hNldqtH+ki6a93g3C7t26F2JPLQuB8WBsmsEVpiunZGphTM4DJCrsCOMh0T35dM eQ/Abfm41eimJFubfJIs2JC0mV8ZC4b19ktFwks0tpeY5RISnom5vV6150wu0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729182587; a=rsa-sha256; cv=none; b=TBRTYlSykG3ewgjyOdUA7I6/UDcV4NUqyNEfeO0szJ4Y4x2Kk2iOQnm7g+kqVDiNC9LulT hBOptw/RxbNEk4SCoCEv/SCsDuxKUx8JYXMRaUqkl+c0t608AxbiKPgMlNz7GBELIqRAzu 9x4Bb51judvxmCVGFr8zNZOSkPE8RRtZnsGWOGHTHGWj4tC3W0Q6HyfNAlzCneCyLnLkEs lKvvQgAH/5wLOantTKoqeGBi1+veXInefnsSB9mOUOaCKxfUHJF+5rW5tzajtltlcK4t0t IRbIWQno3Vu5nbyl7ZkcY+xuaXgTzvE5QHP9FnTNY3Ck0CqZoyCnwg3aOo9NaA== 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 4XTtbH4f5PzxLg; Thu, 17 Oct 2024 16:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGTl5H017301; Thu, 17 Oct 2024 16:29:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGTl09017298; Thu, 17 Oct 2024 16:29:47 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:29:47 GMT Message-Id: <202410171629.49HGTl09017298@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: ae3d7e27abc9 - stable/14 - sctp: propagate cap rights on sctp_peeloff List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ae3d7e27abc98d7325d506a55af6a3ea2e028738 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=ae3d7e27abc98d7325d506a55af6a3ea2e028738 commit ae3d7e27abc98d7325d506a55af6a3ea2e028738 Author: Ed Maste AuthorDate: 2024-10-03 11:54:44 +0000 Commit: Ed Maste CommitDate: 2024-10-17 16:29:21 +0000 sctp: propagate cap rights on sctp_peeloff PR: 201052 Reviewed by: oshogbo, tuexen Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46884 (cherry picked from commit 91a9e4e01dab7a740b8e3b7c39c59a537e71e5d2) --- sys/netinet/sctp_syscalls.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sys/netinet/sctp_syscalls.c b/sys/netinet/sctp_syscalls.c index d67e260b6f99..9d85576e2592 100644 --- a/sys/netinet/sctp_syscalls.c +++ b/sys/netinet/sctp_syscalls.c @@ -141,13 +141,14 @@ sys_sctp_peeloff(struct thread *td, struct sctp_peeloff_args *uap) { struct file *headfp, *nfp = NULL; struct socket *head, *so; + struct filecaps fcaps; cap_rights_t rights; u_int fflag; int error, fd; AUDIT_ARG_FD(uap->sd); - error = getsock(td, uap->sd, cap_rights_init_one(&rights, CAP_PEELOFF), - &headfp); + error = getsock_cap(td, uap->sd, + cap_rights_init_one(&rights, CAP_PEELOFF), &headfp, &fcaps); if (error != 0) goto done2; fflag = atomic_load_int(&headfp->f_flag); @@ -165,7 +166,7 @@ sys_sctp_peeloff(struct thread *td, struct sctp_peeloff_args *uap) * but that is ok. */ - error = falloc(td, &nfp, &fd, 0); + error = falloc_caps(td, &nfp, &fd, 0, &fcaps); if (error != 0) goto done; td->td_retval[0] = fd; From nobody Thu Oct 17 16:29:48 2024 X-Original-To: dev-commits-src-branches@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 4XTtbK062jz5ZBn9; Thu, 17 Oct 2024 16:29:49 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtbJ5LPrz44q0; Thu, 17 Oct 2024 16:29:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729182588; 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=QeiWI0puMsQYvhQ03RlTjMIsegZtJ7gtklzofRJuogg=; b=GQEVfZG6NEzJZOBKBl9I3wDUzaI8nGPMi2ksCznq+8AQU/YStPn7fqRa0FUx33YX1+wszJ TmWlOBRWf0C5hcZZRVMdz203vgAgfpMaqSAiMd88tfH7gt0Ztzkp0DNAuIrOpGhB2RqaQz 6N0fkDoTFEBf3Eqk5Gb4uQbpArTMQQOrsYpfpXfoodWJXekP0zwymgAQZF2lO1Mp2XTQc4 UWqAVjFiEgPR8nfPsfDtfeW+LzxGhhZ9r6UlG5HMUoYL/fBRsG/Y9dNPdnHxDDglwjtyqJ v2iiBuy2SZt9sW10Bkynrj5RA7HJxgLIiXGEY1CzF+5nWdDoJJovBGf6sIO62A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729182588; 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=QeiWI0puMsQYvhQ03RlTjMIsegZtJ7gtklzofRJuogg=; b=oPgHIfMGIp71ZuUzF1hAnrwke2hFByh6TihsUoZ3CWetKwC4hZqNqvydmOabYlSPzLsh2R dU44tpJwSdcUUx7HexVhOGYQyOogOqDG0xI/94zUCZCCMZyKxU77jdcJQyWbw8ndlGfaHM ENB3rxxBoQm4fy6cLGNcrMw6PwOX78JQL0M/EazH+zHuTIQkqOXSdklBGw424lsi1agYiN nFXwW1KNasMXnBuI70dxQK3ZU8rOwTDNeHJaUl96PRDSj3kA69flq+O0EmhOvhqoTR/96A HRdJzAnEVKWLdeEQeZds2qnpmEY4l6W7erDJ2i6+aXNpJoH1UDsxqhJ3fTRMGQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729182588; a=rsa-sha256; cv=none; b=QccAmaxLZSYx8fxruVG9PNj0rhuoAUeHj3voPtvwqZz1J1K5DkjBIVZh10BWcreGVBMoVR BWdM9xLf995PCpSRK+kvDt9Xo96omA8GifnIgIzf1DVsWcYflb/4G3xzrf9r0PkfQ4kL7H pQkcE7/6vsIOHkB8RrF4WzWC8HGKg6JTAzBDvddtEnWIoMjkZoWb8I1zwm2o7ilfCkdLcT uRB37ZY3xXIHlqlKcShRStqdKDhzRg/faZnzof4gbQTOlxHg2ZH3X4wO62mVFgftExncwQ 8hyhJGb2A0M9gzHgPS2e8UFSsCEznTZ8K6Gngg571H4pw9OZ2FCmdvWscK/KHQ== 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 4XTtbJ4xkYzxRL; Thu, 17 Oct 2024 16:29:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGTm3w017346; Thu, 17 Oct 2024 16:29:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGTmnT017343; Thu, 17 Oct 2024 16:29:48 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:29:48 GMT Message-Id: <202410171629.49HGTmnT017343@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 202bbdcb1a2b - stable/14 - capsicum-test: rights are propagated on sctp_peeloff(2) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 202bbdcb1a2b67ddfad967db38969af5caa668d7 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=202bbdcb1a2b67ddfad967db38969af5caa668d7 commit 202bbdcb1a2b67ddfad967db38969af5caa668d7 Author: Ed Maste AuthorDate: 2024-10-07 18:28:20 +0000 Commit: Ed Maste CommitDate: 2024-10-17 16:29:21 +0000 capsicum-test: rights are propagated on sctp_peeloff(2) As of commit 91a9e4e01dab ("capsicum: propagate rights on sctp_peeloff") a capability is generated from sctp_peeloff(cap_fd,...). Enable the corresponding test code. PR: 201052 Reviewed by: oshogbo, tuexen Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D47000 (cherry picked from commit 38518fda66cda6c57af0aa655d19c1897c0ab15d) --- contrib/capsicum-test/capsicum-freebsd.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/contrib/capsicum-test/capsicum-freebsd.h b/contrib/capsicum-test/capsicum-freebsd.h index da7bb38f073b..13fa24a0f722 100644 --- a/contrib/capsicum-test/capsicum-freebsd.h +++ b/contrib/capsicum-test/capsicum-freebsd.h @@ -62,10 +62,9 @@ typedef unsigned long cap_ioctl_t; // As of commit 85b0f9de11c3 ("capsicum: propagate rights on accept(2)") // FreeBSD generates a capability from accept(cap_fd,...). #define CAP_FROM_ACCEPT -// TODO(FreeBSD): uncomment if/when FreeBSD propagates rights on sctp_peeloff. -// FreeBSD does not generate a capability from sctp_peeloff(cap_fd,...). -// https://bugs.freebsd.org/201052 -// #define CAP_FROM_PEELOFF +// As of commit 91a9e4e01dab ("capsicum: propagate rights on sctp_peeloff") +// FreeBSD generates a capability from sctp_peeloff(cap_fd,...). +#define CAP_FROM_PEELOFF #endif /* __FreeBSD__ */ From nobody Thu Oct 17 16:33:08 2024 X-Original-To: dev-commits-src-branches@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 4XTtg82jMpz5ZBM4; Thu, 17 Oct 2024 16:33:08 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTtg81sJ3z45xN; Thu, 17 Oct 2024 16:33:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729182788; 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=0/xaAbsCm7ymaRN3XO4rbLJWIzFcvNcUEdvzlyQB8wk=; b=jwTx4QxhQoe841kHIRoUwDB4lOf1kv6esq2Hrkg8/9hbeRyNfX5lEBuE8JPuzB96g5bvix rR53WQf35H2OUG0fnDmwr41gWg+F8kpfnfVcvJHTsvwyHzlaGMrfeOV+ejXfmtUYQYJ2G7 NvjZ7R7Q/cfEM+rtjErry+G4D1ZvRu2+RAE/IvmO/JJeJ5HRA745jJyHyyQ66L1t/GR13J dmnZB6EZlm76mczaZlpcBXPrRAcPEkqCUHbA3ARhVYfO2cFjiUNF01jfYSpR73+BqeMT2y Fw/i+p3+w1d5smmMfcF1e4+LWdX4dB3kAglvuLKXPsNTzWq2gImrodrIvkHv+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729182788; 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=0/xaAbsCm7ymaRN3XO4rbLJWIzFcvNcUEdvzlyQB8wk=; b=AUrZ4UgOMJuyxCSrGa+jv24XwXHsCasw1e3tPrUghrTsgNvKQOE1EieIZOaB/qu+o/9Q8q f+fcBgchDv05htCR+ThVtdmIwTd3lmhHGAvvSRpx5m5keQo5VvlxVCrxNOvSBJSmccFoRk jEIh29czfQekpwAutDH5R/RhprdZ7XbDjwmfPGitV/3wBH3H/G/r4iO+G4cbm1bYTa8BKs Nw2Ap+mfY64lXrjvNt0DA2Ha0Es/6ktpWl+yThEE6fjvpPcs4Cv7YpNVADODrOOM0ltuKm rP+9d+Ad2dNWabsM8liCTv9pFdOvgD/RXqnEyg9r1QZ+WOqFoJNaruDGDxB5Rg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729182788; a=rsa-sha256; cv=none; b=qwT9DTmq6uIHJzJGmf3JRPK9T6upBIAMKwFGnXNNbNmp47EJJPEVVbCNP4jz290cNbAJrv mrnrJ2FBCffFM2fxW2x0nSRX0hSfZB9wuazcLzxEt5ZooFbhwuZXAob7PJJED2zLY5CazC XvpP7YXNqXSM2b0qwwbFc1eNjVzqn7GbRf5+wDHDf51wRp50U59Y6AUHI4YS5iO53OpIRi deysjUkqfqqbGvSXUt8eTggC8mw8vK++AWAJhM3m7X4koxOoCgvN1QU2RNztbDT2o4K4fI D20ES6H24MxOpQfVMZOFMBb86jXKG6tENXoVqTXHrcUs1qSfx6bF5vyKB435Hw== 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 4XTtg81RPxzxLD; Thu, 17 Oct 2024 16:33:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HGX8mv033007; Thu, 17 Oct 2024 16:33:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HGX8Cx033004; Thu, 17 Oct 2024 16:33:08 GMT (envelope-from git) Date: Thu, 17 Oct 2024 16:33:08 GMT Message-Id: <202410171633.49HGX8Cx033004@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 14c22e28e4ee - stable/14 - Add smbus and i2c device IDs for Meteor Lake List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 14c22e28e4ee62f4d3f2d6004881d874fafa7d11 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=14c22e28e4ee62f4d3f2d6004881d874fafa7d11 commit 14c22e28e4ee62f4d3f2d6004881d874fafa7d11 Author: SHENG-YI HONG AuthorDate: 2024-08-13 12:22:43 +0000 Commit: Ed Maste CommitDate: 2024-10-17 16:32:38 +0000 Add smbus and i2c device IDs for Meteor Lake Reviewed by: emaste, Daniel Schaefer MFC after: 3 days Sponsored by: Framework Computer Inc Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46249 (cherry picked from commit d3b05d0ea10abe059dc63c6fb6ef3f061b758af2) --- sys/dev/ichiic/ig4_pci.c | 8 ++++++++ sys/dev/ichsmb/ichsmb_pci.c | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/sys/dev/ichiic/ig4_pci.c b/sys/dev/ichiic/ig4_pci.c index 9f12e713cdeb..138de77c35db 100644 --- a/sys/dev/ichiic/ig4_pci.c +++ b/sys/dev/ichiic/ig4_pci.c @@ -168,6 +168,10 @@ static int ig4iic_pci_detach(device_t dev); #define PCI_CHIP_ALDERLAKE_M_I2C_3 0x54eb8086 #define PCI_CHIP_ALDERLAKE_M_I2C_4 0x54c58086 #define PCI_CHIP_ALDERLAKE_M_I2C_5 0x54c68086 +#define PCI_CHIP_METEORLAKE_M_I2C_0 0x7e788086 +#define PCI_CHIP_METEORLAKE_M_I2C_1 0x7e798086 +#define PCI_CHIP_METEORLAKE_M_I2C_2 0x7e508086 +#define PCI_CHIP_METEORLAKE_M_I2C_3 0x7e518086 struct ig4iic_pci_device { uint32_t devid; @@ -280,6 +284,10 @@ static struct ig4iic_pci_device ig4iic_pci_devices[] = { { PCI_CHIP_ALDERLAKE_M_I2C_3, "Intel Alder Lake-M I2C Controller-3", IG4_TIGERLAKE}, { PCI_CHIP_ALDERLAKE_M_I2C_4, "Intel Alder Lake-M I2C Controller-4", IG4_TIGERLAKE}, { PCI_CHIP_ALDERLAKE_M_I2C_5, "Intel Alder Lake-M I2C Controller-5", IG4_TIGERLAKE}, + { PCI_CHIP_METEORLAKE_M_I2C_0, "Intel Meteor Lake-M I2C Controller-0", IG4_TIGERLAKE}, + { PCI_CHIP_METEORLAKE_M_I2C_1, "Intel Meteor Lake-M I2C Controller-1", IG4_TIGERLAKE}, + { PCI_CHIP_METEORLAKE_M_I2C_2, "Intel Meteor Lake-M I2C Controller-2", IG4_TIGERLAKE}, + { PCI_CHIP_METEORLAKE_M_I2C_3, "Intel Meteor Lake-M I2C Controller-3", IG4_TIGERLAKE}, }; static int diff --git a/sys/dev/ichsmb/ichsmb_pci.c b/sys/dev/ichsmb/ichsmb_pci.c index 57f9afb66f01..6c40132d715d 100644 --- a/sys/dev/ichsmb/ichsmb_pci.c +++ b/sys/dev/ichsmb/ichsmb_pci.c @@ -111,6 +111,9 @@ #define ID_ALDERLAKE 0x7aa3 #define ID_ALDERLAKE2 0x51a3 #define ID_ALDERLAKE3 0x54a3 +#define ID_METEORLAKE 0x7e22 +#define ID_METEORLAKE2 0x7f23 +#define ID_METEORLAKE3 0xae22 static const struct pci_device_table ichsmb_devices[] = { { PCI_DEV(PCI_VENDOR_INTEL, ID_82801AA), @@ -209,6 +212,12 @@ static const struct pci_device_table ichsmb_devices[] = { PCI_DESCR("Intel Alder Lake SMBus controller") }, { PCI_DEV(PCI_VENDOR_INTEL, ID_ALDERLAKE3), PCI_DESCR("Intel Alder Lake SMBus controller") }, + { PCI_DEV(PCI_VENDOR_INTEL, ID_METEORLAKE), + PCI_DESCR("Intel Meteor Lake SMBus controller") }, + { PCI_DEV(PCI_VENDOR_INTEL, ID_METEORLAKE2), + PCI_DESCR("Intel Meteor Lake SMBus controller") }, + { PCI_DEV(PCI_VENDOR_INTEL, ID_METEORLAKE3), + PCI_DESCR("Intel Meteor Lake SMBus controller") }, }; /* Internal functions */ From nobody Thu Oct 17 19:49:26 2024 X-Original-To: dev-commits-src-branches@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 4XTz1f6vdvz5ZQ1c; Thu, 17 Oct 2024 19:49:26 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XTz1f61Zxz4gjK; Thu, 17 Oct 2024 19:49:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729194566; 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=m6as6WZ3x+Q6VT55EALkMvntZtEC2x+norRUoRNP0Hc=; b=SnufC+/BIZae5IjRVkjme8mc0vG5sb3XspFgN/N8hDLo5/UeUOU9ZSJXQwUdAyXN/KqcFP CQUKe8OJjM07M4AsJD7qjEmiMBI+gTnPoutOy0sSWBCJIpcKWlMMyEUSmcMC9XPHRujyig hRT9uk5hXLzzZxqQ/zjQIlwpcyq/WQUcEO6iF/ESCB+PocVBo0TSgb7PvvbXX3pYmW4MI2 sh2zrKlGTAbTB0ojcOFZYqWNT3alrQPh6XlwRoDYORePbrXsbSlgzwhKZjKUi3omBN7JNW ZjnbUOZz7Nef9X2rMlmfQfJZBeLkRTLDfR29VTnIXRgrIKQ/6IihFOfe+dwfng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729194566; 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=m6as6WZ3x+Q6VT55EALkMvntZtEC2x+norRUoRNP0Hc=; b=iuUe3f0QUMMWom1iAR8Cwvt5CYA91xOkx07+2N7vM+pmOeabF7q5IV6APFGQSepMKzg/h2 UXZTCn932agUVOoUHtWoXzJp5OXYfnLxA5GzaSnBlEZUGbIx/MhMGYRdzEwt8MlQURcEGX c9xbR5CA9fw09Uuq8sq6CaFPjHwran79tqYX4dTMrlX7ipiQC23SynzpGo5amiyWpIeIG4 CmCRb1uYrFjAart1ngQLoE35kwm8jyxRzFyWYhW11/dJDQlaMbMkABvNpFWg1Qdh8BO3X3 o0jLnG91QVQvQbpuyiPek9YttkTHyfPCIzUbrJPINxryeeK6T8Ortjper4QspQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729194566; a=rsa-sha256; cv=none; b=DreA1qoZFWTEUSCOy1HAxaYXulKhHZggi1b+028eM8yhMSEOQ+CVX+tyG6y/ZpT9ak0VRH CUtuZT/3cNuhZAfKEC9KXyFHbTzapZvjBQlxCsSEKZ3lvZsgoH4teuiRNA6084pYndkFoO IJyS9nuprEBAWvTU4rI9DWoACMKNKjMvNzwCnphaS+b8a13xTZuj8Gk/HJUVLoPS9aDoCY ROSFn/6dqyh5RLzYIItF7gYfdIbIacH70ABpp43l7nOkowr9XpTX7RUs6hGGE2wLjfqdaB 8EIAbMao/1ERxcaKzB75iXPZKEuk0bTHlr1qblglrCZaZewycNzO+pMM9j1FaQ== 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 4XTz1f5cJLz13K8; Thu, 17 Oct 2024 19:49:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49HJnQcm061965; Thu, 17 Oct 2024 19:49:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49HJnQ2R061962; Thu, 17 Oct 2024 19:49:26 GMT (envelope-from git) Date: Thu, 17 Oct 2024 19:49:26 GMT Message-Id: <202410171949.49HJnQ2R061962@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: dac5a2024bc8 - stable/13 - loader: Change version calculation to be more consistent. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: dac5a2024bc8bed379d3db861580056d0c670fdc Auto-Submitted: auto-generated The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=dac5a2024bc8bed379d3db861580056d0c670fdc commit dac5a2024bc8bed379d3db861580056d0c670fdc Author: Stephen J. Kiernan AuthorDate: 2023-04-17 23:27:54 +0000 Commit: Warner Losh CommitDate: 2024-10-17 19:08:21 +0000 loader: Change version calculation to be more consistent. Use 1000 * major + minor when calculating the version number that gets set in the Ficl environment or lua loader property. This allows for more room if the minor number needs to go above 9. Add loader.version property to lua loader. PR: 282001 Reviewed by: imp Obtained from: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D39631 (cherry picked from commit a50d73d5782a351ad83e8d1f84d11720a12e70d3) --- stand/common/bootstrap.h | 1 + stand/common/interp_forth.c | 1 - stand/common/newvers.sh | 2 +- stand/liblua/lutils.c | 2 ++ 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/stand/common/bootstrap.h b/stand/common/bootstrap.h index 02ddfb84b050..4afab2efa781 100644 --- a/stand/common/bootstrap.h +++ b/stand/common/bootstrap.h @@ -180,6 +180,7 @@ extern int isapnp_readport; * Version information */ extern char bootprog_info[]; +extern unsigned bootprog_rev; /* * Interpreter information diff --git a/stand/common/interp_forth.c b/stand/common/interp_forth.c index 0c2829c9717e..0320e081d406 100644 --- a/stand/common/interp_forth.c +++ b/stand/common/interp_forth.c @@ -31,7 +31,6 @@ #include "bootstrap.h" #include "ficl.h" -extern unsigned bootprog_rev; INTERP_DEFINE("4th"); /* #define BFORTH_DEBUG */ diff --git a/stand/common/newvers.sh b/stand/common/newvers.sh index ee7678597b7a..0f30b1a4a744 100755 --- a/stand/common/newvers.sh +++ b/stand/common/newvers.sh @@ -55,6 +55,6 @@ fi cat > $tempfile < To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: e38b4c031cf8 - stable/14 - 14.2: Update stable/14 to -PRERELEASE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: e38b4c031cf894979f4eed9edee83f962cebb0ec Auto-Submitted: auto-generated The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=e38b4c031cf894979f4eed9edee83f962cebb0ec commit e38b4c031cf894979f4eed9edee83f962cebb0ec Author: Colin Percival AuthorDate: 2024-10-18 00:07:44 +0000 Commit: Colin Percival CommitDate: 2024-10-18 00:07:44 +0000 14.2: Update stable/14 to -PRERELEASE This marks the start of the FreeBSD 14.2 release cycle; the stable/14 tree is now in "code slush". Developers are encouraged to prioritize fixing bugs (and/or merging bug fixes from HEAD) over new features at this time. Commit approval from re@ is not required but if new features introduce problems they may be removed from the release. Approved by: re (implicit) Sponsored by: Amazon --- sys/conf/newvers.sh | 4 ++-- usr.bin/yacc/config.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 3edff3630ae3..9176ee00e9e3 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -52,8 +52,8 @@ # TYPE="FreeBSD" -REVISION="14.1" -BRANCH="STABLE" +REVISION="14.2" +BRANCH="PRERELEASE" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi diff --git a/usr.bin/yacc/config.h b/usr.bin/yacc/config.h index 16c6abfc32f5..04ead1f045c9 100644 --- a/usr.bin/yacc/config.h +++ b/usr.bin/yacc/config.h @@ -92,7 +92,7 @@ /* #undef STDC_NORETURN */ /* Define to the system name. */ -#define SYSTEM_NAME "freebsd14.1" +#define SYSTEM_NAME "freebsd14.2" /* "Define to 1 if you want to use dbmalloc for testing." */ /* #undef USE_DBMALLOC */ From nobody Fri Oct 18 01:42:14 2024 X-Original-To: dev-commits-src-branches@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 4XV6rl0HNKz5Zk0Y; Fri, 18 Oct 2024 01:42:15 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XV6rl05k8z4D5N; Fri, 18 Oct 2024 01:42:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729215735; 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=18K339iF+9zr5G75kcyQ82CloU803waHpZuRz7Sx1q4=; b=AD3stegWmxjOvlFi0u5b8kY9zHP3lLPHg0JHj+3ooEMuBpr3smeb0Y1ffxjc0s7n2PzklL HhVgPLqsiDrQQnNroUDKFUKEDN3CDzHQPelLmTeObIZcYzlV6CuhV0S+sCB/eCPHNS5gfQ mGq06sfi/WFvJGWabFuLGuCLBJuVrv9jiZI4HKYZpEDQ7p/US2QfErfPoEO6Dvs0IkgBXI R0qmixgnNaRGBsy5d1cDUBRZie0XXtn2P1eEA4k9sJBtelkHe0lIyZNIwKoWLTbz9FYFGm 3bQp7oDbfxDe05PJvSwDSIiad6S/ePw/TCW4cjza2FjhdD3d7FWfr4hm5nQFeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729215735; 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=18K339iF+9zr5G75kcyQ82CloU803waHpZuRz7Sx1q4=; b=RBbFnKdb45+eOkDxMdYPar3ZmNFv6TZhnNGPmZBdKcRcNREwxeC6vgr9yuZMTnwVQPpJf7 Bv8CaaS9UAV2ft0HPcSZbJufuQqIlqYggwGb8tpLcaqGjVKhUWFSFa1YfYll8+pWupJVOS yY5w3Uy/fvhWPaZHbB/v9eJZzVobB/qkKfyO0Hu5FaQGpun8wiKZ+/96tC8TpoQ2OQVal2 y56EV1BaV0CgZrheU2sk6ithNMjpEzcko9es7vmX6Szs2XMDTbFq6pz/sfj7B7xh+L2wt6 HXeXOTrwS24uqlfMSWhDHRDguCzVTySvgt6dwngYaz0wjRlKC75sgYB6oxlSFg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729215735; a=rsa-sha256; cv=none; b=F26MtfhVg8igqefPUrL6fmezU2Hr44fbVyq1B5Y6UXUPHpzeB2EK9ygFMAIBPxb5aqJp1a ODR6wkYAhdA4f9b+7tf7QHhdKpOielC21SLlc6zNPhqD4mrYQwXxwwvNBamRbhnke1VcxE UUYvXW4Pc1RtdkeZkDGho7q5t81bs1CFPeiFTouL5/6PnGZvKzEsI2NAEVPzwVG6TOkxX/ 28jjWQUJMNVafpa8Diq6b1sZzSE1HGNIWCCxJCoVIu0cgx4OgS87MfUU3/8xHXgiHEIuxX zanZLkJhlgOaoTHvosCJqD/IWt1HtJn/q5BpOHWyshvUjY/Lf/VQ0tXBLw/c4A== 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 4XV6rk6pM5zF4k; Fri, 18 Oct 2024 01:42:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49I1gEeV068499; Fri, 18 Oct 2024 01:42:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49I1gE0Q068496; Fri, 18 Oct 2024 01:42:14 GMT (envelope-from git) Date: Fri, 18 Oct 2024 01:42:14 GMT Message-Id: <202410180142.49I1gE0Q068496@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 49f12d5b38f6 - stable/14 - e1000: Re-add AIM List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 49f12d5b38f6bbc66a81438b9bc7ed21af3be39c Auto-Submitted: auto-generated The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=49f12d5b38f6bbc66a81438b9bc7ed21af3be39c commit 49f12d5b38f6bbc66a81438b9bc7ed21af3be39c Author: Kevin Bowling AuthorDate: 2024-09-22 09:26:05 +0000 Commit: Kevin Bowling CommitDate: 2024-10-18 01:41:56 +0000 e1000: Re-add AIM We originally left this out because iflib modulates interrupts and accomplishes some level of batching versus the custom queues in the older driver. Upon more detailed study of the Linux driver which has a newer implementation, it finally became clear to me this is actually a holdoff timer and not an interrupt limit as it is conventionally (statically) programmed and displayed as an interrupt rate. The data sheets also make this somewhat clear. Thus, AIM accomplishes two beneficial things for a wide variety of workloads[1]: 1. At low throughput/packet rates, it will significantly lower latency (by counter-intuitively "increasing" the interrupt rate.. better thought of as decreasing the holdoff timer because you will modulate down before coming anywhere near these interrupt rates). 2. At bulk data rates, it is tuned to achieve a lower interrupt rate (by increasing the holdoff timer) than the current static 8000/s. This decreases processing overhead and yields more headroom for other work such as packet filters or userland. For a single NIC this might be worth a few sys% on common CPUs, but may be meaningful when multiplied such as if_lagg, if_bridge and forwarding setups. The AIM algorithm was re-introduced from the older igb or out of tree driver, and then modernized with permission to use Intel code from other drivers. I have retroactively added it to lem(4) and em(4) where the same concept applies, albeit to a single ITR register. [1]: http://iommu.com/datasheets/ethernet/controllers-nics/intel/e1000/gbe-controllers-interrupt-moderation-appl-note.pdf Tested by: cc (https://wiki.freebsd.org/chengcui/testD46768) Relnotes: yes Sponsored by: Rubicon Communications, LLC ("Netgate") Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D46768 (cherry picked from commit 3e501ef896671cb190e8c40c6258b8f27d136f07) --- sys/dev/e1000/em_txrx.c | 10 ++ sys/dev/e1000/if_em.c | 269 ++++++++++++++++++++++++++++++++++++++++++++++- sys/dev/e1000/if_em.h | 28 +++-- sys/dev/e1000/igb_txrx.c | 4 + 4 files changed, 299 insertions(+), 12 deletions(-) diff --git a/sys/dev/e1000/em_txrx.c b/sys/dev/e1000/em_txrx.c index eec198df7466..6e8fff07cd82 100644 --- a/sys/dev/e1000/em_txrx.c +++ b/sys/dev/e1000/em_txrx.c @@ -455,6 +455,10 @@ em_isc_txd_encap(void *arg, if_pkt_info_t pi) "tx_buffers[%d]->eop = %d ipi_new_pidx=%d\n", first, pidx_last, i); pi->ipi_new_pidx = i; + /* Sent data accounting for AIM */ + txr->tx_bytes += pi->ipi_len; + ++txr->tx_packets; + return (0); } @@ -669,6 +673,7 @@ lem_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) len = le16toh(rxd->length); ri->iri_len += len; + rxr->rx_bytes += ri->iri_len; eop = (status & E1000_RXD_STAT_EOP) != 0; @@ -690,6 +695,8 @@ lem_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) i++; } while (!eop); + rxr->rx_packets++; + if (scctx->isc_capenable & IFCAP_RXCSUM) em_receive_checksum(status, errors, ri); @@ -732,6 +739,7 @@ em_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) len = le16toh(rxd->wb.upper.length); ri->iri_len += len; + rxr->rx_bytes += ri->iri_len; eop = (staterr & E1000_RXD_STAT_EOP) != 0; @@ -752,6 +760,8 @@ em_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) i++; } while (!eop); + rxr->rx_packets++; + if (scctx->isc_capenable & IFCAP_RXCSUM) em_receive_checksum(staterr, staterr >> 24, ri); diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index b9c6131e6741..22578a3d8655 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -1,8 +1,9 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * + * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * All rights reserved. + * Copyright (c) 2024 Kevin Bowling * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -329,10 +330,12 @@ static int em_sysctl_debug_info(SYSCTL_HANDLER_ARGS); static int em_get_rs(SYSCTL_HANDLER_ARGS); static void em_print_debug_info(struct e1000_softc *); static int em_is_valid_ether_addr(u8 *); +static void em_newitr(struct e1000_softc *, struct em_rx_queue *, + struct tx_ring *, struct rx_ring *); static bool em_automask_tso(if_ctx_t); static int em_sysctl_int_delay(SYSCTL_HANDLER_ARGS); static void em_add_int_delay_sysctl(struct e1000_softc *, const char *, - const char *, struct em_int_delay_info *, int, int); + const char *, struct em_int_delay_info *, int, int); /* Management and WOL Support */ static void em_init_manageability(struct e1000_softc *); static void em_release_manageability(struct e1000_softc *); @@ -545,10 +548,19 @@ static int eee_setting = 1; SYSCTL_INT(_hw_em, OID_AUTO, eee_setting, CTLFLAG_RDTUN, &eee_setting, 0, "Enable Energy Efficient Ethernet"); +/* + * AIM: Adaptive Interrupt Moderation + * which means that the interrupt rate is varied over time based on the + * traffic for that interrupt vector + */ +static int em_enable_aim = 1; +SYSCTL_INT(_hw_em, OID_AUTO, enable_aim, CTLFLAG_RWTUN, &em_enable_aim, + 0, "Enable adaptive interrupt moderation (1=normal, 2=lowlatency)"); + /* ** Tuneable Interrupt rate */ -static int em_max_interrupt_rate = EM_INTS_PER_SEC; +static int em_max_interrupt_rate = EM_INTS_DEFAULT; SYSCTL_INT(_hw_em, OID_AUTO, max_interrupt_rate, CTLFLAG_RDTUN, &em_max_interrupt_rate, 0, "Maximum interrupts per second"); @@ -832,6 +844,11 @@ em_if_attach_pre(if_ctx_t ctx) CTLTYPE_INT | CTLFLAG_RW, sc, 0, em_sysctl_nvm_info, "I", "NVM Information"); + sc->enable_aim = em_enable_aim; + SYSCTL_ADD_INT(ctx_list, child, OID_AUTO, "enable_aim", + CTLFLAG_RW, &sc->enable_aim, 0, + "Interrupt Moderation (1=normal, 2=lowlatency)"); + SYSCTL_ADD_PROC(ctx_list, child, OID_AUTO, "fw_version", CTLTYPE_STRING | CTLFLAG_RD, sc, 0, em_sysctl_print_fw_version, "A", @@ -1437,6 +1454,159 @@ em_if_init(if_ctx_t ctx) } } +enum itr_latency_target { + itr_latency_disabled = 0, + itr_latency_lowest = 1, + itr_latency_low = 2, + itr_latency_bulk = 3 +}; +/********************************************************************* + * + * Helper to calculate next (E)ITR value for AIM + * + *********************************************************************/ +static void +em_newitr(struct e1000_softc *sc, struct em_rx_queue *que, + struct tx_ring *txr, struct rx_ring *rxr) +{ + struct e1000_hw *hw = &sc->hw; + u32 newitr; + u32 bytes; + u32 bytes_packets; + u32 packets; + u8 nextlatency; + + /* Idle, do nothing */ + if ((txr->tx_bytes == 0) && (rxr->rx_bytes == 0)) + return; + + newitr = 0; + + if (sc->enable_aim) { + nextlatency = rxr->rx_nextlatency; + + /* Use half default (4K) ITR if sub-gig */ + if (sc->link_speed != 1000) { + newitr = EM_INTS_4K; + goto em_set_next_itr; + } + /* Want at least enough packet buffer for two frames to AIM */ + if (sc->shared->isc_max_frame_size * 2 > (sc->pba << 10)) { + newitr = em_max_interrupt_rate; + sc->enable_aim = 0; + goto em_set_next_itr; + } + + /* Get the largest values from the associated tx and rx ring */ + if (txr->tx_bytes && txr->tx_packets) { + bytes = txr->tx_bytes; + bytes_packets = txr->tx_bytes/txr->tx_packets; + packets = txr->tx_packets; + } + if (rxr->rx_bytes && rxr->rx_packets) { + bytes = max(bytes, rxr->rx_bytes); + bytes_packets = max(bytes_packets, rxr->rx_bytes/rxr->rx_packets); + packets = max(packets, rxr->rx_packets); + } + + /* Latency state machine */ + switch (nextlatency) { + case itr_latency_disabled: /* Bootstrapping */ + nextlatency = itr_latency_low; + break; + case itr_latency_lowest: /* 70k ints/s */ + /* TSO and jumbo frames */ + if (bytes_packets > 8000) + nextlatency = itr_latency_bulk; + else if ((packets < 5) && (bytes > 512)) + nextlatency = itr_latency_low; + break; + case itr_latency_low: /* 20k ints/s */ + if (bytes > 10000) { + /* Handle TSO */ + if (bytes_packets > 8000) + nextlatency = itr_latency_bulk; + else if ((packets < 10) || (bytes_packets > 1200)) + nextlatency = itr_latency_bulk; + else if (packets > 35) + nextlatency = itr_latency_lowest; + } else if (bytes_packets > 2000) { + nextlatency = itr_latency_bulk; + } else if (packets < 3 && bytes < 512) { + nextlatency = itr_latency_lowest; + } + break; + case itr_latency_bulk: /* 4k ints/s */ + if (bytes > 25000) { + if (packets > 35) + nextlatency = itr_latency_low; + } else if (bytes < 1500) + nextlatency = itr_latency_low; + break; + default: + nextlatency = itr_latency_low; + device_printf(sc->dev, "Unexpected newitr transition %d\n", + nextlatency); + break; + } + + /* Trim itr_latency_lowest for default AIM setting */ + if (sc->enable_aim == 1 && nextlatency == itr_latency_lowest) + nextlatency = itr_latency_low; + + /* Request new latency */ + rxr->rx_nextlatency = nextlatency; + } else { + /* We may have toggled to AIM disabled */ + nextlatency = itr_latency_disabled; + rxr->rx_nextlatency = nextlatency; + } + + /* ITR state machine */ + switch(nextlatency) { + case itr_latency_lowest: + newitr = EM_INTS_70K; + break; + case itr_latency_low: + newitr = EM_INTS_20K; + break; + case itr_latency_bulk: + newitr = EM_INTS_4K; + break; + case itr_latency_disabled: + default: + newitr = em_max_interrupt_rate; + break; + } + +em_set_next_itr: + if (hw->mac.type >= igb_mac_min) { + newitr = IGB_INTS_TO_EITR(newitr); + + if (hw->mac.type == e1000_82575) + newitr |= newitr << 16; + else + newitr |= E1000_EITR_CNT_IGNR; + + if (newitr != que->itr_setting) { + que->itr_setting = newitr; + E1000_WRITE_REG(hw, E1000_EITR(que->msix), que->itr_setting); + } + } else { + newitr = EM_INTS_TO_ITR(newitr); + + if (newitr != que->itr_setting) { + que->itr_setting = newitr; + if (hw->mac.type == e1000_82574 && que->msix) { + E1000_WRITE_REG(hw, + E1000_EITR_82574(que->msix), que->itr_setting); + } else { + E1000_WRITE_REG(hw, E1000_ITR, que->itr_setting); + } + } + } +} + /********************************************************************* * * Fast Legacy/MSI Combined Interrupt Service routine @@ -1446,10 +1616,14 @@ int em_intr(void *arg) { struct e1000_softc *sc = arg; + struct e1000_hw *hw = &sc->hw; + struct em_rx_queue *que = &sc->rx_queues[0]; + struct tx_ring *txr = &sc->tx_queues[0].txr; + struct rx_ring *rxr = &que->rxr; if_ctx_t ctx = sc->ctx; u32 reg_icr; - reg_icr = E1000_READ_REG(&sc->hw, E1000_ICR); + reg_icr = E1000_READ_REG(hw, E1000_ICR); /* Hot eject? */ if (reg_icr == 0xffffffff) @@ -1463,7 +1637,7 @@ em_intr(void *arg) * Starting with the 82571 chip, bit 31 should be used to * determine whether the interrupt belongs to us. */ - if (sc->hw.mac.type >= e1000_82571 && + if (hw->mac.type >= e1000_82571 && (reg_icr & E1000_ICR_INT_ASSERTED) == 0) return FILTER_STRAY; @@ -1482,6 +1656,15 @@ em_intr(void *arg) if (reg_icr & E1000_ICR_RXO) sc->rx_overruns++; + if (hw->mac.type >= e1000_82540) + em_newitr(sc, que, txr, rxr); + + /* Reset state */ + txr->tx_bytes = 0; + txr->tx_packets = 0; + rxr->rx_bytes = 0; + rxr->rx_packets = 0; + return (FILTER_SCHEDULE_THREAD); } @@ -1534,9 +1717,20 @@ static int em_msix_que(void *arg) { struct em_rx_queue *que = arg; + struct e1000_softc *sc = que->sc; + struct tx_ring *txr = &sc->tx_queues[que->msix].txr; + struct rx_ring *rxr = &que->rxr; ++que->irqs; + em_newitr(sc, que, txr, rxr); + + /* Reset state */ + txr->tx_bytes = 0; + txr->tx_packets = 0; + rxr->rx_bytes = 0; + rxr->rx_packets = 0; + return (FILTER_SCHEDULE_THREAD); } @@ -2882,6 +3076,9 @@ em_reset(if_ctx_t ctx) if (hw->mac.type >= igb_mac_min) igb_init_dmac(sc, pba); + /* Save the final PBA off if it needs to be used elsewhere i.e. AIM */ + sc->pba = pba; + E1000_WRITE_REG(hw, E1000_VET, ETHERTYPE_VLAN); e1000_get_phy_info(hw); e1000_check_for_link(hw); @@ -3741,6 +3938,7 @@ em_if_intr_enable(if_ctx_t ctx) E1000_WRITE_REG(hw, EM_EIAC, sc->ims); ims_mask |= sc->ims; } + E1000_WRITE_REG(hw, E1000_IMS, ims_mask); E1000_WRITE_FLUSH(hw); } @@ -4410,6 +4608,57 @@ em_sysctl_reg_handler(SYSCTL_HANDLER_ARGS) return (sysctl_handle_int(oidp, &val, 0, req)); } +/* Per queue holdoff interrupt rate handler */ +static int +em_sysctl_interrupt_rate_handler(SYSCTL_HANDLER_ARGS) +{ + struct em_rx_queue *rque; + struct em_tx_queue *tque; + struct e1000_hw *hw; + int error; + u32 reg, usec, rate; + + bool tx = oidp->oid_arg2; + + if (tx) { + tque = oidp->oid_arg1; + hw = &tque->sc->hw; + if (hw->mac.type >= igb_mac_min) + reg = E1000_READ_REG(hw, E1000_EITR(tque->me)); + else if (hw->mac.type == e1000_82574 && tque->msix) + reg = E1000_READ_REG(hw, E1000_EITR_82574(tque->me)); + else + reg = E1000_READ_REG(hw, E1000_ITR); + } else { + rque = oidp->oid_arg1; + hw = &rque->sc->hw; + if (hw->mac.type >= igb_mac_min) + reg = E1000_READ_REG(hw, E1000_EITR(rque->msix)); + else if (hw->mac.type == e1000_82574 && rque->msix) + reg = E1000_READ_REG(hw, E1000_EITR_82574(rque->msix)); + else + reg = E1000_READ_REG(hw, E1000_ITR); + } + + if (hw->mac.type < igb_mac_min) { + if (reg > 0) + rate = EM_INTS_TO_ITR(reg); + else + rate = 0; + } else { + usec = (reg & IGB_QVECTOR_MASK); + if (usec > 0) + rate = IGB_INTS_TO_EITR(usec); + else + rate = 0; + } + + error = sysctl_handle_int(oidp, &rate, 0, req); + if (error || !req->newptr) + return error; + return 0; +} + /* * Add sysctl variables, one per statistic, to the system. */ @@ -4466,6 +4715,11 @@ em_add_hw_stats(struct e1000_softc *sc) CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "TX Queue Name"); queue_list = SYSCTL_CHILDREN(queue_node); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "interrupt_rate", + CTLTYPE_UINT | CTLFLAG_RD, tx_que, + true, em_sysctl_interrupt_rate_handler, + "IU", "Interrupt Rate"); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_head", CTLTYPE_UINT | CTLFLAG_RD, sc, E1000_TDH(txr->me), em_sysctl_reg_handler, "IU", @@ -4486,6 +4740,11 @@ em_add_hw_stats(struct e1000_softc *sc) CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "RX Queue Name"); queue_list = SYSCTL_CHILDREN(queue_node); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "interrupt_rate", + CTLTYPE_UINT | CTLFLAG_RD, rx_que, + false, em_sysctl_interrupt_rate_handler, + "IU", "Interrupt Rate"); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_head", CTLTYPE_UINT | CTLFLAG_RD, sc, E1000_RDH(rxr->me), em_sysctl_reg_handler, "IU", diff --git a/sys/dev/e1000/if_em.h b/sys/dev/e1000/if_em.h index 7219dc57c333..52bfed0f9a42 100644 --- a/sys/dev/e1000/if_em.h +++ b/sys/dev/e1000/if_em.h @@ -1,8 +1,9 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * + * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * All rights reserved. + * Copyright (c) 2024 Kevin Bowling * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -243,16 +244,19 @@ /* Support AutoMediaDetect for Marvell M88 PHY in i354 */ #define IGB_MEDIA_RESET (1 << 0) -/* Define the starting Interrupt rate per Queue */ -#define EM_INTS_PER_SEC 8000 +/* Define the interrupt rates and ITR helpers */ +#define EM_INTS_4K 4000 +#define EM_INTS_20K 20000 +#define EM_INTS_70K 70000 +#define EM_INTS_DEFAULT 8000 #define EM_INTS_MULTIPLIER 256 #define EM_ITR_DIVIDEND 1000000000 #define EM_INTS_TO_ITR(i) (EM_ITR_DIVIDEND/(i * EM_INTS_MULTIPLIER)) -#define IGB_ITR_DIVIDEND 1000000 -#define IGB_ITR_SHIFT 2 +#define IGB_EITR_DIVIDEND 1000000 +#define IGB_EITR_SHIFT 2 #define IGB_QVECTOR_MASK 0x7FFC -#define IGB_INTS_TO_EITR(i) (((IGB_ITR_DIVIDEND/i) & IGB_QVECTOR_MASK) << \ - IGB_ITR_SHIFT) +#define IGB_INTS_TO_EITR(i) (((IGB_EITR_DIVIDEND/i) & IGB_QVECTOR_MASK) << \ + IGB_EITR_SHIFT) #define IGB_LINK_ITR 2000 #define I210_LINK_DELAY 1000 @@ -390,7 +394,11 @@ struct tx_ring { /* Interrupt resources */ void *tag; struct resource *res; + + /* Soft stats */ unsigned long tx_irq; + unsigned long tx_packets; + unsigned long tx_bytes; /* Saved csum offloading context information */ int csum_flags; @@ -426,6 +434,9 @@ struct rx_ring { unsigned long rx_discarded; unsigned long rx_packets; unsigned long rx_bytes; + + /* Next requested ITR latency */ + u8 rx_nextlatency; }; struct em_tx_queue { @@ -441,6 +452,7 @@ struct em_rx_queue { u32 me; u32 msix; u32 eims; + u32 itr_setting; struct rx_ring rxr; u64 irqs; struct if_irq que_irq; @@ -489,6 +501,7 @@ struct e1000_softc { u32 rx_mbuf_sz; + int enable_aim; /* Management and WOL features */ u32 wol; bool has_manage; @@ -512,6 +525,7 @@ struct e1000_softc { u16 link_duplex; u32 smartspeed; u32 dmac; + u32 pba; int link_mask; int tso_automasked; diff --git a/sys/dev/e1000/igb_txrx.c b/sys/dev/e1000/igb_txrx.c index 2819150acba6..82cbb37ce4cd 100644 --- a/sys/dev/e1000/igb_txrx.c +++ b/sys/dev/e1000/igb_txrx.c @@ -292,6 +292,10 @@ igb_isc_txd_encap(void *arg, if_pkt_info_t pi) txd->read.cmd_type_len |= htole32(E1000_TXD_CMD_EOP | txd_flags); pi->ipi_new_pidx = i; + /* Sent data accounting for AIM */ + txr->tx_bytes += pi->ipi_len; + ++txr->tx_packets; + return (0); } From nobody Fri Oct 18 01:42:44 2024 X-Original-To: dev-commits-src-branches@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 4XV6sJ3Yp5z5ZjxL; Fri, 18 Oct 2024 01:42:44 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XV6sJ33JZz4D7v; Fri, 18 Oct 2024 01:42:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729215764; 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=egjd8Is92b/E7YFqq2qOS67KzB924mvDe2vRXvYHGjw=; b=gEdI3dd65T9EoJlfidH21urRNQr8jrQpvb2AWqK56WyCErAilvKMs2dbq6OyaP29Ue2J3H 5TKIuWSMGo2O8OsfdWto4b7Ln0IkxfCnKTKGNsPhoKaMJ1UyQ0XyC9gz8fPqV3uzhHEyKN jHEKzSwERHpvxHc8C5wn5/1Cl8OEcOIoUMKttieMy1ZrwwzDCYT7PBZHjVu6A2Xo+gxs1j OMW9lCp8C9zR7Yg6G/IxZBc4swlE5aSfAnVwKd7g7Klnsv+fHnS1XSaZppKM+dU0nfakM5 iKeTdNtpWGaJuvV9pjng2KG5FyHGMzpGNgrBFKS5vEp9HXp5H/+IIuZ4x8FhAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729215764; 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=egjd8Is92b/E7YFqq2qOS67KzB924mvDe2vRXvYHGjw=; b=VBCdzYyqSH7QhLCfu5imTGHiiUSR6kzFE3aX10J/8khtWO2zdh7PiqfiyXiWSK1idAVsiV v7Gv/Fkr0iDckFxkOuIhPoERUV1QoKgmhVB5yo48BUWmciuT25gD4qYO4pLgQC7KFD72DU EayR+MBasnh41QUEMdha/UaKImBRYpjK8w9vIu/0wloNiYxJU/ESlj2AgeKfpaQZYjVBxL yUPkdmTv6DJjasDJMf8sCgmajTprf6TU4rU/wNnBITuDnXG5g1Ee02MitK4VUHdW1lUK9n 2j/InZOIXpKgKBHne3mAAtcsZXPxzIqkMrkQS22HTx4tovM8GKffqVyLqMSe6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729215764; a=rsa-sha256; cv=none; b=Qp13CoYJ/7jwipWweESX6ffpb18Ivc8AiWPL/iWpFqylL3vcgqVxMyqS9YjCTVxObJnPlj V17bx4M702k2icD6rb7/5DcbSVPzelO7MNNsy3cxbIrQAgTV3z5iI/pVzImGNsY5vWVwi2 FRY0m18MEI/BxRdV+0TdN0t5IBEYM5SKzINMey7MUJ/fkeAIkgQLXByw/sWPweClMyZdTg j5uMPaMsIijMy0XT3KPfRWeKdYXZuHq29pjVH+nRdHdOxDxrYjJU7UklLp0bDcxqcoj1A+ OJ2/doevZUSCxVVs+3OsZrjks/vQnWMxdEGEYWpH5t529HMxFwSg0yWPv5rb8w== 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 4XV6sJ2fNdzDf8; Fri, 18 Oct 2024 01:42:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49I1giVA072788; Fri, 18 Oct 2024 01:42:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49I1giGi072785; Fri, 18 Oct 2024 01:42:44 GMT (envelope-from git) Date: Fri, 18 Oct 2024 01:42:44 GMT Message-Id: <202410180142.49I1giGi072785@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: a527aa7a7f62 - stable/13 - e1000: Re-add AIM List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a527aa7a7f6261fb9522ab0bd0bac330df4e0ae9 Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=a527aa7a7f6261fb9522ab0bd0bac330df4e0ae9 commit a527aa7a7f6261fb9522ab0bd0bac330df4e0ae9 Author: Kevin Bowling AuthorDate: 2024-09-22 09:26:05 +0000 Commit: Kevin Bowling CommitDate: 2024-10-18 01:42:32 +0000 e1000: Re-add AIM We originally left this out because iflib modulates interrupts and accomplishes some level of batching versus the custom queues in the older driver. Upon more detailed study of the Linux driver which has a newer implementation, it finally became clear to me this is actually a holdoff timer and not an interrupt limit as it is conventionally (statically) programmed and displayed as an interrupt rate. The data sheets also make this somewhat clear. Thus, AIM accomplishes two beneficial things for a wide variety of workloads[1]: 1. At low throughput/packet rates, it will significantly lower latency (by counter-intuitively "increasing" the interrupt rate.. better thought of as decreasing the holdoff timer because you will modulate down before coming anywhere near these interrupt rates). 2. At bulk data rates, it is tuned to achieve a lower interrupt rate (by increasing the holdoff timer) than the current static 8000/s. This decreases processing overhead and yields more headroom for other work such as packet filters or userland. For a single NIC this might be worth a few sys% on common CPUs, but may be meaningful when multiplied such as if_lagg, if_bridge and forwarding setups. The AIM algorithm was re-introduced from the older igb or out of tree driver, and then modernized with permission to use Intel code from other drivers. I have retroactively added it to lem(4) and em(4) where the same concept applies, albeit to a single ITR register. [1]: http://iommu.com/datasheets/ethernet/controllers-nics/intel/e1000/gbe-controllers-interrupt-moderation-appl-note.pdf Tested by: cc (https://wiki.freebsd.org/chengcui/testD46768) Relnotes: yes Sponsored by: Rubicon Communications, LLC ("Netgate") Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D46768 (cherry picked from commit 3e501ef896671cb190e8c40c6258b8f27d136f07) --- sys/dev/e1000/em_txrx.c | 10 ++ sys/dev/e1000/if_em.c | 269 ++++++++++++++++++++++++++++++++++++++++++++++- sys/dev/e1000/if_em.h | 28 +++-- sys/dev/e1000/igb_txrx.c | 4 + 4 files changed, 299 insertions(+), 12 deletions(-) diff --git a/sys/dev/e1000/em_txrx.c b/sys/dev/e1000/em_txrx.c index eec198df7466..6e8fff07cd82 100644 --- a/sys/dev/e1000/em_txrx.c +++ b/sys/dev/e1000/em_txrx.c @@ -455,6 +455,10 @@ em_isc_txd_encap(void *arg, if_pkt_info_t pi) "tx_buffers[%d]->eop = %d ipi_new_pidx=%d\n", first, pidx_last, i); pi->ipi_new_pidx = i; + /* Sent data accounting for AIM */ + txr->tx_bytes += pi->ipi_len; + ++txr->tx_packets; + return (0); } @@ -669,6 +673,7 @@ lem_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) len = le16toh(rxd->length); ri->iri_len += len; + rxr->rx_bytes += ri->iri_len; eop = (status & E1000_RXD_STAT_EOP) != 0; @@ -690,6 +695,8 @@ lem_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) i++; } while (!eop); + rxr->rx_packets++; + if (scctx->isc_capenable & IFCAP_RXCSUM) em_receive_checksum(status, errors, ri); @@ -732,6 +739,7 @@ em_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) len = le16toh(rxd->wb.upper.length); ri->iri_len += len; + rxr->rx_bytes += ri->iri_len; eop = (staterr & E1000_RXD_STAT_EOP) != 0; @@ -752,6 +760,8 @@ em_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) i++; } while (!eop); + rxr->rx_packets++; + if (scctx->isc_capenable & IFCAP_RXCSUM) em_receive_checksum(staterr, staterr >> 24, ri); diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 41d3ba093bab..e000343eb4b4 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -1,8 +1,9 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * + * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * All rights reserved. + * Copyright (c) 2024 Kevin Bowling * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -329,10 +330,12 @@ static int em_sysctl_debug_info(SYSCTL_HANDLER_ARGS); static int em_get_rs(SYSCTL_HANDLER_ARGS); static void em_print_debug_info(struct e1000_softc *); static int em_is_valid_ether_addr(u8 *); +static void em_newitr(struct e1000_softc *, struct em_rx_queue *, + struct tx_ring *, struct rx_ring *); static bool em_automask_tso(if_ctx_t); static int em_sysctl_int_delay(SYSCTL_HANDLER_ARGS); static void em_add_int_delay_sysctl(struct e1000_softc *, const char *, - const char *, struct em_int_delay_info *, int, int); + const char *, struct em_int_delay_info *, int, int); /* Management and WOL Support */ static void em_init_manageability(struct e1000_softc *); static void em_release_manageability(struct e1000_softc *); @@ -547,10 +550,19 @@ static int eee_setting = 1; SYSCTL_INT(_hw_em, OID_AUTO, eee_setting, CTLFLAG_RDTUN, &eee_setting, 0, "Enable Energy Efficient Ethernet"); +/* + * AIM: Adaptive Interrupt Moderation + * which means that the interrupt rate is varied over time based on the + * traffic for that interrupt vector + */ +static int em_enable_aim = 1; +SYSCTL_INT(_hw_em, OID_AUTO, enable_aim, CTLFLAG_RWTUN, &em_enable_aim, + 0, "Enable adaptive interrupt moderation (1=normal, 2=lowlatency)"); + /* ** Tuneable Interrupt rate */ -static int em_max_interrupt_rate = EM_INTS_PER_SEC; +static int em_max_interrupt_rate = EM_INTS_DEFAULT; SYSCTL_INT(_hw_em, OID_AUTO, max_interrupt_rate, CTLFLAG_RDTUN, &em_max_interrupt_rate, 0, "Maximum interrupts per second"); @@ -834,6 +846,11 @@ em_if_attach_pre(if_ctx_t ctx) CTLTYPE_INT | CTLFLAG_RW, sc, 0, em_sysctl_nvm_info, "I", "NVM Information"); + sc->enable_aim = em_enable_aim; + SYSCTL_ADD_INT(ctx_list, child, OID_AUTO, "enable_aim", + CTLFLAG_RW, &sc->enable_aim, 0, + "Interrupt Moderation (1=normal, 2=lowlatency)"); + SYSCTL_ADD_PROC(ctx_list, child, OID_AUTO, "fw_version", CTLTYPE_STRING | CTLFLAG_RD, sc, 0, em_sysctl_print_fw_version, "A", @@ -1439,6 +1456,159 @@ em_if_init(if_ctx_t ctx) } } +enum itr_latency_target { + itr_latency_disabled = 0, + itr_latency_lowest = 1, + itr_latency_low = 2, + itr_latency_bulk = 3 +}; +/********************************************************************* + * + * Helper to calculate next (E)ITR value for AIM + * + *********************************************************************/ +static void +em_newitr(struct e1000_softc *sc, struct em_rx_queue *que, + struct tx_ring *txr, struct rx_ring *rxr) +{ + struct e1000_hw *hw = &sc->hw; + u32 newitr; + u32 bytes; + u32 bytes_packets; + u32 packets; + u8 nextlatency; + + /* Idle, do nothing */ + if ((txr->tx_bytes == 0) && (rxr->rx_bytes == 0)) + return; + + newitr = 0; + + if (sc->enable_aim) { + nextlatency = rxr->rx_nextlatency; + + /* Use half default (4K) ITR if sub-gig */ + if (sc->link_speed != 1000) { + newitr = EM_INTS_4K; + goto em_set_next_itr; + } + /* Want at least enough packet buffer for two frames to AIM */ + if (sc->shared->isc_max_frame_size * 2 > (sc->pba << 10)) { + newitr = em_max_interrupt_rate; + sc->enable_aim = 0; + goto em_set_next_itr; + } + + /* Get the largest values from the associated tx and rx ring */ + if (txr->tx_bytes && txr->tx_packets) { + bytes = txr->tx_bytes; + bytes_packets = txr->tx_bytes/txr->tx_packets; + packets = txr->tx_packets; + } + if (rxr->rx_bytes && rxr->rx_packets) { + bytes = max(bytes, rxr->rx_bytes); + bytes_packets = max(bytes_packets, rxr->rx_bytes/rxr->rx_packets); + packets = max(packets, rxr->rx_packets); + } + + /* Latency state machine */ + switch (nextlatency) { + case itr_latency_disabled: /* Bootstrapping */ + nextlatency = itr_latency_low; + break; + case itr_latency_lowest: /* 70k ints/s */ + /* TSO and jumbo frames */ + if (bytes_packets > 8000) + nextlatency = itr_latency_bulk; + else if ((packets < 5) && (bytes > 512)) + nextlatency = itr_latency_low; + break; + case itr_latency_low: /* 20k ints/s */ + if (bytes > 10000) { + /* Handle TSO */ + if (bytes_packets > 8000) + nextlatency = itr_latency_bulk; + else if ((packets < 10) || (bytes_packets > 1200)) + nextlatency = itr_latency_bulk; + else if (packets > 35) + nextlatency = itr_latency_lowest; + } else if (bytes_packets > 2000) { + nextlatency = itr_latency_bulk; + } else if (packets < 3 && bytes < 512) { + nextlatency = itr_latency_lowest; + } + break; + case itr_latency_bulk: /* 4k ints/s */ + if (bytes > 25000) { + if (packets > 35) + nextlatency = itr_latency_low; + } else if (bytes < 1500) + nextlatency = itr_latency_low; + break; + default: + nextlatency = itr_latency_low; + device_printf(sc->dev, "Unexpected newitr transition %d\n", + nextlatency); + break; + } + + /* Trim itr_latency_lowest for default AIM setting */ + if (sc->enable_aim == 1 && nextlatency == itr_latency_lowest) + nextlatency = itr_latency_low; + + /* Request new latency */ + rxr->rx_nextlatency = nextlatency; + } else { + /* We may have toggled to AIM disabled */ + nextlatency = itr_latency_disabled; + rxr->rx_nextlatency = nextlatency; + } + + /* ITR state machine */ + switch(nextlatency) { + case itr_latency_lowest: + newitr = EM_INTS_70K; + break; + case itr_latency_low: + newitr = EM_INTS_20K; + break; + case itr_latency_bulk: + newitr = EM_INTS_4K; + break; + case itr_latency_disabled: + default: + newitr = em_max_interrupt_rate; + break; + } + +em_set_next_itr: + if (hw->mac.type >= igb_mac_min) { + newitr = IGB_INTS_TO_EITR(newitr); + + if (hw->mac.type == e1000_82575) + newitr |= newitr << 16; + else + newitr |= E1000_EITR_CNT_IGNR; + + if (newitr != que->itr_setting) { + que->itr_setting = newitr; + E1000_WRITE_REG(hw, E1000_EITR(que->msix), que->itr_setting); + } + } else { + newitr = EM_INTS_TO_ITR(newitr); + + if (newitr != que->itr_setting) { + que->itr_setting = newitr; + if (hw->mac.type == e1000_82574 && que->msix) { + E1000_WRITE_REG(hw, + E1000_EITR_82574(que->msix), que->itr_setting); + } else { + E1000_WRITE_REG(hw, E1000_ITR, que->itr_setting); + } + } + } +} + /********************************************************************* * * Fast Legacy/MSI Combined Interrupt Service routine @@ -1448,10 +1618,14 @@ int em_intr(void *arg) { struct e1000_softc *sc = arg; + struct e1000_hw *hw = &sc->hw; + struct em_rx_queue *que = &sc->rx_queues[0]; + struct tx_ring *txr = &sc->tx_queues[0].txr; + struct rx_ring *rxr = &que->rxr; if_ctx_t ctx = sc->ctx; u32 reg_icr; - reg_icr = E1000_READ_REG(&sc->hw, E1000_ICR); + reg_icr = E1000_READ_REG(hw, E1000_ICR); /* Hot eject? */ if (reg_icr == 0xffffffff) @@ -1465,7 +1639,7 @@ em_intr(void *arg) * Starting with the 82571 chip, bit 31 should be used to * determine whether the interrupt belongs to us. */ - if (sc->hw.mac.type >= e1000_82571 && + if (hw->mac.type >= e1000_82571 && (reg_icr & E1000_ICR_INT_ASSERTED) == 0) return FILTER_STRAY; @@ -1484,6 +1658,15 @@ em_intr(void *arg) if (reg_icr & E1000_ICR_RXO) sc->rx_overruns++; + if (hw->mac.type >= e1000_82540) + em_newitr(sc, que, txr, rxr); + + /* Reset state */ + txr->tx_bytes = 0; + txr->tx_packets = 0; + rxr->rx_bytes = 0; + rxr->rx_packets = 0; + return (FILTER_SCHEDULE_THREAD); } @@ -1536,9 +1719,20 @@ static int em_msix_que(void *arg) { struct em_rx_queue *que = arg; + struct e1000_softc *sc = que->sc; + struct tx_ring *txr = &sc->tx_queues[que->msix].txr; + struct rx_ring *rxr = &que->rxr; ++que->irqs; + em_newitr(sc, que, txr, rxr); + + /* Reset state */ + txr->tx_bytes = 0; + txr->tx_packets = 0; + rxr->rx_bytes = 0; + rxr->rx_packets = 0; + return (FILTER_SCHEDULE_THREAD); } @@ -2884,6 +3078,9 @@ em_reset(if_ctx_t ctx) if (hw->mac.type >= igb_mac_min) igb_init_dmac(sc, pba); + /* Save the final PBA off if it needs to be used elsewhere i.e. AIM */ + sc->pba = pba; + E1000_WRITE_REG(hw, E1000_VET, ETHERTYPE_VLAN); e1000_get_phy_info(hw); e1000_check_for_link(hw); @@ -3743,6 +3940,7 @@ em_if_intr_enable(if_ctx_t ctx) E1000_WRITE_REG(hw, EM_EIAC, sc->ims); ims_mask |= sc->ims; } + E1000_WRITE_REG(hw, E1000_IMS, ims_mask); E1000_WRITE_FLUSH(hw); } @@ -4412,6 +4610,57 @@ em_sysctl_reg_handler(SYSCTL_HANDLER_ARGS) return (sysctl_handle_int(oidp, &val, 0, req)); } +/* Per queue holdoff interrupt rate handler */ +static int +em_sysctl_interrupt_rate_handler(SYSCTL_HANDLER_ARGS) +{ + struct em_rx_queue *rque; + struct em_tx_queue *tque; + struct e1000_hw *hw; + int error; + u32 reg, usec, rate; + + bool tx = oidp->oid_arg2; + + if (tx) { + tque = oidp->oid_arg1; + hw = &tque->sc->hw; + if (hw->mac.type >= igb_mac_min) + reg = E1000_READ_REG(hw, E1000_EITR(tque->me)); + else if (hw->mac.type == e1000_82574 && tque->msix) + reg = E1000_READ_REG(hw, E1000_EITR_82574(tque->me)); + else + reg = E1000_READ_REG(hw, E1000_ITR); + } else { + rque = oidp->oid_arg1; + hw = &rque->sc->hw; + if (hw->mac.type >= igb_mac_min) + reg = E1000_READ_REG(hw, E1000_EITR(rque->msix)); + else if (hw->mac.type == e1000_82574 && rque->msix) + reg = E1000_READ_REG(hw, E1000_EITR_82574(rque->msix)); + else + reg = E1000_READ_REG(hw, E1000_ITR); + } + + if (hw->mac.type < igb_mac_min) { + if (reg > 0) + rate = EM_INTS_TO_ITR(reg); + else + rate = 0; + } else { + usec = (reg & IGB_QVECTOR_MASK); + if (usec > 0) + rate = IGB_INTS_TO_EITR(usec); + else + rate = 0; + } + + error = sysctl_handle_int(oidp, &rate, 0, req); + if (error || !req->newptr) + return error; + return 0; +} + /* * Add sysctl variables, one per statistic, to the system. */ @@ -4468,6 +4717,11 @@ em_add_hw_stats(struct e1000_softc *sc) CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "TX Queue Name"); queue_list = SYSCTL_CHILDREN(queue_node); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "interrupt_rate", + CTLTYPE_UINT | CTLFLAG_RD, tx_que, + true, em_sysctl_interrupt_rate_handler, + "IU", "Interrupt Rate"); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_head", CTLTYPE_UINT | CTLFLAG_RD, sc, E1000_TDH(txr->me), em_sysctl_reg_handler, "IU", @@ -4488,6 +4742,11 @@ em_add_hw_stats(struct e1000_softc *sc) CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "RX Queue Name"); queue_list = SYSCTL_CHILDREN(queue_node); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "interrupt_rate", + CTLTYPE_UINT | CTLFLAG_RD, rx_que, + false, em_sysctl_interrupt_rate_handler, + "IU", "Interrupt Rate"); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_head", CTLTYPE_UINT | CTLFLAG_RD, sc, E1000_RDH(rxr->me), em_sysctl_reg_handler, "IU", diff --git a/sys/dev/e1000/if_em.h b/sys/dev/e1000/if_em.h index 7219dc57c333..52bfed0f9a42 100644 --- a/sys/dev/e1000/if_em.h +++ b/sys/dev/e1000/if_em.h @@ -1,8 +1,9 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * + * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * All rights reserved. + * Copyright (c) 2024 Kevin Bowling * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -243,16 +244,19 @@ /* Support AutoMediaDetect for Marvell M88 PHY in i354 */ #define IGB_MEDIA_RESET (1 << 0) -/* Define the starting Interrupt rate per Queue */ -#define EM_INTS_PER_SEC 8000 +/* Define the interrupt rates and ITR helpers */ +#define EM_INTS_4K 4000 +#define EM_INTS_20K 20000 +#define EM_INTS_70K 70000 +#define EM_INTS_DEFAULT 8000 #define EM_INTS_MULTIPLIER 256 #define EM_ITR_DIVIDEND 1000000000 #define EM_INTS_TO_ITR(i) (EM_ITR_DIVIDEND/(i * EM_INTS_MULTIPLIER)) -#define IGB_ITR_DIVIDEND 1000000 -#define IGB_ITR_SHIFT 2 +#define IGB_EITR_DIVIDEND 1000000 +#define IGB_EITR_SHIFT 2 #define IGB_QVECTOR_MASK 0x7FFC -#define IGB_INTS_TO_EITR(i) (((IGB_ITR_DIVIDEND/i) & IGB_QVECTOR_MASK) << \ - IGB_ITR_SHIFT) +#define IGB_INTS_TO_EITR(i) (((IGB_EITR_DIVIDEND/i) & IGB_QVECTOR_MASK) << \ + IGB_EITR_SHIFT) #define IGB_LINK_ITR 2000 #define I210_LINK_DELAY 1000 @@ -390,7 +394,11 @@ struct tx_ring { /* Interrupt resources */ void *tag; struct resource *res; + + /* Soft stats */ unsigned long tx_irq; + unsigned long tx_packets; + unsigned long tx_bytes; /* Saved csum offloading context information */ int csum_flags; @@ -426,6 +434,9 @@ struct rx_ring { unsigned long rx_discarded; unsigned long rx_packets; unsigned long rx_bytes; + + /* Next requested ITR latency */ + u8 rx_nextlatency; }; struct em_tx_queue { @@ -441,6 +452,7 @@ struct em_rx_queue { u32 me; u32 msix; u32 eims; + u32 itr_setting; struct rx_ring rxr; u64 irqs; struct if_irq que_irq; @@ -489,6 +501,7 @@ struct e1000_softc { u32 rx_mbuf_sz; + int enable_aim; /* Management and WOL features */ u32 wol; bool has_manage; @@ -512,6 +525,7 @@ struct e1000_softc { u16 link_duplex; u32 smartspeed; u32 dmac; + u32 pba; int link_mask; int tso_automasked; diff --git a/sys/dev/e1000/igb_txrx.c b/sys/dev/e1000/igb_txrx.c index 2819150acba6..82cbb37ce4cd 100644 --- a/sys/dev/e1000/igb_txrx.c +++ b/sys/dev/e1000/igb_txrx.c @@ -292,6 +292,10 @@ igb_isc_txd_encap(void *arg, if_pkt_info_t pi) txd->read.cmd_type_len |= htole32(E1000_TXD_CMD_EOP | txd_flags); pi->ipi_new_pidx = i; + /* Sent data accounting for AIM */ + txr->tx_bytes += pi->ipi_len; + ++txr->tx_packets; + return (0); } From nobody Fri Oct 18 06:57:08 2024 X-Original-To: dev-commits-src-branches@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 4XVFr44hhhz5Ypwt; Fri, 18 Oct 2024 06:57:08 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XVFr441lbz4cr2; Fri, 18 Oct 2024 06:57:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729234628; 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=ts9f3MpKtBfzSDRlpgq1XrUR4eR4Xoa4yjmeGNY584A=; b=VUcwxQHwD3dixTKQ0uLz9sh/FBabhBZZiLc/EQXRA2i8FeJxEOYpsXDMpCwOb8vC9k9Hc+ G/FdOMl78j5qI6svpO+RMiiqI0L+C523eoA2USXjtRcfvsaCDfItifYkUsqQelU3kIH5j+ 33VIIawhvfEdrwbrynBIHVPZ9yFcFf1ssuWpiH/2NF2pZD21Ha1ZPZTeFEvq7zOaJT2fQm oQc+SQ9+WBGicg68GoaQzzYseJVZrwPlf392URKIT1xIdEyl4SQusiD+y5M4o5PTJ+7axN lZy1jUBFZOxXN4LgbPOgne4Szzt8fQQUyQU/Evq7F8ALT+Fl7GKCLZHn8T1Ciw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729234628; 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=ts9f3MpKtBfzSDRlpgq1XrUR4eR4Xoa4yjmeGNY584A=; b=X/XNGRHVR6xhA/uGmlBRJr/MrwaZj/UtA06I2OJ0Wkyn0l6/xlhoS8lftLjS0GMlcsUEfo gG4VFwDQMTI1rXcaQO6hq/tY98zLdvibVt9OQ0MM6tI/unn7KGpWWwF/gIsSwA/yghQySF P9eANrRQz+9CXBf9vtahMb82K7a+UPWdjv2bdNSsGdJR2YEhIiEstC/UTVqmCoIccxIVO3 alAzfQZ9byGpsivY55USPBF9A7GTFXy286khXqQlmVm0pBlwiOoc+iSZJp6px+IYtjPCVd t9EhdXOmKsSBnsanbyZZDzjfrqM9IwBztvvN+zgONJmAszwINDu5aNkpoWa0Og== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729234628; a=rsa-sha256; cv=none; b=wGKO5hz4Y4U8sjPKXkqsaJuA1EHA+MqS2TIdHRMEqkYHhAiZLvXvqjfD5zN6SNOIfyEgXA fkdJ+f6mBnH8Q7+HyH7AvRu3hRAEXUgcz1U/geYdz2O4Ed9+K9HkyICSmE36kf36umhrBb j3T/0ZgDCea3r6tRaKeGP425S5ExNZdejnZZZZmRN528HWFTosTKSJg3cwfQH+kfrlvL5c asKfZ17KZta1mAO3rFGk0uKsR/g8SBZnBls3KnmAxnh+Its9zymOQvQPKZfUAO5b/PDHGX XVjo9llbSTpEpD356mH1brTErB0JvuEbvW/oTDKcB33keA3JKOu4fz/y56LB6w== 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 4XVFr43cs2zNpJ; Fri, 18 Oct 2024 06:57:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49I6v8Y4099890; Fri, 18 Oct 2024 06:57:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49I6v8Du099887; Fri, 18 Oct 2024 06:57:08 GMT (envelope-from git) Date: Fri, 18 Oct 2024 06:57:08 GMT Message-Id: <202410180657.49I6v8Du099887@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Gordon Bergling Subject: git: 6b151ad1c83a - stable/14 - timeout(1): Update STANDARDS section List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6b151ad1c83ae66156bd02badd6ee65be1728cfc Auto-Submitted: auto-generated The branch stable/14 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=6b151ad1c83ae66156bd02badd6ee65be1728cfc commit 6b151ad1c83ae66156bd02badd6ee65be1728cfc Author: Gordon Bergling AuthorDate: 2024-09-24 16:42:18 +0000 Commit: Gordon Bergling CommitDate: 2024-10-18 06:56:48 +0000 timeout(1): Update STANDARDS section Update the STANDARDS section for timeout(1) to POSIX 1003.1-2024. Update mandoc to be able to render the new POSIX macro. Reviewed by: bapt, bcr Approved by: bapt Obtained from: OpenBSD Differential Revision: https://reviews.freebsd.org/D45691 (cherry picked from commit 044f94adff55f13130f03c0c170fa879c8febb5b) --- bin/timeout/timeout.1 | 8 +++++++- contrib/mandoc/st.c | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/timeout/timeout.1 b/bin/timeout/timeout.1 index 9e624e809376..10e5fd70c393 100644 --- a/bin/timeout/timeout.1 +++ b/bin/timeout/timeout.1 @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd June 26, 2023 +.Dd June 17, 2024 .Dt TIMEOUT 1 .Os .Sh NAME @@ -195,6 +195,12 @@ $ timeout -k 5s 1m fetch \\ .Xr nohup 1 , .Xr signal 3 , .Xr daemon 8 +.Sh STANDARDS +The +.Nm +utility is compliant with the +.St -p1003.1-2024 +specification. .Sh HISTORY The .Nm diff --git a/contrib/mandoc/st.c b/contrib/mandoc/st.c index ec754cc036f2..266df0081a95 100644 --- a/contrib/mandoc/st.c +++ b/contrib/mandoc/st.c @@ -37,6 +37,7 @@ LINE("-p1003.1-96", "ISO/IEC 9945-1:1996 (\\(lqPOSIX.1\\(rq)") LINE("-p1003.1-2001", "IEEE Std 1003.1-2001 (\\(lqPOSIX.1\\(rq)") LINE("-p1003.1-2004", "IEEE Std 1003.1-2004 (\\(lqPOSIX.1\\(rq)") LINE("-p1003.1-2008", "IEEE Std 1003.1-2008 (\\(lqPOSIX.1\\(rq)") +LINE("-p1003.1-2024", "IEEE Std 1003.1-2024 (\\(lqPOSIX.1\\(rq)") LINE("-p1003.1-2013", "IEEE Std 1003.1-2008, 2013 Edition (\\(LqPOSIX.1\\(Rq)") LINE("-p1003.1-2016", "IEEE Std 1003.1-2008, 2016 Edition (\\(LqPOSIX.1\\(Rq)") LINE("-p1003.1", "IEEE Std 1003.1 (\\(lqPOSIX.1\\(rq)") From nobody Fri Oct 18 07:54:21 2024 X-Original-To: dev-commits-src-branches@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 4XVH655jJ6z5Yt2b; Fri, 18 Oct 2024 07:54:21 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XVH654QTQz4hJB; Fri, 18 Oct 2024 07:54:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729238061; 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=NGG6LXotAv6fAA6FIRpCTuYc6o+HszFpBIl+S/Irmnc=; b=YC4HA0cybq9MOYV0bGVoB9S7Oee6CwyfeG9dyVLKfAbVkOFY29ID9etOW7LvC/u2PLZ5e7 BCUZbcfQUTBHskVfdUkTGrlDvYA9aE0N5S5+CmF80Uf7v7BvUpLxds+4GYyj5kC6vhnkgu dvJ5TuIulvZ/d4ba4AoMBEl+ATUmP7HfdSMb4RhnuQMiN6SwK6a+f2qESrAHxzr/9wJjyh OqMf4yyQUOnfd2mKu/nPTN9e/fI6GBUzr0OJzLYMwn4KR8FOlDYY62egAgVHl2ulCsm787 L2B7ZZIKIaXP1F/J2lf/j6jYykO96hsaJ6pHdowH3SduYGGSLHK4TIzIzYhj9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729238061; 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=NGG6LXotAv6fAA6FIRpCTuYc6o+HszFpBIl+S/Irmnc=; b=FGYkl8hgKNdDZQi5OicdLINld5dZxcj4Ti5GecVTEMWpbwpB7328NZW2/x+o0cU3HaKfGC 70jZJ8zoqG92t4gcUnCSCrwajK1x8gzW9+DTbGw5mZSS1VxxOp/gBkLUWgwz5fHxhrk558 CBzedKITWsxdGPjwm2JNwHEg0qfSVArwZ0ZjSVXXSEN+qVa3smsiNaUwY7NdgHIjUM+/W+ +HjqoZO517aYpG+0hMNyqILIdDCJ4YW0cDb9URNipzhtywbk5uXb1MZ2Aa/yXEMWr+oWZ2 2mUsxLOL9xtB0/zq8DJ9NaE8dW/UajrQxJn/iRDvzO1sW/EUjSgNi2+zYZpfIg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729238061; a=rsa-sha256; cv=none; b=gPf/dlikEDbYmfnd8/5CcAXyE2mZ9WuYpIJXQ7aAsvAjSt537C4KNbHbwivQXF923/3yOp mNYj9+ON8aPte3ISQwkO6xEyFdsF6w+/ykVnVtHijs+5ETN0FojEFtoijBwpyT3ARkcTzC a6Vpgv9AXcczTDLZQ/GCAu8PudUWGihzY9XnwOF3VqLpWXBg49hRW6CA4OWkni2+wG6Q7m B5vKVyTwNpXDu6FzDU6SSWpqClBTy1KH6xU6+rilRjqzN3bK/kDWbaNwE4w11CB3KZr8Q3 u8uSp4hL7Q5kO5BDOLsjctQn96aOhtSmjqGg5kjnu9FGij9lBv6NXnfP8rOOZw== 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 4XVH6541MKzQHW; Fri, 18 Oct 2024 07:54:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49I7sLRn001546; Fri, 18 Oct 2024 07:54:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49I7sL9X001543; Fri, 18 Oct 2024 07:54:21 GMT (envelope-from git) Date: Fri, 18 Oct 2024 07:54:21 GMT Message-Id: <202410180754.49I7sL9X001543@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Richard Scheffenegger Subject: git: 6b2977c5978b - stable/14 - tcp: fix duplicate retransmissions when RTO happens during SACK loss recovery List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rscheff X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6b2977c5978b58718d9cddc0a8c31e1bd9aa0361 Auto-Submitted: auto-generated The branch stable/14 has been updated by rscheff: URL: https://cgit.FreeBSD.org/src/commit/?id=6b2977c5978b58718d9cddc0a8c31e1bd9aa0361 commit 6b2977c5978b58718d9cddc0a8c31e1bd9aa0361 Author: Richard Scheffenegger AuthorDate: 2024-10-10 10:50:22 +0000 Commit: Richard Scheffenegger CommitDate: 2024-10-18 07:51:38 +0000 tcp: fix duplicate retransmissions when RTO happens during SACK loss recovery When snd_nxt doesn't track snd_max, partial SACK ACKs may elicit unexpected duplicate retransmissions. This is usually masked by LRO not necessarily ACKing every individual segment, and prior to RFC6675 SACK loss recovery, harder to trigger even when an RTO happens while SACK loss recovery is ongoing. Address this by improving the logic when to start a SACK loss recovery and how to deal with a RTO, as well as improvements to the adjusted congestion window during transmission selection. Reviewed By: tuexen, cc, #transport Sponsored by: NetApp, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D43355 (cherry picked from commit 440f4ba18e3ab7be912858bbcb96a419fcf14809) --- sys/netinet/tcp_input.c | 16 ++++++++++------ sys/netinet/tcp_output.c | 27 +++++++++++++++++---------- sys/netinet/tcp_sack.c | 42 +++++++++++++++++++++++++++--------------- sys/netinet/tcp_var.h | 2 +- 4 files changed, 55 insertions(+), 32 deletions(-) diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 500d208b7756..83f85a50ed40 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -2723,9 +2723,7 @@ enter_recovery: tp->snd_nxt - tp->snd_una); } if (tcp_is_sack_recovery(tp, &to)) { - TCPSTAT_INC( - tcps_sack_recovery_episode); - tp->snd_recover = tp->snd_nxt; + TCPSTAT_INC(tcps_sack_recovery_episode); tp->snd_cwnd = maxseg; (void) tcp_output(tp); if (SEQ_GT(th->th_ack, tp->snd_una)) @@ -2768,8 +2766,12 @@ enter_recovery: __func__)); if (tp->t_dupacks == 1) tp->snd_limited = 0; - tp->snd_cwnd = - (tp->snd_nxt - tp->snd_una) + + if ((tp->snd_nxt == tp->snd_max) && + (tp->t_rxtshift == 0)) + tp->snd_cwnd = + SEQ_SUB(tp->snd_nxt, + tp->snd_una); + tp->snd_cwnd += (tp->t_dupacks - tp->snd_limited) * maxseg; /* @@ -2815,7 +2817,9 @@ enter_recovery: * counted as dupacks here. */ if (tcp_is_sack_recovery(tp, &to) && - (sack_changed != SACK_NOCHANGE)) { + (((tp->t_rxtshift == 0) && (sack_changed != SACK_NOCHANGE)) || + ((tp->t_rxtshift > 0) && (sack_changed == SACK_NEWLOSS))) && + (tp->snd_nxt == tp->snd_max)) { tp->t_dupacks++; /* limit overhead by setting maxseg last */ if (!IN_FASTRECOVERY(tp->t_flags) && diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c index 9269ba443bd9..d1a81123ebad 100644 --- a/sys/netinet/tcp_output.c +++ b/sys/netinet/tcp_output.c @@ -266,6 +266,7 @@ tcp_default_output(struct tcpcb *tp) } } again: + sendwin = 0; /* * If we've recently taken a timeout, snd_max will be greater than * snd_nxt. There may be SACK information that allows us to avoid @@ -273,12 +274,12 @@ again: */ if ((tp->t_flags & TF_SACK_PERMIT) && SEQ_LT(tp->snd_nxt, tp->snd_max)) - tcp_sack_adjust(tp); + sendwin = tcp_sack_adjust(tp); sendalot = 0; tso = 0; mtu = 0; off = tp->snd_nxt - tp->snd_una; - sendwin = min(tp->snd_wnd, tp->snd_cwnd); + sendwin = min(tp->snd_wnd, tp->snd_cwnd + sendwin); flags = tcp_outflags[tp->t_state]; /* @@ -295,7 +296,8 @@ again: sack_bytes_rxmt = 0; len = 0; p = NULL; - if ((tp->t_flags & TF_SACK_PERMIT) && IN_FASTRECOVERY(tp->t_flags) && + if ((tp->t_flags & TF_SACK_PERMIT) && + (IN_FASTRECOVERY(tp->t_flags) || SEQ_LT(tp->snd_nxt, tp->snd_max)) && (p = tcp_sack_output(tp, &sack_bytes_rxmt))) { uint32_t cwin; @@ -397,10 +399,10 @@ after_sack_rexmit: * in which case len is already set. */ if (sack_rxmit == 0) { - if (sack_bytes_rxmt == 0) + if ((sack_bytes_rxmt == 0) || SEQ_LT(tp->snd_nxt, tp->snd_max)) { len = ((int32_t)min(sbavail(&so->so_snd), sendwin) - off); - else { + } else { int32_t cwin; /* @@ -1635,11 +1637,16 @@ timer: tp->snd_max = tp->snd_nxt + xlen; } if ((error == 0) && - (TCPS_HAVEESTABLISHED(tp->t_state) && - (tp->t_flags & TF_SACK_PERMIT) && - tp->rcv_numsacks > 0)) { - /* Clean up any DSACK's sent */ - tcp_clean_dsack_blocks(tp); + (tp->rcv_numsacks > 0) && + TCPS_HAVEESTABLISHED(tp->t_state) && + (tp->t_flags & TF_SACK_PERMIT)) { + /* Clean up any DSACK's sent */ + tcp_clean_dsack_blocks(tp); + } + if ((error == 0) && + sack_rxmit && + SEQ_LT(tp->snd_nxt, SEQ_MIN(p->rxmit, p->end))) { + tp->snd_nxt = SEQ_MIN(p->rxmit, p->end); } if (error) { /* diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c index 05aaa0b4a662..f33c7030f21e 100644 --- a/sys/netinet/tcp_sack.c +++ b/sys/netinet/tcp_sack.c @@ -897,8 +897,8 @@ tcp_sack_partialack(struct tcpcb *tp, struct tcphdr *th) if (tp->t_flags & TF_SENTFIN) highdata--; highdata = SEQ_MIN(highdata, tp->snd_recover); - if (th->th_ack != highdata) { - tp->snd_fack = th->th_ack; + if (SEQ_LT(th->th_ack, highdata)) { + tp->snd_fack = SEQ_MAX(th->th_ack, tp->snd_fack); (void)tcp_sackhole_insert(tp, SEQ_MAX(th->th_ack, highdata - maxseg), highdata, NULL); } @@ -991,35 +991,47 @@ tcp_sack_output(struct tcpcb *tp, int *sack_bytes_rexmt) * After a timeout, the SACK list may be rebuilt. This SACK information * should be used to avoid retransmitting SACKed data. This function * traverses the SACK list to see if snd_nxt should be moved forward. + * In addition, cwnd will be inflated by the sacked bytes traversed when + * moving snd_nxt forward. This prevents a traffic burst after the final + * full ACK, and also keeps ACKs coming back. */ -void +int tcp_sack_adjust(struct tcpcb *tp) { + int sacked = 0; struct sackhole *p, *cur = TAILQ_FIRST(&tp->snd_holes); INP_WLOCK_ASSERT(tptoinpcb(tp)); - if (cur == NULL) - return; /* No holes */ - if (SEQ_GEQ(tp->snd_nxt, tp->snd_fack)) - return; /* We're already beyond any SACKed blocks */ - /*- + if (cur == NULL) { + /* No holes */ + return (0); + } + if (SEQ_GEQ(tp->snd_nxt, tp->snd_fack)) { + /* We're already beyond any SACKed blocks */ + return (tp->sackhint.sacked_bytes); + } + /* * Two cases for which we want to advance snd_nxt: * i) snd_nxt lies between end of one hole and beginning of another * ii) snd_nxt lies between end of last hole and snd_fack */ while ((p = TAILQ_NEXT(cur, scblink)) != NULL) { - if (SEQ_LT(tp->snd_nxt, cur->end)) - return; - if (SEQ_GEQ(tp->snd_nxt, p->start)) + if (SEQ_LT(tp->snd_nxt, cur->end)) { + return (sacked); + } + sacked += p->start - cur->end; + if (SEQ_GEQ(tp->snd_nxt, p->start)) { cur = p; - else { + } else { tp->snd_nxt = p->start; - return; + return (sacked); } } - if (SEQ_LT(tp->snd_nxt, cur->end)) - return; + if (SEQ_LT(tp->snd_nxt, cur->end)) { + return (sacked); + } tp->snd_nxt = tp->snd_fack; + return (tp->sackhint.sacked_bytes); } /* diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h index 83ea1608abe1..b75210acad33 100644 --- a/sys/netinet/tcp_var.h +++ b/sys/netinet/tcp_var.h @@ -1516,7 +1516,7 @@ void tcp_update_dsack_list(struct tcpcb *, tcp_seq, tcp_seq); void tcp_update_sack_list(struct tcpcb *tp, tcp_seq rcv_laststart, tcp_seq rcv_lastend); void tcp_clean_dsack_blocks(struct tcpcb *tp); void tcp_clean_sackreport(struct tcpcb *tp); -void tcp_sack_adjust(struct tcpcb *tp); +int tcp_sack_adjust(struct tcpcb *tp); struct sackhole *tcp_sack_output(struct tcpcb *tp, int *sack_bytes_rexmt); void tcp_do_prr_ack(struct tcpcb *, struct tcphdr *, struct tcpopt *, sackstatus_t); void tcp_lost_retransmission(struct tcpcb *, struct tcphdr *); From nobody Sat Oct 19 12:56:27 2024 X-Original-To: dev-commits-src-branches@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 4XW1mC2GSwz5b4LD; Sat, 19 Oct 2024 12:56:27 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XW1mC1lb7z4NHZ; Sat, 19 Oct 2024 12:56:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729342587; 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=L26R4/JxDBPEStmnhrxAaseeip6OfnPPTGQBEw0ZhDo=; b=xyoYWHNPqWo9qCCPk/aYzjX5feWx3+M5WqD5VcqrFkCLyWbXKE1kqw/FB588j1PXKmPJUp ejjtg49suFnuD3rHhhIA8YuP269T9jYPAL4zfiXAots5Mpfr1dsO5Bb37bUez0McLrlPp4 N+jRadN8nOP03R5hc27rugn9Hizfh834BDb0bLMHEX2oDrsXWywY7b3QMRWAmaLNpb8rD/ jAPJiBWBZ2dGYuHj5MKh8ZIvpkohmGvXz2kyFvq2j1qklRFlwaOK9g3EComzSV4gnbNsNt ePmbqlFh0+A0Zsm7ujYhPOM0xO9jkHVWKqgTlJUKvpsrPZ1IA79wUFpU9pn9sA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729342587; 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=L26R4/JxDBPEStmnhrxAaseeip6OfnPPTGQBEw0ZhDo=; b=TevreBRr0mnNNbYI6kAqH/2IcXVIjZeiIeGL+PWDogrbLOWSs0e1EQ8y/wuCqXrH3jvKIm JgPtkC0qVPjBmMoWWlZRK7tDZ7gfLA1VViqoa+7Q9/OVoPYGougLRQ5l56c+OrDEd+Rmiw BFflSAM3soouLIXjNQrnYOpmsRvTeyavvtV9laVti09LGY3qY8B0BYw6nyE+CT234ywVJs CbOUljAApAEJpFe4KyqMj+BlYQyHX2Kvzyctj4Bh53y5h86sIdbyS+bw1XcdrUvuHFaudw zqcbcDNdYIeIJW4/qAax3wMgK+8XLcPZq2R77U0DPdknkTOXp0u44AAiIEdqmw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729342587; a=rsa-sha256; cv=none; b=n5oUvXv/jiFHiVzMMXALRGn3KUXAYL43uHlEX2GlbJ3UIN1t/ll4PvmhVUE+i0FNVRZhso w/lvEgkUCqYba74A+c/n5PWVtQqNniz1yPHMWFwTfjcnftrK2BWNi/+bMxw2QdfQHe4Etu hZnAJ0akHZfHIsn0zizySL2gtwUsRXsEwGy6PdjG4MiNu4IjXsr+/jkOgbYc+/+pOtXhnx XgF8+2KXEKcgnBlH5w1KOW80pD33bL3BfUBRie8ubYenk3D+sZoWaIqBCelWCV9272x0BG lA+NGYNvtOFFZr4oiRzrzf2WE6rUyGKXgg3XRcYBFk/4mKEllCGKgkFu3+iokw== 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 4XW1mC1LwhzJZF; Sat, 19 Oct 2024 12:56:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49JCuRY2064975; Sat, 19 Oct 2024 12:56:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49JCuRmk064972; Sat, 19 Oct 2024 12:56:27 GMT (envelope-from git) Date: Sat, 19 Oct 2024 12:56:27 GMT Message-Id: <202410191256.49JCuRmk064972@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 23b44ad101ca - stable/14 - ggate: Avoid dropping the GEOM topology lock in dumpconf List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 23b44ad101ca2381186aa565b6c04a978c02a35e Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=23b44ad101ca2381186aa565b6c04a978c02a35e commit 23b44ad101ca2381186aa565b6c04a978c02a35e Author: Mark Johnston AuthorDate: 2024-10-04 14:53:57 +0000 Commit: Mark Johnston CommitDate: 2024-10-18 12:27:13 +0000 ggate: Avoid dropping the GEOM topology lock in dumpconf In general it's not safe to drop the topology lock in these routines, as GEOM assumes that the mesh will be consistent during traversal. However, there's no reason we can't hold the topology lock across calls to g_gate_release(). (Note that g_gate_hold() can be called with the topology lock held.) PR: 238814 MFC after: 2 weeks (cherry picked from commit b37b2543a23b44c78f6d78823dcfcedba46570db) --- sys/geom/gate/g_gate.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/sys/geom/gate/g_gate.c b/sys/geom/gate/g_gate.c index 820f18ba220c..8d0e96fce124 100644 --- a/sys/geom/gate/g_gate.c +++ b/sys/geom/gate/g_gate.c @@ -330,7 +330,6 @@ static void g_gate_release(struct g_gate_softc *sc) { - g_topology_assert_not(); mtx_lock(&g_gate_units_lock); sc->sc_ref--; KASSERT(sc->sc_ref >= 0, ("Negative sc_ref for %s.", sc->sc_name)); @@ -454,9 +453,7 @@ g_gate_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, sc->sc_queue_size); sbuf_printf(sb, "%s%u\n", indent, sc->sc_ref); sbuf_printf(sb, "%s%d\n", indent, sc->sc_unit); - g_topology_unlock(); g_gate_release(sc); - g_topology_lock(); } static int From nobody Sat Oct 19 12:56:28 2024 X-Original-To: dev-commits-src-branches@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 4XW1mD3G10z5b4Hx; Sat, 19 Oct 2024 12:56:28 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XW1mD2gMgz4NL6; Sat, 19 Oct 2024 12:56:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729342588; 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=fOxu7z1d+vfxcS9Vmsp0QF/erQxH7qebQwBGhmWMzAE=; b=nih7KEfNguDJSYawoGfos0A9cT6kqtrpOqhhnGIrItedPec6Qtys4FilYX/ATzEUQQV8/I nAGkSTgy3sbVhf+u200G3V8JTIgo8571e1dLxnldWmbAOw4KxhnZdqkrdwv6ghE5r86KI+ w2Own9YwZJJeXl2myABJCBrTyKwOIS20CJw9aPvELF/St50kvDZf9Vz0xxXd6me/+hMoaY QpmRq+eIewd9qRv0tOK8DnmcljHb6rxJIlcU0M3cJNwvLJFd7sLyiPyzTxJH5YIBRN7Nqm TSHoTmHUQ3KPqAGOJ9Ya68xqCikXYswEg9nSLmCi9ERPZdcf6RUTVd1XQH6jmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729342588; 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=fOxu7z1d+vfxcS9Vmsp0QF/erQxH7qebQwBGhmWMzAE=; b=EiYFPSEGjBNLd6SVoRyQ4ew4Nbz8daO+PHU1vtD83H0UfMkzum1naFik/N0s4IDQUl3Inp YTR1rwlyXAv9S+St5HY77mvcbm7AwNTNsZ1ndiXjfo4Da8wS/kfA9nZ+Lo3f2LMIVjwD6g 1UAKpWqNqA/ZR8F2Zpxkw0hADzefb+ZvgH66nraUpi3x39w8ANiBshFN7ucevTE5mrkOus J+L0wdGaeXZ1H/2nWXgh5kbpWN0hRf2EdvI9Wspr0HaZrzBaJRc7l8NXluXCQJrlIF82ih ly+J8aUoRwgCWy0Q3XxkWoOHv6WmPlTt5StwODeLOq0BsoYo9F6j0xmQuf/6Lw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729342588; a=rsa-sha256; cv=none; b=riCmsMikdBZyiWuhvbavwBmsBN/kIqK4p8sTmJqabREBHpI7PmDuxgVbkTD5L7DUEdKp+p 2mlxKXjBU3GeN3cKiHbspPS4wGg2xx/ZKUJJxSma4AmYXcXqjQ0RHKp6j/c0gpxPA8sVdD DP4j+5BFiYwnm/4n0cPXiRPsLI5WCl8sDH9FGVx4VkeSIKLk/WoXF0OAnbcnWI9H9a142K yfuJq5a7/yoIuBoWaXR8ii0C6bq91Mprg42KjMd5ZLdMH+Ai40IOHNzF6PnbF11K99Ogb8 83juHTDPLtNtRiMmtDQUXWSMc8QIwo3ok8xquZ89TEjnRShn81m7/vkqDPz0LQ== 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 4XW1mD2HZ7zJcS; Sat, 19 Oct 2024 12:56:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49JCuSfL065018; Sat, 19 Oct 2024 12:56:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49JCuSK6065015; Sat, 19 Oct 2024 12:56:28 GMT (envelope-from git) Date: Sat, 19 Oct 2024 12:56:28 GMT Message-Id: <202410191256.49JCuSK6065015@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: d001b32a804e - stable/14 - cdefs: Add __nosanitizecoverage List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d001b32a804e1737f81c6f94d746c6e506ee746e Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d001b32a804e1737f81c6f94d746c6e506ee746e commit d001b32a804e1737f81c6f94d746c6e506ee746e Author: Mark Johnston AuthorDate: 2024-10-11 16:51:13 +0000 Commit: Mark Johnston CommitDate: 2024-10-18 12:27:37 +0000 cdefs: Add __nosanitizecoverage Obtained from: CheriBSD MFC after: 1 week (cherry picked from commit a78bacf3b0ec0526e38f299fe4e17557f0930303) --- sys/sys/cdefs.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h index a52864c5db9d..4fa4decd7652 100644 --- a/sys/sys/cdefs.h +++ b/sys/sys/cdefs.h @@ -880,9 +880,11 @@ #define __nosanitizeaddress __attribute__((no_sanitize("address"))) #define __nosanitizememory __attribute__((no_sanitize("memory"))) #endif +#define __nosanitizecoverage __attribute__((no_sanitize("coverage"))) #define __nosanitizethread __attribute__((no_sanitize("thread"))) #else #define __nosanitizeaddress +#define __nosanitizecoverage #define __nosanitizememory #define __nosanitizethread #endif From nobody Sat Oct 19 12:56:29 2024 X-Original-To: dev-commits-src-branches@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 4XW1mF5gd1z5b4PD; Sat, 19 Oct 2024 12:56:29 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XW1mF41tFz4Nh9; Sat, 19 Oct 2024 12:56:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729342589; 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=jNGV2sTalawTWg5+zmgQ/emLsTKCLnZJ0GeDqOwoEBY=; b=QV4yR+8LqcQdAHP34I2hnh6WqvxX2EPyKJdZWNTd9dFuUAF3OtbmaZEsdrauGJJTtq19l+ ypEFVZrZxnkb1GXWhEOh6k2jitWt8g44C7zRoNgoqI2CmIFP61M9nGtGKLPcwqUT/qK5Gf lFIWCDGH5FQBgyftF7H8pEd19Z+KA4+9Kfb/XaSaYgT8bYnq9UmK5T1BaChFDG3m4+eUw+ sXjDFJUHLgDY1NxQ3R95J1+w1wPkyHsc9Rfj+a8pXoS0m1n+eBEwdQPkugyC/LhEpvwFl7 mVRxeYKAzSsm/xChMgfxeDs21hxEQWVLYlsauu+dOAm4jJ6zd6cBQTXztiVQdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729342589; 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=jNGV2sTalawTWg5+zmgQ/emLsTKCLnZJ0GeDqOwoEBY=; b=wqi5Mqo99MG7XVDZICfzSaPRksD2uzliVWAcrn5OKTbsHrqHfHCKtmrjovwgy4sj2X/P/z zwTuxkrnSTL/+vNRRE4CahH/OQ/OSbzmhhVq4MXbvSldCks9ou1uazQxfi2uxA9g+i9VkQ ZD54ExbH/jYvEbRbcyMOYClNFODBHJcjC7ya2auX5TensB0160lYDTrg6yxJyJJknXoyi/ uYgQrgnCmYqSfPSgAp/1M6ZBXYlJa1kFThiHkkeYCCBcGvDZKWoY+fLI8XHLrTSalS2V+i c/pgG/dO1X93MLM//FSjM3Esa8fNqGz37dPvO/pZ6noNg9vuDaEbD2yubnmmpw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729342589; a=rsa-sha256; cv=none; b=EIFtkRLcSm1n4/Ec6yoIzNn0ch3RD0IFoT2O7bD1EM/cEwBL8VLMRnVcotZGDczF0saY/t rDViToGq2AQk+wKWNDJZW+FWvOuEopmAxAv5OAMsxZCyrsNtbdtov4eAOIMBypOf7xOBNp L2W8q5d5MubbuGKO2UGoh9WT4RTXjfh8pASpzXTItj7st6/maR4/9D/erNYP4+/5rfPWu9 uSwj9CKjoNqHe3fVRuKn/qtw3FtmCWriTM+jgpF+MJr3vniU1AYvziYinPg5aYrZAhMp8u 9bsN02kjI4fCBmTQkWCKBQr/GqYT4LCpejWIUWoENNOpl+RFGfoGUeIeQYbIvw== 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 4XW1mF3KQ4zJfp; Sat, 19 Oct 2024 12:56:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49JCuTgq065069; Sat, 19 Oct 2024 12:56:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49JCuTlJ065066; Sat, 19 Oct 2024 12:56:29 GMT (envelope-from git) Date: Sat, 19 Oct 2024 12:56:29 GMT Message-Id: <202410191256.49JCuTlJ065066@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 4e61f158893b - stable/14 - debugnet: Use precise types when accessing mbuf contents List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4e61f158893b4fcd95a93ccee3812e395378feef Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=4e61f158893b4fcd95a93ccee3812e395378feef commit 4e61f158893b4fcd95a93ccee3812e395378feef Author: Mark Johnston AuthorDate: 2024-10-09 15:28:57 +0000 Commit: Mark Johnston CommitDate: 2024-10-18 12:28:09 +0000 debugnet: Use precise types when accessing mbuf contents This might be useful when adding bounds checks to mtod(). No functional change intended. MFC after: 1 week (cherry picked from commit 5c385a54fe9ccbd3f28f20b5a025a856d229fa05) --- sys/net/debugnet.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/net/debugnet.c b/sys/net/debugnet.c index c6f57ec84618..07906e724cbb 100644 --- a/sys/net/debugnet.c +++ b/sys/net/debugnet.c @@ -199,7 +199,7 @@ debugnet_udp_output(struct debugnet_pcb *pcb, struct mbuf *m) return (ENOBUFS); } - udp = mtod(m, void *); + udp = mtod(m, struct udphdr *); udp->uh_ulen = htons(m->m_pkthdr.len); /* Use this src port so that the server can connect() the socket */ udp->uh_sport = htons(pcb->dp_client_port); @@ -226,7 +226,7 @@ debugnet_ack_output(struct debugnet_pcb *pcb, uint32_t seqno /* net endian */) m->m_len = sizeof(*dn_ack); m->m_pkthdr.len = sizeof(*dn_ack); MH_ALIGN(m, sizeof(*dn_ack)); - dn_ack = mtod(m, void *); + dn_ack = mtod(m, struct debugnet_ack *); dn_ack->da_seqno = seqno; return (debugnet_udp_output(pcb, m)); @@ -400,7 +400,7 @@ debugnet_handle_rx_msg(struct debugnet_pcb *pcb, struct mbuf **mb) } } - dnh = mtod(m, const void *); + dnh = mtod(m, const struct debugnet_msg_hdr *); if (ntohl(dnh->mh_len) + sizeof(*dnh) > m->m_pkthdr.len) { DNETDEBUG("Dropping short packet.\n"); return; @@ -459,7 +459,7 @@ debugnet_handle_ack(struct debugnet_pcb *pcb, struct mbuf **mb, uint16_t sport) return; } } - dn_ack = mtod(m, const void *); + dn_ack = mtod(m, const struct debugnet_ack *); /* Debugnet processing. */ /* @@ -503,7 +503,7 @@ debugnet_handle_udp(struct debugnet_pcb *pcb, struct mbuf **mb) return; } } - udp = mtod(m, const void *); + udp = mtod(m, const struct udphdr *); /* We expect to receive UDP packets on the configured client port. */ if (ntohs(udp->uh_dport) != pcb->dp_client_port) { From nobody Sat Oct 19 12:56:30 2024 X-Original-To: dev-commits-src-branches@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 4XW1mH0VJZz5b4PF; Sat, 19 Oct 2024 12:56:31 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XW1mG51w6z4NhX; Sat, 19 Oct 2024 12:56:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729342590; 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=2lHVXFKqiEjmYLKd+GCyAOv9vWMRDQnfNpwuyct4wCc=; b=k32i+REO/ZVtKrcRjQPrxSXMK53C49fbBd/SCRrFDBjVAICnTCyhMxrX3lgsx8icD8Mcy7 XChWXA77r+XJadkzFvGUMrOtpbjr4MQjheWOO0ycCADd29TbL8AlLEE0lkcZC6MXAbpqHS y64CyOyq+uroArdNGh7yPGWtsuO35cGMGAzysrNvB5pQcGozu446UWMYK1vojHIGs3w9nr HeIPXUpH/iG8qLwqOgebQZQAaaabgxIAvCzQee8b0o41GO8fmVreXCJx+P/dBkIbKSOOxM BCf4iPla9Jt8nCPx6yLwrPBVKeidikdBwbpUgU9mLEhIQ/mELDOZP5QUSCnAwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729342590; 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=2lHVXFKqiEjmYLKd+GCyAOv9vWMRDQnfNpwuyct4wCc=; b=fSroSOPI24aiHMOFNH6VtURsEaLGpS4fCDl96oBmGiOBVZknm4dsmJFYbuB9RVTUJIdvGM 6Rga8xdvPTfyiUqhf+ljAohdvr4134cMSVIYyHBVcADn6LoeVtDdR/YDF/PJTPrE0jO162 cE9w5EWZDUecx+bOndeLZtuIa5ycJRxYKRwt0q28wWqCvkDKQU0CWqRCvY9TCorsrI/veI YyGag4bx5J7vnpBJajXxvzNwmsIMGsyi3sbJsWqb4APksOYCP6UAyPVv3tj3mQupU5HVgg xFEWl7fHrXPdtHXd84E0nux3Puy4ob4oeJfo53FLISH/POwiUw0cZZk3cbvU5A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729342590; a=rsa-sha256; cv=none; b=U8vkBFTNHZUtJquAQTutorJPs7tz0Q2fTjbeL0ksVDgOKU58oHnKQgapXjW6+JEj0lZNa9 YBABGARCWY7tvOT0PPuqmaBQx5RG362FAOLz0hFiHcOP3pBaz8jLX5mvtYTaEduqUlw7Rr rLez0kg22PlGHSgIKPFKJcrcX70HsXdhpY5q02QrOYL9DIgN1nAS7VI1DyEM5pVQiiwSb1 7jTRoT8qodoIw69ILqT53Jmh2rtUoFjvRyvWp/E42w7N+abIqvu8qlcNJNjm+hUlv+WG0y ykMfku8rWuw0GSz7fZMkY6JEGuyz9uUrEI3gH3NTJFnAbpab9KpcwXHdsS681A== 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 4XW1mG4L5xzJZG; Sat, 19 Oct 2024 12:56:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49JCuU8E065120; Sat, 19 Oct 2024 12:56:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49JCuUap065117; Sat, 19 Oct 2024 12:56:30 GMT (envelope-from git) Date: Sat, 19 Oct 2024 12:56:30 GMT Message-Id: <202410191256.49JCuUap065117@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9c0455e4c43a - stable/14 - syslogd: Ignore getaddrinfo() errors if -ss is specified List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9c0455e4c43a8123bd7965125d34273c5b3d9eaf Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9c0455e4c43a8123bd7965125d34273c5b3d9eaf commit 9c0455e4c43a8123bd7965125d34273c5b3d9eaf Author: Mark Johnston AuthorDate: 2024-09-19 10:00:33 +0000 Commit: Mark Johnston CommitDate: 2024-10-19 12:55:03 +0000 syslogd: Ignore getaddrinfo() errors if -ss is specified This can arise if the jail doesn't have networking configured, and if -ss is specified, syslogd won't listen on port 514 anyway. Add a regression test case for this as well. PR: 238006 MFC after: 1 month (cherry picked from commit 5d045d556b1cfeb1487d49017b536afb3df105d3) --- usr.sbin/syslogd/syslogd.c | 8 ++++++++ usr.sbin/syslogd/tests/syslogd_test.sh | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c index de3d7c106f8a..7356fb3fa43f 100644 --- a/usr.sbin/syslogd/syslogd.c +++ b/usr.sbin/syslogd/syslogd.c @@ -3825,6 +3825,14 @@ socksetup(struct peer *pe) if (pe->pe_serv == NULL) pe->pe_serv = "syslog"; error = getaddrinfo(pe->pe_name, pe->pe_serv, &hints, &res0); + if (error == EAI_NONAME && pe->pe_name == NULL && SecureMode > 1) { + /* + * If we're in secure mode, we won't open inet sockets anyway. + * This failure can arise legitimately when running in a jail + * without networking. + */ + return (0); + } if (error) { char *msgbuf; diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh index e4927868e47f..08e6d76b9ba6 100644 --- a/usr.sbin/syslogd/tests/syslogd_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_test.sh @@ -22,7 +22,13 @@ readonly SYSLOGD_LOCAL_PRIVSOCKET="${PWD}/logpriv.sock" # Start a private syslogd instance. syslogd_start() { - syslogd \ + local jail + + if [ "$1" = "-j" ]; then + jail="jexec $2" + shift 2 + fi + $jail syslogd \ -b ":${SYSLOGD_UDP_PORT}" \ -C \ -d \ @@ -288,6 +294,31 @@ pipe_action_cleanup() syslogd_stop } +atf_test_case "jail_noinet" "cleanup" +jail_noinet_head() +{ + atf_set descr "syslogd -ss can be run in a jail without INET support" + atf_set require.user root +} +jail_noinet_body() +{ + local logfile + + atf_check jail -c name=syslogd_noinet persist + + logfile="${PWD}/jail_noinet.log" + printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + syslogd_start -j syslogd_noinet -ss + + syslogd_log -p user.debug -t "test" -h "${SYSLOGD_LOCAL_SOCKET}" \ + "hello, world" + atf_check -s exit:0 -o match:"test: hello, world" cat "${logfile}" +} +jail_noinet_cleanup() +{ + jail -r syslogd_noinet +} + atf_init_test_cases() { atf_add_test_case "basic" @@ -296,4 +327,5 @@ atf_init_test_cases() atf_add_test_case "host_filter" atf_add_test_case "prop_filter" atf_add_test_case "pipe_action" + atf_add_test_case "jail_noinet" } From nobody Sat Oct 19 13:18:00 2024 X-Original-To: dev-commits-src-branches@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 4XW2F51wl7z5b5Sm; Sat, 19 Oct 2024 13:18:01 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XW2F51HYGz4RNb; Sat, 19 Oct 2024 13:18:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729343881; 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=Ef8kcIiKcXFA6BCYhsvDBjlA8ozWUoIB1kY9Wfo2d5o=; b=lN1yHho+qfHVhwZ6f55iXM4dsKlTdojai3awQurtju0zGuqGoIoPgI6vuC6dwWj+XB+Vpf v5iSnDu3UwAkvunh27XveQtq2lQr3LrjP3rLVDqTBQG2460Uk9n4KtUBggE0iQT4hL2bc1 ib0VOibh+eMm513CG+7u6/JkXx1TRADg7xZi04zUcXdA0YHjO2FynIKytQFrJN/Q2CkXRn TqmLxQhFed7XlVaGIjiXxZhB4Sdvc6iLGIYJLSJod/NDGp8aLy3xiKwpsyJKTp+w3VLBQ4 2XgcgpXps+4URa2qKaUQJOb5fOaSkTG5Rf0rwg1UbwOHhAvxUIB2bZ/5fL6W7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729343881; 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=Ef8kcIiKcXFA6BCYhsvDBjlA8ozWUoIB1kY9Wfo2d5o=; b=nv1tov0zTNS0ez0B/0+Y2naNT86jZLEJP4wE80lFXglPJAe1oh3SVHJLJcKpMvgD+9YFpL /WlyJFFWyiOegYMYdmuP6NG/awR/Innz/Vb6V/GuweEE9DHo70ElGUWBaEk/FNSUqMFxSe o7X1rqfjzncT6GORS1wOL4GlGRnTB41CPZReSKRoH1v0ieYcYpw929UYDy14xlMJqLRgm2 2kvxYZk2DqYbhf8xLrzb/fpVlkxo+0hqWACe/mSwuMnMFsn+cIqstlTl3qHPdtNb28nxIu PtX76tGPfNpMbmGnENdTrdG2LLl2J0fVPu5W61WdB5pCytysi2qiSOM1ulNiSw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729343881; a=rsa-sha256; cv=none; b=yafrAiGfL2s33ip1q0AztASYfqlGj0LANcUaA8Ku7fdVA6FsdiWoVsUnSU+Rb26n3mj0F+ CPgRZjhz171Gw8Sj89UDgd2smnFC/xed64t+xfVQZ3AbogY09Eu2yzWXbHrGlLoLNZnq6F lXsp2RiM5L2+QAudyrxoLuey7XrgF7E1P5Xc7Sulp5J8inLZ7MP4vhG49f1yGye0PKFE/c 5rMGtxLq8FPG3tY8Hx9NL+McC/LLnR9EUV7AK/EqptVd66peJLfii4S2BYLnrsVajnFqev 1z+OtNd6Mc8QJ3vn1TKD40hA7p9vKSCzgzH+9AIOxqWF2u8VvFcz2744Cxzxgg== 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 4XW2F50tyqzK7C; Sat, 19 Oct 2024 13:18:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49JDI0Cv003526; Sat, 19 Oct 2024 13:18:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49JDI0pN003523; Sat, 19 Oct 2024 13:18:00 GMT (envelope-from git) Date: Sat, 19 Oct 2024 13:18:00 GMT Message-Id: <202410191318.49JDI0pN003523@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9ecbda844643 - stable/13 - syslogd: Ignore getaddrinfo() errors if -ss is specified List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9ecbda844643f19aba4c1652b2f9db7c8427d336 Auto-Submitted: auto-generated The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9ecbda844643f19aba4c1652b2f9db7c8427d336 commit 9ecbda844643f19aba4c1652b2f9db7c8427d336 Author: Mark Johnston AuthorDate: 2024-09-19 10:00:33 +0000 Commit: Mark Johnston CommitDate: 2024-10-19 13:17:51 +0000 syslogd: Ignore getaddrinfo() errors if -ss is specified This can arise if the jail doesn't have networking configured, and if -ss is specified, syslogd won't listen on port 514 anyway. Add a regression test case for this as well. PR: 238006 MFC after: 1 month (cherry picked from commit 5d045d556b1cfeb1487d49017b536afb3df105d3) --- usr.sbin/syslogd/syslogd.c | 8 ++++++++ usr.sbin/syslogd/tests/syslogd_test.sh | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c index 02f8aa39afe8..e78e2327be3b 100644 --- a/usr.sbin/syslogd/syslogd.c +++ b/usr.sbin/syslogd/syslogd.c @@ -3825,6 +3825,14 @@ socksetup(struct peer *pe) if (pe->pe_serv == NULL) pe->pe_serv = "syslog"; error = getaddrinfo(pe->pe_name, pe->pe_serv, &hints, &res0); + if (error == EAI_NONAME && pe->pe_name == NULL && SecureMode > 1) { + /* + * If we're in secure mode, we won't open inet sockets anyway. + * This failure can arise legitimately when running in a jail + * without networking. + */ + return (0); + } if (error) { char *msgbuf; diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh index e4927868e47f..08e6d76b9ba6 100644 --- a/usr.sbin/syslogd/tests/syslogd_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_test.sh @@ -22,7 +22,13 @@ readonly SYSLOGD_LOCAL_PRIVSOCKET="${PWD}/logpriv.sock" # Start a private syslogd instance. syslogd_start() { - syslogd \ + local jail + + if [ "$1" = "-j" ]; then + jail="jexec $2" + shift 2 + fi + $jail syslogd \ -b ":${SYSLOGD_UDP_PORT}" \ -C \ -d \ @@ -288,6 +294,31 @@ pipe_action_cleanup() syslogd_stop } +atf_test_case "jail_noinet" "cleanup" +jail_noinet_head() +{ + atf_set descr "syslogd -ss can be run in a jail without INET support" + atf_set require.user root +} +jail_noinet_body() +{ + local logfile + + atf_check jail -c name=syslogd_noinet persist + + logfile="${PWD}/jail_noinet.log" + printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + syslogd_start -j syslogd_noinet -ss + + syslogd_log -p user.debug -t "test" -h "${SYSLOGD_LOCAL_SOCKET}" \ + "hello, world" + atf_check -s exit:0 -o match:"test: hello, world" cat "${logfile}" +} +jail_noinet_cleanup() +{ + jail -r syslogd_noinet +} + atf_init_test_cases() { atf_add_test_case "basic" @@ -296,4 +327,5 @@ atf_init_test_cases() atf_add_test_case "host_filter" atf_add_test_case "prop_filter" atf_add_test_case "pipe_action" + atf_add_test_case "jail_noinet" } From nobody Sat Oct 19 15:43:19 2024 X-Original-To: dev-commits-src-branches@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 4XW5Sm2KxJz5bD6N; Sat, 19 Oct 2024 15:43:20 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XW5Sm0Q0nz4jXV; Sat, 19 Oct 2024 15:43:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729352600; 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=PrfR+yGfdJ+h/NvQyTzws4TH3kD+oIfrkTP8ZkNhg9Y=; b=oqJlN07nxIXwSvSOtLg8ipKff6bKSlYJBLce3WWmVihChH1bKlkcR7US0P+KRCoRxKHLWz oeN+1vwVBNmM5BnegDBOL1oSaVM222ov7RlJ24X8BZCJCQJFA4K8nAOI5Qerx6YTP1HCbK DxcBj51jG7Gv8DUW6LCUyI3BjD4h8OX1CgiaK2vpMyYaNDtK4NwaMPItdz27ez/o9nWNjN F0FjPIqGqYiv56Pf6rG1hXG4VcrFIhCbvaGsbFDfqz4QXJaV7H/dag190y1p8cfJIL3w32 iiiBPYvG2joBC5zsGKObtToPTXyve8bfAUc30sNEU8I+M2KEp3Xk9chtEtQwfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729352600; 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=PrfR+yGfdJ+h/NvQyTzws4TH3kD+oIfrkTP8ZkNhg9Y=; b=P7X1UHMWC4t/KZR5hpLL9CMbarM7U9xZmlEsvYpmzie/kYDkmzk7/9uVrSIAORAyHvvnL9 vjwJMKFl8zUk6+bhB3pu85lekmNGJsGEdWKSk5clRbnsCKeHpf44luJ7onYPfcmNHBHlNu UV8ZsCZRSVyOWZYkRtHSvkf6i9EC7rj/5ep819b+o462eLNQvzdTGMKqZ6G+zUCL5LYgne E6C7+Xo1nwX4Vyf4dHtOWiMTM1D9nNZ9kATYOHOxvxTbUVkxa+SCJmLrKCM+gTVj9Rom8y XnTNt1h1+AOxjWbZ9ef/FfpSNR0Lb3bi1GxOvZMAOM/Vj7+G5AUuyhOYWbZyBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729352600; a=rsa-sha256; cv=none; b=NGGhBPKhLY5dj8/AO9YYlTgqoReEJhuBpQbyhNLVYvPwMbrMO56IbU97L3/SBMJVjZhdMK zZdttark8bzI13LKCNPcY9fxjHPzwVMWEEe0oTjXtiIrQYcgSKFa2NRG1yUkBo49G7v8/F iLonT9zOJpWcYefRVrW5lGloM2rbs97/QX7I4SVvx9JVZ9zD/WQSxbGFd7wrrbtyeKHKAK 7pNQ4IH9CbIK00KGUCToZgnkF7TAgMCYcFUw5lSzDkFWWKKTVLyyb/mU2hEsBKeCUkBlfE WpSsI1Lo/R5bYc48t3vMCQCV1l/saFoNseSnmWvMvHcxIlB95ITvHQzOJ/sDAQ== 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 4XW5Sl75WVzNLM; Sat, 19 Oct 2024 15:43:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49JFhJgb080558; Sat, 19 Oct 2024 15:43:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49JFhJjj080555; Sat, 19 Oct 2024 15:43:19 GMT (envelope-from git) Date: Sat, 19 Oct 2024 15:43:19 GMT Message-Id: <202410191543.49JFhJjj080555@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 86ba5941b132 - stable/14 - bhyve/nvme: Fix Infinite loop in queue processing List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 86ba5941b132c73476a2a1b76ae53902a027b81c Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=86ba5941b132c73476a2a1b76ae53902a027b81c commit 86ba5941b132c73476a2a1b76ae53902a027b81c Author: Chuck Tuffli AuthorDate: 2024-10-13 13:58:48 +0000 Commit: Ed Maste CommitDate: 2024-10-19 15:42:15 +0000 bhyve/nvme: Fix Infinite loop in queue processing In the functions pci_nvme_handle_admin_cmd and pci_nvme_handle_io_cmd infinite loops are possible in the bhyve process if the sq->tail value is greater than sq->size. An attacker could overload the host CPU. Fix is to validate that doorbell values: - Are for a valid (i.e., created) queue - Are not the same as the previous value - Fit within the available capacity The emulation will generate an Asynchronous Event Notification (Invalid Doorbell or Invalid Doorbell Value) if enabled and ignore the doorbell update. While in the neighborhood, remove a redundant bounds check. Reported by: Synacktiv MFC after: 1 week Security: HYP-14 Sponsored by: Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46064 (cherry picked from commit 5374b9e146811757540e35553a7712c5b9b29239) --- usr.sbin/bhyve/pci_nvme.c | 81 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 8 deletions(-) diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c index b8eb24d91b49..7e6c8bc9d719 100644 --- a/usr.sbin/bhyve/pci_nvme.c +++ b/usr.sbin/bhyve/pci_nvme.c @@ -265,6 +265,17 @@ struct pci_nvme_aer { uint16_t cid; /* Command ID of the submitted AER */ }; +/** Asynchronous Event Information - Error */ +typedef enum { + PCI_NVME_AEI_ERROR_INVALID_DB, + PCI_NVME_AEI_ERROR_INVALID_DB_VALUE, + PCI_NVME_AEI_ERROR_DIAG_FAILURE, + PCI_NVME_AEI_ERROR_PERSISTANT_ERR, + PCI_NVME_AEI_ERROR_TRANSIENT_ERR, + PCI_NVME_AEI_ERROR_FIRMWARE_LOAD_ERR, + PCI_NVME_AEI_ERROR_MAX, +} pci_nvme_async_event_info_error; + /** Asynchronous Event Information - Notice */ typedef enum { PCI_NVME_AEI_NOTICE_NS_ATTR_CHANGED = 0, @@ -2784,6 +2795,38 @@ complete: pthread_mutex_unlock(&sq->mtx); } +/* + * Check for invalid doorbell write values + * See NVM Express Base Specification, revision 2.0 + * "Asynchronous Event Information - Error Status" for details + */ +static bool +pci_nvme_sq_doorbell_valid(struct nvme_submission_queue *sq, uint64_t value) +{ + uint64_t capacity; + + /* + * Queue empty : head == tail + * Queue full : head is one more than tail accounting for wrap + * Therefore, can never have more than (size - 1) entries + */ + if (sq->head == sq->tail) + capacity = sq->size - 1; + else if (sq->head > sq->tail) + capacity = sq->size - (sq->head - sq->tail) - 1; + else + capacity = sq->tail - sq->head - 1; + + if ((value == sq->tail) || /* same as previous */ + (value > capacity)) { /* exceeds queue capacity */ + EPRINTLN("%s: SQ size=%u head=%u tail=%u capacity=%lu value=%lu", + __func__, sq->size, sq->head, sq->tail, capacity, value); + return false; + } + + return true; +} + static void pci_nvme_handle_doorbell(struct pci_nvme_softc* sc, uint64_t idx, int is_sq, uint64_t value) @@ -2796,22 +2839,34 @@ pci_nvme_handle_doorbell(struct pci_nvme_softc* sc, WPRINTF("%s queue index %lu overflow from " "guest (max %u)", __func__, idx, sc->num_squeues); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB); + return; + } + + if (sc->submit_queues[idx].qbase == NULL) { + WPRINTF("%s write to SQ %lu before created", __func__, + idx); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB); + return; + } + + if (!pci_nvme_sq_doorbell_valid(&sc->submit_queues[idx], value)) { + EPRINTLN("%s write to SQ %lu of %lu invalid", __func__, + idx, value); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB_VALUE); return; } atomic_store_short(&sc->submit_queues[idx].tail, (uint16_t)value); - if (idx == 0) { + if (idx == 0) pci_nvme_handle_admin_cmd(sc, value); - } else { + else { /* submission queue; handle new entries in SQ */ - if (idx > sc->num_squeues) { - WPRINTF("%s SQ index %lu overflow from " - "guest (max %u)", - __func__, idx, sc->num_squeues); - return; - } pci_nvme_handle_io_cmd(sc, (uint16_t)idx); } } else { @@ -2819,6 +2874,16 @@ pci_nvme_handle_doorbell(struct pci_nvme_softc* sc, WPRINTF("%s queue index %lu overflow from " "guest (max %u)", __func__, idx, sc->num_cqueues); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB); + return; + } + + if (sc->compl_queues[idx].qbase == NULL) { + WPRINTF("%s write to CQ %lu before created", __func__, + idx); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB); return; } From nobody Sat Oct 19 18:41:13 2024 X-Original-To: dev-commits-src-branches@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 4XW9Q11kwWz5YvQN; Sat, 19 Oct 2024 18:41:13 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XW9Q11CnDz41kS; Sat, 19 Oct 2024 18:41:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729363273; 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=8lC/jHixkTIdnSyF0nzf0W5whzupIbO1RSfM1+R04Rg=; b=LOC7q2vBInqwnAzBodDGwM0sAPq1jRg10TcrekgoQVGXmsg7o5Gvkc8qbXkH06fI3Ct2z5 tyFOPoWlkiaTMIXUkrfSm995RHCKIefXs3ae9EOkRvOMKBRZSweWM59Lf0u9Z0dQ319Zx0 M0OUuoAbwa5OCWNtXlw4FJDGTrsD50bfX4ptSkUktkFYJfrhkHaE+wrWyFhSs+zVbJeVVL 4rq+72UBWZeBOz7S3DmoP90FfpbMty+RT6wWZQmaemdWsvSZXNT5Ouf7JsPbvlIDsxEELm VtZiFRbhRHHhSUEa7rGeymxFOt3iElBEYQa9U2vpXqS8Yrom5UucI3LTJnsBLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729363273; 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=8lC/jHixkTIdnSyF0nzf0W5whzupIbO1RSfM1+R04Rg=; b=CfR/8dYe5hC0e9h8gHqXEIb52xDEITI5NfF1t8nhiqVUo7ENAB9FK+Wn+OepskJ77/aMXx KGY1xRSyBp1Ip/lQF06VjDvtenn4Wn4+XuGGFFyX5GOve+6Q3SIILDZ94iP7BN+92rZfmq xQ/D5fixVpo1fr/CBBGDCkAfgmbt0o08FlqrPU42t/m1MATbj260n4iRU8MWqYpITz71W6 Nnu8//XP5mSz44uuAH39+c73imPFpSEJOVvkCg9s3HHZAJGVCPCV61VOGPR8rBUMxgCifw 9GztqBSyR3YkDf5gF3Q0v2FqShcyPUD/Ww4JDsakA4DvIGOszxL4kn4rp+aVNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729363273; a=rsa-sha256; cv=none; b=AMyMh3B1sXGj41Ma/kgegFD9DqaWRVwm0xYo3QKOUJRZPmofTddeviDGI4TZiezbeEl+70 m/CUA0a13d4jnUm9gB25c26eJdpM1XwDe9S4Yu9/L8d9dUfpocCsm1Ee8cSJl9H9VJP7Ot ixmLyjH3kHibxw1osffIvxmZZALE82JIFI2Ja6+J3NL6wXcRgmFH96HGKZHauDC4Tp81yF kACshEYcSB2S6ThrQWi/ezSs1vWigVIQB2Dw27CTIQUzxSNY8Bi3RVUNmwwHSeVKfphFzo i1YZlcZnmRuw1oUibkFNxqXXSckJMjL4oqtq8OymykcOiyAWYpRg6bI3kuKL0w== 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 4XW9Q10q9CzT0w; Sat, 19 Oct 2024 18:41:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49JIfD7s008771; Sat, 19 Oct 2024 18:41:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49JIfDRX008768; Sat, 19 Oct 2024 18:41:13 GMT (envelope-from git) Date: Sat, 19 Oct 2024 18:41:13 GMT Message-Id: <202410191841.49JIfDRX008768@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 789576e5de2c - stable/14 - src.conf.5: regen for JEMALLOC_LG_VADDR_WIDE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 789576e5de2cd11c4931c30ea03651d967106cdf Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=789576e5de2cd11c4931c30ea03651d967106cdf commit 789576e5de2cd11c4931c30ea03651d967106cdf Author: Ed Maste AuthorDate: 2024-10-19 18:38:44 +0000 Commit: Ed Maste CommitDate: 2024-10-19 18:40:45 +0000 src.conf.5: regen for JEMALLOC_LG_VADDR_WIDE Fixes: b90d68c9b28b Sponsored by: The FreeBSD Foundation (cherry picked from commit b0f9f970ec104e1df22ece7c7cdf12240e3c6713) --- share/man/man5/src.conf.5 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index b868b5265763..303854813166 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,5 +1,5 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. -.Dd September 24, 2024 +.Dd September 26, 2024 .Dt SRC.CONF 5 .Os .Sh NAME @@ -827,6 +827,12 @@ and related utilities. .It Va WITHOUT_JAIL Do not build tools for the support of jails; e.g., .Xr jail 8 . +.It Va WITHOUT_JEMALLOC_LG_VADDR_WIDE +Disallow programs to use more than 48 address bits on amd64. +Incompatible with LA57 mode. +Enabling this option might result in a slight reduction in memory +consumption for jemalloc metadata, but also requires disabling LA57 +(if hardware supports it). .It Va WITHOUT_KDUMP Do not build .Xr kdump 1 From nobody Sat Oct 19 18:42:53 2024 X-Original-To: dev-commits-src-branches@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 4XW9Rx75FHz5Yv68; Sat, 19 Oct 2024 18:42:53 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XW9Rx6bBLz42GT; Sat, 19 Oct 2024 18:42:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729363373; 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=tFryHX88tYXrI3QAWr0GMdGQLhk4P9WV4IDRaHf1OIs=; b=iguCtYTtcOMHqQqmgHYJo2lzFljU4JKXX9ksGmUsCGaqxHsF0knnXgGO7spYn2OrtitTZz cFZm26CI9NGqtvFJbxKyl7uNANCGX7Nl6yt+3oF/QFc6nUzdi8SuuphrlX9kmNK3fjKFDD GtRN90VwTVq0JdhFNZAWM3/WlR6+n+pSog+WTslfhbzpyzMzScFo4sDtKxl7Z0D3vBUp6J CVFZW8z/uv3FYtwFdznYUxyKMnzTneZQbifV7TMrKfO3y7XEhYN8DkLfnNF6zJUdfIsI8m B8v+8OEob8ffjWsX6HqUf7q8TAQzny/QX8rkArcDdVXKQQTpnxbfC047pOt2HQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729363373; 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=tFryHX88tYXrI3QAWr0GMdGQLhk4P9WV4IDRaHf1OIs=; b=KxbVpT74tr4EmTe79E66nW7VDYaCOHFZYEqykk2Vxp5yqbtuvSCnWTNXw96hKv1fP2ldxX ZZ/ANwKbQiTV27nXExRnLek9z8X6UMEyj7cF4973IKMOdf4cAft7zo8DuYThAzB8+MBpRP ppSOPLrspU7+vSrdsZKn6KPj+VTAldjdWe9QrST3/ts2IMQ6POZ9Ss77EwxvjIHUe+lpOt HCZhMbR6Ad++4B4WhHLzYcXXrP5a89i6+v3Ff9yE8W8SMVPhqUbjD0FevZQMwtxvkSyN9H 5JZDi6ayy73dkgOm/+Bu1SVJhm+K9zBvKNvib/Zw0J2CDFBqZIR46pNvVpG9Jw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729363373; a=rsa-sha256; cv=none; b=sSfcVRL5zochxsZc0lFogE0F4+ItYaJ88S1M0anWv+mEtYkwtQqO/s8LnEZAaZwmsNaPRs vr128Mhk82xaW9DzFQzJ4jMwUViUmU1lB0iQ0vy5kLT/nFkYB3T7bZHPiFsjls7wrViDzu Qeurm+zeqEZYrD9l+0qzUQf4ClxMTmyi0z1zxwWdrwUJSH9AuoaBa/El4J8J/Kop4wuiOA csnq0OGW3HuXaqlODjDvY5TC5+YNSAWmDopZEW1JvOPS4j+fI8I5QlP+u9E/XlxrEAQTDm EL9sd22xqakos/uLqSSDDIswl1r08quXDYnRCw7OKboz04VGS35ONP0bv5uyOA== 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 4XW9Rx5tYkzSv7; Sat, 19 Oct 2024 18:42:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49JIgrxW014961; Sat, 19 Oct 2024 18:42:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49JIgrYJ014958; Sat, 19 Oct 2024 18:42:53 GMT (envelope-from git) Date: Sat, 19 Oct 2024 18:42:53 GMT Message-Id: <202410191842.49JIgrYJ014958@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: df1a36fdfae6 - stable/13 - bhyve/nvme: Fix Infinite loop in queue processing List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: df1a36fdfae603ce298b8396ae3388d337c3c5b3 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=df1a36fdfae603ce298b8396ae3388d337c3c5b3 commit df1a36fdfae603ce298b8396ae3388d337c3c5b3 Author: Chuck Tuffli AuthorDate: 2024-10-13 13:58:48 +0000 Commit: Ed Maste CommitDate: 2024-10-19 15:43:46 +0000 bhyve/nvme: Fix Infinite loop in queue processing In the functions pci_nvme_handle_admin_cmd and pci_nvme_handle_io_cmd infinite loops are possible in the bhyve process if the sq->tail value is greater than sq->size. An attacker could overload the host CPU. Fix is to validate that doorbell values: - Are for a valid (i.e., created) queue - Are not the same as the previous value - Fit within the available capacity The emulation will generate an Asynchronous Event Notification (Invalid Doorbell or Invalid Doorbell Value) if enabled and ignore the doorbell update. While in the neighborhood, remove a redundant bounds check. Reported by: Synacktiv MFC after: 1 week Security: HYP-14 Sponsored by: Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46064 (cherry picked from commit 5374b9e146811757540e35553a7712c5b9b29239) (cherry picked from commit 86ba5941b132c73476a2a1b76ae53902a027b81c) --- usr.sbin/bhyve/pci_nvme.c | 81 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 8 deletions(-) diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c index cbe4d87b6f60..536f34ddb3ee 100644 --- a/usr.sbin/bhyve/pci_nvme.c +++ b/usr.sbin/bhyve/pci_nvme.c @@ -267,6 +267,17 @@ struct pci_nvme_aer { uint16_t cid; /* Command ID of the submitted AER */ }; +/** Asynchronous Event Information - Error */ +typedef enum { + PCI_NVME_AEI_ERROR_INVALID_DB, + PCI_NVME_AEI_ERROR_INVALID_DB_VALUE, + PCI_NVME_AEI_ERROR_DIAG_FAILURE, + PCI_NVME_AEI_ERROR_PERSISTANT_ERR, + PCI_NVME_AEI_ERROR_TRANSIENT_ERR, + PCI_NVME_AEI_ERROR_FIRMWARE_LOAD_ERR, + PCI_NVME_AEI_ERROR_MAX, +} pci_nvme_async_event_info_error; + /** Asynchronous Event Information - Notice */ typedef enum { PCI_NVME_AEI_NOTICE_NS_ATTR_CHANGED = 0, @@ -2841,6 +2852,38 @@ complete: pthread_mutex_unlock(&sq->mtx); } +/* + * Check for invalid doorbell write values + * See NVM Express Base Specification, revision 2.0 + * "Asynchronous Event Information - Error Status" for details + */ +static bool +pci_nvme_sq_doorbell_valid(struct nvme_submission_queue *sq, uint64_t value) +{ + uint64_t capacity; + + /* + * Queue empty : head == tail + * Queue full : head is one more than tail accounting for wrap + * Therefore, can never have more than (size - 1) entries + */ + if (sq->head == sq->tail) + capacity = sq->size - 1; + else if (sq->head > sq->tail) + capacity = sq->size - (sq->head - sq->tail) - 1; + else + capacity = sq->tail - sq->head - 1; + + if ((value == sq->tail) || /* same as previous */ + (value > capacity)) { /* exceeds queue capacity */ + EPRINTLN("%s: SQ size=%u head=%u tail=%u capacity=%lu value=%lu", + __func__, sq->size, sq->head, sq->tail, capacity, value); + return false; + } + + return true; +} + static void pci_nvme_handle_doorbell(struct pci_nvme_softc* sc, uint64_t idx, int is_sq, uint64_t value) @@ -2853,22 +2896,34 @@ pci_nvme_handle_doorbell(struct pci_nvme_softc* sc, WPRINTF("%s queue index %lu overflow from " "guest (max %u)", __func__, idx, sc->num_squeues); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB); + return; + } + + if (sc->submit_queues[idx].qbase == NULL) { + WPRINTF("%s write to SQ %lu before created", __func__, + idx); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB); + return; + } + + if (!pci_nvme_sq_doorbell_valid(&sc->submit_queues[idx], value)) { + EPRINTLN("%s write to SQ %lu of %lu invalid", __func__, + idx, value); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB_VALUE); return; } atomic_store_short(&sc->submit_queues[idx].tail, (uint16_t)value); - if (idx == 0) { + if (idx == 0) pci_nvme_handle_admin_cmd(sc, value); - } else { + else { /* submission queue; handle new entries in SQ */ - if (idx > sc->num_squeues) { - WPRINTF("%s SQ index %lu overflow from " - "guest (max %u)", - __func__, idx, sc->num_squeues); - return; - } pci_nvme_handle_io_cmd(sc, (uint16_t)idx); } } else { @@ -2876,6 +2931,16 @@ pci_nvme_handle_doorbell(struct pci_nvme_softc* sc, WPRINTF("%s queue index %lu overflow from " "guest (max %u)", __func__, idx, sc->num_cqueues); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB); + return; + } + + if (sc->compl_queues[idx].qbase == NULL) { + WPRINTF("%s write to CQ %lu before created", __func__, + idx); + pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_ERROR, + PCI_NVME_AEI_ERROR_INVALID_DB); return; } From nobody Sun Oct 20 00:29:16 2024 X-Original-To: dev-commits-src-branches@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 4XWK7c28jdz5ZVpL; Sun, 20 Oct 2024 00:29:16 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWK7c1Qrmz4YdD; Sun, 20 Oct 2024 00:29:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384156; 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=5GtyjPkQrdAQwZPYz0HRGiPBQhHQ10qfxrOja8AyD+g=; b=nA062y6kgxmz2BKVf37RMENFCwqP7HwqvAkoNW9jQxxX/6AAhQjaQFiFQKvaV3d0sUeNEF o1OaSVpisofJmh38MyOR7Cx4WhI++eUhUhHXHI+067/ZiEbPRu5i1PZlnKS6FY09iRXOUA uCslrNkrz4FVr94w5ISy68IDsfwBKaFSvLmouh2V2PkMSmBajmh4/NGkzok0Swx16aqshT J78pxRHsgsPacdvQraQvTZ+7vmq8eY/jvmUZHnLhNX01t2qD00JTpEiFIxbDRyeJjEAyCy /QBeHm3iGn3vrvvG/zelvfJ0Y4r34M9MYoPjaquldgD4wpiIqOBETGIOIUkY6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384156; 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=5GtyjPkQrdAQwZPYz0HRGiPBQhHQ10qfxrOja8AyD+g=; b=jmNtZ+FNyLwwXBXz52cDAivKX0/sd2Nl+f+u4N9QLc342e3Idqzz2b121SdKEex5ub0WiJ Patf3ek0NZaPu7etuz013/ImkVI/ZT/NXzrDtMO16jHHGLL3Q8GBqqvyzA+wAVNYGiaUyN k2nDVF07tzAbG18RXcZzFA372tJVjex6jWEikK9cYdY/eY01RNcQlfGdZReqGW4LjPdi07 3HanlYGv8tR08PunwhZKSsXyQswk4asvJAbDxYLfn1rkpV2DsGj4lVXP2syObh10oxHxnK T5BqZ3fBSm7zPpsts2yskzQpmsOkUJ0OopBW3+A1suCCA48TiIXuSdHQT7Tazw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729384156; a=rsa-sha256; cv=none; b=FX90vl92sKD+0Lj8rawqR1eDio3p8wXFUqDV9qG5BFyR6mqjnqkP2NvNa2dpzL+4Et+BYz IKbfE28d8EtF3YmQH6udckV5vvEyUwogldLI7wv94l5jfp2M29aQ2Ete6hSquAiqDfCUGv /xuYHOKneHzoNK+ITnbg5uV1WNk/+jXZ7Z9hkD0ZHcdd/dbRN4NduxlFGvXSEvl20P1yAW K34HEM1QuR5D7CKqgRisKSCESuZm2hGxe/4SCen9Z2Ck7pC7oJJ7dztubvlNnpYlXfl69w qj49/00XKweLJoaGRfMO9bYVhAVaHtit92IKezzw2mRDTFJ1I1V6DNYJ9bStTQ== 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 4XWK7c12l9zfls; Sun, 20 Oct 2024 00:29:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K0TGJO043942; Sun, 20 Oct 2024 00:29:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K0TGnf043939; Sun, 20 Oct 2024 00:29:16 GMT (envelope-from git) Date: Sun, 20 Oct 2024 00:29:16 GMT Message-Id: <202410200029.49K0TGnf043939@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 11dd4e797e5f - stable/14 - vmstat: Fix column header alignment in -o output List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 11dd4e797e5f10d497f509d562e1b5b6c0462b06 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=11dd4e797e5f10d497f509d562e1b5b6c0462b06 commit 11dd4e797e5f10d497f509d562e1b5b6c0462b06 Author: Mark Johnston AuthorDate: 2024-10-13 14:26:47 +0000 Commit: Mark Johnston CommitDate: 2024-10-20 00:29:04 +0000 vmstat: Fix column header alignment in -o output MFC after: 1 week (cherry picked from commit 610fcb06ff0c972434f0b4b7a08947c038dd951e) --- usr.bin/vmstat/vmstat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/vmstat/vmstat.c b/usr.bin/vmstat/vmstat.c index ecffdc894e2e..0fee2395071f 100644 --- a/usr.bin/vmstat/vmstat.c +++ b/usr.bin/vmstat/vmstat.c @@ -1573,7 +1573,7 @@ doobjstat(void) return; } xo_emit("{T:RES/%5s} {T:ACT/%5s} {T:INACT/%5s} {T:REF/%3s} {T:SHD/%3s} " - "{T:CM/%3s} {T:TP/%2s} {T:PATH/%s}\n"); + "{T:CM/%2s} {T:TP/%3s} {T:PATH/%s}\n"); xo_open_list("object"); for (i = 0; i < cnt; i++) display_object(&kvo[i]); From nobody Sun Oct 20 00:34:45 2024 X-Original-To: dev-commits-src-branches@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 4XWKFx2nNyz5ZW67; Sun, 20 Oct 2024 00:34:45 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWKFx1s5Rz4ZGV; Sun, 20 Oct 2024 00:34:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384485; 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=tWkbvpCM54RgWbhdi//LiTWOiPXub5lJn/roMO6Gj+s=; b=vDidN3HWDpPPebR9o2Hld3k45rgZr+3tCa9uFzv6dNdrYY4dwz/il0HrPIm2jMDBAyWqh+ SZzoQBj4wkf7MwsL69X0NfjiLBVjszjpbZRD5qAr3/puEBMXaBWFoqXaaajWY3FJf8F7YN nZ4mSAp3Ac2FwoZv8P3O1xg7qEp8H3DrSgiD0ku18wrNl3LR2Cr7heVT81WCGujoOuj3e1 IbniaW4/gTV2e/DH2Ez6HMlADr/BLLz6nyKmKxR6+QXWzqRl+jArLAJEW0GxvBBn7Th1F+ f5Minv8k/cviBUVLvqWWVhuhTTr6P2au6L0NfAhFgdB7FAIe1X4k7prXClk9lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384485; 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=tWkbvpCM54RgWbhdi//LiTWOiPXub5lJn/roMO6Gj+s=; b=TqNksjfsniWnssV2M/WeF8gc7c9wMIe01sNKjXO8RSta6NhgRL6IZ/y+MDLs4KLGZWyyfX MaUCSE9o9KOO9563bwUb3Tiq970Y7HEcOeIM452c0S4IK82rZac6B7Lfm1OLd+OTrsUpbe rv68ro2Cg5KXBsSNMdbOikVlq367lb2PPN4ShOl+++nc8QMrliZ4ZgzLdleP+RC4nExR16 wEQCF7QxyMVZWxPTkgkzH7DdM8GGxPIk9fKFSHwUm5zH8vl5RkrQlXiP7G0hR//Scc+9lH ec8UCJgt4jc0jU8UH7RrBfd1UHxkasxBt2D4y/20/EKlnAjdaXbzkwnfog2okQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729384485; a=rsa-sha256; cv=none; b=O5u45GdKch2KOEbJxdPNR4TB1atWwCn09v6HySm2Q+P+QfBYk0ClqOqN2ula1EBoQFoPbN 9AmfZo+Jp15u8Aa9KqTFxufRQ9V0gJ6qZM8GF6UJfiwLbsrYuuEsRDQ9hyGKmPhcKyPv7A 1nwGvJA80ynSZFjiF918dLGcAzEQIZGVd0B0hSrIEoU74hIw6Mh081sq95hycL0nKQCScl A/tgwOatiyzJCzy+XSPYLqbYGhUtv2vat1m6V26ThBX5RuV5PE4RtIhqbJjFuyn5kK2xsu 8bBt/vCvnOLcpsAZl8N88vVq23xplu5d6q/CfkViRIT0ISVKMZQgoU1gpeb88Q== 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 4XWKFx1SrVzfMc; Sun, 20 Oct 2024 00:34:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K0Yjhj061290; Sun, 20 Oct 2024 00:34:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K0Yj3Z061287; Sun, 20 Oct 2024 00:34:45 GMT (envelope-from git) Date: Sun, 20 Oct 2024 00:34:45 GMT Message-Id: <202410200034.49K0Yj3Z061287@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: c0c550c1a366 - stable/14 - iommu.h: improve header self-sufficiency List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c0c550c1a36691e55a25511c847931f62391242b Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c0c550c1a36691e55a25511c847931f62391242b commit c0c550c1a36691e55a25511c847931f62391242b Author: Konstantin Belousov AuthorDate: 2024-10-13 09:45:41 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-20 00:33:03 +0000 iommu.h: improve header self-sufficiency (cherry picked from commit 26ff9d2050a11449211644c6cb83cda7d94a785a) --- sys/dev/iommu/iommu.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/dev/iommu/iommu.h b/sys/dev/iommu/iommu.h index 73d0a6f1279b..f425024117d3 100644 --- a/sys/dev/iommu/iommu.h +++ b/sys/dev/iommu/iommu.h @@ -31,9 +31,11 @@ #ifndef _DEV_IOMMU_IOMMU_H_ #define _DEV_IOMMU_IOMMU_H_ +#include #include #include #include +#include struct bus_dma_tag_common; struct iommu_map_entry; From nobody Sun Oct 20 00:34:46 2024 X-Original-To: dev-commits-src-branches@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 4XWKFy5KmTz5ZW68; Sun, 20 Oct 2024 00:34:46 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWKFy38z5z4Zc1; Sun, 20 Oct 2024 00:34:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384486; 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=63/6Sl8PFYcrbVbWy6LxwuZ3aXHa+OAdPrWvFrw4GI4=; b=wptV1N7+d9zPOMJbeTOeuxkBjU4jnEgfTVjNI0xX8Bljls+9HvYn5T39kk6AqqUNX+Uyd4 V+zNSri4iJ3n6OrH1li+XIyYYvDAsxYx8tYmmlRTtvDm6tRG3jkCB07mCK9NgY9a3r+I1+ I7e3j7lxhKGZmbC05up6i7XxkZduTnAShoHdNez331WgyBQMKxFwJHi8v7MZRAwlbxkyPj 9HFZPX5XmfC24lVJ9OGTJ+JJ9SkU3wkKhpUZvOS/wOzqBr1v3oCt+bTTZORETKub6F0zb4 63gtqWGGFoNhVPGo1Kxm47Bvlb8gGre9kiFB6VKZ82qqi5/rzCqlW5r50jojuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384486; 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=63/6Sl8PFYcrbVbWy6LxwuZ3aXHa+OAdPrWvFrw4GI4=; b=J4CK/XfUbfTPCKYUCLF0chxgGhYg+O8TsYnhpP7uyANVotL/ec8njEQemV5qvxoGJmSpWX 2roRD04YSY/ahe8sXb4XYEMjNzT+MLEu8vlHuoPTwrPJ5NPBC7bx3j86Ac4sIvQ0+Ppik0 vAkdN2FdIhReJzRT/1OD35K6+K4NiqnvaPv/XmEnn7/58uDIrsOdg/KCd8VgTXOygju1N3 ypVkx7z6TmeG5r8aCvYjzloIZR6vOF3+3VVs6DD8qpFO6hxi5Vd1laK7qDs3us6qyU7yYD 2YkHw30KdUm4aAtFaTEVZt8uonlCKUqhkxUX1krst6KNzlXbRGcnyDK2CUsvzQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729384486; a=rsa-sha256; cv=none; b=bgUV90R0Wf/K/5JxuQeW/EX9nXnH2CAlkWDbZ4ki+bf3PSkQtbjLca/lmBTuMtEC5bVIWl b8Cmp/2j6K5bw7fOBo63MUVDronPO7BpL/IIrw3o0aNlJO+MkvSetViUBpJz03IYws8v2c yDqD6njuzQoT4neqs0hVwvSapZ6trTM1W2i8E6/tEaqQQKp4rZYWYpyAbA3Es8laxpfCAG MioDuMM3hlVfsQNlP0fuzEbzMoovUhprs2KaZwR3Mx0VhexRbKFJuM/JugSvERu6TbDbAy n+OU7xIvd9IudVmc6xuXOc2McEnZfLGN1B40ixKTEdIbWiDnkQycZ4BOuHGcUA== 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 4XWKFy2lb2zgDD; Sun, 20 Oct 2024 00:34:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K0Ykhd061344; Sun, 20 Oct 2024 00:34:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K0YkeI061341; Sun, 20 Oct 2024 00:34:46 GMT (envelope-from git) Date: Sun, 20 Oct 2024 00:34:46 GMT Message-Id: <202410200034.49K0YkeI061341@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: c01a4b1fbc05 - stable/14 - iommu_get_requester(): do not panic if asked about non-pci device List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c01a4b1fbc05333b9faefb8d381b903e122a4cea Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c01a4b1fbc05333b9faefb8d381b903e122a4cea commit c01a4b1fbc05333b9faefb8d381b903e122a4cea Author: Konstantin Belousov AuthorDate: 2024-10-13 10:04:32 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-20 00:33:03 +0000 iommu_get_requester(): do not panic if asked about non-pci device (cherry picked from commit 7896b03fff4d9c2e9c35ecf1dce2e0d672467a5a) --- sys/dev/iommu/busdma_iommu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/dev/iommu/busdma_iommu.c b/sys/dev/iommu/busdma_iommu.c index f3b58306d6af..dbd4ee0ef0f1 100644 --- a/sys/dev/iommu/busdma_iommu.c +++ b/sys/dev/iommu/busdma_iommu.c @@ -127,6 +127,12 @@ iommu_get_requester(device_t dev, uint16_t *rid) pci_class = devclass_find("pci"); l = requester = dev; + pci = device_get_parent(dev); + if (pci == NULL || device_get_devclass(pci) != pci_class) { + *rid = 0; /* XXXKIB: Could be ACPI HID */ + return (requester); + } + *rid = pci_get_rid(dev); /* From nobody Sun Oct 20 00:34:47 2024 X-Original-To: dev-commits-src-branches@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 4XWKFz6Dfqz5ZWCW; Sun, 20 Oct 2024 00:34:47 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWKFz4FnVz4ZGf; Sun, 20 Oct 2024 00:34:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384487; 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=1LPz0lRo4QK/mZhYFChLbIagMhUnKl1lRXWs7VqkQyY=; b=gXD7VkVhay0LoDgwKWchEqOWeBrbv0QSSm1qgSZ+jfvN0h07GGZdWrLcVHID70yyEHAcMS /cSTfF7NepTOftOXwHC/x6rcnQp4jUUOfyf59K+ojwpp/0kijujaKJMZNeXre2lYVmkyzE XzuA9qkgI1jMGIl2SucsGLQGZ9Ysm+ZHU535T8Mi6NY8XbGgFRWCt+04olwENwMnXfq+0w 6XdpB66cgSdB5XggDgO366SOs3BpE/e8PMGCqh7wWs5TIreEMVyCEM8rdAv1+sHsWeAzrf vfD2fhjxHdf7iA2bm0H0wSwGv1WRpsBVTuXSbA2O0K1D8bOt+k9ABtq+iUWkbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384487; 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=1LPz0lRo4QK/mZhYFChLbIagMhUnKl1lRXWs7VqkQyY=; b=QclA7K9NaIhDNLxrrxV0ISHw0N8BvzAfAQkMgRWQ0+KrSI4t+IeQ0BQpaBId8vPz/YkhrI 8hc3S6klOBrMrvFjOdahAMF6ihl6ijhj2XzCk2hH9yFMo85qgvBU3yzap9iCs337HsjVav peJ/yChMknHXd59SS3MEK3x2nXG0KMWi29YXCdMYCDYlDKqhWUxYB3yUXod5zZ3wMfE95a Sigggn4Y6O27Mq+d3HMSalJjJQBpxZcGU5bHa4Z2pve4B8Lv2hSZO6WoQXszYCl7545VYr NxJtEnMRt+P2PEAFbA/yzyIEsywPPPJ6BWDegv694y54SbBmNDBeGXNzwX37rA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729384487; a=rsa-sha256; cv=none; b=eaeJOG5+Khophi+R4F53Nvvf2lCt5qe8n29toSHWvbnFpvG4ESQ4ipTnUG2YJAxJwOnATG OhlUmEwKVTuEX0BHkKNee2CYMqEzFKJqIAUFRTpoSBClRc6I94OVfJN4r6DIex/OSVMqqB /HDK66XiZPCQMnd4VZh24bjpUkYLCTau2rWu52XLTBkL8UnbRnTxTEVmAE+1Rph+q4f5Fs l2Ud4YuFNTlYqUxdrEXyHyPbBAXRPpMO+EFE6MQVT2O1Lud1owzjRtSEbPTicK70UC42Pc HV6fq3qPO7b76P1ruMzBzu+fhZ+H0oU974pJEvQyXjC3VSVUV3/Bef0hO8kecg== 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 4XWKFz3phBzfcT; Sun, 20 Oct 2024 00:34:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K0Yl9n061403; Sun, 20 Oct 2024 00:34:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K0Ylo4061400; Sun, 20 Oct 2024 00:34:47 GMT (envelope-from git) Date: Sun, 20 Oct 2024 00:34:47 GMT Message-Id: <202410200034.49K0Ylo4061400@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: b38cff22720b - stable/14 - iommu: move context link and ref count into device-independent parts List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b38cff22720b66d6c22b157487772091e3f3e8ee Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=b38cff22720b66d6c22b157487772091e3f3e8ee commit b38cff22720b66d6c22b157487772091e3f3e8ee Author: Konstantin Belousov AuthorDate: 2024-10-12 19:56:14 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-20 00:33:04 +0000 iommu: move context link and ref count into device-independent parts (cherry picked from commit e9d948cfe0d21780d2e94137e322ecfe89f75d6a) --- sys/dev/iommu/iommu.h | 3 +++ sys/x86/iommu/intel_ctx.c | 38 ++++++++++++++-------------- sys/x86/iommu/intel_dmar.h | 3 --- sys/x86/iommu/intel_drv.c | 61 +++++++++------------------------------------ sys/x86/iommu/iommu_utils.c | 41 ++++++++++++++++++++++++++++++ sys/x86/iommu/x86_iommu.h | 3 +++ 6 files changed, 78 insertions(+), 71 deletions(-) diff --git a/sys/dev/iommu/iommu.h b/sys/dev/iommu/iommu.h index f425024117d3..b1858f0df9f7 100644 --- a/sys/dev/iommu/iommu.h +++ b/sys/dev/iommu/iommu.h @@ -121,11 +121,14 @@ struct iommu_domain { iommu_gaddr_t msi_base; /* (d) Arch-specific */ vm_paddr_t msi_phys; /* (d) Arch-specific */ u_int flags; /* (u) */ + LIST_HEAD(, iommu_ctx) contexts;/* (u) */ }; struct iommu_ctx { struct iommu_domain *domain; /* (c) */ struct bus_dma_tag_iommu *tag; /* (c) Root tag */ + LIST_ENTRY(iommu_ctx) link; /* (u) Member in the domain list */ + u_int refs; /* (u) References from tags */ u_long loads; /* atomic updates, for stat only */ u_long unloads; /* same */ u_int flags; /* (u) */ diff --git a/sys/x86/iommu/intel_ctx.c b/sys/x86/iommu/intel_ctx.c index bdb5f8740bf2..c7c7012e94ea 100644 --- a/sys/x86/iommu/intel_ctx.c +++ b/sys/x86/iommu/intel_ctx.c @@ -376,7 +376,7 @@ dmar_domain_alloc(struct dmar_unit *dmar, bool id_mapped) iodom = DOM2IODOM(domain); unit = DMAR2IOMMU(dmar); domain->domain = id; - LIST_INIT(&domain->contexts); + LIST_INIT(&iodom->contexts); iommu_domain_init(unit, iodom, &dmar_domain_map_ops); domain->dmar = dmar; @@ -431,7 +431,7 @@ dmar_ctx_alloc(struct dmar_domain *domain, uint16_t rid) ctx->context.tag = malloc(sizeof(struct bus_dma_tag_iommu), M_DMAR_CTX, M_WAITOK | M_ZERO); ctx->context.rid = rid; - ctx->refs = 1; + ctx->context.refs = 1; return (ctx); } @@ -447,7 +447,7 @@ dmar_ctx_link(struct dmar_ctx *ctx) domain->ctx_cnt)); domain->refs++; domain->ctx_cnt++; - LIST_INSERT_HEAD(&domain->contexts, ctx, link); + LIST_INSERT_HEAD(&domain->iodom.contexts, &ctx->context, link); } static void @@ -464,7 +464,7 @@ dmar_ctx_unlink(struct dmar_ctx *ctx) domain->refs, domain->ctx_cnt)); domain->refs--; domain->ctx_cnt--; - LIST_REMOVE(ctx, link); + LIST_REMOVE(&ctx->context, link); } static void @@ -477,7 +477,7 @@ dmar_domain_destroy(struct dmar_domain *domain) KASSERT(TAILQ_EMPTY(&domain->iodom.unload_entries), ("unfinished unloads %p", domain)); - KASSERT(LIST_EMPTY(&domain->contexts), + KASSERT(LIST_EMPTY(&iodom->contexts), ("destroying dom %p with contexts", domain)); KASSERT(domain->ctx_cnt == 0, ("destroying dom %p with ctx_cnt %d", domain, domain->ctx_cnt)); @@ -594,13 +594,13 @@ dmar_get_ctx_for_dev1(struct dmar_unit *dmar, device_t dev, uint16_t rid, /* Nothing needs to be done to destroy ctx1. */ free(ctx1, M_DMAR_CTX); domain = CTX2DOM(ctx); - ctx->refs++; /* tag referenced us */ + ctx->context.refs++; /* tag referenced us */ } } else { domain = CTX2DOM(ctx); if (ctx->context.tag->owner == NULL) ctx->context.tag->owner = dev; - ctx->refs++; /* tag referenced us */ + ctx->context.refs++; /* tag referenced us */ } error = dmar_flush_for_ctx_entry(dmar, enable); @@ -738,15 +738,15 @@ dmar_free_ctx_locked(struct dmar_unit *dmar, struct dmar_ctx *ctx) struct dmar_domain *domain; DMAR_ASSERT_LOCKED(dmar); - KASSERT(ctx->refs >= 1, - ("dmar %p ctx %p refs %u", dmar, ctx, ctx->refs)); + KASSERT(ctx->context.refs >= 1, + ("dmar %p ctx %p refs %u", dmar, ctx, ctx->context.refs)); /* * If our reference is not last, only the dereference should * be performed. */ - if (ctx->refs > 1) { - ctx->refs--; + if (ctx->context.refs > 1) { + ctx->context.refs--; DMAR_UNLOCK(dmar); return; } @@ -763,15 +763,15 @@ dmar_free_ctx_locked(struct dmar_unit *dmar, struct dmar_ctx *ctx) TD_PREP_PINNED_ASSERT; ctxp = dmar_map_ctx_entry(ctx, &sf); DMAR_LOCK(dmar); - KASSERT(ctx->refs >= 1, - ("dmar %p ctx %p refs %u", dmar, ctx, ctx->refs)); + KASSERT(ctx->context.refs >= 1, + ("dmar %p ctx %p refs %u", dmar, ctx, ctx->context.refs)); /* * Other thread might have referenced the context, in which * case again only the dereference should be performed. */ - if (ctx->refs > 1) { - ctx->refs--; + if (ctx->context.refs > 1) { + ctx->context.refs--; DMAR_UNLOCK(dmar); iommu_unmap_pgtbl(sf); TD_PINNED_ASSERT; @@ -821,14 +821,14 @@ struct dmar_ctx * dmar_find_ctx_locked(struct dmar_unit *dmar, uint16_t rid) { struct dmar_domain *domain; - struct dmar_ctx *ctx; + struct iommu_ctx *ctx; DMAR_ASSERT_LOCKED(dmar); LIST_FOREACH(domain, &dmar->domains, link) { - LIST_FOREACH(ctx, &domain->contexts, link) { - if (ctx->context.rid == rid) - return (ctx); + LIST_FOREACH(ctx, &domain->iodom.contexts, link) { + if (ctx->rid == rid) + return (IOCTX2CTX(ctx)); } } return (NULL); diff --git a/sys/x86/iommu/intel_dmar.h b/sys/x86/iommu/intel_dmar.h index fcdc915abcfd..c3163abf6f92 100644 --- a/sys/x86/iommu/intel_dmar.h +++ b/sys/x86/iommu/intel_dmar.h @@ -65,7 +65,6 @@ struct dmar_domain { u_int refs; /* (u) Refs, including ctx */ struct dmar_unit *dmar; /* (c) */ LIST_ENTRY(dmar_domain) link; /* (u) Member in the dmar list */ - LIST_HEAD(, dmar_ctx) contexts; /* (u) */ vm_object_t pgtbl_obj; /* (c) Page table pages */ u_int batch_no; }; @@ -73,8 +72,6 @@ struct dmar_domain { struct dmar_ctx { struct iommu_ctx context; uint64_t last_fault_rec[2]; /* Last fault reported */ - LIST_ENTRY(dmar_ctx) link; /* (u) Member in the domain list */ - u_int refs; /* (u) References from tags */ }; #define DMAR_DOMAIN_PGLOCK(dom) VM_OBJECT_WLOCK((dom)->pgtbl_obj) diff --git a/sys/x86/iommu/intel_drv.c b/sys/x86/iommu/intel_drv.c index cc16759ebe34..e973115df21b 100644 --- a/sys/x86/iommu/intel_drv.c +++ b/sys/x86/iommu/intel_drv.c @@ -1053,48 +1053,12 @@ dmar_instantiate_rmrr_ctxs(struct iommu_unit *unit) #include #include -static void -dmar_print_domain_entry(const struct iommu_map_entry *entry) -{ - struct iommu_map_entry *l, *r; - - db_printf( - " start %jx end %jx first %jx last %jx free_down %jx flags %x ", - entry->start, entry->end, entry->first, entry->last, - entry->free_down, entry->flags); - db_printf("left "); - l = RB_LEFT(entry, rb_entry); - if (l == NULL) - db_printf("NULL "); - else - db_printf("%jx ", l->start); - db_printf("right "); - r = RB_RIGHT(entry, rb_entry); - if (r == NULL) - db_printf("NULL"); - else - db_printf("%jx", r->start); - db_printf("\n"); -} - -static void -dmar_print_ctx(struct dmar_ctx *ctx) -{ - - db_printf( - " @%p pci%d:%d:%d refs %d flags %x loads %lu unloads %lu\n", - ctx, pci_get_bus(ctx->context.tag->owner), - pci_get_slot(ctx->context.tag->owner), - pci_get_function(ctx->context.tag->owner), ctx->refs, - ctx->context.flags, ctx->context.loads, ctx->context.unloads); -} - static void dmar_print_domain(struct dmar_domain *domain, bool show_mappings) { struct iommu_domain *iodom; struct iommu_map_entry *entry; - struct dmar_ctx *ctx; + struct iommu_ctx *ctx; iodom = DOM2IODOM(domain); @@ -1104,16 +1068,16 @@ dmar_print_domain(struct dmar_domain *domain, bool show_mappings) domain, domain->domain, domain->mgaw, domain->agaw, domain->pglvl, (uintmax_t)domain->iodom.end, domain->refs, domain->ctx_cnt, domain->iodom.flags, domain->pgtbl_obj, domain->iodom.entries_cnt); - if (!LIST_EMPTY(&domain->contexts)) { + if (!LIST_EMPTY(&iodom->contexts)) { db_printf(" Contexts:\n"); - LIST_FOREACH(ctx, &domain->contexts, link) - dmar_print_ctx(ctx); + LIST_FOREACH(ctx, &iodom->contexts, link) + iommu_db_print_ctx(ctx); } if (!show_mappings) return; db_printf(" mapped:\n"); RB_FOREACH(entry, iommu_gas_entries_tree, &iodom->rb_root) { - dmar_print_domain_entry(entry); + iommu_db_print_domain_entry(entry); if (db_pager_quit) break; } @@ -1121,7 +1085,7 @@ dmar_print_domain(struct dmar_domain *domain, bool show_mappings) return; db_printf(" unloading:\n"); TAILQ_FOREACH(entry, &domain->iodom.unload_entries, dmamap_link) { - dmar_print_domain_entry(entry); + iommu_db_print_domain_entry(entry); if (db_pager_quit) break; } @@ -1131,7 +1095,7 @@ DB_SHOW_COMMAND_FLAGS(dmar_domain, db_dmar_print_domain, CS_OWN) { struct dmar_unit *unit; struct dmar_domain *domain; - struct dmar_ctx *ctx; + struct iommu_ctx *ctx; bool show_mappings, valid; int pci_domain, bus, device, function, i, t; db_expr_t radix; @@ -1179,13 +1143,12 @@ DB_SHOW_COMMAND_FLAGS(dmar_domain, db_dmar_print_domain, CS_OWN) for (i = 0; i < dmar_devcnt; i++) { unit = device_get_softc(dmar_devs[i]); LIST_FOREACH(domain, &unit->domains, link) { - LIST_FOREACH(ctx, &domain->contexts, link) { + LIST_FOREACH(ctx, &domain->iodom.contexts, link) { if (pci_domain == unit->segment && - bus == pci_get_bus(ctx->context.tag->owner) && - device == - pci_get_slot(ctx->context.tag->owner) && - function == - pci_get_function(ctx->context.tag->owner)) { + bus == pci_get_bus(ctx->tag->owner) && + device == pci_get_slot(ctx->tag->owner) && + function == pci_get_function(ctx->tag-> + owner)) { dmar_print_domain(domain, show_mappings); goto out; diff --git a/sys/x86/iommu/iommu_utils.c b/sys/x86/iommu/iommu_utils.c index db8f94eb584f..fde3f150947b 100644 --- a/sys/x86/iommu/iommu_utils.c +++ b/sys/x86/iommu/iommu_utils.c @@ -34,6 +34,7 @@ #else #include "opt_apic.h" #endif +#include "opt_ddb.h" #include #include @@ -756,3 +757,43 @@ pglvl_page_size(int total_pglvl, int lvl) KASSERT(rlvl < nitems(pg_sz), ("sizeof pg_sz lvl %d", lvl)); return (pg_sz[rlvl]); } + +#ifdef DDB +#include +#include + +void +iommu_db_print_domain_entry(const struct iommu_map_entry *entry) +{ + struct iommu_map_entry *l, *r; + + db_printf( + " start %jx end %jx first %jx last %jx free_down %jx flags %x ", + entry->start, entry->end, entry->first, entry->last, + entry->free_down, entry->flags); + db_printf("left "); + l = RB_LEFT(entry, rb_entry); + if (l == NULL) + db_printf("NULL "); + else + db_printf("%jx ", l->start); + db_printf("right "); + r = RB_RIGHT(entry, rb_entry); + if (r == NULL) + db_printf("NULL"); + else + db_printf("%jx", r->start); + db_printf("\n"); +} + +void +iommu_db_print_ctx(struct iommu_ctx *ctx) +{ + db_printf( + " @%p pci%d:%d:%d refs %d flags %#x loads %lu unloads %lu\n", + ctx, pci_get_bus(ctx->tag->owner), + pci_get_slot(ctx->tag->owner), + pci_get_function(ctx->tag->owner), ctx->refs, + ctx->flags, ctx->loads, ctx->unloads); +} +#endif diff --git a/sys/x86/iommu/x86_iommu.h b/sys/x86/iommu/x86_iommu.h index 4d0ac8351e2e..043935a3e0de 100644 --- a/sys/x86/iommu/x86_iommu.h +++ b/sys/x86/iommu/x86_iommu.h @@ -194,4 +194,7 @@ vm_pindex_t pglvl_pgtbl_get_pindex(int pglvl, iommu_gaddr_t base, int lvl); vm_pindex_t pglvl_max_pages(int pglvl); iommu_gaddr_t pglvl_page_size(int total_pglvl, int lvl); +void iommu_db_print_domain_entry(const struct iommu_map_entry *entry); +void iommu_db_print_ctx(struct iommu_ctx *ctx); + #endif From nobody Sun Oct 20 00:34:48 2024 X-Original-To: dev-commits-src-branches@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 4XWKG074YSz5ZWcb; Sun, 20 Oct 2024 00:34:48 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWKG04pt2z4ZPd; Sun, 20 Oct 2024 00:34:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384488; 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=/Dblnaa6N97Q/tWoZ5Dp+J9dpz8CGUbzT6zJ4T2z+O4=; b=uFBoetJOo/CsiRzGLNRy7F5xnVHXzAoAboxBTe9yOBI5M7UdrBxlmOiPHaPJYGllCOEDW/ q+bfBBeAW+ICA8nuqpkHtRP3l7N+kYso0OHdCsHqvYtP6BHpR+qNB2hJJUaxgaHftMvyCK J6xDlyYyqk/rWI8vzIvtpkCJ5xMesZJICwy0ZQwgK4krBtxH1SAWDzGXnSB+7wNmUzgZKZ zFP9LdRcBTS96aMGZPisN2ECSm3EfNZnGVxxgoocra0KZzG1WY+ANOQJo9ZbCytis8FNvD a0V9K3N1BLa9WrSpO0SM+VxXcFsJrZfKC1YRo6eH6lraxHWb/azm6jPDOgH3FQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384488; 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=/Dblnaa6N97Q/tWoZ5Dp+J9dpz8CGUbzT6zJ4T2z+O4=; b=EvW+F0xGNW5rN+2CIjUVKW52qdJqFc9YYlidwbNvuRL/pHr3Gaurm1Pf1U4d5SXJVr79md r7gk5xKguQGBskzLufUXK/xnfcXJZ9orBpzDq7U5BoaNl/6elg/uo0/fTJu+8tZuwCa4Aa lZIZv2agn0b26ULc0e6TkJXSV1k8BdeRyAdP9kaS1yywUQqhice0Hv3Vr8+eKuyleN3GiN l4YvTVZCyXzviMZa5hnb6B0IJ2F49gRegkx7mUvrrvMucOgLkL7scdQkE70dK5KW8gjvTJ ff0yzXKTPp37O2RxDYp4sNgIS44bjlJmv3/9cauGrnZae3wNGKRnScQViCkxkg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729384488; a=rsa-sha256; cv=none; b=tkUj0USKDECKOUBA41RJdQhbvBu7jAjS+b0VwQbWNkDQ76kMlsRwWfwYFjFmpJ8NdJjNeF ZofUjSi5Gs0FeyCUpwOFAhTFuVlGPzYBj9ohmKiTio+1tJG6k/y+jD01+HnDbedf1dwdkH 5iq7AK+m2Jg4nGF3OorTITKbs6UJnAh/RUJC6CyCJ8p/fSBml7rn2Zrk0+cJxGy8i26rxY Fa9JhXYd6TYnvFwBChEZUrzT+AYNQQ4M9hvzmB8uwes4QkfWfDcScGKavtM4j8gRh2Og/I AIOtaT7XzDlYdl1AEenzlvu4laV6fekFZxXIxwmAb5Znqpsl1abwD9e1nAF8qg== 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 4XWKG04NJjzfmF; Sun, 20 Oct 2024 00:34:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K0YmvT061467; Sun, 20 Oct 2024 00:34:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K0YmqN061464; Sun, 20 Oct 2024 00:34:48 GMT (envelope-from git) Date: Sun, 20 Oct 2024 00:34:48 GMT Message-Id: <202410200034.49K0YmqN061464@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: d4bcad451f5d - stable/14 - iommu: extract driver-independent ddb context and mapping reporting List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d4bcad451f5dc920748dda66b460a7985354b0da Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d4bcad451f5dc920748dda66b460a7985354b0da commit d4bcad451f5dc920748dda66b460a7985354b0da Author: Konstantin Belousov AuthorDate: 2024-10-12 20:18:05 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-20 00:33:04 +0000 iommu: extract driver-independent ddb context and mapping reporting (cherry picked from commit c9e22c749c0f3950b4526f630f6853ab104ab52f) --- sys/x86/iommu/intel_drv.c | 28 +++++----------------------- sys/x86/iommu/iommu_utils.c | 35 +++++++++++++++++++++++++++++++++++ sys/x86/iommu/x86_iommu.h | 2 ++ 3 files changed, 42 insertions(+), 23 deletions(-) diff --git a/sys/x86/iommu/intel_drv.c b/sys/x86/iommu/intel_drv.c index e973115df21b..ebc77879480b 100644 --- a/sys/x86/iommu/intel_drv.c +++ b/sys/x86/iommu/intel_drv.c @@ -1057,8 +1057,6 @@ static void dmar_print_domain(struct dmar_domain *domain, bool show_mappings) { struct iommu_domain *iodom; - struct iommu_map_entry *entry; - struct iommu_ctx *ctx; iodom = DOM2IODOM(domain); @@ -1068,27 +1066,11 @@ dmar_print_domain(struct dmar_domain *domain, bool show_mappings) domain, domain->domain, domain->mgaw, domain->agaw, domain->pglvl, (uintmax_t)domain->iodom.end, domain->refs, domain->ctx_cnt, domain->iodom.flags, domain->pgtbl_obj, domain->iodom.entries_cnt); - if (!LIST_EMPTY(&iodom->contexts)) { - db_printf(" Contexts:\n"); - LIST_FOREACH(ctx, &iodom->contexts, link) - iommu_db_print_ctx(ctx); - } - if (!show_mappings) - return; - db_printf(" mapped:\n"); - RB_FOREACH(entry, iommu_gas_entries_tree, &iodom->rb_root) { - iommu_db_print_domain_entry(entry); - if (db_pager_quit) - break; - } - if (db_pager_quit) - return; - db_printf(" unloading:\n"); - TAILQ_FOREACH(entry, &domain->iodom.unload_entries, dmamap_link) { - iommu_db_print_domain_entry(entry); - if (db_pager_quit) - break; - } + + iommu_db_domain_print_contexts(iodom); + + if (show_mappings) + iommu_db_domain_print_mappings(iodom); } DB_SHOW_COMMAND_FLAGS(dmar_domain, db_dmar_print_domain, CS_OWN) diff --git a/sys/x86/iommu/iommu_utils.c b/sys/x86/iommu/iommu_utils.c index fde3f150947b..259c87403b07 100644 --- a/sys/x86/iommu/iommu_utils.c +++ b/sys/x86/iommu/iommu_utils.c @@ -796,4 +796,39 @@ iommu_db_print_ctx(struct iommu_ctx *ctx) pci_get_function(ctx->tag->owner), ctx->refs, ctx->flags, ctx->loads, ctx->unloads); } + +void +iommu_db_domain_print_contexts(struct iommu_domain *iodom) +{ + struct iommu_ctx *ctx; + + if (LIST_EMPTY(&iodom->contexts)) + return; + + db_printf(" Contexts:\n"); + LIST_FOREACH(ctx, &iodom->contexts, link) + iommu_db_print_ctx(ctx); +} + +void +iommu_db_domain_print_mappings(struct iommu_domain *iodom) +{ + struct iommu_map_entry *entry; + + db_printf(" mapped:\n"); + RB_FOREACH(entry, iommu_gas_entries_tree, &iodom->rb_root) { + iommu_db_print_domain_entry(entry); + if (db_pager_quit) + break; + } + if (db_pager_quit) + return; + db_printf(" unloading:\n"); + TAILQ_FOREACH(entry, &iodom->unload_entries, dmamap_link) { + iommu_db_print_domain_entry(entry); + if (db_pager_quit) + break; + } +} + #endif diff --git a/sys/x86/iommu/x86_iommu.h b/sys/x86/iommu/x86_iommu.h index 043935a3e0de..92ac993e7c9c 100644 --- a/sys/x86/iommu/x86_iommu.h +++ b/sys/x86/iommu/x86_iommu.h @@ -196,5 +196,7 @@ iommu_gaddr_t pglvl_page_size(int total_pglvl, int lvl); void iommu_db_print_domain_entry(const struct iommu_map_entry *entry); void iommu_db_print_ctx(struct iommu_ctx *ctx); +void iommu_db_domain_print_contexts(struct iommu_domain *iodom); +void iommu_db_domain_print_mappings(struct iommu_domain *iodom); #endif From nobody Sun Oct 20 00:34:49 2024 X-Original-To: dev-commits-src-branches@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 4XWKG20v1xz5ZWQG; Sun, 20 Oct 2024 00:34:50 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWKG162pFz4Zdd; Sun, 20 Oct 2024 00:34:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384489; 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=LamU7lY5Ew8IRPJyioY9eIi9u06RlOJ+EEhltU6C2to=; b=ODxkJHxYcawg2qas46a4nrEW/8uH0V5iw0oSJvkfnSbV57t7x2/GuapjalWf8vQoIH32ir GrMQAlCoOamCJq8pqU5HqkVitU/Woicu6f9JENGf52jcnhJ4BXie5ZFSkYAHadA4Dtpp4W z4EasgUm9mlfRz2jiy2toqxrfx/iBlHHIWw41lHeluYl4fkqiwhfDYpW9qHnnkczl7fn5r KYRL5TgmHNOPFZQJ7aJhwM/8vN+Pe4hmYOOdBxYMhGtjDyEuA8nX1WgSmdWyZR3xam9BnZ 948TzGHIANYRdR6aLeTtX3HIxwfsweFuvPFFjcJaene0RnDcZDSGjuM0oxTENQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384489; 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=LamU7lY5Ew8IRPJyioY9eIi9u06RlOJ+EEhltU6C2to=; b=IiqNgBLEQRkd1Vz33MtTvhxAdRBPjTbSnD8tJDqGABTNy2ZECi3i+GXg1wYtq1yYYoTQlQ zyLpCJjwYPtXNLicuBstbYFMIsBYlMSuh/Sl3OvW/ftAo8Ot4FeN/d+STIoFFFeJayj00R Bd/6H5lfQYFBlNrS9Kx8NYtTKpcPGq9fIraUKf97WTZmNPb/v0TF9O8YzJKdInAzR04o7Q W2kXQxPJsb9ALv6rzxhelofljj6QWkvhDybaNV3Fje3wp564SQMQgnoClXLT+PKKnxf0b5 JcoiZcJjPZCnONnkidJjA/YAaBB60J4oP/9awzJMKajvcihy6pg8KJsznMBmgA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729384489; a=rsa-sha256; cv=none; b=P89p57WmFL5DUVMWzVKFCc0ahlCiqizj25AU2iqMC2FMLmMETmBKsdBpuz2D9wYZ8S2Hlu Qh4NBYwkj3e0VV83QhDENsX854F0kgQyyK2YbyUAQ2EDRBVlieKs6WLQvF409uHPTvfmlB v/H3P9LoUEdto00J2jbOPkhu8SBc0dkJ57bZFCFXQNCMoonEjYpjO05cITyXxlTYbywHqk g+wxj0eugvK+IZ0raxiS9teZnxY1LvlQHU2KjV0D+by6hMsI39ot4GAkT1AZAz3DX4IqJq PimJlvEM3zVhG2mcPx2AnN7WsXwwp9rQrhKXICWpzU37D9P2kYLmSI1+4IwWTA== 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 4XWKG15fzxzg01; Sun, 20 Oct 2024 00:34:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K0Yn7U061520; Sun, 20 Oct 2024 00:34:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K0YnnZ061517; Sun, 20 Oct 2024 00:34:49 GMT (envelope-from git) Date: Sun, 20 Oct 2024 00:34:49 GMT Message-Id: <202410200034.49K0YnnZ061517@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 959f0d0cdb14 - stable/14 - md(4): always trim the last partial sector List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 959f0d0cdb1482d754f24b7ae16bda0ac2e7b31a Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=959f0d0cdb1482d754f24b7ae16bda0ac2e7b31a commit 959f0d0cdb1482d754f24b7ae16bda0ac2e7b31a Author: Konstantin Belousov AuthorDate: 2024-10-13 21:28:22 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-20 00:33:04 +0000 md(4): always trim the last partial sector PR: 281978 (cherry picked from commit 4bf34c597c44a2393ac5ec483e9cecac128d8202) --- sys/dev/md/md.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c index 1d531b88193f..3285cfef830d 100644 --- a/sys/dev/md/md.c +++ b/sys/dev/md/md.c @@ -1303,6 +1303,7 @@ mdinit(struct md_s *sc) { struct g_geom *gp; struct g_provider *pp; + unsigned remn; g_topology_lock(); gp = g_new_geomf(&g_md_class, "md%d", sc->unit); @@ -1311,6 +1312,13 @@ mdinit(struct md_s *sc) devstat_remove_entry(pp->stat); pp->stat = NULL; pp->flags |= G_PF_DIRECT_SEND | G_PF_DIRECT_RECEIVE; + /* Prune off any residual fractional sector. */ + remn = sc->mediasize % sc->sectorsize; + if (remn != 0) { + printf("md%d: truncating fractional last sector by %u bytes\n", + sc->unit, remn); + sc->mediasize -= remn; + } pp->mediasize = sc->mediasize; pp->sectorsize = sc->sectorsize; switch (sc->type) { @@ -1680,7 +1688,7 @@ kern_mdattach_locked(struct thread *td, struct md_req *mdr) { struct md_s *sc; unsigned sectsize; - int error, i; + int error; sx_assert(&md_sx, SA_XLOCKED); @@ -1752,10 +1760,6 @@ err_after_new: return (error); } - /* Prune off any residual fractional sector */ - i = sc->mediasize % sc->sectorsize; - sc->mediasize -= i; - mdinit(sc); return (0); } From nobody Sun Oct 20 00:34:50 2024 X-Original-To: dev-commits-src-branches@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 4XWKG32TjVz5ZWCX; Sun, 20 Oct 2024 00:34:51 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWKG3052rz4ZkF; Sun, 20 Oct 2024 00:34:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384491; 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=jV9kMcvI9A345RApNFkVhcKZLl11hn1w27pyojP6NUo=; b=Msrh9xIxa3GZ7Hpm5lcvc8Yb6MyRtLP5/eVVjaZIKfd68wH4fDXm9+UxwgK37xS19Wmwwu HTNYX1GJnG/dwzzdMFm2F/BjmWvG2mjDUbaLSN8+69WK6v+0KWgiqEpxjsubonrrTDvMMg 1iXkDigDJqguxLc1KOci/Mz4cnl0X1W1nC4KHA/R3L5erQNRYJk0BRWGZt+HX1su6fiGDE o6DgX5jCgFM9U+/vM5g6OZUn3UebwF5Z0CsSUyMzhWmdtDdRLksBzoAUSEqqi6G4dUU04y wbWAXEvME0Gh9zNbhg1284U8McTVEF5eZejWg6GN+L1Kqjt2E4gGm4NMfKLEuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729384491; 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=jV9kMcvI9A345RApNFkVhcKZLl11hn1w27pyojP6NUo=; b=wyZKhm7RxeZJxO3HfgNGhFyNlAEnW3cEqkki8P2H3gZuFXnpsreT0NP3iv14kTPjrbYmOi rhOo9iEhluWnAZm6WC6cjk2do9sk9hxlSoeae/lKxHJRLXusseacMhvpP/40Au5zfDTiNF bHkr7Pofo58H9w1pRToZZANvH/qnCr1Kh4yLYiJbrip/+8z7g3abcezTncKIi+wxWp9FPt 3gR9uyTTzMTujdraQRn0de2FnmIu1IUiWuJzOIzTHLWdKUMYQGm/V2E1bV3BcbOpXLmnWO Ppet7tfYVxxlsok09qaLklui230QR4RLZvYYNCEhlBc5BeWaLGNQpm8aCzYvuQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729384491; a=rsa-sha256; cv=none; b=vXjAKIrmSEsXWvl2mJmj0KTP3Tg0Gc/KUPWBzygO2lDyKnHmOhvxZUm50xSDpDDvdjBZbb KQE+BZaqKV0SlDnyRTVZELSBaMWLj85tRX9dQP/SxEa1l8cnS33/5EJTFlhdOpDbxY9fag YghNi/upzcISuv6yO0cBn2wlgAnKngZ7cAfW30gsS+RuWQE4GaaxExmT+KUE/GyYS/gENG H7OxZmBo7JKtl+JkmqPD5JedgV4ou7W9KxP61/XSLCLJFOJWPIk14ejeTz3Q/rJhAwljWB I7ZkRPiSTrLKUAHaP2UP6cAZH9g7hxWPOWjtBOHhVcfuHkTwZTYrIi8hbsUR0g== 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 4XWKG26m2kzgBM; Sun, 20 Oct 2024 00:34:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K0Yod0061570; Sun, 20 Oct 2024 00:34:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K0Yo4D061567; Sun, 20 Oct 2024 00:34:50 GMT (envelope-from git) Date: Sun, 20 Oct 2024 00:34:50 GMT Message-Id: <202410200034.49K0Yo4D061567@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: def4322f9632 - stable/14 - ftime.3: fix typo in spelling of libutil List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: def4322f9632fddc1953df0210f278bd04026f9c Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=def4322f9632fddc1953df0210f278bd04026f9c commit def4322f9632fddc1953df0210f278bd04026f9c Author: Keith White AuthorDate: 2024-10-18 12:49:30 +0000 Commit: Konstantin Belousov CommitDate: 2024-10-20 00:33:44 +0000 ftime.3: fix typo in spelling of libutil PR: 282171 (cherry picked from commit 167bfde7057f38894c8fbd790a65136f0174368e) --- lib/libutil/ftime.3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libutil/ftime.3 b/lib/libutil/ftime.3 index dbed25317115..d87743d8720d 100644 --- a/lib/libutil/ftime.3 +++ b/lib/libutil/ftime.3 @@ -34,7 +34,7 @@ .Nm ftime .Nd get date and time .Sh LIBRARY -.Lb libuitl +.Lb libutil .Sh SYNOPSIS .In sys/types.h .In sys/timeb.h From nobody Sun Oct 20 05:04:48 2024 X-Original-To: dev-commits-src-branches@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 4XWRFX3GWPz5ZnPN; Sun, 20 Oct 2024 05:04:48 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWRFX2vYnz41DP; Sun, 20 Oct 2024 05:04:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400688; 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=rd4ZT8sE7c+Ve8kRXnAurv6kHU9eJkr4kW7tbaa7aFM=; b=KjRgeoFLYLa0rcLXaL1385yM9aa6Aa59Qis37IbDJVthsqdq0clX77ReUQIW1t6L8cp3Vp m0iNOpXCQHGDmJ76s3W5M8Di/Xmn/zsggk4DzasBuxwIu3Hc4ZIpALtAxlkab3Xd/bL+DT JdUUlaCpVgOgI9UCCQ+QdC0W2hcN+Iy0OfYxhpnQh+j8vyNnQxMiv3CWwekOq+HJ/FuCBW Itl1FClRZN9pLoo/w1ptslfYJCWY6NHa0UwP/P4T5UErA7NV/HiIdzy17vyDvnpOR5Lkxz ZrwxV6mbuU/TvoyX+A8xWm4DH9miPxT+7WUE+bC0QGXMV76+PF24lKMZG34fqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400688; 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=rd4ZT8sE7c+Ve8kRXnAurv6kHU9eJkr4kW7tbaa7aFM=; b=OlzwModKyw0Zrzn5woxvWIrTk36o8u+8WEV05GI0rrZboobfdNdwkTf1hN+Une6mRie1pj XAIPnWIrMv1xCnCc3hhEh11+fuDHPXHll29RB6bznS4v/8rQ6khV06b14XWw9L47B9bjcg 9pQLrNaYngHi9qjQDdjOoEvYb+dje+YBEipvcyXJ75DRMCE8Twfu0rxR1NobrSqd9/u0Cz 9n1cRLlUpZ1ZSEO0k2emV57HJ++FACnPZ4yerszvPUjWMsxXDMM7RrL2A6sjOQgv1CCZm5 y7IKtoWGHMjPcU0BRp7sgRnyQZar745kXNj9L726UWfn+UkSJilz5hiBmY9DnQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729400688; a=rsa-sha256; cv=none; b=yM6v37RyoFMvUYvJvIHoeYKVa5aZxM9vZZVDrlXz5cMVXdkhmSJtr9E91DpzJBz2vjACVi VQYX5HuoyHNZXNhjIJQP8M1AyiK1sFX9AqcEiA+FzF/IAMyqXQBl7HFW9ySuWzkXv6R2WK qiqoxC96nUt5RVWIBPkLP1VSXMiBqqrautPwOTRb+q6Kter9V9pRijX8KkF73R9FqvvUW7 GHMR4ztwlpk96TcjNyUWtLZMnmwBPZrTr2yvVrnbywGuhS0b4TNleC+GgB0G1Ix1h5j6ax mPkqAsPegK12R7jM8QYkjoCjsFEn/A0H1EbF09RUyvbMeErOOSbiv6ov7l90pA== 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 4XWRFX2Vgbznqc; Sun, 20 Oct 2024 05:04:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K54m62063023; Sun, 20 Oct 2024 05:04:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K54mha063020; Sun, 20 Oct 2024 05:04:48 GMT (envelope-from git) Date: Sun, 20 Oct 2024 05:04:48 GMT Message-Id: <202410200504.49K54mha063020@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 472a0ccf847a - stable/14 - igc: Add AIM List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 472a0ccf847a2b9ca1199d0786ff46f2abf448b4 Auto-Submitted: auto-generated The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=472a0ccf847a2b9ca1199d0786ff46f2abf448b4 commit 472a0ccf847a2b9ca1199d0786ff46f2abf448b4 Author: Kevin Bowling AuthorDate: 2024-10-11 01:20:13 +0000 Commit: Kevin Bowling CommitDate: 2024-10-20 05:03:58 +0000 igc: Add AIM igc is derived from igb and has never had an AIM implementation. The same algorithm from e1000 is appropriate here. Upon more detailed study of the Linux driver which has a newer AIM implementation, it finally became clear to me this is actually a holdoff timer and not an interrupt limit as it is conventionally (statically) programmed and displayed as an interrupt rate. The data sheets also make this somewhat clear. Thus, AIM accomplishes two beneficial things for a wide variety of workloads[1]: 1. At low throughput/packet rates, it will significantly lower latency (by counter-intuitively "increasing" the interrupt rate.. better thought of as decreasing the holdoff timer because you will modulate down before coming anywhere near these interrupt rates). 2. At bulk data rates, it is tuned to achieve a lower interrupt rate (by increasing the holdoff timer) than the current static 8000/s. This decreases processing overhead and yields more headroom for other work such as packet filters or userland. For a single NIC this might be worth a few sys% on common CPUs, but may be meaningful when multiplied such as if_lagg, if_bridge and forwarding setups. The AIM algorithm was re-introduced from the older igb or out of tree driver, and then modernized with permission to use Intel code from other drivers. [1]: http://iommu.com/datasheets/ethernet/controllers-nics/intel/e1000/gbe-controllers-interrupt-moderation-appl-note.pdf Relnotes: yes Sponsored by: Rubicon Communications, LLC ("Netgate") Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D47053 (cherry picked from commit bc9402abdd11630ced33cbecb79b0d72f203f08a) --- sys/dev/igc/if_igc.c | 232 +++++++++++++++++++++++++++++++++++++++++++++++-- sys/dev/igc/if_igc.h | 27 +++++- sys/dev/igc/igc_txrx.c | 4 + 3 files changed, 256 insertions(+), 7 deletions(-) diff --git a/sys/dev/igc/if_igc.c b/sys/dev/igc/if_igc.c index 006fecdab7b0..c4f5e82ff8c8 100644 --- a/sys/dev/igc/if_igc.c +++ b/sys/dev/igc/if_igc.c @@ -1,9 +1,9 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * + * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * All rights reserved. - * Copyright (c) 2021 Rubicon Communications, LLC (Netgate) + * Copyright (c) 2021-2024 Rubicon Communications, LLC (Netgate) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -125,6 +125,8 @@ static int igc_sysctl_debug_info(SYSCTL_HANDLER_ARGS); static int igc_get_rs(SYSCTL_HANDLER_ARGS); static void igc_print_debug_info(struct igc_adapter *); static int igc_is_valid_ether_addr(u8 *); +static void igc_neweitr(struct igc_adapter *, struct igc_rx_queue *, + struct tx_ring *, struct rx_ring *); /* Management and WOL Support */ static void igc_get_hw_control(struct igc_adapter *); static void igc_release_hw_control(struct igc_adapter *); @@ -238,10 +240,19 @@ static int igc_eee_setting = 1; SYSCTL_INT(_hw_igc, OID_AUTO, eee_setting, CTLFLAG_RDTUN, &igc_eee_setting, 0, "Enable Energy Efficient Ethernet"); +/* + * AIM: Adaptive Interrupt Moderation + * which means that the interrupt rate is varied over time based on the + * traffic for that interrupt vector + */ +static int igc_enable_aim = 1; +SYSCTL_INT(_hw_igc, OID_AUTO, enable_aim, CTLFLAG_RWTUN, &igc_enable_aim, + 0, "Enable adaptive interrupt moderation (1=normal, 2=lowlatency)"); + /* ** Tuneable Interrupt rate */ -static int igc_max_interrupt_rate = 20000; +static int igc_max_interrupt_rate = IGC_INTS_DEFAULT; SYSCTL_INT(_hw_igc, OID_AUTO, max_interrupt_rate, CTLFLAG_RDTUN, &igc_max_interrupt_rate, 0, "Maximum interrupts per second"); @@ -444,6 +455,13 @@ igc_if_attach_pre(if_ctx_t ctx) OID_AUTO, "nvm", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, adapter, 0, igc_sysctl_nvm_info, "I", "NVM Information"); + adapter->enable_aim = igc_enable_aim; + SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, "enable_aim", CTLFLAG_RW, + &adapter->enable_aim, 0, + "Interrupt Moderation (1=normal, 2=lowlatency)"); + SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "fw_version", CTLTYPE_STRING | CTLFLAG_RD, @@ -816,6 +834,142 @@ igc_if_init(if_ctx_t ctx) igc_set_eee_i225(&adapter->hw, true, true, true); } +enum eitr_latency_target { + eitr_latency_disabled = 0, + eitr_latency_lowest = 1, + eitr_latency_low = 2, + eitr_latency_bulk = 3 +}; +/********************************************************************* + * + * Helper to calculate next EITR value for AIM + * + *********************************************************************/ +static void +igc_neweitr(struct igc_adapter *sc, struct igc_rx_queue *que, + struct tx_ring *txr, struct rx_ring *rxr) +{ + struct igc_hw *hw = &sc->hw; + u32 neweitr; + u32 bytes; + u32 bytes_packets; + u32 packets; + u8 nextlatency; + + /* Idle, do nothing */ + if ((txr->tx_bytes == 0) && (rxr->rx_bytes == 0)) + return; + + neweitr = 0; + + if (sc->enable_aim) { + nextlatency = rxr->rx_nextlatency; + + /* Use half default (4K) ITR if sub-gig */ + if (sc->link_speed != 1000) { + neweitr = IGC_INTS_4K; + goto igc_set_next_eitr; + } + /* Want at least enough packet buffer for two frames to AIM */ + if (sc->shared->isc_max_frame_size * 2 > (sc->pba << 10)) { + neweitr = igc_max_interrupt_rate; + sc->enable_aim = 0; + goto igc_set_next_eitr; + } + + /* Get the largest values from the associated tx and rx ring */ + if (txr->tx_bytes && txr->tx_packets) { + bytes = txr->tx_bytes; + bytes_packets = txr->tx_bytes/txr->tx_packets; + packets = txr->tx_packets; + } + if (rxr->rx_bytes && rxr->rx_packets) { + bytes = max(bytes, rxr->rx_bytes); + bytes_packets = max(bytes_packets, rxr->rx_bytes/rxr->rx_packets); + packets = max(packets, rxr->rx_packets); + } + + /* Latency state machine */ + switch (nextlatency) { + case eitr_latency_disabled: /* Bootstrapping */ + nextlatency = eitr_latency_low; + break; + case eitr_latency_lowest: /* 70k ints/s */ + /* TSO and jumbo frames */ + if (bytes_packets > 8000) + nextlatency = eitr_latency_bulk; + else if ((packets < 5) && (bytes > 512)) + nextlatency = eitr_latency_low; + break; + case eitr_latency_low: /* 20k ints/s */ + if (bytes > 10000) { + /* Handle TSO */ + if (bytes_packets > 8000) + nextlatency = eitr_latency_bulk; + else if ((packets < 10) || (bytes_packets > 1200)) + nextlatency = eitr_latency_bulk; + else if (packets > 35) + nextlatency = eitr_latency_lowest; + } else if (bytes_packets > 2000) { + nextlatency = eitr_latency_bulk; + } else if (packets < 3 && bytes < 512) { + nextlatency = eitr_latency_lowest; + } + break; + case eitr_latency_bulk: /* 4k ints/s */ + if (bytes > 25000) { + if (packets > 35) + nextlatency = eitr_latency_low; + } else if (bytes < 1500) + nextlatency = eitr_latency_low; + break; + default: + nextlatency = eitr_latency_low; + device_printf(sc->dev, "Unexpected neweitr transition %d\n", + nextlatency); + break; + } + + /* Trim itr_latency_lowest for default AIM setting */ + if (sc->enable_aim == 1 && nextlatency == eitr_latency_lowest) + nextlatency = eitr_latency_low; + + /* Request new latency */ + rxr->rx_nextlatency = nextlatency; + } else { + /* We may have toggled to AIM disabled */ + nextlatency = eitr_latency_disabled; + rxr->rx_nextlatency = nextlatency; + } + + /* ITR state machine */ + switch(nextlatency) { + case eitr_latency_lowest: + neweitr = IGC_INTS_70K; + break; + case eitr_latency_low: + neweitr = IGC_INTS_20K; + break; + case eitr_latency_bulk: + neweitr = IGC_INTS_4K; + break; + case eitr_latency_disabled: + default: + neweitr = igc_max_interrupt_rate; + break; + } + +igc_set_next_eitr: + neweitr = IGC_INTS_TO_EITR(neweitr); + + neweitr |= IGC_EITR_CNT_IGNR; + + if (neweitr != que->eitr_setting) { + que->eitr_setting = neweitr; + IGC_WRITE_REG(hw, IGC_EITR(que->msix), que->eitr_setting); + } +} + /********************************************************************* * * Fast Legacy/MSI Combined Interrupt Service routine @@ -825,10 +979,14 @@ int igc_intr(void *arg) { struct igc_adapter *adapter = arg; + struct igc_hw *hw = &adapter->hw; + struct igc_rx_queue *que = &adapter->rx_queues[0]; + struct tx_ring *txr = &adapter->tx_queues[0].txr; + struct rx_ring *rxr = &que->rxr; if_ctx_t ctx = adapter->ctx; u32 reg_icr; - reg_icr = IGC_READ_REG(&adapter->hw, IGC_ICR); + reg_icr = IGC_READ_REG(hw, IGC_ICR); /* Hot eject? */ if (reg_icr == 0xffffffff) @@ -856,6 +1014,14 @@ igc_intr(void *arg) if (reg_icr & IGC_ICR_RXO) adapter->rx_overruns++; + igc_neweitr(adapter, que, txr, rxr); + + /* Reset state */ + txr->tx_bytes = 0; + txr->tx_packets = 0; + rxr->rx_bytes = 0; + rxr->rx_packets = 0; + return (FILTER_SCHEDULE_THREAD); } @@ -888,9 +1054,20 @@ static int igc_msix_que(void *arg) { struct igc_rx_queue *que = arg; + struct igc_adapter *sc = que->adapter; + struct tx_ring *txr = &sc->tx_queues[que->msix].txr; + struct rx_ring *rxr = &que->rxr; ++que->irqs; + igc_neweitr(sc, que, txr, rxr); + + /* Reset state */ + txr->tx_bytes = 0; + txr->tx_packets = 0; + rxr->rx_bytes = 0; + rxr->rx_packets = 0; + return (FILTER_SCHEDULE_THREAD); } @@ -1395,7 +1572,7 @@ igc_configure_queues(struct igc_adapter *adapter) /* Set the starting interrupt rate */ if (igc_max_interrupt_rate > 0) - newitr = (4000000 / igc_max_interrupt_rate) & 0x7FFC; + newitr = IGC_INTS_TO_EITR(igc_max_interrupt_rate); newitr |= IGC_EITR_CNT_IGNR; @@ -1608,6 +1785,9 @@ igc_reset(if_ctx_t ctx) /* Setup DMA Coalescing */ igc_init_dmac(adapter, pba); + /* Save the final PBA off if it needs to be used elsewhere i.e. AIM */ + adapter->pba = pba; + IGC_WRITE_REG(hw, IGC_VET, ETHERTYPE_VLAN); igc_get_phy_info(hw); igc_check_for_link(hw); @@ -2380,6 +2560,40 @@ igc_sysctl_reg_handler(SYSCTL_HANDLER_ARGS) return (sysctl_handle_int(oidp, &val, 0, req)); } +/* Per queue holdoff interrupt rate handler */ +static int +igc_sysctl_interrupt_rate_handler(SYSCTL_HANDLER_ARGS) +{ + struct igc_rx_queue *rque; + struct igc_tx_queue *tque; + struct igc_hw *hw; + int error; + u32 reg, usec, rate; + + bool tx = oidp->oid_arg2; + + if (tx) { + tque = oidp->oid_arg1; + hw = &tque->adapter->hw; + reg = IGC_READ_REG(hw, IGC_EITR(tque->me)); + } else { + rque = oidp->oid_arg1; + hw = &rque->adapter->hw; + reg = IGC_READ_REG(hw, IGC_EITR(rque->msix)); + } + + usec = (reg & IGC_QVECTOR_MASK); + if (usec > 0) + rate = IGC_INTS_TO_EITR(usec); + else + rate = 0; + + error = sysctl_handle_int(oidp, &rate, 0, req); + if (error || !req->newptr) + return error; + return 0; +} + /* * Add sysctl variables, one per statistic, to the system. */ @@ -2436,6 +2650,10 @@ igc_add_hw_stats(struct igc_adapter *adapter) CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "TX Queue Name"); queue_list = SYSCTL_CHILDREN(queue_node); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "interrupt_rate", + CTLTYPE_UINT | CTLFLAG_RD, tx_que, + true, igc_sysctl_interrupt_rate_handler, "IU", + "Interrupt Rate"); SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_head", CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, adapter, IGC_TDH(txr->me), igc_sysctl_reg_handler, "IU", @@ -2456,6 +2674,10 @@ igc_add_hw_stats(struct igc_adapter *adapter) CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "RX Queue Name"); queue_list = SYSCTL_CHILDREN(queue_node); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "interrupt_rate", + CTLTYPE_UINT | CTLFLAG_RD, rx_que, + false, igc_sysctl_interrupt_rate_handler, "IU", + "Interrupt Rate"); SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_head", CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, adapter, IGC_RDH(rxr->me), igc_sysctl_reg_handler, "IU", diff --git a/sys/dev/igc/if_igc.h b/sys/dev/igc/if_igc.h index 727699baee5f..57949c3ad38a 100644 --- a/sys/dev/igc/if_igc.h +++ b/sys/dev/igc/if_igc.h @@ -1,8 +1,8 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * + * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * All rights reserved. * Copyright (c) 2021 Rubicon Communications, LLC (Netgate) * * Redistribution and use in source and binary forms, with or without @@ -163,6 +163,17 @@ #define IGC_TX_PTHRESH 8 #define IGC_TX_HTHRESH 1 +/* Define the interrupt rates and EITR helpers */ +#define IGC_INTS_4K 4000 +#define IGC_INTS_20K 20000 +#define IGC_INTS_70K 70000 +#define IGC_INTS_DEFAULT 8000 +#define IGC_EITR_DIVIDEND 1000000 +#define IGC_EITR_SHIFT 2 +#define IGC_QVECTOR_MASK 0x7FFC +#define IGC_INTS_TO_EITR(i) (((IGC_EITR_DIVIDEND/i) & IGC_QVECTOR_MASK) << \ + IGC_EITR_SHIFT) + /* * TDBA/RDBA should be aligned on 16 byte boundary. But TDLEN/RDLEN should be * multiple of 128 bytes. So we align TDBA/RDBA on 128 byte boundary. This will @@ -218,7 +229,12 @@ struct tx_ring { /* Interrupt resources */ void *tag; struct resource *res; - unsigned long tx_irq; + + /* Soft stats */ + unsigned long tx_irq; + unsigned long tx_packets; + unsigned long tx_bytes; + /* Saved csum offloading context information */ int csum_flags; @@ -253,6 +269,9 @@ struct rx_ring { unsigned long rx_discarded; unsigned long rx_packets; unsigned long rx_bytes; + + /* Next requested ITR latency */ + u8 rx_nextlatency; }; struct igc_tx_queue { @@ -268,6 +287,7 @@ struct igc_rx_queue { u32 me; u32 msix; u32 eims; + u32 eitr_setting; struct rx_ring rxr; u64 irqs; struct if_irq que_irq; @@ -315,6 +335,8 @@ struct igc_adapter { u32 rx_mbuf_sz; + int enable_aim; + /* Management and WOL features */ u32 wol; @@ -328,6 +350,7 @@ struct igc_adapter { u16 link_duplex; u32 smartspeed; u32 dmac; + u32 pba; int link_mask; u64 que_mask; diff --git a/sys/dev/igc/igc_txrx.c b/sys/dev/igc/igc_txrx.c index 7601513a709e..cd7175f45f34 100644 --- a/sys/dev/igc/igc_txrx.c +++ b/sys/dev/igc/igc_txrx.c @@ -316,6 +316,10 @@ igc_isc_txd_encap(void *arg, if_pkt_info_t pi) txd->read.cmd_type_len |= htole32(IGC_ADVTXD_DCMD_EOP | txd_flags); pi->ipi_new_pidx = i; + /* Sent data accounting for AIM */ + txr->tx_bytes += pi->ipi_len; + ++txr->tx_packets; + return (0); } From nobody Sun Oct 20 05:04:49 2024 X-Original-To: dev-commits-src-branches@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 4XWRFY5hLgz5Zn53; Sun, 20 Oct 2024 05:04:49 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWRFY3w7zz41Vy; Sun, 20 Oct 2024 05:04:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400689; 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=QCqThZW3b2wnirOvuLQwUNyXmmsjO8g2iZE3ka2kH/g=; b=GuzKwMueHP7GMnQmWjfXuODdVvuMiFfFt1V+ofvi2YsqHCp8wemB4IRA3S689IfG45xiv3 h6fnXmrJFwMwiz8hgm6Jd9sKPHu+UNQvEtmu9/8KvljbokPStPwiLdMcIXpKOExU/u4WQK ZwMEYhSA0Kj5EOp9SfBjIAlSmhuikxDSZ9cuBfIASVuwpAlhdlwJC0H0gZIqfVWdypa16x IYtV/3q70eNt2BLe8bz2qvMMSpeYoxxV+YIzTZPXXtugVq3uhZ/XXLJWREn7piH4PbhRRE uihe2nz7NeKIU7V3KcIFN4JGhyouItsomu08e1BLAStp/DKrxGVbdeUJKmFh0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400689; 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=QCqThZW3b2wnirOvuLQwUNyXmmsjO8g2iZE3ka2kH/g=; b=GPb9KyJYkSOOzI0gl6iJCFKwaJIuGLgLaZLFLpC6X6umB5DQIlASqEvDK6HWC1hgguOMoH PBnAyMG8+y9/Ax8j+4UFdHfQOrh6ft3mC18aRxWPowJl0DyNNrWp4QRsGhJrm/IFqoxUj0 TEfUll9P+pxcDx+7euaPxiwxR/2El+tK3+fv1be1dVXhpzO4Pu4ARKwKdY+C7xN8kAIvEK Ffy5xuPV1so7zm/GqGAZ01CWMRXQWq6PL2RUP2bMAEYuEAb8xnMbg9ZN84lqSWXVqqM3/d Q8sJESUWm9YLoECoL3pNTS6T15lS3TLW30a03yyX0O9WHrwCg1neWqn9m4Vwmw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729400689; a=rsa-sha256; cv=none; b=euOXZ18+iUQA6ExY8lRPvtA50Vf0rVd0W5Hxbsz2ULyrfP3yfFCkYN8H5JAzTo//OBY3yJ bTddZsZupGKPY4Yl9jnYOUfR6Z54VdNBeMd9GUzzWkUf60UIyZGw0IHT0XAgIMn55Ucczn 4op67zQyGCg9dweN+QOuO5NKaEWahD+q9MwfVp9M9XhKjqSqZCdPg4G7ChIjXCC3FQa/En ueCJi8aHpHZuIIHNWsg7zVNmWWYJAGLNskbB9Muovw9JuxtT1WyZulHg/7df14I8j1Gr/D lYa8ve6aEn9aqxJ1Y1JGIGDzsXZq14BJYUwm5kyaUpKntl0W6Tk8lGf/WZ2lJg== 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 4XWRFY3WhczpFv; Sun, 20 Oct 2024 05:04:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K54nNF063074; Sun, 20 Oct 2024 05:04:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K54nwa063071; Sun, 20 Oct 2024 05:04:49 GMT (envelope-from git) Date: Sun, 20 Oct 2024 05:04:49 GMT Message-Id: <202410200504.49K54nwa063071@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 5882faed60d2 - stable/14 - igc: Improve a comment and update copyright dates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5882faed60d2b43d6e188807930255f633f830fd Auto-Submitted: auto-generated The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=5882faed60d2b43d6e188807930255f633f830fd commit 5882faed60d2b43d6e188807930255f633f830fd Author: Kevin Bowling AuthorDate: 2024-10-12 07:53:57 +0000 Commit: Kevin Bowling CommitDate: 2024-10-20 05:04:16 +0000 igc: Improve a comment and update copyright dates (cherry picked from commit 516d92304a7fa9b869c934436aa3e1c5202f03c9) --- sys/dev/igc/if_igc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/igc/if_igc.h b/sys/dev/igc/if_igc.h index 57949c3ad38a..94e41104f28e 100644 --- a/sys/dev/igc/if_igc.h +++ b/sys/dev/igc/if_igc.h @@ -3,7 +3,7 @@ * * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * Copyright (c) 2021 Rubicon Communications, LLC (Netgate) + * Copyright (c) 2021-2024 Rubicon Communications, LLC (Netgate) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -270,7 +270,7 @@ struct rx_ring { unsigned long rx_packets; unsigned long rx_bytes; - /* Next requested ITR latency */ + /* Next requested EITR latency */ u8 rx_nextlatency; }; From nobody Sun Oct 20 05:04:50 2024 X-Original-To: dev-commits-src-branches@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 4XWRFb1N8Jz5ZnB5; Sun, 20 Oct 2024 05:04:51 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWRFZ4zL8z41Xj; Sun, 20 Oct 2024 05:04:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400690; 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=PmbzPjhn7t6FrK8Z9veSzc3n0Jrrmglgzvp4/zMKd9Q=; b=wpJfV5CNvwiik6K009TfPWlzAoZYZjqs0BxbWTqZNsLD5/bW0JhBmTqIYIRcpLwPTCZeKy qTXvyulMs7fy1nxfD78HIgHp/ncsLqxRUeI6B4+Mr24PQJIXljR/Xmgnl0sMsheT9puRyl aHZ+yU7uBfGAtoar9SQnvv7OhmrkpHsja89hheHFNNfeo1pZ41pbC0HUR66RmK8XrDIEO9 OPmKuheNK/hj+0AnfVNhsiICh+a2LDc8uu3OfVBFh9cN7eE48MdweaQtaBUpxXjBZgEzrf 51XxcekYIKRfI1450s1rutW9tXwCwMhV7b07S2bgpacT00mP7JfCmAzZURdOPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400690; 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=PmbzPjhn7t6FrK8Z9veSzc3n0Jrrmglgzvp4/zMKd9Q=; b=k97YHQAdhk6WJEf/iTP0PQAKB30/p3wvAB18ClO7gr1SGEF5tY565+mMF7gefEE6nSpZBS f3XAtgZP18cLA0/2NihX9zOctcgn/9ohRToFe9uNYpzwZeGJ7r7lCpX5i6k42rTQ+So6PO W2ytt29kEI6+EQmWj8EGqll0fUE/3cqKfay+KFoRJYuMpYiZpKLzeDpgh9riF2JjAyuRO8 Cn0y0d0E+FcHZcfR2eXd0P/mwfmMAmCzD4xjzafQyfpZjJdFWM1lur48xxwSHKR07pFTNC 0aBiKSFNTUpOwWMi17i/fUdwoe+vEWLn+hLAs1pZqwRpc+FQOfxol/Re16vFTQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729400690; a=rsa-sha256; cv=none; b=MfUd5S5+QqThbYGa5AXjIuz5z2nF4Zy5LT8h5sxFm+BEzQMjwIjwzk5VkLkmr4JRyrjyoF RsYv1yRsRir5ZdKF7LGRz8WygXJDVDE/GMAdJ6doDLZ35YcFZXTWi6JeKN9GdtPTBMbYZV 6rxOufqdg6SfMs8nnFwF78cCmQJrqxEd8EQu14M9WQ8Jw1CQ8T2NDhOIiSEhf9lvNif6B0 +/32782PtVrWFpTcTx3P43TFbpuSvKUQj7wnc2NZmgfsWRx3bg+gpfVrRnxH1P4oqu2IeV nqf9L+AlbOd0lJwhPsDICjRqIY2lg5boT6iDlz6agKc8YKx3P0JbNDJ8y1602A== 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 4XWRFZ4XkFznCs; Sun, 20 Oct 2024 05:04:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K54oMC063123; Sun, 20 Oct 2024 05:04:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K54oM7063120; Sun, 20 Oct 2024 05:04:50 GMT (envelope-from git) Date: Sun, 20 Oct 2024 05:04:50 GMT Message-Id: <202410200504.49K54oM7063120@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 2a16654933ef - stable/14 - igc: Want AIM at 2.5G List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2a16654933ef35a00abab754ea82dad8f4bc94e7 Auto-Submitted: auto-generated The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=2a16654933ef35a00abab754ea82dad8f4bc94e7 commit 2a16654933ef35a00abab754ea82dad8f4bc94e7 Author: Kevin Bowling AuthorDate: 2024-10-13 06:09:52 +0000 Commit: Kevin Bowling CommitDate: 2024-10-20 05:04:31 +0000 igc: Want AIM at 2.5G This should have been commited with bc9402a, need to account for link_speed of 2500 as well on igc. Sponsored by: Rubicon Communications, LLC ("Netgate") Sponsored by: BBOX.io (cherry picked from commit 669d26e5764f612cc60a4a61cdcf22ae46ddd360) --- sys/dev/igc/if_igc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/igc/if_igc.c b/sys/dev/igc/if_igc.c index c4f5e82ff8c8..d964fbe4cf91 100644 --- a/sys/dev/igc/if_igc.c +++ b/sys/dev/igc/if_igc.c @@ -866,7 +866,7 @@ igc_neweitr(struct igc_adapter *sc, struct igc_rx_queue *que, nextlatency = rxr->rx_nextlatency; /* Use half default (4K) ITR if sub-gig */ - if (sc->link_speed != 1000) { + if (sc->link_speed < 1000) { neweitr = IGC_INTS_4K; goto igc_set_next_eitr; } From nobody Sun Oct 20 05:08:35 2024 X-Original-To: dev-commits-src-branches@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 4XWRKv6py3z5Zndp; Sun, 20 Oct 2024 05:08:35 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWRKv6WXRz421y; Sun, 20 Oct 2024 05:08:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400915; 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=nzfOAl9QXMIR5UMKuzCAQkTwt+0+WIMfn5VAbpF/58c=; b=CDsB/8oPF1194gzaivW3VdkYMTcN1z4zk9YN2UB6Zb2wWfQO1hKMrka5w4QbUzF1JDWkzb pQozXcWxQQpk0bD+SgeTtqvEckip6ZV6j9WPM0ucvxq27fXhhqt4CiB27PPy9jvnPZk6po 7l92G+iUIEnD6mq7JndkDpbKpJNZfJP55VaeVnm2eLozsynQTy8JbKaw9m/nOiIa2vbUDH PsjGMIvcikAQGmUO8nXLikdEpbrkaowxZL2OWArxhKE6N5wbD82Wh24FF1dlBTOgbrWjEc 42c+O3FFQmq16jtfZrL6rH9K85qMtRpc6roWp4xLf/W+Le16N1WuppnqU3yg9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400915; 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=nzfOAl9QXMIR5UMKuzCAQkTwt+0+WIMfn5VAbpF/58c=; b=jRY2UIS3VT9V7O2waJzpMIrj6z2HXjBfUx5A3gPoHHYcZnB8fmTXBjMJxOHROHhuwvx6b7 mjmNpPKVjut1Tc+BOY3o4QNDfYBLaulIjRDZl5OAOGb97LDJBuc5bl0udqGLM7BBnlPwO4 KkWsmuCEbQBWdRpRFdCQb/94wjxzB2QIVA3+7w1XVMr3iVKlGXqMG+yJT5KJs52msdDxoO Afk/Wemft2RuFT/MhkBI8FmzaVyB+BQSzDJQQ9KSnxeOxXVLyIUc+rhWdk4sbpAgFkxsXx sKufCu/gR3/mzZ1vrQ8Le043mbYYG+X4K7iyiT1PcPmnyqBjn62wUsb/hjw/rQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729400915; a=rsa-sha256; cv=none; b=QhxrWADl/t4JnsE9uHrP0y4uDzmTwJo0nLVts6ys1mccgspO/zG+ckJXiMYHoNcJnvn5+z CLSlcaDKH2WsjjZbS9FVIJGrQUenSq2KybW7+Bk7FcSpF/1gz3ZuuYVI47NyOq04OwjNsi /+qV/P6cUu9qHbprohmYrMaxAoAIctL/zfmHVYLlh4kYJdnuHNDR6p9Eqv5r1Ex5jv1t6T 1WDM6Y+9A0NZAYRsy7QbogByuLSymq9YiMu0RUQYEZgzVXUPIH22TRRO0upR6h2hF+IbKb LXGC3823AFLcVl75D9BOHRLtUzr0xFx+PtLtrRsNBQ5uz6bYLzrnsfyqUsj2Fw== 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 4XWRKv658Sznqd; Sun, 20 Oct 2024 05:08:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K58Zgc064315; Sun, 20 Oct 2024 05:08:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K58ZeX064312; Sun, 20 Oct 2024 05:08:35 GMT (envelope-from git) Date: Sun, 20 Oct 2024 05:08:35 GMT Message-Id: <202410200508.49K58ZeX064312@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: eaa616f02193 - stable/13 - igc: Add AIM List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: eaa616f0219351ab8b5ca0b07ae656b44dd5aed6 Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=eaa616f0219351ab8b5ca0b07ae656b44dd5aed6 commit eaa616f0219351ab8b5ca0b07ae656b44dd5aed6 Author: Kevin Bowling AuthorDate: 2024-10-11 01:20:13 +0000 Commit: Kevin Bowling CommitDate: 2024-10-20 05:07:44 +0000 igc: Add AIM igc is derived from igb and has never had an AIM implementation. The same algorithm from e1000 is appropriate here. Upon more detailed study of the Linux driver which has a newer AIM implementation, it finally became clear to me this is actually a holdoff timer and not an interrupt limit as it is conventionally (statically) programmed and displayed as an interrupt rate. The data sheets also make this somewhat clear. Thus, AIM accomplishes two beneficial things for a wide variety of workloads[1]: 1. At low throughput/packet rates, it will significantly lower latency (by counter-intuitively "increasing" the interrupt rate.. better thought of as decreasing the holdoff timer because you will modulate down before coming anywhere near these interrupt rates). 2. At bulk data rates, it is tuned to achieve a lower interrupt rate (by increasing the holdoff timer) than the current static 8000/s. This decreases processing overhead and yields more headroom for other work such as packet filters or userland. For a single NIC this might be worth a few sys% on common CPUs, but may be meaningful when multiplied such as if_lagg, if_bridge and forwarding setups. The AIM algorithm was re-introduced from the older igb or out of tree driver, and then modernized with permission to use Intel code from other drivers. [1]: http://iommu.com/datasheets/ethernet/controllers-nics/intel/e1000/gbe-controllers-interrupt-moderation-appl-note.pdf Relnotes: yes Sponsored by: Rubicon Communications, LLC ("Netgate") Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D47053 (cherry picked from commit bc9402abdd11630ced33cbecb79b0d72f203f08a) --- sys/dev/igc/if_igc.c | 232 +++++++++++++++++++++++++++++++++++++++++++++++-- sys/dev/igc/if_igc.h | 27 +++++- sys/dev/igc/igc_txrx.c | 4 + 3 files changed, 256 insertions(+), 7 deletions(-) diff --git a/sys/dev/igc/if_igc.c b/sys/dev/igc/if_igc.c index 1f06baee02e4..b55c1ddd26b0 100644 --- a/sys/dev/igc/if_igc.c +++ b/sys/dev/igc/if_igc.c @@ -1,9 +1,9 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * + * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * All rights reserved. - * Copyright (c) 2021 Rubicon Communications, LLC (Netgate) + * Copyright (c) 2021-2024 Rubicon Communications, LLC (Netgate) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -125,6 +125,8 @@ static int igc_sysctl_debug_info(SYSCTL_HANDLER_ARGS); static int igc_get_rs(SYSCTL_HANDLER_ARGS); static void igc_print_debug_info(struct igc_adapter *); static int igc_is_valid_ether_addr(u8 *); +static void igc_neweitr(struct igc_adapter *, struct igc_rx_queue *, + struct tx_ring *, struct rx_ring *); /* Management and WOL Support */ static void igc_get_hw_control(struct igc_adapter *); static void igc_release_hw_control(struct igc_adapter *); @@ -239,10 +241,19 @@ static int igc_eee_setting = 1; SYSCTL_INT(_hw_igc, OID_AUTO, eee_setting, CTLFLAG_RDTUN, &igc_eee_setting, 0, "Enable Energy Efficient Ethernet"); +/* + * AIM: Adaptive Interrupt Moderation + * which means that the interrupt rate is varied over time based on the + * traffic for that interrupt vector + */ +static int igc_enable_aim = 1; +SYSCTL_INT(_hw_igc, OID_AUTO, enable_aim, CTLFLAG_RWTUN, &igc_enable_aim, + 0, "Enable adaptive interrupt moderation (1=normal, 2=lowlatency)"); + /* ** Tuneable Interrupt rate */ -static int igc_max_interrupt_rate = 8000; +static int igc_max_interrupt_rate = IGC_INTS_DEFAULT; SYSCTL_INT(_hw_igc, OID_AUTO, max_interrupt_rate, CTLFLAG_RDTUN, &igc_max_interrupt_rate, 0, "Maximum interrupts per second"); @@ -445,6 +456,13 @@ igc_if_attach_pre(if_ctx_t ctx) OID_AUTO, "nvm", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, adapter, 0, igc_sysctl_nvm_info, "I", "NVM Information"); + adapter->enable_aim = igc_enable_aim; + SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, "enable_aim", CTLFLAG_RW, + &adapter->enable_aim, 0, + "Interrupt Moderation (1=normal, 2=lowlatency)"); + SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "fw_version", CTLTYPE_STRING | CTLFLAG_RD, @@ -817,6 +835,142 @@ igc_if_init(if_ctx_t ctx) igc_set_eee_i225(&adapter->hw, true, true, true); } +enum eitr_latency_target { + eitr_latency_disabled = 0, + eitr_latency_lowest = 1, + eitr_latency_low = 2, + eitr_latency_bulk = 3 +}; +/********************************************************************* + * + * Helper to calculate next EITR value for AIM + * + *********************************************************************/ +static void +igc_neweitr(struct igc_adapter *sc, struct igc_rx_queue *que, + struct tx_ring *txr, struct rx_ring *rxr) +{ + struct igc_hw *hw = &sc->hw; + u32 neweitr; + u32 bytes; + u32 bytes_packets; + u32 packets; + u8 nextlatency; + + /* Idle, do nothing */ + if ((txr->tx_bytes == 0) && (rxr->rx_bytes == 0)) + return; + + neweitr = 0; + + if (sc->enable_aim) { + nextlatency = rxr->rx_nextlatency; + + /* Use half default (4K) ITR if sub-gig */ + if (sc->link_speed != 1000) { + neweitr = IGC_INTS_4K; + goto igc_set_next_eitr; + } + /* Want at least enough packet buffer for two frames to AIM */ + if (sc->shared->isc_max_frame_size * 2 > (sc->pba << 10)) { + neweitr = igc_max_interrupt_rate; + sc->enable_aim = 0; + goto igc_set_next_eitr; + } + + /* Get the largest values from the associated tx and rx ring */ + if (txr->tx_bytes && txr->tx_packets) { + bytes = txr->tx_bytes; + bytes_packets = txr->tx_bytes/txr->tx_packets; + packets = txr->tx_packets; + } + if (rxr->rx_bytes && rxr->rx_packets) { + bytes = max(bytes, rxr->rx_bytes); + bytes_packets = max(bytes_packets, rxr->rx_bytes/rxr->rx_packets); + packets = max(packets, rxr->rx_packets); + } + + /* Latency state machine */ + switch (nextlatency) { + case eitr_latency_disabled: /* Bootstrapping */ + nextlatency = eitr_latency_low; + break; + case eitr_latency_lowest: /* 70k ints/s */ + /* TSO and jumbo frames */ + if (bytes_packets > 8000) + nextlatency = eitr_latency_bulk; + else if ((packets < 5) && (bytes > 512)) + nextlatency = eitr_latency_low; + break; + case eitr_latency_low: /* 20k ints/s */ + if (bytes > 10000) { + /* Handle TSO */ + if (bytes_packets > 8000) + nextlatency = eitr_latency_bulk; + else if ((packets < 10) || (bytes_packets > 1200)) + nextlatency = eitr_latency_bulk; + else if (packets > 35) + nextlatency = eitr_latency_lowest; + } else if (bytes_packets > 2000) { + nextlatency = eitr_latency_bulk; + } else if (packets < 3 && bytes < 512) { + nextlatency = eitr_latency_lowest; + } + break; + case eitr_latency_bulk: /* 4k ints/s */ + if (bytes > 25000) { + if (packets > 35) + nextlatency = eitr_latency_low; + } else if (bytes < 1500) + nextlatency = eitr_latency_low; + break; + default: + nextlatency = eitr_latency_low; + device_printf(sc->dev, "Unexpected neweitr transition %d\n", + nextlatency); + break; + } + + /* Trim itr_latency_lowest for default AIM setting */ + if (sc->enable_aim == 1 && nextlatency == eitr_latency_lowest) + nextlatency = eitr_latency_low; + + /* Request new latency */ + rxr->rx_nextlatency = nextlatency; + } else { + /* We may have toggled to AIM disabled */ + nextlatency = eitr_latency_disabled; + rxr->rx_nextlatency = nextlatency; + } + + /* ITR state machine */ + switch(nextlatency) { + case eitr_latency_lowest: + neweitr = IGC_INTS_70K; + break; + case eitr_latency_low: + neweitr = IGC_INTS_20K; + break; + case eitr_latency_bulk: + neweitr = IGC_INTS_4K; + break; + case eitr_latency_disabled: + default: + neweitr = igc_max_interrupt_rate; + break; + } + +igc_set_next_eitr: + neweitr = IGC_INTS_TO_EITR(neweitr); + + neweitr |= IGC_EITR_CNT_IGNR; + + if (neweitr != que->eitr_setting) { + que->eitr_setting = neweitr; + IGC_WRITE_REG(hw, IGC_EITR(que->msix), que->eitr_setting); + } +} + /********************************************************************* * * Fast Legacy/MSI Combined Interrupt Service routine @@ -826,10 +980,14 @@ int igc_intr(void *arg) { struct igc_adapter *adapter = arg; + struct igc_hw *hw = &adapter->hw; + struct igc_rx_queue *que = &adapter->rx_queues[0]; + struct tx_ring *txr = &adapter->tx_queues[0].txr; + struct rx_ring *rxr = &que->rxr; if_ctx_t ctx = adapter->ctx; u32 reg_icr; - reg_icr = IGC_READ_REG(&adapter->hw, IGC_ICR); + reg_icr = IGC_READ_REG(hw, IGC_ICR); /* Hot eject? */ if (reg_icr == 0xffffffff) @@ -857,6 +1015,14 @@ igc_intr(void *arg) if (reg_icr & IGC_ICR_RXO) adapter->rx_overruns++; + igc_neweitr(adapter, que, txr, rxr); + + /* Reset state */ + txr->tx_bytes = 0; + txr->tx_packets = 0; + rxr->rx_bytes = 0; + rxr->rx_packets = 0; + return (FILTER_SCHEDULE_THREAD); } @@ -889,9 +1055,20 @@ static int igc_msix_que(void *arg) { struct igc_rx_queue *que = arg; + struct igc_adapter *sc = que->adapter; + struct tx_ring *txr = &sc->tx_queues[que->msix].txr; + struct rx_ring *rxr = &que->rxr; ++que->irqs; + igc_neweitr(sc, que, txr, rxr); + + /* Reset state */ + txr->tx_bytes = 0; + txr->tx_packets = 0; + rxr->rx_bytes = 0; + rxr->rx_packets = 0; + return (FILTER_SCHEDULE_THREAD); } @@ -1396,7 +1573,7 @@ igc_configure_queues(struct igc_adapter *adapter) /* Set the starting interrupt rate */ if (igc_max_interrupt_rate > 0) - newitr = (4000000 / igc_max_interrupt_rate) & 0x7FFC; + newitr = IGC_INTS_TO_EITR(igc_max_interrupt_rate); newitr |= IGC_EITR_CNT_IGNR; @@ -1609,6 +1786,9 @@ igc_reset(if_ctx_t ctx) /* Setup DMA Coalescing */ igc_init_dmac(adapter, pba); + /* Save the final PBA off if it needs to be used elsewhere i.e. AIM */ + adapter->pba = pba; + IGC_WRITE_REG(hw, IGC_VET, ETHERTYPE_VLAN); igc_get_phy_info(hw); igc_check_for_link(hw); @@ -2381,6 +2561,40 @@ igc_sysctl_reg_handler(SYSCTL_HANDLER_ARGS) return (sysctl_handle_int(oidp, &val, 0, req)); } +/* Per queue holdoff interrupt rate handler */ +static int +igc_sysctl_interrupt_rate_handler(SYSCTL_HANDLER_ARGS) +{ + struct igc_rx_queue *rque; + struct igc_tx_queue *tque; + struct igc_hw *hw; + int error; + u32 reg, usec, rate; + + bool tx = oidp->oid_arg2; + + if (tx) { + tque = oidp->oid_arg1; + hw = &tque->adapter->hw; + reg = IGC_READ_REG(hw, IGC_EITR(tque->me)); + } else { + rque = oidp->oid_arg1; + hw = &rque->adapter->hw; + reg = IGC_READ_REG(hw, IGC_EITR(rque->msix)); + } + + usec = (reg & IGC_QVECTOR_MASK); + if (usec > 0) + rate = IGC_INTS_TO_EITR(usec); + else + rate = 0; + + error = sysctl_handle_int(oidp, &rate, 0, req); + if (error || !req->newptr) + return error; + return 0; +} + /* * Add sysctl variables, one per statistic, to the system. */ @@ -2437,6 +2651,10 @@ igc_add_hw_stats(struct igc_adapter *adapter) CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "TX Queue Name"); queue_list = SYSCTL_CHILDREN(queue_node); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "interrupt_rate", + CTLTYPE_UINT | CTLFLAG_RD, tx_que, + true, igc_sysctl_interrupt_rate_handler, "IU", + "Interrupt Rate"); SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_head", CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, adapter, IGC_TDH(txr->me), igc_sysctl_reg_handler, "IU", @@ -2457,6 +2675,10 @@ igc_add_hw_stats(struct igc_adapter *adapter) CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "RX Queue Name"); queue_list = SYSCTL_CHILDREN(queue_node); + SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "interrupt_rate", + CTLTYPE_UINT | CTLFLAG_RD, rx_que, + false, igc_sysctl_interrupt_rate_handler, "IU", + "Interrupt Rate"); SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_head", CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, adapter, IGC_RDH(rxr->me), igc_sysctl_reg_handler, "IU", diff --git a/sys/dev/igc/if_igc.h b/sys/dev/igc/if_igc.h index ccebe04ff185..c0822f21685e 100644 --- a/sys/dev/igc/if_igc.h +++ b/sys/dev/igc/if_igc.h @@ -1,8 +1,8 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * + * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * All rights reserved. * Copyright (c) 2021 Rubicon Communications, LLC (Netgate) * * Redistribution and use in source and binary forms, with or without @@ -163,6 +163,17 @@ #define IGC_TX_PTHRESH 8 #define IGC_TX_HTHRESH 1 +/* Define the interrupt rates and EITR helpers */ +#define IGC_INTS_4K 4000 +#define IGC_INTS_20K 20000 +#define IGC_INTS_70K 70000 +#define IGC_INTS_DEFAULT 8000 +#define IGC_EITR_DIVIDEND 1000000 +#define IGC_EITR_SHIFT 2 +#define IGC_QVECTOR_MASK 0x7FFC +#define IGC_INTS_TO_EITR(i) (((IGC_EITR_DIVIDEND/i) & IGC_QVECTOR_MASK) << \ + IGC_EITR_SHIFT) + /* * TDBA/RDBA should be aligned on 16 byte boundary. But TDLEN/RDLEN should be * multiple of 128 bytes. So we align TDBA/RDBA on 128 byte boundary. This will @@ -218,7 +229,12 @@ struct tx_ring { /* Interrupt resources */ void *tag; struct resource *res; - unsigned long tx_irq; + + /* Soft stats */ + unsigned long tx_irq; + unsigned long tx_packets; + unsigned long tx_bytes; + /* Saved csum offloading context information */ int csum_flags; @@ -253,6 +269,9 @@ struct rx_ring { unsigned long rx_discarded; unsigned long rx_packets; unsigned long rx_bytes; + + /* Next requested ITR latency */ + u8 rx_nextlatency; }; struct igc_tx_queue { @@ -268,6 +287,7 @@ struct igc_rx_queue { u32 me; u32 msix; u32 eims; + u32 eitr_setting; struct rx_ring rxr; u64 irqs; struct if_irq que_irq; @@ -315,6 +335,8 @@ struct igc_adapter { u32 rx_mbuf_sz; + int enable_aim; + /* Management and WOL features */ u32 wol; @@ -328,6 +350,7 @@ struct igc_adapter { u16 link_duplex; u32 smartspeed; u32 dmac; + u32 pba; int link_mask; u64 que_mask; diff --git a/sys/dev/igc/igc_txrx.c b/sys/dev/igc/igc_txrx.c index 7601513a709e..cd7175f45f34 100644 --- a/sys/dev/igc/igc_txrx.c +++ b/sys/dev/igc/igc_txrx.c @@ -316,6 +316,10 @@ igc_isc_txd_encap(void *arg, if_pkt_info_t pi) txd->read.cmd_type_len |= htole32(IGC_ADVTXD_DCMD_EOP | txd_flags); pi->ipi_new_pidx = i; + /* Sent data accounting for AIM */ + txr->tx_bytes += pi->ipi_len; + ++txr->tx_packets; + return (0); } From nobody Sun Oct 20 05:08:36 2024 X-Original-To: dev-commits-src-branches@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 4XWRKx1VQrz5ZnDp; Sun, 20 Oct 2024 05:08:37 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWRKx0Z8Mz42CJ; Sun, 20 Oct 2024 05:08:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400917; 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=VL7qXwRbqeBRB61YM4FOKrsDEDJlnNQVn5pIx0bScFA=; b=UJeRE8cZU2mzBmkqLSiawhuYiNZD+NzzPG1YFnatagi8HQkswGG9ERhBPx9i9P4B4j0WlM L02OCl2pO8yCFibFun38lkJGWP2wgeCzh8GYf9dTB9Q8YUXOjdu+MNW/kUe5RXiTcD5dec Ub+sJnLzT2/ohdXtqXeEaReQzgTPw43NXmjzYuaEYNpSto46QJYJeqSxgpAnOK9XhraPfa B8gX1aWIoiEwPiDVuuoq14KdoUln3cMbN8vdsHlaQt2FmuCLoUQDfB3KtI/KFGC6k5buJa pOte7ahAMeMSX+/QvP+P/eyOYGycTBZK/xQlN9bgh8Mt7zz6x8rydR85glL52A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400917; 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=VL7qXwRbqeBRB61YM4FOKrsDEDJlnNQVn5pIx0bScFA=; b=RpncDtnWNME50zng2o9Ccayw7hCu2Cl8yYW2IRWAg3/4DIxVT/Y6uzlJgefoSxv7VwvCWB 9nYz6anSWLCy+FgNFGGXBv7vKxZBtjktOPg25NmvFJ5uRr+x7BZViSLTcF3OPgLvNBNLVd ZPxSb70wABN5ANW2ApD207N74VvsTc7mmKmOc0ijcWxIgTU81u8edRDvnB3DPWWZ1Wwkco a2QDhdrWT9zXs2+K289FmJ88KnNM6kigy+pf6pMFHGbSv4DQR1/tX25FylFRvjQLO54dgq L0vumcNbnVvv+gKp9fjHGsdto1acjCes+AGFdoQQ0g6ZZZrP/NCuvTQVQjgIAw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729400917; a=rsa-sha256; cv=none; b=GCIbvZYqttbPHRvIPgCBYjOti85MiBjiFSsGIuL7hh8UfVuk3l6tckF0XIEwe/wMX4tcO9 mszeyIQUBQZfKzD49gXfGws4KsF2wqaVREsuQJvNtx/A8Oss9jRSjlgeo7WoIODTrXePWE t1CE6+PduAnq0sBpr1Z51r+MLQN029wgQmubrbdMMwbod6Vaxyc7lHdCs9tSkfGD+m/gdL 57coViMC3AaI3nqx+8Yd3r8RGhDB9ydLouH2yP+5BHjYChHOLQ05Jt/mve/abcgNruI1Bh p2piMChhWUeiUJrLbzAS+SqsAM4x+eSOlB3ctZ5o9VpQBGLzWWLOl0re2McqVQ== 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 4XWRKw72k2znqf; Sun, 20 Oct 2024 05:08:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K58aQ6064366; Sun, 20 Oct 2024 05:08:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K58acn064363; Sun, 20 Oct 2024 05:08:36 GMT (envelope-from git) Date: Sun, 20 Oct 2024 05:08:36 GMT Message-Id: <202410200508.49K58acn064363@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: bc33b98dcbf9 - stable/13 - igc: Improve a comment and update copyright dates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: bc33b98dcbf92edb29863d3c44549dcd9d95e307 Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=bc33b98dcbf92edb29863d3c44549dcd9d95e307 commit bc33b98dcbf92edb29863d3c44549dcd9d95e307 Author: Kevin Bowling AuthorDate: 2024-10-12 07:53:57 +0000 Commit: Kevin Bowling CommitDate: 2024-10-20 05:08:05 +0000 igc: Improve a comment and update copyright dates (cherry picked from commit 516d92304a7fa9b869c934436aa3e1c5202f03c9) --- sys/dev/igc/if_igc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/igc/if_igc.h b/sys/dev/igc/if_igc.h index c0822f21685e..60aaf786d09a 100644 --- a/sys/dev/igc/if_igc.h +++ b/sys/dev/igc/if_igc.h @@ -3,7 +3,7 @@ * * Copyright (c) 2001-2024, Intel Corporation * Copyright (c) 2016 Nicole Graziano - * Copyright (c) 2021 Rubicon Communications, LLC (Netgate) + * Copyright (c) 2021-2024 Rubicon Communications, LLC (Netgate) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -270,7 +270,7 @@ struct rx_ring { unsigned long rx_packets; unsigned long rx_bytes; - /* Next requested ITR latency */ + /* Next requested EITR latency */ u8 rx_nextlatency; }; From nobody Sun Oct 20 05:08:38 2024 X-Original-To: dev-commits-src-branches@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 4XWRKy348Cz5Znch; Sun, 20 Oct 2024 05:08:38 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWRKy1QQTz42CX; Sun, 20 Oct 2024 05:08:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400918; 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=5PvbXUornaMy/J8tdZ9BvWxH/gvymibyaaQgOrt0eak=; b=LqL3G+HAKcUqjZKKHMnBjLX70ewpeb9czC5mVG7303QbfQFrRzYWBVkjg2PPQ0K+DjEFRT G7YfDj6SBDVoSYCX4ZgArxqsM8Zw/hbXBhSgKiG1F6bFW9ePB10cPhC7/tMGWg9XPGxIA/ IMGqOCGKSAt8hfavILY/D3jRwl5BO6bW6cJlAv2Fc1hSIveAKYK7l/yysEA7bxqoe+iI/I 2amWdbwxGda+V4GQrHaDXmYYz/4ZC/P/fi0BlzBnSJm8IcDBZYigLHgZt67Y/YogyJkVQ5 8hZ7zeEJl+IBs9HGDUZldC2Hv8xEkRfGt9AyyPj3vIXDfrN1G90FunrFPXqLhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729400918; 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=5PvbXUornaMy/J8tdZ9BvWxH/gvymibyaaQgOrt0eak=; b=xIxynDZpG6NOTHkIiPjR6TBdqDr9upnRfcEm6/cCt7gFcgyuAg1PbmxKgYmULDLoe4AsbZ is8+ARvX0pXBqKtHkSh2c1w2/FQonXmqpOJvkOujn30PTjecXQQ0yreCHAiEWEOaa1ZU93 NUCsbu/vcMeeU+T0NhM/tj4dWNxDe1xMjqNHM9wTQotbgdEicxnspxqE5eAE0YT0bv8RxN dinJIjk6vow/y5DuMBXu1WEitcIeA/PAm39Q65PccFK5Z0wfKxwFCOVR9YkeVad3kAYDSF +hGcsuCEMl+GXzFawZ9OWrh9vpV50gFvoCaMMAtSJvsFfXBAiMltWahO4rNVbA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729400918; a=rsa-sha256; cv=none; b=ovnai2CbEcAhGXl27MrkMDQ1KiIqbYdGkC2ojKYXTrNrjQ8ZsutoQIgOKepnKWaU3U5U3j jaN0BG8jmeudxy2a/JWYl6RAJmKhImYj+E0+RMVyMOBM/UMuSyLnBBIqYa7mmEforXLLUr XYJ0XBv4vRX1CI4QlcBAQ8cCaSTjrkiAmcqD0DcLtwbeanKtzQQy8RElZCptc+Qc3+dO2Y /PnN7utRgSVu97P07tg7YZKSgMepKunuh6AFPy8LhIhWWJx3r8606VMeECg0AVw+uEt4Cx /LhmcW9qWiETTXjAkPsWOCx6H8NI8ee0GRQ5yZ1cyVTOoSDNNGA5uHhuC5mzmw== 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 4XWRKy0fs5znyT; Sun, 20 Oct 2024 05:08:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49K58cm8064408; Sun, 20 Oct 2024 05:08:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49K58csv064405; Sun, 20 Oct 2024 05:08:38 GMT (envelope-from git) Date: Sun, 20 Oct 2024 05:08:38 GMT Message-Id: <202410200508.49K58csv064405@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 6b58c7c3aafb - stable/13 - igc: Want AIM at 2.5G List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 6b58c7c3aafbde4176eea519f078e030ffd2596e Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=6b58c7c3aafbde4176eea519f078e030ffd2596e commit 6b58c7c3aafbde4176eea519f078e030ffd2596e Author: Kevin Bowling AuthorDate: 2024-10-13 06:09:52 +0000 Commit: Kevin Bowling CommitDate: 2024-10-20 05:08:18 +0000 igc: Want AIM at 2.5G This should have been commited with bc9402a, need to account for link_speed of 2500 as well on igc. Sponsored by: Rubicon Communications, LLC ("Netgate") Sponsored by: BBOX.io (cherry picked from commit 669d26e5764f612cc60a4a61cdcf22ae46ddd360) --- sys/dev/igc/if_igc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/igc/if_igc.c b/sys/dev/igc/if_igc.c index b55c1ddd26b0..7d95c2909b7a 100644 --- a/sys/dev/igc/if_igc.c +++ b/sys/dev/igc/if_igc.c @@ -867,7 +867,7 @@ igc_neweitr(struct igc_adapter *sc, struct igc_rx_queue *que, nextlatency = rxr->rx_nextlatency; /* Use half default (4K) ITR if sub-gig */ - if (sc->link_speed != 1000) { + if (sc->link_speed < 1000) { neweitr = IGC_INTS_4K; goto igc_set_next_eitr; } From nobody Sun Oct 20 11:21:28 2024 X-Original-To: dev-commits-src-branches@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 4XWbc843nMz5YvTN; Sun, 20 Oct 2024 11:21:28 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbc83crzz4WZf; Sun, 20 Oct 2024 11:21:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423288; 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=2MVTgkikKvWMow8bc3Ycv7+jRx+lewBlupSVEv6wnIQ=; b=CKVCaFGmA5AMHT+Sv7SaAsjQm7oKMVZ4W4vKMzXeS3H3WSkM54yqpRq2+mLp+b223VV3VI +F36XFSCdpgxbxx2iFAeVhAW24zWqPdqaR1okfPf6o8mby8WFG2OiBSfxKxO5Etou5DgzI /icIu47DL3AryjrSmk93hGg36XdyPBJ4ncBh5qNe486aVJ2jQUN+2Mr91MrluMr9D6SF8w hji8BQsvRIyEQusPsYexRRKB9MnHtGVxi5LOoeFcuqkgWJrGvcpc9Kq/fVzLcrL9Iyz+2N dKLCAHIzZYJAbpE6AICaE3L5LlAN6oIxvj2yc574aaxBkmWPBlqMsrsZqOzWeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423288; 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=2MVTgkikKvWMow8bc3Ycv7+jRx+lewBlupSVEv6wnIQ=; b=tEWlIztyK6J8GbK8xa4ta3pAyc5LQPZcG2/XB5IvIHukxQIrAaTS/Vv+219fDYRXVf4sWY WSqUNmenQ7Itdij4GY0r8PArbxnHi5DFhErMOdPYFrP3pOGO/RBnbxG44SkAtKV1g2rafV ExFjYWDyTRCX6DoqSdtHo397HyMsB4gI8cnx/fZdqZwhNYG22pCFZjL726zuRJrSM05aFr eA6t91JSxgkfXvEgV+7HaCfN6fxYlxPiNyKCyJJYXM0yxh7gTS73GDC8I5UqoWXRrfxl9X +2MfdMXWFw6lpDAyjsahtNGhT36m//bLSqnkwuWK/CFvLxErf5EZuCJU18B41A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423288; a=rsa-sha256; cv=none; b=HIDbnJszJC+tmfpKoTYCgUw0iwSpoNdxU07iHYh2r7dSTwPqnKITU6+GdxXcVL0+t1xDHt v/VAbL+e87194DptsQbuZmr4iki9rsO/YSHOa50jZ7fRBrezO5HmyfwitXFuxlLF3ZxOd1 8Y7x1srjdTNjwzj35rEASL7R9X+ByecgEKqDXhffyOGKSxkkHNXRPPBF4Iv7ea65TwCpHX 2A8he/YN4nj6uLjbPwAPYfP88VhhzoAldy6/PODRZ6EIAH23F2Fn83gnkgoq3d4YhO0jbn CEKPgu0mVF9i8I85ag8jBuhvbCJku1+wnEDLgTZPpVobNHe7KydceZWlz0yAPw== 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 4XWbc83DRyz10Dt; Sun, 20 Oct 2024 11:21:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLSVL061328; Sun, 20 Oct 2024 11:21:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLS8x061325; Sun, 20 Oct 2024 11:21:28 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:28 GMT Message-Id: <202410201121.49KBLS8x061325@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: e1eaa312d592 - stable/14 - sound: Remove KASSERT from vchan_setnew() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e1eaa312d592a8cde8c9faf49e026a4d3f47489c Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=e1eaa312d592a8cde8c9faf49e026a4d3f47489c commit e1eaa312d592a8cde8c9faf49e026a4d3f47489c Author: Christos Margiolis AuthorDate: 2024-10-18 08:38:31 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:04 +0000 sound: Remove KASSERT from vchan_setnew() This check is not really useful, and can in fact break things, if sysctl_dev_pcm_vchans() calls vchan_setnew() with a value that will not satisfy the KASSERT condition. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, emaste Differential Revision: https://reviews.freebsd.org/D46545 (cherry picked from commit 998de46c51452b046ecd9ba8ed592dd7c4f79f51) --- sys/dev/sound/pcm/vchan.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index fa4fa2023b71..c1ad9b9ec2ba 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -945,9 +945,6 @@ vchan_setnew(struct snddev_info *d, int direction, int newcnt) return (EINVAL); if (newcnt > vcnt) { - KASSERT((newcnt - 1) == vcnt, - ("bogus vchan_create() request newcnt=%d vcnt=%d", - newcnt, vcnt)); /* add new vchans - find a parent channel first */ ch = NULL; CHN_FOREACH(c, d, channels.pcm) { From nobody Sun Oct 20 11:21:29 2024 X-Original-To: dev-commits-src-branches@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 4XWbc95Y5lz5YvJS; Sun, 20 Oct 2024 11:21:29 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbc94tXjz4WpS; Sun, 20 Oct 2024 11:21:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423289; 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=+madErfrGessyY7EkC3y4dEqp2kDUzfLSgFBshdhhFg=; b=KwGoVJul70aK41RcCiYgqKA+bHGBLJ2uK1uT7Vp+gI3KUBaiTNQryG7DhWjvtSTexonk7u 43ai44l6th0E0u+7t8yFuwzbI9/m9KTma6IjZYM22K/1NX8p1eXj8n0XOjaF89FB0kbkIJ PxbMAkmK8gTo/iS3cpR9PNgXSHP9RfBhAQ9iPt3+JaV461YsdatWdAJ5VHVu0ZtlH4ZvrM nOzTbArjhi/U23M1/vdoIEuG3seEPjBGoi8XK4VvSUa8bXnx8ux6wfSC76vvOL4xnQTZrz Pt9V8PtkWomgfs9NxqD6Mk5hch8d1DwKsQ2wivPDG5O1o1wB2iWqSPzVj5biyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423289; 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=+madErfrGessyY7EkC3y4dEqp2kDUzfLSgFBshdhhFg=; b=TFp0iRqx7loI2L4XTQsotHP1nasr0Bm9m6q5ZvuD2E4An6MWmFxCXKaw9bxK6mUiZ4XATq eqIp8bwhSZb6oRtwVZGrWl4T+r3rgak/89QoEK2NMBirjEuh2X9emO5uElqXs4d1uTHHxb VzfIa86KbxRarQa04yQDfS6gwa7MRRf9R8Jn3uotXhq4WRYsplCqmy/CIUrfXUrwsRokzV sYNa9Tq5i9n08fXrFlqr4VUbGivbWEGfPohp2N7p6dIcY66+AO2wC3Gmy5sN79TH7hAA1J r926Aff4EJYVzYl05V8ZU5lGNncZ3/GRzVm2VaGxOcOHz8+3lvTNcgq3N78iFA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423289; a=rsa-sha256; cv=none; b=vEOSURFOgHtcot20hyKLZ9SkGRE+anXHNBA2KsOO6DwtO/8Vyhz3bBK9ltyXMDQ8fojoxb LrNZNXYSkIwQNrLMaQUiwNJ2MK9JYmdqIE5xiuJkegLcSu4ATb8GpZVl2B4ZqXtPgz2OJ4 4D1uN7qIQUeZOI7+Q6GTn9/2jDAqHFMu88vlVN+f4X+PdjsmLHNZDVNYtR9CXj1m58jffH yPA7ZhIQvvVNpZ87yikJbhkGVVvsQ1G6aSADLezdaszRrI1JvaLHLU7pKrvWyl9G8kwR+W kcmZjA7azEMRVtA0nyZNe8SXl5SdhT2PkkM4cIvQxPfepy9iEW/+jfhoIkWFXw== 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 4XWbc94Btqz10Dv; Sun, 20 Oct 2024 11:21:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLTdB061385; Sun, 20 Oct 2024 11:21:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLTwR061382; Sun, 20 Oct 2024 11:21:29 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:29 GMT Message-Id: <202410201121.49KBLTwR061382@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 9834b6fc77ff - stable/14 - sound: Get rid of pnum and max variables in chn_init() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9834b6fc77ff53e5303d142486de109d6b02219e Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=9834b6fc77ff53e5303d142486de109d6b02219e commit 9834b6fc77ff53e5303d142486de109d6b02219e Author: Christos Margiolis AuthorDate: 2024-10-18 08:38:41 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:04 +0000 sound: Get rid of pnum and max variables in chn_init() The VCHAN count is checked in vchan_setnew(), and there is no reason to cap the hardware channels in the first place. This is part of a series of follow-up patches. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D46521 (cherry picked from commit de8ee333388bf5e551e697b08823b3a6c262f609) --- sys/dev/sound/pcm/channel.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index e0fd24805a21..bf9c74e2ed1d 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1165,7 +1165,7 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, struct feeder_class *fc; struct snd_dbuf *b, *bs; char *dirs, buf[CHN_NAMELEN]; - int i, direction, *pnum, max, type, unit; + int i, direction, type, unit; PCM_BUSYASSERT(d); PCM_LOCKASSERT(d); @@ -1174,30 +1174,22 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, case PCMDIR_PLAY: dirs = "play"; direction = PCMDIR_PLAY; - pnum = &d->playcount; type = SND_DEV_DSPHW_PLAY; - max = SND_MAXHWCHAN; break; case PCMDIR_PLAY_VIRTUAL: dirs = "virtual_play"; direction = PCMDIR_PLAY; - pnum = &d->pvchancount; type = SND_DEV_DSPHW_VPLAY; - max = SND_MAXVCHANS; break; case PCMDIR_REC: dirs = "record"; direction = PCMDIR_REC; - pnum = &d->reccount; type = SND_DEV_DSPHW_REC; - max = SND_MAXHWCHAN; break; case PCMDIR_REC_VIRTUAL: dirs = "virtual_record"; direction = PCMDIR_REC; - pnum = &d->rvchancount; type = SND_DEV_DSPHW_VREC; - max = SND_MAXVCHANS; break; default: device_printf(d->dev, @@ -1206,23 +1198,11 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, return (NULL); } - if (*pnum >= max) { - device_printf(d->dev, "%s(): cannot allocate more channels " - "(max=%d)\n", __func__, max); - return (NULL); - } - unit = 0; CHN_FOREACH(c, d, channels.pcm) { if (c->type != type) continue; unit++; - if (unit >= max) { - device_printf(d->dev, "%s(): cannot allocate more " - "channels for type=%d (max=%d)\n", - __func__, type, max); - return (NULL); - } } PCM_UNLOCK(d); From nobody Sun Oct 20 11:21:30 2024 X-Original-To: dev-commits-src-branches@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 4XWbcC29k7z5YvNr; Sun, 20 Oct 2024 11:21:31 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcB5hqgz4WsH; Sun, 20 Oct 2024 11:21:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423290; 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=IRfJ0VHBpxopBuxBt13XuQSzYV25AvUowtenzBo2iE8=; b=ActX/9LyTmWWGcgDl58Y3kmr/dZWe1ABc+x+1X+eszRheFd6OGkVmWnjtSDBvmmsmkGlsV pxw4+loRbpc08FEvUAdRtPQLWU2L8QwbCMruHnMoXWl9WxdaVzbhYmuki4c8nxv3qVkzL2 7VPZXl7XvQtWXq2DYTQWki1y+dfWQOmmBWFiviXKRwyIrEm3LkrzpA9xpQoLT6NRQa8IqO dl92jB/Vfu18GC0pTfV+Xv4dO9aK/BZCLH+WOmK/kmCrwetdfwE8cJjQQf1M/zTg+t4arN czZJT3ewRuu6jYDlZlf9reMEy06XcCcKLy1Fq8/dY+j4BBQhvxwATm+zPhK57w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423290; 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=IRfJ0VHBpxopBuxBt13XuQSzYV25AvUowtenzBo2iE8=; b=ZQXSzkNl9mpCBj3ry4b6tUtpI+CLQDcmy3LIr+HQAq74TroEFGJG0j25WC1oygVIBIzyfU oOBOd1DWwmBa9kW2TBWycMwUMEeGv/g2CF5/jEE5/cn5BB99JYn0r8SrPJCX/MAZco+R9T heBmYXvRxDpIhUJgTO40/iJxqawl1CKBJGaH8eYfw1wbqBOKKyA6KrEppY2NqHYfLKo/1g Bd5OvZw0KDpyU3io8xjSc1dxWfqwrfKVPo7pTRGDJPck7pt5BFrbvAr3cSIbrkxpNyVHb2 yPnzNbcTQjM/axRscVDxaPG4GsVO3kM6H5avrNuHI69rhB7X4hQqg4cR9oQt6g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423290; a=rsa-sha256; cv=none; b=EdO6PwZGTgiAcLN168p5tOxx+9Pu+j2xRCkfGouurtTSsrtcdmcsjY8aP8+E9IXZIa8grh YwfbTRMlItHVLa6AYqsjIwIJcEnERGRXG9doL7NajwgFm1aDfB5XfeByD6O/NsrFoZG6Yu oYd/WByoLQUI/4QLZBXP0i/i9MjYsC0hCoHDemokfNCUe3/mGVAaJqqMpEf9pTtzSNBU9J B6SO1jMZVM3kL0YcdS3HjtMlHKRwBiRvu9FYT1NVjHIE8AS8ZxSHWiZ4SHC4xRl8JxuQ9a uw943fRQNHFRGtDRQ81lkJ3IXobpSg9R1t6oCIcnf90CsrUkje7wtVoy37TrHA== 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 4XWbcB5Cq0z10Jf; Sun, 20 Oct 2024 11:21:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLUD0061450; Sun, 20 Oct 2024 11:21:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLUJD061447; Sun, 20 Oct 2024 11:21:30 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:30 GMT Message-Id: <202410201121.49KBLUJD061447@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 4cf4144d8f7f - stable/14 - sound: Simplify pcm_chnalloc() and fix infinite loop bug List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4cf4144d8f7fdd51562b45fa8f1f4aa16d444b3a Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=4cf4144d8f7fdd51562b45fa8f1f4aa16d444b3a commit 4cf4144d8f7fdd51562b45fa8f1f4aa16d444b3a Author: Christos Margiolis AuthorDate: 2024-10-18 08:38:50 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:04 +0000 sound: Simplify pcm_chnalloc() and fix infinite loop bug Simplify logic to execute the following algorithm: 1. Search for a free (i.e not busy) channel and return successfully. 2. If no channel was found, either return an ENOTSUP if no VCHAN can be created (disabled or we reached the limit), or create one more VCHAN and scan for it again. 3. If the second scan failed again, return EBUSY. This patch also solves a bug where we'd end up in an infinite loop, calling vchan_setnew() with the same `newcnt` value indefinitely, after the following scenario: 1. Plug device. 2. Spawn X channels. 3. Kill all channels except _last_ opened. 4. Clean up all unused VCHANs. 5. Spawn X+1 channels. 6. Infinite loop in pcm_chnalloc(). I am not exactly sure which part of pcm_chnalloc() caused this bug, but the patch fixes it at least... Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D46548 (cherry picked from commit b973a14d354f332a3428cbab8e9d4b72cb3e2d6e) --- sys/dev/sound/pcm/sound.c | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index b18b83468150..1aaf614078a4 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -109,13 +109,12 @@ snd_setup_intr(device_t dev, struct resource *res, int flags, driver_intr_t hand return bus_setup_intr(dev, res, flags, NULL, hand, param, cookiep); } -/* return error status and a locked channel */ int pcm_chnalloc(struct snddev_info *d, struct pcm_channel **ch, int direction, pid_t pid, char *comm) { struct pcm_channel *c; - int err, vchancount, vchan_num; + int err, vchancount; bool retry; KASSERT(d != NULL && ch != NULL && @@ -125,46 +124,38 @@ pcm_chnalloc(struct snddev_info *d, struct pcm_channel **ch, int direction, PCM_BUSYASSERT(d); *ch = NULL; - vchan_num = 0; vchancount = (direction == PCMDIR_PLAY) ? d->pvchancount : d->rvchancount; - retry = false; + retry_chnalloc: - err = ENOTSUP; - /* scan for a free channel */ + /* Scan for a free channel. */ CHN_FOREACH(c, d, channels.pcm) { CHN_LOCK(c); - if (c->direction == direction && (c->flags & CHN_F_VIRTUAL)) { - if (vchancount < snd_maxautovchans && - vchan_num < c->unit) { - CHN_UNLOCK(c); - goto vchan_alloc; - } - vchan_num++; + if (c->direction != direction) { + CHN_UNLOCK(c); + continue; } - if (c->direction == direction && !(c->flags & CHN_F_BUSY)) { + if (!(c->flags & CHN_F_BUSY)) { c->flags |= CHN_F_BUSY; c->pid = pid; strlcpy(c->comm, (comm != NULL) ? comm : CHN_COMM_UNKNOWN, sizeof(c->comm)); *ch = c; + return (0); - } else if (c->direction == direction && (c->flags & CHN_F_BUSY)) - err = EBUSY; + } CHN_UNLOCK(c); } - - /* - * We came from retry_chnalloc and still didn't find a free channel. - */ + /* Maybe next time... */ if (retry) - return (err); + return (EBUSY); -vchan_alloc: - /* no channel available */ + /* No channel available. We also cannot create more VCHANs. */ if (!(vchancount > 0 && vchancount < snd_maxautovchans)) - return (err); + return (ENOTSUP); + + /* Increase the VCHAN count and try to get the new channel. */ err = vchan_setnew(d, direction, vchancount + 1); if (err == 0) { retry = true; From nobody Sun Oct 20 11:21:31 2024 X-Original-To: dev-commits-src-branches@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 4XWbcD2RFvz5YvJY; Sun, 20 Oct 2024 11:21:32 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcD01Kdz4WsV; Sun, 20 Oct 2024 11:21:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423292; 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=LyRS4bRjueDVo3PHLgViAP8Y6LJAKo4Gv8AIZNBWyI8=; b=PsNYFecJJgUmYGXMzSwLmiAov0E3p1u8vE+UJMimjusIV5/imk826JxWm4HI57rdkAuxLe czvy1m/XMiU8daP+J8vAJaNnR0jZwsWfyMqgpV1CQ3/8zTcpVMxqbQzTOtWe8P9o/JKyvs sf7ffOt8dZm4i3aoNuUVW5+jychrCZSy1f4ypV9aVFRx4VVCK/vwKlczmbiNV2naTCNfZ1 K8PU+Amiq7oga0IqBlWPOEMEQeY1S+n7mOJyRodAA8OwbzBJJ9gPwE32swLYe7JqD5u8/p aJ4InhHNonIOG9L2fBsbJyEgrNXi2NYwbFfao12oxQFYCP8ryIGBBmZMcMAouA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423292; 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=LyRS4bRjueDVo3PHLgViAP8Y6LJAKo4Gv8AIZNBWyI8=; b=e3yicTP3mvQZwrDogbOrRDkH6N30F6rbqFEXllpFjxUlEBnosLY95omECmczPlkLNnNYDQ TReS+vgMerR+qYuCOio99xevcqK9OOzFz30wLBiTHb0+mhsmMH+zyq5hzI2RW/taomBMc7 l+t9aOXDXYaEjrhcxG/Bb/DxdRsUhZwGU/j5no7NpbSV9eR+DKMuaXXJQOWislfC/2lX7S /DUUheYVi3ouro2VsePEQTeiMQh7S8Z9JOTkEETffpK5+/lua3fAu7fn0MqSE3T+GROiAn x200b8WfKOK7dEIIv0WKVMxgZW24CqPj10X0Z8uJ10jwPvOqSmnti5f7xKokNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423292; a=rsa-sha256; cv=none; b=rTy0QWKdFSLSvlb05KuJSfksKVWo5o79MaQlOR2/hq6fcbmNi8UIqb4/iYZAj7zM6iUBht QVky12vlSYdMgrGvLn2gQwfrgXbCJXZl/HFLXGX6IplmIEFNJQJEswqIjj+lquWJjgjAsN JWlyhKQ+4zaSCpcihM5GLBMljyH9w7q+P92ENSoHtd/TmphDyTkSf0rbG3HfFal2zxYLX1 b0tovcEZtKdcqJKmfEhVbtVpE455MBowhaxDlmSyDyvjOKrpamvxmGVQVyb9ZPyOR02ECv 1rs9+IAto6gaxZZXFBAhR/Ogu+FGD5l0Vo/jSAL/lZYcEBODDYLgVlW10YwSJA== 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 4XWbcC5wB4z103C; Sun, 20 Oct 2024 11:21:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLV01062196; Sun, 20 Oct 2024 11:21:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLVM1062176; Sun, 20 Oct 2024 11:21:31 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:31 GMT Message-Id: <202410201121.49KBLVM1062176@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 30a64793aa6c - stable/14 - sound: Sort channels by unit number as well List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 30a64793aa6c5198bd755858da7f275ae0166249 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=30a64793aa6c5198bd755858da7f275ae0166249 commit 30a64793aa6c5198bd755858da7f275ae0166249 Author: Christos Margiolis AuthorDate: 2024-10-18 08:39:00 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:04 +0000 sound: Sort channels by unit number as well Refactor CHN_INSERT_SORT() to also take into account the unit number of each channel, while still prioritizing the type, to make the channel list easier to work with. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D46549 (cherry picked from commit 142aca25b07c9a7067d8040ea98812c54b253bbf) --- sys/dev/sound/pcm/channel.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/dev/sound/pcm/channel.h b/sys/dev/sound/pcm/channel.h index 445882a62f0a..d146f51120d8 100644 --- a/sys/dev/sound/pcm/channel.h +++ b/sys/dev/sound/pcm/channel.h @@ -225,7 +225,8 @@ struct pcm_channel { #define CHN_INSERT_SORT(w, x, y, z) do { \ struct pcm_channel *t, *a = NULL; \ CHN_FOREACH(t, x, z) { \ - if ((y)->type w t->type) \ + if (((y)->type w t->type) || \ + (((y)->type == t->type) && ((y)->unit w t->unit))) \ a = t; \ else \ break; \ @@ -236,7 +237,7 @@ struct pcm_channel { CHN_INSERT_HEAD(x, y, z); \ } while (0) -#define CHN_INSERT_SORT_ASCEND(x, y, z) CHN_INSERT_SORT(>=, x, y, z) +#define CHN_INSERT_SORT_ASCEND(x, y, z) CHN_INSERT_SORT(>, x, y, z) #define CHN_INSERT_SORT_DESCEND(x, y, z) CHN_INSERT_SORT(<, x, y, z) #define CHN_BUF_PARENT(x, y) \ From nobody Sun Oct 20 11:21:34 2024 X-Original-To: dev-commits-src-branches@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 4XWbcG4chLz5YvRJ; Sun, 20 Oct 2024 11:21:34 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcG1XPjz4Wqj; Sun, 20 Oct 2024 11:21:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423294; 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=Uzrmdk3KSb4szpy7c9sqpGpF93yDN01QdzKNE9CCuyQ=; b=l1LRySdneiM/sQ59xWAOS+56lnON5onYM9Qj1WtA5demrjNJM+y4o17TV40AR/8H37vEyg SicFK+0zArprkzWcSDAoxg466XLE8G7e3jBiXLrn0+W/8ZX29jFtBLgZCgw9rcvGtxrsVt DNjALIcKOOhuTJKok8rmCSUM7HqBH+DH3N1dLcGYC2PD0dIexm92lZGSc7aHZKHngncw5Z kDSrF0URfZQMI0mvQCij/mQJDaIHRpTbNxWJnIhab5jYM+Uhf1GwvOr6oddaHIGQGmRNb/ 53qfXIM0CrnrfGBbctKmddqmQGHQ6JiArX+jaRdpYY5+eJJMo5ky10EyTtcpjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423294; 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=Uzrmdk3KSb4szpy7c9sqpGpF93yDN01QdzKNE9CCuyQ=; b=SR0hR8ksnxiGbMpSrDTt039GktGXFWHNXgFno2tORfocxjyaItyn+MUJC76ILeUV/NSI/m bQA0UqB3wVGPoKL+JXfiJ8P09dTLG/66ihXrs6xS4Ouw4akLbbalD/i7jCOfVR57Ui+oXV Db1tIR73wL2WwdJ58KD2qM1GUMOBqXR5vmxF/xzzNs7AJkau1m2iPDogQ+xFxWvBlwjEXn ZB0WiqOSKy1TO3zAGeFMsmkpjMhcRxnuOB/2bYz8Ntx0fVRgAPH+WtjaNwSLg+80In1mAm HzutOrwRtZjjmF+MBJPZcwjYLuhKVhsDKP8DRRkVOtFpfEWAXmCH66f3PkQJ+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423294; a=rsa-sha256; cv=none; b=BvLqEMBSLHHtQRNAeEgvAi24kLmOnSOgJ2KQgtY9JijSSb0hobCHNrsXaJrnjv/V3dLc2I 2KerSQYwbfQC1yYqk/0mxDEr+IacqyXIE5kcVQdMY36UWi1q89Yj2qKbbYn48iAYU4TY7w hAFU6jEdIk9J0ZpTgSvHUMoW8PqJC72y3/94r4e/ZX2wv6F9qdk5vKMl9104zLjXH1Ea7S QPjb2nRh4+kYUplfF61+KyXRGUthK/hp3wAQ1yW2g9kcwAPnvUefT5X9/P9SnOWozvIu/3 GA01tawjgO/3yv1UAm+WB5eAO5jr9KXfMEXokoYbYH+cqdnNmB7IPJPhqdVS8Q== 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 4XWbcG171Fz108L; Sun, 20 Oct 2024 11:21:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLYaq062673; Sun, 20 Oct 2024 11:21:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLYxE062670; Sun, 20 Oct 2024 11:21:34 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:34 GMT Message-Id: <202410201121.49KBLYxE062670@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 1b0acff71fe8 - stable/14 - sound: Fix indendation in sound_modevent() switch statement List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1b0acff71fe8dbaf62afc32b51d8eaa2fa39862d Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=1b0acff71fe8dbaf62afc32b51d8eaa2fa39862d commit 1b0acff71fe8dbaf62afc32b51d8eaa2fa39862d Author: Christos Margiolis AuthorDate: 2024-10-18 08:39:15 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:04 +0000 sound: Fix indendation in sound_modevent() switch statement Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D46856 (cherry picked from commit 41ff4177614562923a30e2541e2a15883a4ce32c) --- sys/dev/sound/pcm/sound.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index f9c87facfeec..330c99de14d1 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -836,20 +836,20 @@ sound_modevent(module_t mod, int type, void *data) ret = 0; switch (type) { - case MOD_LOAD: - pcm_devclass = devclass_create("pcm"); - pcmsg_unrhdr = new_unrhdr(1, INT_MAX, NULL); - break; - case MOD_UNLOAD: - if (pcmsg_unrhdr != NULL) { - delete_unrhdr(pcmsg_unrhdr); - pcmsg_unrhdr = NULL; - } - break; - case MOD_SHUTDOWN: - break; - default: - ret = ENOTSUP; + case MOD_LOAD: + pcm_devclass = devclass_create("pcm"); + pcmsg_unrhdr = new_unrhdr(1, INT_MAX, NULL); + break; + case MOD_UNLOAD: + if (pcmsg_unrhdr != NULL) { + delete_unrhdr(pcmsg_unrhdr); + pcmsg_unrhdr = NULL; + } + break; + case MOD_SHUTDOWN: + break; + default: + ret = ENOTSUP; } return ret; From nobody Sun Oct 20 11:21:32 2024 X-Original-To: dev-commits-src-branches@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 4XWbcF3w1vz5Yvmx; Sun, 20 Oct 2024 11:21:33 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcF0vYsz4Wdn; Sun, 20 Oct 2024 11:21:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423293; 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=B530ySfvqRwTpmVYhVGrfyCuFH81G8wmmM6kxiA65dA=; b=C04QuBbts7huYcyBBAy5/wiVbJ7TC4pwtPuXjG6kLyJUcDHQU75MULOro7OEqMWsFNoYsv Kd9o3YyWNjDGa/nwGDLdKv0zYxLZ6bz2uEfm4DdDFDI2DbGqtxDV9WfHWvwu/tOiu2S0tG MVpI5jsujeQIWfd/gEpKVam28h4Yx5Xd2LM6tIgccTUn3oaqwAFk1dcaTZgLRXaz56wD+s +R79Ac0htejwkKH8XmMuu4x9tyG+JOW5jvKdQclpCfhHdl8snDqyxgclOWHORhvQTI+3Uw Ql2GfeBoFwTHHDVkiYzak8/lyCdcq1BdIFg1H2RGbv8e4wf3M0RwSvPfzhROsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423293; 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=B530ySfvqRwTpmVYhVGrfyCuFH81G8wmmM6kxiA65dA=; b=xTE38U6kfwV56XQjf83fGSualtDWBToYXhp0Zez4CV3KfZgKc5D7+PIn6E/qPQQgM2dnmJ fAe6erQk/IQ496f9WCiG8LGtV3hkZWYRWJnkmuPkGpyR6TnPkGkhT1wIYCwQn3utpfYhBL V30GI3bXF6n8wkXPaMYEU0fZChCHHJEHoxFI1yM2NwGFAUPuck6nf6NUnzH6BZ0MsnjOfw q4uJmDefyVPZjzLAaAqPmaacAuNzBMFz2A17RawTh2hyBIfhUKLPuI1BhphyDFt6F5Jksr Zuc6DKS+JMDL4pseOxP4wOwlQ7DTWnSwb/zzTG5qdabMnPVqWie5kd2PExWA2g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423293; a=rsa-sha256; cv=none; b=U27T0cw7LBcI2R+8dF4YZY3FdNjnB6SXrCshh/hU89H5AE/Z/2yw5BonRq2ARetmqACh+o v/fgYD9rQvCpM5B3oxzsFBILxn0K9uLfL+E43kWl1LI+HnHD9ec+kO3m8JG1oNnkXnb/Oo vPkxB+Q1YYCI6Bdg2ODN9yNdZgKThzI/SisUw3SPL6dbzGQUaRy5D/TCnq8PCAJMtN3KDw y161ZjtfwKAw0PntMrJ4xO7zMiCvDfk2BC35fqJJvgfP/qYOYJ7l/g6PV+vD0wA9KTR2so OhkWJhDUeyNw8yzN52cmk1lAj+aYugqVif16qcdZF2GoyTnx1v1OKzcPi6Ck9w== 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 4XWbcF08T8z10Vl; Sun, 20 Oct 2024 11:21:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLWIe062621; Sun, 20 Oct 2024 11:21:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLWUO062617; Sun, 20 Oct 2024 11:21:32 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:32 GMT Message-Id: <202410201121.49KBLWUO062617@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 463eafcff98f - stable/14 - sound: Use unr(9) to produce unique channel unit numbers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 463eafcff98f8036cef0e2f7e00ecd0a8e5437d4 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=463eafcff98f8036cef0e2f7e00ecd0a8e5437d4 commit 463eafcff98f8036cef0e2f7e00ecd0a8e5437d4 Author: Christos Margiolis AuthorDate: 2024-10-18 08:39:08 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:04 +0000 sound: Use unr(9) to produce unique channel unit numbers Currently it is possible to assign a unit number that already exists. Suppose the following channel list: [vp2] If we create 3 channels, we'll end up with the following list: [vp0, vp1, vp2, vp2] This happens because chn_init() does not check if the unit number we are assigning already exists. While fixing this is trivial when the channel list is sorted in ascending order, it is way more involved when sorted in descending order. Even though sorting the list in descending order would require deliberately modifying pcm_chn_add(), and is most likely not going to happen, make the mechanism more robust by using a unr(9) allocator for each channel type. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D46680 (cherry picked from commit ad4c8671bddaa30bf0413089c74dde6a618d9021) --- sys/dev/sound/pcm/channel.c | 31 ++++++++++++++++++++++--------- sys/dev/sound/pcm/sound.c | 12 ++++++++++++ sys/dev/sound/pcm/sound.h | 4 ++++ 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index bf9c74e2ed1d..d1c9bc616dcf 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1157,6 +1157,24 @@ chn_reset(struct pcm_channel *c, uint32_t fmt, uint32_t spd) return r; } +static struct unrhdr * +chn_getunr(struct snddev_info *d, int type) +{ + switch (type) { + case SND_DEV_DSPHW_PLAY: + return (d->p_unr); + case SND_DEV_DSPHW_VPLAY: + return (d->vp_unr); + case SND_DEV_DSPHW_REC: + return (d->r_unr); + case SND_DEV_DSPHW_VREC: + return (d->vr_unr); + default: + __assert_unreachable(); + } + +} + struct pcm_channel * chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, int dir, void *devinfo) @@ -1165,7 +1183,7 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, struct feeder_class *fc; struct snd_dbuf *b, *bs; char *dirs, buf[CHN_NAMELEN]; - int i, direction, type, unit; + int i, direction, type; PCM_BUSYASSERT(d); PCM_LOCKASSERT(d); @@ -1198,13 +1216,6 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, return (NULL); } - unit = 0; - CHN_FOREACH(c, d, channels.pcm) { - if (c->type != type) - continue; - unit++; - } - PCM_UNLOCK(d); b = NULL; bs = NULL; @@ -1216,7 +1227,7 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, CHN_INIT(c, children.busy); c->direction = direction; c->type = type; - c->unit = unit; + c->unit = alloc_unr(chn_getunr(d, c->type)); c->format = SND_FORMAT(AFMT_U8, 1, 0); c->speed = DSP_DEFAULT_SPEED; c->pid = -1; @@ -1304,6 +1315,7 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, return (c); fail: + free_unr(chn_getunr(d, c->type), c->unit); feeder_remove(c); if (c->devinfo && CHANNEL_FREE(c->methods, c->devinfo)) sndbuf_free(b); @@ -1335,6 +1347,7 @@ chn_kill(struct pcm_channel *c) chn_trigger(c, PCMTRIG_ABORT); CHN_UNLOCK(c); } + free_unr(chn_getunr(c->parentsnddev, c->type), c->unit); feeder_remove(c); if (CHANNEL_FREE(c->methods, c->devinfo)) sndbuf_free(b); diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index 1aaf614078a4..f9c87facfeec 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -568,6 +568,10 @@ pcm_register(device_t dev, void *devinfo, int numplay, int numrec) d->pvchanformat = 0; d->rvchanrate = 0; d->rvchanformat = 0; + d->p_unr = new_unrhdr(0, INT_MAX, NULL); + d->vp_unr = new_unrhdr(0, INT_MAX, NULL); + d->r_unr = new_unrhdr(0, INT_MAX, NULL); + d->vr_unr = new_unrhdr(0, INT_MAX, NULL); CHN_INIT(d, channels.pcm); CHN_INIT(d, channels.pcm.busy); @@ -653,6 +657,14 @@ pcm_unregister(device_t dev) cv_destroy(&d->cv); PCM_UNLOCK(d); snd_mtxfree(d->lock); + if (d->p_unr != NULL) + delete_unrhdr(d->p_unr); + if (d->vp_unr != NULL) + delete_unrhdr(d->vp_unr); + if (d->r_unr != NULL) + delete_unrhdr(d->r_unr); + if (d->vr_unr != NULL) + delete_unrhdr(d->vr_unr); if (snd_unit == device_get_unit(dev)) { snd_unit = pcm_best_unit(-1); diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h index 5f32dd767fe8..2de6ab29bd66 100644 --- a/sys/dev/sound/pcm/sound.h +++ b/sys/dev/sound/pcm/sound.h @@ -325,6 +325,10 @@ struct snddev_info { struct sysctl_ctx_list play_sysctl_ctx, rec_sysctl_ctx; struct sysctl_oid *play_sysctl_tree, *rec_sysctl_tree; struct cv cv; + struct unrhdr *p_unr; + struct unrhdr *vp_unr; + struct unrhdr *r_unr; + struct unrhdr *vr_unr; }; void sound_oss_sysinfo(oss_sysinfo *); From nobody Sun Oct 20 11:21:35 2024 X-Original-To: dev-commits-src-branches@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 4XWbcH5j5wz5YvYV; Sun, 20 Oct 2024 11:21:35 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcH2FVNz4WZ6; Sun, 20 Oct 2024 11:21:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423295; 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=qgCFa9J9ejPZnjZbWbk/0AkARVvmusytk2eX5JKc18I=; b=n7uP1OlPFnvE5Tm0igMweZHbQARypazuWESBkwIZruh1Us+szFV1cT9fPILGc5zBZcHgoy UTxwF5xEvU7Ncgd19aj+LtOeoSvQAUjHlu4repLWOb8DXmP883nUgeuuzNJp1+nNGxHS7t ciFYFdPrvE9+xZyJHKtSBBZgLnhzsKEO+HB5xxniz3X+VzmtR20l2V2aSHixo2Ca/VVnR9 Qh9gn+u/IXG49P3YcRl23CjdFHDb0YrJ7IvvNtbIw6tC3XTq1OSrzjQ2+0WOKjErzp5fv9 iFvx455MBuQ2j6JfpI/eho8bhgvG152cowmoJnSmjpK+TJoxFHRXW1Sz2wMPlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423295; 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=qgCFa9J9ejPZnjZbWbk/0AkARVvmusytk2eX5JKc18I=; b=xiEM4/nkpPXC/GBYj8/6Y+pOM/2wiW9yGc97IjZIlm+FgaGQA/7pEwCqdl68myjJQ4+Ph4 zZ5ViHmlKas/l8IH/lZUFCy7cbAav+LB8MobZSimNCKoJ3cKtDTxCxLc0m6ujrnfyM8v9t cLyZEX0+3pCU2eyBO/0m+9yWVgp0/N1M5eFaZ8fMagE8BOuUlA6RmaQ6bFVhubMuVWS0Zj KA3MseVsGF4s4BCh155xq2pgsvlLO1esnTN0MMzhv0vyXJgtK/hqoCHPDLmFJx6wJ2ACPp lRqmUpgVJF1l9PjLkc8bSDWLgd7oS1o9rJzMAeBCxF7s9xptIUrqjPuXCh8rGQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423295; a=rsa-sha256; cv=none; b=agHnPlfVFzqR2/he04OC25epFm+yMZEW6bhSZYrQNuOg7uNcM99BkLqz9sVSVgPMpf23gw MoCJVk+3OyYPpxA2gZ7DGp+ElFlaFTmq+Ev29E0XfPVuA1C4zJdQa4PivQnRyHuux9NwMv EMjM5RykimeCxgw+8HNCSHDnvKOVITzU1Y1JkrnmUZ66/CkhKMsWTJvjpZVSCGGX2WwA/K KJnTGzNjEfA0XFPTULY9otrq38iq5gZFQoZuEE0xQR0e6meKxIXnMuFBEbRMV85xi4RRIp c9TwBEk5xqCT+HUnFSnPsIivIJ5X/Nr6Hob/AQAOEpg20/yqYXOBOMkZuXOViA== 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 4XWbcH1rVLz108M; Sun, 20 Oct 2024 11:21:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLZvs062724; Sun, 20 Oct 2024 11:21:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLZc1062718; Sun, 20 Oct 2024 11:21:35 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:35 GMT Message-Id: <202410201121.49KBLZc1062718@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 6cf4db422c21 - stable/14 - sound: Move global variable initialization to sound_modevent() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6cf4db422c21ab4a0c39ed3f7c5f5d864c8ea2a2 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=6cf4db422c21ab4a0c39ed3f7c5f5d864c8ea2a2 commit 6cf4db422c21ab4a0c39ed3f7c5f5d864c8ea2a2 Author: Christos Margiolis AuthorDate: 2024-10-18 08:39:46 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:04 +0000 sound: Move global variable initialization to sound_modevent() There is no reason to initialize global variables in feeder_register(), as these variables are unrelated to what the function does. Instead, initialize them during sound(4) load. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: zlei Differential Revision: https://reviews.freebsd.org/D46749 (cherry picked from commit 0a0301deb5b6a9c66829dd20cff9d40c5ba9ad92) --- sys/dev/sound/pcm/feeder.c | 43 ------------------------------------------- sys/dev/sound/pcm/sound.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 43 deletions(-) diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c index 716eb07feaae..87437c6d00b5 100644 --- a/sys/dev/sound/pcm/feeder.c +++ b/sys/dev/sound/pcm/feeder.c @@ -77,49 +77,6 @@ feeder_register(void *p) SLIST_INSERT_HEAD(&feedertab, fte, link); feedercnt++; - /* initialize global variables */ - - if (snd_verbose < 0 || snd_verbose > 4) - snd_verbose = 1; - - if (snd_unit < 0) - snd_unit = -1; - - if (snd_maxautovchans < 0 || - snd_maxautovchans > SND_MAXVCHANS) - snd_maxautovchans = 0; - - if (chn_latency < CHN_LATENCY_MIN || - chn_latency > CHN_LATENCY_MAX) - chn_latency = CHN_LATENCY_DEFAULT; - - if (chn_latency_profile < CHN_LATENCY_PROFILE_MIN || - chn_latency_profile > CHN_LATENCY_PROFILE_MAX) - chn_latency_profile = CHN_LATENCY_PROFILE_DEFAULT; - - if (feeder_rate_min < FEEDRATE_MIN || - feeder_rate_max < FEEDRATE_MIN || - feeder_rate_min > FEEDRATE_MAX || - feeder_rate_max > FEEDRATE_MAX || - !(feeder_rate_min < feeder_rate_max)) { - feeder_rate_min = FEEDRATE_RATEMIN; - feeder_rate_max = FEEDRATE_RATEMAX; - } - - if (feeder_rate_round < FEEDRATE_ROUNDHZ_MIN || - feeder_rate_round > FEEDRATE_ROUNDHZ_MAX) - feeder_rate_round = FEEDRATE_ROUNDHZ; - - if (bootverbose) - printf("%s: snd_unit=%d snd_maxautovchans=%d " - "latency=%d " - "feeder_rate_min=%d feeder_rate_max=%d " - "feeder_rate_round=%d\n", - __func__, snd_unit, snd_maxautovchans, - chn_latency, - feeder_rate_min, feeder_rate_max, - feeder_rate_round); - /* we've got our root feeder so don't veto pcm loading anymore */ pcm_veto_load = 0; diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index 330c99de14d1..da28a267c81a 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -829,6 +829,51 @@ sound_oss_card_info(oss_card_info *si) /************************************************************************/ +static void +sound_global_init(void) +{ + if (snd_verbose < 0 || snd_verbose > 4) + snd_verbose = 1; + + if (snd_unit < 0) + snd_unit = -1; + + if (snd_maxautovchans < 0 || + snd_maxautovchans > SND_MAXVCHANS) + snd_maxautovchans = 0; + + if (chn_latency < CHN_LATENCY_MIN || + chn_latency > CHN_LATENCY_MAX) + chn_latency = CHN_LATENCY_DEFAULT; + + if (chn_latency_profile < CHN_LATENCY_PROFILE_MIN || + chn_latency_profile > CHN_LATENCY_PROFILE_MAX) + chn_latency_profile = CHN_LATENCY_PROFILE_DEFAULT; + + if (feeder_rate_min < FEEDRATE_MIN || + feeder_rate_max < FEEDRATE_MIN || + feeder_rate_min > FEEDRATE_MAX || + feeder_rate_max > FEEDRATE_MAX || + !(feeder_rate_min < feeder_rate_max)) { + feeder_rate_min = FEEDRATE_RATEMIN; + feeder_rate_max = FEEDRATE_RATEMAX; + } + + if (feeder_rate_round < FEEDRATE_ROUNDHZ_MIN || + feeder_rate_round > FEEDRATE_ROUNDHZ_MAX) + feeder_rate_round = FEEDRATE_ROUNDHZ; + + if (bootverbose) + printf("%s: snd_unit=%d snd_maxautovchans=%d " + "latency=%d " + "feeder_rate_min=%d feeder_rate_max=%d " + "feeder_rate_round=%d\n", + __func__, snd_unit, snd_maxautovchans, + chn_latency, + feeder_rate_min, feeder_rate_max, + feeder_rate_round); +} + static int sound_modevent(module_t mod, int type, void *data) { @@ -839,6 +884,7 @@ sound_modevent(module_t mod, int type, void *data) case MOD_LOAD: pcm_devclass = devclass_create("pcm"); pcmsg_unrhdr = new_unrhdr(1, INT_MAX, NULL); + sound_global_init(); break; case MOD_UNLOAD: if (pcmsg_unrhdr != NULL) { From nobody Sun Oct 20 11:21:36 2024 X-Original-To: dev-commits-src-branches@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 4XWbcJ4V5sz5YvTY; Sun, 20 Oct 2024 11:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcJ3ZsQz4Wc5; Sun, 20 Oct 2024 11:21:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423296; 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=BZN6ijW9ZLddhDxkAplp2jQRoWR2H6glzmkV/T8sTio=; b=cd6WaU9H9YatXKEAUPqN5f455w8fKloN/8ROCY55ZdiSk/rIyHYgEyTBBN4cK61bRNX3Ta PBmB26YHfpn0XkXuyp/fDQd3h9/8aq8bhWu4kecGjgnpUQmuUnpL5sNssFabTzrhMUtfJZ y2bSSWcFyLr08yVneY14ZcTcXRMgRHKEFLpIWelS3Bmo0UuB8CHEFR16kG5X6kADdH19k+ F1q3Od3rKSNFUigUMXU/SOEnzlqUvfRqP4sNWPdQhqLi2Ah3CbaztECHcUqUfGQcZxpcVi qEECvK/KBM1T4aKEOKuR2HamoR2a8F6+4Br5wsCHQ3sRkEn1Cp0nTHzOxuYmdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423296; 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=BZN6ijW9ZLddhDxkAplp2jQRoWR2H6glzmkV/T8sTio=; b=wxQg9gGAeqrfkNf461cnJrp3I3QczvE9Bb1o0mPbak1rvqOTvOZY5ZkJiuyoCknwuzU2We PWBOcaRiAg3MISbD8Yx0NQ0UPou/SmUrECfRvjStVHW99chtagUoD9F+rc5fYmlYFkLl0l q2N/AOlS12spqGryc9Ely5e9eRIHH+kwZYgD53wLgyulCVZefuOmeqv1xAXS9b4NNTX2JC uVlBm3b8zFouWJrUfrzuvrN7lznBJDvYDp83VcTazbt0wX7Ng3YOykZTsyui1I6uM8yxS6 sqmuW3HV5P+LdY0n+bYzvq95qhLnEBroo2cNMgsp/B4vSVZSI1mK5SZX2YPr5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423296; a=rsa-sha256; cv=none; b=O5tQNn2NS3X7J6INO3biE83loXwvIJHOZnXGGNoakhyVnCghRQwK2vRO26dtvR4plx7Ffj BJ6G2zJk/2A5kJeCKPERG3zJ31n8v+5wELZSNevtxJCNkt54DByrZVcUzS8DjLBoC+mbtb Pt1P5JYMVz7HNBiGPm93tyrGFHvEsA5PSalG1EJgayUXy5oZgQUpXMc84hvI5XQDkirnRD I9uHxEV93xnTCDGnQPsvZQN9yVZOcnyhpCV/eFJ6F1qZ4xzIkJ+RN0A5ZicOYaCUROZUyo 1ZRqxZC49tX687eXsZjK8WanaCmQ/FPTYoid6hyO0jGtT/kM46T4YcvqsBi20g== 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 4XWbcJ3CBPz108P; Sun, 20 Oct 2024 11:21:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLaiH062776; Sun, 20 Oct 2024 11:21:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLaEK062773; Sun, 20 Oct 2024 11:21:36 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:36 GMT Message-Id: <202410201121.49KBLaEK062773@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 1f4d968a299e - stable/14 - sound: Move root feeder initialization to separate function List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1f4d968a299ea74f10276761932c2ece28531975 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=1f4d968a299ea74f10276761932c2ece28531975 commit 1f4d968a299ea74f10276761932c2ece28531975 Author: Christos Margiolis AuthorDate: 2024-10-18 08:39:58 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:05 +0000 sound: Move root feeder initialization to separate function feeder_register() is currently a SYSINIT in order to create the root feeder, which happens only when feedercnt is 0. Separating the root feeder registration makes the code more readable. No functional change intended. While here, fix some style errors. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, zlei, markj Differential Revision: https://reviews.freebsd.org/D46821 (cherry picked from commit 97570db05ced435f4fb1c6a67bdb16966ce5e4d9) --- sys/dev/sound/pcm/feeder.c | 69 +++++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c index 87437c6d00b5..c6f93ac54036 100644 --- a/sys/dev/sound/pcm/feeder.c +++ b/sys/dev/sound/pcm/feeder.c @@ -48,51 +48,55 @@ struct feedertab_entry { int idx; }; static SLIST_HEAD(, feedertab_entry) feedertab; +static int feedercnt = 0; /*****************************************************************************/ -void -feeder_register(void *p) +static void +feeder_register_root(void *p) { - static int feedercnt = 0; - struct feeder_class *fc = p; struct feedertab_entry *fte; - int i; - - if (feedercnt == 0) { - KASSERT(fc->desc == NULL, ("first feeder not root: %s", fc->name)); - - SLIST_INIT(&feedertab); - fte = malloc(sizeof(*fte), M_FEEDER, M_NOWAIT | M_ZERO); - if (fte == NULL) { - printf("can't allocate memory for root feeder: %s\n", - fc->name); - return; - } - fte->feederclass = fc; - fte->desc = NULL; - fte->idx = feedercnt; - SLIST_INSERT_HEAD(&feedertab, fte, link); - feedercnt++; - - /* we've got our root feeder so don't veto pcm loading anymore */ - pcm_veto_load = 0; + MPASS(feedercnt == 0); + KASSERT(fc->desc == NULL, ("first feeder not root: %s", fc->name)); + SLIST_INIT(&feedertab); + fte = malloc(sizeof(*fte), M_FEEDER, M_NOWAIT | M_ZERO); + if (fte == NULL) { + printf("can't allocate memory for root feeder: %s\n", fc->name); return; } + fte->feederclass = fc; + fte->desc = NULL; + fte->idx = feedercnt; + SLIST_INSERT_HEAD(&feedertab, fte, link); + feedercnt++; + + /* we've got our root feeder so don't veto pcm loading anymore */ + pcm_veto_load = 0; +} + +void +feeder_register(void *p) +{ + struct feeder_class *fc = p; + struct feedertab_entry *fte; + int i; KASSERT(fc->desc != NULL, ("feeder '%s' has no descriptor", fc->name)); - /* beyond this point failure is non-fatal but may result in some translations being unavailable */ + /* + * beyond this point failure is non-fatal but may result in some + * translations being unavailable + */ i = 0; while ((feedercnt < MAXFEEDERS) && (fc->desc[i].type > 0)) { - /* printf("adding feeder %s, %x -> %x\n", fc->name, fc->desc[i].in, fc->desc[i].out); */ fte = malloc(sizeof(*fte), M_FEEDER, M_NOWAIT | M_ZERO); if (fte == NULL) { - printf("can't allocate memory for feeder '%s', %x -> %x\n", fc->name, fc->desc[i].in, fc->desc[i].out); - + printf("can't allocate memory for feeder '%s', " + "%x -> %x\n", + fc->name, fc->desc[i].in, fc->desc[i].out); return; } fte->feederclass = fc; @@ -103,8 +107,10 @@ feeder_register(void *p) i++; } feedercnt++; - if (feedercnt >= MAXFEEDERS) - printf("MAXFEEDERS (%d >= %d) exceeded\n", feedercnt, MAXFEEDERS); + if (feedercnt >= MAXFEEDERS) { + printf("MAXFEEDERS (%d >= %d) exceeded\n", + feedercnt, MAXFEEDERS); + } } static void @@ -469,5 +475,6 @@ static struct feeder_class feeder_root_class = { .desc = NULL, .data = NULL, }; -SYSINIT(feeder_root, SI_SUB_DRIVERS, SI_ORDER_FIRST, feeder_register, &feeder_root_class); +SYSINIT(feeder_root, SI_SUB_DRIVERS, SI_ORDER_FIRST, feeder_register_root, + &feeder_root_class); SYSUNINIT(feeder_root, SI_SUB_DRIVERS, SI_ORDER_FIRST, feeder_unregisterall, NULL); From nobody Sun Oct 20 11:21:38 2024 X-Original-To: dev-commits-src-branches@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 4XWbcL6SZsz5YvWL; Sun, 20 Oct 2024 11:21:38 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcL5LPjz4WxY; Sun, 20 Oct 2024 11:21:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423298; 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=z1v+D+vo/LLfZr0JYEj0HxMQUcaeOTonCEyhUM5ijCY=; b=neu/tdyiHDyHVxKeDrVg4/O1Ql0hhRjQu8I8g0EZBNJEdBy/A/EOCiNC3IhC/dlcl5d2OU KL3xhnsuHY1t98YpcVBguD2g9FKcQDkPNeimZcW3Oi3hxecQKDFC5iEKyX+l+wV+azDsvH OE+yUIK3PaJabAf74xmqZcq7zbdPtfNUXpK2A983AL3mPq1wu9IQ/My+nBVUzfyzR107+H eMFQRuurmKEbMfj74EtTT+nVmglWtHRbW+zVr+0DdCBfO7AvruTqZu8XL+s9ZKQFmEJfyf aK8RVKJZecUbzetbSMvd/vZlPIwyCLMo+c0dp0hnB/QFNaO4ztw11kdKT1mgWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423298; 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=z1v+D+vo/LLfZr0JYEj0HxMQUcaeOTonCEyhUM5ijCY=; b=qr3QAXHt1wmEZai9ZAu/I9dQX3ebiyKjO7VoGEYOJoXA9l99IBoWTpcdLY+3y8erLYNAKL dm/xRjaixLDUYnkFW2OXb24lNvxi2V4dRWDtj8MkC4YjV6Ra43pmpNEYaYRNM6ditlZSOJ rZkVMyqrs091oI9fWJ3lBRQySL2FF7ZiiobOWVmGGlUXHLigUn8Eguo7dQ1+gqnOvuNWqN 6YFpQdw9QG9Zt3Xlb+hOnfGeaZuPEROMqcuQHjR68BvBKLO+JycCOcxjM2gN6udARYpX9I zGIebScY2LhrOJkpC9aOh/fK2Ni5GnMoDl8BPnGQbPlTItsX3TxsySbS3m8sRg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423298; a=rsa-sha256; cv=none; b=B3NeIYfOvKk8tCRDUAH7NPEdYJJI/74mI8Bz2Cbf6YYE0ZQWPH5BdcIelpRZwDaX7uZ/XZ ANdC2aaPIpnmwmPqVjtKwz9KoA4eyvPP/wWLZpR/3nBJs9Z25D8QRVPNOUCWHmtcJrHYSf mh5NuUlCYlkDKPRsvhco9TAkFpie2JHX5RHTGc/I+vYrZ3aii3WMCnqBzbEcyndSfaMHvl SbEAIcL+mWafDwKwnGTXZmS2HEOOXrC1vHyNUiVLYBYrZBIIzTTONixmuCEWDZel4/WXD0 n3ecBV+S7p9NUl0d+/YOcIiSMLrp6tna4zRqDu67SFeKoGaoED+uU2AA8+47JQ== 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 4XWbcL4dJbz108Q; Sun, 20 Oct 2024 11:21:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLcYw062875; Sun, 20 Oct 2024 11:21:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLcwi062872; Sun, 20 Oct 2024 11:21:38 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:38 GMT Message-Id: <202410201121.49KBLcwi062872@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: ebdf08844534 - stable/14 - sound: Retire SND_MAXHWCHAN List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ebdf0884453453a50b5c1c446e930d64407be27f Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=ebdf0884453453a50b5c1c446e930d64407be27f commit ebdf0884453453a50b5c1c446e930d64407be27f Author: Christos Margiolis AuthorDate: 2024-10-18 08:40:16 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:05 +0000 sound: Retire SND_MAXHWCHAN No longer used. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D46522 (cherry picked from commit 248aced26eee6f569717618d097bc2205a93c800) --- sys/dev/sound/pcm/sound.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h index 2de6ab29bd66..51c9c91f6f20 100644 --- a/sys/dev/sound/pcm/sound.h +++ b/sys/dev/sound/pcm/sound.h @@ -99,11 +99,7 @@ struct snd_mixer; #define SOUND_PREFVER SOUND_MODVER #define SOUND_MAXVER SOUND_MODVER -/* - * By design, limit possible channels for each direction. - */ -#define SND_MAXHWCHAN 256 -#define SND_MAXVCHANS SND_MAXHWCHAN +#define SND_MAXVCHANS 256 #define SD_F_SIMPLEX 0x00000001 #define SD_F_AUTOVCHAN 0x00000002 From nobody Sun Oct 20 11:21:37 2024 X-Original-To: dev-commits-src-branches@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 4XWbcL04gFz5YvJl; Sun, 20 Oct 2024 11:21:38 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcK49Jkz4X2W; Sun, 20 Oct 2024 11:21:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423297; 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=7AYKu8DrrfiwEVyVEvyzske1jdEgdBmTC+1VTko1S2A=; b=xf0JCZq3xJCApOEGF7IEu8L3xYp1crAgUM8rNUNKVxOYRjdDd+QSI8VTb7ZS2skD1PvGe6 gpIHK92EUTiOyBgHR+OtbecDBTooe6pOtbJ1n9tPlKAx5YV/ZL9h/wHeHK2JPCzKW4eYoY 4iLdtkqafISXMDr/owjajAIaP4e/nfWXSwkwoS/hBUJ4IpREOFl49nYC+Jbpyed53d8Ccl MwgJ+92dWA+BbtrC/vtCclmRlbW4ZrsYyiVPdP9qxX5cnimGAwFgSw75xwgRfxEZXqdJKj fdNElko35c0BErbdVODUcxlmlEnm3aFGUaA7sSkk/cF0HiMVI9LYeS3oNH4TZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423297; 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=7AYKu8DrrfiwEVyVEvyzske1jdEgdBmTC+1VTko1S2A=; b=C2ggFyQIuXcA2EcwI3k0mcdZK/sxfbUxfykkEkqrVflr634zNIDec3EVuU82qQhE/8cOAA XFDT7XP/1l2CUBy7pp1U+USaFyKeboDVXDNVrMmr7YL5hSqYx8hUFw0+5rN73EVMz+XCpJ hF94Kaepq+pHnKyePO84EgrHlQIj2SVwBRPULlPb0a50kRHXa6YsaHbypmX2YnrERrlvaR p3OpEzMp89WrhaP2ZcvzuyWWCuDLrTbFmy7N9a+na3mmFLJRJeJk/G1cw8N+E98JrOVc8U JyhfBvooxy3ETo6Td2qLwjPlvVNz/Mvf2rjsFA7tjNo+8YzySiFePssWckJLdQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423297; a=rsa-sha256; cv=none; b=vtfLcy3yWlGCTBlL4/GsRXRGfktsoE3z9WI2U1DIqhfviVh1FTg3BpLzqRw/3E8TRFwpjF N8coKUHp7EJBf4p8iYaH7XOFjvI+nLzP1mh8rUUMZaPF948y7PBY1cYXl3hj4tqUMAApbs /WSpOV01fr8VqlBygc0q9uKNHdC/mzpeJss5WtxGNW2uf7qKfyIc3qWwiCCYfQh9boCSne e5b9OkW0N4g2JoHZAyLAHbu1HMZ2OasdWGLG0bdqeaZSjjHmY7E69hL8UjrYJVWLNtbaud KLFydETi9D1Rp+dJoTifkm63Qkf95ajCSqji+un6k1W3prSr4c1M5+X6z/zr9A== 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 4XWbcK3lkqz10Lm; Sun, 20 Oct 2024 11:21:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLba8062833; Sun, 20 Oct 2024 11:21:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLbIA062830; Sun, 20 Oct 2024 11:21:37 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:37 GMT Message-Id: <202410201121.49KBLbIA062830@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 8065f1af82d1 - stable/14 - snd_dummy: Drain callout during detach List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8065f1af82d1443c83168a3e8dd82afc5f658d24 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=8065f1af82d1443c83168a3e8dd82afc5f658d24 commit 8065f1af82d1443c83168a3e8dd82afc5f658d24 Author: Christos Margiolis AuthorDate: 2024-10-18 08:40:08 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:05 +0000 snd_dummy: Drain callout during detach If we do not enter dummy_chan_trigger() before detaching, we'll get a use-after-free since the callout(9) callback might be called after having been detached. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, markj, emaste Differential Revision: https://reviews.freebsd.org/D46715 (cherry picked from commit e42c8267821952407d4f4064026058aeaaa741ac) --- sys/dev/sound/dummy.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/sound/dummy.c b/sys/dev/sound/dummy.c index f8193a73fcc8..c1cd4dff15f9 100644 --- a/sys/dev/sound/dummy.c +++ b/sys/dev/sound/dummy.c @@ -327,6 +327,7 @@ dummy_detach(device_t dev) struct dummy_softc *sc = device_get_softc(dev); int err; + callout_drain(&sc->callout); err = pcm_unregister(dev); snd_mtxfree(sc->lock); From nobody Sun Oct 20 11:21:39 2024 X-Original-To: dev-commits-src-branches@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 4XWbcN02wqz5YvTm; Sun, 20 Oct 2024 11:21:40 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcM6223z4X4q; Sun, 20 Oct 2024 11:21:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423299; 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=aZQe67AzrhKb0qdZDGoYFRupNxQjV1HGZpMPxs5v/mA=; b=D9PWO1scE3xhtOW76v2Y8oGom/SMr4Hat33ftKuVFVA5+DasCimtqCjhubXV01+9Ct870u Rr8B7atA7ZDkGxKF232cB9XmAQgA2vcig0s3kMQFlIaxQ+ruQArXyQzpQgXtCIVvulQh23 FzTKRXmcuieWso4CDVZg/wmCW8Bfc5nIOHX/oPM8vbNsyJSGIPUtYTvwFSL1BXn2rdVj8K DKyTsvsg+XMKMgwoV5q+Vixlt7rHg2GW64xedLOpksjKIpTYrEf0lxPXU2fFu0s/1akWv1 lZDIuvJII3cb9PgTdbDwgf3DxTwYopmkFl2E9SEc1kT5tAAOqZnIJlaoe7COyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423299; 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=aZQe67AzrhKb0qdZDGoYFRupNxQjV1HGZpMPxs5v/mA=; b=aRsmGKdzYpNTExSU4Y/f37uXT+JVgdI1iLCN6oJRS7dQdrMMiXrpflhHSnEl2hfzcca6VD WyuxYTx9+yD4ZhLzFNv4ACMyXfWjMwoRmpb24RMeoVeAmXUbUMAcSkKoDFGL9JTkEvzxNM nnYV3YyNi9BVAZZYhKp904a3cgo2bqbb7RB3gVNGgr+CSumFgWPLCZSlwVEjydcqwBm5vT gc4XZogGLWvXvbQwXMf7upUNUIk6wgAVXeGbn6Ltz0563ZjaB9saQYUB9+MaO8bnvvUnQD Sf+ekshymTOu+wmwn+jD9GkkIfjCrr9Nad6c7CFbYdLTMbYp3i1vthOYWVf/eg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423299; a=rsa-sha256; cv=none; b=svpc0z9ZkCNgmLUtoJQBDb4as1HmDwCboqwLCNe5zxj0KPRlZTNYVqt+otw/cq5V3ThcxO LVeZFErn8/F0y0bRAJB7Djzld7DUiygCIeC5FIn09Cp4fzG+jQsQJgD6nZk/E5GnruEwN7 F+ZgFLQcabWPOktXFMxNv72RQHn8U8kNGWS0T0myQKI8vcfUpuNNx/E88spRh8zUWFjhyd Yo/OPoHWTZyuuERYMrgErr3hbGFKUE9XxZVH1wjJ1ZtXau8DJ0wXXkk0MbG4W4XOhxGx0k fqx521mEDOfIgT9ZD6u8JuU0aJfvfLI6L0v9v/NxNBi1EfMmjimpeg54wx2jNg== 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 4XWbcM5fSWz108R; Sun, 20 Oct 2024 11:21:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLd6u062917; Sun, 20 Oct 2024 11:21:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLdtO062914; Sun, 20 Oct 2024 11:21:39 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:39 GMT Message-Id: <202410201121.49KBLdtO062914@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: bf058bde2bca - stable/14 - sound: Simplify vchan_create() error paths List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bf058bde2bca4d7be03713cadc53be5d5377e983 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=bf058bde2bca4d7be03713cadc53be5d5377e983 commit bf058bde2bca4d7be03713cadc53be5d5377e983 Author: Christos Margiolis AuthorDate: 2024-10-18 08:40:23 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:05 +0000 sound: Simplify vchan_create() error paths Instead of checking the value of "ret" multiple times, just set a goto label and jump there immediately in case of an error. While here, remove a redundant assignment to "d". Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, markj, emaste Differential Revision: https://reviews.freebsd.org/D46833 (cherry picked from commit 3cab66d12d439357b948093756ca1af87967c8cc) --- sys/dev/sound/pcm/vchan.c | 76 +++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index c1ad9b9ec2ba..9046c144b41b 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -674,8 +674,11 @@ vchan_create(struct pcm_channel *parent) struct pcm_channel *ch; struct pcmchan_caps *parent_caps; uint32_t vchanfmt, vchanspd; - int ret, direction, r, save; + int ret, direction, r; + bool save; + ret = 0; + save = false; d = parent->parentsnddev; PCM_BUSYASSERT(d); @@ -688,8 +691,6 @@ vchan_create(struct pcm_channel *parent) parent->direction == PCMDIR_REC)) return (EINVAL); - d = parent->parentsnddev; - CHN_UNLOCK(parent); PCM_LOCK(d); @@ -728,14 +729,13 @@ vchan_create(struct pcm_channel *parent) parent->flags |= CHN_F_HAS_VCHAN; - ret = 0; parent_caps = chn_getcaps(parent); - if (parent_caps == NULL) + if (parent_caps == NULL) { ret = EINVAL; + goto fail; + } - save = 0; - - if (ret == 0 && vchanfmt == 0) { + if (vchanfmt == 0) { const char *vfmt; CHN_UNLOCK(parent); @@ -752,10 +752,10 @@ vchan_create(struct pcm_channel *parent) } if (vchanfmt == 0) vchanfmt = VCHAN_DEFAULT_FORMAT; - save = 1; + save = true; } - if (ret == 0 && vchanspd == 0) { + if (vchanspd == 0) { /* * This is very sad. Few soundcards advertised as being * able to do (insanely) higher/lower speed, but in @@ -773,26 +773,25 @@ vchan_create(struct pcm_channel *parent) RANGE(vchanspd, parent_caps->minspeed, parent_caps->maxspeed); } - save = 1; + save = true; } - if (ret == 0) { - /* - * Limit the speed between feeder_rate_min <-> feeder_rate_max. - */ - RANGE(vchanspd, feeder_rate_min, feeder_rate_max); - - if (feeder_rate_round) { - RANGE(vchanspd, parent_caps->minspeed, - parent_caps->maxspeed); - vchanspd = CHANNEL_SETSPEED(parent->methods, - parent->devinfo, vchanspd); - } + /* + * Limit the speed between feeder_rate_min <-> feeder_rate_max. + */ + RANGE(vchanspd, feeder_rate_min, feeder_rate_max); - ret = chn_reset(parent, vchanfmt, vchanspd); + if (feeder_rate_round) { + RANGE(vchanspd, parent_caps->minspeed, + parent_caps->maxspeed); + vchanspd = CHANNEL_SETSPEED(parent->methods, + parent->devinfo, vchanspd); } - if (ret == 0 && save) { + if ((ret = chn_reset(parent, vchanfmt, vchanspd)) != 0) + goto fail; + + if (save) { /* * Save new value. */ @@ -809,23 +808,24 @@ vchan_create(struct pcm_channel *parent) * If the parent channel supports digital format, * enable passthrough mode. */ - if (ret == 0 && snd_fmtvalid(AFMT_PASSTHROUGH, parent_caps->fmtlist)) { + if (snd_fmtvalid(AFMT_PASSTHROUGH, parent_caps->fmtlist)) { parent->flags &= ~CHN_F_VCHAN_DYNAMIC; parent->flags |= CHN_F_VCHAN_PASSTHROUGH; } - if (ret != 0) { - CHN_REMOVE(parent, ch, children); - parent->flags &= ~CHN_F_HAS_VCHAN; - CHN_UNLOCK(parent); - PCM_LOCK(d); - if (pcm_chn_remove(d, ch) == 0) { - PCM_UNLOCK(d); - chn_kill(ch); - } else - PCM_UNLOCK(d); - CHN_LOCK(parent); - } + return (ret); + +fail: + CHN_REMOVE(parent, ch, children); + parent->flags &= ~CHN_F_HAS_VCHAN; + CHN_UNLOCK(parent); + PCM_LOCK(d); + if (pcm_chn_remove(d, ch) == 0) { + PCM_UNLOCK(d); + chn_kill(ch); + } else + PCM_UNLOCK(d); + CHN_LOCK(parent); return (ret); } From nobody Sun Oct 20 11:21:40 2024 X-Original-To: dev-commits-src-branches@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 4XWbcP3BK6z5YvYd; Sun, 20 Oct 2024 11:21:41 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcN72y7z4Wtl; Sun, 20 Oct 2024 11:21:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423301; 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=yMVW7otu8ZqbTedaOtiU/xrwughhjkUbTuQ8AYsGumk=; b=Ji2yMaF5UqLKEpPsRzPL5EtN/MPImt1GhFYjpRoxHpwzomwUMtNVwNSfbo01Y8Ujpjrjkw 0rl2oGJqqb4rnikfJfOP4iupVcZaVii2Aj3CysJRtEqHeL/pO/VpwB29lg8z7g/ZNgp4vd UxBcws01d9WVRlgOpyQ/HnpvygT1J3NjpoU4O4MU7GZ2EUXmUbaakYBhZDrmCQQPGIg19S eIaL3x40lkv0af4W99BS1QzFFv+VpUrBA4AI6RcyvfnKHyOAT1INvcmn9Ym5XtKVOcSDoU cz9TIGkMhyd2QA1t5NRtLJbQLdpJqCvcKYIRTsOo7aTAIgZv0QHjhlug4aKlTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423301; 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=yMVW7otu8ZqbTedaOtiU/xrwughhjkUbTuQ8AYsGumk=; b=uof7WaZuhplRRkK8BwUaTwh5EEhpcVd4yNJGBuz6+WH+oPNGpQ+BM/HIZFzRYbvbf6NwWk ZAEQLSHiUKvKcumM5ab15aYObTEo9GAQ2uVUbMjCDTBL5biIuav88BC0YREAfhXX6DnB+o SceLEC4EpWKturgWQagpQVUvtabtYdEGZBwmv0io3OjqDFYqG/iWuJEI39BjtUSCyQpbvv F7MQql0y/lhjMbih/S76qubBlFQRJDyhz+LddIivSYA6toLYuXzp/P1kjF8gzibQ/jCO3k g1CVkT4LkeZC/4dtGN8pIYxIi7/UcTvDuqLepORsUERSusrCCziK9RBbO2/1rA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423301; a=rsa-sha256; cv=none; b=O73wkqAC3C3S7iCOelSNbSBgUy3T7O/VV5CNC37gbX/nMGdKlo5BEhVIYxjMGBaD9FdKC3 ehr4yVjD7lrIAfEH7FoPcVzBR7jHugPEqTdye6NZNy42JnEvAPre6QY9cz8yPonXH3JE+X qgVt3JOVG9SHZt5q4jnNVWGej6HXqn/9JrMmJiMrk81hI8jGGAdp167GiDf27iv4QKPF71 gXAqj9SKiBz+SVqdytncqRB2b0Fh9OVHg0La0ln2Co9I3lueVHr63+qCmZ9AeETHjnQzkC Cu+E4MjJucCUcRj3CpA64cccQtRY8VGVp5UecboQ08hiR0WdeDXYwtn9GzOpDQ== 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 4XWbcN6gFBz10F1; Sun, 20 Oct 2024 11:21:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLeoN062976; Sun, 20 Oct 2024 11:21:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLe7b062973; Sun, 20 Oct 2024 11:21:40 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:40 GMT Message-Id: <202410201121.49KBLe7b062973@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 3b5b485d7436 - stable/14 - sound: Remove useless newspd check in sysctl_dev_pcm_vchanrate() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3b5b485d7436868da687b7e4bd6797c0c44e3528 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=3b5b485d7436868da687b7e4bd6797c0c44e3528 commit 3b5b485d7436868da687b7e4bd6797c0c44e3528 Author: Christos Margiolis AuthorDate: 2024-10-18 08:40:33 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:05 +0000 sound: Remove useless newspd check in sysctl_dev_pcm_vchanrate() feeder_rate_min functions as the lower boundary. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, markj, emaste Differential Revision: https://reviews.freebsd.org/D46834 (cherry picked from commit f3092614bcae949332a8f21f7b78ba68b3ee5899) --- sys/dev/sound/pcm/vchan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index 9046c144b41b..8580eb679f35 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -508,8 +508,7 @@ sysctl_dev_pcm_vchanrate(SYSCTL_HANDLER_ARGS) return (ret); } - if (newspd < 1 || newspd < feeder_rate_min || - newspd > feeder_rate_max) { + if (newspd < feeder_rate_min || newspd > feeder_rate_max) { PCM_RELEASE_QUICK(d); return (EINVAL); } From nobody Sun Oct 20 11:21:41 2024 X-Original-To: dev-commits-src-branches@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 4XWbcQ2wGkz5YvTw; Sun, 20 Oct 2024 11:21:42 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcQ11cQz4X9d; Sun, 20 Oct 2024 11:21:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423302; 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=4H5mrbY4Cen9FQJsVwzRT8vlq0nzKNBjneqQPraJAkg=; b=Kxfea9j+XXlhy5vKxjJX+MjcIEBpI6GvnWSsJSCUu0ayxUROSiIS29Mn1dyeXY7gU/DI9O 0JrNwisU/U3HNfXhx4XwaqtIU7AtKUwDA14SAHHly9WCAiEo6kMP/6zg5KIx99oo0aePWS SfHclejh1fAp8f+Alo6l3B9ljs/vD2WI6IlDbJMjU23NtY/DNdNCCst9y4bWB2DO3+UefI 7reJI8ko0TcI0szukIQtvJTqOfO/APVoZgRWrTr1Ipz32TSsWDihSyDei86CzZST+9k4FH eqctMbIZ/B+qoCbIIHwtPuD/4l9BvhA0agfVxTJmHocsaHmPwEgSHKjD7NQFew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423302; 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=4H5mrbY4Cen9FQJsVwzRT8vlq0nzKNBjneqQPraJAkg=; b=WZvyleDpGDQ2QGBhF8HZiENmvOi3Nv3boBIFWUwMSICgV+PwPa+Q13UQmRlWJ0OEiZCsHa kCU7z6qBbBuRaTFWALYzxGDgyaOzQvTkLeR7yM0+VBxnOA41IaIbvsYCW5mFk4gH4XMBvB apNmiGLUp2j9870IXHKFRALlWAewuM8N3Plih/HeJ6ekKWoChAzolgZfZePCRN0VPrJU7r m4ClbRptoWV5qt6ikR/CvSVXUDtqdfRb5BG7TWW3ge61blaF34PoHvYGyWXNSO7qCBGyaN OuMMqquOADOjG1V3eKYQpJcKV6KI0SYyR/JR8Z1limfyhgL7KgW0Id8UkGijsg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423302; a=rsa-sha256; cv=none; b=ZwzQlO8jUkGJ8vLRMzWNCzHjRurnyRU0gzNkc2wD5n0dkCiQUsImlrgR93DkvNvdBA/3NO fpjiV+GH4FOu033+6J+ZkPRJri5M5JsT8VXxdi4JOItslXLqWvLeoEzJxCxuYqp90eg/Dr ozRl6/+Xtn0F6AHuKhN0vKPUTsAv/SvOMCEePGbIRZEvKClDMq4iCtgW3y/JVgoWgFUU2b wvOeIyu6//IEzlC/xKVtmCxLlsH8Oa34bI9safHL7YBf9yDTDywBAvHJPzem9VsshsmwFK 1CbpTCaTaCsaPGKwFphgql5ErbXNxNoYXe9zFnU/nfKybAZH0zF1M0dPmOHv0g== 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 4XWbcQ0YRxz10F3; Sun, 20 Oct 2024 11:21:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLfvF063030; Sun, 20 Oct 2024 11:21:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLf2r063027; Sun, 20 Oct 2024 11:21:41 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:41 GMT Message-Id: <202410201121.49KBLf2r063027@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 86e10d11ca3c - stable/14 - sound: Simplify channel creation and deletion process List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 86e10d11ca3cbb66834da94426a17f6cc0177dac Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=86e10d11ca3cbb66834da94426a17f6cc0177dac commit 86e10d11ca3cbb66834da94426a17f6cc0177dac Author: Christos Margiolis AuthorDate: 2024-10-18 08:40:41 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:05 +0000 sound: Simplify channel creation and deletion process Currently we create and destroy channels with the following consistent pattern: - chn_init() -> pcm_chn_add() - pcm_chn_remove() -> chn_kill() Instead of calling two separate functions, merge pcm_chn_add() with chn_init(), and pcm_chn_remove() with chn_kill(). Another benefit of this change is that we avoid the confusion caused by having pcm_chn_add(), as well as pcm_addchan(). Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, markj Differential Revision: https://reviews.freebsd.org/D46835 (cherry picked from commit 9263f854e9a63cc326a3d5f6331b933c4a010abf) --- sys/dev/sound/pcm/channel.c | 40 +++++++++++++++++++++++ sys/dev/sound/pcm/sound.c | 78 +-------------------------------------------- sys/dev/sound/pcm/sound.h | 3 -- sys/dev/sound/pcm/vchan.c | 25 +++------------ 4 files changed, 45 insertions(+), 101 deletions(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index d1c9bc616dcf..5b0bb105c505 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1311,6 +1311,24 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, } PCM_LOCK(d); + CHN_INSERT_SORT_ASCEND(d, c, channels.pcm); + + switch (c->type) { + case SND_DEV_DSPHW_PLAY: + d->playcount++; + break; + case SND_DEV_DSPHW_VPLAY: + d->pvchancount++; + break; + case SND_DEV_DSPHW_REC: + d->reccount++; + break; + case SND_DEV_DSPHW_VREC: + d->rvchancount++; + break; + default: + __assert_unreachable(); + } return (c); @@ -1337,11 +1355,33 @@ fail: void chn_kill(struct pcm_channel *c) { + struct snddev_info *d = c->parentsnddev; struct snd_dbuf *b = c->bufhard; struct snd_dbuf *bs = c->bufsoft; PCM_BUSYASSERT(c->parentsnddev); + PCM_LOCK(d); + CHN_REMOVE(d, c, channels.pcm); + + switch (c->type) { + case SND_DEV_DSPHW_PLAY: + d->playcount--; + break; + case SND_DEV_DSPHW_VPLAY: + d->pvchancount--; + break; + case SND_DEV_DSPHW_REC: + d->reccount--; + break; + case SND_DEV_DSPHW_VREC: + d->rvchancount--; + break; + default: + __assert_unreachable(); + } + PCM_UNLOCK(d); + if (CHN_STARTED(c)) { CHN_LOCK(c); chn_trigger(c, PCMTRIG_ABORT); diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index da28a267c81a..e25cb359f793 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -188,74 +188,6 @@ SYSCTL_PROC(_hw_snd, OID_AUTO, default_unit, sizeof(int), sysctl_hw_snd_default_unit, "I", "default sound device"); -void -pcm_chn_add(struct snddev_info *d, struct pcm_channel *ch) -{ - PCM_BUSYASSERT(d); - PCM_LOCKASSERT(d); - KASSERT(ch != NULL && (ch->direction == PCMDIR_PLAY || - ch->direction == PCMDIR_REC), ("Invalid pcm channel")); - - CHN_INSERT_SORT_ASCEND(d, ch, channels.pcm); - - switch (ch->type) { - case SND_DEV_DSPHW_PLAY: - d->playcount++; - break; - case SND_DEV_DSPHW_VPLAY: - d->pvchancount++; - break; - case SND_DEV_DSPHW_REC: - d->reccount++; - break; - case SND_DEV_DSPHW_VREC: - d->rvchancount++; - break; - default: - __assert_unreachable(); - } -} - -int -pcm_chn_remove(struct snddev_info *d, struct pcm_channel *ch) -{ - struct pcm_channel *tmp; - - PCM_BUSYASSERT(d); - PCM_LOCKASSERT(d); - - tmp = NULL; - - CHN_FOREACH(tmp, d, channels.pcm) { - if (tmp == ch) - break; - } - - if (tmp != ch) - return (EINVAL); - - CHN_REMOVE(d, ch, channels.pcm); - - switch (ch->type) { - case SND_DEV_DSPHW_PLAY: - d->playcount--; - break; - case SND_DEV_DSPHW_VPLAY: - d->pvchancount--; - break; - case SND_DEV_DSPHW_REC: - d->reccount--; - break; - case SND_DEV_DSPHW_VREC: - d->rvchancount--; - break; - default: - __assert_unreachable(); - } - - return (0); -} - int pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo) { @@ -272,8 +204,6 @@ pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo) PCM_UNLOCK(d); return (ENODEV); } - - pcm_chn_add(d, ch); PCM_UNLOCK(d); return (0); @@ -283,7 +213,6 @@ static void pcm_killchans(struct snddev_info *d) { struct pcm_channel *ch; - int error; bool found; PCM_BUSYASSERT(d); @@ -316,12 +245,7 @@ pcm_killchans(struct snddev_info *d) pause_sbt("pcmkillchans", SBT_1MS * 5, 0, 0); continue; } - - PCM_LOCK(d); - error = pcm_chn_remove(d, ch); - PCM_UNLOCK(d); - if (error == 0) - chn_kill(ch); + chn_kill(ch); } while (!CHN_EMPTY(d, channels.pcm)); } diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h index 51c9c91f6f20..f96638081cb9 100644 --- a/sys/dev/sound/pcm/sound.h +++ b/sys/dev/sound/pcm/sound.h @@ -248,9 +248,6 @@ SYSCTL_DECL(_hw_snd); int pcm_chnalloc(struct snddev_info *d, struct pcm_channel **ch, int direction, pid_t pid, char *comm); -void pcm_chn_add(struct snddev_info *d, struct pcm_channel *ch); -int pcm_chn_remove(struct snddev_info *d, struct pcm_channel *ch); - int pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo); unsigned int pcm_getbuffersize(device_t dev, unsigned int minbufsz, unsigned int deflt, unsigned int maxbufsz); int pcm_register(device_t dev, void *devinfo, int numplay, int numrec); diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index 8580eb679f35..4da6f83dc0a2 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -710,9 +710,6 @@ vchan_create(struct pcm_channel *parent) CHN_LOCK(parent); return (ENODEV); } - - /* add us to our grandparent's channel list */ - pcm_chn_add(d, ch); PCM_UNLOCK(d); CHN_LOCK(parent); @@ -818,12 +815,7 @@ fail: CHN_REMOVE(parent, ch, children); parent->flags &= ~CHN_F_HAS_VCHAN; CHN_UNLOCK(parent); - PCM_LOCK(d); - if (pcm_chn_remove(d, ch) == 0) { - PCM_UNLOCK(d); - chn_kill(ch); - } else - PCM_UNLOCK(d); + chn_kill(ch); CHN_LOCK(parent); return (ret); @@ -833,8 +825,6 @@ int vchan_destroy(struct pcm_channel *c) { struct pcm_channel *parent; - struct snddev_info *d; - int ret; KASSERT(c != NULL && c->parentchannel != NULL && c->parentsnddev != NULL, ("%s(): invalid channel=%p", @@ -842,10 +832,9 @@ vchan_destroy(struct pcm_channel *c) CHN_LOCKASSERT(c); - d = c->parentsnddev; parent = c->parentchannel; - PCM_BUSYASSERT(d); + PCM_BUSYASSERT(c->parentsnddev); CHN_LOCKASSERT(parent); CHN_UNLOCK(c); @@ -866,18 +855,12 @@ vchan_destroy(struct pcm_channel *c) CHN_UNLOCK(parent); - /* remove us from our grandparent's channel list */ - PCM_LOCK(d); - ret = pcm_chn_remove(d, c); - PCM_UNLOCK(d); - /* destroy ourselves */ - if (ret == 0) - chn_kill(c); + chn_kill(c); CHN_LOCK(parent); - return (ret); + return (0); } int From nobody Sun Oct 20 11:21:43 2024 X-Original-To: dev-commits-src-branches@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 4XWbcR3P0Qz5YvPK; Sun, 20 Oct 2024 11:21:43 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcR1gBlz4XGl; Sun, 20 Oct 2024 11:21:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423303; 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=fTVdMLKXCSUIaUl/M8xBZL0WcODkF8+CJ5a6NnAQRlM=; b=Va+mFEBJZQkZipnrB8/0pM37crrfAhqrojwJg8hBMFZ36N4ITT13VGLMldX7Q4kwy9qPjZ 9JcRpvqFTLw4b19rsQ9sSaI+8EwwdlDmFrDqi8xlkRS1DnMU6CUQgaj5XLgEYIUgckCAiG +04kLQqPyshsrkPItETjfAqp8HXwME4EGsRNeeE8o5PEATpAdYTjX9SUdYfRkj83GcoNpG h5ABNMIYK5TGRBra8RQZSGTY+Wxmu3uAxfn7u36FFblzoLGCaRpTLIitml4k6CI9JNAWTz 7FMHWo683zQR4FPkSFcAIGFWi5KeyqZLDF9abWtgrQl4L9PbRRkuU9bnzv6Z4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423303; 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=fTVdMLKXCSUIaUl/M8xBZL0WcODkF8+CJ5a6NnAQRlM=; b=b0NPGQZs7qJw4ffikYAuzKc0Dp9qiYMEi+SG8+6HJGMZhj8m6TvbxFnrTaCo1VmusDIOK5 YkFkte2DROGQrfB5hQwKKY01DP5ukdH+IO1bDy2z/sWAbGKkOYrBM7rMx12Iao/B25xsgE sqStQ8/eHcfy1okwWTmtYqZdTlt0z5Rb4Hg+KGGMUNWoM8cpxRv61WEW5kUHx8dJdne1hF F+kp8dI2FOfuXPJLr1O4s+3xGhwwhAjX0UlLe/PowhjuKGPm6h+23cBCWWUfqIjwLzvqHq IYmUFeq7Y8hpTQ7OPaCpGq6VmLvd26ZkqHurxfXkR1JhbSewfghwfRaHhCBR9A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423303; a=rsa-sha256; cv=none; b=tggRrF0zU81pQJrey4oBI9NeA5Ow5GHNpbF9xYiIXyN8qrv6Xdc3TJR7nWCpWwC4BYoI3S iwpprrMdUHNpBfp1FydxoavpuuSh0dXhx09ZJ31BIo+Haa16rWCEL7IncHVzjY0zR3XY0X aNVMDq6VIiHSUO1amCwPbNwVwN0hHz1sX2ly//JxmKBjunk4qkuCHWDUy4APX9H6CZ7EZ9 B7GQjqYgXcZUKumnTNt/1NGNY/M+PDpYzZQrNgw4OEYLETz05PSuJi80WIK/ZfpD7uQDVC gFjG5nwXaKqstjAg1+bvY2HUsV1hTSwQICXNKueqNppfrkSC9MgH0ZqqsmV+Ew== 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 4XWbcR18RJzy9n; Sun, 20 Oct 2024 11:21:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLh7S063071; Sun, 20 Oct 2024 11:21:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLhA2063068; Sun, 20 Oct 2024 11:21:43 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:43 GMT Message-Id: <202410201121.49KBLhA2063068@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: f0eee0fbde8e - stable/14 - sound: Shorten channel names List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f0eee0fbde8e40e3b59e257b529697c1d07c55e7 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=f0eee0fbde8e40e3b59e257b529697c1d07c55e7 commit f0eee0fbde8e40e3b59e257b529697c1d07c55e7 Author: Christos Margiolis AuthorDate: 2024-10-18 08:40:50 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:05 +0000 sound: Shorten channel names The current channel naming convention is: pcmX:[virtual_]play|record:dspX.[v]p|rY - pcmX and dspX share the same unit numbers - "[v]p|r" gives us the same information as "[virtual_]play|record" Remove the redundant information, so that the channel names become more readable: dspX.[virtual_]play|record.Y Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D46836 (cherry picked from commit c30f531ddb629ab51359fb540c8ef6068bab288b) --- sys/dev/sound/pcm/channel.c | 10 ++-------- sys/dev/sound/pcm/dsp.c | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index 5b0bb105c505..1e68be161322 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1182,7 +1182,7 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, struct pcm_channel *c; struct feeder_class *fc; struct snd_dbuf *b, *bs; - char *dirs, buf[CHN_NAMELEN]; + char buf[CHN_NAMELEN]; int i, direction, type; PCM_BUSYASSERT(d); @@ -1190,22 +1190,18 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, switch (dir) { case PCMDIR_PLAY: - dirs = "play"; direction = PCMDIR_PLAY; type = SND_DEV_DSPHW_PLAY; break; case PCMDIR_PLAY_VIRTUAL: - dirs = "virtual_play"; direction = PCMDIR_PLAY; type = SND_DEV_DSPHW_VPLAY; break; case PCMDIR_REC: - dirs = "record"; direction = PCMDIR_REC; type = SND_DEV_DSPHW_REC; break; case PCMDIR_REC_VIRTUAL: - dirs = "virtual_record"; direction = PCMDIR_REC; type = SND_DEV_DSPHW_VREC; break; @@ -1239,9 +1235,7 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, c->dev = d->dev; c->trigger = PCMTRIG_STOP; - snprintf(c->name, sizeof(c->name), "%s:%s:%s", - device_get_nameunit(c->dev), dirs, - dsp_unit2name(buf, sizeof(buf), c)); + strlcpy(c->name, dsp_unit2name(buf, sizeof(buf), c), sizeof(c->name)); c->matrix = *feeder_matrix_id_map(SND_CHN_MATRIX_1_0); c->matrix.id = SND_CHN_MATRIX_PCMCHANNEL; diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index 2b765bc8b115..bf68f64929c3 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -170,17 +170,17 @@ static const struct { char *sep; char *alias; } dsp_cdevs[] = { - { SND_DEV_DSP, "dsp", ".", NULL }, - { SND_DEV_DSPHW_PLAY, "dsp", ".p", NULL }, - { SND_DEV_DSPHW_VPLAY, "dsp", ".vp", NULL }, - { SND_DEV_DSPHW_REC, "dsp", ".r", NULL }, - { SND_DEV_DSPHW_VREC, "dsp", ".vr", NULL }, + { SND_DEV_DSP, "dsp", ".", NULL }, + { SND_DEV_DSPHW_PLAY, "dsp", ".play.", NULL }, + { SND_DEV_DSPHW_VPLAY, "dsp", ".virtual_play.", NULL }, + { SND_DEV_DSPHW_REC, "dsp", ".record.", NULL }, + { SND_DEV_DSPHW_VREC, "dsp", ".virtual_record.", NULL }, /* Low priority, OSSv4 aliases. */ - { SND_DEV_DSP, "dsp_ac3", ".", "dsp" }, - { SND_DEV_DSP, "dsp_mmap", ".", "dsp" }, - { SND_DEV_DSP, "dsp_multich", ".", "dsp" }, - { SND_DEV_DSP, "dsp_spdifout", ".", "dsp" }, - { SND_DEV_DSP, "dsp_spdifin", ".", "dsp" }, + { SND_DEV_DSP, "dsp_ac3", ".", "dsp" }, + { SND_DEV_DSP, "dsp_mmap", ".", "dsp" }, + { SND_DEV_DSP, "dsp_multich", ".", "dsp" }, + { SND_DEV_DSP, "dsp_spdifout", ".", "dsp" }, + { SND_DEV_DSP, "dsp_spdifin", ".", "dsp" }, }; static void From nobody Sun Oct 20 11:21:44 2024 X-Original-To: dev-commits-src-branches@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 4XWbcS4mHBz5YvK0; Sun, 20 Oct 2024 11:21:44 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcS2RNRz4WvX; Sun, 20 Oct 2024 11:21:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423304; 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=xt5tFJ52uuOCK3KSbRkNQXjV6i9P36POMzrIamDFJXo=; b=OjPqWChd6B2x+BEojlBe+Fpuw/C0DNcBXVx7Kcgy583ArBbiAhBiwwGhju9Epb/sYgPHc6 b2mJ33jjc7NxcHmiQIwrL5c50xThK8adYMZO0fmzJ5Nc4qGnDd3N30XICMvQdribRjIZ8B UxX1OZV/l/v2MZdm0YuICu8sxRvow1+31WtbYce2TYPOvXSeLrExfs/Ky5n5NSZ0xvU8sq tq0sWC1aWPmtOrl/jsndM58kHuoYzZKNwEFaHthcjLwU0GUvmr70EETiwiQAs0ez1xcRvA zOOXqlq9C6juOU22JDHheQTw0frVoK9yPfuOysOyoHozfejKUkV4BH3VKn7ZVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423304; 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=xt5tFJ52uuOCK3KSbRkNQXjV6i9P36POMzrIamDFJXo=; b=UgGEZzkUqOBx+dVV5yhWzf8Gs9CZq9YCwhsojbEWkDsucmLpMvqFsEhHVSB8+QoQwZyUG/ UGhZMaHiwVlMLhUVTRDJUqFf9M3XEuRZzIL2OkqHaYpBGg4xRK+FIV+O+hpznafJCoMVNU AgZ3w+QuVelpjBceCsHJE94314voheDg8KH0TniYifTauuBb8AnHSRfIId7jc06TtCAm7X xBKFhFkES1kLdYP9E5CHeRx0srkDZkRzORfLJIAmq9HLRO4Lx/rWPFWdi/NNJAVZrg3ohs uvIyNGvzpt3szbLg3b/YkDZ9TARvkR1xGGueD1weF7DVuTb1Id+mLwUHMG1H0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423304; a=rsa-sha256; cv=none; b=T5qLWeXAWhluawYgT/0Zd/Oe4ff19AWTMEBM1170OYlwEDCipDoTyU67ZEZhJDSOmy3qgs xdvKCYH2wliNETHi3i5T6VYngW65uCXbfEG2iTVtTCuLHENW344LQQsEFrAbF4XOJ+F+zD zM6wlfz/jO8lnVTrOMojgK7iMbDY+/xcRFU/8OcqT3caPlOMJt51c4hT36lSSvdMYTffn7 6xst907GN0XGX2zzcZIlmPh10m60vyO4rtuhRJlVfKY/EZp9rnPtLQdz5vzuxKu3r2Drn3 AbfKIOcI00qn4Zkx13LVv1kUNtzoYILjz2aJHRdJZggSf1UfucJ5VmLL6IyEKg== 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 4XWbcS1z5mz10Vp; Sun, 20 Oct 2024 11:21:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLiDX063136; Sun, 20 Oct 2024 11:21:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLil1063133; Sun, 20 Oct 2024 11:21:44 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:44 GMT Message-Id: <202410201121.49KBLil1063133@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 84f361c9e367 - stable/14 - sound: Do not cast return value of malloc(9) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 84f361c9e367d86f785f7f0f3591c9db1b3e1c55 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=84f361c9e367d86f785f7f0f3591c9db1b3e1c55 commit 84f361c9e367d86f785f7f0f3591c9db1b3e1c55 Author: Christos Margiolis AuthorDate: 2024-10-18 08:40:57 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:05 +0000 sound: Do not cast return value of malloc(9) No functional change intended. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, zlei, markj, emaste Differential Revision: https://reviews.freebsd.org/D46844 (cherry picked from commit 3cc01caa26e4bf0798d219b2d40429a2cc1a642a) --- sys/dev/sound/fdt/audio_soc.c | 2 +- sys/dev/sound/pci/hda/hdaa.c | 20 +++++++------------- sys/dev/sound/pci/maestro3.c | 2 +- sys/dev/sound/pci/spicds.c | 2 +- sys/dev/sound/pcm/dsp.c | 6 +++--- sys/dev/sound/pcm/sndstat.c | 2 +- 6 files changed, 14 insertions(+), 20 deletions(-) diff --git a/sys/dev/sound/fdt/audio_soc.c b/sys/dev/sound/fdt/audio_soc.c index 3e937720bb5b..92813a3079d8 100644 --- a/sys/dev/sound/fdt/audio_soc.c +++ b/sys/dev/sound/fdt/audio_soc.c @@ -367,7 +367,7 @@ audio_soc_init(void *arg) auxdev = OF_device_from_xref(aux_devs[i]); if (auxdev == NULL) device_printf(sc->dev, "warning: no driver attached to aux node\n"); - aux_node = (struct audio_soc_aux_node *)malloc(sizeof(*aux_node), M_DEVBUF, M_NOWAIT); + aux_node = malloc(sizeof(*aux_node), M_DEVBUF, M_NOWAIT); if (aux_node == NULL) { device_printf(sc->dev, "failed to allocate aux node struct\n"); return; diff --git a/sys/dev/sound/pci/hda/hdaa.c b/sys/dev/sound/pci/hda/hdaa.c index e8d9ee12fffc..c0eb1864f145 100644 --- a/sys/dev/sound/pci/hda/hdaa.c +++ b/sys/dev/sound/pci/hda/hdaa.c @@ -3033,8 +3033,7 @@ hdaa_audio_ctl_parse(struct hdaa_devinfo *devinfo) if (max < 1) return; - ctls = (struct hdaa_audio_ctl *)malloc( - sizeof(*ctls) * max, M_HDAA, M_ZERO | M_NOWAIT); + ctls = malloc(sizeof(*ctls) * max, M_HDAA, M_ZERO | M_NOWAIT); if (ctls == NULL) { /* Blekh! */ @@ -3186,8 +3185,7 @@ hdaa_audio_as_parse(struct hdaa_devinfo *devinfo) if (max < 1) return; - as = (struct hdaa_audio_as *)malloc( - sizeof(*as) * max, M_HDAA, M_ZERO | M_NOWAIT); + as = malloc(sizeof(*as) * max, M_HDAA, M_ZERO | M_NOWAIT); if (as == NULL) { /* Blekh! */ @@ -4077,8 +4075,7 @@ hdaa_audio_bind_as(struct hdaa_devinfo *devinfo) cnt += as[j].num_chans; } if (devinfo->num_chans == 0) { - devinfo->chans = (struct hdaa_chan *)malloc( - sizeof(struct hdaa_chan) * cnt, + devinfo->chans = malloc(sizeof(struct hdaa_chan) * cnt, M_HDAA, M_ZERO | M_NOWAIT); if (devinfo->chans == NULL) { device_printf(devinfo->dev, @@ -5490,10 +5487,8 @@ hdaa_prepare_pcms(struct hdaa_devinfo *devinfo) } devinfo->num_devs = max(ardev, apdev) + max(drdev, dpdev); - devinfo->devs = - (struct hdaa_pcm_devinfo *)malloc( - devinfo->num_devs * sizeof(struct hdaa_pcm_devinfo), - M_HDAA, M_ZERO | M_NOWAIT); + devinfo->devs = malloc(devinfo->num_devs * + sizeof(struct hdaa_pcm_devinfo), M_HDAA, M_ZERO | M_NOWAIT); if (devinfo->devs == NULL) { device_printf(devinfo->dev, "Unable to allocate memory for devices\n"); @@ -6625,9 +6620,8 @@ hdaa_attach(device_t dev) ); if (devinfo->nodecnt > 0) - devinfo->widget = (struct hdaa_widget *)malloc( - sizeof(*(devinfo->widget)) * devinfo->nodecnt, M_HDAA, - M_WAITOK | M_ZERO); + devinfo->widget = malloc(sizeof(*(devinfo->widget)) * + devinfo->nodecnt, M_HDAA, M_WAITOK | M_ZERO); else devinfo->widget = NULL; diff --git a/sys/dev/sound/pci/maestro3.c b/sys/dev/sound/pci/maestro3.c index 4d6dca310eea..f922aa5cec3f 100644 --- a/sys/dev/sound/pci/maestro3.c +++ b/sys/dev/sound/pci/maestro3.c @@ -1453,7 +1453,7 @@ m3_pci_attach(device_t dev) /* Create the buffer for saving the card state during suspend */ len = sizeof(u_int16_t) * (REV_B_CODE_MEMORY_LENGTH + REV_B_DATA_MEMORY_LENGTH); - sc->savemem = (u_int16_t*)malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); + sc->savemem = malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); return 0; diff --git a/sys/dev/sound/pci/spicds.c b/sys/dev/sound/pci/spicds.c index 3b67101b8df0..da0e8d9da6d5 100644 --- a/sys/dev/sound/pci/spicds.c +++ b/sys/dev/sound/pci/spicds.c @@ -144,7 +144,7 @@ spicds_create(device_t dev, void *devinfo, int num, spicds_ctrl ctrl) #if(0) device_printf(dev, "spicds_create(dev, devinfo, %d, ctrl)\n", num); #endif - codec = (struct spicds_info *)malloc(sizeof *codec, M_SPICDS, M_NOWAIT); + codec = malloc(sizeof(*codec), M_SPICDS, M_NOWAIT); if (codec == NULL) return NULL; diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index bf68f64929c3..d4f7e3d6e63f 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -2493,7 +2493,7 @@ dsp_oss_syncgroup(struct pcm_channel *wrch, struct pcm_channel *rdch, oss_syncgr * syncgroup. */ if (group->id == 0) { - sg = (struct pcmchan_syncgroup *)malloc(sizeof(*sg), M_DEVBUF, M_NOWAIT); + sg = malloc(sizeof(*sg), M_DEVBUF, M_NOWAIT); if (sg != NULL) { SLIST_INIT(&sg->members); sg->id = alloc_unr(pcmsg_unrhdr); @@ -2520,7 +2520,7 @@ dsp_oss_syncgroup(struct pcm_channel *wrch, struct pcm_channel *rdch, oss_syncgr * insert into syncgroup. */ if (group->mode & PCM_ENABLE_INPUT) { - smrd = (struct pcmchan_syncmember *)malloc(sizeof(*smrd), M_DEVBUF, M_NOWAIT); + smrd = malloc(sizeof(*smrd), M_DEVBUF, M_NOWAIT); if (smrd == NULL) { ret = ENOMEM; goto out; @@ -2536,7 +2536,7 @@ dsp_oss_syncgroup(struct pcm_channel *wrch, struct pcm_channel *rdch, oss_syncgr } if (group->mode & PCM_ENABLE_OUTPUT) { - smwr = (struct pcmchan_syncmember *)malloc(sizeof(*smwr), M_DEVBUF, M_NOWAIT); + smwr = malloc(sizeof(*smwr), M_DEVBUF, M_NOWAIT); if (smwr == NULL) { ret = ENOMEM; goto out; diff --git a/sys/dev/sound/pcm/sndstat.c b/sys/dev/sound/pcm/sndstat.c index 4c5efb72cc0a..993ca926070f 100644 --- a/sys/dev/sound/pcm/sndstat.c +++ b/sys/dev/sound/pcm/sndstat.c @@ -1109,7 +1109,7 @@ sndstat_line2userdev(struct sndstat_file *pf, const char *line, int n) if (e == NULL) goto fail; ud->nameunit = strndup(line, e - line, M_DEVBUF); - ud->devnode = (char *)malloc(e - line + 1, M_DEVBUF, M_WAITOK | M_ZERO); + ud->devnode = malloc(e - line + 1, M_DEVBUF, M_WAITOK | M_ZERO); strlcat(ud->devnode, ud->nameunit, e - line + 1); line = e + 1; From nobody Sun Oct 20 11:21:45 2024 X-Original-To: dev-commits-src-branches@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 4XWbcT62H4z5YvRN; Sun, 20 Oct 2024 11:21:45 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcT3qpXz4XHT; Sun, 20 Oct 2024 11:21:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423305; 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=mOIyjnB10iw2jd0YWHkOmHbv+qwO0jCI3zqBKDTYBBI=; b=Nwhx2aKOtVC2ZCTsWnjYDji4M+hkPaYP6ItEL/K6QoH4mAAJSM04PAP+vY/w7Egp1VdrF/ BQKyV2m7l3EC3pYlwtVRAO9GfQzBfxo2ArSjcREEOGEeA5XW+/t4BCaRuCDN69e1wwL0sM 7Eei1X7eL/5mZkCGB4E4KLg8EgXP8kkxE9UYcnN22SM82DCfc+y7eFZOAHMI4DiicekLxJ 3A/dLi4PrUbwQCtyHOd132zWdVqW6lbwKAy0T8T1GLRij+ucJWbr1Xf8ElfUt66KrgcE87 I0GpXuONERwN4M8zCjPTq6B5FzLDT/K9WmTs3fVWhbldUNL2wZOSGWagt6GVPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423305; 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=mOIyjnB10iw2jd0YWHkOmHbv+qwO0jCI3zqBKDTYBBI=; b=NEf3K4AmFXYvS6UTfb60zA3Jx9TFYpouaL7AmxoZDfumHYDKG6JYYzfyLYEvaMV0DxiDBz ygqlsCII70XG3WKoX8L9c5hbOCdmiIE0mtk4p5NXqB0lXWW4ge+aads6ILbwXc8ni9mN+d 6OQ/NCXsT/qtFSwHBmc1Km4enOgvyodYHotdCYBtXa2++7fPCJtkeuq0ZBwL8sXVawpbNL EoNKWJohTHm/jaKortg1Ksq+UKJFBwmp+kQSoTTMr5DXPtOWqfJDcgF9mts6WWRG/vK10G Nyx1fqLiuWxk2PYtpFArRPyDsbRbTtE7rlBM0A3MAWCrrGQLygjy1Ret2TxYtg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423305; a=rsa-sha256; cv=none; b=DJ1ToTctMO3Xik4qMxUM1hPBp5qP0uAr+QSs5zqVQaCcIf5uRCCWcKLadtzw3vFRLsyG1/ 1DrO1+7MaIBHEXhIZPfeL9T/WPdUvLaY158QPMd5PfRBnjw5cW29/udtDwT9gOmA3zh1SE MY8JrgMXh7Tusqw6GbLU6uRB+iKBx2AL1HjUuFy3VjWoLDPV6TpDtnd9vtVQ9xoiFfZ3rq 8GQ951Ss3n1xYX1MSC3VV9JzATpalC9BH3V0Vbu7mRh9Aj5S/wBQ+CbCGkCNVnJDwskVZ0 XUHup9n7+eSreKstpkRWgA/7ByJorfGTEeCMtFaFfRgelQRw7sk+rS2Lg/gPQg== 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 4XWbcT32zGz108V; Sun, 20 Oct 2024 11:21:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLjXF063178; Sun, 20 Oct 2024 11:21:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLjXr063175; Sun, 20 Oct 2024 11:21:45 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:45 GMT Message-Id: <202410201121.49KBLjXr063175@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 28dc9f54efa9 - stable/14 - sound: Use M_WAITOK where possible List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 28dc9f54efa94c3a17b7cfd98c7a51d42e57893a Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=28dc9f54efa94c3a17b7cfd98c7a51d42e57893a commit 28dc9f54efa94c3a17b7cfd98c7a51d42e57893a Author: Christos Margiolis AuthorDate: 2024-10-18 08:41:05 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:05 +0000 sound: Use M_WAITOK where possible These malloc(9) calls are in contexts where sleeping is permitted. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, zlei, markj, emaste Differential Revision: https://reviews.freebsd.org/D46845 (cherry picked from commit 5e33eca8e8f359d4d48f4c50334a03748420a7da) --- sys/dev/sound/pcm/channel.c | 7 +------ sys/dev/sound/pcm/feeder.c | 14 ++------------ 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index 1e68be161322..6b8f00f9aa83 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1296,12 +1296,7 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, */ if (c->direction == PCMDIR_PLAY) { bs->sl = sndbuf_getmaxsize(bs); - bs->shadbuf = malloc(bs->sl, M_DEVBUF, M_NOWAIT); - if (bs->shadbuf == NULL) { - device_printf(d->dev, "%s(): failed to create shadow " - "buffer\n", __func__); - goto fail; - } + bs->shadbuf = malloc(bs->sl, M_DEVBUF, M_WAITOK); } PCM_LOCK(d); diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c index c6f93ac54036..2b9599859102 100644 --- a/sys/dev/sound/pcm/feeder.c +++ b/sys/dev/sound/pcm/feeder.c @@ -62,11 +62,7 @@ feeder_register_root(void *p) KASSERT(fc->desc == NULL, ("first feeder not root: %s", fc->name)); SLIST_INIT(&feedertab); - fte = malloc(sizeof(*fte), M_FEEDER, M_NOWAIT | M_ZERO); - if (fte == NULL) { - printf("can't allocate memory for root feeder: %s\n", fc->name); - return; - } + fte = malloc(sizeof(*fte), M_FEEDER, M_WAITOK | M_ZERO); fte->feederclass = fc; fte->desc = NULL; fte->idx = feedercnt; @@ -92,13 +88,7 @@ feeder_register(void *p) */ i = 0; while ((feedercnt < MAXFEEDERS) && (fc->desc[i].type > 0)) { - fte = malloc(sizeof(*fte), M_FEEDER, M_NOWAIT | M_ZERO); - if (fte == NULL) { - printf("can't allocate memory for feeder '%s', " - "%x -> %x\n", - fc->name, fc->desc[i].in, fc->desc[i].out); - return; - } + fte = malloc(sizeof(*fte), M_FEEDER, M_WAITOK | M_ZERO); fte->feederclass = fc; fte->desc = &fc->desc[i]; fte->idx = feedercnt; From nobody Sun Oct 20 11:21:46 2024 X-Original-To: dev-commits-src-branches@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 4XWbcV6rB0z5Yvr7; Sun, 20 Oct 2024 11:21:46 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcV4Zy6z4XMd; Sun, 20 Oct 2024 11:21:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423306; 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=01kvSu5YNmNvnLDRUKtm8x7icfH32Kf8QSxMj2vaPdE=; b=fiWCRAzWwtrJ7bk7/n3+IQdUp6FcvtUkuxmJxEMpzdx1oUGYO15/H72j1kgPYXg3W7j6Qn nQCwHn0z77yaBr4AeD4NWoeMyMo+1wWtcfTUQBXk/e3StN+RBe/2a0EeSpwA2SUke3DQ5E Iisr1w5kjap/bbJzXOUKYZjBW8nJgbWuZ4tSGHfnioOETpsbkxwwbGt6q0FkfL2WKnH5c+ 8zA4jw/s+I9bSnyOJ4LnF92q0GaHqRTyfYJ5AdnktMzXsvtKpNPSXihHjnc9Ehq7JNDqVj HI3D4z0x6AvBeiUb9bLPJInDay6Y5AYmrlJcPj7pFHrDrH0PREdkU2PL+/d5Ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423306; 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=01kvSu5YNmNvnLDRUKtm8x7icfH32Kf8QSxMj2vaPdE=; b=B9EC4iLw1DOnA8cqDr1wzx0+rmZKbWIKLByu7+YrmQNddp3iempfo00cltA8VS4efLNSJU 3P/bDMp7HUbKVV1iijQ0sNYq6a9u6+ryYVxHt8+nRJ8XL1oczjCNs5NoII6jMmDcoKf7ag tZ6sY6Gua4hO+vy5htm1310KJbi4q/G8XtWv3im83nekIM3NLhh2P54j9ItC52AzdyJKd+ M8dd1GGswvUltHSisJGMjTaHibBJAhwvyGxBOFeFSUlm59Ie97EE29xZGcDtBDg1pj55q+ RQA0DovVQWdRWzC6nOUTinRQZ0jmUd4UIPHFd4yMBzMlRC5q1681PfNwvkXzMA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423306; a=rsa-sha256; cv=none; b=IUeUJiZz8jN9B3KFIn19UhjODjjX9S6QR8oqTtiznRBK2U/i46kv94fL0wTDytbvKRHFou ljpc2sFSI7Xnw6IG1v0GRCsvSvCEHTOfdC/hngsWYpRMP/CaEly3TdtgLxgP0/ZK20ycsZ oI8rfh7bW9bh+DmO6WWtagitQhoCnnFg5wv8ODo8MMKBRtPtOw1g6tviT+CkRq3c5h0GxD jLZn1d0BFeIUrI1pOz47ZJ5+YFaEMAKVTLeebSXwxAXGRV0UD7QdNsuSaLoOc56lnaSzcs qGUIt8HZwtYGOGkc4/D6o5odibNB/ob0vvyzULMEN+OCCqDhleIfkkWaGmT+UA== 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 4XWbcV4B5Mz10F5; Sun, 20 Oct 2024 11:21:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLkQ8063241; Sun, 20 Oct 2024 11:21:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLkOB063238; Sun, 20 Oct 2024 11:21:46 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:46 GMT Message-Id: <202410201121.49KBLkOB063238@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 7a7ba76aa6f0 - stable/14 - sound: Do not check for NULL if sbuf is allocated with SBUF_AUTOEXTEND List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7a7ba76aa6f0af34fd60b3d13d93ef28598f7e23 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=7a7ba76aa6f0af34fd60b3d13d93ef28598f7e23 commit 7a7ba76aa6f0af34fd60b3d13d93ef28598f7e23 Author: Christos Margiolis AuthorDate: 2024-10-18 08:41:16 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:06 +0000 sound: Do not check for NULL if sbuf is allocated with SBUF_AUTOEXTEND Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, markj Differential Revision: https://reviews.freebsd.org/D46846 (cherry picked from commit aaf84d0e96831cd886b8e1e4ae102b3ba703b90a) --- sys/dev/sound/midi/midi.c | 6 +----- sys/dev/sound/pcm/sndstat.c | 5 +---- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/sys/dev/sound/midi/midi.c b/sys/dev/sound/midi/midi.c index d2b495ea04cd..cae030519285 100644 --- a/sys/dev/sound/midi/midi.c +++ b/sys/dev/sound/midi/midi.c @@ -951,12 +951,8 @@ midistat_open(struct cdev *i_dev, int flags, int mode, struct thread *td) return EBUSY; } midistat_isopen = 1; - if (sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { - error = ENXIO; - goto out; - } + sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND); error = (midistat_prepare(&midistat_sbuf) > 0) ? 0 : ENOMEM; -out: if (error) midistat_isopen = 0; midistat_unlock(); diff --git a/sys/dev/sound/pcm/sndstat.c b/sys/dev/sound/pcm/sndstat.c index 993ca926070f..bc51da083439 100644 --- a/sys/dev/sound/pcm/sndstat.c +++ b/sys/dev/sound/pcm/sndstat.c @@ -150,10 +150,7 @@ sndstat_open(struct cdev *i_dev, int flags, int mode, struct thread *td) pf = malloc(sizeof(*pf), M_DEVBUF, M_WAITOK | M_ZERO); - if (sbuf_new(&pf->sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { - free(pf, M_DEVBUF); - return (ENOMEM); - } + sbuf_new(&pf->sbuf, NULL, 4096, SBUF_AUTOEXTEND); pf->fflags = flags; TAILQ_INIT(&pf->userdev_list); From nobody Sun Oct 20 11:21:47 2024 X-Original-To: dev-commits-src-branches@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 4XWbcW6q9Lz5YvK6; Sun, 20 Oct 2024 11:21:47 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcW5Wk7z4XKl; Sun, 20 Oct 2024 11:21:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423307; 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=eSQHn2fVWqA6OuGjEI4GXlXA6jLHpAf7q+9nNb4Aozs=; b=k9QC7w2GoAdPqga3/zCMjCxcMFbSzJWbMfUTMHOlE5IdyNPmfucWdhT670L2Oo/KSN5x40 eUzkGJJBzhAppulPZFPHSrpuDqD4o+F9ivolrxwLEwMAEVOiazqWYC+vmZC/eAAAaU13cK XvcGS3EmzH+PG14aYha6W6Sdd3XAukowk25Nj5r78pTl9R5BFfpTDHRUm6MeG1vt6mbd5L KrlxRttB2+/jbEMmKjAzzDMAGSuBuJ8hXZe2ZO2yIZfjrdy5ei2NW0XWvyTRj/rdq2adxF jwAT+Ha46IQpet8hvgiqdQezgZmBPOXsL+lLOyDiGCOQUv1nmNW7iwLhyk9dMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423307; 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=eSQHn2fVWqA6OuGjEI4GXlXA6jLHpAf7q+9nNb4Aozs=; b=H225RtKBneNj3mbQmY+3mTWxoGJZ35fcDGNtSUNKtqE53//OukFGaItxnCKDyfBXNe4ZyC +S4W6qLJNoMfY+HoQxXn7fJ9k9ykShJBoT+XShhv7GPsrpgltNY7wEFh5l0JNvJpjfsSU5 tOp2PHMGQRZb3AIQup9HGZ4uBHHLs7+rdEKx90jwCkeOiMbTt7DVXgq7prAiiQH2Hdg1JN SzmVCBUd0GMDBjZkJ9HVZAQWLQdsdsgi8HtMB8vZDhioQG/ZZdxbcm65DBR3gze1JkF1DO EIh6MAJ5fA3ru0uD0F3k836yXK4sStiUKHEoWH4iQTEpUyrP/1oIL66KX8joqA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423307; a=rsa-sha256; cv=none; b=tsRlWeysMe4tCQK9uFverwWGCaJLyg5swFAxZnKmzHtiWkmlL16Wr8Z6Xpdrx81wX6RqB0 rBEdqjkNclkyZPZEhqTv00FYebsikoZBQie/qp617hGTfnFC+TUssnBgMcPbyseLqEsM/W DxU5ctZ1UeMIoa1WKnWWXWUQKNUAk/WGJfJv0xS4hSNbC+Pmlkby1XsyTFuFc7gv8wNGc0 JGkrC1Eu9zYo+eSb/O3Bjj7Kn/Vhw7fw0HhBFx9ZEz7E44HIQC52kJxz3LMIOAKFzZn/yw BjDhkvA0pvieBft2mgQGgVnyRtTtEz53ML2XTJoJSMJ5057B4HwlMQC/HzWBHA== 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 4XWbcW56Xmzy9p; Sun, 20 Oct 2024 11:21:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLllr063286; Sun, 20 Oct 2024 11:21:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLlxY063283; Sun, 20 Oct 2024 11:21:47 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:47 GMT Message-Id: <202410201121.49KBLlxY063283@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 565a9b8f86b2 - stable/14 - sound: Improve /dev/sndstat channel info readability List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 565a9b8f86b203517e4e7210c912970adcf614f0 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=565a9b8f86b203517e4e7210c912970adcf614f0 commit 565a9b8f86b203517e4e7210c912970adcf614f0 Author: Christos Margiolis AuthorDate: 2024-10-18 08:41:23 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:06 +0000 sound: Improve /dev/sndstat channel info readability Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, zlei Differential Revision: https://reviews.freebsd.org/D46857 (cherry picked from commit 0ff0a8234f83e6b25e9a2f1b64623baaf723d6dc) --- sys/dev/sound/pcm/sndstat.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/dev/sound/pcm/sndstat.c b/sys/dev/sound/pcm/sndstat.c index bc51da083439..b20b3f8f6158 100644 --- a/sys/dev/sound/pcm/sndstat.c +++ b/sys/dev/sound/pcm/sndstat.c @@ -1280,12 +1280,12 @@ sndstat_prepare_pcm(struct sbuf *s, device_t dev, int verbose) } sbuf_printf(s, "\n\t"); - sbuf_printf(s, "interrupts %d, ", c->interrupts); + sbuf_printf(s, "\tinterrupts %d, ", c->interrupts); if (c->direction == PCMDIR_REC) { sbuf_printf(s, "overruns %d, feed %u, hfree %d, " - "sfree %d [b:%d/%d/%d|bs:%d/%d/%d]", + "sfree %d\n\t\t[b:%d/%d/%d|bs:%d/%d/%d]", c->xruns, c->feedcount, sndbuf_getfree(c->bufhard), sndbuf_getfree(c->bufsoft), @@ -1298,7 +1298,7 @@ sndstat_prepare_pcm(struct sbuf *s, device_t dev, int verbose) } else { sbuf_printf(s, "underruns %d, feed %u, ready %d " - "[b:%d/%d/%d|bs:%d/%d/%d]", + "\n\t\t[b:%d/%d/%d|bs:%d/%d/%d]", c->xruns, c->feedcount, sndbuf_getready(c->bufsoft), sndbuf_getsize(c->bufhard), @@ -1310,14 +1310,14 @@ sndstat_prepare_pcm(struct sbuf *s, device_t dev, int verbose) } sbuf_printf(s, "\n\t"); - sbuf_printf(s, "channel flags=0x%b", c->flags, CHN_F_BITS); + sbuf_printf(s, "\tchannel flags=0x%b", c->flags, CHN_F_BITS); sbuf_printf(s, "\n\t"); if (c->parentchannel != NULL) { - sbuf_printf(s, "{%s}", (c->direction == PCMDIR_REC) ? + sbuf_printf(s, "\t{%s}", (c->direction == PCMDIR_REC) ? c->parentchannel->name : "userland"); } else { - sbuf_printf(s, "{%s}", (c->direction == PCMDIR_REC) ? + sbuf_printf(s, "\t{%s}", (c->direction == PCMDIR_REC) ? "hardware" : "userland"); } sbuf_printf(s, " -> "); From nobody Sun Oct 20 11:21:49 2024 X-Original-To: dev-commits-src-branches@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 4XWbcZ1M4Fz5YvKB; Sun, 20 Oct 2024 11:21:50 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcY700Dz4XJT; Sun, 20 Oct 2024 11:21:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423310; 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=AFLBc53Vbr+aEZF6M+C36G75Pt5b0zjFa7CazGepRjM=; b=kgjdx4bdlfXHGn0Vy8+q9hJ939yGx6pi1G9kc+vVnThKpgX9e+WuJVrzgaxv1BD0dtOdK/ 3IbWMpapMya2l4E0F82zlYPYN2V2JmqpWrgLvjbYfxvowfycPYA4l2ciH+soXjjCMRVj7Y MV6Rru9QEqUa3NJJGu7JpPWipq+aFiPB9HNtzUZSBE+MibfzL40mdSDffjCzsLwh1UISkA IM0LyTCvc+UY3XhZQUm/CA8FuQGCIL51Ws+JxuP8zx3A1Js9v5CcKlhQldY+fAx8c6rCbm DslVS5GPOQUGcupCq1S3F1MVg0gGyWmU3CtYii+hqGorn3+98EFkOC0XfqlPuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423310; 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=AFLBc53Vbr+aEZF6M+C36G75Pt5b0zjFa7CazGepRjM=; b=aoRiDqLN52CPIJ9yzXceH6jaAutyOdQ317/v/QKOupDY68yFYts97+9tj8cqTy39RYeZ7i lHCgDMBbaX1OIGDzV3kxL588MCftwj+wGPodorEBcd8K2n8SMuAlG/F93/bGX6uDzlupXX R9btsn9DI+3encYRclDZoiKlQ+TNTYVOOd7Jsww44lqzrSKxtnJuiFwCVrGu+HREhYXpGx 0Bn+Whi4FTeZGDZfHCfC+SiQgshWlWc3sXaXC/blhD7IHmrlZVGnSwsk30l5eOIERpk1fX SXKI/U8s4uATsXT3XxgOKzUnDd5oF8RjiPpAVP6flGovMHG5XGl7kX8adh6STw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423310; a=rsa-sha256; cv=none; b=Vnm93Zi8ZnMSO4OPl5/CgDesH5olwYNmfeqYnfhDzw4mpLeneLJuGi2eJZXre/HJDaq8ET LuhTQnb4jafpLVA3/2xnk912z1Rh2nccsSPh6+XV0UwJd34s3M7IaQFhRySrsb6kwukWDG KVH42ulQyKmct1fNstdqMKoEoaezBQExC0Q7vyan0WPA8r25jWzGKRg1ZWRsm2ONjL9gBE T5FKO8MnaXdU32ZgirAyZHEOFENimNxx1F4ysV4X8gI1YPM8co9SlYN2Sm9/ZU1/LnoSRF RUk+/BiJmVBes9OyTm5DAeJtMx06rE2/ZsxEog3PW++f6gb28N0s4T768ruWxA== 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 4XWbcY6cS9z108Z; Sun, 20 Oct 2024 11:21:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLnct064306; Sun, 20 Oct 2024 11:21:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLn6x064303; Sun, 20 Oct 2024 11:21:49 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:49 GMT Message-Id: <202410201121.49KBLn6x064303@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 4f11a5312370 - stable/14 - snd_hda: Identify NVIDIA GM204 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4f11a5312370ee33784a34213c24974baeb77b0f Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=4f11a5312370ee33784a34213c24974baeb77b0f commit 4f11a5312370ee33784a34213c24974baeb77b0f Author: Jani Salonen AuthorDate: 2024-10-18 08:41:44 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:06 +0000 snd_hda: Identify NVIDIA GM204 PR: 228615 MFC after: 2 days Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D47166 (cherry picked from commit d643e82356d46a20a8f3f2f3c42573a6827d568a) --- sys/dev/sound/pci/hda/hdac.h | 1 + sys/dev/sound/pci/hda/hdacc.c | 1 + 2 files changed, 2 insertions(+) diff --git a/sys/dev/sound/pci/hda/hdac.h b/sys/dev/sound/pci/hda/hdac.h index 91ddbcccc9ed..d00ad4e4705c 100644 --- a/sys/dev/sound/pci/hda/hdac.h +++ b/sys/dev/sound/pci/hda/hdac.h @@ -883,6 +883,7 @@ #define HDA_CODEC_NVIDIATEGRA124 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0028) #define HDA_CODEC_NVIDIATEGRA210 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0029) #define HDA_CODEC_NVIDIAMCP67 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0067) +#define HDA_CODEC_NVIDIAGM204 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0071) #define HDA_CODEC_NVIDIAMCP73 HDA_CODEC_CONSTRUCT(NVIDIA, 0x8001) #define HDA_CODEC_NVIDIAXXXX HDA_CODEC_CONSTRUCT(NVIDIA, 0xffff) diff --git a/sys/dev/sound/pci/hda/hdacc.c b/sys/dev/sound/pci/hda/hdacc.c index 81395a1a9ae7..a3a7b5950994 100644 --- a/sys/dev/sound/pci/hda/hdacc.c +++ b/sys/dev/sound/pci/hda/hdacc.c @@ -358,6 +358,7 @@ static const struct { { HDA_CODEC_NVIDIAMCP78_3, 0, "NVIDIA MCP78" }, { HDA_CODEC_NVIDIAMCP78_4, 0, "NVIDIA MCP78" }, { HDA_CODEC_NVIDIAMCP7A, 0, "NVIDIA MCP7A" }, + { HDA_CODEC_NVIDIAGM204, 0, "NVIDIA GM204" }, { HDA_CODEC_NVIDIAGT220, 0, "NVIDIA GT220" }, { HDA_CODEC_NVIDIAGT21X, 0, "NVIDIA GT21x" }, { HDA_CODEC_NVIDIAMCP89, 0, "NVIDIA MCP89" }, From nobody Sun Oct 20 11:21:48 2024 X-Original-To: dev-commits-src-branches@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 4XWbcY16P5z5YvrD; Sun, 20 Oct 2024 11:21:49 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcX622Nz4X80; Sun, 20 Oct 2024 11:21:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423308; 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=nlYcCUMPRUC5k13njr7CInQq5yLBF0yTZuhiSo3f+qA=; b=PHo69zk1DJRAfCnR0NuIRsqoq2qtobObQUDOyB+WVItLc8bnMV2vwQIgSIsSCAZDWND0Un 5RUhgK7Zy5P2gCmb9yH62sO+GCB72tKwroJG/KtWZSl5Tidf7EOfKPbFUeMATY5DbSuWTM lx8uCMgyLAt12vLWrOCgnIgI+2DRPBAMMsKhwkheu+WNht+FDDrAVXrq6WeBiOYgR+fjZn p+R2tFGw8n941gqDYxoGaZxbdDUREocFcw+BAekpkLbQEceLiPylKoutFnHrMZfSFPpKlE 6mI7anBkjI5nQOlhhdmO0MnfnDvDWMHMLMwGbRnDzAhdrBrg7oCamImDDmbJ4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423308; 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=nlYcCUMPRUC5k13njr7CInQq5yLBF0yTZuhiSo3f+qA=; b=rjJREUV25TBgRncFWOWOBXrsIQ9VS3Dcxr2xZnP7V8+9RE+pWYve1CCTT25IAULVUI42yy 3rNhc85+UYub0v5Eq7bDYX5OqzgTlhg46VUQ4tDsLtdGoAKzwZGbrFBYisbeiz126bCFQ8 FtA+n53KOaiiKSOUrxd7dFLYzMYb3f29pBfiexAbXrTx9FYUH+sKA/srhGI5JeciTVyoNp nCsn/PnRBImIod/WNjOJi8TapnOEdBGxYSxOkbFycRhVqk+qjJq2S0AyKm8m9+7zKPfPjH jrnz1pQhivAUHf/U0gMWKWN1kbT4QbXz5uyPvlKcnWjg6onrZRoACEadslSACQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423308; a=rsa-sha256; cv=none; b=tTwfoeUdQ0fJP6xuBZdRBGOlBdgRT4nb0aqM0kbSFDJyniYkgADGyoVWEQ0eV1Swc69200 0QXoARrdm6tRgw8jw9MQ/gTXsAlJhRgZT2eemG7XHXZ7lj90S3cma5gK4oE0z78ouF1A1i J3Y3c1oEp0GOIpzIDJz+PSfLU6YBR8qKjbUVLAHdVWcW3knNtyb4wU07wmf7oxi7Jx3cuG AlyHurACnt/NHvc6rpUvRsYrGl+53AhqZSVZ1Jj1VDO2I5H1/b4ubUirh9k3crUlvEoQ8+ UqYG/mW4j2BxXI8BB7Dr8C1i+ezFiz/CS62CsUTdurnP9eofB9PDHa+FDwXQxg== 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 4XWbcX5f36z10Ln; Sun, 20 Oct 2024 11:21:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLmRb064021; Sun, 20 Oct 2024 11:21:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLmRY064018; Sun, 20 Oct 2024 11:21:48 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:48 GMT Message-Id: <202410201121.49KBLmRY064018@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 867b2ee99995 - stable/14 - snd_hda: Remove duplicate HDA_INTEL_CMLK* entries List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 867b2ee999950ac5ef4c68d1edd9cd57a13519dc Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=867b2ee999950ac5ef4c68d1edd9cd57a13519dc commit 867b2ee999950ac5ef4c68d1edd9cd57a13519dc Author: Christos Margiolis AuthorDate: 2024-10-18 08:41:36 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:06 +0000 snd_hda: Remove duplicate HDA_INTEL_CMLK* entries No functional change intended. Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: markj, emaste Differential Revision: https://reviews.freebsd.org/D47152 (cherry picked from commit de009cf68ba68aa5823be3d6afeebb49a15b1251) --- sys/dev/sound/pci/hda/hdac.c | 2 -- sys/dev/sound/pci/hda/hdac.h | 2 -- 2 files changed, 4 deletions(-) diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c index 336602b6bbf4..c25f11ba1f23 100644 --- a/sys/dev/sound/pci/hda/hdac.c +++ b/sys/dev/sound/pci/hda/hdac.c @@ -106,8 +106,6 @@ static const struct { { HDA_INTEL_CMLKS, "Intel Comet Lake-S", 0, 0 }, { HDA_INTEL_CNLK, "Intel Cannon Lake", 0, 0 }, { HDA_INTEL_ICLK, "Intel Ice Lake", 0, 0 }, - { HDA_INTEL_CMLKLP, "Intel Comet Lake-LP", 0, 0 }, - { HDA_INTEL_CMLKH, "Intel Comet Lake-H", 0, 0 }, { HDA_INTEL_TGLK, "Intel Tiger Lake", 0, 0 }, { HDA_INTEL_TGLKH, "Intel Tiger Lake-H", 0, 0 }, { HDA_INTEL_GMLK, "Intel Gemini Lake", 0, 0 }, diff --git a/sys/dev/sound/pci/hda/hdac.h b/sys/dev/sound/pci/hda/hdac.h index 5e66e8eaed59..91ddbcccc9ed 100644 --- a/sys/dev/sound/pci/hda/hdac.h +++ b/sys/dev/sound/pci/hda/hdac.h @@ -95,8 +95,6 @@ #define HDA_INTEL_CMLKS HDA_MODEL_CONSTRUCT(INTEL, 0xa3f0) #define HDA_INTEL_CNLK HDA_MODEL_CONSTRUCT(INTEL, 0x9dc8) #define HDA_INTEL_ICLK HDA_MODEL_CONSTRUCT(INTEL, 0x34c8) -#define HDA_INTEL_CMLKLP HDA_MODEL_CONSTRUCT(INTEL, 0x02c8) -#define HDA_INTEL_CMLKH HDA_MODEL_CONSTRUCT(INTEL, 0x06c8) #define HDA_INTEL_TGLK HDA_MODEL_CONSTRUCT(INTEL, 0xa0c8) #define HDA_INTEL_TGLKH HDA_MODEL_CONSTRUCT(INTEL, 0x43c8) #define HDA_INTEL_MTL HDA_MODEL_CONSTRUCT(INTEL, 0x7e28) From nobody Sun Oct 20 11:21:50 2024 X-Original-To: dev-commits-src-branches@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 4XWbcb3Sr1z5YvKL; Sun, 20 Oct 2024 11:21:51 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcb0wqTz4XLP; Sun, 20 Oct 2024 11:21:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423311; 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=05DwnL41fiauwhKS27C3MK7elmXORYGUBm8A0htMy3Q=; b=FZ85jv3O35vWRbNWJQuACT7+JGK5+2f1Vto3aCRWZ10STI82Z+s5/NpL2UIqMQ7zmmCS8R AGMyBvzxfcBbk6MaFhDG+LRJY0STm7mZp3DPOrmRqzbLCA1dJucGR2AL93+/KcoPpDJzrR /wl0kcgYixUeaHReOSbRydDgXqIP5K9S/3cgKSAzAjULKyB/mWIZuOwpIhPFMObpbu3yVj ktM2x7Ml5I1HVdAe5fmRY8k65zHhBHc8gFz4MI3Y/VaMkO2roba1Qmdyp+AISHSH4Rj7K5 duZCalR3FVL7UW9X3ncQNBe9r7J1oH9E61SV7D2+yytIPnme/RcL8N3s5ab/Sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423311; 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=05DwnL41fiauwhKS27C3MK7elmXORYGUBm8A0htMy3Q=; b=rjII3PT0GrrQA70dhrW5TZ5JQ1q0oaRrQvTT9GTmrZH1uBW5fTU+ckDhBRctVRQdR3w5bA QCPBb/XUpNrVrLVmXqo2ipITVhP0M1P7krFjg/m1Nz22nv/6KKBgp577xW3GeSZPiXBep7 9LjbHbI7BpvyyuK4V2g426arw8UbmHwGBZWsIJDK6j2RxGfHSRbZoZyhUo6ufsxERzt5uK s9WLiQPf6wsjYGVcUwadPxjfrZPCW2qHZ+QDQH9Qy2uS0y5i3i7Mn0IFo5ZBAcTyLW1ib7 x7g28YtE/bXa+84+FPDSlcJiLo+dEGJiargPcfJx6NzBlGGsvhiYSqPbwFllxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423311; a=rsa-sha256; cv=none; b=TivtW+NegHBcq8Su5Cts4F7X4O70k6U4mCqLmYOFFUk+a0E+hL2dN22Li6marvGhNsWscw MX5nLm89Odgm6gmNE0KrTcfj7sdeVO5Xsuo0iIqgmXVRKCZl3EA2OnQZ/XJ+UPRIWg8RHN Ybfx30iWsc0JU3+m+3jgHEhpVctElbk5TymzOhJWYKnaZP8sfmLMHdKeJs9Jcjy5VF7KIa XRTzDD7VuOkg7MUkKo732HimgDLF4OeutEtTXUGKofERr1QWmTYEAt9pVzlygLY6hevQeq Sv5uIXwop0WCsX1TbAONI7h9Ccb82z4S+PF7B2F/fZHgTUEXYFlboDnTwRrAeA== 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 4XWbcb0VXjz10FB; Sun, 20 Oct 2024 11:21:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLonH064350; Sun, 20 Oct 2024 11:21:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLo30064347; Sun, 20 Oct 2024 11:21:50 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:50 GMT Message-Id: <202410201121.49KBLo30064347@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: e609dfa98fd3 - stable/14 - onyx: Remove unreachable if condition List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e609dfa98fd349ed868f2d4d16bd1994fc53875f Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=e609dfa98fd349ed868f2d4d16bd1994fc53875f commit e609dfa98fd349ed868f2d4d16bd1994fc53875f Author: Christos Margiolis AuthorDate: 2024-10-18 08:41:55 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:06 +0000 onyx: Remove unreachable if condition Both conditions are the same, so the second one is unreachable. PR: 229550 Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: andreast, markj Differential Revision: https://reviews.freebsd.org/D47167 (cherry picked from commit 6f96ef84b359137a51dc1e717887ca7d31ba7bad) --- sys/dev/sound/macio/onyx.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/dev/sound/macio/onyx.c b/sys/dev/sound/macio/onyx.c index 00c7b826f142..d13f3da92db6 100644 --- a/sys/dev/sound/macio/onyx.c +++ b/sys/dev/sound/macio/onyx.c @@ -197,7 +197,6 @@ onyx_probe(device_t dev) if (strcmp(name, "codec") == 0) { if (iicbus_get_addr(dev) != PCM3052_IICADDR) return (ENXIO); - } else if (strcmp(name, "codec") == 0) { compat = ofw_bus_get_compat(dev); if (compat == NULL || strcmp(compat, "pcm3052") != 0) return (ENXIO); From nobody Sun Oct 20 11:21:52 2024 X-Original-To: dev-commits-src-branches@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 4XWbcc3S0Rz5Yvp0; Sun, 20 Oct 2024 11:21:52 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWbcc1tcXz4XSb; Sun, 20 Oct 2024 11:21:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423312; 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=m1G29NWlXfgf5iLMDi1nLgapP78GuDPNULu+ZKGWXBY=; b=gvSgOgYogDqr/bgfrwB/tdpnihFQNSU4bA5zxc/JkV7wrpDcRyljJpsL3gsFTapWJghrga 2XcUxJwywovb8NMOeAUJdTrtYTiJKtdYcP+UiehD0MbDSpLjzTV7A0DQwVXZxbzBIpD1da Hh38M2f+MaLDfTH6+zIQCQag1/FKyMsxztNUb+GytPJ+YsgalumSSwBOR73VcnwNyFT9JK uJh3Z/VWdzUFfPXMVnv5bSGthm7q/NzEsB6k2L/8fck9Igdes9LggwQf2WpsPM8OqnTIsQ KRMccwOcCosQ+quMuUQZ9Jrd3sC8DOggzlmkEywm5KNLocaD/cRs2mczV9O0Tw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729423312; 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=m1G29NWlXfgf5iLMDi1nLgapP78GuDPNULu+ZKGWXBY=; b=oFQZUSHT4Sbh596pEt9zY9bCo9PRlykaTxOQaG8PNUB2neH8LRNo4HJSAwRkSY7sFBH3V6 wCNDnfOJYLIVdjS4Eqx0vnzqDziX71858DS9f3p3VxXZ0FPhWuC+q2ke2+v7hmeEvCspmW q9xFbRe4y+5/9yUn63pPcD6eBWtLXscLAj3EZzYfWE5RjFKs6sH+GfhY+iyrIv7QliKD/E rOuQUhmHkaQwlUeiLuTNKoq02VK5EedsH7++KIGpolYV6esXtwjVZOO2nLzUln4h1C4SN+ p4B2HrK7axQkcACuqC9j0rYZ/L6kiov4KSS/JH66WwpcEPCR/QaeOLEvvyugdQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729423312; a=rsa-sha256; cv=none; b=cStm3kmwkQ5Ir+Lnz9mxW6CdrD7EksaWrdAv8Ike7090mn7Yc3KHiA4jd4vDgvbBKSD81C Ms2iefx4OQkacKXEXRaHZu4epWjnFD5Q8cdMGrtEDgaw4wz3/j2gItWC6WALXNV4e4iJ/Q 3iW7g5mG7D46CqhmriesNpdHrmroC04m7R16JkRGYatgUiewjJ1Nc1jRQqHxnGRRYOlrIt e9TVrPQwmMnpn2/4IbxPIdTJNoIgeXb8XbLn54a5BdYMDdgjIaPkItU2jCrudH2fmyzCZ4 sjjr6e2+MLnl/8KKfalFOfBpeNrtjyNIHnmC/1QZ1d5bv+ifR3GKyLh4rlpyBA== 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 4XWbcc1W0Kz103G; Sun, 20 Oct 2024 11:21:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KBLq21064398; Sun, 20 Oct 2024 11:21:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KBLqgM064395; Sun, 20 Oct 2024 11:21:52 GMT (envelope-from git) Date: Sun, 20 Oct 2024 11:21:52 GMT Message-Id: <202410201121.49KBLqgM064395@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 1a8cd08d8ae6 - stable/14 - vmm.4: Add ppt device detach example List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1a8cd08d8ae6ad40405c2c0fd4199c01d9e9353b Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=1a8cd08d8ae6ad40405c2c0fd4199c01d9e9353b commit 1a8cd08d8ae6ad40405c2c0fd4199c01d9e9353b Author: Christos Margiolis AuthorDate: 2024-10-18 08:42:05 +0000 Commit: Christos Margiolis CommitDate: 2024-10-20 11:21:06 +0000 vmm.4: Add ppt device detach example Showcase how to detach ppt from a PCI device and attach a host driver, and vice-versa. MFC after: 2 days Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D46811 (cherry picked from commit 9ad2891558729b1c1ad4ba02377b157e404a3da2) --- share/man/man4/vmm.4 | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/share/man/man4/vmm.4 b/share/man/man4/vmm.4 index dfd7ad26fb98..7e4c9050021a 100644 --- a/share/man/man4/vmm.4 +++ b/share/man/man4/vmm.4 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 6, 2024 +.Dd September 27, 2024 .Dt VMM 4 .Os .Sh NAME @@ -108,11 +108,36 @@ bus 6 slot 5 function 0, and bus 6 slot 5 function 1. .Bd -literal -offset indent pptdevs="10/0/0 6/5/0 6/5/1" .Ed +.Pp +It is possible to detach +.Va ppt +from a PCI device without rebooting the host machine and then attach a host +driver, using the +.Xr devctl 8 +utility. +Suppose +.Va ppt +is currently attached to +.Va pci0:0:1:0 +and we want the host's +.Xr xhci 4 +driver to be attached instead: +.Bd -literal -offset indent +# devctl set driver -f pci0:0:1:0 xhci +.Ed +.Pp +The same can be applied to attach +.Va ppt +back: +.Bd -literal -offset indent +# devctl set driver -f pci0:0:1:0 ppt +.Ed .Sh SEE ALSO .Xr bhyve 4 , .Xr loader.conf 5 , .Xr bhyve 8 , .Xr bhyveload 8 , +.Xr devctl 8 , .Xr kldload 8 .Sh HISTORY .Nm vmm.ko From nobody Sun Oct 20 13:43:43 2024 X-Original-To: dev-commits-src-branches@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 4XWfmH4cLmz5ZKWW; Sun, 20 Oct 2024 13:43:43 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWfmH3y2kz4tyB; Sun, 20 Oct 2024 13:43:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729431823; 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=I9p7s2jj9lmuBK3HKJknIE6VMHSdijaffYIMXgIg0Y8=; b=jU4aSlrBXuFsVvzLTIxAzaog8WMyvFIKaDAuHIA2L9IineR4cNGRbC3C9vi3Y9QQVmhb0j 2k15khwaW76NZsden9f4Mvq6ssMbsT/PnoIT8ecGy9JUhR6AHSPMRnNAheCmKCZgum70b0 or72dRWD7lzWKBOYAEzjIlLEPS7hWHR1LyD/b3hEWzOIxju0ecyxWgwdkfs2Gu1CyhTxqa hSyYjPpcIr+bq6o98gKFLq03nrxoNHWkxVpsXkYPCR2Up21/p0K7eiXJ6n0YeiF6ruD3E7 jlWeNB0LY04hFxzLCD9eXVb4tUEycnlZW1X8HYiEDFwlLfMm+fVEwBpF6ZzrTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729431823; 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=I9p7s2jj9lmuBK3HKJknIE6VMHSdijaffYIMXgIg0Y8=; b=Nc+iJArWbuWRT/fQ5gg3mUepWozCrQWqiB7gCENAYSfBYCTFUwqMlNRBWFP7h2QW51369j 1Pc6TVQmBdmQ8WsUZ1jtLKWCtYCKcJ3Xv9l1I0M4H7JPZIqldmXUDrfdByke2GSFiFlEfP mt05J+45VMNuURcfAzy4Wgf3xBUAp25QWBO8xUP/Dy2aer1D3eo/384HvpCu94yFV5yceF oO08ZfpxmdKRGPw2ZtUSbZnmfOaPqDDtAKz+UbKA6mekciRGcAAYWUxyNzPYixfh1UIWKJ k0TsKqUncP1/E+I9j4ghFC/UAOlUBwd2FK37l2e4UX7xHBKKWTrtsY2egSzA3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729431823; a=rsa-sha256; cv=none; b=ZdRE4TkEOAZ0bcLdve9mudyG7WrdjFFnJgXWJx4tZoYGAJ7OwzieCf26pg5RD9tyw8socz dTmhvf1UiwDhqwZc6v2mqKQwxzw3+4MFk8h8iMlIci2CejvsWTWgzybleliP/Zp83/U7QJ qAIGhtvB0zHK4QSN8afjj2AuwbVJkzwD/ykVB4yHb8bfJc5mqOQhLB10XrWj9ghdacsL20 XqyeCvXC/eShcJwVmCGz87h+d3ypPXhxX1Xk4onwVAx8urEc/FBg1Uux1gAO6Xxgg8XlQj evCNE12hbVnCuH5I3BAzNE8ZALPLbnGZRSNT4mdJLROtcI2U1WLSZTD/+3cyNQ== 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 4XWfmH3FRBz148m; Sun, 20 Oct 2024 13:43:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KDhhj5024169; Sun, 20 Oct 2024 13:43:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KDhhcK024166; Sun, 20 Oct 2024 13:43:43 GMT (envelope-from git) Date: Sun, 20 Oct 2024 13:43:43 GMT Message-Id: <202410201343.49KDhhcK024166@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 03f7680517c8 - stable/14 - if_enc(4): Use new KPI to create enc interface List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 03f7680517c88ec9b656f73e5382bcaf07791d2c Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=03f7680517c88ec9b656f73e5382bcaf07791d2c commit 03f7680517c88ec9b656f73e5382bcaf07791d2c Author: Zhenlei Huang AuthorDate: 2024-06-27 09:22:37 +0000 Commit: Zhenlei Huang CommitDate: 2024-10-20 13:43:01 +0000 if_enc(4): Use new KPI to create enc interface This driver allows only exactly one instance to be created. Clone creating additional interfaces, e.g. `ifconfig enc1 create`, will get error EEXIST which is somewhat confusing. Convert to new KPI for less confusing error ENOSPC. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D45758 (cherry picked from commit eacad82f3ad0af7d74968e73ed383fc4531d1924) --- sys/net/if_enc.c | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/sys/net/if_enc.c b/sys/net/if_enc.c index 3c7ae38324c3..3c3f19661063 100644 --- a/sys/net/if_enc.c +++ b/sys/net/if_enc.c @@ -94,8 +94,9 @@ VNET_DEFINE_STATIC(struct if_clone *, enc_cloner); static int enc_ioctl(struct ifnet *, u_long, caddr_t); static int enc_output(struct ifnet *, struct mbuf *, const struct sockaddr *, struct route *); -static int enc_clone_create(struct if_clone *, int, caddr_t); -static void enc_clone_destroy(struct ifnet *); +static int enc_clone_create(struct if_clone *, char *, size_t, + struct ifc_data *, struct ifnet **); +static int enc_clone_destroy(struct if_clone *, struct ifnet *, uint32_t); static void enc_add_hhooks(struct enc_softc *); static void enc_remove_hhooks(struct enc_softc *); @@ -139,11 +140,14 @@ SYSCTL_INT(_net_enc_out, OID_AUTO, ipsec_bpf_mask, CTLFLAG_RW | CTLFLAG_VNET, &VNET_NAME(bpf_mask_out), 0, "IPsec output bpf mask"); -static void -enc_clone_destroy(struct ifnet *ifp) +static int +enc_clone_destroy(struct if_clone *ifc, struct ifnet *ifp, uint32_t flags) { struct enc_softc *sc; + if (ifp->if_dunit == 0 && (flags & IFC_F_FORCE) == 0) + return (EINVAL); + sc = ifp->if_softc; KASSERT(sc == V_enc_sc, ("sc != ifp->if_softc")); @@ -151,31 +155,26 @@ enc_clone_destroy(struct ifnet *ifp) if_detach(ifp); if_free(ifp); free(sc, M_DEVBUF); - V_enc_sc = NULL; + return (0); } static int -enc_clone_create(struct if_clone *ifc, int unit, caddr_t params) +enc_clone_create(struct if_clone *ifc, char *name, size_t len, + struct ifc_data *ifd, struct ifnet **ifpp) { struct ifnet *ifp; struct enc_softc *sc; - sc = malloc(sizeof(struct enc_softc), M_DEVBUF, - M_WAITOK | M_ZERO); + sc = malloc(sizeof(struct enc_softc), M_DEVBUF, M_WAITOK | M_ZERO); ifp = sc->sc_ifp = if_alloc(IFT_ENC); - if (V_enc_sc != NULL) { - if_free(ifp); - free(sc, M_DEVBUF); - return (EEXIST); - } - V_enc_sc = sc; - if_initname(ifp, encname, unit); + if_initname(ifp, encname, ifd->unit); ifp->if_mtu = ENCMTU; ifp->if_ioctl = enc_ioctl; ifp->if_output = enc_output; ifp->if_softc = sc; if_attach(ifp); bpfattach(ifp, DLT_ENC, sizeof(struct enchdr)); + *ifpp = ifp; return (0); } @@ -375,10 +374,18 @@ enc_remove_hhooks(struct enc_softc *sc) static void vnet_enc_init(const void *unused __unused) { + struct ifnet *ifp; - V_enc_sc = NULL; - V_enc_cloner = if_clone_simple(encname, enc_clone_create, - enc_clone_destroy, 1); + struct if_clone_addreq req = { + .create_f = enc_clone_create, + .destroy_f = enc_clone_destroy, + .flags = IFC_F_AUTOUNIT | IFC_F_LIMITUNIT, + .maxunit = 0, + }; + V_enc_cloner = ifc_attach_cloner(encname, &req); + struct ifc_data ifd = { .unit = 0 }; + ifc_create_ifp(encname, &ifd, &ifp); + V_enc_sc = ifp->if_softc; } VNET_SYSINIT(vnet_enc_init, SI_SUB_PSEUDO, SI_ORDER_ANY, vnet_enc_init, NULL); @@ -398,7 +405,8 @@ vnet_enc_uninit(const void *unused __unused) { KASSERT(V_enc_sc != NULL, ("%s: V_enc_sc is %p\n", __func__, V_enc_sc)); - if_clone_detach(V_enc_cloner); + ifc_detach_cloner(V_enc_cloner); + V_enc_sc = NULL; } VNET_SYSUNINIT(vnet_enc_uninit, SI_SUB_INIT_IF, SI_ORDER_ANY, vnet_enc_uninit, NULL); From nobody Sun Oct 20 15:02:04 2024 X-Original-To: dev-commits-src-branches@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 4XWhVj0KqHz5ZP8W; Sun, 20 Oct 2024 15:02:05 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWhVh6w2hz42Cx; Sun, 20 Oct 2024 15:02:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729436525; 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=9U05s6AJm/nodoHg++lxkgaGd66kvCmiOU2ulPaFRLw=; b=wQD5ZrA1H4d0qeo4Zf1w3TLIRpZu4Z2hPFMrvN2CYYpsy665mwCgq3htkCdLu8HuXOp9Hs nL1teFyNUoMdzG8Kv9Jbljz5bgQaZv32olgjGcBaxSdMT8ONE2yIvJngrluctUGgdg9hbN XGJYajoEaGIYfNNOaZEcaoqGBtmEtS0fEXQ1zSK9Usu17AwGH1MR9p98yTCX7oZ5t9/ElH OFqbtf58RvQMFbwj//ZbVEepHS8z5V0t4ANZVYAgJzZfPYcI3XdemL2vDXMxipvpx7bG1p X7MrlABHDGc80b9Uzy8WNtAf937QRTzXPqUzZE9pyts6nLh0p2ipQAPJsSVBsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729436525; 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=9U05s6AJm/nodoHg++lxkgaGd66kvCmiOU2ulPaFRLw=; b=lwLdyX0lu8yzuRFT+Z+MjS+IsGQYTrv34Qm/s56XEqq9mUtls0hreZYKSRibvV9JrPbvN6 325gaJkDWKpbIdIh/S6sQjFN7qZGhJqNIctTPVmrm6W6KYDqAay8CnHylC01znErCFsG50 1DPAjKpxSvBGUvBDiHP/XLARCmx4pjBcvq6O+NEg2uafO3ARJm4UlbWhCwGhvJlDCr7ddK f9h5aiAhwNzt8qSpVfJBzTy+OWgNgVbCsYW+zpbKJ68fdkNeGQ/35Ki8Cx+cUqAIPFSOIV eIinDKUUhv5tS5K9a0ztmbyN7RFwaTSneOvltcVzJra0Vihehu9BQxthazaz1g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729436525; a=rsa-sha256; cv=none; b=txOhCWLTKNA7y3jbwFsSQATZW1lLKFAirI38uX5NDhBRgpsq/v88fYsu/Gf3DkDISwz4i3 PdD/TQYwd3lRtRWgB0fhFXD6186lTxw29vJA8faRTrB9tvAVYSzUJmLuterMfBOe4sU2ox Y26I+NHlfnuzTpu2715S/X7kEvsJxJY75HdrcD5HPF32FBIxs/+zreHBdCzjZYoCJUWXX4 /AvX07HEBBzyrh6iwrJGA9kVDmzm3PyadnOElP8Go1ryu90N8q348UOHOkLlM3UAtGlL+Q ziFFBgGd36wamCsHYpYDHUUWr0CXUee9wvkaAOyof6grcwtpBjGChOZly4gisw== 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 4XWhVh6RL7z15fC; Sun, 20 Oct 2024 15:02:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KF246x069067; Sun, 20 Oct 2024 15:02:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KF24GW069064; Sun, 20 Oct 2024 15:02:04 GMT (envelope-from git) Date: Sun, 20 Oct 2024 15:02:04 GMT Message-Id: <202410201502.49KF24GW069064@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: edbeda6b7594 - stable/14 - netstat.1: Clarify -d argument List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: edbeda6b759459a9c2c5e8e12b18294d41959270 Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=edbeda6b759459a9c2c5e8e12b18294d41959270 commit edbeda6b759459a9c2c5e8e12b18294d41959270 Author: Bram AuthorDate: 2024-07-17 08:26:50 +0000 Commit: Zhenlei Huang CommitDate: 2024-10-20 14:59:46 +0000 netstat.1: Clarify -d argument The man page states that the -d flag can be used to show the dropped packets. But, the number of dropped input packets are always shown, independent of the -d flag. This commit clarifies that the -d flag will add the number of dropped output packets to the output. MFC after: 3 days Reviewed by: imp, Alexander Ziaee Pull Request: https://github.com/freebsd/freebsd-src/pull/1332 (cherry picked from commit 1d551845f3e864e618a10ec6427bd46d887d4280) --- usr.bin/netstat/netstat.1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.bin/netstat/netstat.1 b/usr.bin/netstat/netstat.1 index c2c34deba8e3..0a1f3342168c 100644 --- a/usr.bin/netstat/netstat.1 +++ b/usr.bin/netstat/netstat.1 @@ -27,7 +27,7 @@ .\" .\" @(#)netstat.1 8.8 (Berkeley) 4/18/94 .\" -.Dd August 14, 2023 +.Dd July 29, 2024 .Dt NETSTAT 1 .Os .Sh NAME @@ -314,7 +314,7 @@ address with which they are associated. .It Fl b Show the number of bytes in and out. .It Fl d -Show the number of dropped packets. +Show the number of dropped output packets. .It Fl h Print all counters in human readable form. .It Fl n @@ -383,7 +383,7 @@ Show IPv6 only. See .Sx GENERAL OPTIONS . .It Fl d -Show the number of dropped packets. +Show the number of dropped output packets. .It Fl M Use an alternative core. See From nobody Sun Oct 20 15:03:18 2024 X-Original-To: dev-commits-src-branches@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 4XWhX65BBcz5ZPny; Sun, 20 Oct 2024 15:03: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWhX64VqFz42qw; Sun, 20 Oct 2024 15:03:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729436598; 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=fUUizSNXHUomoiAcz0BE44W/VN1qJ6Kqn9hxBiWflUM=; b=mAICs5RnRF9u4qis1VPoikp21YDwGs/MUJLDwNlhDZqwDvOROkX+Y4Kh/8B9KhJa5k558V P4PaytrhLHN0i1yjFFq58JT1E1VRWfDiBDEZmQg0yuRFdVv1PRgd9VmpLLRV5TqBKjy6QF 20l/Ih5wP4SaC0T1LpP+5Ns7qO5TJrRSi/feUFR9IvX5c/pWdZm12LYs3Q1U1P56XjK0Yf CJMvM77IaJFqB/Q+YOztTUN4Jhub5JDt7WQhZyHKwRWzisff/mFklAzqJKsOwzWQ6pdvUb 9CNcSV8Z0sOLY+jYoZb7wfHmymfT9Iw6kaHQ/9jP2UxdQBHUXGpo42S07PMf6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729436598; 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=fUUizSNXHUomoiAcz0BE44W/VN1qJ6Kqn9hxBiWflUM=; b=KlU+iEF0wNggD2UthUnSxdRxyAcwUG06VTAfVoeYWAnVuH6N5BnGjMPswKHt0u7jx+RNrd VpxuwP6Xq1ARU66+cUR1YuGABYJ9ZF1nvSqvhAMPa9+Jqhb4UzlZ/sFTmNm/jnea5Qp74e bNWv10JcwlzvyWJX+E+7jg8q6P+3ce/R0JXMy2u1bbGy3Pci4icQ54CfnpwHK8SrmURAbT FlcGaQKNcXZQ8vjZYWkGTdAZ3j4WzEKrfUqbkxVU0G3/DCF/1ydFnmpAERPuDaqeddqzXY snjZJgpXGgfF7MRXeP7aqgmQdOYWMBg7GT2wY6ftpWAKIksoQOKsCyFxW8czpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729436598; a=rsa-sha256; cv=none; b=lSCT2lADFwH/HRDZpaDy+SMNjrQbRtGw6xv9Uk/ZzrvZCi8aaW4FPiXSPOW1ziox43VgS4 1IJI9iPTTt/456rqTO3ROo55r22ZRDC4sZUqgOMIzchaLnKcK5yn93tBFjsvEL/3q6tHoh joMjuAwFKvwvkQG7T57SZCDA7OKvxooT2i9afzRy84NpOKCXOXSEaVl/KbKq6dTPflSx1e ETLHaXSDyUOOPxOer6pkzF3hj/4ewU8Fm6VrvFlKbA69+Fc4pkvKZut7lhNx9eL+Ypbovg lCoTNmb5Wi0J1qM2fYE/tcK5QogFju0w3qwqu+ROClzMsuRVtO1G84zUBdc+ew== 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 4XWhX645syz161G; Sun, 20 Oct 2024 15:03:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KF3IPR073110; Sun, 20 Oct 2024 15:03:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KF3ICV073107; Sun, 20 Oct 2024 15:03:18 GMT (envelope-from git) Date: Sun, 20 Oct 2024 15:03:18 GMT Message-Id: <202410201503.49KF3ICV073107@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: f6711b97b228 - stable/13 - netstat.1: Clarify -d argument List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: f6711b97b22899bc9b6d5cb0ef796ab79f4e8500 Auto-Submitted: auto-generated The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=f6711b97b22899bc9b6d5cb0ef796ab79f4e8500 commit f6711b97b22899bc9b6d5cb0ef796ab79f4e8500 Author: Bram AuthorDate: 2024-07-17 08:26:50 +0000 Commit: Zhenlei Huang CommitDate: 2024-10-20 15:02:18 +0000 netstat.1: Clarify -d argument The man page states that the -d flag can be used to show the dropped packets. But, the number of dropped input packets are always shown, independent of the -d flag. This commit clarifies that the -d flag will add the number of dropped output packets to the output. MFC after: 3 days Reviewed by: imp, Alexander Ziaee Pull Request: https://github.com/freebsd/freebsd-src/pull/1332 (cherry picked from commit 1d551845f3e864e618a10ec6427bd46d887d4280) (cherry picked from commit edbeda6b759459a9c2c5e8e12b18294d41959270) --- usr.bin/netstat/netstat.1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.bin/netstat/netstat.1 b/usr.bin/netstat/netstat.1 index 97e7c854711d..6767d48a279e 100644 --- a/usr.bin/netstat/netstat.1 +++ b/usr.bin/netstat/netstat.1 @@ -27,7 +27,7 @@ .\" .\" @(#)netstat.1 8.8 (Berkeley) 4/18/94 .\" -.Dd August 14, 2023 +.Dd July 29, 2024 .Dt NETSTAT 1 .Os .Sh NAME @@ -321,7 +321,7 @@ address with which they are associated. .It Fl b Show the number of bytes in and out. .It Fl d -Show the number of dropped packets. +Show the number of dropped output packets. .It Fl h Print all counters in human readable form. .It Fl n @@ -390,7 +390,7 @@ Show IPv6 only. See .Sx GENERAL OPTIONS . .It Fl d -Show the number of dropped packets. +Show the number of dropped output packets. .It Fl M Use an alternative core. See From nobody Sun Oct 20 15:24:20 2024 X-Original-To: dev-commits-src-branches@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 4XWj0N2YZBz5ZQhM; Sun, 20 Oct 2024 15:24:20 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWj0N218xz44XC; Sun, 20 Oct 2024 15:24:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729437860; 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=KSUzkbofLV/U+nZnWIqCB7UCMkAZeLUMCsBOKdNoEa0=; b=C/gd4kYLKr61w3cYwOJ92+iv7OG6K6Dlpy3IGBMSZFauXYBRzo6x8eeZxjEGzflLhCRczj uP64EBhqOPwEEZtzN2v3Fl0Ep2VhWuNmNJa9gXHW+tcLP6yHXPdzoB/xEI4spPPQYJFARx s/pveFPiJy8F80MyBO5ICMO5SWzwsAlb3KMz+1glwug+QuuMe3oHCu6Wp2lR0cMoVVSm6G 1V9Ki69snPBSxRIdS98fVKX5+hAP/9i034p79C8xIkugf30FVFg16DsC70cISeBglSYJaU gnIhzdtmiDl9YUUbeKHFChY0WKSrEHI4X0A1K+D2pAMSGaywqq03k17ZhhGfng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729437860; 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=KSUzkbofLV/U+nZnWIqCB7UCMkAZeLUMCsBOKdNoEa0=; b=Z6FAHPCLIek22P1rFC/rJkPERzPOlZcKsR3mokn3bIhjltlWOGPT4rt26z1Ff6Ckg6irps swe06z7igHGKw0YiicEp8T5iFvf/CFW6+KNNRkUsRh7d8dQEiAFayvzMLyU6/I1GOXiF++ TX3J7CXbPs84c5KY/sjuQ6Nwhiu8copHrKxZMjVsN76tBRqL9O/NOza/ihWgwXYjK7T1RX woxkAXOKzy4iux4tjjbgcBffF+uu0t1ILXIHAnTsjM6zUbqkolVvEks0MSe5VhG3jomhAo kVG63srjV0cusbDknVihjrY7Dia1xR+KcAQvr6T1nvZUUCqCS+Np/OSr6DtO3A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729437860; a=rsa-sha256; cv=none; b=JLRbNgrRgiHO1h0mxC56XJb608AY7TJu0V5FAK8LaV5JLDaUUlfdqU6KPWMYEdpsMPMV3Q F8D3zQq/QxxQ8wObP3Tz03nulElj3nvZjhZrI3SgEGG8XI47WQZWag7f/FnZci5/dkECr3 OmJyRucGdRltFl1EDZMcqktcc1yF9yc/ZEGZ25Xhihp6bzlHQVsCTnYakrcljxptkCaKBt nV+/rLUUo8rZaZ0ADk+xpjMICavTwnEH/UNxLymKXc+tkxMPlB+dN6Se8PugD+SqectnMX HsHctHVwY/jrK6YZbdTefV9LRSDyLlDWZ3oSe8DgaVd/bBy0cpF0tMt2l8yEPg== 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 4XWj0N1LpQz16lX; Sun, 20 Oct 2024 15:24:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KFOKlY009726; Sun, 20 Oct 2024 15:24:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KFOK8G009723; Sun, 20 Oct 2024 15:24:20 GMT (envelope-from git) Date: Sun, 20 Oct 2024 15:24:20 GMT Message-Id: <202410201524.49KFOK8G009723@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 745965ffb69e - stable/14 - amdtemp: add support for AMD Family 19h Models 40h-4Fh List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 745965ffb69e37101c8c0453a681ad4ae4b6ff9f Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=745965ffb69e37101c8c0453a681ad4ae4b6ff9f commit 745965ffb69e37101c8c0453a681ad4ae4b6ff9f Author: Matthias Lanter AuthorDate: 2024-10-13 13:21:19 +0000 Commit: Mark Johnston CommitDate: 2024-10-20 15:22:41 +0000 amdtemp: add support for AMD Family 19h Models 40h-4Fh PR: 281962 MFC after: 2 weeks (cherry picked from commit ecbe99e1627627b6797153899e4d95fde3e230e2) --- sys/dev/amdtemp/amdtemp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/dev/amdtemp/amdtemp.c b/sys/dev/amdtemp/amdtemp.c index 583ff80cac69..37ec49f6975b 100644 --- a/sys/dev/amdtemp/amdtemp.c +++ b/sys/dev/amdtemp/amdtemp.c @@ -115,6 +115,7 @@ struct amdtemp_softc { #define DEVICEID_AMD_HOSTB17H_M30H_ROOT 0x1480 /* Also M70H, F19H M00H/M20H */ #define DEVICEID_AMD_HOSTB17H_M60H_ROOT 0x1630 #define DEVICEID_AMD_HOSTB19H_M10H_ROOT 0x14a4 +#define DEVICEID_AMD_HOSTB19H_M40H_ROOT 0x14b5 #define DEVICEID_AMD_HOSTB19H_M60H_ROOT 0x14d8 #define DEVICEID_AMD_HOSTB19H_M70H_ROOT 0x14e8 @@ -142,6 +143,7 @@ static const struct amdtemp_product { { VENDORID_AMD, DEVICEID_AMD_HOSTB17H_M30H_ROOT, false }, { VENDORID_AMD, DEVICEID_AMD_HOSTB17H_M60H_ROOT, false }, { VENDORID_AMD, DEVICEID_AMD_HOSTB19H_M10H_ROOT, false }, + { VENDORID_AMD, DEVICEID_AMD_HOSTB19H_M40H_ROOT, false }, { VENDORID_AMD, DEVICEID_AMD_HOSTB19H_M60H_ROOT, false }, { VENDORID_AMD, DEVICEID_AMD_HOSTB19H_M70H_ROOT, false }, }; @@ -875,6 +877,7 @@ amdtemp_probe_ccd_sensors19h(device_t dev, uint32_t model) maxreg = 12; _Static_assert((int)NUM_CCDS >= 12, ""); break; + case 0x40 ... 0x4f: /* Zen3+ Ryzen "Rembrandt" */ case 0x60 ... 0x6f: /* Zen4 Ryzen "Raphael" */ case 0x70 ... 0x7f: /* Zen4 Ryzen "Phoenix" */ sc->sc_temp_base = AMDTEMP_ZEN4_CCD_TMP_BASE; From nobody Sun Oct 20 15:24:21 2024 X-Original-To: dev-commits-src-branches@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 4XWj0P5Hdqz5ZQPn; Sun, 20 Oct 2024 15:24:21 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWj0P2r3qz44Nk; Sun, 20 Oct 2024 15:24:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729437861; 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=7Zp1/sL6PG4+Y1xmVOfsbm5fu6etNWbK2k28xBBQvVU=; b=aHFtio7Jkgkv7/JU2ufrnU4gCEQjTbIxDp7F77Elu4GgckCgbLl1YhMbC+zZJravX3ZPAD nXM0myD9ezDhNOG0yowdTI1zx1ecrBK9gf+bAZmcOEUXo4Y9iGF2Q2eM6hBL1XSrGaL11S Om/TxztzwQ131eaQyzKYPZtI6/dxrPZSeji00jRfd/yuHIcZEzcdnrvQzMFq72AaIgmouZ Mqd4IgEaOFQMY4uUAY4KrZhZv6RsCCWE7qNRtkPGSqCY0U1qqnKwL77ULeuP8A15/kpqmD 2tcHdn/K+9Wm7Qj3/ZcDqW2knCm6Q1cMTeBbJ72cE3VbsmGgZMo1a6K+owTCFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729437861; 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=7Zp1/sL6PG4+Y1xmVOfsbm5fu6etNWbK2k28xBBQvVU=; b=a+BXV52DI+aeKP0a8QkOsOFp7vU1DGA4+lciGy7d9Zn25+u8VPury8tFBtkeC49yms4rDb XyIlSloEZWnSJkWG+B1jT4Or/A2z5RDeIIaAln1KENClIPM8224OHKcJWu5ETR7cCwwWbG g0JEUUfZ7yE5CZZevOdOeLvJbhd05muDjg0bilsxEKNRHlxvkRWJv5An54gnJ1WrLzUX6x 6mxx1rKONuBb5rRX1fUEqSFSi3kYxRDZpeYFK5ElwSb29GgDU3DeoEXkcFmL6VOsmk3LN0 dRCxEGKczdSyVvZHgRElPHBK6v3MsVagxwqnj81PPPM12RKY7KgnKq9LBh2gWw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729437861; a=rsa-sha256; cv=none; b=UaP9NIKE1WlyfRavMHpLZqYweltdAIaSnPGsxFO34haL7pb3Wh2cjPf4T/luZ8CNgy2YN9 YxSIgjF9IKBKmqJb7U6XIxyadlCiAKFwoQXBfpNyMfRcUWtpM+nvbCzDUWv/5mX+swBQgO 6fHJY/To4BXeNynlq/cv75c1EajCl6PIsYOS/Jdj442MXCzkmyXi0wp42ALd2f683QTb0j AhDyHddan10q36w3SgrgER0OupEdK1muTs03dGorsMjK8lZO+pnGnWN3MM5Ho/1ixLbfOW Y9THqqtWn7Jc7RyoMZt7w6G65P9p/VAyPTh7YgajzEVoQpbBD9rvq/ds3edjaA== 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 4XWj0P2RB3z16Sq; Sun, 20 Oct 2024 15:24:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KFOLtQ009780; Sun, 20 Oct 2024 15:24:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KFOL0m009777; Sun, 20 Oct 2024 15:24:21 GMT (envelope-from git) Date: Sun, 20 Oct 2024 15:24:21 GMT Message-Id: <202410201524.49KFOL0m009777@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 6bd08ccc9b09 - stable/14 - amdsmn: add support for AMD Family 19h Models 40h-4Fh List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6bd08ccc9b09ae5da4cb2561244ab57576752cd1 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=6bd08ccc9b09ae5da4cb2561244ab57576752cd1 commit 6bd08ccc9b09ae5da4cb2561244ab57576752cd1 Author: Matthias Lanter AuthorDate: 2024-10-13 13:20:01 +0000 Commit: Mark Johnston CommitDate: 2024-10-20 15:22:46 +0000 amdsmn: add support for AMD Family 19h Models 40h-4Fh PR: 281962 MFC after: 2 weeks (cherry picked from commit a76e28d10f8516a2e796bba3fff4257b150bc259) --- sys/dev/amdsmn/amdsmn.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/dev/amdsmn/amdsmn.c b/sys/dev/amdsmn/amdsmn.c index a0a7b9db60f8..4f85c830b327 100644 --- a/sys/dev/amdsmn/amdsmn.c +++ b/sys/dev/amdsmn/amdsmn.c @@ -60,6 +60,7 @@ #define PCI_DEVICE_ID_AMD_17H_M30H_ROOT 0x1480 /* Also M70H, F19H M00H/M20H */ #define PCI_DEVICE_ID_AMD_17H_M60H_ROOT 0x1630 #define PCI_DEVICE_ID_AMD_19H_M10H_ROOT 0x14a4 +#define PCI_DEVICE_ID_AMD_19H_M40H_ROOT 0x14b5 #define PCI_DEVICE_ID_AMD_19H_M60H_ROOT 0x14d8 #define PCI_DEVICE_ID_AMD_19H_M70H_ROOT 0x14e8 @@ -111,6 +112,12 @@ static const struct pciid { .amdsmn_addr_reg = F17H_SMN_ADDR_REG, .amdsmn_data_reg = F17H_SMN_DATA_REG, }, + { + .amdsmn_vendorid = CPU_VENDOR_AMD, + .amdsmn_deviceid = PCI_DEVICE_ID_AMD_19H_M40H_ROOT, + .amdsmn_addr_reg = F17H_SMN_ADDR_REG, + .amdsmn_data_reg = F17H_SMN_DATA_REG, + }, { .amdsmn_vendorid = CPU_VENDOR_AMD, .amdsmn_deviceid = PCI_DEVICE_ID_AMD_19H_M60H_ROOT, From nobody Sun Oct 20 19:33:15 2024 X-Original-To: dev-commits-src-branches@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 4XWpWb4V9dz5ZhG9; Sun, 20 Oct 2024 19:33:15 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWpWb40lxz4b9M; Sun, 20 Oct 2024 19:33:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729452795; 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=tfUCt6NRNDsGcDz53a1hkKWCbwRhyvVMkCyI8SX0y18=; b=VkCN3OsDzqUDYy3riBxlpTgPrc8BHnfq4uupuMQkXBX2A2149t2YNZgks2NkWD7fAgiD8e pxiGgbpF0uDb/Rcip2uMURkIubYk6SF1LnGJWVi733H/06s4qGfMQOpg3+Kn+n7OtW+pZ+ gqQkYAjzE4Uyf3tjyNccvVJRrfOPAnjYY8sELuCIZnWNnLbtSDZMKQhDrQCwvb3vTVp+Po xtahrHXICP3vmQbCTxbVkON0bR1Okvvpx8P22oxkDapqQKBT3WCzvmq6FpN8WJt7GW2/sV rHLyMNk+NYlVBz0e0HrtOQ/nisEilWUILCrVbuCELGIIxA7JVYPzL9kmy/FYsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729452795; 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=tfUCt6NRNDsGcDz53a1hkKWCbwRhyvVMkCyI8SX0y18=; b=wuHgItlL36kRsunRM6kQ/RjJh9jG/VtJhzeSyGPUS0hnk4xDXjuRE4I6Ky15VakGyycIeb ZbylIfp041mPUG54O/H+krF5HHh41JhB7duusP3q0PDruwSi9MgFC8M3+cIoNYgM7EUJ9b e6jItQz3ROpOBQSqv0PPPOMihGrOZD1EM4p69+DtoFvtyrwCFteUaeBgZ3aAJ9K6SZ5DPq TT49A/dd8f4+VwxhrdbT7BfEbES9ZU702BiTNHJRFTCP5naXA8d8O+xio3Jwg+1NPndvWM HprCqgfoED7y37/Pzdw5BIuPQaFygPNp/IJB44j7G0kuI4MwkraPPQ9ymygTrw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729452795; a=rsa-sha256; cv=none; b=aFQOclcfl6RU1jEjR1E2OOHGh6JpXwSpAw9+muv2U8GbkKnFX6rzOUVGKVbEPAs03R09Nf 4zaxhIOF1s+gKTrD564kpFrqh1mEjsXncNOFp6TiK/kC9oGC7skndmz3JuAFGsfBcf67h4 df019BUG2RBICup1KYE5TBFaZznXFEk5e4bSmGaYK61DNFObVCBRTZGDMGwx/lmCsmNVJw Gk3qVmgMzbi26KST3IhHwXFQvh61TMezPIcNpbs3nM4w1FIbLSUz5TKIPHnHh1YyjgnlJ1 06r25KqOvDDICg7wqYv5Hd0/e4e9h0J7nYkT/3UZk5SToUabv/leN/ERjQXFhg== 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 4XWpWb3ZJkz1DvS; Sun, 20 Oct 2024 19:33:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KJXFEI073122; Sun, 20 Oct 2024 19:33:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KJXFWH073119; Sun, 20 Oct 2024 19:33:15 GMT (envelope-from git) Date: Sun, 20 Oct 2024 19:33:15 GMT Message-Id: <202410201933.49KJXFWH073119@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 2e4b1bef561d - stable/14 - libicp: unbreak for armv6 after recent OpenZFS import List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2e4b1bef561d6c5b0ffa64ba2e789cbd60b2fa4e Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=2e4b1bef561d6c5b0ffa64ba2e789cbd60b2fa4e commit 2e4b1bef561d6c5b0ffa64ba2e789cbd60b2fa4e Author: Dimitry Andric AuthorDate: 2023-12-08 23:09:36 +0000 Commit: Mark Johnston CommitDate: 2024-10-20 19:16:53 +0000 libicp: unbreak for armv6 after recent OpenZFS import The following upstream commit: 727497ccdfcc module/icp/asm-arm/sha2: enable non-SIMD asm kernels on armv5/6 does indeed enable sha2 asm for earlier arm CPUs, but since libicp's Makefile was not updated, this leads to: ld: error: undefined reference due to --no-allow-shlib-undefined: zfs_sha256_block_armv7 Fix it by compiling sha256-armv7.S and sha512-armv7.S for armv6 too. Fixes: 3494f7c019fc (cherry picked from commit fb17dfa0c83cc213400fe7e1ed7a39253a4fcefa) --- cddl/lib/libicp/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cddl/lib/libicp/Makefile b/cddl/lib/libicp/Makefile index 2d9bb3c67cb4..085818f2371a 100644 --- a/cddl/lib/libicp/Makefile +++ b/cddl/lib/libicp/Makefile @@ -21,7 +21,7 @@ ASM_SOURCES_AS = \ asm-x86_64/blake3/blake3_sse41.S CFLAGS+= -D__amd64 -D_SYS_STACK_H -UHAVE_AES -.elif ${MACHINE_ARCH} == "armv7" +.elif ${MACHINE_ARCH} == "armv6" || ${MACHINE_ARCH} == "armv7" ASM_SOURCES_C = ASM_SOURCES_AS = \ asm-arm/sha2/sha256-armv7.S \ From nobody Sun Oct 20 19:33:16 2024 X-Original-To: dev-commits-src-branches@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 4XWpWc5LGjz5ZhGF; Sun, 20 Oct 2024 19:33:16 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWpWc4c0lz4Zm4; Sun, 20 Oct 2024 19:33:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729452796; 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=nkJzM8OPp7vr/V2RvbWT2kTQJyNnGRx5tz8yFpDQyyY=; b=iMrichC4Ny/jt8oXxCbg+OMOcQU9pv787rluvzZS+D88TdbC5dXWm8K9YTaTnHo4RyRmkx Ml1aHyVmeCX22uFOxVo8C8SFKtNKgEfZMHfcHA1Pv0TPzk5omLqp7G434EeWKDgsKXIxb+ CI/eDO64cGTv3fm8XGdDDRPgPxlcI6anFEf3jk+9BqX50goW9fxqmTUlq1tbF3qO/fwe8M 1EWWPyzt40/54yHVXJtLlmzlsZSsxvYapdnafblKTm6s5nNDF9jyxR9l+e/8oJ9GE9vKmE XQXWAmlLri4SLoqh7ZeDXh6+FPV+qtZaQFu/Vyzp7/ruuhLShLgcZIUIqub2Gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729452796; 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=nkJzM8OPp7vr/V2RvbWT2kTQJyNnGRx5tz8yFpDQyyY=; b=aLj9xnzQ7hTHXwuxGfd2vmzZUO1a/5xhudNhqF3+lb2HIs2bRFuu+ZY5BhqrUN+sBYhTHf htHyweSYMCbvmUa62h44hM7z3uZD8r2FR2CbxQiUiYg2Cx38AnOnD0H4Rv9w6wSEwUvPEu tJBMwxtOdezceXjfkkCT3wi/WKoTFUilLk3rYQw9jNRejPA9KQrf7rSQZJwpf+5uRlOZNG RBGjgbdx5R52RES19wLe1Je+ktWqjc5KPo/OlXd0nuWKjgmuUBi4tY1an80ZNTf6YY4Jv6 uh+fsM3YctWrJUe42sd7P2U/rCOZl6YUnNLMX8gnadKY38TCG6v2fRhfOlXMSQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729452796; a=rsa-sha256; cv=none; b=pBo2vemkaueyEai0QCK/cODVq17OMriNYJUbE8t874nvwqkW1uzYyk0GjEeJM7XtV+cgmJ BuZwjp0XsT4S312h2Ym4OQ5Gk77Z+ZUqK6w3ufNAAK6qPZZMAqUq9yh7TMxcAZoYR6qv3c AKFZQEtY5Qgo/n/W/Zd5zZ7jGR+4fjVHH0ZBg5mNB/aPFIafpYRdY4X3snyZDDcE7U5375 Ur0Gpllq62jxE8vI/mAz0K8uaiG/LSpYvlOZ9AXoZqkJ/AUsQkXOgy6GyRC2aMUzTDEKTs YDppk5sl6C/dXDObvLVzvZFsBYZuJRc8ONSGHlWgHrmlHdPHHqGU78+AXRqwYA== 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 4XWpWc4CnTz1CyL; Sun, 20 Oct 2024 19:33:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KJXG8N073178; Sun, 20 Oct 2024 19:33:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KJXGJu073175; Sun, 20 Oct 2024 19:33:16 GMT (envelope-from git) Date: Sun, 20 Oct 2024 19:33:16 GMT Message-Id: <202410201933.49KJXGJu073175@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 3176b94a480b - stable/14 - libicp_rescue: unbreak for armv6 after recent OpenZFS import List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3176b94a480bd51eab2fc20a7051ff6b515f5d74 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3176b94a480bd51eab2fc20a7051ff6b515f5d74 commit 3176b94a480bd51eab2fc20a7051ff6b515f5d74 Author: Dimitry Andric AuthorDate: 2023-12-09 11:51:50 +0000 Commit: Mark Johnston CommitDate: 2024-10-20 19:17:38 +0000 libicp_rescue: unbreak for armv6 after recent OpenZFS import Similar to fb17dfa0c83c, fix libicp_rescue to include asm versions of sha2 on armv6, to unbreak the build of rescue. Fixes: 3494f7c019fc (cherry picked from commit 1a4a9a50574d9b4b4db90a85bc253d340c93a8a0) --- cddl/lib/libicp_rescue/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cddl/lib/libicp_rescue/Makefile b/cddl/lib/libicp_rescue/Makefile index e129a2f3e0f9..cb2c868e2bc1 100644 --- a/cddl/lib/libicp_rescue/Makefile +++ b/cddl/lib/libicp_rescue/Makefile @@ -20,7 +20,7 @@ ASM_SOURCES_AS = \ asm-x86_64/blake3/blake3_sse41.S CFLAGS+= -D__amd64 -D_SYS_STACK_H -.elif ${MACHINE_ARCH} == "armv7" +.elif ${MACHINE_ARCH} == "armv6" || ${MACHINE_ARCH} == "armv7" ASM_SOURCES_C = ASM_SOURCES_AS = \ asm-arm/sha2/sha256-armv7.S \ From nobody Sun Oct 20 19:33:17 2024 X-Original-To: dev-commits-src-branches@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 4XWpWd6x1bz5ZhLJ; Sun, 20 Oct 2024 19:33:17 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XWpWd691bz4b4w; Sun, 20 Oct 2024 19:33:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729452797; 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=tcr1DDvXmCY0DewunpfZxAbhfduafA3a0oY+Zn4a6J4=; b=cVcjtYf5n30Hfq9bitbX4hIg9ykzCYL+513WaROK1zWpdRR0KUqGmtaOjtZNZhyRoBshDF UhPD0cZXmEi2vwm6N5rB7OUPeR0QRhA02UGMt7K4ax7EurHUI+FTdIGKsKQgh5ulezi2/9 uFn0A+ecl2tJiKGzj3QLlZJjHSprFEdG41LPwX8zW3DixKRyDUNZUDO4bLSxZzDqwAqQqL uLnaGs0YuKqpqDQ4+nHYAqiYKuIVv7begaiJv7K8wUY3sk7+SpYktnAfwpBOeEto3o+m+4 JD40PxguFmOlPU7w3z2KfFSojp2tOeXs7zcZQ3sBieHae3k/HWOcvrO3Lg6wJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1729452797; 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=tcr1DDvXmCY0DewunpfZxAbhfduafA3a0oY+Zn4a6J4=; b=g8P/D1XhQgxZvtscIm4vicRrPZ7qkKPNhU1LMvFxmBgOzURamOm5bRPH05NM9hM0Un4ycB s9ybj/r5Qw0pqsdQJ54eWvEJ0n0l7xS4bu9ZMsSfmqtgnAwMtarEccFmEYrg18GYIzjapQ uLWlVQPgYCQc8irsvUJKhuETnxeaayJw46gpiP+BIwDA1T8NC7CWyzreT29VbKQhgQQNDP eqPlhGK2u3pJy9AsT11i05FRt+CbpCFfGLoX+oeqmdLQJknnXy8D70eGa6naNuumyptGQe MS7daHcQjdbwuLI5CjS54b1a6DZvMa9B5jQvZRWeLA+3ByZ7jXMsoWr+yM3M7w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1729452797; a=rsa-sha256; cv=none; b=AeXOHE/Te4tcfz37aBaTvyRgM/J5RsIfYTJv7AZFIoB7+bowHirvQJvfk2/NvrSobRZXeU btqOVWksIMIWqTYWIdswEJxsKBMRGfpHRlfsOiIQVrptygBlxHvir/5O8R0FpU+W72LBWL HWKEATvdn1xExdhlzbI5m9XuMk5Yl9h9/euakPHCGJ1fAnS4WofXVZedzuM5nkGhP/SeaA cY3I3DceuvD8PesZ+rkdTjbnzKGG098G5Q5CSk55cA/n9jMQvlxDFqRyRqMu8VIjvsybvw ERvcnfWxRQtEG7d9JVM7syjM1vbIVUhKh8qD6csBJAnzYkjsdl64QGYhy3RIaQ== 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 4XWpWd5Y6zz1DdH; Sun, 20 Oct 2024 19:33:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49KJXHT5073232; Sun, 20 Oct 2024 19:33:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49KJXHun073229; Sun, 20 Oct 2024 19:33:17 GMT (envelope-from git) Date: Sun, 20 Oct 2024 19:33:17 GMT Message-Id: <202410201933.49KJXHun073229@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 052fe26f9c51 - stable/14 - libicp(_rescue)?: use asm versions for all 32-bit arm flavors List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 052fe26f9c512e1fb0cba3d82611ee2af568e523 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=052fe26f9c512e1fb0cba3d82611ee2af568e523 commit 052fe26f9c512e1fb0cba3d82611ee2af568e523 Author: Dimitry Andric AuthorDate: 2023-12-13 18:59:31 +0000 Commit: Mark Johnston CommitDate: 2024-10-20 19:17:43 +0000 libicp(_rescue)?: use asm versions for all 32-bit arm flavors OpenZFS upstream refactored the asm versions of sha2 to be usable on all 32-bit arm flavors, so it is not necessary to limit this to armv6 and armv7. Suggested by: jhb (cherry picked from commit bc6051a060f7f39540e284f2934e61411590dbfd) --- cddl/lib/libicp/Makefile | 2 +- cddl/lib/libicp_rescue/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cddl/lib/libicp/Makefile b/cddl/lib/libicp/Makefile index 085818f2371a..1dbe4ace88ed 100644 --- a/cddl/lib/libicp/Makefile +++ b/cddl/lib/libicp/Makefile @@ -21,7 +21,7 @@ ASM_SOURCES_AS = \ asm-x86_64/blake3/blake3_sse41.S CFLAGS+= -D__amd64 -D_SYS_STACK_H -UHAVE_AES -.elif ${MACHINE_ARCH} == "armv6" || ${MACHINE_ARCH} == "armv7" +.elif ${MACHINE_CPUARCH} == "arm" ASM_SOURCES_C = ASM_SOURCES_AS = \ asm-arm/sha2/sha256-armv7.S \ diff --git a/cddl/lib/libicp_rescue/Makefile b/cddl/lib/libicp_rescue/Makefile index cb2c868e2bc1..196f96b1fcf8 100644 --- a/cddl/lib/libicp_rescue/Makefile +++ b/cddl/lib/libicp_rescue/Makefile @@ -20,7 +20,7 @@ ASM_SOURCES_AS = \ asm-x86_64/blake3/blake3_sse41.S CFLAGS+= -D__amd64 -D_SYS_STACK_H -.elif ${MACHINE_ARCH} == "armv6" || ${MACHINE_ARCH} == "armv7" +.elif ${MACHINE_CPUARCH} == "arm" ASM_SOURCES_C = ASM_SOURCES_AS = \ asm-arm/sha2/sha256-armv7.S \