From nobody Sun Sep 10 09:01:32 2023 X-Original-To: dev-commits-src-main@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 4Rk3k5029Vz4t2T4; Sun, 10 Sep 2023 09:01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rk3k46glHz4VLH; Sun, 10 Sep 2023 09:01:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694336492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L0wa1tHtnMtG0i+iF021w9yq5c9FSUJLyKll7cAMZH8=; b=xbDl8xQ2CY3+M+TP8Y63hzWX78cNqgGx81TqcC4vVFgmUU6zZLTgMrsl/sqa6jQai7ZoEI uWcgmKvklnQ5DCpisF9lRDDxzGcZJFRqNaOVmkc0dL4/oYf/YsSa5hGZOyqhGkD/WZ1gY6 mZY88cCMO2hBcQQpPdZ2VXoCiveN+UYqstqQpmummDGfeIrN85KtUVqmKmgj8PD40HW8iS uZwCAE7uV+zcXzOcYcKfgruuBg4r8YszUf2QzRtbRmjN3+op7M5XDWATj8uoaxUUE3hUur 7EV/t3VorkZsjPwTg+k9AIcPzL9JOpGSlA1BC80XzEvRny5SEF3SOh0ugMfCLg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694336492; a=rsa-sha256; cv=none; b=s71KvKLbwKhNMQ7CMipo9zp3Fof8Do1FbY3gxyEAoAWOr7JooiOj3VjY1x/ZK6Q49XoGN+ NSAlURJl2RukhkstJunFGuMXo/WS9OY957ouTc9wJycyxnaAAoSJNfEAk3gjU36gqmcV4o SZN45Q6cFXYbiDWrtqpyDJUMCZLFt5GzZ8aoKNANAmEpG7Hu+Ahg6t8oTL+Hj9OLkUhETd pRpIg6hPbNf+iX730q4vr0jNBETuCzRbCYWY4iZjAYvdZkkkN+vn0Q4bT7t+WxcMlrD1R3 PM5e8WWud+YSwLwYhQylkwqs4OcXuDETWvK5C9Xux0iT7EOLx20kxUmSF0LWmQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694336492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L0wa1tHtnMtG0i+iF021w9yq5c9FSUJLyKll7cAMZH8=; b=rSj112Ak4LXTnLeHS27+6s1/9n8uK/i8lV5UZTdtJpLsWNWZYy1cV1W+yygltoztXUZuSc lt73mPfzf+bEIEpATyQVe6ppR6FCm2qFL4WaHZMobbZB0+Mx3H+y+OYnBHMQLSkAyP8yo9 RAaQAqhWxkAg/GLJ+ntPEwQwwAPKDvyYXyJO83Joxt+8S8a05ylIZTCzYuZtTSrkBOOJg0 oi4y+HIiRtFCp3WrLko6jhn3wcFhobko+sBfJAa8T0kWyFtLIqIY31D/fYds+akMegZMcq u36A8xRlWHO9w6nBOuVCD9IXJTJp7rui6q33eWWewoW9dDiD2dLx4XjmYr85KA== 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 4Rk3k45Zt4z11Rk; Sun, 10 Sep 2023 09:01:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38A91W1q004280; Sun, 10 Sep 2023 09:01:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38A91WIt004277; Sun, 10 Sep 2023 09:01:32 GMT (envelope-from git) Date: Sun, 10 Sep 2023 09:01:32 GMT Message-Id: <202309100901.38A91WIt004277@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jens Schweikhardt <schweikh@FreeBSD.org> Subject: git: 4fc08109fe32 - main - Correct the grammo in "will underlined". List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: schweikh X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4fc08109fe32264485a54a7ea45f4ec09a8fcf86 Auto-Submitted: auto-generated The branch main has been updated by schweikh: URL: https://cgit.FreeBSD.org/src/commit/?id=4fc08109fe32264485a54a7ea45f4ec09a8fcf86 commit 4fc08109fe32264485a54a7ea45f4ec09a8fcf86 Author: Jens Schweikhardt <schweikh@FreeBSD.org> AuthorDate: 2023-09-10 09:00:21 +0000 Commit: Jens Schweikhardt <schweikh@FreeBSD.org> CommitDate: 2023-09-10 09:00:21 +0000 Correct the grammo in "will underlined". --- bin/ls/ls.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/ls/ls.1 b/bin/ls/ls.1 index c26e7767f88f..9c62f2cc1e38 100644 --- a/bin/ls/ls.1 +++ b/bin/ls/ls.1 @@ -743,7 +743,7 @@ where is the foreground color and .Ar b is the background color. -When the background color is capitalized, the text will underlined. +When the background color is capitalized, the text is underlined. .Pp The color designators are as follows: .Pp From nobody Sun Sep 10 12:59:16 2023 X-Original-To: dev-commits-src-main@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 4Rk90P0c2pz4s6RK; Sun, 10 Sep 2023 12:59: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rk90N6kWjz3FHh; Sun, 10 Sep 2023 12:59:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694350757; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=giqbapB2RqNFddha9MhFYfZNPQJ4zjCpYFO1+Mjdlgk=; b=WCTibTBRDcW7Y3FPzqcLAU0KQ4leV89m2bV9d3cbmweuYT5YbnlN2W8O6ONP2JR9czsntL 3QwFKUpe98Bnw7Gp0MAUP5u0IKg1ibtJGLSYT6ClyfHmWpHdXYuLszKOK3eLAIPwXT0jpE gN6MnUI+niL2yMgS4G95W212wbVMM/tKXi0NXEXKYG/0RL2SfWvfeuANslIYEe9akTbn51 Io6bVmbn/2D9N3qBQacJwYrmNFWrXbI4rGfyDPpUX3tAW5XSyOIy7kVW3DQg5UlrFYCpwN R/ejA++shp9iQuQ9c0o3veo3Mu2B2gXlN/XSJKCznEWwDHWHGSumzhLQjqJWvQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694350757; a=rsa-sha256; cv=none; b=DEAV91y1Gq+6313HyLblwWgn17fKKnLVCyHViQb7WKNvE+J3aNgu9Q5c01MhBr9qEF1ZHH Ue77/1SMCRzac2dqtC1zlh53GB8HfxoPVhHzPRbwI8BP07V5LHGDSKx3WxUcXHKoziF+cU PqdtA4YbAjEb4H+ELbA06DL3Clza3GFwUSVZMR6Sy8ST4uwFSXGlyX0CsR1Mftvb3dmRyz 0kEgF10Wqv1eZ5N4xb8BbrLScFSau99UF+yhqsSSk62Uwd8MoZ3UAfaGaWaGbXLrf4xFlK mvZ2bjoQq6Y32Y47Z411hWntvgRs/laUe4t9S1PW+rlkjRvpAprs2PVytIkWNQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694350757; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=giqbapB2RqNFddha9MhFYfZNPQJ4zjCpYFO1+Mjdlgk=; b=ZqI4Qlpxws87hp91iKTBOaQk2H+TVMF9hNC1b2b1/8tZ1Qyhle6Vk/3Vm7VsyLtj1y1uYK Hfjcn6sLtYCvNDUAtoDYNz2FKio/OQ/GTbofCTysWXzaNAYe2JWJJho/vhOOGnwZJ+A+CJ zYSoeeXba8WqSlV3l9S5nTgN27M5k9BDCNZJgwl/eLSbfJiBp3utKrTap3s9oXvx/ahcT3 yOUD86D3kNM43NtwfTQPz381Wf0C0iaUxC/vSD19rSkjG2LYRpghxG40x7OXrJk31Q2/iQ EC+b/rjjjE1J7UNWUR+/NqWz9eplvDnoEhH61nDN9V1ii9G8QJbC1Lhs1zaqsw== 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 4Rk90N5SgCz16bZ; Sun, 10 Sep 2023 12:59:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38ACxGLD090167; Sun, 10 Sep 2023 12:59:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ACxGYQ090164; Sun, 10 Sep 2023 12:59:16 GMT (envelope-from git) Date: Sun, 10 Sep 2023 12:59:16 GMT Message-Id: <202309101259.38ACxGYQ090164@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Robert Clausecker <fuz@FreeBSD.org> Subject: git: b2618b651b28 - main - lib/libc/amd64/string/memchr.S: fix behaviour with overly long buffers List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b2618b651b28fd29e62a4e285f5be09ea30a85d4 Auto-Submitted: auto-generated The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/src/commit/?id=b2618b651b28fd29e62a4e285f5be09ea30a85d4 commit b2618b651b28fd29e62a4e285f5be09ea30a85d4 Author: Robert Clausecker <fuz@FreeBSD.org> AuthorDate: 2023-09-10 04:11:07 +0000 Commit: Robert Clausecker <fuz@FreeBSD.org> CommitDate: 2023-09-10 12:52:59 +0000 lib/libc/amd64/string/memchr.S: fix behaviour with overly long buffers When memchr(buf, c, len) is called with a phony len (say, SIZE_MAX), buf + len overflows and we have buf + len < buf. This confuses the implementation and makes it return incorrect results. Neverthless we must support this case as memchr() is guaranteed to work even with phony buffer lengths, as long as a match is found before the buffer actually ends. Sponsored by: The FreeBSD Foundation Reported by: yuri, des Tested by: des Approved by: mjg (blanket, via IRC) MFC after: 1 week MFC to: stable/14 PR: 273652 --- lib/libc/amd64/string/memchr.S | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/libc/amd64/string/memchr.S b/lib/libc/amd64/string/memchr.S index e10bd6c22f90..cfab9b1302de 100644 --- a/lib/libc/amd64/string/memchr.S +++ b/lib/libc/amd64/string/memchr.S @@ -44,7 +44,9 @@ ARCHENTRY(__memchr, scalar) je .Lnomatch lea (, %rdi, 8), %ecx - add %rdi, %rdx # pointer to end of buffer + mov $-1, %rax + add %rdi, %rdx # pointer to end of buffer or to end of + cmovc %rax, %rdx # address space (whichever comes first) and $~7, %rdi # align to 8 bytes mov (%rdi), %rax # load first word movzbl %sil, %esi # clear stray high bits @@ -118,14 +120,15 @@ ARCHENTRY(__memchr, baseline) movd %esi, %xmm2 mov %edi, %ecx - add %rdi, %rdx # pointer to end of buffer + mov $-1, %r9 + add %rdi, %rdx # pointer to end of buffer or to end of + cmovc %r9, %rdx # address space (whichever comes first) and $~0x1f, %rdi # align to 32 bytes movdqa (%rdi), %xmm0 # load first 32 bytes movdqa 16(%rdi), %xmm1 punpcklbw %xmm2, %xmm2 # c -> cc - mov $-1, %r9d shl %cl, %r9d # mask with zeroes before the string punpcklwd %xmm2, %xmm2 # cc -> cccc From nobody Sun Sep 10 13:13:11 2023 X-Original-To: dev-commits-src-main@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 4Rk9JR2lR4z4sH3j; Sun, 10 Sep 2023 13:13:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rk9JR2KPRz3LyV; Sun, 10 Sep 2023 13:13:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694351591; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ViEIBRVEpcr8w3hHTWazjko1BdG+277i91m6vura2Do=; b=RoEU4RVMODIChAHbujYCyQi0S0VlDR4lZ0ZG6rVzLeVtlUPbJYXbAlJIcYlJDYQu4hTI9G CZLzouKixgC+ibQo79cw7CX0vglYfSzsJjKHxM9wZ4Er88p28cJa691zVWM9JP1jgmY7F8 bb62S2h+fi0hgXccvkdSemtaqkIkIdX5Tp+b13d+pG+4Z5TM9dPNKy3G2RPpkJz9EN3LHI IPSWzRUp/7HUmRRFs0yD61kHE4pU8yB4aqnPgdKjBSba7FLZVcmMaXwNec03UMAHxXjaib 59VMynwkN3ZvmrS7Cs6rbswl02iIJ1c1T1NQLcx/M1RvQPf55wEbMHN8yCMHvQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694351591; a=rsa-sha256; cv=none; b=EZvyU3UVejI+R/JKf6vNTL/Xpg2h9dJWr54Q3NtmYGsswYpTJJs/qxho0S6eB5iF5obCL8 Vkfwc3xfhC2wtp2wCax1M+WthfNMjOn/3B5aZH7LKbadb1fOYbnJt152BE2V3hjq7oU6LN Z2FYOQL3iCiCD05pZBb5oK3nZbo/rCUNSUOK3lHz0n/v15tgAcVOaka25m/xhtIfC99BYd ekkasQsM+aOaOzaSUwYH+0TYAEqp519q+v6dmTjG4wjdmrkKkBuW/jpu+UF3RioIFEi1KY lvkjEZEjxrpj5xGfuFXKFTM+Ao4armDaweqgwmU02DhYehZ7vRDmiYxF5R6Cbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694351591; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ViEIBRVEpcr8w3hHTWazjko1BdG+277i91m6vura2Do=; b=rs6KEfEmeX7o39KKXH0YZj3rFmREAlFIvl/i789vLuUnuIPqTKXOeul00AzOHE3/IpxrVb 6y7auzJzh8ya3IDQjlQwOKaPCZzGG3zZh3Y41YIkMCyCLxjCHogA0DTBDJGo9o/jJ1KJZE /IzgFlNxc0HuuvAmkwBWFH1ePJdCOdCkeJ0xev7lHRxmRPY1F3O9NpnlTrbyXg7uECx3qD /OMSw/iaQrlCnvxTXMjjZj+luFpXGykL8/ttHdKDLQucyh7gWh0/i1Lz+NBYN4Unb9xO09 plgh6K6Sl8HKDsamznt6gUpbl1EM8xZ3j3ZjDF3lxpp93bLuM+u1Do8G5nCs8Q== 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 4Rk9JR1Pmnz16x8; Sun, 10 Sep 2023 13:13:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38ADDBXx023511; Sun, 10 Sep 2023 13:13:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ADDB0D023508; Sun, 10 Sep 2023 13:13:11 GMT (envelope-from git) Date: Sun, 10 Sep 2023 13:13:11 GMT Message-Id: <202309101313.38ADDB0D023508@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost <kp@FreeBSD.org> Subject: git: f415a5c1bd56 - main - pfsync: fix state leak List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f415a5c1bd56933367e42312731e4ec553e256ed Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=f415a5c1bd56933367e42312731e4ec553e256ed commit f415a5c1bd56933367e42312731e4ec553e256ed Author: Kristof Provost <kp@FreeBSD.org> AuthorDate: 2023-09-08 09:21:12 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2023-09-10 13:12:51 +0000 pfsync: fix state leak If we receive a state with a route-to interface name set and we can't find the interface we do not insert the state. However, in that case we must still clean up the state (and state keys). Do so, so we do not leak states. Reviewed by: Kajetan Staszkiewicz <vegeta@tuxpowered.net> MFC after: 3 days Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D41779 --- sys/netpfil/pf/if_pfsync.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c index db448c9bbc48..e29c00fcb879 100644 --- a/sys/netpfil/pf/if_pfsync.c +++ b/sys/netpfil/pf/if_pfsync.c @@ -685,8 +685,10 @@ pfsync_state_import(union pfsync_state_union *sp, int flags, int msg_version) printf("%s: unknown route interface: %s\n", __func__, sp->pfs_1400.rt_ifname); if (flags & PFSYNC_SI_IOCTL) - return (EINVAL); - return (0); /* skip this state */ + error = EINVAL; + else + error = 0; + goto cleanup_keys; } break; default: @@ -734,6 +736,7 @@ pfsync_state_import(union pfsync_state_union *sp, int flags, int msg_version) cleanup: error = ENOMEM; +cleanup_keys: if (skw == sks) sks = NULL; uma_zfree(V_pf_state_key_z, skw); From nobody Sun Sep 10 14:30:22 2023 X-Original-To: dev-commits-src-main@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 4RkC1W2hqwz4t6FJ; Sun, 10 Sep 2023 14:30: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkC1W1g50z4KLH; Sun, 10 Sep 2023 14:30:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694356223; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=B641uCPP61dWJ6VzZIsO4LQLBICbrAV2M5JOv3FGaq0=; b=oH5JnXOhyEcz9NGL8e99mq07ESHCYRHNY1dG8wv6vRJD6c8xT3bBy60gWv8uj1Ed7KzYpv nOIVJdi67GAuppJ34IqL4/KK+eZJMnTHn5Nco+J99r3pki6nTq+SCpZ7K3lS5RD60m7D8t 0YvM2pmAH+nz99nGzXCuJV0V8Elypi2vcplWlSKXrY2FMUD+1Wj++xHEGA3tfmRydTk5U5 icn0Y5hiRUMJt+SPCoIeV1GMpee3DIKiqJ0hyfbeqa2lsbCqv5bJ9ob41lE4b9Bk2UJesw Gu8+W3+0HuxvUTv+SndSEbvP4tqSaICtMxPFK+t2nwkUWJRSx0LuoCgFIRD3gw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694356223; a=rsa-sha256; cv=none; b=IqevWDy2vPNTRdKfatOCwRYXbmJvN4YVFupE1aPuQbKkYDRLr6K5yvpeDqHEvW1VBPv1Wp vInlC9jNBWXpSeprKqZkAaNESxC/8/GYlbZKpyDR5XHaCX5nWmrcIaE0zJETt4ta8CDJC6 aTIkbxOGrE1lRndodlshu60VBYr05iAQxua3O7bIYkbYgXMg727XutDrZFVE6NAjieSCqZ ED34L19pLZ48ZzajN75Fnjz2z4QP6QS+z4YMqJ3m4ecECUjnW2ymMu8piRmWdHvnciVHyY b2PQniwZ9kltCy/iQkLNsVo8ZQ+R0ZzPxHY4CPf7CbPUKULfo4c48MoIvyDqMQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694356223; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=B641uCPP61dWJ6VzZIsO4LQLBICbrAV2M5JOv3FGaq0=; b=nlPMUQg41XUxJrvXVHSDglbTZAkGQUHifiWDN/gzSvDFCvAETCGWriGHkSOGcN5BCa9jM9 B6uQlzlEA64XM4vhVpjhnTnfwS7XZeKGwer3Iq/se7OiSSWc91e557yJc4+0OgWcy7xjJJ Vh9iejtckJlhRtrCoDvUvKNnny95cCQUvOWkS464MKB6dTF9bzC+6tUpJnRfPVjLV1jG3q EgI3WvqowIRnZCw6Du7EDEmC0iPOmE5FBMvYfvxHlg51WS91Mzn30YJKz31WoXy0yEzE4A W1q1gg8/1oozAR9ygWxpXfGPK26C62YZghUe/tcF2lVtebIynnFW1qIX3gbVUg== 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 4RkC1W0TBZz19K1; Sun, 10 Sep 2023 14:30:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38AEUMBa049968; Sun, 10 Sep 2023 14:30:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38AEUMCg049965; Sun, 10 Sep 2023 14:30:22 GMT (envelope-from git) Date: Sun, 10 Sep 2023 14:30:22 GMT Message-Id: <202309101430.38AEUMCg049965@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Navdeep Parhar <np@FreeBSD.org> Subject: git: e203cb393fe0 - main - cxgbe(4): Fix tracing with netlink enabled kernels. List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: np X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e203cb393fe0b963dd585d0576dcc6a47a28c386 Auto-Submitted: auto-generated The branch main has been updated by np: URL: https://cgit.FreeBSD.org/src/commit/?id=e203cb393fe0b963dd585d0576dcc6a47a28c386 commit e203cb393fe0b963dd585d0576dcc6a47a28c386 Author: Navdeep Parhar <np@FreeBSD.org> AuthorDate: 2023-09-09 19:39:15 +0000 Commit: Navdeep Parhar <np@FreeBSD.org> CommitDate: 2023-09-10 14:06:32 +0000 cxgbe(4): Fix tracing with netlink enabled kernels. 1. The tracing ifnet's name must match the nexus name. One way to do this is to not use a unit number. 2. Do not hold the tracer lock around ether_ifattach or ether_ifdetach. netlink calls back into the driver (see stack below) and that leads to illegal lock recursion. tracer_ioctl if_ioctl get_operstate_ether get_operstate dump_iface rtnl_handle_ifevent rtnl_handle_ifattach if_attach_internal if_attach ether_ifattach t4_cloner_create MFC after: 3 days Sponsored by: Chelsio Communications --- sys/dev/cxgbe/t4_tracer.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/sys/dev/cxgbe/t4_tracer.c b/sys/dev/cxgbe/t4_tracer.c index 4190aa627b14..d9b336c4b64a 100644 --- a/sys/dev/cxgbe/t4_tracer.c +++ b/sys/dev/cxgbe/t4_tracer.c @@ -138,7 +138,7 @@ t4_cloner_create(struct if_clone *ifc, char *name, size_t len, caddr_t params) struct match_rr mrr; struct adapter *sc; if_t ifp; - int rc, unit; + int rc; const uint8_t lla[ETHER_ADDR_LEN] = {0, 0, 0, 0, 0, 0}; mrr.name = name; @@ -166,21 +166,14 @@ t4_cloner_create(struct if_clone *ifc, char *name, size_t len, caddr_t params) goto done; } - - unit = -1; - rc = ifc_alloc_unit(ifc, &unit); - if (rc != 0) - goto done; - ifp = if_alloc(IFT_ETHER); if (ifp == NULL) { - ifc_free_unit(ifc, unit); rc = ENOMEM; goto done; } - /* Note that if_xname is not <if_dname><if_dunit>. */ - if_initname(ifp, name, unit); + /* Note that if_xname is identical to the nexus nameunit */ + if_initname(ifp, name, -1); if_setdname(ifp, t4_cloner_name); if_setinitfn(ifp, tracer_init); if_setflags(ifp, IFF_SIMPLEX | IFF_DRV_RUNNING); @@ -192,12 +185,14 @@ t4_cloner_create(struct if_clone *ifc, char *name, size_t len, caddr_t params) tracer_media_status); ifmedia_add(&sc->media, IFM_ETHER | IFM_FDX | IFM_NONE, 0, NULL); ifmedia_set(&sc->media, IFM_ETHER | IFM_FDX | IFM_NONE); + sx_xunlock(&t4_trace_lock); ether_ifattach(ifp, lla); - + sx_xlock(&t4_trace_lock); mtx_lock(&sc->ifp_lock); if_setsoftc(ifp, sc); sc->ifp = ifp; mtx_unlock(&sc->ifp_lock); + rc = 0; done: sx_xunlock(&t4_trace_lock); end_synchronized_op(sc, 0); @@ -208,7 +203,6 @@ static int t4_cloner_destroy(struct if_clone *ifc, if_t ifp) { struct adapter *sc; - int unit = if_getdunit(ifp); sx_xlock(&t4_trace_lock); sc = if_getsoftc(ifp); @@ -219,10 +213,9 @@ t4_cloner_destroy(struct if_clone *ifc, if_t ifp) mtx_unlock(&sc->ifp_lock); ifmedia_removeall(&sc->media); } + sx_xunlock(&t4_trace_lock); ether_ifdetach(ifp); if_free(ifp); - ifc_free_unit(ifc, unit); - sx_xunlock(&t4_trace_lock); return (0); } From nobody Sun Sep 10 18:34:22 2023 X-Original-To: dev-commits-src-main@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 4RkJR31NFlz4sPms; Sun, 10 Sep 2023 18:34: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkJR30kH7z4lrM; Sun, 10 Sep 2023 18:34:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694370863; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KbtUPoZi+xFgkavbG100BStgCx9h30Y/Sym+E/shylM=; b=t3Fz88m0ZozqlYmkeBXRWnsZXs75L1vYJKF2i5q0EfreX+AoQ61YVOUaMMAL5QIoZbGQW0 Fea6yIdoCVsaxrWxnCIvNYNBT7frlU5kDxwaDc3Lo69eedp9iwRqH7gtfZnTm2bkhP7Nqw 1OpmD3YyWDQUeiz7+g/gO7GqwvxiQwx0aFC7tCkq6lfN9QJLK88WuKeGYs+t2d/y5gNcQp htkwE5JXczywpDil3/cn1w7rR2MLo9QjKCbF4SXjitHA/3n+BWl5Pg9S7xfkBC37kP341c cH9DUqbH9Hcd3pDwKiFAGNLYk1RAg/jCYyoUrJxuX9VAw05Do4Ds6+EYPiRRkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694370863; a=rsa-sha256; cv=none; b=fvK1/EAYfv0c4pnd/JfHikDEU2fMHF2ErLHGcsZ2bLsmcUAphKKFlRBwy0rrlMcADKOV6T JHi/Yj9+tcC2HRGSZklkh11DbmrUOtEi795xTcTDXmju+QnrxwbOb9yeX/cLsbGzRZBiQL KVZ5br7AzFS+pEqSscu9DU6ws8OYD2bGMkllC+/s9V6m6FaUT1dc57Tgr3RN9xn4RPCI/P FNPGg46zyYjQLn69d5a9O7tffT1LrZx8F5HnkpXuZlNXv9crutPkOt4EtYhfNjkA42S6k7 rc8S5mrV8adHfIjUllKsXN/B0b76EBt07Wu9VS35hSl0dshzOcBUhExcopZd9g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694370863; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KbtUPoZi+xFgkavbG100BStgCx9h30Y/Sym+E/shylM=; b=G2weYR/bPMzq9e5jaGpQfGSxuaNO1fGOBdaeLZohBBOfpoboAB14hJsuql1fdjLjIt14m0 NZbY3tBy+s85VBNFbHzIrTwExN1NS/JErrvtCjOsNGBpMX1GhanaWbOsCwtHr6pxfieMW2 Jj1bSzO/ArhPsQ4IZEEoF7xyq98KKbXnslRycd1mrkVdHRfhdufMK7UwOzQQ0bl54Dsys1 pdLCVo2MEz1o6RQWGcdm6zX54FpR5c2BOo9awkofhcCqMPZ0uV9+lJjMpwURBwx/yyZ/11 jM+FtcbiBm/6Yic66gdg1uwGE9wLxfS72Cdd4zNuu6Ro2exhqkDwKJI0EU3izw== 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 4RkJR26vHsz31p; Sun, 10 Sep 2023 18:34:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38AIYMcU059244; Sun, 10 Sep 2023 18:34:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38AIYMZ6059241; Sun, 10 Sep 2023 18:34:22 GMT (envelope-from git) Date: Sun, 10 Sep 2023 18:34:22 GMT Message-Id: <202309101834.38AIYMZ6059241@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org> Subject: git: ef8abddf103d - main - mkfile: getopt() returns an int, not a char. List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: ef8abddf103d9dfd5660d50d15e6dbfbb2f47f62 Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=ef8abddf103d9dfd5660d50d15e6dbfbb2f47f62 commit ef8abddf103d9dfd5660d50d15e6dbfbb2f47f62 Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2023-09-10 18:33:18 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2023-09-10 18:33:32 +0000 mkfile: getopt() returns an int, not a char. MFC after: 3 days Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D41804 --- tests/sys/cddl/zfs/bin/mkfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sys/cddl/zfs/bin/mkfile.c b/tests/sys/cddl/zfs/bin/mkfile.c index b1034b9ca500..c1afdbd61196 100644 --- a/tests/sys/cddl/zfs/bin/mkfile.c +++ b/tests/sys/cddl/zfs/bin/mkfile.c @@ -168,7 +168,7 @@ int main(int argc, char *argv[]) { unsigned long long fsize; - char ch; + int ch; /* We have at least 2 arguments. */ if (argc < 3) { From nobody Sun Sep 10 19:21:45 2023 X-Original-To: dev-commits-src-main@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 4RkKTj6Cqsz4svjt; Sun, 10 Sep 2023 19: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkKTj5xHPz3GgM; Sun, 10 Sep 2023 19: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=1694373705; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qOISdwmVSW84eiX7ettxhUnqkup3zr8nT77kGk7Wq/k=; b=ySDH0BJDCDCv+GMDscQOjdNlRJ09B9R9cwxWcXCcZJHvPit7lhrRVUwhnORBZkK4b7nc2T 0+rw69x6HT6b/GfPKSrJwwJIOLQHdzBseXyyLvq3OUikLUwujB8IoS/8ZoAGpRJzC5CQ2D 03nBc4wAcQrBGnj/vtjb7LMX9x6iNde00QQ0AInVZbUpSbRGd6I7JOYZcrWGtwoWbHNCXs vDLDOWk/8bPhWuaWL1yzSet7wWyvt3/9F42lHlK8ztHfjw/dd0XF9GhDUn8gK+V9GaeDkR i5QEkSFsBW2fH4lPZzwqm0yRNQI75Bkj94vOLH0WkQOmAXhcTb6bVQDaN+UGcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694373705; a=rsa-sha256; cv=none; b=YrBauijMQZ4eSePMN5lZYz4LsDBB+keiAa5I/4qnlMLe6tBq/uXyzZZ436IBrI1ftFpmvX 4KNRCMWKsW4zjJ/1obacY1QPhBtfNHg5G2/xO9YLWY27kFGdAN0sx7pFEAX+v4p9cpbTHW k1eRSMTHAYvZLwgg5TSMjB2YMHpT6tseUwkJ4D8EyYxl4qcirxOa71iTCU6j6Os8oXdfXA p8STdBBks8T63f3j2UheJ3HQOyb5HxiOxeJbJk2ZpnG7UmQah1M0xUM+pbIKNRKkByA689 +F1X9Z4rOOJ6a401RJwV0hdwz1NWYWG3CY7A1fBwMZCUfj3PxT36FNgVtNiqLA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694373705; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qOISdwmVSW84eiX7ettxhUnqkup3zr8nT77kGk7Wq/k=; b=k7WYMp1C7YYRNXw9Oqxub831YqoiUINtJ2Mp7ioN2p2zSI6EvKy/0Yx5B0cPGRR84wBN2H UbiH4dmaqtIunveGHD8rLgYtJwvmz9tIsK5MaSBvTqgKMUuYmiQ4U3cg/v33TXiOTLAsbg OKuZFeon718T6ee+vYKNvH1Qjx6C0/Xexm+aqN/JTtkQ5O9LPM/EGD6wt9HLZ1MZtYPhlr e2yefNHoF0dyiiGWZM9iH9fZrkeCs+1rcR5tIbchVkxCxafEXXCAbgLQwiND0htMmUcEaM ydEspb7kWya+IasbMTArpmA75OXlhqmtMBqXszo49Xvga6t+I0qSsWmJXjfiDQ== 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 4RkKTj50XJz4Lb; Sun, 10 Sep 2023 19:21:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38AJLjAW040022; Sun, 10 Sep 2023 19:21:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38AJLjXM040019; Sun, 10 Sep 2023 19:21:45 GMT (envelope-from git) Date: Sun, 10 Sep 2023 19:21:45 GMT Message-Id: <202309101921.38AJLjXM040019@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Xin LI <delphij@FreeBSD.org> Subject: git: 898496ee09ed - main - MFV: file 5.45. List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 898496ee09ed2b7d25f6807edc4515628196ec0a Auto-Submitted: auto-generated The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=898496ee09ed2b7d25f6807edc4515628196ec0a commit 898496ee09ed2b7d25f6807edc4515628196ec0a Merge: ef8abddf103d 72d4668c77f0 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2023-09-10 19:20:33 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2023-09-10 19:21:16 +0000 MFV: file 5.45. MFC after: 3 days contrib/file/ChangeLog | 64 ++- contrib/file/README.md | 3 +- contrib/file/acinclude.m4 | 5 +- contrib/file/config.guess | 2 + contrib/file/config.h.in | 21 + contrib/file/config.sub | 1 + contrib/file/configure | 184 ++++++- contrib/file/configure.ac | 40 +- contrib/file/doc/file.man | 21 +- contrib/file/doc/libmagic.man | 26 +- contrib/file/doc/magic.man | 88 ++-- contrib/file/libmagic.pc.in | 1 + contrib/file/magic/Magdir/algol68 | 12 +- contrib/file/magic/Magdir/android | 52 +- contrib/file/magic/Magdir/animation | 25 +- contrib/file/magic/Magdir/apple | 299 +++++++++-- contrib/file/magic/Magdir/archive | 547 ++++++++++++++++++++- contrib/file/magic/Magdir/arm | 11 +- contrib/file/magic/Magdir/asf | 4 +- contrib/file/magic/Magdir/audio | 17 +- contrib/file/magic/Magdir/blender | 15 +- contrib/file/magic/Magdir/bytecode | 13 +- contrib/file/magic/Magdir/c-lang | 8 +- contrib/file/magic/Magdir/c64 | 357 +++++++++++++- contrib/file/magic/Magdir/cad | 40 +- contrib/file/magic/Magdir/coff | 3 +- contrib/file/magic/Magdir/commands | 18 +- contrib/file/magic/Magdir/compress | 88 +++- contrib/file/magic/Magdir/console | 52 +- contrib/file/magic/Magdir/crypto | 46 +- contrib/file/magic/Magdir/database | 62 ++- contrib/file/magic/Magdir/der | 9 +- contrib/file/magic/Magdir/dsf | 25 - contrib/file/magic/Magdir/dwarfs | 45 ++ contrib/file/magic/Magdir/elf | 10 +- contrib/file/magic/Magdir/filesystems | 211 ++++---- contrib/file/magic/Magdir/firmware | 133 +++++ contrib/file/magic/Magdir/games | 198 +++++++- contrib/file/magic/Magdir/gentoo | 9 +- contrib/file/magic/Magdir/geo | 42 +- contrib/file/magic/Magdir/images | 342 +++++++++++-- contrib/file/magic/Magdir/intel | 8 +- contrib/file/magic/Magdir/java | 9 +- contrib/file/magic/Magdir/javascript | 64 ++- contrib/file/magic/Magdir/jpeg | 8 +- contrib/file/magic/Magdir/lif | 9 +- contrib/file/magic/Magdir/linux | 99 +++- contrib/file/magic/Magdir/llvm | 3 +- contrib/file/magic/Magdir/macintosh | 56 ++- contrib/file/magic/Magdir/magic | 65 ++- contrib/file/magic/Magdir/mail.news | 4 +- contrib/file/magic/Magdir/map | 7 +- contrib/file/magic/Magdir/mathematica | 69 ++- contrib/file/magic/Magdir/meteorological | 8 +- contrib/file/magic/Magdir/misctools | 66 ++- contrib/file/magic/Magdir/modem | 12 +- contrib/file/magic/Magdir/msdos | 460 +++++++++++++++-- contrib/file/magic/Magdir/msooxml | 12 +- contrib/file/magic/Magdir/ole2compounddocs | 155 ++++-- contrib/file/magic/Magdir/pdf | 6 +- contrib/file/magic/Magdir/perl | 8 +- contrib/file/magic/Magdir/playdate | 57 +++ contrib/file/magic/Magdir/printer | 144 +++++- contrib/file/magic/Magdir/qt | 13 +- contrib/file/magic/Magdir/rst | 6 +- contrib/file/magic/Magdir/rust | 21 + contrib/file/magic/Magdir/scientific | 43 +- contrib/file/magic/Magdir/sendmail | 4 +- contrib/file/magic/Magdir/sgml | 13 +- contrib/file/magic/Magdir/sniffer | 75 ++- contrib/file/magic/Magdir/softquad | 9 +- contrib/file/magic/Magdir/spectrum | 118 ++++- contrib/file/magic/Magdir/sql | 65 ++- contrib/file/magic/Magdir/ssh | 11 +- contrib/file/magic/Magdir/svf | 5 + contrib/file/magic/Magdir/sysex | 6 +- contrib/file/magic/Magdir/terminfo | 3 +- contrib/file/magic/Magdir/tex | 10 +- contrib/file/magic/Magdir/tplink | 13 +- contrib/file/magic/Magdir/troff | 8 +- contrib/file/magic/Magdir/uterus | 4 +- contrib/file/magic/Magdir/varied.script | 64 +-- contrib/file/magic/Magdir/web | 8 +- contrib/file/magic/Magdir/windows | 532 ++++++++++++++++++-- contrib/file/magic/Magdir/wordprocessors | 72 ++- contrib/file/magic/Magdir/xenix | 18 +- contrib/file/magic/Magdir/xilinx | 20 +- contrib/file/magic/Makefile.am | 8 +- contrib/file/magic/Makefile.in | 8 +- contrib/file/src/Makefile.am | 8 +- contrib/file/src/Makefile.in | 23 +- contrib/file/src/apprentice.c | 275 ++++++----- contrib/file/src/apptype.c | 8 +- contrib/file/src/ascmagic.c | 38 +- contrib/file/src/asctime_r.c | 4 +- contrib/file/src/asprintf.c | 2 +- contrib/file/src/buffer.c | 11 +- contrib/file/src/cdf.c | 2 +- contrib/file/src/cdf_time.c | 6 +- contrib/file/src/compress.c | 389 +++++++++++---- contrib/file/src/ctime_r.c | 4 +- contrib/file/src/der.c | 12 +- contrib/file/src/dprintf.c | 2 +- contrib/file/src/encoding.c | 40 +- contrib/file/src/file.c | 131 ++--- contrib/file/src/file.h | 187 +++---- contrib/file/src/file_opts.h | 4 +- contrib/file/src/fmtcheck.c | 2 +- contrib/file/src/fsmagic.c | 8 +- contrib/file/src/funcs.c | 120 +++-- contrib/file/src/getline.c | 4 +- contrib/file/src/getopt_long.c | 2 +- contrib/file/src/gmtime_r.c | 4 +- contrib/file/src/is_csv.c | 12 +- contrib/file/src/is_json.c | 6 +- contrib/file/src/is_simh.c | 209 ++++++++ contrib/file/src/is_tar.c | 14 +- contrib/file/src/localtime_r.c | 4 +- contrib/file/src/magic.c | 60 ++- contrib/file/src/magic.h.in | 9 +- contrib/file/src/memtest.c | 3 +- contrib/file/src/pread.c | 2 +- contrib/file/src/print.c | 30 +- contrib/file/src/readcdf.c | 26 +- contrib/file/src/readelf.c | 72 +-- contrib/file/src/seccomp.c | 3 +- contrib/file/src/softmagic.c | 252 ++++++---- contrib/file/src/strlcat.c | 2 +- contrib/file/src/strlcpy.c | 2 +- contrib/file/src/tar.h | 4 +- contrib/file/src/vasprintf.c | 7 +- contrib/file/tests/CVE-2014-1943.result | 2 +- contrib/file/tests/HWP2016.hwp.result | 1 + contrib/file/tests/HWP2016.hwp.testfile | Bin 0 -> 9216 bytes contrib/file/tests/HWP2016.hwpx.zip.result | 1 + contrib/file/tests/HWP2016.hwpx.zip.testfile | Bin 0 -> 14377 bytes contrib/file/tests/HWP97.hwp.result | 1 + contrib/file/tests/HWP97.hwp.testfile | Bin 0 -> 8975 bytes contrib/file/tests/JW07022A.mp3.result | 2 +- contrib/file/tests/Makefile.am | 70 ++- contrib/file/tests/Makefile.in | 70 ++- contrib/file/tests/android-vdex-1.result | 2 +- contrib/file/tests/android-vdex-2.result | 2 +- contrib/file/tests/arj.result | 2 +- contrib/file/tests/bcachefs.result | 2 +- contrib/file/tests/bcachefs2.result | 1 + contrib/file/tests/bcachefs2.testfile | Bin 0 -> 8192 bytes contrib/file/tests/cl8m8ocofedso.result | 2 +- contrib/file/tests/cmd1.result | 1 + contrib/file/tests/cmd1.testfile | 1 + contrib/file/tests/cmd2.result | 1 + contrib/file/tests/cmd2.testfile | 1 + contrib/file/tests/cmd3.result | 1 + contrib/file/tests/cmd3.testfile | 2 + contrib/file/tests/cmd4.result | 1 + contrib/file/tests/cmd4.testfile | 2 + contrib/file/tests/dsd64-dff.result | 2 +- contrib/file/tests/dsd64-dsf.result | 2 +- contrib/file/tests/escapevel.result | 2 +- contrib/file/tests/ext4.result | 2 +- contrib/file/tests/fit-map-data.result | 2 +- contrib/file/tests/gedcom.result | 2 +- contrib/file/tests/hddrawcopytool.result | 2 +- contrib/file/tests/hello-racket_rkt.result | 1 + contrib/file/tests/hello-racket_rkt.testfile | Bin 0 -> 1664 bytes contrib/file/tests/issue311docx.result | 2 +- contrib/file/tests/issue359xlsx.result | 2 +- contrib/file/tests/jpeg-text.result | 1 + contrib/file/tests/jpeg-text.testfile | 1 + contrib/file/tests/json1.result | 2 +- contrib/file/tests/json2.result | 2 +- contrib/file/tests/json3.result | 2 +- contrib/file/tests/json4.result | 2 +- contrib/file/tests/json5.result | 2 +- contrib/file/tests/json6.result | 2 +- contrib/file/tests/json7.result | 2 +- contrib/file/tests/json8.result | 2 +- contrib/file/tests/jsonlines1.result | 2 +- contrib/file/tests/matilde.arm.result | 2 +- contrib/file/tests/multiple-A.magic | 2 + contrib/file/tests/multiple-B.magic | 2 + contrib/file/tests/multiple.flags | 1 + contrib/file/tests/multiple.result | 1 + contrib/file/tests/multiple.testfile | 1 + contrib/file/tests/pcjr.result | 2 +- contrib/file/tests/pgp-binary-key-v2-phil.result | 2 +- contrib/file/tests/pgp-binary-key-v3-lutz.result | 2 +- contrib/file/tests/pgp-binary-key-v4-dsa.result | 2 +- .../pgp-binary-key-v4-ecc-no-userid-secret.result | 2 +- .../tests/pgp-binary-key-v4-ecc-secret-key.result | 2 +- .../file/tests/pgp-binary-key-v4-rsa-key.result | 2 +- .../pgp-binary-key-v4-rsa-no-userid-secret.result | 2 +- .../tests/pgp-binary-key-v4-rsa-secret-key.result | 2 +- contrib/file/tests/pnm1.result | 1 + contrib/file/tests/pnm1.testfile | 5 + contrib/file/tests/pnm2.result | 1 + contrib/file/tests/pnm2.testfile | Bin 0 -> 15 bytes contrib/file/tests/pnm3.result | 1 + contrib/file/tests/pnm3.testfile | 5 + contrib/file/tests/regex-eol.result | 2 +- contrib/file/tests/registry-pol.result | 1 + contrib/file/tests/registry-pol.testfile | Bin 0 -> 7094 bytes contrib/file/tests/test.c | 70 ++- contrib/file/tests/uf2.result | 2 +- contrib/file/tests/xclbin.result | 1 + contrib/file/tests/xclbin.testfile | Bin 0 -> 512 bytes contrib/file/tests/zstd-3-skippable-frames.result | 2 +- contrib/file/tests/zstd-dictionary-0.result | 2 +- contrib/file/tests/zstd-dictionary-1.result | 2 +- contrib/file/tests/zstd-dictionary-2.result | 2 +- contrib/file/tests/zstd-skippable-frame-0.result | 2 +- contrib/file/tests/zstd-skippable-frame-4.result | 2 +- contrib/file/tests/zstd-skippable-frame-8.result | 2 +- contrib/file/tests/zstd-skippable-frame-C.result | 2 +- contrib/file/tests/zstd-v0.2-FF.result | 2 +- contrib/file/tests/zstd-v0.3-FF.result | 2 +- contrib/file/tests/zstd-v0.4-FF.result | 2 +- contrib/file/tests/zstd-v0.5-FF.result | 2 +- contrib/file/tests/zstd-v0.6-FF.result | 2 +- contrib/file/tests/zstd-v0.7-00.result | 2 +- contrib/file/tests/zstd-v0.7-21.result | 2 +- contrib/file/tests/zstd-v0.7-22.result | 2 +- contrib/file/tests/zstd-v0.8-00.result | 2 +- contrib/file/tests/zstd-v0.8-01.result | 2 +- contrib/file/tests/zstd-v0.8-02.result | 2 +- contrib/file/tests/zstd-v0.8-03.result | 2 +- contrib/file/tests/zstd-v0.8-16.result | 2 +- contrib/file/tests/zstd-v0.8-20.result | 2 +- contrib/file/tests/zstd-v0.8-21.result | 2 +- contrib/file/tests/zstd-v0.8-22.result | 2 +- contrib/file/tests/zstd-v0.8-23.result | 2 +- contrib/file/tests/zstd-v0.8-F4.result | 2 +- contrib/file/tests/zstd-v0.8-FF.result | 2 +- lib/libmagic/Makefile | 1 + lib/libmagic/config.h | 29 +- 235 files changed, 6485 insertions(+), 1560 deletions(-) diff --cc contrib/file/README.md index 37a3b17856c6,000000000000..26e38045812c mode 100644,000000..100644 --- a/contrib/file/README.md +++ b/contrib/file/README.md @@@ -1,155 -1,0 +1,156 @@@ +## README for file(1) Command and the libmagic(3) library ## + - @(#) $File: README.md,v 1.4 2021/10/21 01:51:31 christos Exp $ ++ @(#) $File: README.md,v 1.5 2023/05/28 13:59:47 christos Exp $ + +- Bug Tracker: <https://bugs.astron.com/> +- Build Status: <https://travis-ci.org/file/file> +- Download link: <ftp://ftp.astron.com/pub/file/> +- E-mail: <christos@astron.com> +- Fuzzing link: <https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:file> +- Home page: https://www.darwinsys.com/file/ +- Mailing List archives: <https://mailman.astron.com/pipermail/file/> +- Mailing List: <file@astron.com> +- Public repo: <https://github.com/file/file> +- Test framework: <https://github.com/file/file-tests> + +Phone: Do not even think of telephoning me about this program. Send +cash first! + +This is Release 5.x of Ian Darwin's (copyright but distributable) +file(1) command, an implementation of the Unix File(1) command. +It knows the 'magic number' of several thousands of file types. +This version is the standard "file" command for Linux, *BSD, and +other systems. (See "patchlevel.h" for the exact release number). + +The major changes for 5.x are CDF file parsing, indirect magic, +name/use (recursion) and overhaul in mime and ascii encoding +handling. + +The major feature of 4.x is the refactoring of the code into a +library, and the re-write of the file command in terms of that +library. The library itself, libmagic can be used by 3rd party +programs that wish to identify file types without having to fork() +and exec() file. The prime contributor for 4.0 was Mans Rullgard. + +UNIX is a trademark of UNIX System Laboratories. + +The prime contributor to Release 3.8 was Guy Harris, who put in +megachanges including byte-order independence. + +The prime contributor to Release 3.0 was Christos Zoulas, who put +in hundreds of lines of source code changes, including his own +ANSIfication of the code (I liked my own ANSIfication better, but +his (__P()) is the "Berkeley standard" way of doing it, and I wanted +UCB to include the code...), his HP-like "indirection" (a feature +of the HP file command, I think), and his mods that finally got +the uncompress (-z) mode finished and working. + +This release has compiled in numerous environments; see PORTING +for a list and problems. + +This fine freeware file(1) follows the USG (System V) model of the +file command, rather than the Research (V7) version or the V7-derived +4.[23] Berkeley one. That is, the file /etc/magic contains much of +the ritual information that is the source of this program's power. +My version knows a little more magic (including tar archives) than +System V; the /etc/magic parsing seems to be compatible with the +(poorly documented) System V /etc/magic format (with one exception; +see the man page). + +In addition, the /etc/magic file is built from a subdirectory +for easier(?) maintenance. I will act as a clearinghouse for +magic numbers assigned to all sorts of data files that +are in reasonable circulation. Send your magic numbers, +in magic(5) format please, to the maintainer, Christos Zoulas. + +COPYING - read this first. +* `README` - read this second (you are currently reading this file). +* `INSTALL` - read on how to install +* `src/apprentice.c` - parses /etc/magic to learn magic +* `src/apptype.c` - used for OS/2 specific application type magic +* `src/ascmagic.c` - third & last set of tests, based on hardwired assumptions. +* `src/asctime_r.c` - replacement for OS's that don't have it. +* `src/asprintf.c` - replacement for OS's that don't have it. +* `src/buffer.c` - buffer handling functions. +* `src/cdf.[ch]` - parser for Microsoft Compound Document Files +* `src/cdf_time.c` - time converter for CDF. +* `src/compress.c` - handles decompressing files to look inside. +* `src/ctime_r.c` - replacement for OS's that don't have it. +* `src/der.[ch]` - parser for Distinguished Encoding Rules +* `src/dprintf.c` - replacement for OS's that don't have it. +* `src/elfclass.h` - common code for elf 32/64. +* `src/encoding.c` - handles unicode encodings +* `src/file.c` - the main program +* `src/file.h` - header file +* `src/file_opts.h` - list of options +* `src/fmtcheck.c` - replacement for OS's that don't have it. +* `src/fsmagic.c` - first set of tests the program runs, based on filesystem info +* `src/funcs.c` - utilility functions +* `src/getline.c` - replacement for OS's that don't have it. +* `src/getopt_long.c` - replacement for OS's that don't have it. +* `src/gmtime_r.c` - replacement for OS's that don't have it. +* `src/is_csv.c` - knows about Comma Separated Value file format (RFC 4180). +* `src/is_json.c` - knows about JavaScript Object Notation format (RFC 8259). ++* `src/is_simh.c` - knows about SIMH tape file format. +* `src/is_tar.c, tar.h` - knows about Tape ARchive format (courtesy John Gilmore). +* `src/localtime_r.c` - replacement for OS's that don't have it. +* `src/magic.h.in` - source file for magic.h +* `src/mygetopt.h` - replacement for OS's that don't have it. +* `src/magic.c` - the libmagic api +* `src/names.h` - header file for ascmagic.c +* `src/pread.c` - replacement for OS's that don't have it. +* `src/print.c` - print results, errors, warnings. +* `src/readcdf.c` - CDF wrapper. +* `src/readelf.[ch]` - Stand-alone elf parsing code. +* `src/softmagic.c` - 2nd set of tests, based on /etc/magic +* `src/mygetopt.h` - replacement for OS's that don't have it. +* `src/strcasestr.c` - replacement for OS's that don't have it. +* `src/strlcat.c` - replacement for OS's that don't have it. +* `src/strlcpy.c` - replacement for OS's that don't have it. +* `src/strndup.c` - replacement for OS's that don't have it. +* `src/tar.h` - tar file definitions +* `src/vasprintf.c` - for systems that don't have it. +* `doc/file.man` - man page for the command +* `doc/magic.man` - man page for the magic file, courtesy Guy Harris. + Install as magic.4 on USG and magic.5 on V7 or Berkeley; cf Makefile. + +Magdir - directory of /etc/magic pieces +------------------------------------------------------------------------------ + +If you submit a new magic entry please make sure you read the following +guidelines: + +- Initial match is preferably at least 32 bits long, and is a _unique_ match +- If this is not feasible, use additional check +- Match of <= 16 bits are not accepted +- Delay printing string as much as possible, don't print output too early +- Avoid printf arbitrary byte as string, which can be a source of + crash and buffer overflow + +- Provide complete information with entry: + * One line short summary + * Optional long description + * File extension, if applicable + * Full name and contact method (for discussion when entry has problem) + * Further reference, such as documentation of format + +gpg for dummies: +------------------------------------------------------------------------------ + +``` +$ gpg --verify file-X.YY.tar.gz.asc file-X.YY.tar.gz +gpg: assuming signed data in `file-X.YY.tar.gz' +gpg: Signature made WWW MMM DD HH:MM:SS YYYY ZZZ using DSA key ID KKKKKKKK +``` + +To download the key: + +``` +$ gpg --keyserver hkp://keys.gnupg.net --recv-keys KKKKKKKK +``` +------------------------------------------------------------------------------ + + +Parts of this software were developed at SoftQuad Inc., developers +of SGML/HTML/XML publishing software, in Toronto, Canada. +SoftQuad was swallowed up by Corel in 2002 and does not exist any longer. diff --cc contrib/file/magic/Magdir/dwarfs index 000000000000,3700a33c5d7a..3700a33c5d7a mode 000000,100644..100644 --- a/contrib/file/magic/Magdir/dwarfs +++ b/contrib/file/magic/Magdir/dwarfs diff --cc contrib/file/magic/Magdir/firmware index 000000000000,4835b12e8d04..4835b12e8d04 mode 000000,100644..100644 --- a/contrib/file/magic/Magdir/firmware +++ b/contrib/file/magic/Magdir/firmware diff --cc contrib/file/magic/Magdir/playdate index 000000000000,77f8c689378d..77f8c689378d mode 000000,100644..100644 --- a/contrib/file/magic/Magdir/playdate +++ b/contrib/file/magic/Magdir/playdate diff --cc contrib/file/magic/Magdir/rust index 000000000000,b1bbd9d9702c..b1bbd9d9702c mode 000000,100644..100644 --- a/contrib/file/magic/Magdir/rust +++ b/contrib/file/magic/Magdir/rust diff --cc contrib/file/magic/Magdir/svf index 000000000000,b0d5c980f944..b0d5c980f944 mode 000000,100644..100644 --- a/contrib/file/magic/Magdir/svf +++ b/contrib/file/magic/Magdir/svf diff --cc contrib/file/src/is_simh.c index 000000000000,4e78173fc44c..4e78173fc44c mode 000000,100644..100644 --- a/contrib/file/src/is_simh.c +++ b/contrib/file/src/is_simh.c diff --cc contrib/file/tests/HWP2016.hwp.result index 000000000000,2edd0b53aca7..2edd0b53aca7 mode 000000,100644..100644 --- a/contrib/file/tests/HWP2016.hwp.result +++ b/contrib/file/tests/HWP2016.hwp.result diff --cc contrib/file/tests/HWP2016.hwp.testfile index 000000000000,75ab61d2103b..75ab61d2103b mode 000000,100644..100644 Binary files differ diff --cc contrib/file/tests/HWP2016.hwpx.zip.result index 000000000000,6077a602a5cf..6077a602a5cf mode 000000,100644..100644 --- a/contrib/file/tests/HWP2016.hwpx.zip.result +++ b/contrib/file/tests/HWP2016.hwpx.zip.result diff --cc contrib/file/tests/HWP2016.hwpx.zip.testfile index 000000000000,7f1706369900..7f1706369900 mode 000000,100644..100644 Binary files differ diff --cc contrib/file/tests/HWP97.hwp.result index 000000000000,d77b46e2935f..d77b46e2935f mode 000000,100644..100644 --- a/contrib/file/tests/HWP97.hwp.result +++ b/contrib/file/tests/HWP97.hwp.result diff --cc contrib/file/tests/HWP97.hwp.testfile index 000000000000,eeabcce5e090..eeabcce5e090 mode 000000,100644..100644 Binary files differ diff --cc contrib/file/tests/bcachefs2.result index 000000000000,9ebf64bb55bc..9ebf64bb55bc mode 000000,100644..100644 --- a/contrib/file/tests/bcachefs2.result +++ b/contrib/file/tests/bcachefs2.result diff --cc contrib/file/tests/bcachefs2.testfile index 000000000000,3391822a79a4..3391822a79a4 mode 000000,100644..100644 Binary files differ diff --cc contrib/file/tests/cmd1.result index 000000000000,d77043f6046c..d77043f6046c mode 000000,100644..100644 --- a/contrib/file/tests/cmd1.result +++ b/contrib/file/tests/cmd1.result diff --cc contrib/file/tests/cmd1.testfile index 000000000000,8277edf20418..8277edf20418 mode 000000,100644..100644 --- a/contrib/file/tests/cmd1.testfile +++ b/contrib/file/tests/cmd1.testfile diff --cc contrib/file/tests/cmd2.result index 000000000000,77627c3607e9..77627c3607e9 mode 000000,100644..100644 --- a/contrib/file/tests/cmd2.result +++ b/contrib/file/tests/cmd2.result diff --cc contrib/file/tests/cmd2.testfile index 000000000000,104a0170d847..104a0170d847 mode 000000,100644..100644 --- a/contrib/file/tests/cmd2.testfile +++ b/contrib/file/tests/cmd2.testfile diff --cc contrib/file/tests/cmd3.result index 000000000000,2d100e007008..2d100e007008 mode 000000,100644..100644 --- a/contrib/file/tests/cmd3.result +++ b/contrib/file/tests/cmd3.result diff --cc contrib/file/tests/cmd3.testfile index 000000000000,8287acab425d..8287acab425d mode 000000,100644..100644 --- a/contrib/file/tests/cmd3.testfile +++ b/contrib/file/tests/cmd3.testfile diff --cc contrib/file/tests/cmd4.result index 000000000000,af635a43ae80..af635a43ae80 mode 000000,100644..100644 --- a/contrib/file/tests/cmd4.result +++ b/contrib/file/tests/cmd4.result diff --cc contrib/file/tests/cmd4.testfile index 000000000000,529053ee86de..529053ee86de mode 000000,100644..100644 --- a/contrib/file/tests/cmd4.testfile +++ b/contrib/file/tests/cmd4.testfile diff --cc contrib/file/tests/hello-racket_rkt.result index 000000000000,ca2000968f42..ca2000968f42 mode 000000,100644..100644 --- a/contrib/file/tests/hello-racket_rkt.result +++ b/contrib/file/tests/hello-racket_rkt.result diff --cc contrib/file/tests/hello-racket_rkt.testfile index 000000000000,22e944001066..22e944001066 mode 000000,100644..100644 Binary files differ diff --cc contrib/file/tests/jpeg-text.result index 000000000000,c35c5b716e7f..c35c5b716e7f mode 000000,100644..100644 --- a/contrib/file/tests/jpeg-text.result +++ b/contrib/file/tests/jpeg-text.result diff --cc contrib/file/tests/jpeg-text.testfile index 000000000000,fe119bdce020..fe119bdce020 mode 000000,100644..100644 --- a/contrib/file/tests/jpeg-text.testfile +++ b/contrib/file/tests/jpeg-text.testfile diff --cc contrib/file/tests/multiple-A.magic index 000000000000,7709bb2c6bf7..7709bb2c6bf7 mode 000000,100644..100644 --- a/contrib/file/tests/multiple-A.magic +++ b/contrib/file/tests/multiple-A.magic diff --cc contrib/file/tests/multiple-B.magic index 000000000000,ccc452d7ab34..ccc452d7ab34 mode 000000,100644..100644 --- a/contrib/file/tests/multiple-B.magic +++ b/contrib/file/tests/multiple-B.magic diff --cc contrib/file/tests/multiple.flags index 000000000000,b68fde2a051d..b68fde2a051d mode 000000,100644..100644 --- a/contrib/file/tests/multiple.flags +++ b/contrib/file/tests/multiple.flags diff --cc contrib/file/tests/multiple.result index 000000000000,8a8c5dfad20f..8a8c5dfad20f mode 000000,100644..100644 --- a/contrib/file/tests/multiple.result +++ b/contrib/file/tests/multiple.result diff --cc contrib/file/tests/multiple.testfile index 000000000000,388979a6a744..388979a6a744 mode 000000,100644..100644 --- a/contrib/file/tests/multiple.testfile +++ b/contrib/file/tests/multiple.testfile diff --cc contrib/file/tests/pnm1.result index 000000000000,15d9e82d3edd..15d9e82d3edd mode 000000,100644..100644 --- a/contrib/file/tests/pnm1.result +++ b/contrib/file/tests/pnm1.result diff --cc contrib/file/tests/pnm1.testfile index 000000000000,448108c5596d..448108c5596d mode 000000,100644..100644 --- a/contrib/file/tests/pnm1.testfile +++ b/contrib/file/tests/pnm1.testfile diff --cc contrib/file/tests/pnm2.result index 000000000000,e1d9ec93eff0..e1d9ec93eff0 mode 000000,100644..100644 --- a/contrib/file/tests/pnm2.result +++ b/contrib/file/tests/pnm2.result diff --cc contrib/file/tests/pnm2.testfile index 000000000000,baaeb2a1a14c..baaeb2a1a14c mode 000000,100644..100644 Binary files differ diff --cc contrib/file/tests/pnm3.result index 000000000000,49b800049583..49b800049583 mode 000000,100644..100644 --- a/contrib/file/tests/pnm3.result +++ b/contrib/file/tests/pnm3.result diff --cc contrib/file/tests/pnm3.testfile index 000000000000,e28b9ab8b80b..e28b9ab8b80b mode 000000,100644..100644 --- a/contrib/file/tests/pnm3.testfile +++ b/contrib/file/tests/pnm3.testfile diff --cc contrib/file/tests/registry-pol.result index 000000000000,7ca512f0c402..7ca512f0c402 mode 000000,100644..100644 --- a/contrib/file/tests/registry-pol.result +++ b/contrib/file/tests/registry-pol.result diff --cc contrib/file/tests/registry-pol.testfile index 000000000000,643e4a6dffd7..643e4a6dffd7 mode 000000,100644..100644 Binary files differ diff --cc contrib/file/tests/xclbin.result index 000000000000,11e31fe5e253..11e31fe5e253 mode 000000,100644..100644 --- a/contrib/file/tests/xclbin.result +++ b/contrib/file/tests/xclbin.result diff --cc contrib/file/tests/xclbin.testfile index 000000000000,7a965c15075d..7a965c15075d mode 000000,100644..100644 Binary files differ diff --cc lib/libmagic/Makefile index 98fcc7168d79,000000000000..5aff4c1a478d mode 100644,000000..100644 --- a/lib/libmagic/Makefile +++ b/lib/libmagic/Makefile @@@ -1,90 -1,0 +1,91 @@@ +# Copyright (c) David E. O'Brien, 2000-2004, 2006, 2009 + +PACKAGE=lib${LIB} +CONTRDIR= ${SRCTOP}/contrib/file +.PATH: ${CONTRDIR} +.PATH: ${CONTRDIR}/src +.PATH: ${CONTRDIR}/doc + +LIB= magic +SHLIB_MAJOR= 4 +.if !make(build-tools) +LIBADD= z +.endif +MAN= libmagic.3 magic.5 + +SRCS= apprentice.c apptype.c ascmagic.c buffer.c cdf.c cdf_time.c \ + compress.c der.c encoding.c fsmagic.c funcs.c is_json.c \ + is_csv.c \ ++ is_simh.c \ + is_tar.c magic.c print.c readcdf.c readelf.c seccomp.c softmagic.c +INCS= magic.h + +MAGICPATH?= /usr/share/misc + +CFLAGS+= -DMAGIC='"${MAGICPATH}/magic"' -DHAVE_CONFIG_H +CFLAGS+= -I${.CURDIR} -I${.OBJDIR} -I${CONTRDIR}/src + +WARNS?= 3 + +CLEANFILES+= magic magic.mgc + +FILES= magic magic.mgc +FILESDIR= ${MAGICPATH} + +MAGFILES= ${CONTRDIR}/magic/Header \ + ${CONTRDIR}/magic/Localstuff \ + ${CONTRDIR}/magic/Magdir/[a-z]* + + +PACKAGE_VERSION!= sed -n '/define.*PACKAGE_VERSION/{s,[^0-9.],,gp;q;}' ${.CURDIR}/config.h + +libmagic.pc: libmagic.pc.in + sed -e 's,@prefix@,/usr,g ; \ + s,@exec_prefix@,$${prefix},g ; \ + s,@libdir@,${LIBDIR},g ; \ + s,@sharedlibdir@,${SHLIBDIR},g ; \ + s,@includedir@,${INCLUDEDIR},g ; \ + s,@VERSION@,${PACKAGE_VERSION},g ; \ + s,@LIBS@,,g ;' \ + ${.ALLSRC} > ${.TARGET} + +magic: ${MAGFILES} + cat ${.ALLSRC:O} > ${.TARGET} + +magic.mgc: magic + ${BTOOLSPATH:U.}/mkmagic magic + +.if ${MACHINE} == "host" || ${MK_DIRDEPS_BUILD} == "no" +CLEANFILES+= mkmagic +DEPENDOBJS+= mkmagic +build-tools: mkmagic +mkmagic: apprentice.c cdf_time.c encoding.c funcs.c magic.c print.c ${INCS} ${BUILD_TOOLS_META} + ${CC:N${CCACHE_BIN}} ${CFLAGS} -DCOMPILE_ONLY ${LDFLAGS} -o ${.TARGET} \ + ${.ALLSRC:N*.h:O:u} ${LDADD} + +.endif +.if ${MK_DIRDEPS_BUILD} == "yes" +BTOOLSPATH= ${HOST_OBJTOP}/${RELDIR} +.else +magic.mgc: mkmagic +.endif + +FILEVER!= awk '$$1 == "\#define" && $$2 == "VERSION" { print $$3; exit }' \ + ${.CURDIR}/config.h +CLEANFILES+= ${MAN} +.for mp in ${MAN} +${mp}: ${mp:C/[0-9]/man/} + sed -e 's/__FSECTION__/5/g' -e 's/__CSECTION__/1/g' \ + -e 's/__VERSION__/${FILEVER}/g' \ + -e 's,__MAGIC__,${MAGICPATH}/magic,g' ${.ALLSRC} > ${.TARGET} +.endfor + +CLEANFILES+= ${INCS} +.for inc in ${INCS} +${inc}: ${inc}.in + sed -e 's,X.YY,${FILEVER:S,",,g:S,.,,g},g' ${.ALLSRC} > ${.TARGET} +.endfor + +PCFILES= libmagic.pc + +.include <bsd.lib.mk> diff --cc lib/libmagic/config.h index 220321c64af7,000000000000..b842859fc2ab mode 100644,000000..100644 --- a/lib/libmagic/config.h +++ b/lib/libmagic/config.h @@@ -1,502 -1,0 +1,523 @@@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* Define in built-in ELF support is used */ +#define BUILTIN_ELF 1 + +/* Enable bzlib compression support */ +/* #undef BZLIBSUPPORT */ + +/* Define for ELF core file support */ +#define ELFCORE 1 + +/* Define to 1 if you have the `asctime_r' function. */ +#define HAVE_ASCTIME_R 1 + +/* Define to 1 if you have the `asprintf' function. */ +#define HAVE_ASPRINTF 1 + +/* Define to 1 if you have the <byteswap.h> header file. */ - /* #undef HAVE_BYTESWAP_H */ ++#define HAVE_BYTESWAP_H 1 + +/* Define to 1 if you have the <bzlib.h> header file. */ +/* #undef HAVE_BZLIB_H */ + +/* Define to 1 if you have the `ctime_r' function. */ +#define HAVE_CTIME_R 1 + +/* HAVE_DAYLIGHT */ +/* #undef HAVE_DAYLIGHT */ + +/* Define to 1 if you have the declaration of `daylight', and to 0 if you + don't. */ +#define HAVE_DECL_DAYLIGHT 0 + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +#define HAVE_DECL_TZNAME 1 + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dprintf' function. */ +#define HAVE_DPRINTF 1 + +/* Define to 1 if you have the <err.h> header file. */ +#define HAVE_ERR_H 1 + +/* Define to 1 if you have the <fcntl.h> header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `fmtcheck' function. */ +#define HAVE_FMTCHECK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `freelocale' function. */ +#define HAVE_FREELOCALE 1 + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `getline' function. */ +#define HAVE_GETLINE 1 + +/* Define to 1 if you have the <getopt.h> header file. */ +#define HAVE_GETOPT_H 1 + +/* Define to 1 if you have the `getopt_long' function. */ +#define HAVE_GETOPT_LONG 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `gmtime_r' function. */ +#define HAVE_GMTIME_R 1 + +/* Define to 1 if the system has the type `intptr_t'. */ +#define HAVE_INTPTR_T 1 + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `bz2' library (-lbz2). */ +/* #undef HAVE_LIBBZ2 */ + +/* Define to 1 if you have the `gnurx' library (-lgnurx). */ +/* #undef HAVE_LIBGNURX */ + ++/* Define to 1 if you have the `lz' library (-llz). */ ++/* #undef HAVE_LIBLZ */ ++ +/* Define to 1 if you have the `lzma' library (-llzma). */ +/* #undef HAVE_LIBLZMA */ + +/* Define to 1 if you have the `seccomp' library (-lseccomp). */ +/* #undef HAVE_LIBSECCOMP */ + +/* Define to 1 if you have the `z' library (-lz). */ +#define HAVE_LIBZ 1 + ++/* Define to 1 if you have the `zstd' library (-lzstd). */ ++/* #undef HAVE_LIBZSTD */ ++ +/* Define to 1 if you have the `localtime_r' function. */ +#define HAVE_LOCALTIME_R 1 + ++/* Define to 1 if you have the <lzlib.h> header file. */ ++/* #undef HAVE_LZLIB_H */ ++ +/* Define to 1 if you have the <lzma.h> header file. */ +/* #undef HAVE_LZMA_H */ + +/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ +#define HAVE_MBRTOWC 1 + +/* Define to 1 if <wchar.h> declares mbstate_t. */ +#define HAVE_MBSTATE_T 1 + +/* Define to 1 if you have the `memmem' function. */ +#define HAVE_MEMMEM 1 + +/* Define to 1 if you have the <minix/config.h> header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have the `mkostemp' function. */ +#define HAVE_MKOSTEMP 1 + +/* Define to 1 if you have the `mkstemp' function. */ +#define HAVE_MKSTEMP 1 + +/* Define to 1 if you have a working `mmap' system call. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `newlocale' function. */ +#define HAVE_NEWLOCALE 1 + +/* Define to 1 if you have the `pipe2' function. */ +#ifndef __APPLE__ /* Cross building tools on macOS */ +#define HAVE_PIPE2 1 +#endif + +/* Define to 1 if you have the `posix_spawnp' function. */ +#define HAVE_POSIX_SPAWNP 1 + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Have sig_t type */ +#define HAVE_SIG_T 1 + +/* Define to 1 if you have the <spawn.h> header file. */ +#define HAVE_SPAWN_H 1 + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdio.h> header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strcasestr' function. */ +#define HAVE_STRCASESTR 1 + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcat' function. */ +#define HAVE_STRLCAT 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the `strndup' function. */ +#define HAVE_STRNDUP 1 + +/* Define to 1 if you have the `strtof' function. */ +#define HAVE_STRTOF 1 + +/* HAVE_STRUCT_OPTION */ +#define HAVE_STRUCT_OPTION 1 + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_RDEV 1 + +/* Define to 1 if `tm_gmtoff' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_GMTOFF 1 + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_ZONE 1 + +/* Define to 1 if you have the <sys/bswap.h> header file. */ +/* #undef HAVE_SYS_BSWAP_H */ + +/* Define to 1 if you have the <sys/ioctl.h> header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the <sys/mman.h> header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the <sys/param.h> header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/sysmacros.h> header file. */ +/* #undef HAVE_SYS_SYSMACROS_H */ + +/* Define to 1 if you have the <sys/time.h> header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <sys/utime.h> header file. */ +/* #undef HAVE_SYS_UTIME_H */ + +/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* HAVE_TM_ISDST */ +#define HAVE_TM_ISDST 1 + +/* HAVE_TM_ZONE */ +#define HAVE_TM_ZONE 1 + +/* HAVE_TZNAME */ +#define HAVE_TZNAME 1 + +/* Define to 1 if the system has the type `uintptr_t'. */ +#define HAVE_UINTPTR_T 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `uselocale' function. */ +#define HAVE_USELOCALE 1 + +/* Define to 1 if you have the `utime' function. */ +#define HAVE_UTIME 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the <utime.h> header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the `vasprintf' function. */ +#define HAVE_VASPRINTF 1 + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the <vfork.h> header file. */ +/* #undef HAVE_VFORK_H */ + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#define HAVE_VISIBILITY 1 + +/* Define to 1 if you have the <wchar.h> header file. */ +#define HAVE_WCHAR_H 1 *** 255 LINES SKIPPED *** From nobody Sun Sep 10 20:40:34 2023 X-Original-To: dev-commits-src-main@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 4RkMDf4X8tz4sWNc; Sun, 10 Sep 2023 20:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkMDf45lTz3gZ5; Sun, 10 Sep 2023 20:40:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694378434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+3kGFx+mPRJqbm0JoktleJJO+lKA6lq8LJMJtlb37+4=; b=P9Gcszkty9boGiFXq/Lg/4/tj7X5JdUj3xHIGFbdGtrkLLad67EUZ8DhEMf3PYSybq37UX EC8v/j1ouJQJ02NNE6jAnznr/vEG1Pvz9SHRgYH5M0FqKGsqGFLMs1d4UnoUgGGsefzLbM Wgr4K5UwUmzATf36gYFZTZcrT8HnWVIy8HST2G3+3cAnjlOvkrjc5tukPlq3RpBHJ4Pcu+ bBtiEC/Ue3U5is3pEzU29zE8Icd7I4mpWZ8sZ5Yeqj07o/PNFZDQ5mCkPNTjQdk6rP+iVG QG3ykt14gG9c/JRgajERvSUadkcrrDgb3YtWHjIugb0OD0XTfChf8jOp59DboQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694378434; a=rsa-sha256; cv=none; b=N89+FP4kqXHEM0///fGUWzeMXm9J+WO5RF6/YgzFZoBhWVicjNYB7ryxPhfJ8JE2jhU0YZ l40cqfAHtFLa1Rs1j/qGBdzplp+RPPXDGacFQ+pQckuqIjOOBnntMW7X/FlV43QE8lBJCD +Kiny/Fd2gxMqSV5rv51BERehlHLNE1wPhHqCzf3cDvvWthea7ec9C13v16owzPbE4cKJX smeLuJQbFeMh6J9WcjbYwTghBtYtgjMUjTWJ8t+dQCR7XxU48LjrssHTiWPIabGzk3OSbS qlMHxN9Q0UkmedsIEDr1IY8SZajopCKU9XIqAGROgPYDoNP8+5km3CpOvc4QMw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694378434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+3kGFx+mPRJqbm0JoktleJJO+lKA6lq8LJMJtlb37+4=; b=BpWFhKMUdKK2VQ/s3ARW6zrxsLJLmrwFiPS86mFsqSKnej3R+J2mTFgun7a6HGl6cnPMiq lOn/+TvHs7aYhdc1Ng6mcKJDqlfe0VQRjdFYLqUycLBAVWpafKl892YZTpgu3Gx+aKGaBC om08Ez7mvVrOT/pBJmK0R5sU2O/rkACTkqrVQGpDE9NzB/u/rihoccHQAHd0woOPx4gPjP iU7tH6hNGXsuUOgufelwNfbtjTaHdOspyi2qZSZq5DTOj0Warmo64TajzVK6de0zlr9Kkc 0YeRVZI+igbUiv1Zw4jMS1htBfPCNNhEcZ2Xn/ZpVQ9mbX9hh+EZWdDF3RSY3Q== 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 4RkMDf399pz6CZ; Sun, 10 Sep 2023 20:40:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38AKeYUb067302; Sun, 10 Sep 2023 20:40:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38AKeYjw067299; Sun, 10 Sep 2023 20:40:34 GMT (envelope-from git) Date: Sun, 10 Sep 2023 20:40:34 GMT Message-Id: <202309102040.38AKeYjw067299@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost <kp@FreeBSD.org> Subject: git: b6ce41118bb1 - main - pf: fix state leak List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b6ce41118bb11d3db86eae8fbebc8c198e8b330d Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=b6ce41118bb11d3db86eae8fbebc8c198e8b330d commit b6ce41118bb11d3db86eae8fbebc8c198e8b330d Author: Kristof Provost <kp@FreeBSD.org> AuthorDate: 2023-09-06 07:58:07 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2023-09-10 20:40:22 +0000 pf: fix state leak If we hit the csfailed case in pf_create_state() we may have allocated a state, so we must also free it. While here reduce the amount of duplicated cleanup code. MFC after: 2 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D41772 --- sys/netpfil/pf/pf.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 21d2e16e83dc..df4bd47c35d5 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -4885,13 +4885,8 @@ pf_create_state(struct pf_krule *r, struct pf_krule *nr, struct pf_krule *a, if (r->rt) { /* pf_map_addr increases the reason counters */ if ((reason = pf_map_addr(pd->af, r, pd->src, &s->rt_addr, - &s->rt_kif, NULL, &sn)) != 0) { - pf_src_tree_remove_state(s); - s->timeout = PFTM_UNLINKED; - STATE_DEC_COUNTERS(s); - pf_free_state(s); + &s->rt_kif, NULL, &sn)) != 0) goto csfailed; - } s->rt = r->rt; } @@ -4947,11 +4942,7 @@ pf_create_state(struct pf_krule *r, struct pf_krule *nr, struct pf_krule *a, (pd->dir == PF_IN) ? sk : nk, (pd->dir == PF_IN) ? nk : sk, s)) { REASON_SET(&reason, PFRES_STATEINS); - pf_src_tree_remove_state(s); - s->timeout = PFTM_UNLINKED; - STATE_DEC_COUNTERS(s); - pf_free_state(s); - return (PF_DROP); + goto drop; } else *sm = s; @@ -5020,13 +5011,14 @@ csfailed: PF_SRC_NODE_UNLOCK(nsn); } - return (PF_DROP); - drop: - pf_src_tree_remove_state(s); - s->timeout = PFTM_UNLINKED; - STATE_DEC_COUNTERS(s); - pf_free_state(s); + if (s != NULL) { + pf_src_tree_remove_state(s); + s->timeout = PFTM_UNLINKED; + STATE_DEC_COUNTERS(s); + pf_free_state(s); + } + return (PF_DROP); } From nobody Mon Sep 11 06:56:44 2023 X-Original-To: dev-commits-src-main@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 4Rkcvc1wFHz4t5Zp; Mon, 11 Sep 2023 06:56: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rkcvc1Z5yz4QcT; Mon, 11 Sep 2023 06:56:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694415404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c/5pFb15ARNa5yncvOKaX5ch+ih9mGt8iCyIjRDmCjw=; b=F0JyoddMSzn0ZoUeX1cFV2+74CVh2Xw54Dj+qEqCL1UTSDO61AagU258yJBDkPsWWl7fKk dl2IJPNrdO+7hWQslgQCcBfZKp9RbUN0lykKaI02nqEcct7aEe8w7HbX+VvabYYubIoYFB 0BWUt/Q4SXQJVVVcvXkBU/o4KUv2y3mMGkMEudVatY9haICPGaAq2RH7qEDOtEzo+6i5tT LiqcSij/L3rtWNekeYVaVcMttQj/H2zeNMH2mWMZKpLZxbi7uU5jJ7qBYTWNfgOwWi0AMi 1o1tHZIIRXpvG8sNhlNBTbZINUyV5eIkbSMNY1KbvZovJ0h6xyr1n2icfYk5oA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694415404; a=rsa-sha256; cv=none; b=F7qZ/qn/oL2nDp/wKwJBOPUmOXls3DWhJAK1RFmICRXoLtp66djNz9aj8YyXx0izsEzrgT TbrC7W5PCxX1G+KStaeXorpVc3xjgUCV4JeBA3mw5on3uATzBdraADiwkFpn0AoWOjr3S9 WsnVg/ATflNEUjL4EEje6dg4ShvOVCU2I57/v6Hq64WcKQ1cOJaRIixxACGuQPBoecWxgh hORHWl4Kb3CzXOxjqRzsK7jfjyqDTJnrVuUAKrMt8HWKsKi3Tu/EzdujupAbXiQ1OlquR5 xVI0OhboP/zVTaKMk6cW0YmmEusxCL0PBIBkFyxJaercIN7cKUW9Pzciiyl6MA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694415404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c/5pFb15ARNa5yncvOKaX5ch+ih9mGt8iCyIjRDmCjw=; b=THxndjETaP5oi9ExgsDbW21X61YgeZQelxa1reDe+X2HCFWXux0yDxaNP1Al+2lhLQB6Kg St8mhbi4n+7HR99mJqRdulHVm5/iqtCPtgYYX+FlJRGYn9TsuWkhRJYPXfk3WwVg1vOzhJ y1VhH/p+d4d5CF+5+w0wUm0u26GR9JAL+9WW/LL/o5ujWctYZ9tzrvjdYfsg2SuRPNtBQ2 BXCiyI9DxGmz1gUjZ6/Tyzx++TL0Q9Pcw5GMCID6izvCQZupkJQuqB09cSKe1D45LZwelT 6S1ukfSGQisoWW3MaaX789PfUYJJDW/MMzjydzNmHscJ+EKzxqX6/HZzVOO6dw== 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 4Rkcvc0cvnzfWj; Mon, 11 Sep 2023 06:56:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38B6uixo092113; Mon, 11 Sep 2023 06:56:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38B6uiiS092110; Mon, 11 Sep 2023 06:56:44 GMT (envelope-from git) Date: Mon, 11 Sep 2023 06:56:44 GMT Message-Id: <202309110656.38B6uiiS092110@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore <dougm@FreeBSD.org> Subject: git: a494d30465f2 - main - radix_trie: have vm_radix use pctrie code List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a494d30465f21e8cb014a5c788a43001397325d7 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=a494d30465f21e8cb014a5c788a43001397325d7 commit a494d30465f21e8cb014a5c788a43001397325d7 Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2023-09-11 06:53:40 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2023-09-11 06:53:40 +0000 radix_trie: have vm_radix use pctrie code Implement everything currently in vm_radix.c with calls to functions in subr_pctrie.c, asccessed via the interface provided by the DEFINE_PCTRIE_SMR macro. Reviewed by: alc, markj Tested by: pho Differential Revision: https://reviews.freebsd.org/D41344 --- sys/vm/_vm_radix.h | 9 +- sys/vm/vm_radix.c | 696 +---------------------------------------------------- sys/vm/vm_radix.h | 113 +++++++-- 3 files changed, 109 insertions(+), 709 deletions(-) diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h index 01eb25a9dccf..2d9b05c7b52a 100644 --- a/sys/vm/_vm_radix.h +++ b/sys/vm/_vm_radix.h @@ -31,16 +31,13 @@ #ifndef __VM_RADIX_H_ #define __VM_RADIX_H_ -/* - * Radix tree node. - */ -struct vm_radix_node; +#include <sys/_pctrie.h> /* - * Radix tree root. + * Radix tree */ struct vm_radix { - struct vm_radix_node *rt_root; + struct pctrie rt_trie; }; #endif /* !__VM_RADIX_H_ */ diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c index 768a56ed76f7..b8c693eca66f 100644 --- a/sys/vm/vm_radix.c +++ b/sys/vm/vm_radix.c @@ -54,302 +54,26 @@ #include "opt_ddb.h" #include <sys/param.h> -#include <sys/systm.h> -#include <sys/kernel.h> -#include <sys/libkern.h> -#include <sys/proc.h> -#include <sys/vmmeter.h> -#include <sys/smr.h> -#include <sys/smr_types.h> +#include <sys/pctrie.h> #include <vm/uma.h> #include <vm/vm.h> -#include <vm/vm_param.h> -#include <vm/vm_object.h> #include <vm/vm_page.h> #include <vm/vm_radix.h> -#ifdef DDB -#include <ddb/ddb.h> -#endif - -/* - * These widths should allow the pointers to a node's children to fit within - * a single cache line. The extra levels from a narrow width should not be - * a problem thanks to path compression. - */ -#ifdef __LP64__ -#define VM_RADIX_WIDTH 4 -#else -#define VM_RADIX_WIDTH 3 -#endif - -#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH) -#define VM_RADIX_MASK (VM_RADIX_COUNT - 1) -#define VM_RADIX_LIMIT \ - (howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1) - -#if VM_RADIX_WIDTH == 3 -typedef uint8_t rn_popmap_t; -#elif VM_RADIX_WIDTH == 4 -typedef uint16_t rn_popmap_t; -#elif VM_RADIX_WIDTH == 5 -typedef uint32_t rn_popmap_t; -#else -#error Unsupported width -#endif -_Static_assert(sizeof(rn_popmap_t) <= sizeof(int), - "rn_popmap_t too wide"); - -/* Set of all flag bits stored in node pointers. */ -#define VM_RADIX_FLAGS (VM_RADIX_ISLEAF) -#define VM_RADIX_PAD VM_RADIX_FLAGS - -enum vm_radix_access { SMR, LOCKED, UNSERIALIZED }; - -struct vm_radix_node; -typedef SMR_POINTER(struct vm_radix_node *) smrnode_t; - -struct vm_radix_node { - vm_pindex_t rn_owner; /* Owner of record. */ - rn_popmap_t rn_popmap; /* Valid children. */ - uint8_t rn_clev; /* Level * WIDTH. */ - smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */ -}; - static uma_zone_t vm_radix_node_zone; -static smr_t vm_radix_smr; - -static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, - enum vm_radix_access access); - -/* - * Map index to an array position for the children of rnode, - */ -static __inline int -vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index) -{ - return ((index >> rnode->rn_clev) & VM_RADIX_MASK); -} - -/* - * Returns true if index does not belong to the specified rnode. Otherwise, - * sets slot value, and returns false. - */ -static __inline bool -vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot) -{ - index = (index - rnode->rn_owner) >> rnode->rn_clev; - if (index >= VM_RADIX_COUNT) - return (true); - *slot = index; - return (false); -} - -/* - * Allocate a radix node. - */ -static struct vm_radix_node * -vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind) -{ - struct vm_radix_node *rnode; - - rnode = uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT); - if (rnode == NULL) - return (NULL); - - /* - * We want to clear the last child pointer after the final section - * has exited so lookup can not return false negatives. It is done - * here because it will be cache-cold in the dtor callback. - */ - if (rnode->rn_popmap != 0) { - vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1], - VM_RADIX_NULL, UNSERIALIZED); - rnode->rn_popmap = 0; - } - - /* - * From the highest-order bit where the indexes differ, - * compute the highest level in the trie where they differ. Then, - * compute the least index of this subtrie. - */ - KASSERT(index != newind, ("%s: passing the same key value %jx", - __func__, (uintmax_t)index)); - _Static_assert(sizeof(long long) >= sizeof(vm_pindex_t), - "vm_pindex_t too wide"); - _Static_assert(sizeof(vm_pindex_t) * NBBY <= - (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow"); - rnode->rn_clev = rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH); - rnode->rn_owner = VM_RADIX_COUNT; - rnode->rn_owner = index & -(rnode->rn_owner << rnode->rn_clev); - return (rnode); -} - -/* - * Free radix node. - */ -static __inline void -vm_radix_node_put(struct vm_radix_node *rnode) -{ -#ifdef INVARIANTS - int slot; - - KASSERT(powerof2(rnode->rn_popmap), - ("vm_radix_node_put: rnode %p has too many children %04x", rnode, - rnode->rn_popmap)); - for (slot = 0; slot < VM_RADIX_COUNT; slot++) { - if ((rnode->rn_popmap & (1 << slot)) != 0) - continue; - KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) == - VM_RADIX_NULL, - ("vm_radix_node_put: rnode %p has a child", rnode)); - } -#endif - uma_zfree_smr(vm_radix_node_zone, rnode); -} - -/* - * Fetch a node pointer from a slot in another node. - */ -static __inline struct vm_radix_node * -vm_radix_node_load(smrnode_t *p, enum vm_radix_access access) -{ - - switch (access) { - case UNSERIALIZED: - return (smr_unserialized_load(p, true)); - case LOCKED: - return (smr_serialized_load(p, true)); - case SMR: - return (smr_entered_load(p, vm_radix_smr)); - } - __assert_unreachable(); -} - -static __inline void -vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, - enum vm_radix_access access) -{ - - switch (access) { - case UNSERIALIZED: - smr_unserialized_store(p, v, true); - break; - case LOCKED: - smr_serialized_store(p, v, true); - break; - case SMR: - panic("vm_radix_node_store: Not supported in smr section."); - } -} - -/* - * Get the root node for a radix tree. - */ -static __inline struct vm_radix_node * -vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access) -{ +smr_t vm_radix_smr; - return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access)); -} - -/* - * Set the root node for a radix tree. - */ -static __inline void -vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode, - enum vm_radix_access access) -{ - - vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access); -} - -/* - * Returns TRUE if the specified radix node is a leaf and FALSE otherwise. - */ -static __inline bool -vm_radix_isleaf(struct vm_radix_node *rnode) -{ - - return (((uintptr_t)rnode & VM_RADIX_ISLEAF) != 0); -} - -/* - * Returns page cast to radix node with leaf bit set. - */ -static __inline struct vm_radix_node * -vm_radix_toleaf(vm_page_t page) -{ - return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF)); -} - -/* - * Returns the associated page extracted from rnode. - */ -static __inline vm_page_t -vm_radix_topage(struct vm_radix_node *rnode) -{ - - return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS)); -} - -/* - * Make 'child' a child of 'rnode'. - */ -static __inline void -vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index, - struct vm_radix_node *child, enum vm_radix_access access) -{ - int slot; - - slot = vm_radix_slot(rnode, index); - vm_radix_node_store(&rnode->rn_child[slot], child, access); - rnode->rn_popmap ^= 1 << slot; - KASSERT((rnode->rn_popmap & (1 << slot)) != 0, - ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); -} - -/* - * Internal helper for vm_radix_reclaim_allnodes(). - * This function is recursive. - */ -static void -vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode) +void * +vm_radix_node_alloc(struct pctrie *ptree) { - struct vm_radix_node *child; - int slot; - - while (rnode->rn_popmap != 0) { - slot = ffs(rnode->rn_popmap) - 1; - child = vm_radix_node_load(&rnode->rn_child[slot], - UNSERIALIZED); - KASSERT(child != VM_RADIX_NULL, - ("%s: bad popmap slot %d in rnode %p", - __func__, slot, rnode)); - if (!vm_radix_isleaf(child)) - vm_radix_reclaim_allnodes_int(child); - rnode->rn_popmap ^= 1 << slot; - vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, - UNSERIALIZED); - } - vm_radix_node_put(rnode); + return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT)); } -/* - * radix node zone initializer. - */ -static int -vm_radix_zone_init(void *mem, int size, int flags) +void +vm_radix_node_free(struct pctrie *ptree, void *node) { - struct vm_radix_node *rnode; - - rnode = mem; - rnode->rn_popmap = 0; - for (int i = 0; i < nitems(rnode->rn_child); i++) - vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL, - UNSERIALIZED); - return (0); + uma_zfree_smr(vm_radix_node_zone, node); } #ifndef UMA_MD_SMALL_ALLOC @@ -383,412 +107,14 @@ void vm_radix_zinit(void) { - vm_radix_node_zone = uma_zcreate("RADIX NODE", - sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL, - VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); + vm_radix_node_zone = uma_zcreate("RADIX NODE", pctrie_node_size(), + NULL, NULL, pctrie_zone_init, NULL, + PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); vm_radix_smr = uma_zone_get_smr(vm_radix_node_zone); } -/* - * Inserts the key-value pair into the trie. - * Panics if the key already exists. - */ -int -vm_radix_insert(struct vm_radix *rtree, vm_page_t page) -{ - vm_pindex_t index, newind; - struct vm_radix_node *leaf, *parent, *rnode; - smrnode_t *parentp; - int slot; - - index = page->pindex; - leaf = vm_radix_toleaf(page); - - /* - * The owner of record for root is not really important because it - * will never be used. - */ - rnode = vm_radix_root_load(rtree, LOCKED); - parent = NULL; - for (;;) { - if (vm_radix_isleaf(rnode)) { - if (rnode == VM_RADIX_NULL) { - if (parent == NULL) - rtree->rt_root = leaf; - else - vm_radix_addnode(parent, index, leaf, - LOCKED); - return (0); - } - newind = vm_radix_topage(rnode)->pindex; - if (newind == index) - panic("%s: key %jx is already present", - __func__, (uintmax_t)index); - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) { - newind = rnode->rn_owner; - break; - } - parent = rnode; - rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - - /* - * A new node is needed because the right insertion level is reached. - * Setup the new intermediate node and add the 2 children: the - * new object and the older edge or object. - */ - parentp = (parent != NULL) ? &parent->rn_child[slot]: - (smrnode_t *)&rtree->rt_root; - parent = vm_radix_node_get(index, newind); - if (parent == NULL) - return (ENOMEM); - /* These writes are not yet visible due to ordering. */ - vm_radix_addnode(parent, index, leaf, UNSERIALIZED); - vm_radix_addnode(parent, newind, rnode, UNSERIALIZED); - /* Serializing write to make the above visible. */ - vm_radix_node_store(parentp, parent, LOCKED); - return (0); -} - -/* - * Returns the value stored at the index. If the index is not present, - * NULL is returned. - */ -static __always_inline vm_page_t -_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index, - enum vm_radix_access access) -{ - struct vm_radix_node *rnode; - vm_page_t m; - int slot; - - rnode = vm_radix_root_load(rtree, access); - for (;;) { - if (vm_radix_isleaf(rnode)) { - if ((m = vm_radix_topage(rnode)) != NULL && - m->pindex == index) - return (m); - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) - break; - rnode = vm_radix_node_load(&rnode->rn_child[slot], access); - } - return (NULL); -} - -/* - * Returns the value stored at the index assuming there is an external lock. - * - * If the index is not present, NULL is returned. - */ -vm_page_t -vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) -{ - - return _vm_radix_lookup(rtree, index, LOCKED); -} - -/* - * Returns the value stored at the index without requiring an external lock. - * - * If the index is not present, NULL is returned. - */ -vm_page_t -vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) -{ - vm_page_t m; - - smr_enter(vm_radix_smr); - m = _vm_radix_lookup(rtree, index, SMR); - smr_exit(vm_radix_smr); - - return (m); -} - -/* - * Returns the page with the least pindex that is greater than or equal to the - * specified pindex, or NULL if there are no such pages. - * - * Requires that access be externally synchronized by a lock. - */ -vm_page_t -vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) -{ - struct vm_radix_node *rnode, *succ; - vm_page_t m; - int slot; - - /* - * Descend the trie as if performing an ordinary lookup for the page - * with the specified pindex. However, unlike an ordinary lookup, as we - * descend the trie, we use "succ" to remember the last branching-off - * point, that is, the interior node under which the page with the least - * pindex that is both outside our current path down the trie and more - * than the specified pindex resides. (The node's popmap makes it fast - * and easy to recognize a branching-off point.) If our ordinary lookup - * fails to yield a page with a pindex that is greater than or equal to - * the specified pindex, then we will exit this loop and perform a - * lookup starting from "succ". If "succ" is not NULL, then that lookup - * is guaranteed to succeed. - */ - rnode = vm_radix_root_load(rtree, LOCKED); - succ = NULL; - for (;;) { - if (vm_radix_isleaf(rnode)) { - if ((m = vm_radix_topage(rnode)) != NULL && - m->pindex >= index) - return (m); - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) { - /* - * If all pages in this subtree have pindex > index, - * then the page in this subtree with the least pindex - * is the answer. - */ - if (rnode->rn_owner > index) - succ = rnode; - break; - } - - /* - * Just in case the next search step leads to a subtree of all - * pages with pindex < index, check popmap to see if a next - * bigger step, to a subtree of all pages with pindex > index, - * is available. If so, remember to restart the search here. - */ - if ((rnode->rn_popmap >> slot) > 1) - succ = rnode; - rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - - /* - * Restart the search from the last place visited in the subtree that - * included some pages with pindex > index, if there was such a place. - */ - if (succ == NULL) - return (NULL); - if (succ != rnode) { - /* - * Take a step to the next bigger sibling of the node chosen - * last time. In that subtree, all pages have pindex > index. - */ - slot = vm_radix_slot(succ, index) + 1; - KASSERT((succ->rn_popmap >> slot) != 0, - ("%s: no popmap siblings past slot %d in node %p", - __func__, slot, succ)); - slot += ffs(succ->rn_popmap >> slot) - 1; - succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED); - } - - /* - * Find the page in the subtree rooted at "succ" with the least pindex. - */ - while (!vm_radix_isleaf(succ)) { - KASSERT(succ->rn_popmap != 0, - ("%s: no popmap children in node %p", __func__, succ)); - slot = ffs(succ->rn_popmap) - 1; - succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED); - } - return (vm_radix_topage(succ)); -} - -/* - * Returns the page with the greatest pindex that is less than or equal to the - * specified pindex, or NULL if there are no such pages. - * - * Requires that access be externally synchronized by a lock. - */ -vm_page_t -vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) -{ - struct vm_radix_node *pred, *rnode; - vm_page_t m; - int slot; - - /* - * Mirror the implementation of vm_radix_lookup_ge, described above. - */ - rnode = vm_radix_root_load(rtree, LOCKED); - pred = NULL; - for (;;) { - if (vm_radix_isleaf(rnode)) { - if ((m = vm_radix_topage(rnode)) != NULL && - m->pindex <= index) - return (m); - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) { - if (rnode->rn_owner < index) - pred = rnode; - break; - } - if ((rnode->rn_popmap & ((1 << slot) - 1)) != 0) - pred = rnode; - rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - if (pred == NULL) - return (NULL); - if (pred != rnode) { - slot = vm_radix_slot(pred, index); - KASSERT((pred->rn_popmap & ((1 << slot) - 1)) != 0, - ("%s: no popmap siblings before slot %d in node %p", - __func__, slot, pred)); - slot = fls(pred->rn_popmap & ((1 << slot) - 1)) - 1; - pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED); - } - while (!vm_radix_isleaf(pred)) { - KASSERT(pred->rn_popmap != 0, - ("%s: no popmap children in node %p", __func__, pred)); - slot = fls(pred->rn_popmap) - 1; - pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED); - } - return (vm_radix_topage(pred)); -} - -/* - * Remove the specified index from the trie, and return the value stored at - * that index. If the index is not present, return NULL. - */ -vm_page_t -vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) -{ - struct vm_radix_node *child, *parent, *rnode; - vm_page_t m; - int slot; - - rnode = NULL; - child = vm_radix_root_load(rtree, LOCKED); - for (;;) { - if (vm_radix_isleaf(child)) - break; - parent = rnode; - rnode = child; - slot = vm_radix_slot(rnode, index); - child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - if ((m = vm_radix_topage(child)) == NULL || m->pindex != index) - return (NULL); - if (rnode == NULL) { - vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED); - return (m); - } - KASSERT((rnode->rn_popmap & (1 << slot)) != 0, - ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); - rnode->rn_popmap ^= 1 << slot; - vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED); - if (!powerof2(rnode->rn_popmap)) - return (m); - KASSERT(rnode->rn_popmap != 0, ("%s: bad popmap all zeroes", __func__)); - slot = ffs(rnode->rn_popmap) - 1; - child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - KASSERT(child != VM_RADIX_NULL, - ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); - if (parent == NULL) - vm_radix_root_store(rtree, child, LOCKED); - else { - slot = vm_radix_slot(parent, index); - KASSERT(rnode == - vm_radix_node_load(&parent->rn_child[slot], LOCKED), - ("%s: invalid child value", __func__)); - vm_radix_node_store(&parent->rn_child[slot], child, LOCKED); - } - /* - * The child is still valid and we can not zero the - * pointer until all smr references are gone. - */ - vm_radix_node_put(rnode); - return (m); -} - -/* - * Remove and free all the nodes from the radix tree. - * This function is recursive but there is a tight control on it as the - * maximum depth of the tree is fixed. - */ -void -vm_radix_reclaim_allnodes(struct vm_radix *rtree) -{ - struct vm_radix_node *root; - - root = vm_radix_root_load(rtree, LOCKED); - if (root == VM_RADIX_NULL) - return; - vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED); - if (!vm_radix_isleaf(root)) - vm_radix_reclaim_allnodes_int(root); -} - -/* - * Replace an existing page in the trie with another one. - * Panics if there is not an old page in the trie at the new page's index. - */ -vm_page_t -vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) -{ - struct vm_radix_node *leaf, *parent, *rnode; - vm_page_t m; - vm_pindex_t index; - int slot; - - leaf = vm_radix_toleaf(newpage); - index = newpage->pindex; - rnode = vm_radix_root_load(rtree, LOCKED); - parent = NULL; - for (;;) { - if (vm_radix_isleaf(rnode)) { - if ((m = vm_radix_topage(rnode)) != NULL && - m->pindex == index) { - if (parent == NULL) - rtree->rt_root = leaf; - else - vm_radix_node_store( - &parent->rn_child[slot], leaf, - LOCKED); - return (m); - } - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) - break; - parent = rnode; - rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - panic("%s: original replacing page not found", __func__); -} - void vm_radix_wait(void) { uma_zwait(vm_radix_node_zone); } - -#ifdef DDB -/* - * Show details about the given radix node. - */ -DB_SHOW_COMMAND(radixnode, db_show_radixnode) -{ - struct vm_radix_node *rnode, *tmp; - int slot; - rn_popmap_t popmap; - - if (!have_addr) - return; - rnode = (struct vm_radix_node *)addr; - db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n", - (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap, - rnode->rn_clev / VM_RADIX_WIDTH); - for (popmap = rnode->rn_popmap; popmap != 0; popmap ^= 1 << slot) { - slot = ffs(popmap) - 1; - tmp = vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED); - db_printf("slot: %d, val: %p, page: %p, clev: %d\n", - slot, (void *)tmp, - vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL, - rnode->rn_clev / VM_RADIX_WIDTH); - } -} -#endif /* DDB */ diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h index 231edda65102..a332618fc0e6 100644 --- a/sys/vm/vm_radix.h +++ b/sys/vm/vm_radix.h @@ -34,36 +34,113 @@ #include <vm/_vm_radix.h> #ifdef _KERNEL +#include <sys/pctrie.h> +#include <vm/vm.h> -int vm_radix_insert(struct vm_radix *rtree, vm_page_t page); void vm_radix_wait(void); -vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index); -vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index); -vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index); -vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index); -void vm_radix_reclaim_allnodes(struct vm_radix *rtree); -vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index); -vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage); void vm_radix_zinit(void); - -/* - * Each search path in the trie terminates at a leaf, which is a pointer to a - * page marked with a set 1-bit. A leaf may be associated with a null pointer - * to indicate no page there. - */ -#define VM_RADIX_ISLEAF 0x1 -#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF +void *vm_radix_node_alloc(struct pctrie *ptree); +void vm_radix_node_free(struct pctrie *ptree, void *node); +extern smr_t vm_radix_smr; static __inline void vm_radix_init(struct vm_radix *rtree) { - rtree->rt_root = VM_RADIX_NULL; + pctrie_init(&rtree->rt_trie); } static __inline bool vm_radix_is_empty(struct vm_radix *rtree) { - return (rtree->rt_root == VM_RADIX_NULL); + return (pctrie_is_empty(&rtree->rt_trie)); +} + +PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix_node_free, + vm_radix_smr); + +/* + * Inserts the key-value pair into the trie. + * Panics if the key already exists. + */ +static __inline int +vm_radix_insert(struct vm_radix *rtree, vm_page_t page) +{ + return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page)); +} + +/* + * Returns the value stored at the index assuming there is an external lock. + * + * If the index is not present, NULL is returned. + */ +static __inline vm_page_t +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index)); +} + +/* + * Returns the value stored at the index without requiring an external lock. + * + * If the index is not present, NULL is returned. + */ +static __inline vm_page_t +vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index)); +} + +/* + * Returns the page with the least pindex that is greater than or equal to the + * specified pindex, or NULL if there are no such pages. + * + * Requires that access be externally synchronized by a lock. + */ +static __inline vm_page_t +vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index)); +} + +/* + * Returns the page with the greatest pindex that is less than or equal to the + * specified pindex, or NULL if there are no such pages. + * + * Requires that access be externally synchronized by a lock. + */ +static __inline vm_page_t +vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index)); +} + +/* + * Remove the specified index from the trie, and return the value stored at + * that index. If the index is not present, return NULL. + */ +static __inline vm_page_t +vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index)); +} + +/* + * Remove and free all the nodes from the radix tree. + */ +static __inline void +vm_radix_reclaim_allnodes(struct vm_radix *rtree) +{ + VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie); +} + +/* + * Replace an existing page in the trie with another one. + * Panics if there is not an old page in the trie at the new page's index. + */ +static __inline vm_page_t +vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) +{ + return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage)); } #endif /* _KERNEL */ From nobody Mon Sep 11 07:19:37 2023 X-Original-To: dev-commits-src-main@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 4RkdQ75Rl4z4sM9N; Mon, 11 Sep 2023 07:19: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkdQ75HDJz3CSx; Mon, 11 Sep 2023 07:19:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694416783; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q7WJwO4UV5rDWGSYaUB4vePehnuofPHlTQf095QkxJg=; b=vMwF8NgQjQrIYtMG5YvcAcjkU/itd8zrljSo5RqgLPiSU8h2nreQhLhVkCHLdspX10xRZO 02ihYAFD5tMKlUkSME7DcmP8dQ6i28fpyELGAjdokRVu3XSOour/N9xdjwthEHnoTzLAXI unyieizPEwYoKOdCE3Lj++oe7bA74VR1OGVkPd9ybpaqNHf/skE2TJtsP7E4zFnvaRE/MI 4udlhiMga8XmcXHM4vioP4UuNidaImVqybPNIPyUe2vgCrsLFUe0imTeUMdOn+TFggVgn2 pApx55Jh1iTCVy2uoQuNrGSm9a/aPUoX+9f7M9cyTaPNX/Z2Zdt5bIAGHH1pSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694416783; a=rsa-sha256; cv=none; b=v0CL/GT952G0A37U3+TUPBxpT6h9DNSHmobuFQwJwGwke1PovnDQZRVtqMMX3EEib0cZSl SnRxe1ccLff8eO2ttSUrlJQ1SkdWNxcOga0MU6RS5fZkJyOiXNpzOdxNgBuE+iLTW47dSJ w53Sn+MNF3VulP+lyrfMtWRzswweFM/aCXdyyLL0RXO7aXhi2KNgwzKsNQpqombn0j7yob wolzbJi3CFFGG+jDK8VcjXd3Z3yd2lXiYdytaQeppeV4tTZkYDXOxhewDUHhIhfTvGSiIW rneX5+V/OpslekDF8RhL/0v7VbQNOwZyZ6QrI56enLlRM/Jle3mIm4/6AaQxLg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694416783; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q7WJwO4UV5rDWGSYaUB4vePehnuofPHlTQf095QkxJg=; b=mmljZiAmdDSZKU9X8iRkx0tZKxbkHSRI3NSqh0lz/KFAsD6+Qvl2Bx6r8Hk9yqOgVpWDrE /Vm92fiSv8TAkdb1m8APcSft35TtfNkCR04IvWDEK09syCyqYnllYuk0zNJbNQ8e8dO+nK LsvGY4EpXnwr1OD7eGfgGYHSBiGbPxV6YOPwcVMbHHdy+3acXGB5aFfaAz2DvFsQhbOMCv M5V3spOO39vuFIIV7MQMD9nhj0sn0YTYKWf2c4x3eQFezhSTNl9Bkw65VpU9Q1/T1woDg3 dpExjr/fsgfmFveET9qL25eVto86EOuAhVQf+IcH/cnZqD7pnrzJVQ91iP0P3Q== 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 4RkdQ74KgCzflx; Mon, 11 Sep 2023 07:19:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38B7JhpX028048; Mon, 11 Sep 2023 07:19:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38B7Jbui028038; Mon, 11 Sep 2023 07:19:37 GMT (envelope-from git) Date: Mon, 11 Sep 2023 07:19:37 GMT Message-Id: <202309110719.38B7Jbui028038@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Martin Matuska <mm@FreeBSD.org> Subject: git: 3159b89b6198 - main - zfs: merge openzfs/zfs@0ee9b0239 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3159b89b6198c9a1d903c9de6654c6d863728617 Auto-Submitted: auto-generated The branch main has been updated by mm: URL: https://cgit.FreeBSD.org/src/commit/?id=3159b89b6198c9a1d903c9de6654c6d863728617 commit 3159b89b6198c9a1d903c9de6654c6d863728617 Merge: a494d30465f2 0ee9b02390d5 Author: Martin Matuska <mm@FreeBSD.org> AuthorDate: 2023-09-11 07:13:30 +0000 Commit: Martin Matuska <mm@FreeBSD.org> CommitDate: 2023-09-11 07:18:48 +0000 zfs: merge openzfs/zfs@0ee9b0239 Notable upstream pull request merges: #15251 Add more constraints for block cloning Obtained from: OpenZFS OpenZFS commit: 0ee9b02390d57c10a4dee0f3d19fcb115b424ca5 sys/contrib/openzfs/module/os/linux/spl/spl-proc.c | 21 ++++++++++++++++++--- .../openzfs/module/os/linux/zfs/qat_compress.c | 2 ++ sys/contrib/openzfs/module/zfs/zfs_vnops.c | 21 +++++++++++++++++++-- .../cli_root/zdb/zdb_block_size_histogram.ksh | 8 ++++---- sys/modules/zfs/zfs_config.h | 4 ++-- sys/modules/zfs/zfs_gitrev.h | 2 +- 6 files changed, 46 insertions(+), 12 deletions(-) diff --cc sys/modules/zfs/zfs_config.h index 49b699b24018,000000000000..55cb3596bc17 mode 100644,000000..100644 --- a/sys/modules/zfs/zfs_config.h +++ b/sys/modules/zfs/zfs_config.h @@@ -1,1134 -1,0 +1,1134 @@@ +/* + */ + +/* zfs_config.h. Generated from zfs_config.h.in by configure. */ +/* zfs_config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* bio_end_io_t wants 1 arg */ +/* #undef HAVE_1ARG_BIO_END_IO_T */ + +/* lookup_bdev() wants 1 arg */ +/* #undef HAVE_1ARG_LOOKUP_BDEV */ + +/* submit_bio() wants 1 arg */ +/* #undef HAVE_1ARG_SUBMIT_BIO */ + +/* bdi_setup_and_register() wants 2 args */ +/* #undef HAVE_2ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 2 args */ +/* #undef HAVE_2ARGS_VFS_GETATTR */ + +/* zlib_deflate_workspacesize() wants 2 args */ +/* #undef HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE */ + +/* bdi_setup_and_register() wants 3 args */ +/* #undef HAVE_3ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 3 args */ +/* #undef HAVE_3ARGS_VFS_GETATTR */ + +/* vfs_getattr wants 4 args */ +/* #undef HAVE_4ARGS_VFS_GETATTR */ + +/* kernel has access_ok with 'type' parameter */ +/* #undef HAVE_ACCESS_OK_TYPE */ + +/* posix_acl has refcount_t */ +/* #undef HAVE_ACL_REFCOUNT */ + +/* add_disk() returns int */ +/* #undef HAVE_ADD_DISK_RET */ + +/* Define if host toolchain supports AES */ +#define HAVE_AES 1 + +/* Define if you have [rt] */ +#define HAVE_AIO_H 1 + +#ifdef __amd64__ +#ifndef RESCUE +/* Define if host toolchain supports AVX */ +#define HAVE_AVX 1 +#endif + +/* Define if host toolchain supports AVX2 */ +#define HAVE_AVX2 1 + +/* Define if host toolchain supports AVX512BW */ +#define HAVE_AVX512BW 1 + +/* Define if host toolchain supports AVX512CD */ +#define HAVE_AVX512CD 1 + +/* Define if host toolchain supports AVX512DQ */ +#define HAVE_AVX512DQ 1 + +/* Define if host toolchain supports AVX512ER */ +#define HAVE_AVX512ER 1 + +/* Define if host toolchain supports AVX512F */ +#define HAVE_AVX512F 1 + +/* Define if host toolchain supports AVX512IFMA */ +#define HAVE_AVX512IFMA 1 + +/* Define if host toolchain supports AVX512PF */ +#define HAVE_AVX512PF 1 + +/* Define if host toolchain supports AVX512VBMI */ +#define HAVE_AVX512VBMI 1 + +/* Define if host toolchain supports AVX512VL */ +#define HAVE_AVX512VL 1 +#endif + +/* bdevname() is available */ +/* #undef HAVE_BDEVNAME */ + +/* bdev_check_media_change() exists */ +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_63 */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_OLD */ + +/* bdev_kobj() exists */ +/* #undef HAVE_BDEV_KOBJ */ + +/* bdev_max_discard_sectors() is available */ +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */ + +/* bdev_max_secure_erase_sectors() is available */ +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */ + +/* block_device_operations->submit_bio() returns void */ +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */ + +/* bdev_whole() is available */ +/* #undef HAVE_BDEV_WHOLE */ + +/* bio_alloc() takes 4 arguments */ +/* #undef HAVE_BIO_ALLOC_4ARG */ + +/* bio->bi_bdev->bd_disk exists */ +/* #undef HAVE_BIO_BDEV_DISK */ + +/* bio->bi_opf is defined */ +/* #undef HAVE_BIO_BI_OPF */ + +/* bio->bi_status exists */ +/* #undef HAVE_BIO_BI_STATUS */ + +/* bio has bi_iter */ +/* #undef HAVE_BIO_BVEC_ITER */ + +/* bio_*_io_acct() available */ +/* #undef HAVE_BIO_IO_ACCT */ + +/* bio_max_segs() is implemented */ +/* #undef HAVE_BIO_MAX_SEGS */ + +/* bio_set_dev() is available */ +/* #undef HAVE_BIO_SET_DEV */ + +/* bio_set_dev() GPL-only */ +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ + +/* bio_set_dev() is a macro */ +/* #undef HAVE_BIO_SET_DEV_MACRO */ + +/* bio_set_op_attrs is available */ +/* #undef HAVE_BIO_SET_OP_ATTRS */ + +/* blkdev_get_by_path() exists and takes 4 args */ +/* #undef HAVE_BLKDEV_GET_BY_PATH_4ARG */ + +/* blkdev_get_by_path() handles ERESTARTSYS */ +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */ + +/* blkdev_issue_discard() is available */ +/* #undef HAVE_BLKDEV_ISSUE_DISCARD */ + +/* blkdev_issue_secure_erase() is available */ +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */ + +/* blkdev_put() accepts void* as arg 2 */ +/* #undef HAVE_BLKDEV_PUT_HOLDER */ + +/* blkdev_reread_part() exists */ +/* #undef HAVE_BLKDEV_REREAD_PART */ + +/* blkg_tryget() is available */ +/* #undef HAVE_BLKG_TRYGET */ + +/* blkg_tryget() GPL-only */ +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ + +/* blk_alloc_disk() exists */ +/* #undef HAVE_BLK_ALLOC_DISK */ + +/* blk_alloc_queue() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ + +/* blk_alloc_queue_rh() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ + +/* blk_cleanup_disk() exists */ +/* #undef HAVE_BLK_CLEANUP_DISK */ + +/* blk_mode_t is defined */ +/* #undef HAVE_BLK_MODE_T */ + +/* block multiqueue is available */ +/* #undef HAVE_BLK_MQ */ + +/* blk queue backing_dev_info is dynamic */ +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ + +/* blk_queue_discard() is available */ +/* #undef HAVE_BLK_QUEUE_DISCARD */ + +/* blk_queue_flag_clear() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_CLEAR */ + +/* blk_queue_flag_set() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_SET */ + +/* blk_queue_flush() is available */ +/* #undef HAVE_BLK_QUEUE_FLUSH */ + +/* blk_queue_flush() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_FLUSH_GPL_ONLY */ + +/* blk_queue_secdiscard() is available */ +/* #undef HAVE_BLK_QUEUE_SECDISCARD */ + +/* blk_queue_secure_erase() is available */ +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ + +/* blk_queue_update_readahead() exists */ +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */ + +/* blk_queue_write_cache() exists */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE */ + +/* blk_queue_write_cache() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE_GPL_ONLY */ + +/* BLK_STS_RESV_CONFLICT is defined */ +/* #undef HAVE_BLK_STS_RESV_CONFLICT */ + +/* Define if release() in block_device_operations takes 1 arg */ +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_1ARG */ + +/* Define if revalidate_disk() in block_device_operations */ +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */ + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYCURRENT */ + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ + +/* check_disk_change() exists */ +/* #undef HAVE_CHECK_DISK_CHANGE */ + +/* clear_inode() is available */ +/* #undef HAVE_CLEAR_INODE */ + +/* dentry uses const struct dentry_operations */ +/* #undef HAVE_CONST_DENTRY_OPERATIONS */ + +/* copy_from_iter() is available */ +/* #undef HAVE_COPY_FROM_ITER */ + +/* copy_splice_read exists */ +/* #undef HAVE_COPY_SPLICE_READ */ + +/* copy_to_iter() is available */ +/* #undef HAVE_COPY_TO_ITER */ + +/* cpu_has_feature() is GPL-only */ +/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */ + +/* yes */ +/* #undef HAVE_CPU_HOTPLUG */ + +/* current_time() exists */ +/* #undef HAVE_CURRENT_TIME */ + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* #undef HAVE_DCGETTEXT */ + +/* DECLARE_EVENT_CLASS() is available */ +/* #undef HAVE_DECLARE_EVENT_CLASS */ + +/* dentry aliases are in d_u member */ +/* #undef HAVE_DENTRY_D_U_ALIASES */ + +/* dequeue_signal() takes 4 arguments */ +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */ + +/* lookup_bdev() wants dev_t arg */ +/* #undef HAVE_DEVT_LOOKUP_BDEV */ + +/* sops->dirty_inode() wants flags */ +/* #undef HAVE_DIRTY_INODE_WITH_FLAGS */ + +/* disk_check_media_change() exists */ +/* #undef HAVE_DISK_CHECK_MEDIA_CHANGE */ + +/* disk_*_io_acct() available */ +/* #undef HAVE_DISK_IO_ACCT */ + +/* disk_update_readahead() exists */ +/* #undef HAVE_DISK_UPDATE_READAHEAD */ + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#define HAVE_DLFCN_H 1 + +/* d_make_root() is available */ +/* #undef HAVE_D_MAKE_ROOT */ + +/* d_prune_aliases() is available */ +/* #undef HAVE_D_PRUNE_ALIASES */ + +/* dops->d_revalidate() operation takes nameidata */ +/* #undef HAVE_D_REVALIDATE_NAMEIDATA */ + +/* eops->encode_fh() wants child and parent inodes */ +/* #undef HAVE_ENCODE_FH_WITH_INODE */ + +/* sops->evict_inode() exists */ +/* #undef HAVE_EVICT_INODE */ + +/* FALLOC_FL_ZERO_RANGE is defined */ +/* #undef HAVE_FALLOC_FL_ZERO_RANGE */ + +/* fault_in_iov_iter_readable() is available */ +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */ + +/* filemap_range_has_page() is available */ +/* #undef HAVE_FILEMAP_RANGE_HAS_PAGE */ + +/* fops->aio_fsync() exists */ +/* #undef HAVE_FILE_AIO_FSYNC */ + +/* file_dentry() is available */ +/* #undef HAVE_FILE_DENTRY */ + +/* fops->fadvise() exists */ +/* #undef HAVE_FILE_FADVISE */ + +/* file_inode() is available */ +/* #undef HAVE_FILE_INODE */ + +/* flush_dcache_page() is GPL-only */ +/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */ + +/* iops->follow_link() cookie */ +/* #undef HAVE_FOLLOW_LINK_COOKIE */ + +/* iops->follow_link() nameidata */ +/* #undef HAVE_FOLLOW_LINK_NAMEIDATA */ + +/* Define if compiler supports -Wformat-overflow */ +/* #undef HAVE_FORMAT_OVERFLOW */ + +/* fops->fsync() with range */ +/* #undef HAVE_FSYNC_RANGE */ + +/* fops->fsync() without dentry */ +/* #undef HAVE_FSYNC_WITHOUT_DENTRY */ + +/* yes */ +/* #undef HAVE_GENERIC_FADVISE */ + +/* generic_fillattr requires struct mnt_idmap* */ +/* #undef HAVE_GENERIC_FILLATTR_IDMAP */ + +/* generic_fillattr requires struct user_namespace* */ +/* #undef HAVE_GENERIC_FILLATTR_USERNS */ + +/* generic_*_io_acct() 3 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_3ARG */ + +/* generic_*_io_acct() 4 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ + +/* generic_readlink is global */ +/* #undef HAVE_GENERIC_READLINK */ + +/* generic_setxattr() exists */ +/* #undef HAVE_GENERIC_SETXATTR */ + +/* generic_write_checks() takes kiocb */ +/* #undef HAVE_GENERIC_WRITE_CHECKS_KIOCB */ + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* #undef HAVE_GETTEXT */ + +/* iops->get_acl() exists */ +/* #undef HAVE_GET_ACL */ + +/* iops->get_acl() takes rcu */ +/* #undef HAVE_GET_ACL_RCU */ + +/* has iops->get_inode_acl() */ +/* #undef HAVE_GET_INODE_ACL */ + +/* iops->get_link() cookie */ +/* #undef HAVE_GET_LINK_COOKIE */ + +/* iops->get_link() delayed */ +/* #undef HAVE_GET_LINK_DELAYED */ + +/* group_info->gid exists */ +/* #undef HAVE_GROUP_INFO_GID */ + +/* has_capability() is available */ +/* #undef HAVE_HAS_CAPABILITY */ + +/* iattr->ia_vfsuid and iattr->ia_vfsgid exist */ +/* #undef HAVE_IATTR_VFSID */ + +/* Define if you have the iconv() function and it works. */ +#define HAVE_ICONV 1 + +/* iops->getattr() takes struct mnt_idmap* */ +/* #undef HAVE_IDMAP_IOPS_GETATTR */ + +/* iops->setattr() takes struct mnt_idmap* */ +/* #undef HAVE_IDMAP_IOPS_SETATTR */ + +/* APIs for idmapped mount are present */ +/* #undef HAVE_IDMAP_MNT_API */ + +/* Define if compiler supports -Wimplicit-fallthrough */ +/* #undef HAVE_IMPLICIT_FALLTHROUGH */ + +/* Define if compiler supports -Winfinite-recursion */ +/* #undef HAVE_INFINITE_RECURSION */ + +/* yes */ +/* #undef HAVE_INODE_LOCK_SHARED */ + +/* inode_owner_or_capable() exists */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */ + +/* inode_owner_or_capable() takes mnt_idmap */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */ + +/* inode_owner_or_capable() takes user_ns */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */ + +/* inode_set_flags() exists */ +/* #undef HAVE_INODE_SET_FLAGS */ + +/* inode_set_iversion() exists */ +/* #undef HAVE_INODE_SET_IVERSION */ + +/* inode->i_*time's are timespec64 */ +/* #undef HAVE_INODE_TIMESPEC64_TIMES */ + +/* timestamp_truncate() exists */ +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* in_compat_syscall() is available */ +/* #undef HAVE_IN_COMPAT_SYSCALL */ + +/* iops->create() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_CREATE_IDMAP */ + +/* iops->create() takes struct user_namespace* */ +/* #undef HAVE_IOPS_CREATE_USERNS */ + +/* iops->mkdir() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_MKDIR_IDMAP */ + +/* iops->mkdir() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKDIR_USERNS */ + +/* iops->mknod() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_MKNOD_IDMAP */ + +/* iops->mknod() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKNOD_USERNS */ + +/* iops->permission() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_PERMISSION_IDMAP */ + +/* iops->permission() takes struct user_namespace* */ +/* #undef HAVE_IOPS_PERMISSION_USERNS */ + +/* iops->rename() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_RENAME_IDMAP */ + +/* iops->rename() takes struct user_namespace* */ +/* #undef HAVE_IOPS_RENAME_USERNS */ + +/* iops->setattr() exists */ +/* #undef HAVE_IOPS_SETATTR */ + +/* iops->symlink() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_SYMLINK_IDMAP */ + +/* iops->symlink() takes struct user_namespace* */ +/* #undef HAVE_IOPS_SYMLINK_USERNS */ + +/* iov_iter_advance() is available */ +/* #undef HAVE_IOV_ITER_ADVANCE */ + +/* iov_iter_count() is available */ +/* #undef HAVE_IOV_ITER_COUNT */ + +/* iov_iter_fault_in_readable() is available */ +/* #undef HAVE_IOV_ITER_FAULT_IN_READABLE */ + +/* iov_iter_revert() is available */ +/* #undef HAVE_IOV_ITER_REVERT */ + +/* iov_iter_type() is available */ +/* #undef HAVE_IOV_ITER_TYPE */ + +/* iov_iter types are available */ +/* #undef HAVE_IOV_ITER_TYPES */ + +/* yes */ +/* #undef HAVE_IO_SCHEDULE_TIMEOUT */ + +/* Define to 1 if you have the `issetugid' function. */ +#define HAVE_ISSETUGID 1 + +/* iter_iov() is available */ +/* #undef HAVE_ITER_IOV */ + +/* kernel has kernel_fpu_* functions */ +/* #undef HAVE_KERNEL_FPU */ + +/* kernel has asm/fpu/api.h */ +/* #undef HAVE_KERNEL_FPU_API_HEADER */ + +/* kernel fpu internal */ +/* #undef HAVE_KERNEL_FPU_INTERNAL */ + +/* kernel has asm/fpu/internal.h */ +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */ + +/* uncached_acl_sentinel() exists */ +/* #undef HAVE_KERNEL_GET_ACL_HANDLE_CACHE */ + +/* Define if compiler supports -Winfinite-recursion */ +/* #undef HAVE_KERNEL_INFINITE_RECURSION */ + +/* kernel does stack verification */ +/* #undef HAVE_KERNEL_OBJTOOL */ + +/* kernel has linux/objtool.h */ +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ + +/* kernel_read() take loff_t pointer */ +/* #undef HAVE_KERNEL_READ_PPOS */ + +/* timer_list.function gets a timer_list */ +/* #undef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST */ + +/* struct timer_list has a flags member */ +/* #undef HAVE_KERNEL_TIMER_LIST_FLAGS */ + +/* timer_setup() is available */ +/* #undef HAVE_KERNEL_TIMER_SETUP */ + +/* kernel_write() take loff_t pointer */ +/* #undef HAVE_KERNEL_WRITE_PPOS */ + +/* kmem_cache_create_usercopy() exists */ +/* #undef HAVE_KMEM_CACHE_CREATE_USERCOPY */ + +/* kstrtoul() exists */ +/* #undef HAVE_KSTRTOUL */ + +/* ktime_get_coarse_real_ts64() exists */ +/* #undef HAVE_KTIME_GET_COARSE_REAL_TS64 */ + +/* ktime_get_raw_ts64() exists */ +/* #undef HAVE_KTIME_GET_RAW_TS64 */ + +/* kvmalloc exists */ +/* #undef HAVE_KVMALLOC */ + +/* Define if you have [aio] */ +/* #undef HAVE_LIBAIO */ + +/* Define if you have [blkid] */ +/* #undef HAVE_LIBBLKID */ + +/* Define if you have [crypto] */ +#define HAVE_LIBCRYPTO 1 + +/* Define if you have [tirpc] */ +/* #undef HAVE_LIBTIRPC */ + +/* Define if you have [udev] */ +/* #undef HAVE_LIBUDEV */ + +/* Define if you have [uuid] */ +/* #undef HAVE_LIBUUID */ + +/* linux/blk-cgroup.h exists */ +/* #undef HAVE_LINUX_BLK_CGROUP_HEADER */ + +/* lseek_execute() is available */ +/* #undef HAVE_LSEEK_EXECUTE */ + +/* makedev() is declared in sys/mkdev.h */ +/* #undef HAVE_MAKEDEV_IN_MKDEV */ + +/* makedev() is declared in sys/sysmacros.h */ +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */ + +/* Noting that make_request_fn() returns blk_qc_t */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */ + +/* Noting that make_request_fn() returns void */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_VOID */ + +/* iops->mkdir() takes umode_t */ +/* #undef HAVE_MKDIR_UMODE_T */ + +/* Define to 1 if you have the `mlockall' function. */ +#define HAVE_MLOCKALL 1 + +/* lookup_bdev() wants mode arg */ +/* #undef HAVE_MODE_LOOKUP_BDEV */ + +/* Define if host toolchain supports MOVBE */ +#define HAVE_MOVBE 1 + +/* new_sync_read()/new_sync_write() are available */ +/* #undef HAVE_NEW_SYNC_READ */ + +/* folio_wait_bit() exists */ +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */ + +/* part_to_dev() exists */ +/* #undef HAVE_PART_TO_DEV */ + +/* iops->getattr() takes a path */ +/* #undef HAVE_PATH_IOPS_GETATTR */ + +/* Define if host toolchain supports PCLMULQDQ */ +#define HAVE_PCLMULQDQ 1 + +/* percpu_counter_add_batch() is defined */ +/* #undef HAVE_PERCPU_COUNTER_ADD_BATCH */ + +/* percpu_counter_init() wants gfp_t */ +/* #undef HAVE_PERCPU_COUNTER_INIT_WITH_GFP */ + +/* posix_acl_chmod() exists */ +/* #undef HAVE_POSIX_ACL_CHMOD */ + +/* posix_acl_from_xattr() needs user_ns */ +/* #undef HAVE_POSIX_ACL_FROM_XATTR_USERNS */ + +/* posix_acl_release() is available */ +/* #undef HAVE_POSIX_ACL_RELEASE */ + +/* posix_acl_release() is GPL-only */ +/* #undef HAVE_POSIX_ACL_RELEASE_GPL_ONLY */ + +/* posix_acl_valid() wants user namespace */ +/* #undef HAVE_POSIX_ACL_VALID_WITH_NS */ + +/* proc_ops structure exists */ +/* #undef HAVE_PROC_OPS_STRUCT */ + +/* iops->put_link() cookie */ +/* #undef HAVE_PUT_LINK_COOKIE */ + +/* iops->put_link() delayed */ +/* #undef HAVE_PUT_LINK_DELAYED */ + +/* iops->put_link() nameidata */ +/* #undef HAVE_PUT_LINK_NAMEIDATA */ + +/* If available, contains the Python version number currently in use. */ +#define HAVE_PYTHON "3.7" + +/* qat is enabled and existed */ +/* #undef HAVE_QAT */ + +/* struct reclaim_state has reclaimed */ +/* #undef HAVE_RECLAIM_STATE_RECLAIMED */ + +/* register_shrinker is vararg */ +/* #undef HAVE_REGISTER_SHRINKER_VARARG */ + +/* register_sysctl_table exists */ +/* #undef HAVE_REGISTER_SYSCTL_TABLE */ + +/* iops->rename2() exists */ +/* #undef HAVE_RENAME2 */ + +/* struct inode_operations_wrapper takes .rename2() */ +/* #undef HAVE_RENAME2_OPERATIONS_WRAPPER */ + +/* iops->rename() wants flags */ +/* #undef HAVE_RENAME_WANTS_FLAGS */ + +/* REQ_DISCARD is defined */ +/* #undef HAVE_REQ_DISCARD */ + +/* REQ_FLUSH is defined */ +/* #undef HAVE_REQ_FLUSH */ + +/* REQ_OP_DISCARD is defined */ +/* #undef HAVE_REQ_OP_DISCARD */ + +/* REQ_OP_FLUSH is defined */ +/* #undef HAVE_REQ_OP_FLUSH */ + +/* REQ_OP_SECURE_ERASE is defined */ +/* #undef HAVE_REQ_OP_SECURE_ERASE */ + +/* REQ_PREFLUSH is defined */ +/* #undef HAVE_REQ_PREFLUSH */ + +/* revalidate_disk() is available */ +/* #undef HAVE_REVALIDATE_DISK */ + +/* revalidate_disk_size() is available */ +/* #undef HAVE_REVALIDATE_DISK_SIZE */ + +/* struct rw_semaphore has member activity */ +/* #undef HAVE_RWSEM_ACTIVITY */ + +/* struct rw_semaphore has atomic_long_t member count */ +/* #undef HAVE_RWSEM_ATOMIC_LONG_COUNT */ + +/* linux/sched/signal.h exists */ +/* #undef HAVE_SCHED_SIGNAL_HEADER */ + +/* Define to 1 if you have the <security/pam_modules.h> header file. */ +#define HAVE_SECURITY_PAM_MODULES_H 1 + +/* setattr_prepare() accepts mnt_idmap */ +/* #undef HAVE_SETATTR_PREPARE_IDMAP */ + +/* setattr_prepare() is available, doesn't accept user_namespace */ +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */ + +/* setattr_prepare() accepts user_namespace */ +/* #undef HAVE_SETATTR_PREPARE_USERNS */ + +/* iops->set_acl() exists, takes 3 args */ +/* #undef HAVE_SET_ACL */ + +/* iops->set_acl() takes 4 args, arg1 is struct mnt_idmap * */ +/* #undef HAVE_SET_ACL_IDMAP_DENTRY */ + +/* iops->set_acl() takes 4 args */ +/* #undef HAVE_SET_ACL_USERNS */ + +/* iops->set_acl() takes 4 args, arg2 is struct dentry * */ +/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */ + +/* set_cached_acl() is usable */ +/* #undef HAVE_SET_CACHED_ACL_USABLE */ + +/* set_special_state() exists */ +/* #undef HAVE_SET_SPECIAL_STATE */ + +/* struct shrink_control exists */ +/* #undef HAVE_SHRINK_CONTROL_STRUCT */ + +/* kernel_siginfo_t exists */ +/* #undef HAVE_SIGINFO */ + +/* signal_stop() exists */ +/* #undef HAVE_SIGNAL_STOP */ + +/* new shrinker callback wants 2 args */ +/* #undef HAVE_SINGLE_SHRINKER_CALLBACK */ + +/* cs->count_objects exists */ +/* #undef HAVE_SPLIT_SHRINKER_CALLBACK */ + +#if defined(__amd64__) || defined(__i386__) +/* Define if host toolchain supports SSE */ +#define HAVE_SSE 1 + +/* Define if host toolchain supports SSE2 */ +#define HAVE_SSE2 1 + +/* Define if host toolchain supports SSE3 */ +#define HAVE_SSE3 1 + +/* Define if host toolchain supports SSE4.1 */ +#define HAVE_SSE4_1 1 + +/* Define if host toolchain supports SSE4.2 */ +#define HAVE_SSE4_2 1 + +/* Define if host toolchain supports SSSE3 */ +#define HAVE_SSSE3 1 +#endif + +/* STACK_FRAME_NON_STANDARD is defined */ +/* #undef HAVE_STACK_FRAME_NON_STANDARD */ + +/* standalone <linux/stdarg.h> exists */ +/* #undef HAVE_STANDALONE_LINUX_STDARG */ + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdio.h> header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcat' function. */ +#define HAVE_STRLCAT 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* submit_bio is member of struct block_device_operations */ +/* #undef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */ + +/* super_setup_bdi_name() exits */ +/* #undef HAVE_SUPER_SETUP_BDI_NAME */ + +/* super_block->s_user_ns exists */ +/* #undef HAVE_SUPER_USER_NS */ + +/* struct kobj_type has default_groups */ +/* #undef HAVE_SYSFS_DEFAULT_GROUPS */ + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* i_op->tmpfile() exists */ +/* #undef HAVE_TMPFILE */ + +/* i_op->tmpfile() uses old dentry signature */ +/* #undef HAVE_TMPFILE_DENTRY */ + +/* i_op->tmpfile() has mnt_idmap */ +/* #undef HAVE_TMPFILE_IDMAP */ + +/* i_op->tmpfile() has userns */ +/* #undef HAVE_TMPFILE_USERNS */ + +/* totalhigh_pages() exists */ +/* #undef HAVE_TOTALHIGH_PAGES */ + +/* kernel has totalram_pages() */ +/* #undef HAVE_TOTALRAM_PAGES_FUNC */ + +/* Define to 1 if you have the `udev_device_get_is_initialized' function. */ +/* #undef HAVE_UDEV_DEVICE_GET_IS_INITIALIZED */ + +/* kernel has __kernel_fpu_* functions */ +/* #undef HAVE_UNDERSCORE_KERNEL_FPU */ + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* iops->getattr() takes struct user_namespace* */ +/* #undef HAVE_USERNS_IOPS_GETATTR */ + +/* iops->setattr() takes struct user_namespace* */ +/* #undef HAVE_USERNS_IOPS_SETATTR */ + +/* user_namespace->ns.inum exists */ +/* #undef HAVE_USER_NS_COMMON_INUM */ + +/* iops->getattr() takes a vfsmount */ +/* #undef HAVE_VFSMOUNT_IOPS_GETATTR */ + +/* fops->clone_file_range() is available */ +/* #undef HAVE_VFS_CLONE_FILE_RANGE */ + +/* fops->copy_file_range() is available */ +/* #undef HAVE_VFS_COPY_FILE_RANGE */ + +/* fops->dedupe_file_range() is available */ +/* #undef HAVE_VFS_DEDUPE_FILE_RANGE */ + +/* aops->direct_IO() uses iovec */ +/* #undef HAVE_VFS_DIRECT_IO_IOVEC */ + +/* aops->direct_IO() uses iov_iter without rw */ +/* #undef HAVE_VFS_DIRECT_IO_ITER */ + +/* aops->direct_IO() uses iov_iter with offset */ +/* #undef HAVE_VFS_DIRECT_IO_ITER_OFFSET */ + +/* aops->direct_IO() uses iov_iter with rw and offset */ +/* #undef HAVE_VFS_DIRECT_IO_ITER_RW_OFFSET */ + +/* filemap_dirty_folio exists */ +/* #undef HAVE_VFS_FILEMAP_DIRTY_FOLIO */ + +/* file_operations_extend takes .copy_file_range() and .clone_file_range() */ +/* #undef HAVE_VFS_FILE_OPERATIONS_EXTEND */ + +/* generic_copy_file_range() is available */ +/* #undef HAVE_VFS_GENERIC_COPY_FILE_RANGE */ + +/* All required iov_iter interfaces are available */ +/* #undef HAVE_VFS_IOV_ITER */ + +/* fops->iterate() is available */ +/* #undef HAVE_VFS_ITERATE */ + +/* fops->iterate_shared() is available */ +/* #undef HAVE_VFS_ITERATE_SHARED */ + +/* fops->readdir() is available */ +/* #undef HAVE_VFS_READDIR */ + +/* address_space_operations->readpages exists */ +/* #undef HAVE_VFS_READPAGES */ + +/* read_folio exists */ +/* #undef HAVE_VFS_READ_FOLIO */ + +/* fops->remap_file_range() is available */ +/* #undef HAVE_VFS_REMAP_FILE_RANGE */ + +/* fops->read/write_iter() are available */ +/* #undef HAVE_VFS_RW_ITERATE */ + +/* __set_page_dirty_nobuffers exists */ +/* #undef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS */ + +/* __vmalloc page flags exists */ +/* #undef HAVE_VMALLOC_PAGE_KERNEL */ + +/* yes */ +/* #undef HAVE_WAIT_ON_BIT_ACTION */ + +/* wait_queue_entry_t exists */ +/* #undef HAVE_WAIT_QUEUE_ENTRY_T */ + +/* wq_head->head and wq_entry->entry exist */ +/* #undef HAVE_WAIT_QUEUE_HEAD_ENTRY */ + +/* int (*writepage_t)() takes struct folio* */ +/* #undef HAVE_WRITEPAGE_T_FOLIO */ + +/* xattr_handler->get() wants dentry */ +/* #undef HAVE_XATTR_GET_DENTRY */ + +/* xattr_handler->get() wants both dentry and inode */ *** 190 LINES SKIPPED *** From nobody Mon Sep 11 08:35:47 2023 X-Original-To: dev-commits-src-main@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 4Rkg5w11YRz4t9xS; Mon, 11 Sep 2023 08:35: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rkg5w0qZLz3bJ9; Mon, 11 Sep 2023 08:35:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694421348; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Em68LQ3jqeP1LRFyrFxyfbO2TWXpjG+JnmW1rjsz6nM=; b=cyyyeyvSMiOYosXLSS56cRo2C4/P8qn5tbtuOlD6xG2i+Hx1J1n8Ilod5OVLAdGb78qCna xcI3+1vjJLcTHaRrQ4dLt6SIZJYbrx8oD3IsAzQQQSaHmZXtPS87hrFrBAbXyYylgx5dBM S/DsmcJSNTNAoaKrrlB97IBmA+Kz2qWIAXu1IAwtvdQiWd9B1tkH5ECd3jxOT1iULJtHBw OA33C3XtuGWc9LYK3Ih1bSwkCQdL+/+0kgJ6FCczUZc0EhOIIglhSx/2ZAWjD0ppoH1xUW 4nfWV4sexbZVyoDCgDLHADl9Ouolws3bk78OG7ZnmXdKsIu10Ydzz5wJTYaSGg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694421348; a=rsa-sha256; cv=none; b=KCNrUwVDZBqo5bAJEQASa2Ey1SGxQ/8b1A7wEkKIkv8T2xWgd5NtmjhjLkelPIpMD4EtGB n+1jkMIBTenxjMRZMb+JiQ8+28F0INbREZxreIAsUHNNi8eq9ATXw+2d48uWTS0So4r4jL nKqOth5540gIlwy3UzFaW8v8k9FuyAsHm6YiG7A+MvnRZaTCzDr3Wgmh6xdpvfIPvbHdFg hoDY+HS5B8Tqy5yM8axF1/O01vD3LFrTnrQrViPHK14ZSXhy/4zsoqr2z+JIJtSCIaHWZU +uzLPNsc4nCNoHIPusHF0iEiF5vLj09Mt3qT3iol4xmyLKHGAoNbymNq883cOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694421348; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Em68LQ3jqeP1LRFyrFxyfbO2TWXpjG+JnmW1rjsz6nM=; b=r4rYm328/w0kpUA2/zp4nTU2xUizFO39ccqKxTOVfoW7g2f0k5BbAmI9wGftHa68I7VnTI PIYmWjN2syYfIFtrE9fnhoSGe+nkepWreLGmOtO8t5pEKBFt5iVMOn3zIktWGx6lXopOhp TpBDh5X3DF4rWg40D0M8tpfmNs+se+VpTreRiyvbWhQHZtiRuY2ubQKUMmni6BqxvVqGUx B2qW5fTugoJWW8Vsl/K3biRRvfFpUnCwQdx7QIM2jrr4rRPRoetmxUxgvILirfy2NMcb58 TA+6sJgsGuKYzjpKFz7AqXCkG1JlDgil+MfSaK4f9GbZpK2PPgCw/kds+agjhA== 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 4Rkg5v719yzj7n; Mon, 11 Sep 2023 08:35:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38B8Zl4R059629; Mon, 11 Sep 2023 08:35:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38B8Zl9t059626; Mon, 11 Sep 2023 08:35:47 GMT (envelope-from git) Date: Mon, 11 Sep 2023 08:35:47 GMT Message-Id: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore <dougm@FreeBSD.org> Subject: git: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pctrie code" List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6cec93da46c4a91a042b0be488844052c0f8985a Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=6cec93da46c4a91a042b0be488844052c0f8985a commit 6cec93da46c4a91a042b0be488844052c0f8985a Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2023-09-11 08:34:46 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2023-09-11 08:35:36 +0000 Revert "radix_trie: have vm_radix use pctrie code" This reverts commit a494d30465f21e8cb014a5c788a43001397325d7. --- sys/vm/_vm_radix.h | 9 +- sys/vm/vm_radix.c | 696 ++++++++++++++++++++++++++++++++++++++++++++++++++++- sys/vm/vm_radix.h | 113 ++------- 3 files changed, 709 insertions(+), 109 deletions(-) diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h index 2d9b05c7b52a..01eb25a9dccf 100644 --- a/sys/vm/_vm_radix.h +++ b/sys/vm/_vm_radix.h @@ -31,13 +31,16 @@ #ifndef __VM_RADIX_H_ #define __VM_RADIX_H_ -#include <sys/_pctrie.h> +/* + * Radix tree node. + */ +struct vm_radix_node; /* - * Radix tree + * Radix tree root. */ struct vm_radix { - struct pctrie rt_trie; + struct vm_radix_node *rt_root; }; #endif /* !__VM_RADIX_H_ */ diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c index b8c693eca66f..768a56ed76f7 100644 --- a/sys/vm/vm_radix.c +++ b/sys/vm/vm_radix.c @@ -54,26 +54,302 @@ #include "opt_ddb.h" #include <sys/param.h> -#include <sys/pctrie.h> +#include <sys/systm.h> +#include <sys/kernel.h> +#include <sys/libkern.h> +#include <sys/proc.h> +#include <sys/vmmeter.h> +#include <sys/smr.h> +#include <sys/smr_types.h> #include <vm/uma.h> #include <vm/vm.h> +#include <vm/vm_param.h> +#include <vm/vm_object.h> #include <vm/vm_page.h> #include <vm/vm_radix.h> +#ifdef DDB +#include <ddb/ddb.h> +#endif + +/* + * These widths should allow the pointers to a node's children to fit within + * a single cache line. The extra levels from a narrow width should not be + * a problem thanks to path compression. + */ +#ifdef __LP64__ +#define VM_RADIX_WIDTH 4 +#else +#define VM_RADIX_WIDTH 3 +#endif + +#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH) +#define VM_RADIX_MASK (VM_RADIX_COUNT - 1) +#define VM_RADIX_LIMIT \ + (howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1) + +#if VM_RADIX_WIDTH == 3 +typedef uint8_t rn_popmap_t; +#elif VM_RADIX_WIDTH == 4 +typedef uint16_t rn_popmap_t; +#elif VM_RADIX_WIDTH == 5 +typedef uint32_t rn_popmap_t; +#else +#error Unsupported width +#endif +_Static_assert(sizeof(rn_popmap_t) <= sizeof(int), + "rn_popmap_t too wide"); + +/* Set of all flag bits stored in node pointers. */ +#define VM_RADIX_FLAGS (VM_RADIX_ISLEAF) +#define VM_RADIX_PAD VM_RADIX_FLAGS + +enum vm_radix_access { SMR, LOCKED, UNSERIALIZED }; + +struct vm_radix_node; +typedef SMR_POINTER(struct vm_radix_node *) smrnode_t; + +struct vm_radix_node { + vm_pindex_t rn_owner; /* Owner of record. */ + rn_popmap_t rn_popmap; /* Valid children. */ + uint8_t rn_clev; /* Level * WIDTH. */ + smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */ +}; + static uma_zone_t vm_radix_node_zone; -smr_t vm_radix_smr; +static smr_t vm_radix_smr; + +static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, + enum vm_radix_access access); -void * -vm_radix_node_alloc(struct pctrie *ptree) +/* + * Map index to an array position for the children of rnode, + */ +static __inline int +vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index) { - return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT)); + return ((index >> rnode->rn_clev) & VM_RADIX_MASK); } -void -vm_radix_node_free(struct pctrie *ptree, void *node) +/* + * Returns true if index does not belong to the specified rnode. Otherwise, + * sets slot value, and returns false. + */ +static __inline bool +vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot) +{ + index = (index - rnode->rn_owner) >> rnode->rn_clev; + if (index >= VM_RADIX_COUNT) + return (true); + *slot = index; + return (false); +} + +/* + * Allocate a radix node. + */ +static struct vm_radix_node * +vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind) +{ + struct vm_radix_node *rnode; + + rnode = uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT); + if (rnode == NULL) + return (NULL); + + /* + * We want to clear the last child pointer after the final section + * has exited so lookup can not return false negatives. It is done + * here because it will be cache-cold in the dtor callback. + */ + if (rnode->rn_popmap != 0) { + vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1], + VM_RADIX_NULL, UNSERIALIZED); + rnode->rn_popmap = 0; + } + + /* + * From the highest-order bit where the indexes differ, + * compute the highest level in the trie where they differ. Then, + * compute the least index of this subtrie. + */ + KASSERT(index != newind, ("%s: passing the same key value %jx", + __func__, (uintmax_t)index)); + _Static_assert(sizeof(long long) >= sizeof(vm_pindex_t), + "vm_pindex_t too wide"); + _Static_assert(sizeof(vm_pindex_t) * NBBY <= + (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow"); + rnode->rn_clev = rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH); + rnode->rn_owner = VM_RADIX_COUNT; + rnode->rn_owner = index & -(rnode->rn_owner << rnode->rn_clev); + return (rnode); +} + +/* + * Free radix node. + */ +static __inline void +vm_radix_node_put(struct vm_radix_node *rnode) +{ +#ifdef INVARIANTS + int slot; + + KASSERT(powerof2(rnode->rn_popmap), + ("vm_radix_node_put: rnode %p has too many children %04x", rnode, + rnode->rn_popmap)); + for (slot = 0; slot < VM_RADIX_COUNT; slot++) { + if ((rnode->rn_popmap & (1 << slot)) != 0) + continue; + KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) == + VM_RADIX_NULL, + ("vm_radix_node_put: rnode %p has a child", rnode)); + } +#endif + uma_zfree_smr(vm_radix_node_zone, rnode); +} + +/* + * Fetch a node pointer from a slot in another node. + */ +static __inline struct vm_radix_node * +vm_radix_node_load(smrnode_t *p, enum vm_radix_access access) +{ + + switch (access) { + case UNSERIALIZED: + return (smr_unserialized_load(p, true)); + case LOCKED: + return (smr_serialized_load(p, true)); + case SMR: + return (smr_entered_load(p, vm_radix_smr)); + } + __assert_unreachable(); +} + +static __inline void +vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, + enum vm_radix_access access) +{ + + switch (access) { + case UNSERIALIZED: + smr_unserialized_store(p, v, true); + break; + case LOCKED: + smr_serialized_store(p, v, true); + break; + case SMR: + panic("vm_radix_node_store: Not supported in smr section."); + } +} + +/* + * Get the root node for a radix tree. + */ +static __inline struct vm_radix_node * +vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access) +{ + + return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access)); +} + +/* + * Set the root node for a radix tree. + */ +static __inline void +vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode, + enum vm_radix_access access) +{ + + vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access); +} + +/* + * Returns TRUE if the specified radix node is a leaf and FALSE otherwise. + */ +static __inline bool +vm_radix_isleaf(struct vm_radix_node *rnode) +{ + + return (((uintptr_t)rnode & VM_RADIX_ISLEAF) != 0); +} + +/* + * Returns page cast to radix node with leaf bit set. + */ +static __inline struct vm_radix_node * +vm_radix_toleaf(vm_page_t page) +{ + return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF)); +} + +/* + * Returns the associated page extracted from rnode. + */ +static __inline vm_page_t +vm_radix_topage(struct vm_radix_node *rnode) +{ + + return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS)); +} + +/* + * Make 'child' a child of 'rnode'. + */ +static __inline void +vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index, + struct vm_radix_node *child, enum vm_radix_access access) +{ + int slot; + + slot = vm_radix_slot(rnode, index); + vm_radix_node_store(&rnode->rn_child[slot], child, access); + rnode->rn_popmap ^= 1 << slot; + KASSERT((rnode->rn_popmap & (1 << slot)) != 0, + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); +} + +/* + * Internal helper for vm_radix_reclaim_allnodes(). + * This function is recursive. + */ +static void +vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode) +{ + struct vm_radix_node *child; + int slot; + + while (rnode->rn_popmap != 0) { + slot = ffs(rnode->rn_popmap) - 1; + child = vm_radix_node_load(&rnode->rn_child[slot], + UNSERIALIZED); + KASSERT(child != VM_RADIX_NULL, + ("%s: bad popmap slot %d in rnode %p", + __func__, slot, rnode)); + if (!vm_radix_isleaf(child)) + vm_radix_reclaim_allnodes_int(child); + rnode->rn_popmap ^= 1 << slot; + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, + UNSERIALIZED); + } + vm_radix_node_put(rnode); +} + +/* + * radix node zone initializer. + */ +static int +vm_radix_zone_init(void *mem, int size, int flags) { - uma_zfree_smr(vm_radix_node_zone, node); + struct vm_radix_node *rnode; + + rnode = mem; + rnode->rn_popmap = 0; + for (int i = 0; i < nitems(rnode->rn_child); i++) + vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL, + UNSERIALIZED); + return (0); } #ifndef UMA_MD_SMALL_ALLOC @@ -107,14 +383,412 @@ void vm_radix_zinit(void) { - vm_radix_node_zone = uma_zcreate("RADIX NODE", pctrie_node_size(), - NULL, NULL, pctrie_zone_init, NULL, - PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); + vm_radix_node_zone = uma_zcreate("RADIX NODE", + sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL, + VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); vm_radix_smr = uma_zone_get_smr(vm_radix_node_zone); } +/* + * Inserts the key-value pair into the trie. + * Panics if the key already exists. + */ +int +vm_radix_insert(struct vm_radix *rtree, vm_page_t page) +{ + vm_pindex_t index, newind; + struct vm_radix_node *leaf, *parent, *rnode; + smrnode_t *parentp; + int slot; + + index = page->pindex; + leaf = vm_radix_toleaf(page); + + /* + * The owner of record for root is not really important because it + * will never be used. + */ + rnode = vm_radix_root_load(rtree, LOCKED); + parent = NULL; + for (;;) { + if (vm_radix_isleaf(rnode)) { + if (rnode == VM_RADIX_NULL) { + if (parent == NULL) + rtree->rt_root = leaf; + else + vm_radix_addnode(parent, index, leaf, + LOCKED); + return (0); + } + newind = vm_radix_topage(rnode)->pindex; + if (newind == index) + panic("%s: key %jx is already present", + __func__, (uintmax_t)index); + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) { + newind = rnode->rn_owner; + break; + } + parent = rnode; + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + + /* + * A new node is needed because the right insertion level is reached. + * Setup the new intermediate node and add the 2 children: the + * new object and the older edge or object. + */ + parentp = (parent != NULL) ? &parent->rn_child[slot]: + (smrnode_t *)&rtree->rt_root; + parent = vm_radix_node_get(index, newind); + if (parent == NULL) + return (ENOMEM); + /* These writes are not yet visible due to ordering. */ + vm_radix_addnode(parent, index, leaf, UNSERIALIZED); + vm_radix_addnode(parent, newind, rnode, UNSERIALIZED); + /* Serializing write to make the above visible. */ + vm_radix_node_store(parentp, parent, LOCKED); + return (0); +} + +/* + * Returns the value stored at the index. If the index is not present, + * NULL is returned. + */ +static __always_inline vm_page_t +_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index, + enum vm_radix_access access) +{ + struct vm_radix_node *rnode; + vm_page_t m; + int slot; + + rnode = vm_radix_root_load(rtree, access); + for (;;) { + if (vm_radix_isleaf(rnode)) { + if ((m = vm_radix_topage(rnode)) != NULL && + m->pindex == index) + return (m); + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) + break; + rnode = vm_radix_node_load(&rnode->rn_child[slot], access); + } + return (NULL); +} + +/* + * Returns the value stored at the index assuming there is an external lock. + * + * If the index is not present, NULL is returned. + */ +vm_page_t +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) +{ + + return _vm_radix_lookup(rtree, index, LOCKED); +} + +/* + * Returns the value stored at the index without requiring an external lock. + * + * If the index is not present, NULL is returned. + */ +vm_page_t +vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) +{ + vm_page_t m; + + smr_enter(vm_radix_smr); + m = _vm_radix_lookup(rtree, index, SMR); + smr_exit(vm_radix_smr); + + return (m); +} + +/* + * Returns the page with the least pindex that is greater than or equal to the + * specified pindex, or NULL if there are no such pages. + * + * Requires that access be externally synchronized by a lock. + */ +vm_page_t +vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) +{ + struct vm_radix_node *rnode, *succ; + vm_page_t m; + int slot; + + /* + * Descend the trie as if performing an ordinary lookup for the page + * with the specified pindex. However, unlike an ordinary lookup, as we + * descend the trie, we use "succ" to remember the last branching-off + * point, that is, the interior node under which the page with the least + * pindex that is both outside our current path down the trie and more + * than the specified pindex resides. (The node's popmap makes it fast + * and easy to recognize a branching-off point.) If our ordinary lookup + * fails to yield a page with a pindex that is greater than or equal to + * the specified pindex, then we will exit this loop and perform a + * lookup starting from "succ". If "succ" is not NULL, then that lookup + * is guaranteed to succeed. + */ + rnode = vm_radix_root_load(rtree, LOCKED); + succ = NULL; + for (;;) { + if (vm_radix_isleaf(rnode)) { + if ((m = vm_radix_topage(rnode)) != NULL && + m->pindex >= index) + return (m); + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) { + /* + * If all pages in this subtree have pindex > index, + * then the page in this subtree with the least pindex + * is the answer. + */ + if (rnode->rn_owner > index) + succ = rnode; + break; + } + + /* + * Just in case the next search step leads to a subtree of all + * pages with pindex < index, check popmap to see if a next + * bigger step, to a subtree of all pages with pindex > index, + * is available. If so, remember to restart the search here. + */ + if ((rnode->rn_popmap >> slot) > 1) + succ = rnode; + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + + /* + * Restart the search from the last place visited in the subtree that + * included some pages with pindex > index, if there was such a place. + */ + if (succ == NULL) + return (NULL); + if (succ != rnode) { + /* + * Take a step to the next bigger sibling of the node chosen + * last time. In that subtree, all pages have pindex > index. + */ + slot = vm_radix_slot(succ, index) + 1; + KASSERT((succ->rn_popmap >> slot) != 0, + ("%s: no popmap siblings past slot %d in node %p", + __func__, slot, succ)); + slot += ffs(succ->rn_popmap >> slot) - 1; + succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED); + } + + /* + * Find the page in the subtree rooted at "succ" with the least pindex. + */ + while (!vm_radix_isleaf(succ)) { + KASSERT(succ->rn_popmap != 0, + ("%s: no popmap children in node %p", __func__, succ)); + slot = ffs(succ->rn_popmap) - 1; + succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED); + } + return (vm_radix_topage(succ)); +} + +/* + * Returns the page with the greatest pindex that is less than or equal to the + * specified pindex, or NULL if there are no such pages. + * + * Requires that access be externally synchronized by a lock. + */ +vm_page_t +vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) +{ + struct vm_radix_node *pred, *rnode; + vm_page_t m; + int slot; + + /* + * Mirror the implementation of vm_radix_lookup_ge, described above. + */ + rnode = vm_radix_root_load(rtree, LOCKED); + pred = NULL; + for (;;) { + if (vm_radix_isleaf(rnode)) { + if ((m = vm_radix_topage(rnode)) != NULL && + m->pindex <= index) + return (m); + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) { + if (rnode->rn_owner < index) + pred = rnode; + break; + } + if ((rnode->rn_popmap & ((1 << slot) - 1)) != 0) + pred = rnode; + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + if (pred == NULL) + return (NULL); + if (pred != rnode) { + slot = vm_radix_slot(pred, index); + KASSERT((pred->rn_popmap & ((1 << slot) - 1)) != 0, + ("%s: no popmap siblings before slot %d in node %p", + __func__, slot, pred)); + slot = fls(pred->rn_popmap & ((1 << slot) - 1)) - 1; + pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED); + } + while (!vm_radix_isleaf(pred)) { + KASSERT(pred->rn_popmap != 0, + ("%s: no popmap children in node %p", __func__, pred)); + slot = fls(pred->rn_popmap) - 1; + pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED); + } + return (vm_radix_topage(pred)); +} + +/* + * Remove the specified index from the trie, and return the value stored at + * that index. If the index is not present, return NULL. + */ +vm_page_t +vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) +{ + struct vm_radix_node *child, *parent, *rnode; + vm_page_t m; + int slot; + + rnode = NULL; + child = vm_radix_root_load(rtree, LOCKED); + for (;;) { + if (vm_radix_isleaf(child)) + break; + parent = rnode; + rnode = child; + slot = vm_radix_slot(rnode, index); + child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + if ((m = vm_radix_topage(child)) == NULL || m->pindex != index) + return (NULL); + if (rnode == NULL) { + vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED); + return (m); + } + KASSERT((rnode->rn_popmap & (1 << slot)) != 0, + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); + rnode->rn_popmap ^= 1 << slot; + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED); + if (!powerof2(rnode->rn_popmap)) + return (m); + KASSERT(rnode->rn_popmap != 0, ("%s: bad popmap all zeroes", __func__)); + slot = ffs(rnode->rn_popmap) - 1; + child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + KASSERT(child != VM_RADIX_NULL, + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); + if (parent == NULL) + vm_radix_root_store(rtree, child, LOCKED); + else { + slot = vm_radix_slot(parent, index); + KASSERT(rnode == + vm_radix_node_load(&parent->rn_child[slot], LOCKED), + ("%s: invalid child value", __func__)); + vm_radix_node_store(&parent->rn_child[slot], child, LOCKED); + } + /* + * The child is still valid and we can not zero the + * pointer until all smr references are gone. + */ + vm_radix_node_put(rnode); + return (m); +} + +/* + * Remove and free all the nodes from the radix tree. + * This function is recursive but there is a tight control on it as the + * maximum depth of the tree is fixed. + */ +void +vm_radix_reclaim_allnodes(struct vm_radix *rtree) +{ + struct vm_radix_node *root; + + root = vm_radix_root_load(rtree, LOCKED); + if (root == VM_RADIX_NULL) + return; + vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED); + if (!vm_radix_isleaf(root)) + vm_radix_reclaim_allnodes_int(root); +} + +/* + * Replace an existing page in the trie with another one. + * Panics if there is not an old page in the trie at the new page's index. + */ +vm_page_t +vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) +{ + struct vm_radix_node *leaf, *parent, *rnode; + vm_page_t m; + vm_pindex_t index; + int slot; + + leaf = vm_radix_toleaf(newpage); + index = newpage->pindex; + rnode = vm_radix_root_load(rtree, LOCKED); + parent = NULL; + for (;;) { + if (vm_radix_isleaf(rnode)) { + if ((m = vm_radix_topage(rnode)) != NULL && + m->pindex == index) { + if (parent == NULL) + rtree->rt_root = leaf; + else + vm_radix_node_store( + &parent->rn_child[slot], leaf, + LOCKED); + return (m); + } + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) + break; + parent = rnode; + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + panic("%s: original replacing page not found", __func__); +} + void vm_radix_wait(void) { uma_zwait(vm_radix_node_zone); } + +#ifdef DDB +/* + * Show details about the given radix node. + */ +DB_SHOW_COMMAND(radixnode, db_show_radixnode) +{ + struct vm_radix_node *rnode, *tmp; + int slot; + rn_popmap_t popmap; + + if (!have_addr) + return; + rnode = (struct vm_radix_node *)addr; + db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n", + (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap, + rnode->rn_clev / VM_RADIX_WIDTH); + for (popmap = rnode->rn_popmap; popmap != 0; popmap ^= 1 << slot) { + slot = ffs(popmap) - 1; + tmp = vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED); + db_printf("slot: %d, val: %p, page: %p, clev: %d\n", + slot, (void *)tmp, + vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL, + rnode->rn_clev / VM_RADIX_WIDTH); + } +} +#endif /* DDB */ diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h index a332618fc0e6..231edda65102 100644 --- a/sys/vm/vm_radix.h +++ b/sys/vm/vm_radix.h @@ -34,113 +34,36 @@ #include <vm/_vm_radix.h> #ifdef _KERNEL -#include <sys/pctrie.h> -#include <vm/vm.h> +int vm_radix_insert(struct vm_radix *rtree, vm_page_t page); void vm_radix_wait(void); +vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index); +vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index); +vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index); +vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index); +void vm_radix_reclaim_allnodes(struct vm_radix *rtree); +vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index); +vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage); void vm_radix_zinit(void); -void *vm_radix_node_alloc(struct pctrie *ptree); -void vm_radix_node_free(struct pctrie *ptree, void *node); -extern smr_t vm_radix_smr; - -static __inline void -vm_radix_init(struct vm_radix *rtree) -{ - pctrie_init(&rtree->rt_trie); -} - -static __inline bool -vm_radix_is_empty(struct vm_radix *rtree) -{ - return (pctrie_is_empty(&rtree->rt_trie)); -} - -PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix_node_free, - vm_radix_smr); /* - * Inserts the key-value pair into the trie. - * Panics if the key already exists. + * Each search path in the trie terminates at a leaf, which is a pointer to a + * page marked with a set 1-bit. A leaf may be associated with a null pointer + * to indicate no page there. */ -static __inline int -vm_radix_insert(struct vm_radix *rtree, vm_page_t page) -{ - return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page)); -} - -/* - * Returns the value stored at the index assuming there is an external lock. - * - * If the index is not present, NULL is returned. - */ -static __inline vm_page_t -vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index)); -} - -/* - * Returns the value stored at the index without requiring an external lock. - * - * If the index is not present, NULL is returned. - */ -static __inline vm_page_t -vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index)); -} +#define VM_RADIX_ISLEAF 0x1 +#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF -/* - * Returns the page with the least pindex that is greater than or equal to the - * specified pindex, or NULL if there are no such pages. - * - * Requires that access be externally synchronized by a lock. - */ -static __inline vm_page_t -vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index)); -} - -/* - * Returns the page with the greatest pindex that is less than or equal to the - * specified pindex, or NULL if there are no such pages. - * - * Requires that access be externally synchronized by a lock. - */ -static __inline vm_page_t -vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index)); -} - -/* - * Remove the specified index from the trie, and return the value stored at - * that index. If the index is not present, return NULL. - */ -static __inline vm_page_t -vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index)); -} - -/* - * Remove and free all the nodes from the radix tree. - */ static __inline void -vm_radix_reclaim_allnodes(struct vm_radix *rtree) +vm_radix_init(struct vm_radix *rtree) { - VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie); + rtree->rt_root = VM_RADIX_NULL; } -/* - * Replace an existing page in the trie with another one. - * Panics if there is not an old page in the trie at the new page's index. - */ -static __inline vm_page_t -vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) +static __inline bool +vm_radix_is_empty(struct vm_radix *rtree) { - return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage)); + return (rtree->rt_root == VM_RADIX_NULL); } #endif /* _KERNEL */ From nobody Mon Sep 11 08:55:24 2023 X-Original-To: dev-commits-src-main@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 4RkgXX569sz4tNby; Mon, 11 Sep 2023 08:55: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkgXX3zQyz4GX9; Mon, 11 Sep 2023 08:55:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694422524; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VSj39F9yE8lZ5pqLwjRfE9L5cBBz5UjRRbve/VlR3bY=; b=RNuzcMhpD9XBQgf+aRgr6HZQ/gkZbf5k+xrGLgq2NRyHFj1RLTgovbuYHLyJTXG0rVacyX hVbwMfJ7YovEtw4FQAJOCsM944EKCnjBiodn0SJ2/0B7v9cDKTUcL5CVZhpDkP7/QxLXDF G5aJm4Me5GPBNWK3rBHfyrb8QHcQXtQpCtywGV+J3JklQVX5h2b3M9fxvozQE4abvwLN7I gUL10TQmb/ZWqrlTnzpGfnACPDA73tp/fh3sz0upfPHSQygQaArz3Yr9sOxs5hfqpDu7gQ qLGdNHMfH5vmJv8zKln3sgVQ9avUzQfpj7upzrO4QGgwMKkm2ojMk20hjG66CA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694422524; a=rsa-sha256; cv=none; b=RW8j/i+csPrzh2zfmOOmQ9JUNHRnGd7465902vmIeg5fXtoidco9VEnHQrrbXUnxZ5b72o DPeb3q0CFX5lgArK4LuXtb8dGLpiZa8muuBTD3/jozxxNb209Z75FHxPKslIkK7iPJ6TbU TtcM58iaW0VYXMx2umxVv8skVVu3AWVaw59eHrgWgweetFNCa8DcvpxGhuug5o1HgcL4+I YMnlECxn0nq4VIQ0Bwaxh4ri35oqKMZfJrQi5ErrK8TGknJxlogGQARyhE+JU1Ci18NKuq ppEXGFPdpKlWjjAODsva3/9QckgdJ9IeYW2GamK3wraaG/E8gxWqzMC5T8cGWg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694422524; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VSj39F9yE8lZ5pqLwjRfE9L5cBBz5UjRRbve/VlR3bY=; b=ZOXoUO2mcvU5d2lQeI4sA25nIOeK9ScEATP3zdFwNMFjzQRosNZlazUhdAY+U9WmU/X2eD u8pP7yKw7dKAAJJq+Cup3gK/P3p3pLBLNLtDH+0/6LQzMYB1zJAqFi1Yo/5fEu1d4T2a8m ldG08auZuIvj3288ri2vUK5H1S7qS2Eioye/MiWVgONZmIHqGxofBO11CiX8O2adbkV8QP ovTEkh1O7Padwd0IZroAlgZY4ET7hj0d4sFT3hbgiRWY9TXVJ+4fyIvPerl2IL4RKu1QhX TKjML87qxpRVxM/gycr5vtmUYVvO0Dl8BnOVFfAOhVxJeCshdynXN4+ZNcUntQ== 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 4RkgXX2pgdzk2K; Mon, 11 Sep 2023 08:55:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38B8tOfO092560; Mon, 11 Sep 2023 08:55:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38B8tOfG092558; Mon, 11 Sep 2023 08:55:24 GMT (envelope-from git) Date: Mon, 11 Sep 2023 08:55:24 GMT Message-Id: <202309110855.38B8tOfG092558@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Li-Wen Hsu <lwhsu@FreeBSD.org> Subject: git: 4196186dbfd0 - main - hyperv/vmbus: Flip a message to only be emitted on failure List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: lwhsu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4196186dbfd0949cfa2c51979fb169b7a79a80e4 Auto-Submitted: auto-generated The branch main has been updated by lwhsu: URL: https://cgit.FreeBSD.org/src/commit/?id=4196186dbfd0949cfa2c51979fb169b7a79a80e4 commit 4196186dbfd0949cfa2c51979fb169b7a79a80e4 Author: Li-Wen Hsu <lwhsu@FreeBSD.org> AuthorDate: 2023-09-11 08:51:46 +0000 Commit: Li-Wen Hsu <lwhsu@FreeBSD.org> CommitDate: 2023-09-11 08:51:46 +0000 hyperv/vmbus: Flip a message to only be emitted on failure This message is not very useful when things are working well. Flip its meaning and let it only be emitted on failure. While here, pet style(9). Reviewed by: mhorne, whu Differential Revision: https://reviews.freebsd.org/D41788 --- sys/dev/hyperv/pcib/vmbus_pcib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/dev/hyperv/pcib/vmbus_pcib.c b/sys/dev/hyperv/pcib/vmbus_pcib.c index da722eb0b834..ee7b82c10f23 100644 --- a/sys/dev/hyperv/pcib/vmbus_pcib.c +++ b/sys/dev/hyperv/pcib/vmbus_pcib.c @@ -1705,9 +1705,9 @@ vmbus_pcib_alloc_resource(device_t dev, device_t child, int type, int *rid, if (res == NULL && start + count - 1 == end) res = bus_generic_alloc_resource(dev, child, type, rid, start, end, count, flags); - if (res) { - device_printf(dev,"vmbus_pcib_alloc_resource is successful\n"); - } + if (res == NULL) + device_printf(dev, "vmbus_pcib_alloc_resource failed\n"); + return (res); } From nobody Mon Sep 11 13:18:34 2023 X-Original-To: dev-commits-src-main@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 4RknNC1xmmz4slWN; Mon, 11 Sep 2023 13:18: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RknNC12C8z4L1s; Mon, 11 Sep 2023 13:18:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694438315; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gir5HoOnlQgeskxYphksbp4tRGIIuGJ0gByGpEykYo0=; b=kSenShAB5KAxz7+BlSFvVMXroE6J15nUPDVMvXNBc876g1lwQxbQcp2D+ywcwBed274PHn Wf5I726oF7sKDwTE95ualHZO/VPHu5stIJbx1vmWYiZTf7kCdo305Tnun2OOmquDUPLURR CAEb9MbrRS/yH+c5eQ2jaY7/9tW5uNrDosSc/WglJ73pf/DJNiyyK8tB574dr8nQ3acMZL yNes0pUiLdSLHz0jGmeNL5gQ073UGHEh4PCe/FlvkULiEbTExIOd9jC2THyqwraUNC7+kf +n3CgX4mZsd5jxReiJQMhkh39Hi+xA2dPx2lYsykuRI3CZtjig7oZ6SbL20thw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694438315; a=rsa-sha256; cv=none; b=p+q51ko2XCg/zQaDpS3b8tpJUFRBaX6T/UoNURItkCSTW6Vhn/PpIsf3i59uAQBg0S0ZMn uxDllLrt12cSXeBitB/iu59sBNL4G4uYqzsC2A1cAcS0Qc8fIz+cprzYaOBaY5a2GsoejZ 0idK6bDlPaqZ2D2lHVokIX6kxCASsxIJofcbtd+IfTpIAwT9oLXwFkUnC7wyqwNproL/pA wF2cGWL6fk5Krs2U8GjPqO5XSEQ6IEYPJsYWT8taq/J8yrHiks16o4UC6o00gwBRvh8aoo h+AoJ7B9JADzMv/wbiVMaC/MArxYPD/yXR6D3Nrb1xigDI8xkoDTmAO7/72ywg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694438315; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gir5HoOnlQgeskxYphksbp4tRGIIuGJ0gByGpEykYo0=; b=f0sC3GTK0/zgBWQX8KWlkAsWz5EMDCJH9vW98F4YN5udDmek+l+6vNqzaV6QWcJukOqNRb RRaj0xbv6DYH3tLOtcn5FS/klUFBZKKCn3q60A6Hm0ajXCJDeW1gne8H+jc/zeeM8D3BIa Z3fWl+EtbIwRk8a6y+5me0Nz1xODaoaELVaC5fwm6UekcWmiGjKZ+z3BfWkUzaFgCak2ue Xuk66h+A6OGresdPebcpnNhuLwsBbMxEFrOSc6dEkAM5I2WNmqwLnS9gs/elSPC6vrRebl sxop0H50GJsZ5pj1ew4Cq0w1xVeW+PyAwBruzXwMeUFONii7dlDNFuKJ24At+A== 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 4RknNC05VLzqv8; Mon, 11 Sep 2023 13:18:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BDIYwe024733; Mon, 11 Sep 2023 13:18:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BDIYp0024730; Mon, 11 Sep 2023 13:18:34 GMT (envelope-from git) Date: Mon, 11 Sep 2023 13:18:34 GMT Message-Id: <202309111318.38BDIYp0024730@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org> Subject: git: 88a9b6e1ed82 - main - libc: Don't assume signed char. List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 88a9b6e1ed82b562f52bae26b3de257495cd1983 Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=88a9b6e1ed82b562f52bae26b3de257495cd1983 commit 88a9b6e1ed82b562f52bae26b3de257495cd1983 Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2023-09-11 13:18:18 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2023-09-11 13:18:25 +0000 libc: Don't assume signed char. MFC after: 3 days Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D41814 --- lib/libc/tests/stdio/snprintf_test.c | 4 ++-- lib/libc/tests/stdio/swprintf_test.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libc/tests/stdio/snprintf_test.c b/lib/libc/tests/stdio/snprintf_test.c index 323356b37a7d..29b908b65120 100644 --- a/lib/libc/tests/stdio/snprintf_test.c +++ b/lib/libc/tests/stdio/snprintf_test.c @@ -131,8 +131,8 @@ ATF_TC_WITHOUT_HEAD(snprintf_wN); ATF_TC_BODY(snprintf_wN, tc) { SNPRINTF_TEST("0", "%w8d", (int8_t)0); - SNPRINTF_TEST("-128", "%w8d", (int8_t)CHAR_MIN); - SNPRINTF_TEST("127", "%w8d", (int8_t)CHAR_MAX); + SNPRINTF_TEST("-128", "%w8d", (int8_t)SCHAR_MIN); + SNPRINTF_TEST("127", "%w8d", (int8_t)SCHAR_MAX); SNPRINTF_TEST("0", "%w8u", (uint8_t)0); SNPRINTF_TEST("255", "%w8u", (uint8_t)UCHAR_MAX); diff --git a/lib/libc/tests/stdio/swprintf_test.c b/lib/libc/tests/stdio/swprintf_test.c index f5dde349412b..f00ecc7f1c1d 100644 --- a/lib/libc/tests/stdio/swprintf_test.c +++ b/lib/libc/tests/stdio/swprintf_test.c @@ -132,8 +132,8 @@ ATF_TC_WITHOUT_HEAD(swprintf_wN); ATF_TC_BODY(swprintf_wN, tc) { SWPRINTF_TEST("0", "%w8d", (int8_t)0); - SWPRINTF_TEST("-128", "%w8d", (int8_t)CHAR_MIN); - SWPRINTF_TEST("127", "%w8d", (int8_t)CHAR_MAX); + SWPRINTF_TEST("-128", "%w8d", (int8_t)SCHAR_MIN); + SWPRINTF_TEST("127", "%w8d", (int8_t)SCHAR_MAX); SWPRINTF_TEST("0", "%w8u", (uint8_t)0); SWPRINTF_TEST("255", "%w8u", (uint8_t)UCHAR_MAX); From nobody Mon Sep 11 14:28:51 2023 X-Original-To: dev-commits-src-main@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 4RkpxH3KsNz4tSKK; Mon, 11 Sep 2023 14:28: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkpxH2wDpz3GhS; Mon, 11 Sep 2023 14:28:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694442531; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S7LIhOtBWu5OrgDQYdx4XJGg+It8oikkFneYj3czps4=; b=YLqYYbNgF3HA39G5bKyI+zM3y5XZId1bOi8yOpnLGcdnSOyKrc+5wTMPkyUHGNgmEsonDu mR3IjEh8TXRa8+mhE+3dbV1O7MPoiSFUnGu1JyztWwx8QLecYADya4/we1xDyhB7XksoKt ODbu/D3/o6tKO9caUq69OcJ5yRPSK3Ddx/TzFws+Cos5EvPhl441IsaqNI6nRHBThV3M4A DX28HxfO153ZOh3FbH7v+TJrqvJt7GhaGOaTCPeEZ8r7Byr6Pib46dMM/uGDvhwg/tbsCt nCusxNocwGZQDSVWq8zLrMQjSsY7kpSopwUtYbIoRdK5ZP73XIPoL1956d8qWA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694442531; a=rsa-sha256; cv=none; b=LbWUNy3JMA/DWO/DSSKhSuQw7PxSc1aCaqI0FBCwEm1zYrsocTKkAyTk2olebP3mpOACCN Eo8EDkpf8PMtELDVn4pm1JaYxae0bTm2s/c7cJLP/wsJKfXG3o1PkWQ6/py/6LFhSwBK4J KvQt8x03KHSZJXYzij/4Gu0x5dsr+zelewFppyJuuWb8lkSkYFWV+nEcwEFWGIpJuu+qlm ndiKJifGEpuCl4bwrNfWf4C8W0jiVlwh0JaqQZwpLJlaq7zGlrS6k9yVTYdgZMv+e3A1/u Fw34xb1yL//EsGGeHVy2eqdwDiq09k2kUGNsU71IDHTiR7B+dUlilLl2deRfCw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694442531; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S7LIhOtBWu5OrgDQYdx4XJGg+It8oikkFneYj3czps4=; b=Zj1L8YOwFCS5yjFbcB1PXbsKl0pZ/QEERJHbtz2in4KPH7II8ISKCAADBmIQbKWTvDFBM2 LIUUpLAX4Q1PrFikw2m0HTADsQlrKeTNtptHsbSuEkEiN5sziT/rOLKgDGQisvDPIx3QOh kvhMrQrbSTxpTC1izm+FttKWUn28G0ogz97JghFb9FJ5exAdhwGyabNwmowbqrOV27vcPA 59ZXlc+mz2Ct4vjlan9Fe1XYb43fhdVmVW8vW25XLohhg+nI56jHgfCdvNSxzH5stotLvD 61MF9PgiML681JOP8km1NKkzfz/axZzjyO3WTJFz1ufqAEiyzOEkbCIXfHPmzQ== 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 4RkpxH1zs7zt0k; Mon, 11 Sep 2023 14:28:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BESp9W040960; Mon, 11 Sep 2023 14:28:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BESp5x040957; Mon, 11 Sep 2023 14:28:51 GMT (envelope-from git) Date: Mon, 11 Sep 2023 14:28:51 GMT Message-Id: <202309111428.38BESp5x040957@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Subject: git: c45d05b71817 - main - net80211: fix ddb print alignment List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: c45d05b71817e478953d6f235d921c2b4acc82de Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c45d05b71817e478953d6f235d921c2b4acc82de commit c45d05b71817e478953d6f235d921c2b4acc82de Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2023-09-11 14:23:20 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2023-09-11 14:28:04 +0000 net80211: fix ddb print alignment Add missing \ts after new lines to properly align output of ddb show commands. Sponsored by: The FreeBSD Foundation MFC after: 10 days --- sys/net80211/ieee80211_ddb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net80211/ieee80211_ddb.c b/sys/net80211/ieee80211_ddb.c index 7a6ee49d7705..4e2df134c7a9 100644 --- a/sys/net80211/ieee80211_ddb.c +++ b/sys/net80211/ieee80211_ddb.c @@ -506,7 +506,7 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) db_printf(" ht_sta_assoc %u", vap->iv_ht_sta_assoc); db_printf(" ht40_sta_assoc %u", vap->iv_ht40_sta_assoc); db_printf("\n"); - db_printf(" nonerpsta %u", vap->iv_nonerpsta); + db_printf("\tnonerpsta %u", vap->iv_nonerpsta); db_printf(" longslotsta %u", vap->iv_longslotsta); db_printf(" lastnonerp %d", vap->iv_lastnonerp); db_printf(" lastnonht %d", vap->iv_lastnonht); @@ -550,7 +550,7 @@ _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta, db_printf(" phytype %d", ic->ic_phytype); db_printf(" opmode %s", ieee80211_opmode_name[ic->ic_opmode]); db_printf("\n"); - db_printf(" inact %p", &ic->ic_inact); + db_printf("\tinact %p", &ic->ic_inact); db_printf("\n"); db_printf("\tflags=%b\n", ic->ic_flags, IEEE80211_F_BITS); From nobody Mon Sep 11 14:28:52 2023 X-Original-To: dev-commits-src-main@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 4RkpxJ4mqWz4tS5k; Mon, 11 Sep 2023 14:28: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkpxJ3Zdfz3GTK; Mon, 11 Sep 2023 14:28:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694442532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l+tTL9Ic6AYfYie1wooH29/JHFIh6O3Ab3B7Oj8CUCM=; b=ERfOj5zgxB/W6IJZ8B5dFibsLInWjAgezVkfbvZNSossu8FarjQOpqymGe2/o4JIoDo0Lh oNpJClyIH7vxTJe4Mbl/hdDlZ/iAplw6iQSlw7zf+fGNN3xrAF6qDyml+fwt1z/46on7cl jXYEo9JveArgpIZSHc+DNtcWVCAoK49JP1Uj2vOfRAzYvpYNvru7dJ+Ev0KZ/WRAqV6U6j +KTuRR+4uyClHPOOkl/d2aNI44MHpTj2LImG0g5BVM4rH2C9NViQdCd7MJPdkhXLObJ0CY 2kDXOcy06GZ4OWjuH7XdosdROibpt1rJAXZowFTvnLt1G9O5C6sXEbLiDN9mRw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694442532; a=rsa-sha256; cv=none; b=amVDbghJylqF71IR/oVPwl3JftyxNli+qFIV+TG0nlPbd7SgLhbK/vp3QRArKe4EXevtkd ImiEfmDDvP7ys7AQqWjjP5loA1xl9wlxG8Szrnq4niwAE9zWQDfp5MisoSDTt1zGkySVVp jP3qPczLIuq+ZFIaUntbMAW78sQl9jVPYsP2CoaGgJSd9gbkngjfAvU04Rco7aJgNVjGhK 903wpLhU/EecoHVZURqlgSzB7ZHLwpC6TWwf333kaExJRu/JW1bjVcQ5J5UDc6UFiA7sqy wLztVuosrYWB60tqN0glWO/g4S5QIQPFd/P8H+pW/LcuGUG9WUdTQnaFuVOw/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694442532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l+tTL9Ic6AYfYie1wooH29/JHFIh6O3Ab3B7Oj8CUCM=; b=kDKZAGgTUgD/7g15Vbaawmy3krXd5JbwbvGt9/Vj/QRrZPZvjnb6ZUv7BX1B10wm3/EHji DiO+mnwPHuDjJ2hROy3BuEONUb2z2mSzj7Y2xlCZJ6rQS/+J1+srPAHOOAAd52FT9a1+Eu RtnOq/IiFCOlXrNniVJ+isE+UgrnWIoT0X7oKHvc0rDY4pdGMaz7rWEggh2aB3pb2f+Bnc h7vE6VWde1G0pu76k8KeWCj2m/CtEAhTxsbgElALuF1e5xvaWDAZiIHOCCTay1gNO6Cd+L Aup5xOjGjzpOPo+Dno7Y/Dmwg6suZ+E2lMV6wly/VTd6q2a9nLFGf8x0bxtACQ== 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 4RkpxJ2bPBzsnv; Mon, 11 Sep 2023 14:28:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BESqw2041002; Mon, 11 Sep 2023 14:28:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BESqmI040999; Mon, 11 Sep 2023 14:28:52 GMT (envelope-from git) Date: Mon, 11 Sep 2023 14:28:52 GMT Message-Id: <202309111428.38BESqmI040999@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Subject: git: 530c13c5401c - main - tools/wlanstats: fix -Wunused-but-set-variable List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 530c13c5401c1f29f8325cf851d96778852a1ba3 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=530c13c5401c1f29f8325cf851d96778852a1ba3 commit 530c13c5401c1f29f8325cf851d96778852a1ba3 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2023-09-11 14:11:52 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2023-09-11 14:28:07 +0000 tools/wlanstats: fix -Wunused-but-set-variable The "allnodes" code is currently #if 0 so also #if 0 the setting of the command line option and variable in order to keep wlanstats compiling. Sponsored by: The FreeBSD Foundation MFC after: 10 days --- tools/tools/net80211/wlanstats/main.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/tools/net80211/wlanstats/main.c b/tools/tools/net80211/wlanstats/main.c index 4c0cf4db0505..ac100a70622e 100644 --- a/tools/tools/net80211/wlanstats/main.c +++ b/tools/tools/net80211/wlanstats/main.c @@ -168,18 +168,26 @@ main(int argc, char *argv[]) struct ether_addr *ea; const uint8_t *mac = NULL; const char *ifname; +#if 0 int allnodes = 0; +#endif int c, mode; ifname = getenv("WLAN"); if (ifname == NULL) ifname = "wlan0"; wf = wlanstats_new(ifname, getfmt("default")); +#if 0 while ((c = getopt(argc, argv, "ahi:lm:o:")) != -1) { +#else + while ((c = getopt(argc, argv, "hi:lm:o:")) != -1) { +#endif switch (c) { +#if 0 case 'a': allnodes++; break; +#endif case 'h': usage(); exit(0); From nobody Mon Sep 11 14:32:01 2023 X-Original-To: dev-commits-src-main@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 4Rkq0x45hKz4sG70; Mon, 11 Sep 2023 14:32: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rkq0x3hJwz3J3T; Mon, 11 Sep 2023 14:32:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694442721; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=01Mzoe5lVqrEwaQgL/J040Mj2XJpwamxenvO+6F5k3s=; b=ChK/OrCM7wbSaBKHyDoH4jDj2vjPw5/aWnqcGAItktX7ScKMxdzl83lUtqN8CzDf0qFUeC jLZizKLxMhGhuIjxoOx0rMTLuDmAOrRylYl93YcYdtHWDKzO/lmwBqECreHWDlJCvqAIX9 G9SdKsTJAwa3XxsP10M2peoAj/1oYxArOzjHRuuPSlFDqBzbohBkCEa8yMBmnGoWQCzuAm IWzNNFFEoFF6H9jHV7SNC5EVXOZA4bauyaTAtDRwhURF//WkI+B3/dHLlqvxh27uR4fGqW WO5KwAR/tZks0jAM18t2IFA7kK+g8/k4o9jVc0Y/NhhCXAiEfKkvXIfcSXVCDw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694442721; a=rsa-sha256; cv=none; b=SAk8C3T4eJ91pU/wKMR+WDA2bY7rg6m4KHp3/AxKQAhzukW6zj7k9ZiUTHc00xEpBnkQ59 lUwLZkOQ3bvPO4lAUOet+2tNWYzEwal+rJMK1ezxOEszCwyjveqzRR6hjncA2A96vnaOI/ xXgC6WquD3BmIJL0oNx5i0Ge3gfu25eQI+Si+DL0zQ3wo9447i72zC9+73nBlwD70YkP75 qPkjbFxCB2CtQiTrYF0BYYsouItW34eYF+SSHnlJvx8vk8pUxN/ZI0bgSleDAFyV3SlBtG auvqXVqLBQJJRG0i+dXXaFfzM3taDq9GrGjT5zS9ihbTStFbLT/lszvZQOo9Xw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694442721; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=01Mzoe5lVqrEwaQgL/J040Mj2XJpwamxenvO+6F5k3s=; b=bXl/md8B9rJTPjFrDi+U596qgjkeLjtvsWLT5WqTJkzjtiQpUpdwjNoPERamRycGR3QD7y GdDamOeSH3N4VCLGmwiC1J9fCajOSOcA4Fk8hy1MAq+7TSjbLWbLoQxMcJGfAOhiQrC1kX NVDL7i1s0hBIKO2hzB1dD7eHhNLO1RQe6Wf5LwYmjm3BVPN+P9lH6Fij9+IxEH5jwgtMqY V5xoj4gkbJIoFxuS3Skj8EYxECCnNUOGwkZKfISeh1KARblAcMJQ0fWEtlvLUNoGrNvaoI sRfk1gZuguGDiohvlhNRgBl2rJZeAYUCahq2F6lWTThbxgdmk2mvm1y+smjnOA== 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 4Rkq0x2n3VzsbY; Mon, 11 Sep 2023 14:32:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BEW1Zd054761; Mon, 11 Sep 2023 14:32:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BEW1Ep054758; Mon, 11 Sep 2023 14:32:01 GMT (envelope-from git) Date: Mon, 11 Sep 2023 14:32:01 GMT Message-Id: <202309111432.38BEW1Ep054758@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Subject: git: f0e59b6903c8 - main - LinuxKPI: skbuff: remove assumption about mac_header List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: f0e59b6903c881859d7f4eaf269b2336b774c7bc Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=f0e59b6903c881859d7f4eaf269b2336b774c7bc commit f0e59b6903c881859d7f4eaf269b2336b774c7bc Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2023-09-08 12:47:03 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2023-09-11 14:31:35 +0000 LinuxKPI: skbuff: remove assumption about mac_header It seems the mac_header can be set to offset 0 for frames received. Remove the warning splattering messages to the console for each packet. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/include/linux/skbuff.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/skbuff.h b/sys/compat/linuxkpi/common/include/linux/skbuff.h index c917b3f09ac9..f8ce212e7853 100644 --- a/sys/compat/linuxkpi/common/include/linux/skbuff.h +++ b/sys/compat/linuxkpi/common/include/linux/skbuff.h @@ -935,10 +935,9 @@ static inline uint8_t * skb_mac_header(const struct sk_buff *skb) { SKB_TRACE(skb); - /* Make sure the mac_header was set as otherwise we return garbage. */ - WARN_ON(skb->mac_header == 0); return (skb->head + skb->mac_header); } + static inline void skb_reset_mac_header(struct sk_buff *skb) { From nobody Mon Sep 11 15:42:16 2023 X-Original-To: dev-commits-src-main@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 4RkrZ119nlz4t2js; Mon, 11 Sep 2023 15:42: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkrZ10lL9z3dhh; Mon, 11 Sep 2023 15:42:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694446937; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jrbFJfndnB6YPALsVC8GnQ+EKecCEzJrjUHxf+k0jbQ=; b=Zi1Lhgd4JA9Vhejg97rGFdbKGw7bzqc5z9EDxyyqvxZRtWGo/4V54ISrcVBB9peL+WClVU aNxnlgWZcRexF04lc1+8pxhnOPvT9YhaJ5BHz0z1SiqVvCbBiiA6/o+xEv6DNzNhNGQUT9 ztxSO7RVqpQuXrDhTfHJJFmJEKBDYyoY331l9p+zuPdozX6YdeY9CQkEIMlq5cjpiBnFAv mZwr6+TxVzKi/oLgVjC6MU5n1lIHtN/s8jjhe2E7f0lxTKf0VKAbW4WjbN8W1UX8pAwnJE N0DEv+rA1y+LjUWKvxHxqPR9TJVSSFTxiE/2ZluJF4N+XLQpXK+h4mpSoUYoDQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694446937; a=rsa-sha256; cv=none; b=ebLGpEF8+3o1EOK9uXrDuI21/AvpEvGi0dP6xqDUvxswEQxzqc79ULU58PNw1bFqp+n6MR 7Os7+Qne3q8uzzNsu51oEU8EgZ9rMe/HfnrEsUpHMPiGsuDT2NO02GcC14AOUKV44ExJWP OZoU9k+rUNOGuz0v9/noa7QZS5fTqx/IoFWfbMjNPKv74dhkkIf2rSIK2GlH11ZCU/k9Yj iUzL6tDO96hXA7NgdEz0+RRey+3FOemKev3jDXDmY1P6PRDL4z55iw3nQUUPir/TZ73tP8 t71P3kST7VqlChDGcPb3lrwc+OjLyZJjb0VRID1Ab5xlwbgOD/XBbVKYz0BiKQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694446937; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jrbFJfndnB6YPALsVC8GnQ+EKecCEzJrjUHxf+k0jbQ=; b=WVVbJCbPOAK47xdnfaxGOgH8M5zZi4eFqUgsuFAmsmPTLOk4jkfiecN2ACpwYeAcbsA9jR X8v/dLAaURbnNtv5dnPfx8dEqkLnAsS/tnV+IecSNVF/D61V3pOA46Vtgtw71qIVzA573q iRyGHRZiAqdbsdShit/coxidbZGI6SrhYE7FJd+loy9VUdecvsXrVZfIsDdYqsv7sVFCYx 0kt2HZKKbVo//rb2m9ZMkXGgcey3ecCOh5e5n0R5SwOvpUFzMVCMWarQV6o7o7ELczA2gm 50nqMu7jnefMQBpTjWD1Hi6LYQNZOBKAODi4JkcPvhMh5zbRtPHAp8UBmjRmmw== 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 4RkrZ06x0BzvPf; Mon, 11 Sep 2023 15:42:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BFgGUp071428; Mon, 11 Sep 2023 15:42:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BFgGZO071425; Mon, 11 Sep 2023 15:42:16 GMT (envelope-from git) Date: Mon, 11 Sep 2023 15:42:16 GMT Message-Id: <202309111542.38BFgGZO071425@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin <bapt@FreeBSD.org> Subject: git: d557a86c879a - main - pkg: use https by default List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d557a86c879a8515d59e8380b083b2265e9a3547 Auto-Submitted: auto-generated The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=d557a86c879a8515d59e8380b083b2265e9a3547 commit d557a86c879a8515d59e8380b083b2265e9a3547 Author: Baptiste Daroussin <bapt@FreeBSD.org> AuthorDate: 2023-06-08 21:37:58 +0000 Commit: Baptiste Daroussin <bapt@FreeBSD.org> CommitDate: 2023-09-11 15:41:32 +0000 pkg: use https by default Switch the repository to use https by default, base is providing a CA root bundle suitable to validate the certificates used by the project. This can now be activated without requiring another packages to be installed Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D40473 --- usr.sbin/pkg/FreeBSD.conf.latest | 2 +- usr.sbin/pkg/FreeBSD.conf.quarterly | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/pkg/FreeBSD.conf.latest b/usr.sbin/pkg/FreeBSD.conf.latest index 3f0c4a6243cb..a75b0703386f 100644 --- a/usr.sbin/pkg/FreeBSD.conf.latest +++ b/usr.sbin/pkg/FreeBSD.conf.latest @@ -7,7 +7,7 @@ # FreeBSD: { - url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", + url: "pkg+https://pkg.FreeBSD.org/${ABI}/latest", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", diff --git a/usr.sbin/pkg/FreeBSD.conf.quarterly b/usr.sbin/pkg/FreeBSD.conf.quarterly index 31dc1bde8c2a..645053820dda 100644 --- a/usr.sbin/pkg/FreeBSD.conf.quarterly +++ b/usr.sbin/pkg/FreeBSD.conf.quarterly @@ -7,7 +7,7 @@ # FreeBSD: { - url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly", + url: "pkg+https://pkg.FreeBSD.org/${ABI}/quarterly", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", From nobody Mon Sep 11 17:21:18 2023 X-Original-To: dev-commits-src-main@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 4RktmP41Gjz4sSFL; Mon, 11 Sep 2023 17:21:25 +0000 (UTC) (envelope-from rpokala@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.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 "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RktmP3s9Mz4R9S; Mon, 11 Sep 2023 17:21:25 +0000 (UTC) (envelope-from rpokala@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694452885; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tXPD1TIDtjVituhKSQv8kr1UIWmUC4FUN8vDbGj9gc8=; b=cmQA7gOrrW8iX19sTaQ42YldanlxORvVBRLUmp2g1a40aQKPLXsq7uTqa4hHMCeLTatvMJ oXw6lUjx4yOAElePiCUy9H5ZBPqTybEaF9a2gpaAlV3hg6woTTE2JLHTQYQJjlzIl2Kj89 ZRipi07F/pTAFy5o7Pl3mcBrbZnYzAooHJO3dn/V1IzxqBFfMo/BmUyIKHFSKVW79f18Yb WE2d7Lzf/3nt8afXWW2Z+lWqyWxFH6A+AU+MovGYPdBXGYms6LhqmENDxCKsRn+vqvCDW7 rtYWCeIfjp3osjm+SmhapxbaneXNayY7SEmd8QWPpxIxEqol0rQmqA3PuL3O+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694452885; a=rsa-sha256; cv=none; b=YZx0Seio0e2AkmXNmI7SMsGknvD7b2tPsPFT/1H9V/z4kswN3bHnbj8CzcLQZyZCi8z8fx KAD/Y5tNbzan10FAx6gACdwgoXM1k6a/YP+z/Uc3L4IOaZPYfUkVj2BO/jePS582/5pUGa q6+GbMcfaafyneGiJC1V0Qxtz3nbjmnkq5asRc5tBRWyba1H5y6LERgsYEkHBUGJdMWEpz y0WuopI3V4TwQlIv5nbQalWWFMzAwhhPQ0/TF9DZXjqeHeQjudjlRmA7wSfy/+40FWp7Xu ObuSRgEILG9ONvwM/xbnXPdZsGCKwjVZuhMxZ9bx60itCrI37hM0DQlaJVszyw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694452885; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tXPD1TIDtjVituhKSQv8kr1UIWmUC4FUN8vDbGj9gc8=; b=Ms5ua284aHpQ3WeO195coVpEUiJv9FJ8wBLgmJDbyTked6sgQJfxzFKyBlouH32pcmLf7V pKNHv2xXkQdyVGiL7Cc0GyoQAxsRO13IEZ7b8eQZ6q5FdtcO3cewuIIfNzfTXXV+Ng3Yrf zp7P11P3sLylzNHOrbo5U8S4Y+KOmkWZiGsE7RAgzzRhMp74UnLcPA+XYqvqsEqP86mDIL A2VpEoIg8IGpd9gjKMQJQNMGD5lMQQaJKOf8RqvAw/W6BIyf42OdaAOFG8JrvhEO0sU6/3 bsV6OYsYUyl/R3iLGq4T6NlmSFdliHX74wTsjfZ876nq3yWTjJmrrYodeQuFEA== Received: from [192.168.1.12] (c-98-248-120-44.hsd1.ca.comcast.net [98.248.120.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: rpokala) by smtp.freebsd.org (Postfix) with ESMTPSA id 4RktmN5BMGz16m9; Mon, 11 Sep 2023 17:21:24 +0000 (UTC) (envelope-from rpokala@freebsd.org) User-Agent: Microsoft-MacOutlook/16.76.23082700 Date: Mon, 11 Sep 2023 10:21:18 -0700 Subject: Re: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pctrie code" From: Ravi Pokala <rpokala@freebsd.org> To: Doug Moore <dougm@FreeBSD.org>, <src-committers@FreeBSD.org>, <dev-commits-src-all@FreeBSD.org>, <dev-commits-src-main@FreeBSD.org> Message-ID: <25DD750F-38F2-4151-9E34-350844CE705C@panasas.com> Thread-Topic: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pctrie code" References: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org> In-Reply-To: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org> List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org Mime-version: 1.0 Content-type: text/plain; charset="UTF-8" Content-transfer-encoding: quoted-printable Hi Doug, > Revert "radix_trie: have vm_radix use pctrie code" That's "what", not "why". Why are you reverting the change? Thanks, Ravi (rpokala@) =EF=BB=BF-----Original Message----- From: <owner-src-committers@freebsd.org <mailto:owner-src-committers@freebs= d.org>> on behalf of Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org= >> Date: Monday, September 11, 2023 at 01:35 To: <src-committers@FreeBSD.org <mailto:src-committers@FreeBSD.org>>, <dev-= commits-src-all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org>>, <dev-= commits-src-main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD.org>> Subject: git: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use p= ctrie code" The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91a042b0be4888440= 52c0f8985a <https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91a042b0be4= 88844052c0f8985a> commit 6cec93da46c4a91a042b0be488844052c0f8985a Author: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>> AuthorDate: 2023-09-11 08:34:46 +0000 Commit: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>> CommitDate: 2023-09-11 08:35:36 +0000 Revert "radix_trie: have vm_radix use pctrie code" This reverts commit a494d30465f21e8cb014a5c788a43001397325d7. --- sys/vm/_vm_radix.h | 9 +- sys/vm/vm_radix.c | 696 +++++++++++++++++++++++++++++++++++++++++++++++++++= +- sys/vm/vm_radix.h | 113 ++------- 3 files changed, 709 insertions(+), 109 deletions(-) diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h index 2d9b05c7b52a..01eb25a9dccf 100644 --- a/sys/vm/_vm_radix.h +++ b/sys/vm/_vm_radix.h @@ -31,13 +31,16 @@ #ifndef __VM_RADIX_H_ #define __VM_RADIX_H_ -#include <sys/_pctrie.h> +/* + * Radix tree node. + */ +struct vm_radix_node; /* - * Radix tree + * Radix tree root. */ struct vm_radix { - struct pctrie rt_trie; + struct vm_radix_node *rt_root; }; #endif /* !__VM_RADIX_H_ */ diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c index b8c693eca66f..768a56ed76f7 100644 --- a/sys/vm/vm_radix.c +++ b/sys/vm/vm_radix.c @@ -54,26 +54,302 @@ #include "opt_ddb.h" #include <sys/param.h> -#include <sys/pctrie.h> +#include <sys/systm.h> +#include <sys/kernel.h> +#include <sys/libkern.h> +#include <sys/proc.h> +#include <sys/vmmeter.h> +#include <sys/smr.h> +#include <sys/smr_types.h> #include <vm/uma.h> #include <vm/vm.h> +#include <vm/vm_param.h> +#include <vm/vm_object.h> #include <vm/vm_page.h> #include <vm/vm_radix.h> +#ifdef DDB +#include <ddb/ddb.h> +#endif + +/* + * These widths should allow the pointers to a node's children to fit with= in + * a single cache line. The extra levels from a narrow width should not be + * a problem thanks to path compression. + */ +#ifdef __LP64__ +#define VM_RADIX_WIDTH 4 +#else +#define VM_RADIX_WIDTH 3 +#endif + +#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH) +#define VM_RADIX_MASK (VM_RADIX_COUNT - 1) +#define VM_RADIX_LIMIT \ + (howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1) + +#if VM_RADIX_WIDTH =3D=3D 3 +typedef uint8_t rn_popmap_t; +#elif VM_RADIX_WIDTH =3D=3D 4 +typedef uint16_t rn_popmap_t; +#elif VM_RADIX_WIDTH =3D=3D 5 +typedef uint32_t rn_popmap_t; +#else +#error Unsupported width +#endif +_Static_assert(sizeof(rn_popmap_t) <=3D sizeof(int), + "rn_popmap_t too wide"); + +/* Set of all flag bits stored in node pointers. */ +#define VM_RADIX_FLAGS (VM_RADIX_ISLEAF) +#define VM_RADIX_PAD VM_RADIX_FLAGS + +enum vm_radix_access { SMR, LOCKED, UNSERIALIZED }; + +struct vm_radix_node; +typedef SMR_POINTER(struct vm_radix_node *) smrnode_t; + +struct vm_radix_node { + vm_pindex_t rn_owner; /* Owner of record. */ + rn_popmap_t rn_popmap; /* Valid children. */ + uint8_t rn_clev; /* Level * WIDTH. */ + smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */ +}; + static uma_zone_t vm_radix_node_zone; -smr_t vm_radix_smr; +static smr_t vm_radix_smr; + +static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, + enum vm_radix_access access); -void * -vm_radix_node_alloc(struct pctrie *ptree) +/* + * Map index to an array position for the children of rnode, + */ +static __inline int +vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index) { - return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT)); + return ((index >> rnode->rn_clev) & VM_RADIX_MASK); } -void -vm_radix_node_free(struct pctrie *ptree, void *node) +/* + * Returns true if index does not belong to the specified rnode. Otherwise= , + * sets slot value, and returns false. + */ +static __inline bool +vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot= ) +{ + index =3D (index - rnode->rn_owner) >> rnode->rn_clev; + if (index >=3D VM_RADIX_COUNT) + return (true); + *slot =3D index; + return (false); +} + +/* + * Allocate a radix node. + */ +static struct vm_radix_node * +vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind) +{ + struct vm_radix_node *rnode; + + rnode =3D uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT); + if (rnode =3D=3D NULL) + return (NULL); + + /* + * We want to clear the last child pointer after the final section + * has exited so lookup can not return false negatives. It is done + * here because it will be cache-cold in the dtor callback. + */ + if (rnode->rn_popmap !=3D 0) { + vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1], + VM_RADIX_NULL, UNSERIALIZED); + rnode->rn_popmap =3D 0; + } + + /* + * From the highest-order bit where the indexes differ, + * compute the highest level in the trie where they differ. Then, + * compute the least index of this subtrie. + */ + KASSERT(index !=3D newind, ("%s: passing the same key value %jx", + __func__, (uintmax_t)index)); + _Static_assert(sizeof(long long) >=3D sizeof(vm_pindex_t), + "vm_pindex_t too wide"); + _Static_assert(sizeof(vm_pindex_t) * NBBY <=3D + (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow"); + rnode->rn_clev =3D rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH); + rnode->rn_owner =3D VM_RADIX_COUNT; + rnode->rn_owner =3D index & -(rnode->rn_owner << rnode->rn_clev); + return (rnode); +} + +/* + * Free radix node. + */ +static __inline void +vm_radix_node_put(struct vm_radix_node *rnode) +{ +#ifdef INVARIANTS + int slot; + + KASSERT(powerof2(rnode->rn_popmap), + ("vm_radix_node_put: rnode %p has too many children %04x", rnode, + rnode->rn_popmap)); + for (slot =3D 0; slot < VM_RADIX_COUNT; slot++) { + if ((rnode->rn_popmap & (1 << slot)) !=3D 0) + continue; + KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) =3D=3D + VM_RADIX_NULL, + ("vm_radix_node_put: rnode %p has a child", rnode)); + } +#endif + uma_zfree_smr(vm_radix_node_zone, rnode); +} + +/* + * Fetch a node pointer from a slot in another node. + */ +static __inline struct vm_radix_node * +vm_radix_node_load(smrnode_t *p, enum vm_radix_access access) +{ + + switch (access) { + case UNSERIALIZED: + return (smr_unserialized_load(p, true)); + case LOCKED: + return (smr_serialized_load(p, true)); + case SMR: + return (smr_entered_load(p, vm_radix_smr)); + } + __assert_unreachable(); +} + +static __inline void +vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, + enum vm_radix_access access) +{ + + switch (access) { + case UNSERIALIZED: + smr_unserialized_store(p, v, true); + break; + case LOCKED: + smr_serialized_store(p, v, true); + break; + case SMR: + panic("vm_radix_node_store: Not supported in smr section."); + } +} + +/* + * Get the root node for a radix tree. + */ +static __inline struct vm_radix_node * +vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access) +{ + + return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access)); +} + +/* + * Set the root node for a radix tree. + */ +static __inline void +vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode, + enum vm_radix_access access) +{ + + vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access); +} + +/* + * Returns TRUE if the specified radix node is a leaf and FALSE otherwise. + */ +static __inline bool +vm_radix_isleaf(struct vm_radix_node *rnode) +{ + + return (((uintptr_t)rnode & VM_RADIX_ISLEAF) !=3D 0); +} + +/* + * Returns page cast to radix node with leaf bit set. + */ +static __inline struct vm_radix_node * +vm_radix_toleaf(vm_page_t page) +{ + return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF)); +} + +/* + * Returns the associated page extracted from rnode. + */ +static __inline vm_page_t +vm_radix_topage(struct vm_radix_node *rnode) +{ + + return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS)); +} + +/* + * Make 'child' a child of 'rnode'. + */ +static __inline void +vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index, + struct vm_radix_node *child, enum vm_radix_access access) +{ + int slot; + + slot =3D vm_radix_slot(rnode, index); + vm_radix_node_store(&rnode->rn_child[slot], child, access); + rnode->rn_popmap ^=3D 1 << slot; + KASSERT((rnode->rn_popmap & (1 << slot)) !=3D 0, + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); +} + +/* + * Internal helper for vm_radix_reclaim_allnodes(). + * This function is recursive. + */ +static void +vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode) +{ + struct vm_radix_node *child; + int slot; + + while (rnode->rn_popmap !=3D 0) { + slot =3D ffs(rnode->rn_popmap) - 1; + child =3D vm_radix_node_load(&rnode->rn_child[slot], + UNSERIALIZED); + KASSERT(child !=3D VM_RADIX_NULL, + ("%s: bad popmap slot %d in rnode %p", + __func__, slot, rnode)); + if (!vm_radix_isleaf(child)) + vm_radix_reclaim_allnodes_int(child); + rnode->rn_popmap ^=3D 1 << slot; + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, + UNSERIALIZED); + } + vm_radix_node_put(rnode); +} + +/* + * radix node zone initializer. + */ +static int +vm_radix_zone_init(void *mem, int size, int flags) { - uma_zfree_smr(vm_radix_node_zone, node); + struct vm_radix_node *rnode; + + rnode =3D mem; + rnode->rn_popmap =3D 0; + for (int i =3D 0; i < nitems(rnode->rn_child); i++) + vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL, + UNSERIALIZED); + return (0); } #ifndef UMA_MD_SMALL_ALLOC @@ -107,14 +383,412 @@ void vm_radix_zinit(void) { - vm_radix_node_zone =3D uma_zcreate("RADIX NODE", pctrie_node_size(), - NULL, NULL, pctrie_zone_init, NULL, - PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); + vm_radix_node_zone =3D uma_zcreate("RADIX NODE", + sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL, + VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); vm_radix_smr =3D uma_zone_get_smr(vm_radix_node_zone); } +/* + * Inserts the key-value pair into the trie. + * Panics if the key already exists. + */ +int +vm_radix_insert(struct vm_radix *rtree, vm_page_t page) +{ + vm_pindex_t index, newind; + struct vm_radix_node *leaf, *parent, *rnode; + smrnode_t *parentp; + int slot; + + index =3D page->pindex; + leaf =3D vm_radix_toleaf(page); + + /* + * The owner of record for root is not really important because it + * will never be used. + */ + rnode =3D vm_radix_root_load(rtree, LOCKED); + parent =3D NULL; + for (;;) { + if (vm_radix_isleaf(rnode)) { + if (rnode =3D=3D VM_RADIX_NULL) { + if (parent =3D=3D NULL) + rtree->rt_root =3D leaf; + else + vm_radix_addnode(parent, index, leaf, + LOCKED); + return (0); + } + newind =3D vm_radix_topage(rnode)->pindex; + if (newind =3D=3D index) + panic("%s: key %jx is already present", + __func__, (uintmax_t)index); + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) { + newind =3D rnode->rn_owner; + break; + } + parent =3D rnode; + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + + /* + * A new node is needed because the right insertion level is reached. + * Setup the new intermediate node and add the 2 children: the + * new object and the older edge or object. + */ + parentp =3D (parent !=3D NULL) ? &parent->rn_child[slot]: + (smrnode_t *)&rtree->rt_root; + parent =3D vm_radix_node_get(index, newind); + if (parent =3D=3D NULL) + return (ENOMEM); + /* These writes are not yet visible due to ordering. */ + vm_radix_addnode(parent, index, leaf, UNSERIALIZED); + vm_radix_addnode(parent, newind, rnode, UNSERIALIZED); + /* Serializing write to make the above visible. */ + vm_radix_node_store(parentp, parent, LOCKED); + return (0); +} + +/* + * Returns the value stored at the index. If the index is not present, + * NULL is returned. + */ +static __always_inline vm_page_t +_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index, + enum vm_radix_access access) +{ + struct vm_radix_node *rnode; + vm_page_t m; + int slot; + + rnode =3D vm_radix_root_load(rtree, access); + for (;;) { + if (vm_radix_isleaf(rnode)) { + if ((m =3D vm_radix_topage(rnode)) !=3D NULL && + m->pindex =3D=3D index) + return (m); + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) + break; + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], access); + } + return (NULL); +} + +/* + * Returns the value stored at the index assuming there is an external loc= k. + * + * If the index is not present, NULL is returned. + */ +vm_page_t +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) +{ + + return _vm_radix_lookup(rtree, index, LOCKED); +} + +/* + * Returns the value stored at the index without requiring an external loc= k. + * + * If the index is not present, NULL is returned. + */ +vm_page_t +vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) +{ + vm_page_t m; + + smr_enter(vm_radix_smr); + m =3D _vm_radix_lookup(rtree, index, SMR); + smr_exit(vm_radix_smr); + + return (m); +} + +/* + * Returns the page with the least pindex that is greater than or equal to= the + * specified pindex, or NULL if there are no such pages. + * + * Requires that access be externally synchronized by a lock. + */ +vm_page_t +vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) +{ + struct vm_radix_node *rnode, *succ; + vm_page_t m; + int slot; + + /* + * Descend the trie as if performing an ordinary lookup for the page + * with the specified pindex. However, unlike an ordinary lookup, as we + * descend the trie, we use "succ" to remember the last branching-off + * point, that is, the interior node under which the page with the least + * pindex that is both outside our current path down the trie and more + * than the specified pindex resides. (The node's popmap makes it fast + * and easy to recognize a branching-off point.) If our ordinary lookup + * fails to yield a page with a pindex that is greater than or equal to + * the specified pindex, then we will exit this loop and perform a + * lookup starting from "succ". If "succ" is not NULL, then that lookup + * is guaranteed to succeed. + */ + rnode =3D vm_radix_root_load(rtree, LOCKED); + succ =3D NULL; + for (;;) { + if (vm_radix_isleaf(rnode)) { + if ((m =3D vm_radix_topage(rnode)) !=3D NULL && + m->pindex >=3D index) + return (m); + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) { + /* + * If all pages in this subtree have pindex > index, + * then the page in this subtree with the least pindex + * is the answer. + */ + if (rnode->rn_owner > index) + succ =3D rnode; + break; + } + + /* + * Just in case the next search step leads to a subtree of all + * pages with pindex < index, check popmap to see if a next + * bigger step, to a subtree of all pages with pindex > index, + * is available. If so, remember to restart the search here. + */ + if ((rnode->rn_popmap >> slot) > 1) + succ =3D rnode; + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + + /* + * Restart the search from the last place visited in the subtree that + * included some pages with pindex > index, if there was such a place. + */ + if (succ =3D=3D NULL) + return (NULL); + if (succ !=3D rnode) { + /* + * Take a step to the next bigger sibling of the node chosen + * last time. In that subtree, all pages have pindex > index. + */ + slot =3D vm_radix_slot(succ, index) + 1; + KASSERT((succ->rn_popmap >> slot) !=3D 0, + ("%s: no popmap siblings past slot %d in node %p", + __func__, slot, succ)); + slot +=3D ffs(succ->rn_popmap >> slot) - 1; + succ =3D vm_radix_node_load(&succ->rn_child[slot], LOCKED); + } + + /* + * Find the page in the subtree rooted at "succ" with the least pindex. + */ + while (!vm_radix_isleaf(succ)) { + KASSERT(succ->rn_popmap !=3D 0, + ("%s: no popmap children in node %p", __func__, succ)); + slot =3D ffs(succ->rn_popmap) - 1; + succ =3D vm_radix_node_load(&succ->rn_child[slot], LOCKED); + } + return (vm_radix_topage(succ)); +} + +/* + * Returns the page with the greatest pindex that is less than or equal to= the + * specified pindex, or NULL if there are no such pages. + * + * Requires that access be externally synchronized by a lock. + */ +vm_page_t +vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) +{ + struct vm_radix_node *pred, *rnode; + vm_page_t m; + int slot; + + /* + * Mirror the implementation of vm_radix_lookup_ge, described above. + */ + rnode =3D vm_radix_root_load(rtree, LOCKED); + pred =3D NULL; + for (;;) { + if (vm_radix_isleaf(rnode)) { + if ((m =3D vm_radix_topage(rnode)) !=3D NULL && + m->pindex <=3D index) + return (m); + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) { + if (rnode->rn_owner < index) + pred =3D rnode; + break; + } + if ((rnode->rn_popmap & ((1 << slot) - 1)) !=3D 0) + pred =3D rnode; + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + if (pred =3D=3D NULL) + return (NULL); + if (pred !=3D rnode) { + slot =3D vm_radix_slot(pred, index); + KASSERT((pred->rn_popmap & ((1 << slot) - 1)) !=3D 0, + ("%s: no popmap siblings before slot %d in node %p", + __func__, slot, pred)); + slot =3D fls(pred->rn_popmap & ((1 << slot) - 1)) - 1; + pred =3D vm_radix_node_load(&pred->rn_child[slot], LOCKED); + } + while (!vm_radix_isleaf(pred)) { + KASSERT(pred->rn_popmap !=3D 0, + ("%s: no popmap children in node %p", __func__, pred)); + slot =3D fls(pred->rn_popmap) - 1; + pred =3D vm_radix_node_load(&pred->rn_child[slot], LOCKED); + } + return (vm_radix_topage(pred)); +} + +/* + * Remove the specified index from the trie, and return the value stored a= t + * that index. If the index is not present, return NULL. + */ +vm_page_t +vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) +{ + struct vm_radix_node *child, *parent, *rnode; + vm_page_t m; + int slot; + + rnode =3D NULL; + child =3D vm_radix_root_load(rtree, LOCKED); + for (;;) { + if (vm_radix_isleaf(child)) + break; + parent =3D rnode; + rnode =3D child; + slot =3D vm_radix_slot(rnode, index); + child =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + if ((m =3D vm_radix_topage(child)) =3D=3D NULL || m->pindex !=3D index) + return (NULL); + if (rnode =3D=3D NULL) { + vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED); + return (m); + } + KASSERT((rnode->rn_popmap & (1 << slot)) !=3D 0, + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); + rnode->rn_popmap ^=3D 1 << slot; + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED); + if (!powerof2(rnode->rn_popmap)) + return (m); + KASSERT(rnode->rn_popmap !=3D 0, ("%s: bad popmap all zeroes", __func__)); + slot =3D ffs(rnode->rn_popmap) - 1; + child =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + KASSERT(child !=3D VM_RADIX_NULL, + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); + if (parent =3D=3D NULL) + vm_radix_root_store(rtree, child, LOCKED); + else { + slot =3D vm_radix_slot(parent, index); + KASSERT(rnode =3D=3D + vm_radix_node_load(&parent->rn_child[slot], LOCKED), + ("%s: invalid child value", __func__)); + vm_radix_node_store(&parent->rn_child[slot], child, LOCKED); + } + /* + * The child is still valid and we can not zero the + * pointer until all smr references are gone. + */ + vm_radix_node_put(rnode); + return (m); +} + +/* + * Remove and free all the nodes from the radix tree. + * This function is recursive but there is a tight control on it as the + * maximum depth of the tree is fixed. + */ +void +vm_radix_reclaim_allnodes(struct vm_radix *rtree) +{ + struct vm_radix_node *root; + + root =3D vm_radix_root_load(rtree, LOCKED); + if (root =3D=3D VM_RADIX_NULL) + return; + vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED); + if (!vm_radix_isleaf(root)) + vm_radix_reclaim_allnodes_int(root); +} + +/* + * Replace an existing page in the trie with another one. + * Panics if there is not an old page in the trie at the new page's index. + */ +vm_page_t +vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) +{ + struct vm_radix_node *leaf, *parent, *rnode; + vm_page_t m; + vm_pindex_t index; + int slot; + + leaf =3D vm_radix_toleaf(newpage); + index =3D newpage->pindex; + rnode =3D vm_radix_root_load(rtree, LOCKED); + parent =3D NULL; + for (;;) { + if (vm_radix_isleaf(rnode)) { + if ((m =3D vm_radix_topage(rnode)) !=3D NULL && + m->pindex =3D=3D index) { + if (parent =3D=3D NULL) + rtree->rt_root =3D leaf; + else + vm_radix_node_store( + &parent->rn_child[slot], leaf, + LOCKED); + return (m); + } + break; + } + if (vm_radix_keybarr(rnode, index, &slot)) + break; + parent =3D rnode; + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + } + panic("%s: original replacing page not found", __func__); +} + void vm_radix_wait(void) { uma_zwait(vm_radix_node_zone); } + +#ifdef DDB +/* + * Show details about the given radix node. + */ +DB_SHOW_COMMAND(radixnode, db_show_radixnode) +{ + struct vm_radix_node *rnode, *tmp; + int slot; + rn_popmap_t popmap; + + if (!have_addr) + return; + rnode =3D (struct vm_radix_node *)addr; + db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n", + (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap, + rnode->rn_clev / VM_RADIX_WIDTH); + for (popmap =3D rnode->rn_popmap; popmap !=3D 0; popmap ^=3D 1 << slot) { + slot =3D ffs(popmap) - 1; + tmp =3D vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED); + db_printf("slot: %d, val: %p, page: %p, clev: %d\n", + slot, (void *)tmp, + vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL, + rnode->rn_clev / VM_RADIX_WIDTH); + } +} +#endif /* DDB */ diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h index a332618fc0e6..231edda65102 100644 --- a/sys/vm/vm_radix.h +++ b/sys/vm/vm_radix.h @@ -34,113 +34,36 @@ #include <vm/_vm_radix.h> #ifdef _KERNEL -#include <sys/pctrie.h> -#include <vm/vm.h> +int vm_radix_insert(struct vm_radix *rtree, vm_page_t page); void vm_radix_wait(void); +vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index); +vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index); +vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index); +vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t ind= ex); +void vm_radix_reclaim_allnodes(struct vm_radix *rtree); +vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index); +vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage); void vm_radix_zinit(void); -void *vm_radix_node_alloc(struct pctrie *ptree); -void vm_radix_node_free(struct pctrie *ptree, void *node); -extern smr_t vm_radix_smr; - -static __inline void -vm_radix_init(struct vm_radix *rtree) -{ - pctrie_init(&rtree->rt_trie); -} - -static __inline bool -vm_radix_is_empty(struct vm_radix *rtree) -{ - return (pctrie_is_empty(&rtree->rt_trie)); -} - -PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix= _node_free, - vm_radix_smr); /* - * Inserts the key-value pair into the trie. - * Panics if the key already exists. + * Each search path in the trie terminates at a leaf, which is a pointer t= o a + * page marked with a set 1-bit. A leaf may be associated with a null poin= ter + * to indicate no page there. */ -static __inline int -vm_radix_insert(struct vm_radix *rtree, vm_page_t page) -{ - return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page)); -} - -/* - * Returns the value stored at the index assuming there is an external loc= k. - * - * If the index is not present, NULL is returned. - */ -static __inline vm_page_t -vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index)); -} - -/* - * Returns the value stored at the index without requiring an external loc= k. - * - * If the index is not present, NULL is returned. - */ -static __inline vm_page_t -vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index)); -} +#define VM_RADIX_ISLEAF 0x1 +#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF -/* - * Returns the page with the least pindex that is greater than or equal to= the - * specified pindex, or NULL if there are no such pages. - * - * Requires that access be externally synchronized by a lock. - */ -static __inline vm_page_t -vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index)); -} - -/* - * Returns the page with the greatest pindex that is less than or equal to= the - * specified pindex, or NULL if there are no such pages. - * - * Requires that access be externally synchronized by a lock. - */ -static __inline vm_page_t -vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index)); -} - -/* - * Remove the specified index from the trie, and return the value stored a= t - * that index. If the index is not present, return NULL. - */ -static __inline vm_page_t -vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) -{ - return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index)); -} - -/* - * Remove and free all the nodes from the radix tree. - */ static __inline void -vm_radix_reclaim_allnodes(struct vm_radix *rtree) +vm_radix_init(struct vm_radix *rtree) { - VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie); + rtree->rt_root =3D VM_RADIX_NULL; } -/* - * Replace an existing page in the trie with another one. - * Panics if there is not an old page in the trie at the new page's index. - */ -static __inline vm_page_t -vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) +static __inline bool +vm_radix_is_empty(struct vm_radix *rtree) { - return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage)); + return (rtree->rt_root =3D=3D VM_RADIX_NULL); } #endif /* _KERNEL */ From nobody Mon Sep 11 17:26:21 2023 X-Original-To: dev-commits-src-main@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 4Rktt90jjkz4sVMr; Mon, 11 Sep 2023 17:26:25 +0000 (UTC) (envelope-from unkadoug@gmail.com) Received: from mail-yb1-xb2b.google.com (mail-yb1-xb2b.google.com [IPv6:2607:f8b0:4864:20::b2b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rktt90HNlz4SGb; Mon, 11 Sep 2023 17:26:25 +0000 (UTC) (envelope-from unkadoug@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-yb1-xb2b.google.com with SMTP id 3f1490d57ef6-d8032efa2bfso4268412276.1; Mon, 11 Sep 2023 10:26:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694453184; x=1695057984; darn=freebsd.org; h=content-transfer-encoding:in-reply-to:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=ysXrtsKaDkN5m1Q7ceFoVohWfGH1FksCNtZEUwJlYTw=; b=DccO9Ym9gSLpgLQvfONxIYLbCqd3lc46/5i4ZZjfitvjrmlz8B1oK9RylUF7WrSI3p oZearOMgVU/XSyDGMKBTpiXaaNuCGNHTtcgrG8OYoiaC4ewwSWwCOKW3lKh5umvO1A/Q HqnbKlSQ8VDp9znlagxBg3j5ZLI7bwQWVkLZf7k5ZIyMxSu8TukDVp+lD5k3ScaYPz6i Ro4iooIuTx/bBmHrNsV4knsXshfU4TDx7wT0MoiODbV8BT7/15OdsqbooXMIOXGUuUbe T6ekGAnSMcFMSevOjcKj8kTxZCQ6uUDrF3wuHZfCWf7EA+omABCcA2mgA1CHHJz0V8S5 bYSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694453184; x=1695057984; h=content-transfer-encoding:in-reply-to:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ysXrtsKaDkN5m1Q7ceFoVohWfGH1FksCNtZEUwJlYTw=; b=f8gxjJFUPEJKT9NUjR0cZ7/ePJE228LsiAd5wbhndnVCZH4CwMaTuSH8qCLcprRAt3 XdGIch5Kw01eXhPuAKlPntVwvMaZk62QqW+4Ha98mol/pe5PZacBLXMFZxMNcPUjupT3 DjMjbTvF7tf6GLmTa3nAKGpjg6WdgO0DW8n26WOE1eLhX+SCGqPwfDDQ1rstGr7Cpd0e uWmHt6m2TNo4C252xqUMDzvUFLsIH7XeWe+MiweNAQC6VdpdUPg7kC1PKN+ALBf+whwj KP+ByPmnTD6fCoupWxsfrkCmOj4xw/citXpKMS2/ZwbuFWCo+6MFrhEDEWrpn48o5/GA G18w== X-Gm-Message-State: AOJu0YzVg/Gk7ca8ZvKDrWsTdZhQXHvISg9MgYHXox2W+AATkEg86tj9 Ox9aGEgvy39g9JD0WLMnmEtzi3Cu1drfnA== X-Google-Smtp-Source: AGHT+IEjtYDmAAeCqKDIOVWfy+Pkqm3D7Dh2jTmMUc1+owjoEd0h5zqHP1ezUqOMwiV/doaY5OsOcQ== X-Received: by 2002:a25:ad87:0:b0:d60:eb09:8885 with SMTP id z7-20020a25ad87000000b00d60eb098885mr319189ybi.27.1694453183632; Mon, 11 Sep 2023 10:26:23 -0700 (PDT) Received: from [108.254.203.202] (108-254-203-202.lightspeed.hstntx.sbcglobal.net. [108.254.203.202]) by smtp.gmail.com with ESMTPSA id a131-20020a254d89000000b00d801440ed1dsm1794545ybb.23.2023.09.11.10.26.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 11 Sep 2023 10:26:23 -0700 (PDT) From: Doug Moore <unkadoug@gmail.com> X-Google-Original-From: Doug Moore <dougm@freebsd.org> Message-ID: <835d7376-4289-9ec5-415f-e94ea2c9b6d2@freebsd.org> Date: Mon, 11 Sep 2023 12:26:21 -0500 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pctrie code" Content-Language: en-US To: Ravi Pokala <rpokala@freebsd.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org> <25DD750F-38F2-4151-9E34-350844CE705C@panasas.com> In-Reply-To: <25DD750F-38F2-4151-9E34-350844CE705C@panasas.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Queue-Id: 4Rktt90HNlz4SGb Because jenkins reported failures on most of the non-amd64 architectures, and leaving 'main' broken while I figured out the problem was not a sensible choice. Doug On 9/11/23 12:21, Ravi Pokala wrote: > Hi Doug, > >> Revert "radix_trie: have vm_radix use pctrie code" > That's "what", not "why". Why are you reverting the change? > > Thanks, > > Ravi (rpokala@) > > -----Original Message----- > From: <owner-src-committers@freebsd.org <mailto:owner-src-committers@freebsd.org>> on behalf of Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>> > Date: Monday, September 11, 2023 at 01:35 > To: <src-committers@FreeBSD.org <mailto:src-committers@FreeBSD.org>>, <dev-commits-src-all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org>>, <dev-commits-src-main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD.org>> > Subject: git: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pctrie code" > > > The branch main has been updated by dougm: > > > URL: https://cgit.FreeBSD.org/src/commit/?id=6cec93da46c4a91a042b0be488844052c0f8985a <https://cgit.FreeBSD.org/src/commit/?id=6cec93da46c4a91a042b0be488844052c0f8985a> > > > commit 6cec93da46c4a91a042b0be488844052c0f8985a > Author: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>> > AuthorDate: 2023-09-11 08:34:46 +0000 > Commit: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>> > CommitDate: 2023-09-11 08:35:36 +0000 > > > Revert "radix_trie: have vm_radix use pctrie code" > > > This reverts commit a494d30465f21e8cb014a5c788a43001397325d7. > --- > sys/vm/_vm_radix.h | 9 +- > sys/vm/vm_radix.c | 696 ++++++++++++++++++++++++++++++++++++++++++++++++++++- > sys/vm/vm_radix.h | 113 ++------- > 3 files changed, 709 insertions(+), 109 deletions(-) > > > diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h > index 2d9b05c7b52a..01eb25a9dccf 100644 > --- a/sys/vm/_vm_radix.h > +++ b/sys/vm/_vm_radix.h > @@ -31,13 +31,16 @@ > #ifndef __VM_RADIX_H_ > #define __VM_RADIX_H_ > > > -#include <sys/_pctrie.h> > +/* > + * Radix tree node. > + */ > +struct vm_radix_node; > > > /* > - * Radix tree > + * Radix tree root. > */ > struct vm_radix { > - struct pctrie rt_trie; > + struct vm_radix_node *rt_root; > }; > > > #endif /* !__VM_RADIX_H_ */ > diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c > index b8c693eca66f..768a56ed76f7 100644 > --- a/sys/vm/vm_radix.c > +++ b/sys/vm/vm_radix.c > @@ -54,26 +54,302 @@ > #include "opt_ddb.h" > > > #include <sys/param.h> > -#include <sys/pctrie.h> > +#include <sys/systm.h> > +#include <sys/kernel.h> > +#include <sys/libkern.h> > +#include <sys/proc.h> > +#include <sys/vmmeter.h> > +#include <sys/smr.h> > +#include <sys/smr_types.h> > > > #include <vm/uma.h> > #include <vm/vm.h> > +#include <vm/vm_param.h> > +#include <vm/vm_object.h> > #include <vm/vm_page.h> > #include <vm/vm_radix.h> > > > +#ifdef DDB > +#include <ddb/ddb.h> > +#endif > + > +/* > + * These widths should allow the pointers to a node's children to fit within > + * a single cache line. The extra levels from a narrow width should not be > + * a problem thanks to path compression. > + */ > +#ifdef __LP64__ > +#define VM_RADIX_WIDTH 4 > +#else > +#define VM_RADIX_WIDTH 3 > +#endif > + > +#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH) > +#define VM_RADIX_MASK (VM_RADIX_COUNT - 1) > +#define VM_RADIX_LIMIT \ > + (howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1) > + > +#if VM_RADIX_WIDTH == 3 > +typedef uint8_t rn_popmap_t; > +#elif VM_RADIX_WIDTH == 4 > +typedef uint16_t rn_popmap_t; > +#elif VM_RADIX_WIDTH == 5 > +typedef uint32_t rn_popmap_t; > +#else > +#error Unsupported width > +#endif > +_Static_assert(sizeof(rn_popmap_t) <= sizeof(int), > + "rn_popmap_t too wide"); > + > +/* Set of all flag bits stored in node pointers. */ > +#define VM_RADIX_FLAGS (VM_RADIX_ISLEAF) > +#define VM_RADIX_PAD VM_RADIX_FLAGS > + > +enum vm_radix_access { SMR, LOCKED, UNSERIALIZED }; > + > +struct vm_radix_node; > +typedef SMR_POINTER(struct vm_radix_node *) smrnode_t; > + > +struct vm_radix_node { > + vm_pindex_t rn_owner; /* Owner of record. */ > + rn_popmap_t rn_popmap; /* Valid children. */ > + uint8_t rn_clev; /* Level * WIDTH. */ > + smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */ > +}; > + > static uma_zone_t vm_radix_node_zone; > -smr_t vm_radix_smr; > +static smr_t vm_radix_smr; > + > +static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, > + enum vm_radix_access access); > > > -void * > -vm_radix_node_alloc(struct pctrie *ptree) > +/* > + * Map index to an array position for the children of rnode, > + */ > +static __inline int > +vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index) > { > - return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT)); > + return ((index >> rnode->rn_clev) & VM_RADIX_MASK); > } > > > -void > -vm_radix_node_free(struct pctrie *ptree, void *node) > +/* > + * Returns true if index does not belong to the specified rnode. Otherwise, > + * sets slot value, and returns false. > + */ > +static __inline bool > +vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot) > +{ > + index = (index - rnode->rn_owner) >> rnode->rn_clev; > + if (index >= VM_RADIX_COUNT) > + return (true); > + *slot = index; > + return (false); > +} > + > +/* > + * Allocate a radix node. > + */ > +static struct vm_radix_node * > +vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind) > +{ > + struct vm_radix_node *rnode; > + > + rnode = uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT); > + if (rnode == NULL) > + return (NULL); > + > + /* > + * We want to clear the last child pointer after the final section > + * has exited so lookup can not return false negatives. It is done > + * here because it will be cache-cold in the dtor callback. > + */ > + if (rnode->rn_popmap != 0) { > + vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1], > + VM_RADIX_NULL, UNSERIALIZED); > + rnode->rn_popmap = 0; > + } > + > + /* > + * From the highest-order bit where the indexes differ, > + * compute the highest level in the trie where they differ. Then, > + * compute the least index of this subtrie. > + */ > + KASSERT(index != newind, ("%s: passing the same key value %jx", > + __func__, (uintmax_t)index)); > + _Static_assert(sizeof(long long) >= sizeof(vm_pindex_t), > + "vm_pindex_t too wide"); > + _Static_assert(sizeof(vm_pindex_t) * NBBY <= > + (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow"); > + rnode->rn_clev = rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH); > + rnode->rn_owner = VM_RADIX_COUNT; > + rnode->rn_owner = index & -(rnode->rn_owner << rnode->rn_clev); > + return (rnode); > +} > + > +/* > + * Free radix node. > + */ > +static __inline void > +vm_radix_node_put(struct vm_radix_node *rnode) > +{ > +#ifdef INVARIANTS > + int slot; > + > + KASSERT(powerof2(rnode->rn_popmap), > + ("vm_radix_node_put: rnode %p has too many children %04x", rnode, > + rnode->rn_popmap)); > + for (slot = 0; slot < VM_RADIX_COUNT; slot++) { > + if ((rnode->rn_popmap & (1 << slot)) != 0) > + continue; > + KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) == > + VM_RADIX_NULL, > + ("vm_radix_node_put: rnode %p has a child", rnode)); > + } > +#endif > + uma_zfree_smr(vm_radix_node_zone, rnode); > +} > + > +/* > + * Fetch a node pointer from a slot in another node. > + */ > +static __inline struct vm_radix_node * > +vm_radix_node_load(smrnode_t *p, enum vm_radix_access access) > +{ > + > + switch (access) { > + case UNSERIALIZED: > + return (smr_unserialized_load(p, true)); > + case LOCKED: > + return (smr_serialized_load(p, true)); > + case SMR: > + return (smr_entered_load(p, vm_radix_smr)); > + } > + __assert_unreachable(); > +} > + > +static __inline void > +vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, > + enum vm_radix_access access) > +{ > + > + switch (access) { > + case UNSERIALIZED: > + smr_unserialized_store(p, v, true); > + break; > + case LOCKED: > + smr_serialized_store(p, v, true); > + break; > + case SMR: > + panic("vm_radix_node_store: Not supported in smr section."); > + } > +} > + > +/* > + * Get the root node for a radix tree. > + */ > +static __inline struct vm_radix_node * > +vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access) > +{ > + > + return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access)); > +} > + > +/* > + * Set the root node for a radix tree. > + */ > +static __inline void > +vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode, > + enum vm_radix_access access) > +{ > + > + vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access); > +} > + > +/* > + * Returns TRUE if the specified radix node is a leaf and FALSE otherwise. > + */ > +static __inline bool > +vm_radix_isleaf(struct vm_radix_node *rnode) > +{ > + > + return (((uintptr_t)rnode & VM_RADIX_ISLEAF) != 0); > +} > + > +/* > + * Returns page cast to radix node with leaf bit set. > + */ > +static __inline struct vm_radix_node * > +vm_radix_toleaf(vm_page_t page) > +{ > + return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF)); > +} > + > +/* > + * Returns the associated page extracted from rnode. > + */ > +static __inline vm_page_t > +vm_radix_topage(struct vm_radix_node *rnode) > +{ > + > + return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS)); > +} > + > +/* > + * Make 'child' a child of 'rnode'. > + */ > +static __inline void > +vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index, > + struct vm_radix_node *child, enum vm_radix_access access) > +{ > + int slot; > + > + slot = vm_radix_slot(rnode, index); > + vm_radix_node_store(&rnode->rn_child[slot], child, access); > + rnode->rn_popmap ^= 1 << slot; > + KASSERT((rnode->rn_popmap & (1 << slot)) != 0, > + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); > +} > + > +/* > + * Internal helper for vm_radix_reclaim_allnodes(). > + * This function is recursive. > + */ > +static void > +vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode) > +{ > + struct vm_radix_node *child; > + int slot; > + > + while (rnode->rn_popmap != 0) { > + slot = ffs(rnode->rn_popmap) - 1; > + child = vm_radix_node_load(&rnode->rn_child[slot], > + UNSERIALIZED); > + KASSERT(child != VM_RADIX_NULL, > + ("%s: bad popmap slot %d in rnode %p", > + __func__, slot, rnode)); > + if (!vm_radix_isleaf(child)) > + vm_radix_reclaim_allnodes_int(child); > + rnode->rn_popmap ^= 1 << slot; > + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, > + UNSERIALIZED); > + } > + vm_radix_node_put(rnode); > +} > + > +/* > + * radix node zone initializer. > + */ > +static int > +vm_radix_zone_init(void *mem, int size, int flags) > { > - uma_zfree_smr(vm_radix_node_zone, node); > + struct vm_radix_node *rnode; > + > + rnode = mem; > + rnode->rn_popmap = 0; > + for (int i = 0; i < nitems(rnode->rn_child); i++) > + vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL, > + UNSERIALIZED); > + return (0); > } > > > #ifndef UMA_MD_SMALL_ALLOC > @@ -107,14 +383,412 @@ void > vm_radix_zinit(void) > { > > > - vm_radix_node_zone = uma_zcreate("RADIX NODE", pctrie_node_size(), > - NULL, NULL, pctrie_zone_init, NULL, > - PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); > + vm_radix_node_zone = uma_zcreate("RADIX NODE", > + sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL, > + VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); > vm_radix_smr = uma_zone_get_smr(vm_radix_node_zone); > } > > > +/* > + * Inserts the key-value pair into the trie. > + * Panics if the key already exists. > + */ > +int > +vm_radix_insert(struct vm_radix *rtree, vm_page_t page) > +{ > + vm_pindex_t index, newind; > + struct vm_radix_node *leaf, *parent, *rnode; > + smrnode_t *parentp; > + int slot; > + > + index = page->pindex; > + leaf = vm_radix_toleaf(page); > + > + /* > + * The owner of record for root is not really important because it > + * will never be used. > + */ > + rnode = vm_radix_root_load(rtree, LOCKED); > + parent = NULL; > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if (rnode == VM_RADIX_NULL) { > + if (parent == NULL) > + rtree->rt_root = leaf; > + else > + vm_radix_addnode(parent, index, leaf, > + LOCKED); > + return (0); > + } > + newind = vm_radix_topage(rnode)->pindex; > + if (newind == index) > + panic("%s: key %jx is already present", > + __func__, (uintmax_t)index); > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) { > + newind = rnode->rn_owner; > + break; > + } > + parent = rnode; > + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + > + /* > + * A new node is needed because the right insertion level is reached. > + * Setup the new intermediate node and add the 2 children: the > + * new object and the older edge or object. > + */ > + parentp = (parent != NULL) ? &parent->rn_child[slot]: > + (smrnode_t *)&rtree->rt_root; > + parent = vm_radix_node_get(index, newind); > + if (parent == NULL) > + return (ENOMEM); > + /* These writes are not yet visible due to ordering. */ > + vm_radix_addnode(parent, index, leaf, UNSERIALIZED); > + vm_radix_addnode(parent, newind, rnode, UNSERIALIZED); > + /* Serializing write to make the above visible. */ > + vm_radix_node_store(parentp, parent, LOCKED); > + return (0); > +} > + > +/* > + * Returns the value stored at the index. If the index is not present, > + * NULL is returned. > + */ > +static __always_inline vm_page_t > +_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index, > + enum vm_radix_access access) > +{ > + struct vm_radix_node *rnode; > + vm_page_t m; > + int slot; > + > + rnode = vm_radix_root_load(rtree, access); > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if ((m = vm_radix_topage(rnode)) != NULL && > + m->pindex == index) > + return (m); > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) > + break; > + rnode = vm_radix_node_load(&rnode->rn_child[slot], access); > + } > + return (NULL); > +} > + > +/* > + * Returns the value stored at the index assuming there is an external lock. > + * > + * If the index is not present, NULL is returned. > + */ > +vm_page_t > +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) > +{ > + > + return _vm_radix_lookup(rtree, index, LOCKED); > +} > + > +/* > + * Returns the value stored at the index without requiring an external lock. > + * > + * If the index is not present, NULL is returned. > + */ > +vm_page_t > +vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) > +{ > + vm_page_t m; > + > + smr_enter(vm_radix_smr); > + m = _vm_radix_lookup(rtree, index, SMR); > + smr_exit(vm_radix_smr); > + > + return (m); > +} > + > +/* > + * Returns the page with the least pindex that is greater than or equal to the > + * specified pindex, or NULL if there are no such pages. > + * > + * Requires that access be externally synchronized by a lock. > + */ > +vm_page_t > +vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) > +{ > + struct vm_radix_node *rnode, *succ; > + vm_page_t m; > + int slot; > + > + /* > + * Descend the trie as if performing an ordinary lookup for the page > + * with the specified pindex. However, unlike an ordinary lookup, as we > + * descend the trie, we use "succ" to remember the last branching-off > + * point, that is, the interior node under which the page with the least > + * pindex that is both outside our current path down the trie and more > + * than the specified pindex resides. (The node's popmap makes it fast > + * and easy to recognize a branching-off point.) If our ordinary lookup > + * fails to yield a page with a pindex that is greater than or equal to > + * the specified pindex, then we will exit this loop and perform a > + * lookup starting from "succ". If "succ" is not NULL, then that lookup > + * is guaranteed to succeed. > + */ > + rnode = vm_radix_root_load(rtree, LOCKED); > + succ = NULL; > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if ((m = vm_radix_topage(rnode)) != NULL && > + m->pindex >= index) > + return (m); > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) { > + /* > + * If all pages in this subtree have pindex > index, > + * then the page in this subtree with the least pindex > + * is the answer. > + */ > + if (rnode->rn_owner > index) > + succ = rnode; > + break; > + } > + > + /* > + * Just in case the next search step leads to a subtree of all > + * pages with pindex < index, check popmap to see if a next > + * bigger step, to a subtree of all pages with pindex > index, > + * is available. If so, remember to restart the search here. > + */ > + if ((rnode->rn_popmap >> slot) > 1) > + succ = rnode; > + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + > + /* > + * Restart the search from the last place visited in the subtree that > + * included some pages with pindex > index, if there was such a place. > + */ > + if (succ == NULL) > + return (NULL); > + if (succ != rnode) { > + /* > + * Take a step to the next bigger sibling of the node chosen > + * last time. In that subtree, all pages have pindex > index. > + */ > + slot = vm_radix_slot(succ, index) + 1; > + KASSERT((succ->rn_popmap >> slot) != 0, > + ("%s: no popmap siblings past slot %d in node %p", > + __func__, slot, succ)); > + slot += ffs(succ->rn_popmap >> slot) - 1; > + succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED); > + } > + > + /* > + * Find the page in the subtree rooted at "succ" with the least pindex. > + */ > + while (!vm_radix_isleaf(succ)) { > + KASSERT(succ->rn_popmap != 0, > + ("%s: no popmap children in node %p", __func__, succ)); > + slot = ffs(succ->rn_popmap) - 1; > + succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED); > + } > + return (vm_radix_topage(succ)); > +} > + > +/* > + * Returns the page with the greatest pindex that is less than or equal to the > + * specified pindex, or NULL if there are no such pages. > + * > + * Requires that access be externally synchronized by a lock. > + */ > +vm_page_t > +vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) > +{ > + struct vm_radix_node *pred, *rnode; > + vm_page_t m; > + int slot; > + > + /* > + * Mirror the implementation of vm_radix_lookup_ge, described above. > + */ > + rnode = vm_radix_root_load(rtree, LOCKED); > + pred = NULL; > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if ((m = vm_radix_topage(rnode)) != NULL && > + m->pindex <= index) > + return (m); > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) { > + if (rnode->rn_owner < index) > + pred = rnode; > + break; > + } > + if ((rnode->rn_popmap & ((1 << slot) - 1)) != 0) > + pred = rnode; > + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + if (pred == NULL) > + return (NULL); > + if (pred != rnode) { > + slot = vm_radix_slot(pred, index); > + KASSERT((pred->rn_popmap & ((1 << slot) - 1)) != 0, > + ("%s: no popmap siblings before slot %d in node %p", > + __func__, slot, pred)); > + slot = fls(pred->rn_popmap & ((1 << slot) - 1)) - 1; > + pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED); > + } > + while (!vm_radix_isleaf(pred)) { > + KASSERT(pred->rn_popmap != 0, > + ("%s: no popmap children in node %p", __func__, pred)); > + slot = fls(pred->rn_popmap) - 1; > + pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED); > + } > + return (vm_radix_topage(pred)); > +} > + > +/* > + * Remove the specified index from the trie, and return the value stored at > + * that index. If the index is not present, return NULL. > + */ > +vm_page_t > +vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) > +{ > + struct vm_radix_node *child, *parent, *rnode; > + vm_page_t m; > + int slot; > + > + rnode = NULL; > + child = vm_radix_root_load(rtree, LOCKED); > + for (;;) { > + if (vm_radix_isleaf(child)) > + break; > + parent = rnode; > + rnode = child; > + slot = vm_radix_slot(rnode, index); > + child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + if ((m = vm_radix_topage(child)) == NULL || m->pindex != index) > + return (NULL); > + if (rnode == NULL) { > + vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED); > + return (m); > + } > + KASSERT((rnode->rn_popmap & (1 << slot)) != 0, > + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); > + rnode->rn_popmap ^= 1 << slot; > + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED); > + if (!powerof2(rnode->rn_popmap)) > + return (m); > + KASSERT(rnode->rn_popmap != 0, ("%s: bad popmap all zeroes", __func__)); > + slot = ffs(rnode->rn_popmap) - 1; > + child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + KASSERT(child != VM_RADIX_NULL, > + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); > + if (parent == NULL) > + vm_radix_root_store(rtree, child, LOCKED); > + else { > + slot = vm_radix_slot(parent, index); > + KASSERT(rnode == > + vm_radix_node_load(&parent->rn_child[slot], LOCKED), > + ("%s: invalid child value", __func__)); > + vm_radix_node_store(&parent->rn_child[slot], child, LOCKED); > + } > + /* > + * The child is still valid and we can not zero the > + * pointer until all smr references are gone. > + */ > + vm_radix_node_put(rnode); > + return (m); > +} > + > +/* > + * Remove and free all the nodes from the radix tree. > + * This function is recursive but there is a tight control on it as the > + * maximum depth of the tree is fixed. > + */ > +void > +vm_radix_reclaim_allnodes(struct vm_radix *rtree) > +{ > + struct vm_radix_node *root; > + > + root = vm_radix_root_load(rtree, LOCKED); > + if (root == VM_RADIX_NULL) > + return; > + vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED); > + if (!vm_radix_isleaf(root)) > + vm_radix_reclaim_allnodes_int(root); > +} > + > +/* > + * Replace an existing page in the trie with another one. > + * Panics if there is not an old page in the trie at the new page's index. > + */ > +vm_page_t > +vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) > +{ > + struct vm_radix_node *leaf, *parent, *rnode; > + vm_page_t m; > + vm_pindex_t index; > + int slot; > + > + leaf = vm_radix_toleaf(newpage); > + index = newpage->pindex; > + rnode = vm_radix_root_load(rtree, LOCKED); > + parent = NULL; > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if ((m = vm_radix_topage(rnode)) != NULL && > + m->pindex == index) { > + if (parent == NULL) > + rtree->rt_root = leaf; > + else > + vm_radix_node_store( > + &parent->rn_child[slot], leaf, > + LOCKED); > + return (m); > + } > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) > + break; > + parent = rnode; > + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + panic("%s: original replacing page not found", __func__); > +} > + > void > vm_radix_wait(void) > { > uma_zwait(vm_radix_node_zone); > } > + > +#ifdef DDB > +/* > + * Show details about the given radix node. > + */ > +DB_SHOW_COMMAND(radixnode, db_show_radixnode) > +{ > + struct vm_radix_node *rnode, *tmp; > + int slot; > + rn_popmap_t popmap; > + > + if (!have_addr) > + return; > + rnode = (struct vm_radix_node *)addr; > + db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n", > + (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap, > + rnode->rn_clev / VM_RADIX_WIDTH); > + for (popmap = rnode->rn_popmap; popmap != 0; popmap ^= 1 << slot) { > + slot = ffs(popmap) - 1; > + tmp = vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED); > + db_printf("slot: %d, val: %p, page: %p, clev: %d\n", > + slot, (void *)tmp, > + vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL, > + rnode->rn_clev / VM_RADIX_WIDTH); > + } > +} > +#endif /* DDB */ > diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h > index a332618fc0e6..231edda65102 100644 > --- a/sys/vm/vm_radix.h > +++ b/sys/vm/vm_radix.h > @@ -34,113 +34,36 @@ > #include <vm/_vm_radix.h> > > > #ifdef _KERNEL > -#include <sys/pctrie.h> > -#include <vm/vm.h> > > > +int vm_radix_insert(struct vm_radix *rtree, vm_page_t page); > void vm_radix_wait(void); > +vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index); > +vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index); > +vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index); > +vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index); > +void vm_radix_reclaim_allnodes(struct vm_radix *rtree); > +vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index); > +vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage); > void vm_radix_zinit(void); > -void *vm_radix_node_alloc(struct pctrie *ptree); > -void vm_radix_node_free(struct pctrie *ptree, void *node); > -extern smr_t vm_radix_smr; > - > -static __inline void > -vm_radix_init(struct vm_radix *rtree) > -{ > - pctrie_init(&rtree->rt_trie); > -} > - > -static __inline bool > -vm_radix_is_empty(struct vm_radix *rtree) > -{ > - return (pctrie_is_empty(&rtree->rt_trie)); > -} > - > -PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix_node_free, > - vm_radix_smr); > > > /* > - * Inserts the key-value pair into the trie. > - * Panics if the key already exists. > + * Each search path in the trie terminates at a leaf, which is a pointer to a > + * page marked with a set 1-bit. A leaf may be associated with a null pointer > + * to indicate no page there. > */ > -static __inline int > -vm_radix_insert(struct vm_radix *rtree, vm_page_t page) > -{ > - return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page)); > -} > - > -/* > - * Returns the value stored at the index assuming there is an external lock. > - * > - * If the index is not present, NULL is returned. > - */ > -static __inline vm_page_t > -vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index)); > -} > - > -/* > - * Returns the value stored at the index without requiring an external lock. > - * > - * If the index is not present, NULL is returned. > - */ > -static __inline vm_page_t > -vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index)); > -} > +#define VM_RADIX_ISLEAF 0x1 > +#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF > > > -/* > - * Returns the page with the least pindex that is greater than or equal to the > - * specified pindex, or NULL if there are no such pages. > - * > - * Requires that access be externally synchronized by a lock. > - */ > -static __inline vm_page_t > -vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index)); > -} > - > -/* > - * Returns the page with the greatest pindex that is less than or equal to the > - * specified pindex, or NULL if there are no such pages. > - * > - * Requires that access be externally synchronized by a lock. > - */ > -static __inline vm_page_t > -vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index)); > -} > - > -/* > - * Remove the specified index from the trie, and return the value stored at > - * that index. If the index is not present, return NULL. > - */ > -static __inline vm_page_t > -vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index)); > -} > - > -/* > - * Remove and free all the nodes from the radix tree. > - */ > static __inline void > -vm_radix_reclaim_allnodes(struct vm_radix *rtree) > +vm_radix_init(struct vm_radix *rtree) > { > - VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie); > + rtree->rt_root = VM_RADIX_NULL; > } > > > -/* > - * Replace an existing page in the trie with another one. > - * Panics if there is not an old page in the trie at the new page's index. > - */ > -static __inline vm_page_t > -vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) > +static __inline bool > +vm_radix_is_empty(struct vm_radix *rtree) > { > - return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage)); > + return (rtree->rt_root == VM_RADIX_NULL); > } > > > #endif /* _KERNEL */ > > > > From nobody Mon Sep 11 17:36:07 2023 X-Original-To: dev-commits-src-main@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 4Rkv5S2h0Dz4sbDS; Mon, 11 Sep 2023 17:36:12 +0000 (UTC) (envelope-from rpokala@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.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 "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rkv5S2GDSz4WcR; Mon, 11 Sep 2023 17:36:12 +0000 (UTC) (envelope-from rpokala@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694453772; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TAjj2a1OO0QwT00e0bA5DGmxkYHNFXwg77C8t/yUtuc=; b=iiWaLvgEooI2u2gTKfno8PX9+ZppSjyViVuRTPIwub9hTz3LG2Uo91/gCLajC9TvPCDHbj qnPoUByQSRsKJgBK99BbBE3TD3WHmBQQmtW63O2dWvvEAIw8NfHE7EUJHtGML5VJ83vW7R v4064SN3qmwYQ2zydyefaruynuMSIZSh8DGXivM4Ef+vRQfQYy8GC7S2ox7556Fz9/BTt2 WOxRNLN7qkUifYw4KTBGlVxO4SCLggXqxSVgNVn+GFz3dmk9maawPPreYpyDzTjzK9nLzy Gz5zpFwsrD+kL0XCd5UgUbv8U6wbn5/aTRQkwmoQXH/Jd0hrM6OMJ7SdRqJMtQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694453772; a=rsa-sha256; cv=none; b=D8qNMmFRdBPt+iBvHqD3DP+8sCssvwJEBo5+tS2+sDp+KEx7I3Azd2CX3LkFnzswuAXOuy q7PCTSHrDgeGWqbtNjXSfVzd/MLjGD/ey5OcZJYvw3k2Rp6rBh2Fq9pkK8kP62rnIttqez RWJCO4s/KS6bzPwEYX+WtQaDRyJLtiJba9GTzslNK4t0jFXlAbhttk/uLNyEVld/ff8n0e 3kd5gnurWkxiJsqB6dO9RKO+JQ9hYDMWJCTm4ACzfmJ4xSAJGwnwPu5U4kzPXcWK35z+kC 6SqBJRdZI0phQVRWPbVhCoR9/0c0uhl+BcSvCCqtxE9Fi2Ych6pChoS9wFgvMA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694453772; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TAjj2a1OO0QwT00e0bA5DGmxkYHNFXwg77C8t/yUtuc=; b=DUpEvqSfyLVNUjssdM7UrS1kiuaesP/Pc7l3DOFQLWrWWHnN7HOgdnL/q76xMw6hjAxDMP JA7ce7PBPG08Av3m3k6LEMUKss4XKNFuir/i5q5OGnJSri49wHEUA3PoK5n2NX3fbecrBn Oh6dgG46AE2YT0Ba/C3gXH3cg/JaDgCzlyXnM+uBhvRaQCz7Mpg3GyVFiOjzjOKlNxQzRR tjZKOUt/B74MDHQDVRfhevZCrmNug4EIueakSN2Txo8ITfvSScHC34I6STMX8jcgzME3he DnxFZbNVzQzxnDPCHlU32nhapZLJ5S5/WBlh7QbGdnO45g4ig8vGOazs20s2Pw== Received: from [192.168.1.12] (c-98-248-120-44.hsd1.ca.comcast.net [98.248.120.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: rpokala) by smtp.freebsd.org (Postfix) with ESMTPSA id 4Rkv5R4TzBz1785; Mon, 11 Sep 2023 17:36:11 +0000 (UTC) (envelope-from rpokala@freebsd.org) User-Agent: Microsoft-MacOutlook/16.76.23082700 Date: Mon, 11 Sep 2023 10:36:07 -0700 Subject: Re: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pctrie code" From: Ravi Pokala <rpokala@freebsd.org> To: Doug Moore <unkadoug@gmail.com>, <src-committers@FreeBSD.org>, <dev-commits-src-all@FreeBSD.org>, <dev-commits-src-main@FreeBSD.org> Message-ID: <4D14E962-56B8-4C06-9252-0BEEDFA465AE@panasas.com> Thread-Topic: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pctrie code" References: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org> <25DD750F-38F2-4151-9E34-350844CE705C@panasas.com> <835d7376-4289-9ec5-415f-e94ea2c9b6d2@freebsd.org> In-Reply-To: <835d7376-4289-9ec5-415f-e94ea2c9b6d2@freebsd.org> List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org Mime-version: 1.0 Content-type: text/plain; charset="UTF-8" Content-transfer-encoding: quoted-printable Thanks! -Ravi (rpokala@) =EF=BB=BF-----Original Message----- From: Doug Moore <unkadoug@gmail.com <mailto:unkadoug@gmail.com>> Date: Monday, September 11, 2023 at 10:26 To: Ravi Pokala <rpokala@freebsd.org <mailto:rpokala@freebsd.org>>, <src-co= mmitters@FreeBSD.org <mailto:src-committers@FreeBSD.org>>, <dev-commits-src-= all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org>>, <dev-commits-src-= main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD.org>> Subject: Re: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pc= trie code" Because jenkins reported failures on most of the non-amd64=20 architectures, and leaving 'main' broken while I figured out the problem=20 was not a sensible choice. Doug On 9/11/23 12:21, Ravi Pokala wrote: > Hi Doug, > >> Revert "radix_trie: have vm_radix use pctrie code" > That's "what", not "why". Why are you reverting the change? > > Thanks, > > Ravi (rpokala@) > > =EF=BB=BF-----Original Message----- > From: <owner-src-committers@freebsd.org <mailto:owner-src-committers@free= bsd.org> <mailto:owner-src-committers@freebsd.org <mailto:owner-src-committe= rs@freebsd.org>>> on behalf of Doug Moore <dougm@FreeBSD.org <mailto:dougm@F= reeBSD.org> <mailto:dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>> > Date: Monday, September 11, 2023 at 01:35 > To: <src-committers@FreeBSD.org <mailto:src-committers@FreeBSD.org> <mail= to:src-committers@FreeBSD.org <mailto:src-committers@FreeBSD.org>>>, <dev-co= mmits-src-all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org> <mailto:d= ev-commits-src-all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org>>>, <= dev-commits-src-main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD.org> <= mailto:dev-commits-src-main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD= .org>>> > Subject: git: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use= pctrie code" > > > The branch main has been updated by dougm: > > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91a042b0be48884= 4052c0f8985a <https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91a042b0b= e488844052c0f8985a> <https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91= a042b0be488844052c0f8985a> <https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da= 46c4a91a042b0be488844052c0f8985a>> > > > commit 6cec93da46c4a91a042b0be488844052c0f8985a > Author: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org> <mailto:= dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>> > AuthorDate: 2023-09-11 08:34:46 +0000 > Commit: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org> <mailto:= dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>> > CommitDate: 2023-09-11 08:35:36 +0000 > > > Revert "radix_trie: have vm_radix use pctrie code" > > > This reverts commit a494d30465f21e8cb014a5c788a43001397325d7. > --- > sys/vm/_vm_radix.h | 9 +- > sys/vm/vm_radix.c | 696 +++++++++++++++++++++++++++++++++++++++++++++++++= +++- > sys/vm/vm_radix.h | 113 ++------- > 3 files changed, 709 insertions(+), 109 deletions(-) > > > diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h > index 2d9b05c7b52a..01eb25a9dccf 100644 > --- a/sys/vm/_vm_radix.h > +++ b/sys/vm/_vm_radix.h > @@ -31,13 +31,16 @@ > #ifndef __VM_RADIX_H_ > #define __VM_RADIX_H_ > > > -#include <sys/_pctrie.h> > +/* > + * Radix tree node. > + */ > +struct vm_radix_node; > > > /* > - * Radix tree > + * Radix tree root. > */ > struct vm_radix { > - struct pctrie rt_trie; > + struct vm_radix_node *rt_root; > }; > > > #endif /* !__VM_RADIX_H_ */ > diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c > index b8c693eca66f..768a56ed76f7 100644 > --- a/sys/vm/vm_radix.c > +++ b/sys/vm/vm_radix.c > @@ -54,26 +54,302 @@ > #include "opt_ddb.h" > > > #include <sys/param.h> > -#include <sys/pctrie.h> > +#include <sys/systm.h> > +#include <sys/kernel.h> > +#include <sys/libkern.h> > +#include <sys/proc.h> > +#include <sys/vmmeter.h> > +#include <sys/smr.h> > +#include <sys/smr_types.h> > > > #include <vm/uma.h> > #include <vm/vm.h> > +#include <vm/vm_param.h> > +#include <vm/vm_object.h> > #include <vm/vm_page.h> > #include <vm/vm_radix.h> > > > +#ifdef DDB > +#include <ddb/ddb.h> > +#endif > + > +/* > + * These widths should allow the pointers to a node's children to fit wi= thin > + * a single cache line. The extra levels from a narrow width should not = be > + * a problem thanks to path compression. > + */ > +#ifdef __LP64__ > +#define VM_RADIX_WIDTH 4 > +#else > +#define VM_RADIX_WIDTH 3 > +#endif > + > +#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH) > +#define VM_RADIX_MASK (VM_RADIX_COUNT - 1) > +#define VM_RADIX_LIMIT \ > + (howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1) > + > +#if VM_RADIX_WIDTH =3D=3D 3 > +typedef uint8_t rn_popmap_t; > +#elif VM_RADIX_WIDTH =3D=3D 4 > +typedef uint16_t rn_popmap_t; > +#elif VM_RADIX_WIDTH =3D=3D 5 > +typedef uint32_t rn_popmap_t; > +#else > +#error Unsupported width > +#endif > +_Static_assert(sizeof(rn_popmap_t) <=3D sizeof(int), > + "rn_popmap_t too wide"); > + > +/* Set of all flag bits stored in node pointers. */ > +#define VM_RADIX_FLAGS (VM_RADIX_ISLEAF) > +#define VM_RADIX_PAD VM_RADIX_FLAGS > + > +enum vm_radix_access { SMR, LOCKED, UNSERIALIZED }; > + > +struct vm_radix_node; > +typedef SMR_POINTER(struct vm_radix_node *) smrnode_t; > + > +struct vm_radix_node { > + vm_pindex_t rn_owner; /* Owner of record. */ > + rn_popmap_t rn_popmap; /* Valid children. */ > + uint8_t rn_clev; /* Level * WIDTH. */ > + smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */ > +}; > + > static uma_zone_t vm_radix_node_zone; > -smr_t vm_radix_smr; > +static smr_t vm_radix_smr; > + > +static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, > + enum vm_radix_access access); > > > -void * > -vm_radix_node_alloc(struct pctrie *ptree) > +/* > + * Map index to an array position for the children of rnode, > + */ > +static __inline int > +vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index) > { > - return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT)); > + return ((index >> rnode->rn_clev) & VM_RADIX_MASK); > } > > > -void > -vm_radix_node_free(struct pctrie *ptree, void *node) > +/* > + * Returns true if index does not belong to the specified rnode. Otherwi= se, > + * sets slot value, and returns false. > + */ > +static __inline bool > +vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *sl= ot) > +{ > + index =3D (index - rnode->rn_owner) >> rnode->rn_clev; > + if (index >=3D VM_RADIX_COUNT) > + return (true); > + *slot =3D index; > + return (false); > +} > + > +/* > + * Allocate a radix node. > + */ > +static struct vm_radix_node * > +vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind) > +{ > + struct vm_radix_node *rnode; > + > + rnode =3D uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT); > + if (rnode =3D=3D NULL) > + return (NULL); > + > + /* > + * We want to clear the last child pointer after the final section > + * has exited so lookup can not return false negatives. It is done > + * here because it will be cache-cold in the dtor callback. > + */ > + if (rnode->rn_popmap !=3D 0) { > + vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1], > + VM_RADIX_NULL, UNSERIALIZED); > + rnode->rn_popmap =3D 0; > + } > + > + /* > + * From the highest-order bit where the indexes differ, > + * compute the highest level in the trie where they differ. Then, > + * compute the least index of this subtrie. > + */ > + KASSERT(index !=3D newind, ("%s: passing the same key value %jx", > + __func__, (uintmax_t)index)); > + _Static_assert(sizeof(long long) >=3D sizeof(vm_pindex_t), > + "vm_pindex_t too wide"); > + _Static_assert(sizeof(vm_pindex_t) * NBBY <=3D > + (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow"); > + rnode->rn_clev =3D rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH); > + rnode->rn_owner =3D VM_RADIX_COUNT; > + rnode->rn_owner =3D index & -(rnode->rn_owner << rnode->rn_clev); > + return (rnode); > +} > + > +/* > + * Free radix node. > + */ > +static __inline void > +vm_radix_node_put(struct vm_radix_node *rnode) > +{ > +#ifdef INVARIANTS > + int slot; > + > + KASSERT(powerof2(rnode->rn_popmap), > + ("vm_radix_node_put: rnode %p has too many children %04x", rnode, > + rnode->rn_popmap)); > + for (slot =3D 0; slot < VM_RADIX_COUNT; slot++) { > + if ((rnode->rn_popmap & (1 << slot)) !=3D 0) > + continue; > + KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) =3D=3D > + VM_RADIX_NULL, > + ("vm_radix_node_put: rnode %p has a child", rnode)); > + } > +#endif > + uma_zfree_smr(vm_radix_node_zone, rnode); > +} > + > +/* > + * Fetch a node pointer from a slot in another node. > + */ > +static __inline struct vm_radix_node * > +vm_radix_node_load(smrnode_t *p, enum vm_radix_access access) > +{ > + > + switch (access) { > + case UNSERIALIZED: > + return (smr_unserialized_load(p, true)); > + case LOCKED: > + return (smr_serialized_load(p, true)); > + case SMR: > + return (smr_entered_load(p, vm_radix_smr)); > + } > + __assert_unreachable(); > +} > + > +static __inline void > +vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, > + enum vm_radix_access access) > +{ > + > + switch (access) { > + case UNSERIALIZED: > + smr_unserialized_store(p, v, true); > + break; > + case LOCKED: > + smr_serialized_store(p, v, true); > + break; > + case SMR: > + panic("vm_radix_node_store: Not supported in smr section."); > + } > +} > + > +/* > + * Get the root node for a radix tree. > + */ > +static __inline struct vm_radix_node * > +vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access) > +{ > + > + return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access)); > +} > + > +/* > + * Set the root node for a radix tree. > + */ > +static __inline void > +vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode, > + enum vm_radix_access access) > +{ > + > + vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access); > +} > + > +/* > + * Returns TRUE if the specified radix node is a leaf and FALSE otherwis= e. > + */ > +static __inline bool > +vm_radix_isleaf(struct vm_radix_node *rnode) > +{ > + > + return (((uintptr_t)rnode & VM_RADIX_ISLEAF) !=3D 0); > +} > + > +/* > + * Returns page cast to radix node with leaf bit set. > + */ > +static __inline struct vm_radix_node * > +vm_radix_toleaf(vm_page_t page) > +{ > + return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF)); > +} > + > +/* > + * Returns the associated page extracted from rnode. > + */ > +static __inline vm_page_t > +vm_radix_topage(struct vm_radix_node *rnode) > +{ > + > + return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS)); > +} > + > +/* > + * Make 'child' a child of 'rnode'. > + */ > +static __inline void > +vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index, > + struct vm_radix_node *child, enum vm_radix_access access) > +{ > + int slot; > + > + slot =3D vm_radix_slot(rnode, index); > + vm_radix_node_store(&rnode->rn_child[slot], child, access); > + rnode->rn_popmap ^=3D 1 << slot; > + KASSERT((rnode->rn_popmap & (1 << slot)) !=3D 0, > + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); > +} > + > +/* > + * Internal helper for vm_radix_reclaim_allnodes(). > + * This function is recursive. > + */ > +static void > +vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode) > +{ > + struct vm_radix_node *child; > + int slot; > + > + while (rnode->rn_popmap !=3D 0) { > + slot =3D ffs(rnode->rn_popmap) - 1; > + child =3D vm_radix_node_load(&rnode->rn_child[slot], > + UNSERIALIZED); > + KASSERT(child !=3D VM_RADIX_NULL, > + ("%s: bad popmap slot %d in rnode %p", > + __func__, slot, rnode)); > + if (!vm_radix_isleaf(child)) > + vm_radix_reclaim_allnodes_int(child); > + rnode->rn_popmap ^=3D 1 << slot; > + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, > + UNSERIALIZED); > + } > + vm_radix_node_put(rnode); > +} > + > +/* > + * radix node zone initializer. > + */ > +static int > +vm_radix_zone_init(void *mem, int size, int flags) > { > - uma_zfree_smr(vm_radix_node_zone, node); > + struct vm_radix_node *rnode; > + > + rnode =3D mem; > + rnode->rn_popmap =3D 0; > + for (int i =3D 0; i < nitems(rnode->rn_child); i++) > + vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL, > + UNSERIALIZED); > + return (0); > } > > > #ifndef UMA_MD_SMALL_ALLOC > @@ -107,14 +383,412 @@ void > vm_radix_zinit(void) > { > > > - vm_radix_node_zone =3D uma_zcreate("RADIX NODE", pctrie_node_size(), > - NULL, NULL, pctrie_zone_init, NULL, > - PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); > + vm_radix_node_zone =3D uma_zcreate("RADIX NODE", > + sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL, > + VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); > vm_radix_smr =3D uma_zone_get_smr(vm_radix_node_zone); > } > > > +/* > + * Inserts the key-value pair into the trie. > + * Panics if the key already exists. > + */ > +int > +vm_radix_insert(struct vm_radix *rtree, vm_page_t page) > +{ > + vm_pindex_t index, newind; > + struct vm_radix_node *leaf, *parent, *rnode; > + smrnode_t *parentp; > + int slot; > + > + index =3D page->pindex; > + leaf =3D vm_radix_toleaf(page); > + > + /* > + * The owner of record for root is not really important because it > + * will never be used. > + */ > + rnode =3D vm_radix_root_load(rtree, LOCKED); > + parent =3D NULL; > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if (rnode =3D=3D VM_RADIX_NULL) { > + if (parent =3D=3D NULL) > + rtree->rt_root =3D leaf; > + else > + vm_radix_addnode(parent, index, leaf, > + LOCKED); > + return (0); > + } > + newind =3D vm_radix_topage(rnode)->pindex; > + if (newind =3D=3D index) > + panic("%s: key %jx is already present", > + __func__, (uintmax_t)index); > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) { > + newind =3D rnode->rn_owner; > + break; > + } > + parent =3D rnode; > + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + > + /* > + * A new node is needed because the right insertion level is reached. > + * Setup the new intermediate node and add the 2 children: the > + * new object and the older edge or object. > + */ > + parentp =3D (parent !=3D NULL) ? &parent->rn_child[slot]: > + (smrnode_t *)&rtree->rt_root; > + parent =3D vm_radix_node_get(index, newind); > + if (parent =3D=3D NULL) > + return (ENOMEM); > + /* These writes are not yet visible due to ordering. */ > + vm_radix_addnode(parent, index, leaf, UNSERIALIZED); > + vm_radix_addnode(parent, newind, rnode, UNSERIALIZED); > + /* Serializing write to make the above visible. */ > + vm_radix_node_store(parentp, parent, LOCKED); > + return (0); > +} > + > +/* > + * Returns the value stored at the index. If the index is not present, > + * NULL is returned. > + */ > +static __always_inline vm_page_t > +_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index, > + enum vm_radix_access access) > +{ > + struct vm_radix_node *rnode; > + vm_page_t m; > + int slot; > + > + rnode =3D vm_radix_root_load(rtree, access); > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if ((m =3D vm_radix_topage(rnode)) !=3D NULL && > + m->pindex =3D=3D index) > + return (m); > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) > + break; > + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], access); > + } > + return (NULL); > +} > + > +/* > + * Returns the value stored at the index assuming there is an external l= ock. > + * > + * If the index is not present, NULL is returned. > + */ > +vm_page_t > +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) > +{ > + > + return _vm_radix_lookup(rtree, index, LOCKED); > +} > + > +/* > + * Returns the value stored at the index without requiring an external l= ock. > + * > + * If the index is not present, NULL is returned. > + */ > +vm_page_t > +vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) > +{ > + vm_page_t m; > + > + smr_enter(vm_radix_smr); > + m =3D _vm_radix_lookup(rtree, index, SMR); > + smr_exit(vm_radix_smr); > + > + return (m); > +} > + > +/* > + * Returns the page with the least pindex that is greater than or equal = to the > + * specified pindex, or NULL if there are no such pages. > + * > + * Requires that access be externally synchronized by a lock. > + */ > +vm_page_t > +vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) > +{ > + struct vm_radix_node *rnode, *succ; > + vm_page_t m; > + int slot; > + > + /* > + * Descend the trie as if performing an ordinary lookup for the page > + * with the specified pindex. However, unlike an ordinary lookup, as we > + * descend the trie, we use "succ" to remember the last branching-off > + * point, that is, the interior node under which the page with the least > + * pindex that is both outside our current path down the trie and more > + * than the specified pindex resides. (The node's popmap makes it fast > + * and easy to recognize a branching-off point.) If our ordinary lookup > + * fails to yield a page with a pindex that is greater than or equal to > + * the specified pindex, then we will exit this loop and perform a > + * lookup starting from "succ". If "succ" is not NULL, then that lookup > + * is guaranteed to succeed. > + */ > + rnode =3D vm_radix_root_load(rtree, LOCKED); > + succ =3D NULL; > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if ((m =3D vm_radix_topage(rnode)) !=3D NULL && > + m->pindex >=3D index) > + return (m); > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) { > + /* > + * If all pages in this subtree have pindex > index, > + * then the page in this subtree with the least pindex > + * is the answer. > + */ > + if (rnode->rn_owner > index) > + succ =3D rnode; > + break; > + } > + > + /* > + * Just in case the next search step leads to a subtree of all > + * pages with pindex < index, check popmap to see if a next > + * bigger step, to a subtree of all pages with pindex > index, > + * is available. If so, remember to restart the search here. > + */ > + if ((rnode->rn_popmap >> slot) > 1) > + succ =3D rnode; > + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + > + /* > + * Restart the search from the last place visited in the subtree that > + * included some pages with pindex > index, if there was such a place. > + */ > + if (succ =3D=3D NULL) > + return (NULL); > + if (succ !=3D rnode) { > + /* > + * Take a step to the next bigger sibling of the node chosen > + * last time. In that subtree, all pages have pindex > index. > + */ > + slot =3D vm_radix_slot(succ, index) + 1; > + KASSERT((succ->rn_popmap >> slot) !=3D 0, > + ("%s: no popmap siblings past slot %d in node %p", > + __func__, slot, succ)); > + slot +=3D ffs(succ->rn_popmap >> slot) - 1; > + succ =3D vm_radix_node_load(&succ->rn_child[slot], LOCKED); > + } > + > + /* > + * Find the page in the subtree rooted at "succ" with the least pindex. > + */ > + while (!vm_radix_isleaf(succ)) { > + KASSERT(succ->rn_popmap !=3D 0, > + ("%s: no popmap children in node %p", __func__, succ)); > + slot =3D ffs(succ->rn_popmap) - 1; > + succ =3D vm_radix_node_load(&succ->rn_child[slot], LOCKED); > + } > + return (vm_radix_topage(succ)); > +} > + > +/* > + * Returns the page with the greatest pindex that is less than or equal = to the > + * specified pindex, or NULL if there are no such pages. > + * > + * Requires that access be externally synchronized by a lock. > + */ > +vm_page_t > +vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) > +{ > + struct vm_radix_node *pred, *rnode; > + vm_page_t m; > + int slot; > + > + /* > + * Mirror the implementation of vm_radix_lookup_ge, described above. > + */ > + rnode =3D vm_radix_root_load(rtree, LOCKED); > + pred =3D NULL; > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if ((m =3D vm_radix_topage(rnode)) !=3D NULL && > + m->pindex <=3D index) > + return (m); > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) { > + if (rnode->rn_owner < index) > + pred =3D rnode; > + break; > + } > + if ((rnode->rn_popmap & ((1 << slot) - 1)) !=3D 0) > + pred =3D rnode; > + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + if (pred =3D=3D NULL) > + return (NULL); > + if (pred !=3D rnode) { > + slot =3D vm_radix_slot(pred, index); > + KASSERT((pred->rn_popmap & ((1 << slot) - 1)) !=3D 0, > + ("%s: no popmap siblings before slot %d in node %p", > + __func__, slot, pred)); > + slot =3D fls(pred->rn_popmap & ((1 << slot) - 1)) - 1; > + pred =3D vm_radix_node_load(&pred->rn_child[slot], LOCKED); > + } > + while (!vm_radix_isleaf(pred)) { > + KASSERT(pred->rn_popmap !=3D 0, > + ("%s: no popmap children in node %p", __func__, pred)); > + slot =3D fls(pred->rn_popmap) - 1; > + pred =3D vm_radix_node_load(&pred->rn_child[slot], LOCKED); > + } > + return (vm_radix_topage(pred)); > +} > + > +/* > + * Remove the specified index from the trie, and return the value stored= at > + * that index. If the index is not present, return NULL. > + */ > +vm_page_t > +vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) > +{ > + struct vm_radix_node *child, *parent, *rnode; > + vm_page_t m; > + int slot; > + > + rnode =3D NULL; > + child =3D vm_radix_root_load(rtree, LOCKED); > + for (;;) { > + if (vm_radix_isleaf(child)) > + break; > + parent =3D rnode; > + rnode =3D child; > + slot =3D vm_radix_slot(rnode, index); > + child =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + if ((m =3D vm_radix_topage(child)) =3D=3D NULL || m->pindex !=3D index) > + return (NULL); > + if (rnode =3D=3D NULL) { > + vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED); > + return (m); > + } > + KASSERT((rnode->rn_popmap & (1 << slot)) !=3D 0, > + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); > + rnode->rn_popmap ^=3D 1 << slot; > + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED); > + if (!powerof2(rnode->rn_popmap)) > + return (m); > + KASSERT(rnode->rn_popmap !=3D 0, ("%s: bad popmap all zeroes", __func__))= ; > + slot =3D ffs(rnode->rn_popmap) - 1; > + child =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + KASSERT(child !=3D VM_RADIX_NULL, > + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); > + if (parent =3D=3D NULL) > + vm_radix_root_store(rtree, child, LOCKED); > + else { > + slot =3D vm_radix_slot(parent, index); > + KASSERT(rnode =3D=3D > + vm_radix_node_load(&parent->rn_child[slot], LOCKED), > + ("%s: invalid child value", __func__)); > + vm_radix_node_store(&parent->rn_child[slot], child, LOCKED); > + } > + /* > + * The child is still valid and we can not zero the > + * pointer until all smr references are gone. > + */ > + vm_radix_node_put(rnode); > + return (m); > +} > + > +/* > + * Remove and free all the nodes from the radix tree. > + * This function is recursive but there is a tight control on it as the > + * maximum depth of the tree is fixed. > + */ > +void > +vm_radix_reclaim_allnodes(struct vm_radix *rtree) > +{ > + struct vm_radix_node *root; > + > + root =3D vm_radix_root_load(rtree, LOCKED); > + if (root =3D=3D VM_RADIX_NULL) > + return; > + vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED); > + if (!vm_radix_isleaf(root)) > + vm_radix_reclaim_allnodes_int(root); > +} > + > +/* > + * Replace an existing page in the trie with another one. > + * Panics if there is not an old page in the trie at the new page's inde= x. > + */ > +vm_page_t > +vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) > +{ > + struct vm_radix_node *leaf, *parent, *rnode; > + vm_page_t m; > + vm_pindex_t index; > + int slot; > + > + leaf =3D vm_radix_toleaf(newpage); > + index =3D newpage->pindex; > + rnode =3D vm_radix_root_load(rtree, LOCKED); > + parent =3D NULL; > + for (;;) { > + if (vm_radix_isleaf(rnode)) { > + if ((m =3D vm_radix_topage(rnode)) !=3D NULL && > + m->pindex =3D=3D index) { > + if (parent =3D=3D NULL) > + rtree->rt_root =3D leaf; > + else > + vm_radix_node_store( > + &parent->rn_child[slot], leaf, > + LOCKED); > + return (m); > + } > + break; > + } > + if (vm_radix_keybarr(rnode, index, &slot)) > + break; > + parent =3D rnode; > + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED); > + } > + panic("%s: original replacing page not found", __func__); > +} > + > void > vm_radix_wait(void) > { > uma_zwait(vm_radix_node_zone); > } > + > +#ifdef DDB > +/* > + * Show details about the given radix node. > + */ > +DB_SHOW_COMMAND(radixnode, db_show_radixnode) > +{ > + struct vm_radix_node *rnode, *tmp; > + int slot; > + rn_popmap_t popmap; > + > + if (!have_addr) > + return; > + rnode =3D (struct vm_radix_node *)addr; > + db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n", > + (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap, > + rnode->rn_clev / VM_RADIX_WIDTH); > + for (popmap =3D rnode->rn_popmap; popmap !=3D 0; popmap ^=3D 1 << slot) { > + slot =3D ffs(popmap) - 1; > + tmp =3D vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED); > + db_printf("slot: %d, val: %p, page: %p, clev: %d\n", > + slot, (void *)tmp, > + vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL, > + rnode->rn_clev / VM_RADIX_WIDTH); > + } > +} > +#endif /* DDB */ > diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h > index a332618fc0e6..231edda65102 100644 > --- a/sys/vm/vm_radix.h > +++ b/sys/vm/vm_radix.h > @@ -34,113 +34,36 @@ > #include <vm/_vm_radix.h> > > > #ifdef _KERNEL > -#include <sys/pctrie.h> > -#include <vm/vm.h> > > > +int vm_radix_insert(struct vm_radix *rtree, vm_page_t page); > void vm_radix_wait(void); > +vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index); > +vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index); > +vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index); > +vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t i= ndex); > +void vm_radix_reclaim_allnodes(struct vm_radix *rtree); > +vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index); > +vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage); > void vm_radix_zinit(void); > -void *vm_radix_node_alloc(struct pctrie *ptree); > -void vm_radix_node_free(struct pctrie *ptree, void *node); > -extern smr_t vm_radix_smr; > - > -static __inline void > -vm_radix_init(struct vm_radix *rtree) > -{ > - pctrie_init(&rtree->rt_trie); > -} > - > -static __inline bool > -vm_radix_is_empty(struct vm_radix *rtree) > -{ > - return (pctrie_is_empty(&rtree->rt_trie)); > -} > - > -PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_rad= ix_node_free, > - vm_radix_smr); > > > /* > - * Inserts the key-value pair into the trie. > - * Panics if the key already exists. > + * Each search path in the trie terminates at a leaf, which is a pointer= to a > + * page marked with a set 1-bit. A leaf may be associated with a null po= inter > + * to indicate no page there. > */ > -static __inline int > -vm_radix_insert(struct vm_radix *rtree, vm_page_t page) > -{ > - return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page)); > -} > - > -/* > - * Returns the value stored at the index assuming there is an external l= ock. > - * > - * If the index is not present, NULL is returned. > - */ > -static __inline vm_page_t > -vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index)); > -} > - > -/* > - * Returns the value stored at the index without requiring an external l= ock. > - * > - * If the index is not present, NULL is returned. > - */ > -static __inline vm_page_t > -vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index)); > -} > +#define VM_RADIX_ISLEAF 0x1 > +#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF > > > -/* > - * Returns the page with the least pindex that is greater than or equal = to the > - * specified pindex, or NULL if there are no such pages. > - * > - * Requires that access be externally synchronized by a lock. > - */ > -static __inline vm_page_t > -vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index)); > -} > - > -/* > - * Returns the page with the greatest pindex that is less than or equal = to the > - * specified pindex, or NULL if there are no such pages. > - * > - * Requires that access be externally synchronized by a lock. > - */ > -static __inline vm_page_t > -vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index)); > -} > - > -/* > - * Remove the specified index from the trie, and return the value stored= at > - * that index. If the index is not present, return NULL. > - */ > -static __inline vm_page_t > -vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) > -{ > - return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index)); > -} > - > -/* > - * Remove and free all the nodes from the radix tree. > - */ > static __inline void > -vm_radix_reclaim_allnodes(struct vm_radix *rtree) > +vm_radix_init(struct vm_radix *rtree) > { > - VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie); > + rtree->rt_root =3D VM_RADIX_NULL; > } > > > -/* > - * Replace an existing page in the trie with another one. > - * Panics if there is not an old page in the trie at the new page's inde= x. > - */ > -static __inline vm_page_t > -vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) > +static __inline bool > +vm_radix_is_empty(struct vm_radix *rtree) > { > - return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage)); > + return (rtree->rt_root =3D=3D VM_RADIX_NULL); > } > > > #endif /* _KERNEL */ > > > > From nobody Mon Sep 11 18:05:22 2023 X-Original-To: dev-commits-src-main@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 4Rkvl66v00z4stg9; Mon, 11 Sep 2023 18: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rkvl66Rzhz4g6Z; Mon, 11 Sep 2023 18:05:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694455522; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OgwVdFmZLgBrVkExRx1rev4lipMm+u+drLW1bpXC/Xc=; b=GvS8NHvmZdJqUqXaUoUsDFCrh+Deu4nLtNqGteLFG+qaHiUTemO3amfej9DPAK5RjWOySv 4WExJvgJB3ILGPp6FWjQdqXLRDDay/prg7H0ZQIIecDfhfFkIrTGBdfTcITGkfUf+EVr8v bP4yhwXelUSc+t+xQPZXKT53YZal3k1NI5q0jcbQk0EvmR4qZcJzT/GCHIWvcqHNCvV7eu VD8/3GjVqRa+8QKSslge6ie77b6FupEQfAOszAmctWdEjJYvWb7FHqfol/wA0NkYAR9/cQ nuY6mBXSrOfjzTbS6kgCRshl8ighjCtv5Q7UbIAerUFZ3sjy4wvyxs3Womm2uw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694455522; a=rsa-sha256; cv=none; b=UDxMsYu0UCSfyb2QxYJJnvE7M4EZsKNrMf0vHSBNi4/oycG8SQFr1eyoQg0BtaGUdknDjm XXWjY+sT0KLNK9OMVaW5RjOcKfWDy5erD7nQnYkK7LklALfbOsnzqsZCPP7U3g5K+1WZSw 5ioxJb1dMgzgy/0R0PW+Px64LxaE9HgFftBPr0i9hFkFEPusnPeu2mve6NDO0jWQdqHpn+ nlQpqfbp+PkGM2p6rFQgOd27dMSTQVf3QjXhL8GnAdixcM3V9STKTtyforfYheQhN8vgZP aOxbSgxgFoqszNoxrfgBpwFkGOUyLby29/lAQQCaGd2HmVGVSrs9YsxflkFazA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694455522; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OgwVdFmZLgBrVkExRx1rev4lipMm+u+drLW1bpXC/Xc=; b=d4+6MepXnM4YN9V0PXFba04aSSSY0X2zEzUo91n9m4ofdJlgjrM5hqtEm5qjzlSHYZcOI3 GlL7JzJamH/UHBUleSAPFW4WwjwAYruk1yCIG5NIM2sG3nVSCQNgb3+R0Pap6j35zjOV4d x/8PUqxmFEMj9bb4Fpw37K/dKkLj/gqEXiw0U2yJTnLIxe3RJFNct0tKa0i30RzXiErRzC QF31ek0zbN6+v7ABGdpf4NX2uhmfhWrXEEvRwS8i28e/1vYQY9ehKfEmnjjOkjGXl4YsRA DjScGW967r0uxIOqJNIkEdlRZqj/lrKjdKL0puupKYs/Y/T1E1Tok0u4HYAgig== 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 4Rkvl65PPBz10Pp; Mon, 11 Sep 2023 18:05:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BI5MUC007417; Mon, 11 Sep 2023 18:05:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BI5M9Y007414; Mon, 11 Sep 2023 18:05:22 GMT (envelope-from git) Date: Mon, 11 Sep 2023 18:05:22 GMT Message-Id: <202309111805.38BI5M9Y007414@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff <glebius@FreeBSD.org> Subject: git: d13550f0c9c2 - main - stand/loader.efi: fix regression with ignoring nvstore List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d13550f0c9c283e6bf7a2a3ec870f92a882c9f21 Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=d13550f0c9c283e6bf7a2a3ec870f92a882c9f21 commit d13550f0c9c283e6bf7a2a3ec870f92a882c9f21 Author: Gleb Smirnoff <glebius@FreeBSD.org> AuthorDate: 2023-09-11 18:04:48 +0000 Commit: Gleb Smirnoff <glebius@FreeBSD.org> CommitDate: 2023-09-11 18:04:48 +0000 stand/loader.efi: fix regression with ignoring nvstore To read/update the boot loader nvstore, we always need to call zfs_attach_nvstore() regardless of whether we use bootonce key in nvstore or the bootfs property of the pool. The call was unintentionally left in the block of code that is processed only when bootonce key is present. In particular this fixes broken 'nextboot -k'. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D41795 Fixes: e3e2681d0ec28d6661fef6da76c9479049e2761c --- stand/efi/loader/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stand/efi/loader/main.c b/stand/efi/loader/main.c index 39e32a56adc0..11b10dd44d5e 100644 --- a/stand/efi/loader/main.c +++ b/stand/efi/loader/main.c @@ -264,8 +264,8 @@ probe_zfs_currdev(uint64_t guid) printf("zfs bootonce: %s\n", buf); set_currdev(buf); setenv("zfs-bootonce", buf, 1); - (void)zfs_attach_nvstore(&currdev); } + (void)zfs_attach_nvstore(&currdev); return (sanity_check_currdev()); } From nobody Mon Sep 11 18:29:56 2023 X-Original-To: dev-commits-src-main@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 4RkwHT0cKYz4t7Lw; Mon, 11 Sep 2023 18:29:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkwHT09NNz3KB7; Mon, 11 Sep 2023 18:29:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694456997; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mUSUEnkPbRx3cDHcGpf9A0tTs7SY2T//Wi/PKmDe3YE=; b=mcasScf7MOb9PftL/O8wUNxtfuqFLz6ktvEC6pligCqOnERXc0eHsH8ON2Y59LB0urwwV7 2Kx1G4PzuFi4uUS4qy4WbJwLbwmExkx2V/Z/rOaueTaR0cXqQS19BL3pNlVmKXdO9Hl+zh rNAUk6UjoRhr25ZuYMAMSAcHZqOoGHYBGaFTGxBV21gzrmny11zG7gPDupOl8vQxXMLsIr y1p87kX0v/+KWABKcyxF0P1ocPbCaRO9u1g6N0x0306t3xJNZm4ZthXvYtQMvvS3965QBA fL9j23ro3//FLjBbR6B+c7VRu9gHuDjWWkoidao1pFxNgMQmxq76TxY3LJ7ltA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694456997; a=rsa-sha256; cv=none; b=p6l+NwemvXwjkSaZJltQ8RzrZuWJDtLuclgRetWnsh8BPpkIYCS2+GLu996JoKq2gZyVTH eQFeBeOcM5a0HaqsDOSgS+Bu0cDLNFAV5HhAaROgBf1uqQ/T9U+/5mvlrx01oPuJyPl2XO B/yJ2pp5Qd6piZqFnDKryBR1mun9clKnpJh+T5S7iO+mOlgPkcHUSCQRD1x3ywYrR1TUtq ufJLrYja3YAF6jhGM+uGEXMvNF1tMmrSwISv6G0qNgsL6crcAU5kyCQ1q0SDcIMIdk+57V 9/V/HTIFQNSsTAV422AA9lK6vYNbabYnxM7I1f+L47cEXE+/NfHf7hZFPyXVFA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694456997; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mUSUEnkPbRx3cDHcGpf9A0tTs7SY2T//Wi/PKmDe3YE=; b=nTUonoOJRRKZpwR6IBYfUF3oU5iQdjp4jZl6rn7MgM1W//MsdgkpzUV7axOdaPxC9P/qMH s4cTNLDIeG7YcX+QR1x9YrMUFj1AXQxg9V1ZgW8jVgjgG2NnjpbymB/5Vu5yTlP2C3CzAe ClPrJZ3BGWqqtfh6zla5rIi+CLxmnPosDmqlE3wWm7+X8dM0DU1UEdtjIanQZQ6O8DoCSm lo2Ip8HAnkz2wyAWvAbrUmg5lMySKytUQBoxfyTfzJmCoJUp2E2lH/eBU1iMBX/tZ/430+ Efx1EXBUPiJTI/6s5khaTFNhDmTly0EZYa3Qd2I0KHB6BvoWX4X4ITRg59T7Uw== 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 4RkwHS6Fhgz10Rc; Mon, 11 Sep 2023 18:29:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BITu9F040986; Mon, 11 Sep 2023 18:29:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BITuug040983; Mon, 11 Sep 2023 18:29:56 GMT (envelope-from git) Date: Mon, 11 Sep 2023 18:29:56 GMT Message-Id: <202309111829.38BITuug040983@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dmitry Chagin <dchagin@FreeBSD.org> Subject: git: 027d727d4071 - main - linux(4): Cleanup includes under arm64 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 027d727d4071435376017d3789fe603a8aec805a Auto-Submitted: auto-generated The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=027d727d4071435376017d3789fe603a8aec805a commit 027d727d4071435376017d3789fe603a8aec805a Author: Dmitry Chagin <dchagin@FreeBSD.org> AuthorDate: 2023-09-11 18:29:28 +0000 Commit: Dmitry Chagin <dchagin@FreeBSD.org> CommitDate: 2023-09-11 18:29:28 +0000 linux(4): Cleanup includes under arm64 No functional changes. MFC after: 1 week --- sys/arm64/linux/linux_machdep.c | 2 -- sys/arm64/linux/linux_sysvec.c | 4 +--- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/sys/arm64/linux/linux_machdep.c b/sys/arm64/linux/linux_machdep.c index 3ba5683941b5..3bc2923b9d4d 100644 --- a/sys/arm64/linux/linux_machdep.c +++ b/sys/arm64/linux/linux_machdep.c @@ -27,8 +27,6 @@ */ #include <sys/param.h> -#include <sys/fcntl.h> -#include <sys/ktr.h> #include <sys/proc.h> #include <sys/ptrace.h> #include <sys/reg.h> diff --git a/sys/arm64/linux/linux_sysvec.c b/sys/arm64/linux/linux_sysvec.c index 3072732de768..5f9252accb5f 100644 --- a/sys/arm64/linux/linux_sysvec.c +++ b/sys/arm64/linux/linux_sysvec.c @@ -44,10 +44,8 @@ #include <sys/sysctl.h> #include <sys/sysent.h> -#include <vm/pmap.h> #include <vm/vm.h> -#include <vm/vm_map.h> -#include <vm/vm_page.h> +#include <vm/vm_param.h> #include <arm64/linux/linux.h> #include <arm64/linux/linux_proto.h> From nobody Mon Sep 11 18:29:57 2023 X-Original-To: dev-commits-src-main@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 4RkwHV1Xfpz4t7cN; Mon, 11 Sep 2023 18:29:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkwHV12m9z3KKM; Mon, 11 Sep 2023 18:29:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694456998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Jn2yNhh3rI08/syFuxOsTwrez5KF65+tNO5yJdjN4t0=; b=GXvo/WxhzDKuicYIu5lpf1ZRa6fCvJSAqDY32QSJ7oC2VB84WzZac9Ti1AvVEVZH1W/l2Z fJmNTz6Y4Sf6FNXzaKR7hML3hj4QTeu/DzLp9zkp2sytny/DWf6XHdADsPSqWQodAZE1ul pHVcqKNqx7KDwj25urLvZ50BzIefx6ZF938XGFeqgugOY5/kW8sbqk+VKWmjeuIohPe/KP azYViVptnio1YFIbGklp2aQS6n6exo4BVI95emeqGGQEj/0hsB+RclJ5j5oh4wMR0gCgTL ZAyyDzEGRnqq/oOtOEtm0jq9u+ySQCs7nAdHoXX+dt9x2VdU19Ol5fRboaDDiw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694456998; a=rsa-sha256; cv=none; b=B+R6WoQlre30SH/HpLbce5QtXQlAv64G81zHwm75eCWXqO0szSagx1yww1B7fnWuXDkvD6 GznpEeAyntIZt7nNHIE0SjQu3XtoVRLLeob/C9Y/dhbD5xchN8zUknmouEXAqJb/MTgRku lGC/+p7AYEiLCOsUftHvs6pzAtU7SKdWfYp6mpGAU9iy1IIUlXc1vTl0ilZfT2DvtqQXMu fIkxXdqBwo/Vwc3R4KqiYVanAFe7/1LUDjz1k18qcc5gZ8Cem3FRx7gEISnrMNZK9YcWRs Hvm6NYJX3MsUPT6k3X9HnZbfxzHyGoDQh7+1qCF3q8zNUDeC/UxTLKNwoyeRqg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694456998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Jn2yNhh3rI08/syFuxOsTwrez5KF65+tNO5yJdjN4t0=; b=wsRS/KeLgUCepfqyOUaRkhXPSPTWwMTTPvyuQi7flFCsV3gEKlrGBXZyGYIW8y1e5pCzGN 4RNVx6Kl7f3awCHEz/2O8JzZY/8yhNmFQ0GyrmFoYdpZOUq2teAb/mj/YF6QhWVtmVn4/F 869EQJ2rQh0UUCu/x82cZDmiwZOSF9Ojg2vDMQqu8uLCDqs8BiAwyxQ3VbDZEJdYGrslgr 2yNLrvfE3p5D53Gw0PiLR2pq69IhLeCKFPPvERWJwYYCU6YmCS67pYTKH3ZOPytZnfla3w maed3JkUfSMthVz6jSYieRwP91AG8O8kydTsG3+8gXRo+Uf+RQ45uavu/FXEKg== 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 4RkwHT6x8Hz10cC; Mon, 11 Sep 2023 18:29:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BITvGw041037; Mon, 11 Sep 2023 18:29:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BITvMI041034; Mon, 11 Sep 2023 18:29:57 GMT (envelope-from git) Date: Mon, 11 Sep 2023 18:29:57 GMT Message-Id: <202309111829.38BITvMI041034@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dmitry Chagin <dchagin@FreeBSD.org> Subject: git: 68df2376e0e5 - main - linux(4): Cleanup includes under amd64/linux List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 68df2376e0e50cea0f8c3c04dc2d8a7b63515773 Auto-Submitted: auto-generated The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=68df2376e0e50cea0f8c3c04dc2d8a7b63515773 commit 68df2376e0e50cea0f8c3c04dc2d8a7b63515773 Author: Dmitry Chagin <dchagin@FreeBSD.org> AuthorDate: 2023-09-11 18:29:34 +0000 Commit: Dmitry Chagin <dchagin@FreeBSD.org> CommitDate: 2023-09-11 18:29:34 +0000 linux(4): Cleanup includes under amd64/linux No functional changes. MFC after: 1 week --- sys/amd64/linux/linux_machdep.c | 13 ------------- sys/amd64/linux/linux_sysvec.c | 7 +------ 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/sys/amd64/linux/linux_machdep.c b/sys/amd64/linux/linux_machdep.c index 33ce902a45bd..7ec1ec56bb95 100644 --- a/sys/amd64/linux/linux_machdep.c +++ b/sys/amd64/linux/linux_machdep.c @@ -33,7 +33,6 @@ #include <sys/systm.h> #include <sys/ktr.h> #include <sys/lock.h> -#include <sys/malloc.h> #include <sys/mman.h> #include <sys/mutex.h> #include <sys/priv.h> @@ -41,25 +40,13 @@ #include <sys/ptrace.h> #include <sys/syscallsubr.h> -#include <security/mac/mac_framework.h> - -#include <ufs/ufs/extattr.h> -#include <ufs/ufs/quota.h> -#include <ufs/ufs/ufsmount.h> - -#include <machine/frame.h> #include <machine/md_var.h> #include <machine/pcb.h> -#include <machine/psl.h> -#include <machine/segments.h> #include <machine/specialreg.h> #include <vm/pmap.h> #include <vm/vm.h> #include <vm/vm_param.h> -#include <vm/vm_extern.h> -#include <vm/vm_kern.h> -#include <vm/vm_map.h> #include <x86/ifunc.h> #include <x86/reg.h> diff --git a/sys/amd64/linux/linux_sysvec.c b/sys/amd64/linux/linux_sysvec.c index 55eb34b6d329..2907323d903c 100644 --- a/sys/amd64/linux/linux_sysvec.c +++ b/sys/amd64/linux/linux_sysvec.c @@ -40,7 +40,6 @@ #include <sys/kernel.h> #include <sys/ktr.h> #include <sys/lock.h> -#include <sys/malloc.h> #include <sys/module.h> #include <sys/mutex.h> #include <sys/proc.h> @@ -51,13 +50,9 @@ #include <vm/pmap.h> #include <vm/vm.h> -#include <vm/vm_map.h> -#include <vm/vm_page.h> +#include <vm/vm_param.h> -#include <machine/cpu.h> #include <machine/md_var.h> -#include <machine/pcb.h> -#include <machine/specialreg.h> #include <machine/trap.h> #include <x86/linux/linux_x86.h> From nobody Mon Sep 11 18:29:59 2023 X-Original-To: dev-commits-src-main@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 4RkwHW2Fttz4t7M3; Mon, 11 Sep 2023 18:29:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkwHW1kJYz3K8g; Mon, 11 Sep 2023 18:29:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694456999; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1ExFzoTgmgrFC6F+DzV6bxB1xvWTadZqUFUMlyDtmMk=; b=T7CoW4GYswbHqcbJJCIG5LS/axKV2BURxdieZMmJAXJRZAUfb6X+WXUXdZkIEK9FefY2bF Bn/ChkqTOGvYrmvnZ8WAVXbfb4fTm209OeGSJjRgL+po4jJa/kbVlNPHBrO8KyvSilySWC ZDjkUZPjH7vGCRsmLGRDBU5cNoKxobJ7+6hz51tc0xGFU+PpDgTmXGrkJLc7mSOY3h58OW ZyWN17bj6dCKVdXAOdF+F0JXDlsrNvOwTbNj9pPflkD1V6PhaybXQQQ57UagtJHRAfKXl/ 57n8OXWQNQkgivUAtDl+6MWZtTl52c17MFaqOVSkboCKE3DkyUHLhjz2LVWLfg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694456999; a=rsa-sha256; cv=none; b=MX55fZmMg6wZPV/Z7VZXDy+MfPmBSXWYX7nJaHjtKLSxlucYryegNXSvcPowOBHDrwj3vb SpCVVY9t39/tWQ2rs1ryWcTC7JOMMj0z4p+toro2o4zGHqmlSO5Br96JAjerkmXbG6OW6v Ptizs/k/nxN8r0bCjoLM8wr1x+O8r6oU87K5SA4P5TWRUtYB7PGFg6jrNWJPSUiXFXXdjd d9P5+84ogkrEgr+zU4B8+0N9H34DFt1FsdI8FRCh/kmQ91fOConvUTsRQk2ltGshWHJsO1 KasmwRK60unu5STRbM2L4mjtktObwswpDzgb1GcJ5t69EqNnrKA8bQ8q+1y8Qg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694456999; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1ExFzoTgmgrFC6F+DzV6bxB1xvWTadZqUFUMlyDtmMk=; b=IlsPkq1qtBML7WVYfXqzrtWnQbFR0ceHBNCXwaPT5IaUlTf04QwEnuKkxn5iKqIbJU6qtq GpvqwHJYKZzm6LD2+/SLWMOfh8jweyoVcUce0aF5EK8e0K/yHBg8Pe3jyg3sNBpIhhZ+CJ g6cUNREuLYQptpCRucvVWyO7XFrSD9KDNgR+h/uBPtrkUtQmci7ypQmFFkv9L0qFIXyHdn dFYT7F1g/ckinaG9NNJvXb1O9ktPw7tC7argOmZu4iZzLORZOdBNliF4Pp04blcrj23iHc MK+AB9epRLyp1VnL2udSG3ophRwb3tm5IEoqByhlzcHuuhRaS9Jw4kMmrMobKw== 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 4RkwHW0prcz10Rd; Mon, 11 Sep 2023 18:29:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BITxgH041079; Mon, 11 Sep 2023 18:29:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BITxhk041076; Mon, 11 Sep 2023 18:29:59 GMT (envelope-from git) Date: Mon, 11 Sep 2023 18:29:59 GMT Message-Id: <202309111829.38BITxhk041076@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dmitry Chagin <dchagin@FreeBSD.org> Subject: git: ba90a31d08e4 - main - linux(4): Cleanup includes under amd64/linux32 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ba90a31d08e413b82c1d1d4d697c2cdb32a13674 Auto-Submitted: auto-generated The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=ba90a31d08e413b82c1d1d4d697c2cdb32a13674 commit ba90a31d08e413b82c1d1d4d697c2cdb32a13674 Author: Dmitry Chagin <dchagin@FreeBSD.org> AuthorDate: 2023-09-11 18:29:40 +0000 Commit: Dmitry Chagin <dchagin@FreeBSD.org> CommitDate: 2023-09-11 18:29:40 +0000 linux(4): Cleanup includes under amd64/linux32 No functional changes. MFC after: 1 week --- sys/amd64/linux32/linux32_machdep.c | 14 -------------- sys/amd64/linux32/linux32_sysvec.c | 7 +------ 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/sys/amd64/linux32/linux32_machdep.c b/sys/amd64/linux32/linux32_machdep.c index e10502f9bd80..ba4dcc61af76 100644 --- a/sys/amd64/linux32/linux32_machdep.c +++ b/sys/amd64/linux32/linux32_machdep.c @@ -31,31 +31,17 @@ */ #include <sys/param.h> -#include <sys/fcntl.h> -#include <sys/imgact.h> -#include <sys/limits.h> #include <sys/lock.h> -#include <sys/malloc.h> #include <sys/mutex.h> #include <sys/priv.h> #include <sys/proc.h> #include <sys/reg.h> #include <sys/syscallsubr.h> -#include <machine/frame.h> #include <machine/md_var.h> -#include <machine/pcb.h> -#include <machine/psl.h> -#include <machine/segments.h> #include <machine/specialreg.h> #include <x86/ifunc.h> -#include <vm/pmap.h> -#include <vm/vm.h> -#include <vm/vm_map.h> - -#include <security/audit/audit.h> - #include <compat/freebsd32/freebsd32_util.h> #include <amd64/linux32/linux.h> #include <amd64/linux32/linux32_proto.h> diff --git a/sys/amd64/linux32/linux32_sysvec.c b/sys/amd64/linux32/linux32_sysvec.c index f2a379a66860..31436ee7162a 100644 --- a/sys/amd64/linux32/linux32_sysvec.c +++ b/sys/amd64/linux32/linux32_sysvec.c @@ -40,12 +40,10 @@ #include <sys/param.h> #include <sys/exec.h> -#include <sys/fcntl.h> #include <sys/imgact.h> #include <sys/imgact_elf.h> #include <sys/kernel.h> #include <sys/lock.h> -#include <sys/malloc.h> #include <sys/module.h> #include <sys/mutex.h> #include <sys/proc.h> @@ -57,12 +55,9 @@ #include <vm/pmap.h> #include <vm/vm.h> #include <vm/vm_map.h> -#include <vm/vm_page.h> +#include <vm/vm_param.h> -#include <machine/cpu.h> #include <machine/md_var.h> -#include <machine/pcb.h> -#include <machine/specialreg.h> #include <machine/trap.h> #include <x86/linux/linux_x86.h> From nobody Mon Sep 11 18:51:59 2023 X-Original-To: dev-commits-src-main@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 4Rkwn44JFjz4tMBC; Mon, 11 Sep 2023 18:52:08 +0000 (UTC) (envelope-from dchagin@heemeyer.club) Received: from heemeyer.club (heemeyer.club [195.93.173.158]) (using TLSv1.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 mx1.freebsd.org (Postfix) with ESMTPS id 4Rkwn34Wg2z3TJB; Mon, 11 Sep 2023 18:52:07 +0000 (UTC) (envelope-from dchagin@heemeyer.club) Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of dchagin@heemeyer.club has no SPF policy when checking 195.93.173.158) smtp.mailfrom=dchagin@heemeyer.club; dmarc=none Received: from heemeyer.club (localhost [127.0.0.1]) by heemeyer.club (8.17.2/8.16.1) with ESMTP id 38BIpxFH002386; Mon, 11 Sep 2023 21:51:59 +0300 (MSK) (envelope-from dchagin@heemeyer.club) Received: (from dchagin@localhost) by heemeyer.club (8.17.2/8.16.1/Submit) id 38BIpxEU002385; Mon, 11 Sep 2023 21:51:59 +0300 (MSK) (envelope-from dchagin) Date: Mon, 11 Sep 2023 21:51:59 +0300 From: Dmitry Chagin <dchagin@freebsd.org> To: Mateusz Guzik <mjg@freebsd.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: a87c6962affc - main - ufs: restore name cache fast path lookup Message-ID: <ZP9hz5IF3R1KMYBQ@heemeyer.club> References: <202309092150.389LovR0091943@gitrepo.freebsd.org> List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202309092150.389LovR0091943@gitrepo.freebsd.org> X-Spamd-Bar: - X-Spamd-Result: default: False [-1.75 / 15.00]; AUTH_NA(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.95)[-0.946]; FORGED_SENDER(0.30)[dchagin@freebsd.org,dchagin@heemeyer.club]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; MLMMJ_DEST(0.00)[dev-commits-src-all@freebsd.org,dev-commits-src-main@freebsd.org]; R_SPF_NA(0.00)[no SPF record]; ASN(0.00)[asn:61400, ipnet:195.93.173.0/24, country:RU]; R_DKIM_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[freebsd.org]; FREEFALL_USER(0.00)[dchagin]; ARC_NA(0.00)[]; FROM_NEQ_ENVFROM(0.00)[dchagin@freebsd.org,dchagin@heemeyer.club]; RCPT_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Queue-Id: 4Rkwn34Wg2z3TJB On Sat, Sep 09, 2023 at 09:50:57PM +0000, Mateusz Guzik wrote: > The branch main has been updated by mjg: > > URL: https://cgit.FreeBSD.org/src/commit/?id=a87c6962affc2d1994d8f30806c934eb4cb7af22 > > commit a87c6962affc2d1994d8f30806c934eb4cb7af22 > Author: Mateusz Guzik <mjg@FreeBSD.org> > AuthorDate: 2023-09-09 21:48:57 +0000 > Commit: Mateusz Guzik <mjg@FreeBSD.org> > CommitDate: 2023-09-09 21:48:57 +0000 > > ufs: restore name cache fast path lookup > 10x, do you plan to merge this to the stable/14 releng/14.0? I just cherry-picked this to my stable/14 prod, so compile and runtime tested > Found by: dchagin > Fixes: f3c81b973897 ("ufs: add missing vop_fplookup ops") > --- > sys/ufs/ffs/ffs_vnops.c | 6 ++++-- > sys/ufs/ufs/ufs_vnops.c | 4 ++-- > 2 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c > index 0dd64f696e0c..2b11a15c46c9 100644 > --- a/sys/ufs/ffs/ffs_vnops.c > +++ b/sys/ufs/ffs/ffs_vnops.c > @@ -135,6 +135,8 @@ static vop_setextattr_t ffs_setextattr; > static vop_vptofh_t ffs_vptofh; > static vop_vput_pair_t ffs_vput_pair; > > +vop_fplookup_vexec_t ufs_fplookup_vexec; > + > /* Global vfs data structures for ufs. */ > struct vop_vector ffs_vnodeops1 = { > .vop_default = &ufs_vnodeops, > @@ -151,7 +153,7 @@ struct vop_vector ffs_vnodeops1 = { > .vop_write = ffs_write, > .vop_vptofh = ffs_vptofh, > .vop_vput_pair = ffs_vput_pair, > - .vop_fplookup_vexec = VOP_EAGAIN, > + .vop_fplookup_vexec = ufs_fplookup_vexec, > .vop_fplookup_symlink = VOP_EAGAIN, > }; > VFS_VOP_VECTOR_REGISTER(ffs_vnodeops1); > @@ -192,7 +194,7 @@ struct vop_vector ffs_vnodeops2 = { > .vop_setextattr = ffs_setextattr, > .vop_vptofh = ffs_vptofh, > .vop_vput_pair = ffs_vput_pair, > - .vop_fplookup_vexec = VOP_EAGAIN, > + .vop_fplookup_vexec = ufs_fplookup_vexec, > .vop_fplookup_symlink = VOP_EAGAIN, > }; > VFS_VOP_VECTOR_REGISTER(ffs_vnodeops2); > diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c > index a7d5e8ba96fc..79cca75fc563 100644 > --- a/sys/ufs/ufs/ufs_vnops.c > +++ b/sys/ufs/ufs/ufs_vnops.c > @@ -101,7 +101,7 @@ VFS_SMR_DECLARE; > #include <ufs/ffs/ffs_extern.h> > > static vop_accessx_t ufs_accessx; > -static vop_fplookup_vexec_t ufs_fplookup_vexec; > +vop_fplookup_vexec_t ufs_fplookup_vexec; > static int ufs_chmod(struct vnode *, int, struct ucred *, struct thread *); > static int ufs_chown(struct vnode *, uid_t, gid_t, struct ucred *, > struct thread *); > @@ -475,7 +475,7 @@ ufs_accessx( > * VOP_FPLOOKUP_VEXEC routines are subject to special circumstances, see > * the comment above cache_fplookup for details. > */ > -static int > +int > ufs_fplookup_vexec( > struct vop_fplookup_vexec_args /* { > struct vnode *a_vp; From nobody Mon Sep 11 18:58:58 2023 X-Original-To: dev-commits-src-main@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 4RkwxB726Xz4tQK7 for <dev-commits-src-main@mlmmj.nyi.freebsd.org>; Mon, 11 Sep 2023 18:59:10 +0000 (UTC) (envelope-from cglogic@protonmail.com) Received: from mail-4318.protonmail.ch (mail-4318.protonmail.ch [185.70.43.18]) (using TLSv1.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 "protonmail.com", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rkwx93j2zz3WBv for <dev-commits-src-main@FreeBSD.org>; Mon, 11 Sep 2023 18:59:09 +0000 (UTC) (envelope-from cglogic@protonmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=protonmail.com header.s=protonmail3 header.b=v3ZQzIiN; spf=pass (mx1.freebsd.org: domain of cglogic@protonmail.com designates 185.70.43.18 as permitted sender) smtp.mailfrom=cglogic@protonmail.com; dmarc=pass (policy=quarantine) header.from=protonmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1694458746; x=1694717946; bh=lPN3H8X3RjYeI0G2DDv0r04UTT2YaTlnM5+u71gyC5g=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=v3ZQzIiN3B6m82ROO+NJP4XSzhfpH8UZYB8aPi95TWsdhEJ0mipkWNCz/fimmaxBs zLbEWudbAMw7nBDZUB3bkjj1RtvOIgAMzEpV7IGi4moOgXqHDYp0Hkk5GV1zqRPNZa t3i2uWeM6Rq3vHKFTEzcbx0i42x6sClx9L33sErdPZP94AFsZvcWL2wKE9KQADqB4p zHqxWE6++QuvPtg6zRv4ARU6T+Iw3awOhWjg/Zyw3x+qdXr4w4DtN76VSdLXDNr55z Jq5lsl0Wa5yv6F1hZfkcIq2Fb1HHGXnCWCDDKV1Jj4tvQylxzeb1i50dHWWbV4vQGa 6Ac7bKqyp3JPQ== Date: Mon, 11 Sep 2023 18:58:58 +0000 To: dev-commits-src-main@FreeBSD.org From: cglogic <cglogic@protonmail.com> Subject: Re: git: fb5daae920ba - main - timerfd: Namespace pollution adjustments Message-ID: <kumtnEYa8yfnNceFxNMc9iJ15yTgc487_d_UTK7LjnhlTB0xjgCW3q-j_y-82gIiY7Krvhr8k7Gbmp_V2Niqi8sh4XMld9FSF7-EA5fMa4g=@protonmail.com> In-Reply-To: <202309052226.385MQF5F075354@gitrepo.freebsd.org> References: <202309052226.385MQF5F075354@gitrepo.freebsd.org> Feedback-ID: 25313618:user:proton List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.38 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-0.99)[-0.991]; NEURAL_HAM_SHORT(-0.99)[-0.991]; DMARC_POLICY_ALLOW(-0.50)[protonmail.com,quarantine]; RWL_MAILSPIKE_EXCELLENT(-0.40)[185.70.43.18:from]; R_SPF_ALLOW(-0.20)[+ip4:185.70.43.0/24]; R_DKIM_ALLOW(-0.20)[protonmail.com:s=protonmail3]; MIME_GOOD(-0.10)[text/plain]; MLMMJ_DEST(0.00)[dev-commits-src-main@FreeBSD.org]; FREEMAIL_ENVFROM(0.00)[protonmail.com]; RCVD_COUNT_ZERO(0.00)[0]; MIME_TRACE(0.00)[0:+]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; ASN(0.00)[asn:62371, ipnet:185.70.43.0/24, country:CH]; FREEMAIL_FROM(0.00)[protonmail.com]; FROM_HAS_DN(0.00)[]; DKIM_TRACE(0.00)[protonmail.com:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; TO_DN_NONE(0.00)[]; MID_RHS_MATCH_FROM(0.00)[] X-Rspamd-Queue-Id: 4Rkwx93j2zz3WBv Is it planned to MFC this and related timerfd commits to stable/14? It should help build some ports. ------- Original Message ------- On Wednesday, September 6th, 2023 at 1:26 AM, Warner Losh <imp@FreeBSD.org>= wrote: > The branch main has been updated by imp: >=20 > URL: https://cgit.FreeBSD.org/src/commit/?id=3Dfb5daae920bae84e3eec8175bf= 9e46304c3b2ae6 >=20 > commit fb5daae920bae84e3eec8175bf9e46304c3b2ae6 > Author: Jake Freeland jfree@FreeBSD.org >=20 > AuthorDate: 2023-09-05 22:11:50 +0000 > Commit: Warner Losh imp@FreeBSD.org >=20 > CommitDate: 2023-09-05 22:25:01 +0000 >=20 > timerfd: Namespace pollution adjustments >=20 > Do not pollute userspace with <sys/proc.h>, instead declare struct thread >=20 > when _KERNEL is defined. >=20 > Include <sys/time.h> instead of <sys/timespec.h>. This causes intentional >=20 > namespace pollution that mimics Linux. g/musl libcs include <time.h> in >=20 > their <sys/timerfd.h>, exposing clock gettime, settime functions and >=20 > CLOCK_ macro constants. Ports like Chromium expect this namespace > pollution and fail without it. >=20 > MFC After: 3 days > Reviewed by: imp, markj > Differential Revision: https://reviews.freebsd.org/D41641 > --- > sys/sys/timerfd.h | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) >=20 > diff --git a/sys/sys/timerfd.h b/sys/sys/timerfd.h > index 8cb9939ba60f..cace3b71498c 100644 > --- a/sys/sys/timerfd.h > +++ b/sys/sys/timerfd.h > @@ -30,8 +30,12 @@ >=20 > #include <sys/types.h> >=20 > #include <sys/fcntl.h> >=20 > -#include <sys/proc.h> >=20 > -#include <sys/timespec.h> >=20 > +/* > + * We only need <sys/timespec.h>, but glibc pollutes the namespace >=20 > + * with <time.h>. This pollution is expected by most programs, so >=20 > + * reproduce it by including <sys/time.h> here. >=20 > + */ > +#include <sys/time.h> >=20 >=20 > typedef uint64_t timerfd_t; >=20 > @@ -54,6 +58,8 @@ __END_DECLS >=20 > #else /* _KERNEL */ >=20 > +struct thread; > + > int kern_timerfd_create(struct thread *td, int clockid, int flags); > int kern_timerfd_gettime(struct thread *td, int fd, > struct itimerspec *curr_value); From nobody Mon Sep 11 19:32:17 2023 X-Original-To: dev-commits-src-main@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 4RkxgP2q7bz4sqxx; Mon, 11 Sep 2023 19:32: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkxgP2PQyz3gPs; Mon, 11 Sep 2023 19:32:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694460737; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5ATf95KPhG6fJpKzVEHdeFvg4cfYVDWNIX/pIwRRfZc=; b=gUEURdcNVPHa+PW+lkVJu1OnWrqJUqE5sr13fFVBlI1h03pK97WPRz2oYqy5T/GL2wA+3c 9Ge4PSUQV2K5nX7VlltBeYL+9PPo6OY7h/UV3S2crec4u3BWtFJhvrq8WhKOINZyu5M6lA Jg5wcOPazkE2o9Lftp2XDSBJUdGngHZO9UwLWt5gpm5WppKBJBAWqHe2VqgZ5Q2AsT5yX0 yk5cteF4UkV4RZRbPl/PhF8LWHlbuIyd4sO3Jz7UgTDhcHKaJ3zWuMPTqfm/6CV4keMtAD I+9tDy8PoScuxCIYVLKGR70ko+LM6CNyvJBoHDyMJoQjbqc3/8FhhDGSycxkZw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694460737; a=rsa-sha256; cv=none; b=UclTKDMrW96Us7YKn4V3ithhzAC9LLgAkLPzGW+bPb4XPPtQmKW1wOVG/Y4pkvnZ9UA8/j 7ESSXkevIn5BxgMEY/qHt2F/L1kDQggrMBQcroubjFta7KEnq78WVdTWqeSuUXc9uGy6PF 6Y7JMjkgzdkshaggW73ojUKcculmOiwv+XfElI1jNvMFoovft/QtiLNjx4TKZ5eMpYb5kl 9ij3A11C2izTDfqQ2/x2jBlAty2nD3zJIfGLIP2TsnS51y29jTx/4JzDhugtuStoLi47Jv z6yzG4uuopOFm1iOARhm/VjCakMaduFSh9wal8TqkSyD0zyrW8zr1MEYyK41lQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694460737; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5ATf95KPhG6fJpKzVEHdeFvg4cfYVDWNIX/pIwRRfZc=; b=PxhTNh9JrhSYZzQmHwg1CZnkKsSbv1lOSPM7kd0skYdjUBhcT5+qctOeGMj8/s/3qT7MP0 vKiuliqNiogZz96Xdw1YOpmNly+bveNOTpwcxCL1anZNpMMpQfqQwKE0E2tKjflD7O75lJ 2eqaX6rY90rIJzuyoLnUg+YEzOHszFVjEgE70k+fEjbJ6VgOynb4U2KurHi/WTMTXIuYYa +r+Gx3QaAp1H2eOyiqNeGYOC3bF3NGiYpjvVA4FrIgBnUc49wahF9lNyR+8l3yQ7BpuZDA V3Bs4LaDHJFn5hjWOpor4mKGzJIXd8MEA3l27htQyEVttA3dWZreImWLAgmt3w== 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 4RkxgP1TMKz123b; Mon, 11 Sep 2023 19:32:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38BJWHFB056411; Mon, 11 Sep 2023 19:32:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BJWHhm056408; Mon, 11 Sep 2023 19:32:17 GMT (envelope-from git) Date: Mon, 11 Sep 2023 19:32:17 GMT Message-Id: <202309111932.38BJWHhm056408@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Cheng Cui <cc@FreeBSD.org> Subject: git: fafb03ab4254 - main - siftr: flush pkt_nodes to the log file in batch List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cc X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fafb03ab4254ab0d3927bc8ec22e4ba432efdbeb Auto-Submitted: auto-generated The branch main has been updated by cc: URL: https://cgit.FreeBSD.org/src/commit/?id=fafb03ab4254ab0d3927bc8ec22e4ba432efdbeb commit fafb03ab4254ab0d3927bc8ec22e4ba432efdbeb Author: Cheng Cui <cc@FreeBSD.org> AuthorDate: 2023-07-25 13:53:55 +0000 Commit: Cheng Cui <cc@FreeBSD.org> CommitDate: 2023-09-11 15:23:27 +0000 siftr: flush pkt_nodes to the log file in batch Reviewed by: rscheff, tuexen Differential Revision: https://reviews.freebsd.org/D41175 --- sys/netinet/siftr.c | 73 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 18 deletions(-) diff --git a/sys/netinet/siftr.c b/sys/netinet/siftr.c index 58603e4aa53c..fbb47fc4a521 100644 --- a/sys/netinet/siftr.c +++ b/sys/netinet/siftr.c @@ -370,12 +370,12 @@ siftr_new_hash_node(struct flow_info info, int dir, } } -static void -siftr_process_pkt(struct pkt_node * pkt_node) +static int +siftr_process_pkt(struct pkt_node * pkt_node, char *buf) { struct flow_hash_node *hash_node; struct listhead *counter_list; - struct ale *log_buf; + int ret_sz; if (pkt_node->flowid == 0) { panic("%s: flowid not available", __func__); @@ -385,7 +385,7 @@ siftr_process_pkt(struct pkt_node * pkt_node) hash_node = siftr_find_flow(counter_list, pkt_node->flowid); if (hash_node == NULL) { - return; + return 0; } else if (siftr_pkts_per_log > 1) { /* * Taking the remainder of the counter divided @@ -401,16 +401,11 @@ siftr_process_pkt(struct pkt_node * pkt_node) * we wrote a log message for this connection, return. */ if (hash_node->counter > 0) - return; + return 0; } - log_buf = alq_getn(siftr_alq, MAX_LOG_MSG_LEN, ALQ_WAITOK); - - if (log_buf == NULL) - return; /* Should only happen if the ALQ is shutting down. */ - /* Construct a log message. */ - log_buf->ae_bytesused = snprintf(log_buf->ae_data, MAX_LOG_MSG_LEN, + ret_sz = snprintf(buf, MAX_LOG_MSG_LEN, "%c,%jd.%06ld,%s,%hu,%s,%hu,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u," "%u,%u,%u,%u,%u,%u,%u,%u\n", direction[pkt_node->direction], @@ -442,7 +437,7 @@ siftr_process_pkt(struct pkt_node * pkt_node) pkt_node->flowid, pkt_node->flowtype); - alq_post_flags(siftr_alq, log_buf, 0); + return ret_sz; } static void @@ -452,6 +447,9 @@ siftr_pkt_manager_thread(void *arg) STAILQ_HEAD_INITIALIZER(tmp_pkt_queue); struct pkt_node *pkt_node, *pkt_node_temp; uint8_t draining; + struct ale *log_buf; + int ret_sz, cnt; + char *bufp; draining = 2; @@ -487,12 +485,51 @@ siftr_pkt_manager_thread(void *arg) */ mtx_unlock(&siftr_pkt_mgr_mtx); - /* Flush all pkt_nodes to the log file. */ - STAILQ_FOREACH_SAFE(pkt_node, &tmp_pkt_queue, nodes, - pkt_node_temp) { - siftr_process_pkt(pkt_node); - STAILQ_REMOVE_HEAD(&tmp_pkt_queue, nodes); - free(pkt_node, M_SIFTR_PKTNODE); +try_again: + pkt_node = STAILQ_FIRST(&tmp_pkt_queue); + if (pkt_node != NULL) { + if (STAILQ_NEXT(pkt_node, nodes) != NULL) { + cnt = 3; + } else { + cnt = 1; + } + + log_buf = alq_getn(siftr_alq, MAX_LOG_MSG_LEN * cnt, + ALQ_WAITOK); + + if (log_buf != NULL) { + log_buf->ae_bytesused = 0; + bufp = log_buf->ae_data; + } else { + /* + * Should only happen if the ALQ is shutting + * down. + */ + bufp = NULL; + } + + /* Flush all pkt_nodes to the log file. */ + STAILQ_FOREACH_SAFE(pkt_node, &tmp_pkt_queue, nodes, + pkt_node_temp) { + if (log_buf != NULL) { + ret_sz = siftr_process_pkt(pkt_node, + bufp); + bufp += ret_sz; + log_buf->ae_bytesused += ret_sz; + cnt--; + } + + STAILQ_REMOVE_HEAD(&tmp_pkt_queue, nodes); + free(pkt_node, M_SIFTR_PKTNODE); + + if (cnt <= 0 && !STAILQ_EMPTY(&tmp_pkt_queue)) { + alq_post_flags(siftr_alq, log_buf, 0); + goto try_again; + } + } + if (log_buf != NULL) { + alq_post_flags(siftr_alq, log_buf, 0); + } } KASSERT(STAILQ_EMPTY(&tmp_pkt_queue), From nobody Tue Sep 12 03:41:46 2023 X-Original-To: dev-commits-src-main@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 4Rl8XB5Tptz4tSYD; Tue, 12 Sep 2023 03:41: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rl8XB4h5Bz4Syg; Tue, 12 Sep 2023 03:41:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694490106; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R+8OJjgghTyTC0wT1cyZcwvwNeGj/FdiCLUlTTIuGwo=; b=aaZuJgyTl7NDDnTqolyDDhBst/xlC6xEOqOGdJgbpkycnjK8Lwu/ir/WG7p34ZfaF17q+p fqqSCBMiwE2Mo4D23WUgGe1bB7yARQpu33klByziSWDmFxvFxdm1mQub/uhKh8JXvDgiMN Lj56129PTDcxVmONOIXReJ0UVA7hUdUjMZcctXi1jMOoKFuFU5CEJF0zzP8CKNpWqzsM7U q6pNxYqtgQiRPhL3NIFETMJ1fHEhKaQUN3AM7dDG0uU9MIlrMVZ3EpkEhMiJHNkSDKO/1f fzGL+kWX1balme89Vh2AEPgmlF/Da4sZ/5NubZ+3PRB3XIllieFDrbHg0oGwKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694490106; a=rsa-sha256; cv=none; b=u1bIV/+q7poBXkcrDW9hjAbeHfC11EQ/43K1LniKiWooohonoGFcPRmkucVlD3ANmI6app qV+jSnuLarmcWHQFQeI7V1uvjDoB+xF3Lb2L+9LWSQGjgGGdkib8LpPX+DgVyW6nfQhKTf A3R8BROcwPPfcS2vwap/k0bPbqFhHTjoBm4fC21YggsuyFmtPWd4KH+/HePYT6khI1mOrG Aau8hwsOYNkuDIhUh9oNOYE7wTx9mQZB6FilKUAZVu0lnLt2a585Svks4WRt0q9xqudyaC 0R/xUosH4IeWccu8O9YJimA8clReTtlAbx4XLg6ODxBkFuNHRjCawNYkh5mf8A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694490106; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R+8OJjgghTyTC0wT1cyZcwvwNeGj/FdiCLUlTTIuGwo=; b=ZwQCPQbhl6tOmJylmc4zfBcvgU7Ay5m5aX5lSLo/sAjLr1fNOozS+KBirZN68kZl2MQ4Q8 6kdueOQgjr01H3GL5XWosPLvruBmyLYNrTl/UAe9+/Es8qd4fY5BZR6T/2fQq6hyaCsQ1u oFOCpNunhxQHwJXqHmk8W2fvVqErjGfeDjamCJ5ygvKXDhR2ijqMWdKC9dOOFnrTS4NfkV VkXRtIXICi+KJZ9m/+r2HTvYCUxCIrbsy6b5QrH7RHJmcgZnjdiI/V5wDA8DozJucgZd4u DNxK0l+2ATE37P/xEq7DAPgtkRc55beFqYRzECChl/XhF/MzqZeqUFB2Kzg+jA== 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 4Rl8XB3n3Vz1kR; Tue, 12 Sep 2023 03:41:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38C3fkZ4070756; Tue, 12 Sep 2023 03:41:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38C3fkuE070753; Tue, 12 Sep 2023 03:41:46 GMT (envelope-from git) Date: Tue, 12 Sep 2023 03:41:46 GMT Message-Id: <202309120341.38C3fkuE070753@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Robert Clausecker <fuz@FreeBSD.org> Subject: git: 52d4a4d4e0de - main - lib/libc/amd64/string/strcspn.S: fix behaviour with sets of 17--32 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 52d4a4d4e0dedc72bc33082a3f84c2d0fd6f2cbb Auto-Submitted: auto-generated The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/src/commit/?id=52d4a4d4e0dedc72bc33082a3f84c2d0fd6f2cbb commit 52d4a4d4e0dedc72bc33082a3f84c2d0fd6f2cbb Author: Robert Clausecker <fuz@FreeBSD.org> AuthorDate: 2023-09-11 23:56:30 +0000 Commit: Robert Clausecker <fuz@FreeBSD.org> CommitDate: 2023-09-12 02:58:43 +0000 lib/libc/amd64/string/strcspn.S: fix behaviour with sets of 17--32 When a string is matched against a set of 17--32 characters, each chunk of the string is matched first against the first 16 characters of the set and then against the remaining characters. We also check at the same time if the string has a nul byte in the current chunk, terminating the search if it does. Due to misconceived logic, the order of checks was "first half of set, nul byte, second half of set", meaning that a match with the second half of the set was ignored when the string ended in the same 16 bytes. Reverse the order of checks to fix this problem. Sponsored by: The FreeBSD Foundation Approved by: mjg (blanket, via IRC) MFC after: 1 week MFC to: stable/14 --- lib/libc/amd64/string/strcspn.S | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/libc/amd64/string/strcspn.S b/lib/libc/amd64/string/strcspn.S index de409db6d472..53100eeea9a5 100644 --- a/lib/libc/amd64/string/strcspn.S +++ b/lib/libc/amd64/string/strcspn.S @@ -259,27 +259,32 @@ ARCHENTRY(strcspn, x86_64_v2) movdqu 48(%rsp, %rcx, 1), %xmm3 # second part of set /* set is 17--32 bytes in size */ - pcmpistri $0, %xmm0, %xmm2 # match in head? - jbe .Lheadmatchv2 - pcmpistri $0, %xmm0, %xmm3 # ZF=1 not possible here + pcmpistri $0, %xmm0, %xmm2 # match in first set half? jb .Lheadmatchv2 + pcmpistri $0, %xmm0, %xmm3 # match in second set half or end of string? + jbe .Lheadmatchv2 ALIGN_TEXT 0: movdqa (%rax), %xmm0 pcmpistri $0, %xmm0, %xmm2 - jbe 1b + jb 2f # match in first set half? pcmpistri $0, %xmm0, %xmm3 - jb 1f # ZF=1 not possible here + jbe 1f # match in second set half or end of string? movdqa 16(%rax), %xmm0 add $32, %rax pcmpistri $0, %xmm0, %xmm2 - jbe 3b + jb 3f # match in first set half? pcmpistri $0, %xmm0, %xmm3 - jae 0b # ZF=1 not possible here + ja 0b # neither match in 2nd half nor string end? - sub $16, %rax # go back to second half -1: add %rcx, %rax - sub %rdi, %rax +3: lea -16(%rax), %rax # go back to second half +1: jc 2f # jump if match found + pxor %xmm1, %xmm1 + pcmpeqb %xmm1, %xmm0 # where is the NUL byte? + pmovmskb %xmm0, %ecx + tzcnt %ecx, %ecx # location of NUL byte in (%rax) +2: sub %rdi, %rax # offset of %xmm0 from beginning of string + add %rcx, %rax # prefix length before match/NUL leave ret From nobody Tue Sep 12 06:28:08 2023 X-Original-To: dev-commits-src-main@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 4RlDD83QL4z4swfl; Tue, 12 Sep 2023 06:28: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlDD82pgrz4M6n; Tue, 12 Sep 2023 06:28:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694500088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+uwhrrihibYX5hDWFin8HlESoqLRlzzJiaxFdSAO6hk=; b=ngejUKw4Z+p7h9doC5YzWFa2qb457xQXvmgb1RljuzRLpF7VzetA8AlOD1HllzP1KYRstI NH+pRDHm78qfEtQiO5WnuLw4eHKZgXyiUF59SnavNY5gM8tmKIgWKDvRkI/XsoY2g/52U2 V5yLqC93hzWEiiL1JK8VELQPnCDIkBI9NmWIe+w/O/Ra/QkGgrkBC7zrNB7BWqJrcaVisw B3Pg50DPnBneqJa0yV5k6aZnuiQIplolsZlq71tLKK/bDAoODWCcuU6LUVJw6vaAXZ7OxF VrGUTiIE4K3b/LXYdC9jFLfKpMwm5UrMvGo5XzycNs7ewIZaDI4F3w2iS/ZFKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694500088; a=rsa-sha256; cv=none; b=uOagV5RUu3o/rK6INZeBlpEKXZJElWqvyvosqZtNo3E7VhZ3CjlLpYaAGQlMx6FWjmFyu5 T9Jkg4yUuetlHtKCIP5M5wEdNv8tYEOuMLGe95VfAvrus/X82Q5UswVAJqy8XprnCvg6Yw 9d08s4UcI3HaZ7g1zkNIBDguNS14d4hS+qveJUKMKKS5iEp6oqmNmRfoZSVpIJVGEfZ7fw 9e1tNzAb5wKclYibY0BVlZzA5WCzjyqSZ3apQ3YcwEZ/7uyopUFgG8nwEo0OKvaO76alt9 15BFaG8iO0cY5jZLF+A8SplvGUJEdnSwGSjRkxOb8c0dkiU7RpAqQd3lDd7V9Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694500088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+uwhrrihibYX5hDWFin8HlESoqLRlzzJiaxFdSAO6hk=; b=qjGqmD1DaDCV/I65PH+7tQdnkDRYU1zHUjjT1jINvvszXVZ6I2KCWOQTkkCD2qvleCXW0x VALCrHSld2jY06RWok96rOU5oFVmAHNCL0WWdtyM9y6xyr17jeMpi0Ty6EilbPT59jpoe5 ieCGT3fWJH4uo6vtB3wQqxyF/+L4ioxdtQvN/3+0ZxbPzUsZ2REQsxAFgZK4Ww6Fz+icks 2wuFgpt1z/HSoiFUVAWXHtDyWKZhPLse/+J/Rh8kAkvnhKmTLmSjuTRF/8wxNv/wmE9FD5 sNyzb2jk9FhnzuAKNRWBjVeAa3rAaJBVI753Ss7/Z7kjyb9wiyqyxfJ5atXOKQ== 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 4RlDD81vZCz5qB; Tue, 12 Sep 2023 06:28:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38C6S8ov038742; Tue, 12 Sep 2023 06:28:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38C6S8n6038739; Tue, 12 Sep 2023 06:28:08 GMT (envelope-from git) Date: Tue, 12 Sep 2023 06:28:08 GMT Message-Id: <202309120628.38C6S8n6038739@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Xin LI <delphij@FreeBSD.org> Subject: git: 90474518912f - main - Disable byteswap.h for now. List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 90474518912f5e5f49bc5325b7f88e94eba64d6a Auto-Submitted: auto-generated The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=90474518912f5e5f49bc5325b7f88e94eba64d6a commit 90474518912f5e5f49bc5325b7f88e94eba64d6a Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2023-09-12 06:24:08 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2023-09-12 06:24:08 +0000 Disable byteswap.h for now. Ideally we should be testing __FreeBSD_version (1400079) and/or BOOTSTRAPPING from an older version, but restore compatibility to older FreeBSD versions and macOS while we find out a better way to fix it. --- lib/libmagic/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libmagic/config.h b/lib/libmagic/config.h index b842859fc2ab..232d801a6512 100644 --- a/lib/libmagic/config.h +++ b/lib/libmagic/config.h @@ -20,7 +20,7 @@ #define HAVE_ASPRINTF 1 /* Define to 1 if you have the <byteswap.h> header file. */ -#define HAVE_BYTESWAP_H 1 +/* #undef HAVE_BYTESWAP_H */ /* Define to 1 if you have the <bzlib.h> header file. */ /* #undef HAVE_BZLIB_H */ From nobody Tue Sep 12 06:44:29 2023 X-Original-To: dev-commits-src-main@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 4RlDb21P8hz4t6DV; Tue, 12 Sep 2023 06:44: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlDb20yZqz4V5L; Tue, 12 Sep 2023 06:44:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694501070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3gcmahwwtLiWSvEXotIDsF3W/wv+4YuOwlueMJG1fpk=; b=ck9CRWQP5JnWlBLM0LdBPTj2iKjI+EVSZ3UmnhYA5CIvIAKxEP8WQeOylYaZHdB0uh6bRd n/n6k+PD1yZ0EdeDetNSTc/x8o4WAtjatVPQONZS3i8Li8JyxkZWU9PP1iZgY9s/8wisqm oZW5pSZoy69HhIsOQZBsT1zAZQi2qw8RY3rmXG5fIf5Xbjf/9F+yBvGyEQfH19fPNsS5re njfMyT7QNQETSTjOz8ticyM6MGSLGoHzQYgmlFj8l9+GBiaLlBlbDgiBHxf0CoLHE0w4cl KXZLVZ1JVCm7jtwWrW6VNe/z4jmOGx2b/69GgLAUA9WR16ZwgeWw/eSXHS1+oA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694501070; a=rsa-sha256; cv=none; b=fqQiHXEB/FCLPesY6J4KHryzhKsDZfNSIJ2ux4w6KRhCVbbHGI5bOhAPJluk1gibgHcAFd zBVFBvKOpWIYIMNOYYj8TJZclo2K/4klNbsymSrlnJiJ0jsb2ns5XMomxuuVu2M0kdJnHN 7/sZtgAMHLv+pEL1bwc3jwCnie6VU/yWBLQ6F5Snw4n+IEgT42vO5EtxpbF8ezQwlsoaAe rHQAc3Q0uol6ttbAn5/NIpQyKQw3xRw/w20ppXOcR8AWPl4vZBPGTgaTLV9BI8jHsb6m6M P90tedhuq5Z+zwQqDBn3XEWDt8W+j6YR9WXP5XIel1/i6fqgkzahGZcdCvV6Uw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694501070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3gcmahwwtLiWSvEXotIDsF3W/wv+4YuOwlueMJG1fpk=; b=diYZITeDG1EIRqdknPNhIt7npVRS3v9cXmH4y+3HHGAYhZA+duaB5eSVyqLPTE9CpLJzHu 2LAEDQjNFYNnsuv2pHmVIjJry+Djnm4bZknQYvJkdPdPALlVCfni1yL9juMrUoiSF+M9s/ MZhAqV+UJxUTtKgXsGdiyYRP8GjrSJvLqwX+2BuseN1JJieOmhGrW5Be4TtRLg0AqGmhEL K0aWWFk5WLMkhRHjL5ZUI8+GH5lqe2+SbmtXUxQkTxAxulRoWcN752QpBQhF1YpMxotGgN zS12LvrNC+Qr58CpZhK51aSymJuPdXKl4YIkr8PqjFxHRxZh6zn5eBlwiNOSkg== 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 4RlDb2039fz6n4; Tue, 12 Sep 2023 06:44:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38C6iT6u071903; Tue, 12 Sep 2023 06:44:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38C6iT1T071900; Tue, 12 Sep 2023 06:44:29 GMT (envelope-from git) Date: Tue, 12 Sep 2023 06:44:29 GMT Message-Id: <202309120644.38C6iT1T071900@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Wolfram Schneider <wosch@FreeBSD.org> Subject: git: e47a47b2150f - main - no trailing dot (".") for FreeBSD releases PR: 273690 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wosch X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e47a47b2150f86216e6eca666d902ce20bd5031a Auto-Submitted: auto-generated The branch main has been updated by wosch: URL: https://cgit.FreeBSD.org/src/commit/?id=e47a47b2150f86216e6eca666d902ce20bd5031a commit e47a47b2150f86216e6eca666d902ce20bd5031a Author: Wolfram Schneider <wosch@FreeBSD.org> AuthorDate: 2023-09-12 06:42:47 +0000 Commit: Wolfram Schneider <wosch@FreeBSD.org> CommitDate: 2023-09-12 06:42:47 +0000 no trailing dot (".") for FreeBSD releases PR: 273690 --- share/man/man4/atopcase.4 | 2 +- share/man/man4/hconf.4 | 2 +- share/man/man4/hcons.4 | 2 +- share/man/man4/hgame.4 | 2 +- share/man/man4/hidbus.4 | 2 +- share/man/man4/hpen.4 | 2 +- share/man/man4/hsctrl.4 | 2 +- share/man/man4/iichid.4 | 2 +- share/man/man4/man4.powerpc/llan.4 | 2 +- share/man/man4/ps4dshock.4 | 2 +- share/man/man4/usbhid.4 | 2 +- share/man/man4/xb360gp.4 | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/share/man/man4/atopcase.4 b/share/man/man4/atopcase.4 index fc93b7094466..33e47ec64ee8 100644 --- a/share/man/man4/atopcase.4 +++ b/share/man/man4/atopcase.4 @@ -108,7 +108,7 @@ device node. The .Nm driver first appeared in -.Fx 14.0. +.Fx 14.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/hconf.4 b/share/man/man4/hconf.4 index b271434698d9..179d95a29832 100644 --- a/share/man/man4/hconf.4 +++ b/share/man/man4/hconf.4 @@ -77,7 +77,7 @@ Default is 0. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/hcons.4 b/share/man/man4/hcons.4 index 993425e5773e..6cdf0a7dc170 100644 --- a/share/man/man4/hcons.4 +++ b/share/man/man4/hcons.4 @@ -87,7 +87,7 @@ input event device node. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/hgame.4 b/share/man/man4/hgame.4 index 58f09e8f4d50..3309833c1720 100644 --- a/share/man/man4/hgame.4 +++ b/share/man/man4/hgame.4 @@ -91,7 +91,7 @@ input event device node. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/hidbus.4 b/share/man/man4/hidbus.4 index 8593d1d2c222..f8ebaca8d659 100644 --- a/share/man/man4/hidbus.4 +++ b/share/man/man4/hidbus.4 @@ -91,7 +91,7 @@ Default is 0. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/hpen.4 b/share/man/man4/hpen.4 index 64f4200b3b21..d3b69ff1b332 100644 --- a/share/man/man4/hpen.4 +++ b/share/man/man4/hpen.4 @@ -98,7 +98,7 @@ Pen battery charge level reporting is not supported. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/hsctrl.4 b/share/man/man4/hsctrl.4 index 64db32f09d41..fa8ae897e64c 100644 --- a/share/man/man4/hsctrl.4 +++ b/share/man/man4/hsctrl.4 @@ -87,7 +87,7 @@ input event device node. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/iichid.4 b/share/man/man4/iichid.4 index 62af1e57c6cc..02a91d7811a2 100644 --- a/share/man/man4/iichid.4 +++ b/share/man/man4/iichid.4 @@ -80,7 +80,7 @@ variables for tuning of sampling parameters. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/man4.powerpc/llan.4 b/share/man/man4/man4.powerpc/llan.4 index 45f08e7478d1..c32ddbca6a00 100644 --- a/share/man/man4/man4.powerpc/llan.4 +++ b/share/man/man4/man4.powerpc/llan.4 @@ -50,7 +50,7 @@ but these are not currently supported by the driver. The .Nm device driver appeared in -.Fx 10.0. +.Fx 10.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/ps4dshock.4 b/share/man/man4/ps4dshock.4 index a6d0df87af76..282a58c49e63 100644 --- a/share/man/man4/ps4dshock.4 +++ b/share/man/man4/ps4dshock.4 @@ -98,7 +98,7 @@ does not support force-feedback events. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/usbhid.4 b/share/man/man4/usbhid.4 index 156f53a051ea..c47afaff3534 100644 --- a/share/man/man4/usbhid.4 +++ b/share/man/man4/usbhid.4 @@ -75,7 +75,7 @@ Default is 0. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/xb360gp.4 b/share/man/man4/xb360gp.4 index a08063bef42d..4e8d4b65fcfd 100644 --- a/share/man/man4/xb360gp.4 +++ b/share/man/man4/xb360gp.4 @@ -84,7 +84,7 @@ input event device node. The .Nm driver first appeared in -.Fx 13.0. +.Fx 13.0 . .Sh AUTHORS .An -nosplit The From nobody Tue Sep 12 07:45:28 2023 X-Original-To: dev-commits-src-main@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 4RlFxN6RGQz4tf3c; Tue, 12 Sep 2023 07:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlFxN6FWZz3L6m; Tue, 12 Sep 2023 07:45:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694504728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i+gssaAm0IsdcfugEUZzTVMvRQTdZ4uMJ7z0uEKvD9s=; b=jdkzr2BtQbO2kZhRUBQmphMn2T2vuYrxWOce3ZynjMxsvFlSHk2iSRxasgTzT+Im3CARqG dX2AlwqT8DrAaqgcJQ4/4eUJd5C0zdCXxblkyzua4IbfMK6b4A7tw/SACyTP1/vulztoKL nChVs1lwG9ZoYd6OzBL90wkVKeX3kecbul4T8Do48QLIFJyQ+cw7vwTR4V0gbzThzZ8lwW UBfhONSBOTaY5kfQ6bTDAeBlJIhSL0+9kQkyA5z3a4SUuwQ02i9IFPo4895OIgGeqbD87u /QVFOT43F+HU1DZm+Sy/ch5/k1dXrCeAbeY+eQSduhRydppEoZDHj7D8yMAvKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694504728; a=rsa-sha256; cv=none; b=XcWjfJ7DAMsZXlAsYRZMi1gjEti9ATFtw7BF3yabsXLDzpwnDx8Saxic45QC55j8/c8o+h VGLe+FGPvDuNAybKlZQwcxDvZRxTg8dbX76fu28fwPnIlLxoD/w02bwJx13WZ7hi4YqZSs GKKMPcuQ/Wwi0YV9g8YTV6aMI7b6iTPuuU98VjlBYY553+L4Y3FXPuBDwKkLwVos71dLck SrkTexIakrmnjtZTsyxOreiqdHo7hM24C8k7M4g7ORlXn6Q+PoT0P5FPak02tZFciN85IW GQEeJp0YRvEX7IW4G9S+rtOBJAoZISrwgib8kmpa8T3Qr9Um9rUeUKRj+tgYwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694504728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i+gssaAm0IsdcfugEUZzTVMvRQTdZ4uMJ7z0uEKvD9s=; b=qA3s1b8iBbjREtZcfXlL//gVi1u/uxb29eDiWQSqzQ593pNAMdM619p07tF7YGqx8LV0as OEQRMitENe1HcwWjDEAw4Uvc8bar5+p0dhOBQtv/rBtqkQiVl1mr4nsX6sfUpz6ewiMWRy Bp37ctTPuof+Y3m7ARlG3vTtQIOhXEYUjEZsIZ48t37mfQ9wJvqzeIXwzwOVM6R3g9dSEn DHOAWKqvKPutjL29cRY36MAHCo36Kr75Yn6S3+SMH8a65zeh5olusZ7wSSxjlLb1zrta13 NaCQd1MWCmwpf+JqAu7SWWmwOwMp0Y+SEKLhg6OCKaRizeB/58t/bbSTYvLmew== 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 4RlFxN5JDfz86x; Tue, 12 Sep 2023 07:45:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38C7jSmM071510; Tue, 12 Sep 2023 07:45:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38C7jSmp071507; Tue, 12 Sep 2023 07:45:28 GMT (envelope-from git) Date: Tue, 12 Sep 2023 07:45:28 GMT Message-Id: <202309120745.38C7jSmp071507@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore <dougm@FreeBSD.org> Subject: git: 429c871dddda - main - radix_trie: have vm_radix use pctrie code List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5 commit 429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5 Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2023-09-12 07:42:38 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2023-09-12 07:42:38 +0000 radix_trie: have vm_radix use pctrie code Implement everything currently in vm_radix.c with calls to functions in subr_pctrie.c, asccessed via the interface provided by the DEFINE_PCTRIE_SMR macro. Add back some #includes removed in the first attempt, and avoid the use of a discontinued type in a bit of conditionally compiled code. Reviewed by: alc, markj Tested by: pho Differential Revision: https://reviews.freebsd.org/D41344 --- sys/vm/_vm_radix.h | 9 +- sys/vm/vm_radix.c | 692 +---------------------------------------------------- sys/vm/vm_radix.h | 114 +++++++-- 3 files changed, 111 insertions(+), 704 deletions(-) diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h index 01eb25a9dccf..2d9b05c7b52a 100644 --- a/sys/vm/_vm_radix.h +++ b/sys/vm/_vm_radix.h @@ -31,16 +31,13 @@ #ifndef __VM_RADIX_H_ #define __VM_RADIX_H_ -/* - * Radix tree node. - */ -struct vm_radix_node; +#include <sys/_pctrie.h> /* - * Radix tree root. + * Radix tree */ struct vm_radix { - struct vm_radix_node *rt_root; + struct pctrie rt_trie; }; #endif /* !__VM_RADIX_H_ */ diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c index 768a56ed76f7..57c39d8d89d7 100644 --- a/sys/vm/vm_radix.c +++ b/sys/vm/vm_radix.c @@ -57,6 +57,7 @@ #include <sys/systm.h> #include <sys/kernel.h> #include <sys/libkern.h> +#include <sys/pctrie.h> #include <sys/proc.h> #include <sys/vmmeter.h> #include <sys/smr.h> @@ -64,292 +65,21 @@ #include <vm/uma.h> #include <vm/vm.h> -#include <vm/vm_param.h> -#include <vm/vm_object.h> -#include <vm/vm_page.h> #include <vm/vm_radix.h> -#ifdef DDB -#include <ddb/ddb.h> -#endif - -/* - * These widths should allow the pointers to a node's children to fit within - * a single cache line. The extra levels from a narrow width should not be - * a problem thanks to path compression. - */ -#ifdef __LP64__ -#define VM_RADIX_WIDTH 4 -#else -#define VM_RADIX_WIDTH 3 -#endif - -#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH) -#define VM_RADIX_MASK (VM_RADIX_COUNT - 1) -#define VM_RADIX_LIMIT \ - (howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1) - -#if VM_RADIX_WIDTH == 3 -typedef uint8_t rn_popmap_t; -#elif VM_RADIX_WIDTH == 4 -typedef uint16_t rn_popmap_t; -#elif VM_RADIX_WIDTH == 5 -typedef uint32_t rn_popmap_t; -#else -#error Unsupported width -#endif -_Static_assert(sizeof(rn_popmap_t) <= sizeof(int), - "rn_popmap_t too wide"); - -/* Set of all flag bits stored in node pointers. */ -#define VM_RADIX_FLAGS (VM_RADIX_ISLEAF) -#define VM_RADIX_PAD VM_RADIX_FLAGS - -enum vm_radix_access { SMR, LOCKED, UNSERIALIZED }; - -struct vm_radix_node; -typedef SMR_POINTER(struct vm_radix_node *) smrnode_t; - -struct vm_radix_node { - vm_pindex_t rn_owner; /* Owner of record. */ - rn_popmap_t rn_popmap; /* Valid children. */ - uint8_t rn_clev; /* Level * WIDTH. */ - smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */ -}; - static uma_zone_t vm_radix_node_zone; -static smr_t vm_radix_smr; - -static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, - enum vm_radix_access access); - -/* - * Map index to an array position for the children of rnode, - */ -static __inline int -vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index) -{ - return ((index >> rnode->rn_clev) & VM_RADIX_MASK); -} - -/* - * Returns true if index does not belong to the specified rnode. Otherwise, - * sets slot value, and returns false. - */ -static __inline bool -vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot) -{ - index = (index - rnode->rn_owner) >> rnode->rn_clev; - if (index >= VM_RADIX_COUNT) - return (true); - *slot = index; - return (false); -} - -/* - * Allocate a radix node. - */ -static struct vm_radix_node * -vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind) -{ - struct vm_radix_node *rnode; - - rnode = uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT); - if (rnode == NULL) - return (NULL); - - /* - * We want to clear the last child pointer after the final section - * has exited so lookup can not return false negatives. It is done - * here because it will be cache-cold in the dtor callback. - */ - if (rnode->rn_popmap != 0) { - vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1], - VM_RADIX_NULL, UNSERIALIZED); - rnode->rn_popmap = 0; - } - - /* - * From the highest-order bit where the indexes differ, - * compute the highest level in the trie where they differ. Then, - * compute the least index of this subtrie. - */ - KASSERT(index != newind, ("%s: passing the same key value %jx", - __func__, (uintmax_t)index)); - _Static_assert(sizeof(long long) >= sizeof(vm_pindex_t), - "vm_pindex_t too wide"); - _Static_assert(sizeof(vm_pindex_t) * NBBY <= - (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow"); - rnode->rn_clev = rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH); - rnode->rn_owner = VM_RADIX_COUNT; - rnode->rn_owner = index & -(rnode->rn_owner << rnode->rn_clev); - return (rnode); -} - -/* - * Free radix node. - */ -static __inline void -vm_radix_node_put(struct vm_radix_node *rnode) -{ -#ifdef INVARIANTS - int slot; - - KASSERT(powerof2(rnode->rn_popmap), - ("vm_radix_node_put: rnode %p has too many children %04x", rnode, - rnode->rn_popmap)); - for (slot = 0; slot < VM_RADIX_COUNT; slot++) { - if ((rnode->rn_popmap & (1 << slot)) != 0) - continue; - KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) == - VM_RADIX_NULL, - ("vm_radix_node_put: rnode %p has a child", rnode)); - } -#endif - uma_zfree_smr(vm_radix_node_zone, rnode); -} - -/* - * Fetch a node pointer from a slot in another node. - */ -static __inline struct vm_radix_node * -vm_radix_node_load(smrnode_t *p, enum vm_radix_access access) -{ - - switch (access) { - case UNSERIALIZED: - return (smr_unserialized_load(p, true)); - case LOCKED: - return (smr_serialized_load(p, true)); - case SMR: - return (smr_entered_load(p, vm_radix_smr)); - } - __assert_unreachable(); -} - -static __inline void -vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, - enum vm_radix_access access) -{ - - switch (access) { - case UNSERIALIZED: - smr_unserialized_store(p, v, true); - break; - case LOCKED: - smr_serialized_store(p, v, true); - break; - case SMR: - panic("vm_radix_node_store: Not supported in smr section."); - } -} - -/* - * Get the root node for a radix tree. - */ -static __inline struct vm_radix_node * -vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access) -{ +smr_t vm_radix_smr; - return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access)); -} - -/* - * Set the root node for a radix tree. - */ -static __inline void -vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode, - enum vm_radix_access access) -{ - - vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access); -} - -/* - * Returns TRUE if the specified radix node is a leaf and FALSE otherwise. - */ -static __inline bool -vm_radix_isleaf(struct vm_radix_node *rnode) -{ - - return (((uintptr_t)rnode & VM_RADIX_ISLEAF) != 0); -} - -/* - * Returns page cast to radix node with leaf bit set. - */ -static __inline struct vm_radix_node * -vm_radix_toleaf(vm_page_t page) -{ - return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF)); -} - -/* - * Returns the associated page extracted from rnode. - */ -static __inline vm_page_t -vm_radix_topage(struct vm_radix_node *rnode) -{ - - return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS)); -} - -/* - * Make 'child' a child of 'rnode'. - */ -static __inline void -vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index, - struct vm_radix_node *child, enum vm_radix_access access) -{ - int slot; - - slot = vm_radix_slot(rnode, index); - vm_radix_node_store(&rnode->rn_child[slot], child, access); - rnode->rn_popmap ^= 1 << slot; - KASSERT((rnode->rn_popmap & (1 << slot)) != 0, - ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); -} - -/* - * Internal helper for vm_radix_reclaim_allnodes(). - * This function is recursive. - */ -static void -vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode) +void * +vm_radix_node_alloc(struct pctrie *ptree) { - struct vm_radix_node *child; - int slot; - - while (rnode->rn_popmap != 0) { - slot = ffs(rnode->rn_popmap) - 1; - child = vm_radix_node_load(&rnode->rn_child[slot], - UNSERIALIZED); - KASSERT(child != VM_RADIX_NULL, - ("%s: bad popmap slot %d in rnode %p", - __func__, slot, rnode)); - if (!vm_radix_isleaf(child)) - vm_radix_reclaim_allnodes_int(child); - rnode->rn_popmap ^= 1 << slot; - vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, - UNSERIALIZED); - } - vm_radix_node_put(rnode); + return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT)); } -/* - * radix node zone initializer. - */ -static int -vm_radix_zone_init(void *mem, int size, int flags) +void +vm_radix_node_free(struct pctrie *ptree, void *node) { - struct vm_radix_node *rnode; - - rnode = mem; - rnode->rn_popmap = 0; - for (int i = 0; i < nitems(rnode->rn_child); i++) - vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL, - UNSERIALIZED); - return (0); + uma_zfree_smr(vm_radix_node_zone, node); } #ifndef UMA_MD_SMALL_ALLOC @@ -371,7 +101,7 @@ vm_radix_reserve_kva(void) */ if (!uma_zone_reserve_kva(vm_radix_node_zone, ((vm_paddr_t)vm_cnt.v_page_count * PAGE_SIZE) / (PAGE_SIZE + - sizeof(struct vm_radix_node)))) + pctrie_node_size())) panic("%s: unable to reserve KVA", __func__); } #endif @@ -383,412 +113,14 @@ void vm_radix_zinit(void) { - vm_radix_node_zone = uma_zcreate("RADIX NODE", - sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL, - VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); + vm_radix_node_zone = uma_zcreate("RADIX NODE", pctrie_node_size(), + NULL, NULL, pctrie_zone_init, NULL, + PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR); vm_radix_smr = uma_zone_get_smr(vm_radix_node_zone); } -/* - * Inserts the key-value pair into the trie. - * Panics if the key already exists. - */ -int -vm_radix_insert(struct vm_radix *rtree, vm_page_t page) -{ - vm_pindex_t index, newind; - struct vm_radix_node *leaf, *parent, *rnode; - smrnode_t *parentp; - int slot; - - index = page->pindex; - leaf = vm_radix_toleaf(page); - - /* - * The owner of record for root is not really important because it - * will never be used. - */ - rnode = vm_radix_root_load(rtree, LOCKED); - parent = NULL; - for (;;) { - if (vm_radix_isleaf(rnode)) { - if (rnode == VM_RADIX_NULL) { - if (parent == NULL) - rtree->rt_root = leaf; - else - vm_radix_addnode(parent, index, leaf, - LOCKED); - return (0); - } - newind = vm_radix_topage(rnode)->pindex; - if (newind == index) - panic("%s: key %jx is already present", - __func__, (uintmax_t)index); - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) { - newind = rnode->rn_owner; - break; - } - parent = rnode; - rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - - /* - * A new node is needed because the right insertion level is reached. - * Setup the new intermediate node and add the 2 children: the - * new object and the older edge or object. - */ - parentp = (parent != NULL) ? &parent->rn_child[slot]: - (smrnode_t *)&rtree->rt_root; - parent = vm_radix_node_get(index, newind); - if (parent == NULL) - return (ENOMEM); - /* These writes are not yet visible due to ordering. */ - vm_radix_addnode(parent, index, leaf, UNSERIALIZED); - vm_radix_addnode(parent, newind, rnode, UNSERIALIZED); - /* Serializing write to make the above visible. */ - vm_radix_node_store(parentp, parent, LOCKED); - return (0); -} - -/* - * Returns the value stored at the index. If the index is not present, - * NULL is returned. - */ -static __always_inline vm_page_t -_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index, - enum vm_radix_access access) -{ - struct vm_radix_node *rnode; - vm_page_t m; - int slot; - - rnode = vm_radix_root_load(rtree, access); - for (;;) { - if (vm_radix_isleaf(rnode)) { - if ((m = vm_radix_topage(rnode)) != NULL && - m->pindex == index) - return (m); - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) - break; - rnode = vm_radix_node_load(&rnode->rn_child[slot], access); - } - return (NULL); -} - -/* - * Returns the value stored at the index assuming there is an external lock. - * - * If the index is not present, NULL is returned. - */ -vm_page_t -vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) -{ - - return _vm_radix_lookup(rtree, index, LOCKED); -} - -/* - * Returns the value stored at the index without requiring an external lock. - * - * If the index is not present, NULL is returned. - */ -vm_page_t -vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) -{ - vm_page_t m; - - smr_enter(vm_radix_smr); - m = _vm_radix_lookup(rtree, index, SMR); - smr_exit(vm_radix_smr); - - return (m); -} - -/* - * Returns the page with the least pindex that is greater than or equal to the - * specified pindex, or NULL if there are no such pages. - * - * Requires that access be externally synchronized by a lock. - */ -vm_page_t -vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) -{ - struct vm_radix_node *rnode, *succ; - vm_page_t m; - int slot; - - /* - * Descend the trie as if performing an ordinary lookup for the page - * with the specified pindex. However, unlike an ordinary lookup, as we - * descend the trie, we use "succ" to remember the last branching-off - * point, that is, the interior node under which the page with the least - * pindex that is both outside our current path down the trie and more - * than the specified pindex resides. (The node's popmap makes it fast - * and easy to recognize a branching-off point.) If our ordinary lookup - * fails to yield a page with a pindex that is greater than or equal to - * the specified pindex, then we will exit this loop and perform a - * lookup starting from "succ". If "succ" is not NULL, then that lookup - * is guaranteed to succeed. - */ - rnode = vm_radix_root_load(rtree, LOCKED); - succ = NULL; - for (;;) { - if (vm_radix_isleaf(rnode)) { - if ((m = vm_radix_topage(rnode)) != NULL && - m->pindex >= index) - return (m); - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) { - /* - * If all pages in this subtree have pindex > index, - * then the page in this subtree with the least pindex - * is the answer. - */ - if (rnode->rn_owner > index) - succ = rnode; - break; - } - - /* - * Just in case the next search step leads to a subtree of all - * pages with pindex < index, check popmap to see if a next - * bigger step, to a subtree of all pages with pindex > index, - * is available. If so, remember to restart the search here. - */ - if ((rnode->rn_popmap >> slot) > 1) - succ = rnode; - rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - - /* - * Restart the search from the last place visited in the subtree that - * included some pages with pindex > index, if there was such a place. - */ - if (succ == NULL) - return (NULL); - if (succ != rnode) { - /* - * Take a step to the next bigger sibling of the node chosen - * last time. In that subtree, all pages have pindex > index. - */ - slot = vm_radix_slot(succ, index) + 1; - KASSERT((succ->rn_popmap >> slot) != 0, - ("%s: no popmap siblings past slot %d in node %p", - __func__, slot, succ)); - slot += ffs(succ->rn_popmap >> slot) - 1; - succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED); - } - - /* - * Find the page in the subtree rooted at "succ" with the least pindex. - */ - while (!vm_radix_isleaf(succ)) { - KASSERT(succ->rn_popmap != 0, - ("%s: no popmap children in node %p", __func__, succ)); - slot = ffs(succ->rn_popmap) - 1; - succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED); - } - return (vm_radix_topage(succ)); -} - -/* - * Returns the page with the greatest pindex that is less than or equal to the - * specified pindex, or NULL if there are no such pages. - * - * Requires that access be externally synchronized by a lock. - */ -vm_page_t -vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) -{ - struct vm_radix_node *pred, *rnode; - vm_page_t m; - int slot; - - /* - * Mirror the implementation of vm_radix_lookup_ge, described above. - */ - rnode = vm_radix_root_load(rtree, LOCKED); - pred = NULL; - for (;;) { - if (vm_radix_isleaf(rnode)) { - if ((m = vm_radix_topage(rnode)) != NULL && - m->pindex <= index) - return (m); - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) { - if (rnode->rn_owner < index) - pred = rnode; - break; - } - if ((rnode->rn_popmap & ((1 << slot) - 1)) != 0) - pred = rnode; - rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - if (pred == NULL) - return (NULL); - if (pred != rnode) { - slot = vm_radix_slot(pred, index); - KASSERT((pred->rn_popmap & ((1 << slot) - 1)) != 0, - ("%s: no popmap siblings before slot %d in node %p", - __func__, slot, pred)); - slot = fls(pred->rn_popmap & ((1 << slot) - 1)) - 1; - pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED); - } - while (!vm_radix_isleaf(pred)) { - KASSERT(pred->rn_popmap != 0, - ("%s: no popmap children in node %p", __func__, pred)); - slot = fls(pred->rn_popmap) - 1; - pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED); - } - return (vm_radix_topage(pred)); -} - -/* - * Remove the specified index from the trie, and return the value stored at - * that index. If the index is not present, return NULL. - */ -vm_page_t -vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) -{ - struct vm_radix_node *child, *parent, *rnode; - vm_page_t m; - int slot; - - rnode = NULL; - child = vm_radix_root_load(rtree, LOCKED); - for (;;) { - if (vm_radix_isleaf(child)) - break; - parent = rnode; - rnode = child; - slot = vm_radix_slot(rnode, index); - child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - if ((m = vm_radix_topage(child)) == NULL || m->pindex != index) - return (NULL); - if (rnode == NULL) { - vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED); - return (m); - } - KASSERT((rnode->rn_popmap & (1 << slot)) != 0, - ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); - rnode->rn_popmap ^= 1 << slot; - vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED); - if (!powerof2(rnode->rn_popmap)) - return (m); - KASSERT(rnode->rn_popmap != 0, ("%s: bad popmap all zeroes", __func__)); - slot = ffs(rnode->rn_popmap) - 1; - child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - KASSERT(child != VM_RADIX_NULL, - ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode)); - if (parent == NULL) - vm_radix_root_store(rtree, child, LOCKED); - else { - slot = vm_radix_slot(parent, index); - KASSERT(rnode == - vm_radix_node_load(&parent->rn_child[slot], LOCKED), - ("%s: invalid child value", __func__)); - vm_radix_node_store(&parent->rn_child[slot], child, LOCKED); - } - /* - * The child is still valid and we can not zero the - * pointer until all smr references are gone. - */ - vm_radix_node_put(rnode); - return (m); -} - -/* - * Remove and free all the nodes from the radix tree. - * This function is recursive but there is a tight control on it as the - * maximum depth of the tree is fixed. - */ -void -vm_radix_reclaim_allnodes(struct vm_radix *rtree) -{ - struct vm_radix_node *root; - - root = vm_radix_root_load(rtree, LOCKED); - if (root == VM_RADIX_NULL) - return; - vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED); - if (!vm_radix_isleaf(root)) - vm_radix_reclaim_allnodes_int(root); -} - -/* - * Replace an existing page in the trie with another one. - * Panics if there is not an old page in the trie at the new page's index. - */ -vm_page_t -vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) -{ - struct vm_radix_node *leaf, *parent, *rnode; - vm_page_t m; - vm_pindex_t index; - int slot; - - leaf = vm_radix_toleaf(newpage); - index = newpage->pindex; - rnode = vm_radix_root_load(rtree, LOCKED); - parent = NULL; - for (;;) { - if (vm_radix_isleaf(rnode)) { - if ((m = vm_radix_topage(rnode)) != NULL && - m->pindex == index) { - if (parent == NULL) - rtree->rt_root = leaf; - else - vm_radix_node_store( - &parent->rn_child[slot], leaf, - LOCKED); - return (m); - } - break; - } - if (vm_radix_keybarr(rnode, index, &slot)) - break; - parent = rnode; - rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); - } - panic("%s: original replacing page not found", __func__); -} - void vm_radix_wait(void) { uma_zwait(vm_radix_node_zone); } - -#ifdef DDB -/* - * Show details about the given radix node. - */ -DB_SHOW_COMMAND(radixnode, db_show_radixnode) -{ - struct vm_radix_node *rnode, *tmp; - int slot; - rn_popmap_t popmap; - - if (!have_addr) - return; - rnode = (struct vm_radix_node *)addr; - db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n", - (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap, - rnode->rn_clev / VM_RADIX_WIDTH); - for (popmap = rnode->rn_popmap; popmap != 0; popmap ^= 1 << slot) { - slot = ffs(popmap) - 1; - tmp = vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED); - db_printf("slot: %d, val: %p, page: %p, clev: %d\n", - slot, (void *)tmp, - vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL, - rnode->rn_clev / VM_RADIX_WIDTH); - } -} -#endif /* DDB */ diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h index 231edda65102..815c915b5fb1 100644 --- a/sys/vm/vm_radix.h +++ b/sys/vm/vm_radix.h @@ -34,36 +34,114 @@ #include <vm/_vm_radix.h> #ifdef _KERNEL +#include <sys/pctrie.h> +#include <vm/vm_page.h> +#include <vm/vm.h> -int vm_radix_insert(struct vm_radix *rtree, vm_page_t page); void vm_radix_wait(void); -vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index); -vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index); -vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index); -vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index); -void vm_radix_reclaim_allnodes(struct vm_radix *rtree); -vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index); -vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage); void vm_radix_zinit(void); - -/* - * Each search path in the trie terminates at a leaf, which is a pointer to a - * page marked with a set 1-bit. A leaf may be associated with a null pointer - * to indicate no page there. - */ -#define VM_RADIX_ISLEAF 0x1 -#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF +void *vm_radix_node_alloc(struct pctrie *ptree); +void vm_radix_node_free(struct pctrie *ptree, void *node); +extern smr_t vm_radix_smr; static __inline void vm_radix_init(struct vm_radix *rtree) { - rtree->rt_root = VM_RADIX_NULL; + pctrie_init(&rtree->rt_trie); } static __inline bool vm_radix_is_empty(struct vm_radix *rtree) { - return (rtree->rt_root == VM_RADIX_NULL); + return (pctrie_is_empty(&rtree->rt_trie)); +} + +PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix_node_free, + vm_radix_smr); + +/* + * Inserts the key-value pair into the trie. + * Panics if the key already exists. + */ +static __inline int +vm_radix_insert(struct vm_radix *rtree, vm_page_t page) +{ + return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page)); +} + +/* + * Returns the value stored at the index assuming there is an external lock. + * + * If the index is not present, NULL is returned. + */ +static __inline vm_page_t +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index)); +} + +/* + * Returns the value stored at the index without requiring an external lock. + * + * If the index is not present, NULL is returned. + */ +static __inline vm_page_t +vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index)); +} + +/* + * Returns the page with the least pindex that is greater than or equal to the + * specified pindex, or NULL if there are no such pages. + * + * Requires that access be externally synchronized by a lock. + */ +static __inline vm_page_t +vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index)); +} + +/* + * Returns the page with the greatest pindex that is less than or equal to the + * specified pindex, or NULL if there are no such pages. + * + * Requires that access be externally synchronized by a lock. + */ +static __inline vm_page_t +vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index)); +} + +/* + * Remove the specified index from the trie, and return the value stored at + * that index. If the index is not present, return NULL. + */ +static __inline vm_page_t +vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) +{ + return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index)); +} + +/* + * Remove and free all the nodes from the radix tree. + */ +static __inline void +vm_radix_reclaim_allnodes(struct vm_radix *rtree) +{ + VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie); +} + +/* + * Replace an existing page in the trie with another one. + * Panics if there is not an old page in the trie at the new page's index. + */ +static __inline vm_page_t +vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) +{ + return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage)); } #endif /* _KERNEL */ From nobody Tue Sep 12 09:21:30 2023 X-Original-To: dev-commits-src-main@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 4RlJ4C0jt1z4tFmt; Tue, 12 Sep 2023 09: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlJ4C0HkBz4GPV; Tue, 12 Sep 2023 09:21:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694510491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n+zGZHMY1F7/arPjqaEy8XiKKl6lStTfAb6Uy5+N4KQ=; b=PDe1IxHXzG1BFHxCN89LlpXImLyv6GSMeLtEX/rjBhnCzTvVxMoniFX586/nCOHf2m/yUB Z6w0hyjjV6HeJjXPlH8ZdzkSNWOFSC6kvTeG1jh70O7fhrZDfC5M8FMqYu+T0t4gFn4bII tQETUZdlUsluI4bI6FSHhU9hQ/N8BTo6F33vAkozeQVlmPK4kng8/U/4Gj6SgnB3CfStEe REjWeNwI4YDh0sYl9pkL2RYgMSQo+ZdtVbIdhEhJjJQGcdNIem2bpJHoSML+dc8hdPjl5o 51hJ9vOTYA7fmuwq2xME20sws5bYaLbot2hlLD475yo0zNAr/wPsMmt3WaKWOQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694510491; a=rsa-sha256; cv=none; b=hg2ObkTHJAheF+71ncEP4bmhpM4aJVEDVaHRpxK2j2KaezC/cBNqIbVrK8ChP/5e785n5f JMxqcfdEH5NbSp8ZMSPLG/WcePRFwHfWnQf0AKZP86aR++eJeAAs1BfvHO5ZJXyKfc0koP zVfUs5xes07Ti8vWVYq6v2xu7o/Y6b4wOvlHUz1k3tcIeh8rDVPI3y74RZzNdXVWXsdOA7 R43HcxPw7oJKGzreyiAbzl4bq8pwPxRtL2qrYdIG/k4iAFoE72BRZ/W+UKSEeS3378uTwV LgX2/L2yrJJ0/lqq67qbPRCgcmArC0JWoRitUuDFE/wF2qyhFTmiZI0FgixsxQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694510491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n+zGZHMY1F7/arPjqaEy8XiKKl6lStTfAb6Uy5+N4KQ=; b=cJwQXm1fB4xvtmqe1hi6tQSqBSjXact2cnmHMGXSAQvNVsyiP3PVXgMt94MXfj2Ollf+yk +lACchSiBKRDLdM/c29foBjfMhRDwInNLeLgGj4hO6hMJ1Gz3DXvKu+xEZd9uUJBcTSRRb CCaUWgtOnM0CJjTof+mfz2EOhb8hNzle9zOzaRNj1qzBgUO1J+N77/xL9M0vCEYw4CfJpL Y1QvZBfISaKMq+vPsV9swJf6PtXo8d9OvIvBGO4oxjejw5Ajioh2ruPuddTf1WMzjTgcPt qwoc2F7+q2yRBKQmGDpbIY7SCVMdo7zSrbdO2A6KDfpBKks3CnV+OG2LAiaGUA== 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 4RlJ4B6TFmzBWg; Tue, 12 Sep 2023 09:21:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38C9LUwp032308; Tue, 12 Sep 2023 09:21:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38C9LUpI032305; Tue, 12 Sep 2023 09:21:30 GMT (envelope-from git) Date: Tue, 12 Sep 2023 09:21:30 GMT Message-Id: <202309120921.38C9LUpI032305@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore <dougm@FreeBSD.org> Subject: git: 10db91ecec98 - main - vm_radix: add a missing paren List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 10db91ecec98b151046c8c5dce63b2995910fb1b Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=10db91ecec98b151046c8c5dce63b2995910fb1b commit 10db91ecec98b151046c8c5dce63b2995910fb1b Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2023-09-12 09:19:51 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2023-09-12 09:19:51 +0000 vm_radix: add a missing paren 429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5 left parens unbalanced in a powerpc case that my testing missed. Restore balance. Reported by: jenkins --- sys/vm/vm_radix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c index 57c39d8d89d7..cfc5a82eacc8 100644 --- a/sys/vm/vm_radix.c +++ b/sys/vm/vm_radix.c @@ -101,7 +101,7 @@ vm_radix_reserve_kva(void) */ if (!uma_zone_reserve_kva(vm_radix_node_zone, ((vm_paddr_t)vm_cnt.v_page_count * PAGE_SIZE) / (PAGE_SIZE + - pctrie_node_size())) + pctrie_node_size()))) panic("%s: unable to reserve KVA", __func__); } #endif From nobody Tue Sep 12 10:37:56 2023 X-Original-To: dev-commits-src-main@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 4RlKmN60yxz4sx7b; Tue, 12 Sep 2023 10:37:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlKmN5ZsWz4bW1; Tue, 12 Sep 2023 10:37:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694515076; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SvW+uw2+drm4rVCELkCd5ev0EpxCoc0T4j6R07ThxY4=; b=MI+G5j3rD2aWj2TaD+MFGhYMMAgrGHZWh0QYEco3E1pf9FKXiKG6nHK1xt+9tQ2ibuhxle qdhPKuPl+m5rKFKb5oZa/7J3iltMC47Re5/0llVrl+BAqULJQr8tmSeqiuff7VIXN+AayI s2/UB9wj5B95LtkPirD58oc19dZE8pOauKCiW+dxuT/UZJzOZ5FUdw/WhZrqhiW73KZD9J UvdwbNk5lzDdNkVwP8/wKl+MRcAHDeYHsjdwY712qq59NAQ+iTgls7ThgBJp53oEZJyfYD hXPTM4cOHBrkTa1yyWrKrRmvw9a/hlWPcw3vMAncJf0tFWcyJYgmAFbNTChxrg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694515076; a=rsa-sha256; cv=none; b=e1uPr9mqy0HrGsWxyai6uiS3nv3uLECHkL24utiESPwtk3YoE9nHHhK0BvbOzHTQ/X07Mz cGys2J8kYNaLN8wnM/lMOpBm+XeHd6zfnPiyD4e5wuVKQuf957/5xi9ePBk4v0hGSwalo4 eDJsoUMnK5OGlg03a4+GIxRLNMDPJNZBwkvhJtww05i1GPTa2DFHnn7OhJLmMi6iTXNBjy 5dN/2bl8rRd/gs1fSgAEyihwyouC6au2i3ycUDJMmhzcphxxPNaepVle+eFkYRU5pcLgSi 0d373kjuRE+sE2nCCx6v0zrKnkk+f1YVeblOeA8v1Npu13l2E7GJiH8TZqCxug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694515076; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SvW+uw2+drm4rVCELkCd5ev0EpxCoc0T4j6R07ThxY4=; b=uYpXzr1wrtME5JswKfJVocX8YweR6e9MAiFXlCIDCgqWteL6M5xnYXLeCu4b+FhlMN4IZa IyqQ5AlrIERloRt8H1+5AVnp1s2WnjVfh3Z+3zuFWitOscwQCGkldHOdVbNyJ/DEg00MYI KXEzpCY4vNtlWGHIU1gKipoBzE2Ml6GCo/t9sUYHG8L53TQPitq/yn+F7dmopG9LogEL37 Y7UNpsJ3DnYZdRwOw5BP7qM+FBQFRKUMM88zWOeTFUzG7yFBTzcO5q/HlCbi3vy6E5tgjf RikOYfujRIjc8qi4ogC0FyI0xB+pK0MyUo8lrN/ASE3PY12Au/pzL2e8b4Le9Q== 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 4RlKmN4YBVzCdX; Tue, 12 Sep 2023 10:37:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CAbu61053849; Tue, 12 Sep 2023 10:37:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CAbuNm053846; Tue, 12 Sep 2023 10:37:56 GMT (envelope-from git) Date: Tue, 12 Sep 2023 10:37:56 GMT Message-Id: <202309121037.38CAbuNm053846@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dmitry Chagin <dchagin@FreeBSD.org> Subject: git: d0266fbab9b8 - main - linux(4): Cleanup dummy syscall list on arm64 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d0266fbab9b8eafc1aedffbedf66dedb4774794c Auto-Submitted: auto-generated The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=d0266fbab9b8eafc1aedffbedf66dedb4774794c commit d0266fbab9b8eafc1aedffbedf66dedb4774794c Author: Dmitry Chagin <dchagin@FreeBSD.org> AuthorDate: 2023-09-12 10:37:45 +0000 Commit: Dmitry Chagin <dchagin@FreeBSD.org> CommitDate: 2023-09-12 10:37:45 +0000 linux(4): Cleanup dummy syscall list on arm64 These syscalls do not exist on arm64 Linux. MFC after: 1 week --- sys/arm64/linux/linux_dummy_machdep.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sys/arm64/linux/linux_dummy_machdep.c b/sys/arm64/linux/linux_dummy_machdep.c index d38cea2ff1a4..a7a7795f573d 100644 --- a/sys/arm64/linux/linux_dummy_machdep.c +++ b/sys/arm64/linux/linux_dummy_machdep.c @@ -42,11 +42,6 @@ LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE); * Before adding new stubs to this file, please check if a stub can be added to * the machine-independent code in sys/compat/linux/linux_dummy.c. */ - -UNIMPLEMENTED(get_thread_area); -UNIMPLEMENTED(set_thread_area); -UNIMPLEMENTED(uselib); - DUMMY(mq_open); DUMMY(mq_unlink); DUMMY(mq_timedsend); From nobody Tue Sep 12 12:23:53 2023 X-Original-To: dev-commits-src-main@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 4RlN6f16Qwz4sTQl; Tue, 12 Sep 2023 12:23: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlN6f0gr9z3ZLn; Tue, 12 Sep 2023 12:23:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694521434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/ZjqybK4szpUzBQzDFuSAth0Q4JngH5T5bQUPB9Wyx0=; b=UO+WD7jnUGzp2o06o4thX8YGwNuYlAgrYow35DBRCpTJCbQIcSTk+3tKEWbjdMerS3cwHD TT56Y0OKWIFUKG/DKrj12Nfuk7c+Lzi6e77ynK04Pb2aYeIW3Q5m4rv3bnvIxcXpViY8ST Xl91AvtlW5hYP8YvVaKrRuL8r27ODmAclC0BELSsGZQdtFmGflykhIhXlxKQ11zorS14o3 f4YmEIZy+7hIihMU2TOBpeQAhPhpyPpDsYK/Z2JwvrSF4y9+jshDkz23VFC2yc1A4RKWbL PB9xAuVu0XSr9wkCTtDBO8vwkkXpiXyH/bIsgMP65EOamTQvw8E2B1dXLKYP0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694521434; a=rsa-sha256; cv=none; b=ltiTOe3Oh80Meb9yPyW1e8oIxa2G0iEhEdfFP8MF2ke940a6VjFbAnBnBdl5TN5g8dFsGZ vHNh1jQTPveshjzl/A/6f3bFnh75zIl6wyWga66Lg5H2Cs44N3aYAUXboZz1LZkP0G+Xzi 3UTyo8sTxVQ/oz0O5Cyrf7KCdVX9ya2B3NOFZc5v1GQB4Et17Tw9xn+3Sr38QSRS9ENKpA UsjoKfKmJaEeZofFe/A7kLDhyYNnpnpCtbGCTmN4o8aOdIXgu93MrBhe1MBlbKPWrA/21y vD5t4bRH2UdpZfMN3fO5+w6wyfCMZ1tjQwcSvzHsb670MrWt/c3Q3yPjJ5LOYg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694521434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/ZjqybK4szpUzBQzDFuSAth0Q4JngH5T5bQUPB9Wyx0=; b=NoesS6buZjRqDXomv+SHglo/o7L+s2kIK1r1LV+pFmN6IxltegbEMtJixprAHqdJIE1voL Ir1vXm0bSccAn604a0YK9MvcORL5NWdej00GnYxlZRSdMX4vjH4m4OYU9LaN6Ttij3i8NQ wdZQowhOSyt4mkn2v5W0tkSS8QXaMMSU046PQ3hKwOYKJR/yA43SSzUREbOrP4LTf9p/46 XzML6avzGaILhkZQQ/XURNeqAjh70QkAUXcKYW7Tr7DmPLfcAcu5VELhkMj8P69yfgFBmt nwi2ZgyxgYL1JjReQBl1OCHtM63iuHHmpX6TY/oeBJCO8UcOdM5WAr2n4XUWrg== 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 4RlN6d6s6HzXJv; Tue, 12 Sep 2023 12:23:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CCNrXo037226; Tue, 12 Sep 2023 12:23:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CCNrAO037223; Tue, 12 Sep 2023 12:23:53 GMT (envelope-from git) Date: Tue, 12 Sep 2023 12:23:53 GMT Message-Id: <202309121223.38CCNrAO037223@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Rabson <dfr@FreeBSD.org> Subject: git: 78847e1e5927 - main - pkgbase: Move headers and libs out of runtime and utilities List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dfr X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 78847e1e592789dc85bddf4d2f1d9a8ce4614ff1 Auto-Submitted: auto-generated The branch main has been updated by dfr: URL: https://cgit.FreeBSD.org/src/commit/?id=78847e1e592789dc85bddf4d2f1d9a8ce4614ff1 commit 78847e1e592789dc85bddf4d2f1d9a8ce4614ff1 Author: Doug Rabson <dfr@FreeBSD.org> AuthorDate: 2023-09-11 08:38:46 +0000 Commit: Doug Rabson <dfr@FreeBSD.org> CommitDate: 2023-09-12 12:22:21 +0000 pkgbase: Move headers and libs out of runtime and utilities Headers from src/include were in the runtime-dev package but subdirectories of src/include ended up in utilities-dev by default. Neither package is a good choice - the headers in src/include are not useful without the libraries contained in clibs-dev. This moves the standard C headers to clibs-dev (C++ headers are already in this package). While working on this, I found that various clang libraries and headers were also bundled into utilities-dev by default so these are also moved to clang-dev. I also added a FreeBSD-build-essential meta package to make it simple to install all the toolchain parts. PR: 254173 Reviewed byb: manu MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D41815 --- include/Makefile | 2 +- include/Makefile.inc | 2 ++ lib/clang/Makefile.inc | 1 + lib/csu/Makefile.inc | 1 + lib/libclang_rt/Makefile.inc | 1 + release/packages/generate-ucl.sh | 3 +++ 6 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/Makefile b/include/Makefile index bc1cfd96dfc9..736a47854534 100644 --- a/include/Makefile +++ b/include/Makefile @@ -4,7 +4,7 @@ .include <src.opts.mk> -PACKAGE=runtime +PACKAGE=clibs CLEANFILES= osreldate.h version SUBDIR= arpa protocols rpcsvc rpc xlocale .if ${MACHINE_CPUARCH} == "amd64" diff --git a/include/Makefile.inc b/include/Makefile.inc new file mode 100644 index 000000000000..14d7bf96e6bc --- /dev/null +++ b/include/Makefile.inc @@ -0,0 +1,2 @@ +# Make sure all our subdirectory headers end up in clibs-dev +PACKAGE=clibs diff --git a/lib/clang/Makefile.inc b/lib/clang/Makefile.inc index 0a2ae8f6b802..2dfc966726b0 100644 --- a/lib/clang/Makefile.inc +++ b/lib/clang/Makefile.inc @@ -1,6 +1,7 @@ .include <bsd.compiler.mk> +PACKAGE= clang MK_PIE:= no # Explicit libXXX.a references .if ${COMPILER_TYPE} == "clang" diff --git a/lib/csu/Makefile.inc b/lib/csu/Makefile.inc index faf01b293b92..55aaf589f48f 100644 --- a/lib/csu/Makefile.inc +++ b/lib/csu/Makefile.inc @@ -1,3 +1,4 @@ +PACKAGE= clibs-dev NO_WMISSING_VARIABLE_DECLARATIONS= # Can't instrument these files since that breaks non-sanitized programs. diff --git a/lib/libclang_rt/Makefile.inc b/lib/libclang_rt/Makefile.inc index 4832815643ae..263d1e340f3d 100644 --- a/lib/libclang_rt/Makefile.inc +++ b/lib/libclang_rt/Makefile.inc @@ -1,6 +1,7 @@ .include <bsd.compiler.mk> +PACKAGE= clang CRTSRC= ${SRCTOP}/contrib/llvm-project/compiler-rt .include "compiler-rt-vars.mk" diff --git a/release/packages/generate-ucl.sh b/release/packages/generate-ucl.sh index de3fec3f0ca7..fa13e8e334d2 100755 --- a/release/packages/generate-ucl.sh +++ b/release/packages/generate-ucl.sh @@ -44,6 +44,9 @@ main() { certctl) pkgdeps="caroot openssl" ;; + clang) + pkgdeps="lld clang-dev libcompiler_rt-dev" + ;; # -dev packages that have no corresponding non-dev package # as a dependency. From nobody Tue Sep 12 13:13:58 2023 X-Original-To: dev-commits-src-main@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 4RlPDR0Y0Jz4sflm; Tue, 12 Sep 2023 13:13:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlPDR0236z4CXZ; Tue, 12 Sep 2023 13:13:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694524439; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/8yCrjn8zDngq++nXwyuBGWdNvg8x1xiCm+Ufkyxbz0=; b=OjiC+c4hjtrpkeYXoh0SB0HDif+eyb3vEwGSobV/4/hkYMcbm8zmSJuORQUjrmaHqtisA7 C8KOAR5KoMn4UQPD+FjcwuQPnmVqO3Fe60vi6SqLgi9gVQqkEy9gHOa/yj1Psmj6iTsnbt PmCwvLL6nFvoZCvaWrMjPoEhz2dpRhxmKeLphfAFipBx+OXy4DMaRYhoZdCoPoU/Ocwtc0 6VoSQLz6m4+bFmzoXsBODuVOOr52FNt1dKt4zLHggd5i9TzXPa8yuzPadc95J9Gnxn04O+ reKmuefkeAWZGSccbw4JzIkS0MssCsTVQ5bYOT+HniAue7chWMTdP5skIExz/w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694524439; a=rsa-sha256; cv=none; b=JOSRGXl18DVc5xACyvOC99Ef5PX7G5B3o1cvnuYQJxZ5h2WKJKomVfMqyBOpQZyxOh+J7S aeeA0Q8qg1Y86bXolHsrV9vXe0thRUPavlRtr3kB7udZVKHyZDDebcM1rRicr1pgKzpUSE VNCbn3FAi3rUt7zDyK+MlrGjf6pTOAC2yRGYkP8dyuFFh0mQ2+AGiA7l9UOotn+mpdIZsq rzcDOAg7bdDe47JAgdOTxy5LiobEa49wAeDR+8KnkKg3ROzn9BUhfWz9bOiP7tIZjpGpUj eEkTOQG2dwy4h+FuK1RynQFa2Nz9caTHTdhA6cTXHjcjRudCGXQhNCTBz+kOTQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694524439; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/8yCrjn8zDngq++nXwyuBGWdNvg8x1xiCm+Ufkyxbz0=; b=PVhrvRnzKnEwFEjv0hgmb8ELxGX+aHyNYDWUJ2txV58sZEZq12GmeQV2bvWvHxJvwWGkJj GuXDPvDwD+jJfEBuB/DBc4JY9Rl7tq0Ru/fMjp0AUE58Le4/aIBNlKxMhLQsNIQ6vuHvOF zbMb+tvYvcv7l4gfM/OzB12A6xlb0MJevAAK/xdoXzQ+CQH/VUNwgx6TfGCdqGk+ewrUzv RkMLZQug3Qo9IB1jp2CxsVvEpkPNN0jeE9vrYhigOFEZ7dUpYmh50cm+8iV4Ve4TBliM4S jeEbAxRoe3pY332CeA0BYYxzE2oI8Ql6eJl7J7bXRhfT0y4wo/IXy4/+tmTCwQ== 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 4RlPDQ6FgKzYgh; Tue, 12 Sep 2023 13:13:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CDDwcV020522; Tue, 12 Sep 2023 13:13:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CDDwGa020519; Tue, 12 Sep 2023 13:13:58 GMT (envelope-from git) Date: Tue, 12 Sep 2023 13:13:58 GMT Message-Id: <202309121313.38CDDwGa020519@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore <dougm@FreeBSD.org> Subject: git: b24ed9c52dd2 - main - powerpc_pmap: include proper vm_radix file List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b24ed9c52dd296730c23d48e95c5a53ef67b402f Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=b24ed9c52dd296730c23d48e95c5a53ef67b402f commit b24ed9c52dd296730c23d48e95c5a53ef67b402f Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2023-09-12 13:10:15 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2023-09-12 13:10:15 +0000 powerpc_pmap: include proper vm_radix file Like the pmap.h files for amd64, arm64, i386 and riscv, the one for powerpc should #include vm/_vm_radix.h, not vm/vm_radix.h, to get a definition for struct vm_radix. Fixes a problem introduced with 429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5. --- sys/powerpc/include/pmap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/powerpc/include/pmap.h b/sys/powerpc/include/pmap.h index 642a990bb49b..e300f3750698 100644 --- a/sys/powerpc/include/pmap.h +++ b/sys/powerpc/include/pmap.h @@ -75,7 +75,7 @@ #include <machine/tlb.h> #include <machine/vmparam.h> #ifdef __powerpc64__ -#include <vm/vm_radix.h> +#include <vm/_vm_radix.h> #endif /* From nobody Tue Sep 12 14:43:00 2023 X-Original-To: dev-commits-src-main@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 4RlRC90C69z4t7sl; Tue, 12 Sep 2023 14:43: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlRC84svWz4THr; Tue, 12 Sep 2023 14:43:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694529780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P3xIyR8mRjHEnS2aVktq3fcwyq0zDh2y3b0Jw4I5+3o=; b=eXOvSI2B6VoBPEXEc/WW49s+19UfjMPhHZ6liSYd7AQmY94AyhBDXvfAnE8lOa+TeqLjy9 RtVLmIwXxbGQGklnIcg7owJJY7z8p+yFDuJfwPS8sa7vYISkjwyJLebPjOyPz4MuJf1PUV taTiOe1F+7tX1+IC7MdijCBfGThkx02hgtms8l7wM+bpUJODzTM0ma5R6NRvTfJ4rHJsqe JFTItITJ9ow7/6vA/nNC/CPNtJ8Z9KXWNI5teWs5CDpSPOI6sisTgBFn03jjLECSWBxZ8q yhKsJ31/8goApyqqP5m8fURDtwhhf886BHL4Hd0hPAPv0intF6qRXpzIEqIi3w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694529780; a=rsa-sha256; cv=none; b=UZSn8hB1e1RbzfGHq+ALYCptdCJwsSpVucntC/gFTLTAvpOMEsoS0kIjnakyhlY/6AX+HS L8v5VdHWb4iwTlDb3LCzD4rr0TU33Flu7/Z5JpwmwzmupjbPsyleqbnj0EDgZ6W0p0wr02 s+27M5gQu9oV760EnfDLXg8+gPOHOw9qDo6/QnpeM1L4nhQMjjkYetvE7T5YDrYhXDrfqr ttCpNiltmPmKyQk28j86r2s6MOdal684170CWulr0m1qh96L9vp0DHa1iUdk+/cRxEVZb6 B4gFSj5VXi/yH27ZGZrU8V6sb8k7yeXY2DxC1un5Tv1d+etImIDzJBjbkg65BA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694529780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P3xIyR8mRjHEnS2aVktq3fcwyq0zDh2y3b0Jw4I5+3o=; b=yJ2IMzgSSyXU9cl8bGPJ7Yk6dP+esYXFh1ChNWQosE3keTtFtHYEEgfVoQwCOqPzQEagAt 6oZMTytfatZmq6uUtuEb6opVKax0UVkb7GKed4ZVP3sMGm2u0NzqDAY3IFkYcjyScknYyo XyDnS+2aOLvlOtrkt7MNaJhiqXboJ92fs8dRJEjxFygqMui8edm71U/6wQm/f8fVNP+SWE hkk+cqjHfVvG/3NCW9XT4tvOCWnNTo+Kr3ayBXlfvtf9UXRJAgVVDugNxS5rdPhZuZ9o5m Qgbu+vrRlq0cjBTn83fAmY0deoTN+6+jx9Jv6ViK3SMyIkBNrXoqatFjYdmbDg== 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 4RlRC83xgSzbqT; Tue, 12 Sep 2023 14:43:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CEh0W7069104; Tue, 12 Sep 2023 14:43:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CEh0eC069102; Tue, 12 Sep 2023 14:43:00 GMT (envelope-from git) Date: Tue, 12 Sep 2023 14:43:00 GMT Message-Id: <202309121443.38CEh0eC069102@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Li-Wen Hsu <lwhsu@FreeBSD.org> Subject: git: 06bac0da1314 - main - usbdi(9): Fix typo to simply -> to simplify List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: lwhsu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 06bac0da1314907b8de37bbad559777ab418e811 Auto-Submitted: auto-generated The branch main has been updated by lwhsu: URL: https://cgit.FreeBSD.org/src/commit/?id=06bac0da1314907b8de37bbad559777ab418e811 commit 06bac0da1314907b8de37bbad559777ab418e811 Author: Damien Broka <git@damien.sh> AuthorDate: 2023-09-11 11:12:27 +0000 Commit: Li-Wen Hsu <lwhsu@FreeBSD.org> CommitDate: 2023-09-12 14:41:42 +0000 usbdi(9): Fix typo to simply -> to simplify MFC after: 3 days Pull Request: https://github.com/freebsd/freebsd-src/pull/839 --- share/man/man9/usbdi.9 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man9/usbdi.9 b/share/man/man9/usbdi.9 index c42efc1154c6..47034b87c806 100644 --- a/share/man/man9/usbdi.9 +++ b/share/man/man9/usbdi.9 @@ -350,7 +350,7 @@ Example4: SETUP + STATUS - split .Ed .Sh USB TRANSFER CONFIG -To simply the search for endpoints the +To simplify the search for endpoints the .Nm usb module defines a USB config structure where it is possible to specify the characteristics of the wanted endpoint. From nobody Tue Sep 12 14:43:01 2023 X-Original-To: dev-commits-src-main@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 4RlRCB1tNhz4t86n; Tue, 12 Sep 2023 14:43:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlRC95Q2Dz4TT9; Tue, 12 Sep 2023 14:43:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694529781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S1bRZU5fv2spsKVHtk4pQzXH6zzdBHhVUWC/AWerQ5s=; b=PsGaXPNXzWyTBigQZ/0x1lilGVn+SuDICTzE763Ig9Yjb/EuALYnJHrwNsAZMWhC/yGf4r APL2+c65sXennmSP18BDksFwle9Aqaoq+LujDSCcASb611CoZg3JKTkeasiWEEBBfk1jTR x4rL4lvGuC2fMbawYnH9WfWLEUSRHIKHE5mZkE7OgizD5xN0hSXLr/ZCaIizFr2yrjGWMn M4otYsp0QDmSNIF7xmGDgYbbVoYP/ZeRGM0FPa+e/9hJAcqn9+RKchE5LH+Eqdm161lRGy I4rrnIgcHou5e/7CDF9gpeBTbWD19K5vd41E/1wMHAS1b3xVwtPGUe0QKWbZpA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694529781; a=rsa-sha256; cv=none; b=xR5ywDi4+nz2LD6nGHNPDefPWcKUo/ZZg3bUKXN6aAVVTqkbvUI8C1YiIzHg5TV8lFiHjx 3UJGFhO3pJ6BCVu6EVqZ5hCriEPCAu61w7N5uBN92i1zliSen4iLEvqXUJl/LNtRGMcYwy lM/I+Zaax0JOc1YEn0QrEaShUszs3B8bhCbapljiOBRsDp8nLqWb48F9lLwUaoAMIL2es2 1rdtYpCDpKznSUr6ukCC585bMayxA6gUAsT1kV41B26/HLx70YtJAGN8o5neagEVFkKBKc 7+Qx+cV3cPkRmyuUUu5tEVAqaHfpF0LRw7dGVpaollF4xOsESftS5S5S+xyXaA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694529781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S1bRZU5fv2spsKVHtk4pQzXH6zzdBHhVUWC/AWerQ5s=; b=oLoeuf5+Xz85yalXguWjPjlpxl+R7E7CrYkC35k0IHVgFHFCQib4n8kLCONnNK3uHo+YlU gLBzVHqkcTe6oPCtDQ51r0rKHIeuUHyQDLZVSQodvwAaqgNFuIhh3alE74DSIuuq1CQpm+ FhjfXjrIYoktZEhk/xv2Ayp/ScCiUUl0tx9Lk2SHm+bjhvs2CLY0bBS/9teGCGnhs70eOl hTiodBiPbYqmBPzsvnWdJvovvQk54FG5E7CbeAo3/nR2/fM/AzFDTvCU2N+hfHV2LMVTyC Tq/Y6oxD8L71Qc0LA9wQ0BS0eritvQNL9xxA+77HhugjVYR62tDuXfwBxsqMCg== 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 4RlRC94KgdzbqV; Tue, 12 Sep 2023 14:43:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CEh10L069149; Tue, 12 Sep 2023 14:43:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CEh1l9069146; Tue, 12 Sep 2023 14:43:01 GMT (envelope-from git) Date: Tue, 12 Sep 2023 14:43:01 GMT Message-Id: <202309121443.38CEh1l9069146@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Li-Wen Hsu <lwhsu@FreeBSD.org> Subject: git: ff9c4abd9fea - main - sysctl(9): Fix typo translatation -> translation List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: lwhsu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ff9c4abd9feaf13cf911f4655234da7a62d0c7af Auto-Submitted: auto-generated The branch main has been updated by lwhsu: URL: https://cgit.FreeBSD.org/src/commit/?id=ff9c4abd9feaf13cf911f4655234da7a62d0c7af commit ff9c4abd9feaf13cf911f4655234da7a62d0c7af Author: Damien Broka <git@damien.sh> AuthorDate: 2023-09-11 11:15:18 +0000 Commit: Li-Wen Hsu <lwhsu@FreeBSD.org> CommitDate: 2023-09-12 14:42:03 +0000 sysctl(9): Fix typo translatation -> translation MFC after: 3 days Pull Request: https://github.com/freebsd/freebsd-src/pull/839 --- share/man/man9/sysctl.9 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man9/sysctl.9 b/share/man/man9/sysctl.9 index d2001384c9aa..83f526b349a1 100644 --- a/share/man/man9/sysctl.9 +++ b/share/man/man9/sysctl.9 @@ -626,7 +626,7 @@ For example, .Fn SYSCTL_INT reports the raw value of an associated variable of type .Vt int . -However, nodes may also export a value that is a translatation of an internal +However, nodes may also export a value that is a translation of an internal representation. .Pp The From nobody Tue Sep 12 14:47:50 2023 X-Original-To: dev-commits-src-main@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 4RlRJk3PpYz4t96T; Tue, 12 Sep 2023 14:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlRJk2d4Mz4VmT; Tue, 12 Sep 2023 14:47:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694530070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WjBYs0SYcP3quJZ+cHRt0bQu6EqVtGTZ6NivNZtnAeY=; b=T2A3C7ZzkFIRJEDvRTXMku/KMa60SktCDli3N3QDBp6AYGLVw7QG/1k6YJIgUyDVwKu/qO x862+L/kXJGOfyk8i+Tc1dS1MviErMmj4ob7Y4wqmUvgG1RFsXdbyMyKx6rSyjFveTOgtN g28FdL6IjbFknGh+bmxR/ibhSqoBzQb6alglx65O7f1WMll57GCuB5b4RbXXndJ35RqI1n 1nOO7cOif6k1DjuRwMVIgL0NNeKuF+R4xqTN/yD7dC/3NcqwSsbScOBhVSTl3c1FCwHIQ7 8N7YjBbC2TYd5hNw8xHA1oJYG027K+B0/40nRcNcjojJwg3E52AJlVBEOnyOVQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694530070; a=rsa-sha256; cv=none; b=W/SQEM+qkPvhN2BMhBakp7ff7bAlhU+NKlKWHFWwfSP3inO8apJ21v77BZQMInS94+IySo VZHWxQkDqw9VZtxi6zw03QnMYMsySktf+DuV4HLXS5dwfhKYvb67vyI741y0WYASd0q6Et dx028qCDpMTm7MYtgnOdlvVKfvBeih1rKcsbavZxGhINPd6Bvzr77w1DFyewuLYqzBI0KO /eKw5W0w0eLyFTSL0S+XyS3I+i7tvjRa9FVTI4Groimg+reUUlwyYK9TWWrvkmh6pAtT7A K6mEFVmcar+dPua+A9ZRZ6VkKq2gkMsqUPCGBUs4S9o8FO+e3SaN+/X2ZDL2MA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694530070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WjBYs0SYcP3quJZ+cHRt0bQu6EqVtGTZ6NivNZtnAeY=; b=a+WSozUGj0odSYPciETNBmFRyvyzzrt3TBnp3O0JUR75q8vyc+/LQrJinxEnP2GYtHlucG uZNuiGl/m6Q8tmO0L3ZF/8lt0IqGxoDBooK+xi7dgoDVwAMUMcmkskbQm0mDbRHY1m71OQ /H/Cfu1zB2vcAUZsXLmND/9udctFIs2p2xOwQDF8k4ywMMaaQTv2lriqMdqAZOJlnXnQvP KrGxiMJHcT1LY/zRX5QBQKALHQU6Et9q1hFZ72Hz3C0QkXTRZsbDToZH6kjf78LkdRdkP8 Dn2wBxMNTYnyIMOneZaBwGw/pa9N+4pla3nHu+v2Zs4HXbVrkwDoYTtrO8ghtA== 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 4RlRJk1PPSzbYG; Tue, 12 Sep 2023 14:47:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CEloOo069892; Tue, 12 Sep 2023 14:47:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CElo3w069889; Tue, 12 Sep 2023 14:47:50 GMT (envelope-from git) Date: Tue, 12 Sep 2023 14:47:50 GMT Message-Id: <202309121447.38CElo3w069889@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alan Somers <asomers@FreeBSD.org> Subject: git: 0b294a386d34 - main - Fix zfsd with the device_removal pool feature. List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: asomers X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0b294a386d34f6584848ed52407687df7ae59861 Auto-Submitted: auto-generated The branch main has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=0b294a386d34f6584848ed52407687df7ae59861 commit 0b294a386d34f6584848ed52407687df7ae59861 Author: Alan Somers <asomers@FreeBSD.org> AuthorDate: 2023-09-12 01:20:39 +0000 Commit: Alan Somers <asomers@FreeBSD.org> CommitDate: 2023-09-12 14:46:12 +0000 Fix zfsd with the device_removal pool feature. Previously zfsd would crash in the presence of a pool with a top-level-vdev that had previously been removed. The crash happened because the configuration nvlist of such a TLV contains an empty ZPOOL_CONFIG_CHILDREN array, which led to a pop_front from an empty list, which has undefined behavior. The crash only happened in stable/14 and later, probably do to differences in libcxx, but the change should be MFCed anyway. PR: 273663 Reported by: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> MFC after: 1 week Sponsored by: Axcient Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D41818 --- cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc | 37 +++++++++++++++++++++++++++++++ cddl/usr.sbin/zfsd/vdev_iterator.cc | 5 +---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc b/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc index f3fea2ca83f4..caeb077a3de8 100644 --- a/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc +++ b/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc @@ -766,3 +766,40 @@ TEST_F(ReEvaluateByGuidTest, ReEvaluateByGuid_five) delete CaseFile4; delete CaseFile5; } + +/* + * Test VdevIterator + */ +class VdevIteratorTest : public ::testing::Test +{ +}; + +bool VdevIteratorTestCB(Vdev &vdev, void *cbArg) { + return (false); +} + +/* + * VdevIterator::Next should not crash when run on a pool that has a previously + * removed vdev. Regression for + * https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273663 + */ +TEST_F(VdevIteratorTest, VdevRemoval) +{ + nvlist_t* poolConfig, *rootVdev; + + ASSERT_EQ(0, nvlist_alloc(&rootVdev, NV_UNIQUE_NAME, 0)); + ASSERT_EQ(0, nvlist_add_uint64(rootVdev, ZPOOL_CONFIG_GUID, 0x5678)); + /* + * Note: pools with previously-removed top-level VDEVs will contain a + * TLV in their labels that has 0 children. + */ + ASSERT_EQ(0, nvlist_add_nvlist_array(rootVdev, ZPOOL_CONFIG_CHILDREN, + NULL, 0)); + ASSERT_EQ(0, nvlist_alloc(&poolConfig, NV_UNIQUE_NAME, 0)); + ASSERT_EQ(0, nvlist_add_uint64(poolConfig, + ZPOOL_CONFIG_POOL_GUID, 0x1234)); + ASSERT_EQ(0, nvlist_add_nvlist(poolConfig, ZPOOL_CONFIG_VDEV_TREE, + rootVdev)); + + VdevIterator(poolConfig).Each(VdevIteratorTestCB, NULL); +} diff --git a/cddl/usr.sbin/zfsd/vdev_iterator.cc b/cddl/usr.sbin/zfsd/vdev_iterator.cc index f64b0d98440d..e9283108ed3c 100644 --- a/cddl/usr.sbin/zfsd/vdev_iterator.cc +++ b/cddl/usr.sbin/zfsd/vdev_iterator.cc @@ -109,10 +109,7 @@ VdevIterator::Next() { nvlist_t *vdevConfig; - if (m_vdevQueue.empty()) - return (NULL); - - for (;;) { + for (vdevConfig = NULL; !m_vdevQueue.empty();) { nvlist_t **vdevChildren; int result; u_int numChildren; From nobody Tue Sep 12 16:42:53 2023 X-Original-To: dev-commits-src-main@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 4RlTsT49m1z4st8q; Tue, 12 Sep 2023 16: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlTsT3ldHz3bVT; Tue, 12 Sep 2023 16: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=1694536973; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hia0R+yCAMGGe0aJ+1W+OHUFCX/4NqNb14NpKKvcwUQ=; b=T1pw8OAl0M9l6kDD31PJknAuskCOIw7BNXOCd37JrQvUqQJsi4zPEm0hIMXXEzmNJsKJ2J ocV8Lz0wrUbv3SFK3rotXAMw/Ea7dSUiKdPjCkOKsp1uWroSrdvLsMIhulJ12EPkwCIrSX g2FMbq8wppWdHEYnReUlFnAd3ohYY6qqz7N5hw7KaVNbABjewekTd5sKpCHpZXuf8HuPn6 PlVh6z3P8jfpuJDvVsBgzhFqEG/G5RHsRv3vmnHKghGewOWjOSTkuVuGSsN0mYRcyX2LHe uDEY3wwQkVGYcs7aBxwKQpVxSyHUN9k95hvA0yM9wtVwhfX0bn0xSL/YRO6mBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536973; a=rsa-sha256; cv=none; b=LLKJSXh5NX9exZuyuXr9FwkI6yYhjSeR9PVKnpnLitHgCmBepo/SkKoF7I13LekON4ByE5 7nvGULZm5a2meyrUEjhNKLyU5exr/WyCqw24MfEEKQ3e2oCzrB+GnzsaeubDIHZOHXJ6gu eD7O4Kdm64oOvnXQUzlxsQc9uY726VwwURMOVGKH0YPE6DrBxOBIF/EvTBPRqOHFgLuJpT gNMdVs0efihjbWBqNwcnr3cOKe0pFzKlnqT8o7EGL5sHuOJBsZBgNOS7lbx2bJIX+SBYs8 KeOYTCnc2diDoOwNISBZW6f5sDYTjkWM8qz+lSZ1aC4i621UVCEFeFEVQBLvjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536973; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hia0R+yCAMGGe0aJ+1W+OHUFCX/4NqNb14NpKKvcwUQ=; b=h0ik/uA0+NrAtpjxgEaNndOprfhM2tMmJfVwsYywl5Z3Mci7M5MaIlSZ/ROaDhvq17F0c5 VNWg/LCXzm2/8eEfH3uXfNkevnCu+QN8PiUWeq06GD0oW7RgBuAuDD+IsPqUOog3yR2jo1 BLDopQ8okkRoBTpj9hD63cawa5UwsEDHvbvSoZsiraUK3t7+nYbUhSClbYe92aB3M2h0fr M4f6HqgQ79lCLi1p4zISrac/jjkJ0ayeZOBITfWVnONVnsEVqUPCZ+0aC6v5Xyl7TQFBp6 bGuHOoZo0nzKnLPAe0ksL0A4m0TDJTfJv8z4sRUUnLeXG76Em+e85+Qwtdir9A== 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 4RlTsT2pT3zfjb; Tue, 12 Sep 2023 16:42:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CGgrwX070359; Tue, 12 Sep 2023 16:42:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGgrtg070356; Tue, 12 Sep 2023 16:42:53 GMT (envelope-from git) Date: Tue, 12 Sep 2023 16:42:53 GMT Message-Id: <202309121642.38CGgrtg070356@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Pawel Stefaniak <pstef@FreeBSD.org> Subject: git: 63b6e661d25c - main - sh: reindent a for loop in parser.c List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pstef X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 63b6e661d25c67b4ab9b7743bf1c68e3876ddc1e Auto-Submitted: auto-generated The branch main has been updated by pstef: URL: https://cgit.FreeBSD.org/src/commit/?id=63b6e661d25c67b4ab9b7743bf1c68e3876ddc1e commit 63b6e661d25c67b4ab9b7743bf1c68e3876ddc1e Author: Piotr Pawel Stefaniak <pstef@FreeBSD.org> AuthorDate: 2023-01-01 19:22:28 +0000 Commit: Piotr Pawel Stefaniak <pstef@FreeBSD.org> CommitDate: 2023-09-12 16:36:32 +0000 sh: reindent a for loop in parser.c Reduce indentation level before a commit that will add new code here. Reviewed by: jilles Differential Revision: https://reviews.freebsd.org/D37926 --- bin/sh/parser.c | 242 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 123 insertions(+), 119 deletions(-) diff --git a/bin/sh/parser.c b/bin/sh/parser.c index 044233da5d73..121c367c601c 100644 --- a/bin/sh/parser.c +++ b/bin/sh/parser.c @@ -2054,135 +2054,139 @@ getprompt(void *unused __unused) /* * Format prompt string. */ - for (i = 0; (i < PROMPTLEN - 1) && (*fmt != '\0'); i++, fmt++) - if (*fmt == '\\') - switch (*++fmt) { + for (i = 0; (i < PROMPTLEN - 1) && (*fmt != '\0'); i++, fmt++) { + if (*fmt != '\\') { + ps[i] = *fmt; + continue; + } - /* - * Non-printing sequence begin and end. - */ - case '[': - case ']': - ps[i] = '\001'; - break; + switch (*++fmt) { - /* - * Literal \ and some ASCII characters: - * \a BEL - * \e ESC - * \r CR - */ - case '\\': - case 'a': - case 'e': - case 'r': - if (*fmt == 'a') - ps[i] = '\007'; - else if (*fmt == 'e') - ps[i] = '\033'; - else if (*fmt == 'r') - ps[i] = '\r'; - else - ps[i] = '\\'; - break; + /* + * Non-printing sequence begin and end. + */ + case '[': + case ']': + ps[i] = '\001'; + break; - /* - * CRLF sequence - */ - case 'n': - if (i < PROMPTLEN - 3) { - ps[i++] = '\r'; - ps[i] = '\n'; - } - break; + /* + * Literal \ and some ASCII characters: + * \a BEL + * \e ESC + * \r CR + */ + case '\\': + case 'a': + case 'e': + case 'r': + if (*fmt == 'a') + ps[i] = '\007'; + else if (*fmt == 'e') + ps[i] = '\033'; + else if (*fmt == 'r') + ps[i] = '\r'; + else + ps[i] = '\\'; + break; - /* - * Hostname. - * - * \h specifies just the local hostname, - * \H specifies fully-qualified hostname. - */ - case 'h': - case 'H': - ps[i] = '\0'; - gethostname(&ps[i], PROMPTLEN - i - 1); - ps[PROMPTLEN - 1] = '\0'; - /* Skip to end of hostname. */ - trim = (*fmt == 'h') ? '.' : '\0'; - while ((ps[i] != '\0') && (ps[i] != trim)) - i++; - --i; - break; + /* + * CRLF sequence + */ + case 'n': + if (i < PROMPTLEN - 3) { + ps[i++] = '\r'; + ps[i] = '\n'; + } + break; - /* - * User name. - */ - case 'u': - ps[i] = '\0'; - getusername(&ps[i], PROMPTLEN - i); - /* Skip to end of username. */ - while (ps[i + 1] != '\0') - i++; - break; + /* + * Hostname. + * + * \h specifies just the local hostname, + * \H specifies fully-qualified hostname. + */ + case 'h': + case 'H': + ps[i] = '\0'; + gethostname(&ps[i], PROMPTLEN - i - 1); + ps[PROMPTLEN - 1] = '\0'; + /* Skip to end of hostname. */ + trim = (*fmt == 'h') ? '.' : '\0'; + while ((ps[i] != '\0') && (ps[i] != trim)) + i++; + --i; + break; - /* - * Working directory. - * - * \W specifies just the final component, - * \w specifies the entire path. - */ - case 'W': - case 'w': - pwd = lookupvar("PWD"); - if (pwd == NULL || *pwd == '\0') - pwd = "?"; - if (*fmt == 'W' && - *pwd == '/' && pwd[1] != '\0') - strlcpy(&ps[i], strrchr(pwd, '/') + 1, + /* + * User name. + */ + case 'u': + ps[i] = '\0'; + getusername(&ps[i], PROMPTLEN - i); + /* Skip to end of username. */ + while (ps[i + 1] != '\0') + i++; + break; + + /* + * Working directory. + * + * \W specifies just the final component, + * \w specifies the entire path. + */ + case 'W': + case 'w': + pwd = lookupvar("PWD"); + if (pwd == NULL || *pwd == '\0') + pwd = "?"; + if (*fmt == 'W' && + *pwd == '/' && pwd[1] != '\0') + strlcpy(&ps[i], strrchr(pwd, '/') + 1, + PROMPTLEN - i); + else { + home = lookupvar("HOME"); + if (home != NULL) + homelen = strlen(home); + if (home != NULL && + strcmp(home, "/") != 0 && + strncmp(pwd, home, homelen) == 0 && + (pwd[homelen] == '/' || + pwd[homelen] == '\0')) { + strlcpy(&ps[i], "~", PROMPTLEN - i); - else { - home = lookupvar("HOME"); - if (home != NULL) - homelen = strlen(home); - if (home != NULL && - strcmp(home, "/") != 0 && - strncmp(pwd, home, homelen) == 0 && - (pwd[homelen] == '/' || - pwd[homelen] == '\0')) { - strlcpy(&ps[i], "~", - PROMPTLEN - i); - strlcpy(&ps[i + 1], - pwd + homelen, - PROMPTLEN - i - 1); - } else { - strlcpy(&ps[i], pwd, PROMPTLEN - i); - } + strlcpy(&ps[i + 1], + pwd + homelen, + PROMPTLEN - i - 1); + } else { + strlcpy(&ps[i], pwd, PROMPTLEN - i); } - /* Skip to end of path. */ - while (ps[i + 1] != '\0') - i++; - break; + } + /* Skip to end of path. */ + while (ps[i + 1] != '\0') + i++; + break; - /* - * Superuser status. - * - * '$' for normal users, '#' for root. - */ - case '$': - ps[i] = (geteuid() != 0) ? '$' : '#'; - break; + /* + * Superuser status. + * + * '$' for normal users, '#' for root. + */ + case '$': + ps[i] = (geteuid() != 0) ? '$' : '#'; + break; - /* - * Emit unrecognized formats verbatim. - */ - default: - ps[i] = '\\'; - if (i < PROMPTLEN - 2) - ps[++i] = *fmt; - break; - } - else - ps[i] = *fmt; + /* + * Emit unrecognized formats verbatim. + */ + default: + ps[i] = '\\'; + if (i < PROMPTLEN - 2) + ps[++i] = *fmt; + break; + } + + } ps[i] = '\0'; return (ps); } From nobody Tue Sep 12 16:42:54 2023 X-Original-To: dev-commits-src-main@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 4RlTsV5h2wz4st8v; Tue, 12 Sep 2023 16:42: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlTsV4qCfz3bmS; Tue, 12 Sep 2023 16:42:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536974; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mlDQHTln0BTq7AVXw+ZfVt/gLIZgrEaVkpqeokJ8wus=; b=bJTGiavRcvDeTyY3tdSDVkLkPp07QQso86G+eosGCkx4zWc6wqMCfqg5+lzOeCYj4gHjqH mFx+RlloT99UFVaqfbfq8L4QKDorpp8l4Nw9Xm4CA/8Lt/h6Bjh7FMG7BnRCn+DaKsCfO9 p2oQ8fKbBJSJSgmdr+MNHaVlWc04vZwGH0bggDRKL/wsLJhlBvbuwN0f1xwcjcdH9AK4tT oC7oKBaoJ9NLdqEfnTZ+OBBwDXK80tZVf5uSSDMZAhppRNHSdU/zoKR9PPeL24il6cTE/x aFZCIixtIOmU8aoDMNFq1uFTEEmdD068yZr+L/ybGBoAgydFUvuYLCWWdG8i5w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536974; a=rsa-sha256; cv=none; b=M9GsFYcK6tP+beU6D0yrLH6pEuNhLC5602WcxUzzZiil2NA0ZMEe5bwni3YI0pLNSyve5U rStzUbZZYQyCf63T3FhmaGrrg+x/NJkd9uhmNo66ojbyGC6yAR+xNpg0bwaQ9qfPdh/je/ n1gUKsP/nPp2iVXwGZNz8sE+w048dHUlt8ht9b3D+e3Kw1SRbzrp5DBl52l2kbhksbhCiF 1qc2bWGQbV9WSsbbirppqwXMNPdT5bf3f3rhpdhTMGzOM8KZqGG9WuMmErkCvu4L23voEZ WeJo9Cn16mWmWI1N7iOaVyVKzKhBm/jsUHnuBsdbUIVrSCatSMR8zj/aBrWQ/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536974; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mlDQHTln0BTq7AVXw+ZfVt/gLIZgrEaVkpqeokJ8wus=; b=GUdMtppZIWNgdeTXrJcqSD43yicAyBQNK7YHPQhrzh27XOjPU8jwI/yXMGmrs+FZGwe+/U GH0QT938QlM5BYaRaUGMOA551MtKuNxt2rfd/9AhKkL4OmAKBDRClhXGggqjmxFSiyo3m/ aEL7tg8rhas0mH/3Yj61IFAMV268BHbF3bd1DP4+Y5P/YqApWJ/sWa84gQXQbQ0Wa+SI5E /0MxPxqwUBf5EHSWf90VM1Fr9E4xxSwBkX4RAunWoICdYGH2KXoq5vZ0/VN5Xaji1gBywW 2B2jvfiOHuP33vngGLaylncsTRrSZQcLKghj3he3TNVUaya3kQf/vXW1J4+z1g== 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 4RlTsV3qNkzfVj; Tue, 12 Sep 2023 16:42:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CGgsXq070416; Tue, 12 Sep 2023 16:42:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGgsQp070413; Tue, 12 Sep 2023 16:42:54 GMT (envelope-from git) Date: Tue, 12 Sep 2023 16:42:54 GMT Message-Id: <202309121642.38CGgsQp070413@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Pawel Stefaniak <pstef@FreeBSD.org> Subject: git: 2fc4a84ed828 - main - sh: introduce a function to iterate over all aliases List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pstef X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2fc4a84ed8288bd25be3de35d756f46ec7785030 Auto-Submitted: auto-generated The branch main has been updated by pstef: URL: https://cgit.FreeBSD.org/src/commit/?id=2fc4a84ed8288bd25be3de35d756f46ec7785030 commit 2fc4a84ed8288bd25be3de35d756f46ec7785030 Author: Piotr Pawel Stefaniak <pstef@FreeBSD.org> AuthorDate: 2023-04-29 20:23:59 +0000 Commit: Piotr Pawel Stefaniak <pstef@FreeBSD.org> CommitDate: 2023-09-12 16:39:20 +0000 sh: introduce a function to iterate over all aliases Currently the data structure holding alias information is opaque for consumers outside alias.c and there is no way to iterate over all aliases, which will become needed by a future commit. The new function "iteralias" takes a null pointer to return the first alias or an existing alias to return the next one, unless there is no alias to return, in which case it returns a null pointer. I slightly changed the static function hashalias so that it returns the index into the array holding link heads, and not the link head directly. In this form it's easier to use by iteralias and the slight adjustment in the three existing callers doesn't look too bad. Differential Revision: https://reviews.freebsd.org/D40619 --- bin/sh/alias.c | 29 +++++++++++++++++++++++------ bin/sh/alias.h | 1 + 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/bin/sh/alias.c b/bin/sh/alias.c index 4bac525e2678..da860be704b6 100644 --- a/bin/sh/alias.c +++ b/bin/sh/alias.c @@ -53,7 +53,7 @@ static int aliases; static void setalias(const char *, const char *); static int unalias(const char *); -static struct alias **hashalias(const char *); +static size_t hashalias(const char *); static void @@ -62,7 +62,7 @@ setalias(const char *name, const char *val) struct alias *ap, **app; unalias(name); - app = hashalias(name); + app = &atab[hashalias(name)]; INTOFF; ap = ckmalloc(sizeof (struct alias)); ap->name = savestr(name); @@ -87,7 +87,7 @@ unalias(const char *name) { struct alias *ap, **app; - app = hashalias(name); + app = &atab[hashalias(name)]; for (ap = *app; ap; app = &(ap->next), ap = ap->next) { if (equal(name, ap->name)) { @@ -145,7 +145,7 @@ lookupalias(const char *name, int check) if (aliases == 0) return (NULL); - for (ap = *hashalias(name); ap; ap = ap->next) { + for (ap = atab[hashalias(name)]; ap; ap = ap->next) { if (equal(name, ap->name)) { if (check && (ap->flag & ALIASINUSE)) return (NULL); @@ -242,7 +242,7 @@ unaliascmd(int argc __unused, char **argv __unused) return (i); } -static struct alias ** +static size_t hashalias(const char *p) { unsigned int hashval; @@ -250,5 +250,22 @@ hashalias(const char *p) hashval = (unsigned char)*p << 4; while (*p) hashval+= *p++; - return &atab[hashval % ATABSIZE]; + return (hashval % ATABSIZE); +} + +const struct alias * +iteralias(const struct alias *index) +{ + size_t i = 0; + + if (index != NULL) { + if (index->next != NULL) + return (index->next); + i = hashalias(index->name) + 1; + } + for (; i < ATABSIZE; i++) + if (atab[i] != NULL) + return (atab[i]); + + return (NULL); } diff --git a/bin/sh/alias.h b/bin/sh/alias.h index 0c6ea99e8b60..a8108d44be2d 100644 --- a/bin/sh/alias.h +++ b/bin/sh/alias.h @@ -42,3 +42,4 @@ struct alias { }; struct alias *lookupalias(const char *, int); +const struct alias *iteralias(const struct alias *); From nobody Tue Sep 12 16:42:55 2023 X-Original-To: dev-commits-src-main@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 4RlTsX29DKz4stMf; Tue, 12 Sep 2023 16:42:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlTsW63hhz3bYY; Tue, 12 Sep 2023 16:42:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lJV4JOfBuK0cfiSOyMQ1KagOb8YhOs04tAkNhQosFNg=; b=wU5S1cp/Tbz6/0m10nR31XxGfnUTeqC0z74MXZP1gJ9Vqr/Ai/y8/yl+TGgKGYrhZTcalU WnyStJl2/zo5/fK7/I9i7ZbyMc8WJXdUJ6WuQ644VQxRANmCgL5XaiSdq4gM2HHycPpMJC QTUH5Ed8/S7hh169NO8yjOTDg1uiMwlBxELMKaypuKrNuYSVMAUhRq0vhLbwfOaDtD39w/ i4iJAYMBM/3qd6BgZhM78V+tFL5znbh0zFGIqhxKUYhtZ1FgtGj+5rQML1Qodkt/uP6peU /zzdIl/t8rfboLlSHpOwxMZVI/MYQZ75IFnrriy+63ksl/jTUOKQKOkzzIMYRg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536975; a=rsa-sha256; cv=none; b=Llf8nbzXj+QmDSG2SuK5hfLU2/Lip/IRdEE7dtpRrctQ3x4r0YwZNfWp3rKqH40XdGgc69 k5Oo9UEfV9LOp09Ndsr9kG6R31MJ7Gm4C+BsBjfv7zYRG7g67UqBE3p1wY1gpP99pwQmbf lb4TjivBcRg1wxyMnif2YEVZKMD8eq2HOjKDacDM6Yri1qu/5bT8+Mj5pH6Xu7Jdghe3pt o08PW5Uuh/qEeKt3dKius9WTtu36KqiCpUm/mPsXkLoyd4ZETRkIUHEXxzzc0vSIjGy9aZ GW07ECp+l3/YmuE4Ds0+GIXR7/mazUCXprDSJIEJqqu6SOYvo4WbSBNepKqd3g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lJV4JOfBuK0cfiSOyMQ1KagOb8YhOs04tAkNhQosFNg=; b=GppAjTKK75geqIs5UA8DUkH2/t58rlSV/eLAmTxDdm4FIpAaIpi7Q2zSz+KKbfTsbM/soq Il/AZedAtEJ8FhJV7JArBtWQRl7btT845iitNS3y3OLPcsDSijWlqJf94/CuZyE0JwfX75 lxRBPz4XHvOd81J142nd/1plfRh9fVeE7+oqUzbPDN+Gh6D9UvbEPTE0ybw6wsgt+zg/ng yr/zcGR2YJ6R/VVALDBMg+zCcwLxRdRL//zSuo5YOdiFSIx4HUgRiOmcBG07l+JKoC7nDR MrWlpQ2TkKv/2n+KjH7wDa+yENRHJf9XphyhANqZXOyJP0GY/17AzgvzwDh9eQ== 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 4RlTsW4rvGzg6n; Tue, 12 Sep 2023 16:42:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CGgtDA070455; Tue, 12 Sep 2023 16:42:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGgtSu070452; Tue, 12 Sep 2023 16:42:55 GMT (envelope-from git) Date: Tue, 12 Sep 2023 16:42:55 GMT Message-Id: <202309121642.38CGgtSu070452@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Pawel Stefaniak <pstef@FreeBSD.org> Subject: git: 0fd450e2895e - main - sh: tab-complete aliases List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pstef X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0fd450e2895e1f9085fbd361a2aad8421a16dc66 Auto-Submitted: auto-generated The branch main has been updated by pstef: URL: https://cgit.FreeBSD.org/src/commit/?id=0fd450e2895e1f9085fbd361a2aad8421a16dc66 commit 0fd450e2895e1f9085fbd361a2aad8421a16dc66 Author: Piotr Pawel Stefaniak <pstef@FreeBSD.org> AuthorDate: 2023-04-29 20:38:50 +0000 Commit: Piotr Pawel Stefaniak <pstef@FreeBSD.org> CommitDate: 2023-09-12 16:39:42 +0000 sh: tab-complete aliases Differential Revision: https://reviews.freebsd.org/D40619 --- bin/sh/histedit.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bin/sh/histedit.c b/bin/sh/histedit.c index 3ca8a0bcefa7..0d40e1c9ec1a 100644 --- a/bin/sh/histedit.c +++ b/bin/sh/histedit.c @@ -50,6 +50,7 @@ static char sccsid[] = "@(#)histedit.c 8.2 (Berkeley) 5/4/95"; /* * Editline and history functions (and glue). */ +#include "alias.h" #include "shell.h" #include "parser.h" #include "var.h" @@ -671,6 +672,14 @@ static char goto out; matches = rmatches; } + for (const struct alias *ap = NULL; (ap = iteralias(ap)) != NULL;) { + if (strncmp(ap->name, text, curpos) != 0) + continue; + rmatches = add_match(matches, ++i, &size, strdup(ap->name)); + if (rmatches == NULL) + goto out; + matches = rmatches; + } out: free(free_path); if (i == 0) { From nobody Tue Sep 12 16:42:56 2023 X-Original-To: dev-commits-src-main@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 4RlTsY2mr4z4stQG; Tue, 12 Sep 2023 16:42:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlTsY1TJBz3bYx; Tue, 12 Sep 2023 16:42:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zukko6J0j3fqF+pE2yUMtwJpyGFTJqZayiHzMoirlZs=; b=hU+B+1EH2GCE/YToFNCklmYWtLHQ4VM1nN7EhnUyLhnjaFG/03+p0B5UlrkPnPBAiH8ALH BUhBOJHi9P6PWerVRot9bEvmcLxeCocCbLIg8IA7hG0sIOqtv19kz+SBODnonkF443nmtX 1yHDb/Y16eeOciFiyaQRIO7piZhPXzJGFOHLcwC70T/g0hlkgCIIeVddF3ugAXmzorr56v P13yANDuHLZWOlKqz2x4pv9Ojqb3Gst0b1ZLOlDufKvrKiTlcFJvviXZm3XF+A5beaJM/U vCWZpYRQo2ypimsG+0DSlVqOtcQBAULS1PpCbp7GO5GPd8qLbQabsTYCplVd+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536977; a=rsa-sha256; cv=none; b=XpYnkZyft4JV5BSFV65TmjlQ82/BlERvj1KnfYiMlNHpciKKbXXCNLQTqCcXPalD0xJ/PR dgss8GHUF2gC0miJ+BzDpcq3remwRgeHA8ywQh2fQ2pQUhVrxbXWms0VXy1mD1DEEOjUi9 NhB6EDfu3P2FLclVcWckmXfEgAAQMWJOOEs2+90hwldU5wwmVWrS+N/oO3sCs2UO9QecZb +uBtNpMvht0o+BOMiotzmfppzaUcjKvB6eLijVeRuhkvu78j6eYK/MuLP2U/qjorsrhv9l ACCSnxScx/lafI/TDJcPJjXLjBJ+UcFl8r8kOmvhzvipFQ+30K1HNMdn8YkNNQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zukko6J0j3fqF+pE2yUMtwJpyGFTJqZayiHzMoirlZs=; b=ExNL/Umu3SQVI9KFx7Q/26Jxs9x/n9L9y+9ad2Cdpbji3Hsy+/xoGkvJrim3ED6w2GVIVZ LBSpS4Kq7Z0Bo/qKN6ZnJR99yGxIk/mOQDM3EBQSyOi9gHJi+RA9PE7bWeTbkfSkiHJ6ds lRSR+6q2ZiEBnI77kSJrRHAbcZnBUwEMNKTCPSqsjCZQrxHtOXLi7Ka101qBGQ8mZkV/hT YNoEeVI3eehLssOgCSrv7YrvWcyJMC0QTOU7gKQCPgt5o0+HY//7sOO3yJf6WHif7UBCl8 87sfdH/dFmbQr7FwKWqUZKUclTu790XIdNxR2QjnXwMdF0Yutx9OD+e6XQykxQ== 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 4RlTsX5vczzfjc; Tue, 12 Sep 2023 16:42:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CGguNU070519; Tue, 12 Sep 2023 16:42:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGguK8070516; Tue, 12 Sep 2023 16:42:56 GMT (envelope-from git) Date: Tue, 12 Sep 2023 16:42:56 GMT Message-Id: <202309121642.38CGguK8070516@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Pawel Stefaniak <pstef@FreeBSD.org> Subject: git: bec7b9a21979 - main - sh: introduce a function to iterate over all hashed commands List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pstef X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bec7b9a219790199c64d11833cc34d1ea505d1f4 Auto-Submitted: auto-generated The branch main has been updated by pstef: URL: https://cgit.FreeBSD.org/src/commit/?id=bec7b9a219790199c64d11833cc34d1ea505d1f4 commit bec7b9a219790199c64d11833cc34d1ea505d1f4 Author: Piotr Pawel Stefaniak <pstef@FreeBSD.org> AuthorDate: 2023-04-30 16:30:56 +0000 Commit: Piotr Pawel Stefaniak <pstef@FreeBSD.org> CommitDate: 2023-09-12 16:39:54 +0000 sh: introduce a function to iterate over all hashed commands While aliases and built-ins are opportunistically stored in cmdtable, each function will be added to it immediately on definition. Factor out the hashing function, write the iterator function and make it use the hashing function. Add the cmdname pointer to struct cmdentry so that the command name can be exposed that way. Differential Revision: https://reviews.freebsd.org/D40619 --- bin/sh/exec.c | 46 +++++++++++++++++++++++++++++++++++++++------- bin/sh/exec.h | 2 ++ 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/bin/sh/exec.c b/bin/sh/exec.c index 07ed6d4173ae..a3df254a39dd 100644 --- a/bin/sh/exec.c +++ b/bin/sh/exec.c @@ -545,6 +545,19 @@ clearcmdentry(void) } +static unsigned int +hashname(const char *p) +{ + unsigned int hashval; + + hashval = (unsigned char)*p << 4; + while (*p) + hashval += *p++; + + return (hashval % CMDTABLESIZE); +} + + /* * Locate a command in the command hash table. If "add" is nonzero, * add the command to the table if it is not already present. The @@ -559,17 +572,11 @@ static struct tblentry **lastcmdentry; static struct tblentry * cmdlookup(const char *name, int add) { - unsigned int hashval; - const char *p; struct tblentry *cmdp; struct tblentry **pp; size_t len; - p = name; - hashval = (unsigned char)*p << 4; - while (*p) - hashval += *p++; - pp = &cmdtable[hashval % CMDTABLESIZE]; + pp = &cmdtable[hashname(name)]; for (cmdp = *pp ; cmdp ; cmdp = cmdp->next) { if (equal(cmdp->cmdname, name)) break; @@ -588,6 +595,31 @@ cmdlookup(const char *name, int add) return cmdp; } +const void * +itercmd(const void *entry, struct cmdentry *result) +{ + const struct tblentry *e = entry; + size_t i = 0; + + if (e != NULL) { + if (e->next != NULL) { + e = e->next; + goto success; + } + i = hashname(e->cmdname) + 1; + } + for (; i < CMDTABLESIZE; i++) + if ((e = cmdtable[i]) != NULL) + goto success; + + return (NULL); +success: + result->cmdtype = e->cmdtype; + result->cmdname = e->cmdname; + + return (e); +} + /* * Delete the command entry returned on the last lookup. */ diff --git a/bin/sh/exec.h b/bin/sh/exec.h index 04d1b97d7386..493be0178272 100644 --- a/bin/sh/exec.h +++ b/bin/sh/exec.h @@ -53,6 +53,7 @@ struct cmdentry { struct funcdef *func; } u; int special; + const char *cmdname; }; @@ -71,3 +72,4 @@ int unsetfunc(const char *); int isfunc(const char *); int typecmd_impl(int, char **, int, const char *); void clearcmdentry(void); +const void *itercmd(const void *, struct cmdentry *); From nobody Tue Sep 12 16:42:57 2023 X-Original-To: dev-commits-src-main@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 4RlTsZ153Bz4stVs; Tue, 12 Sep 2023 16:42:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlTsZ0cTSz3bvx; Tue, 12 Sep 2023 16:42:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3oM3V/6V8fkZLWUivrm4W4xJPXDsTCPgIjtQaQrdvJE=; b=o2o2N8g1FgbvW6jff8WasBZRpmG9R3oNo+EM6Z6SK2n3s6c33JU1a4cBdZOTIjLO+mSQKV P0OEeXUc4b5qeJATQjGLRxSiLNSqMVWWSE2nNpm3r2r893rkls5Akx2rbXuwqU6DMLf6Ld kqdjqsW2OlLOupphBLAv4usG7Guv4NUvln3FsGxKIty3X+LW5F+TF403iUFh+9AOZM7xDE NogvwdwvnXzFmXI1KkLAToWAurEZGu2vAaMgVp5eeOt/pCdiXz19EUGxhlqfZi9Za8/h9t JOud3oMBl0r0LvDbygnyshAhDwLMmTBhe6GPzNV6EXFPh33KfgwL7aDEHmztGA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536978; a=rsa-sha256; cv=none; b=rxDulXAfnmJHY6usKJnTbVq/FMvyohVID+A8q4OPqEu9KKWgMJxFYHGK6pBTzE0OQi5yLE ZP0koy+uWuLme5Y6NmXzVgBDjGzfwuaWX1A2ixApvVNw2Kj6q787+C3jh51mD8y7wnh0jv p4bj7l8p90c/ZtI2WimAojZB77mMIxQusvAKNlBQMTeGYXft9OF/45Gty6Wy3vaF7pu4OH qsdJu3FTALbaSTitpWuogHqQpv3aI36lsmcz5bWzR1AwFtYpjS7KnEowQRZFhuTcsfds28 f14kn1au//lA6zdnNvE8VaXbU5MPdLqpzdQ7pLaUKGVpjfcehFE9zY1+4ll0XA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3oM3V/6V8fkZLWUivrm4W4xJPXDsTCPgIjtQaQrdvJE=; b=TReyBngZRw73966QfluUfjSpDjkvbbncfxajZogelOjgzbjMIvHI3zscsm3WT0aDm7Z/l8 mDGIf5dohYPWG05jxH6DMQ2b0iEHM6LobcPB1eafsCHORR1+lvNzZYooNgHiIyaUn/YNHF HYr6w/Fvl+dKiCSMq5xApMRdU1K2EWs8UXI+rX0+w0b5AHkBiKQ2mE9Lz+uznElG5eCYaV E3xdzxmHN/ezAbJghRTiCQuYe1UH7su8euE1L3NXtPW3MFK4zG9f8XGxDLh79sZwe87OXF cjKmd6qeRh6qwQf0mZkh42ospwxx3fLTzYCsV0LASeuYeFfpLRmVC5WsS2M+lg== 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 4RlTsY6nTzzg6p; Tue, 12 Sep 2023 16:42:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CGgv9r070561; Tue, 12 Sep 2023 16:42:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGgv4t070558; Tue, 12 Sep 2023 16:42:57 GMT (envelope-from git) Date: Tue, 12 Sep 2023 16:42:57 GMT Message-Id: <202309121642.38CGgv4t070558@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Pawel Stefaniak <pstef@FreeBSD.org> Subject: git: 8e5c53af831b - main - sh: also auto-complete functions List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pstef X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8e5c53af831bd180af0c59f2d96c67ab9da59590 Auto-Submitted: auto-generated The branch main has been updated by pstef: URL: https://cgit.FreeBSD.org/src/commit/?id=8e5c53af831bd180af0c59f2d96c67ab9da59590 commit 8e5c53af831bd180af0c59f2d96c67ab9da59590 Author: Piotr Pawel Stefaniak <pstef@FreeBSD.org> AuthorDate: 2023-04-30 16:31:52 +0000 Commit: Piotr Pawel Stefaniak <pstef@FreeBSD.org> CommitDate: 2023-09-12 16:40:05 +0000 sh: also auto-complete functions Differential Revision: https://reviews.freebsd.org/D40619 --- bin/sh/histedit.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bin/sh/histedit.c b/bin/sh/histedit.c index 0d40e1c9ec1a..842c166159bc 100644 --- a/bin/sh/histedit.c +++ b/bin/sh/histedit.c @@ -51,6 +51,7 @@ static char sccsid[] = "@(#)histedit.c 8.2 (Berkeley) 5/4/95"; * Editline and history functions (and glue). */ #include "alias.h" +#include "exec.h" #include "shell.h" #include "parser.h" #include "var.h" @@ -621,6 +622,7 @@ static char char **matches = NULL, **rmatches; size_t i = 0, size = 16, uniq; size_t curpos = end - start, lcstring = -1; + struct cmdentry e; in_command_completion = false; if (start > 0 || memchr("/.~", text[0], 3) != NULL) @@ -680,6 +682,16 @@ static char goto out; matches = rmatches; } + for (const void *a = NULL; (a = itercmd(a, &e)) != NULL;) { + if (e.cmdtype != CMDFUNCTION) + continue; + if (strncmp(e.cmdname, text, curpos) != 0) + continue; + rmatches = add_match(matches, ++i, &size, strdup(e.cmdname)); + if (rmatches == NULL) + goto out; + matches = rmatches; + } out: free(free_path); if (i == 0) { From nobody Tue Sep 12 19:10:39 2023 X-Original-To: dev-commits-src-main@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 4RlY80079Xz4tCQ6; Tue, 12 Sep 2023 19:10: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlY7z6p9wz4r0m; Tue, 12 Sep 2023 19:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694545840; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wxp+CX4Yy/1ERLYM7nfVwfX/MBNOmZEqjiMM5o6Ztxc=; b=wdslCBZ17SCKtdNLWwlrULHLEnkK2Z9PHEENn0ygTbXgOCOqfuQTB8hod2RCo4BQL123SM U775eZJeIexGH6BfWgXv1s8b+wjuWb1ZTH57GxoqTIupY7E6gR6ZJuwTdgxK3ziRWkLxYu Kj1QfcSi8t3RUVHqFZ/5dD1Cln6S1oUuqtP9B3DujEl0ggEzcZrhrkJAyekmWpbqrNANO4 rlMIDv4nZ2ch5vM1njwzbtzHwycD7ddO3pKQJlZxM/f9aOHTq1Rp44Bmv298dcqnPxeE5q +MBxmnnJ00A1RogTzCfUvTYh3uZ4MuFB0iH3LXgXQam7CHOb44f6ShtSM6SB4w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694545840; a=rsa-sha256; cv=none; b=Dw8bapV2QYJUUBhSyeg0t33V5xEhLpTsRMafl+T1Wzhq74ULc2aPHfj2iJHeoxY++nxJne BJbBGxxQmY7p85KrxfC6z5ZOZrUe/BtMI9MdjR1kidIDwiXnT9fVTgqMP/7jwrTMEpMpQ/ EAbpUgH3NVSVm9WXr2JabEKoMXpEtRwcyyqIUc+GdnPEgq0ZySGyGDMTdSf8TGqADRV+lR hiKv+07sr7QeVCRV8rA53mJD3JkOUgca1btdrDAROScQ75gX7wDcUllyE7eJkKTH3rjOi5 7Btk9/bdzaslealrpKyvLVk0HQlNfVxIE+ua7d7VzsIMfemsYA+IBGMpmdxsbw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694545840; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wxp+CX4Yy/1ERLYM7nfVwfX/MBNOmZEqjiMM5o6Ztxc=; b=YL9Aj+mDlTF2J/BqsuKdQaOj2rTRS4+3O5/rMNjxAapZcDJuOGQx/PPsejSZNrF0DL6C3q dIG6IZ12I1pDzCJRvWpDIOJQZp1ET9lqvBlx5ybokFYJjhQYLdnabWr4LeJ6Iutz54sMpi BHr7JfwNW1zb/waM1LHngMHugsLOBpIHrZT+HTipXtBS+cmHEEXl/x8vRwa6IPS9p03cR4 rj9pXYrClrrjy4rriWJdGVrNUnFL62XG4y6WTTGaqbLk5jfKMfQoocSZFEkXMmHrVKg3Uu nSn6FtZiTmv5T+rEVq5BI5D6DYWqdSJ9aJLtiYGl4LSsBqNJiuZ5DlF+u8TjIg== 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 4RlY7z5tl8zkFR; Tue, 12 Sep 2023 19:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CJAdTU017906; Tue, 12 Sep 2023 19:10:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CJAdu1017903; Tue, 12 Sep 2023 19:10:39 GMT (envelope-from git) Date: Tue, 12 Sep 2023 19:10:39 GMT Message-Id: <202309121910.38CJAdu1017903@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Pawel Stefaniak <pstef@FreeBSD.org> Subject: git: c996638497d1 - main - tslog.4: fix typo List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pstef X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c996638497d103c4ddcf097855fae7f3118f21da Auto-Submitted: auto-generated The branch main has been updated by pstef: URL: https://cgit.FreeBSD.org/src/commit/?id=c996638497d103c4ddcf097855fae7f3118f21da commit c996638497d103c4ddcf097855fae7f3118f21da Author: Piotr Pawel Stefaniak <pstef@FreeBSD.org> AuthorDate: 2023-09-12 19:10:08 +0000 Commit: Piotr Pawel Stefaniak <pstef@FreeBSD.org> CommitDate: 2023-09-12 19:10:08 +0000 tslog.4: fix typo --- share/man/man4/tslog.4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man4/tslog.4 b/share/man/man4/tslog.4 index 93fb66f9e857..40397d14c3e2 100644 --- a/share/man/man4/tslog.4 +++ b/share/man/man4/tslog.4 @@ -107,7 +107,7 @@ was added in is oriented towards system developers while .Xr boottrace 4 is meant to be easy to use by system administrators. -Both faciliities provide an overview of timing and resource usage of the boot +Both facilities provide an overview of timing and resource usage of the boot process. .Ss TSLOG vs. DTrace .Xr dtrace 1 From nobody Tue Sep 12 19:37:47 2023 X-Original-To: dev-commits-src-main@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 4RlYlH3YCsz4tR7c; Tue, 12 Sep 2023 19:37: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlYlH1k36z3F3g; Tue, 12 Sep 2023 19:37:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694547467; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NsIX4adFqnt12JDu8iw11cbq/1Tg/wtLwHbp6HDugM8=; b=t25FzpcAheV5UCvBqQv9JWW9vshJU481FABqdw4XebVTJjstOVR61IjEuRFdTyiN1+mGwv WtdIL6Rno/j7KUN7KGVB2Wzy1LnHXwmtjFbW9M5+rbEOcmaeSHXPR+g6qSAkqNyhczFpt8 u64u6Hi8sKe6OXCRoUKZq3IPnEZyeKtMnzInMwJkCUacByPymg2aFrILKrJcfbkRnhAxZH G+KQ21ejePlbd9yXrylcbMT3+IpKwm8aRHKgXgRmX9XoDHUskbkIT10cDCmOt1YSrjXzuc 3UrtNKp6f6Cs8KIn4VierSMkTuktBXf/iQJdVdrEj9s4PFDrGxoPKnh30CwQ1Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694547467; a=rsa-sha256; cv=none; b=uIcT8Bb75IV4YhfSyM8svXLib+q+1IFPbtIunt6hkVVYK+bNSb8ugf1LUdrxXxBPY/xRAS USrxcr0ppyxjXiKdKa/tmNUi4iATYGqOA1QQCU7A08o2AJQnYf5HpKHU3acFM9wPtaPEr1 gdNOYspuE+sYp61pgZcbIzQBF41Kh06FhLG9z2wNRMzidh4U2XSybV1Ok8C5BvDDA9DTm9 cbYPmd7bnbNLeeF53FdQxmwqhmpZ1bRv8RVZ8sVBhC3DHz5sfAjFBuCTGMoxjvXXAwLpmx FEuzPck59qHUd9yNeAJMciyxzGMQsZ22BH/59UjZWav1VQEOD1h4BZ/lsqoQtg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694547467; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NsIX4adFqnt12JDu8iw11cbq/1Tg/wtLwHbp6HDugM8=; b=HJtN5Q+d2kdhzXvWIQLKl3jyDoa/97RNNFG/72D/1Y0cGts4+96LWhRE44O6WjOsQf7Qof MFatEYi8KdkqyfAckzGlxkF4IlloKpFw5FDFRUkzVIfv67aFrLNueoPM3LIJYr0KY5TbnU mXlsEDLA4cB1/FJCg/xPZBOMIivZYPg8OFsbrBIAAoYj7rN9jzkWKKItu2Z1CR3w6zQXkA EyTewX9h5o+9vYlFHM8O/MQmaig+smOaSOZDC/I1QkooLywHXYYqYdnJ4tHvJvUhjjiPmh Fg56emXKaJgIDdLHWeBvPp2ca1gjpbxpT5NPLqgXxYhxh8F+8XQJgfeSGcW/eQ== 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 4RlYlH0nbTzl3M; Tue, 12 Sep 2023 19:37:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CJblQi056561; Tue, 12 Sep 2023 19:37:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CJblE4056558; Tue, 12 Sep 2023 19:37:47 GMT (envelope-from git) Date: Tue, 12 Sep 2023 19:37:47 GMT Message-Id: <202309121937.38CJblE4056558@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore <dougm@FreeBSD.org> Subject: git: e5635c3dab47 - main - powerpc_mmu_radix: include vm_radix.h file List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e5635c3dab47b19937622a70b4b443ffea2d5436 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=e5635c3dab47b19937622a70b4b443ffea2d5436 commit e5635c3dab47b19937622a70b4b443ffea2d5436 Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2023-09-12 19:35:48 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2023-09-12 19:35:48 +0000 powerpc_mmu_radix: include vm_radix.h file Replacing _vm_radix.h with vm_radix.h in one header file leaves one source file short of function definitions. Include vm_radix.h in that source file. Fixes a problem rooted in change 429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5. --- sys/powerpc/aim/mmu_radix.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/powerpc/aim/mmu_radix.c b/sys/powerpc/aim/mmu_radix.c index 32d08d2d7026..9c5b67121803 100644 --- a/sys/powerpc/aim/mmu_radix.c +++ b/sys/powerpc/aim/mmu_radix.c @@ -67,6 +67,7 @@ #include <vm/vm_extern.h> #include <vm/vm_pageout.h> #include <vm/vm_phys.h> +#include <vm/vm_radix.h> #include <vm/vm_reserv.h> #include <vm/vm_dumpset.h> #include <vm/uma.h> From nobody Tue Sep 12 21:01:02 2023 X-Original-To: dev-commits-src-main@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 4RlbbL6vH5z4svkn; Tue, 12 Sep 2023 21:01:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlbbL6Th9z3Yh6; Tue, 12 Sep 2023 21:01:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694552462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T5a3rh/IeZZhvSf0Ff96CoG8tSxP0Ph75/s2sg5DcQc=; b=Ng+M9FTN9NdJrzOfan2OVIl1aDl9euELdnmL81bP9KnzqlnObdX0/VTsob/T7NsZowGBB6 ro1X/KLoRDTg3mw2+xzFklie97TxY6V4WSvqodbbkNfDjWoyrZAS9vDOUaKcJ1nCVG2fbi Wz3UT9cJLILRg/C4tWM+dBhrc+85LAEik9YCPa1abP43VOOAwcanakBcPejcznSt7DAZ8a Vcs5CYL06b5SkxDGg5yVEpvucSzz70v343jpPKDZKgpVkYCJkqH36YhGw4v08qt66UI9on +VAw2JN7GsJQG8gsOjP65V2OF178TDlarrGkYc60CqL8HHBvAIwGcppRiUbvTw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694552462; a=rsa-sha256; cv=none; b=YmxVh6VYPXqg3bw6U+JQ/dDlFkQ1sYGta3VgntiYMrdkNBMhNScqxlQQ/mqUsDvJNvkh5h nZhhCzh2IVCqrP+Oh5OqlzFE3GA448tBaue0l1RGHJyAQpdMPRUibYn8XpSagVc9owUpaV lDdYm3ef0Mbc0NAnJnS6VtezaEBK+mqrKOxO8ajOrjCmkGTk+VWR/1BDcSNcYyL4LaXJu4 FU72LyZHgP23Dv9ZyEJp+ndieXhXpuUrL6CIOfAvmcN3UaWgQamN3hi3jetRlhEuaTnaQW qYC9GbcdVWtA70WJ2ONd7Rgj2sUf6OqcLurso39LhmFd8y2Viza63I/iUivB5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694552462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T5a3rh/IeZZhvSf0Ff96CoG8tSxP0Ph75/s2sg5DcQc=; b=rTT0wB4Tq/QZADo6x1iUd+O2zFqxtA1qT4VXkEYUt5LQ3gTmhCAmv1irnUVca3iP35Wr5F Jd0hTb1ufWDc9cIe270l0aqu1lsDxuK6LwV69zAkgNp1+RGxr3GdW2qAEtgVEw12rcv7cu VK5YXas3fi2AlCuWOLKofj+JXlrzzA1qUzmNudi/BO1gmxzKwpIVd4VkGV5wQESaYsEz0h aJW3MXosItQg7VlLRuwk7wUyLAVZig3Hf4SApWy+Ux5DFSBGIZl0flNe4Sr1Pr1yZNBPdJ rHmv7B9sWOSdRfpUtL7N+NlvDna0PcZoPtfGmdEhIhlFmCKc6G+78rizC/8Kqg== 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 4RlbbL5XCNznCv; Tue, 12 Sep 2023 21:01:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CL12gw099180; Tue, 12 Sep 2023 21:01:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CL12V4099177; Tue, 12 Sep 2023 21:01:02 GMT (envelope-from git) Date: Tue, 12 Sep 2023 21:01:02 GMT Message-Id: <202309122101.38CL12V4099177@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans <kevans@FreeBSD.org> Subject: git: c086d1cbc3d1 - main - ncurses: avoid hardcoded assumptions about the layout of .OBJDIR List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c086d1cbc3d13967c031e6420831349967dbcfa2 Auto-Submitted: auto-generated The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=c086d1cbc3d13967c031e6420831349967dbcfa2 commit c086d1cbc3d13967c031e6420831349967dbcfa2 Author: Kyle Evans <kevans@FreeBSD.org> AuthorDate: 2023-09-12 21:00:45 +0000 Commit: Kyle Evans <kevans@FreeBSD.org> CommitDate: 2023-09-12 21:00:45 +0000 ncurses: avoid hardcoded assumptions about the layout of .OBJDIR Abstract out the details of the FreeBSD build into a $TINFO_OBJDIR that external builds can override if they orchestrate the build a bit differently and have a different objdir layout as a result. This makes the ncurses build a little bit more flexible without requiring weird backflips. Reviewed by: bapt, sjg Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D41834 --- lib/ncurses/config.mk | 6 ++++-- lib/ncurses/ncurses/Makefile | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/ncurses/config.mk b/lib/ncurses/config.mk index 0016dc97a72f..8a3e7d0ffa59 100644 --- a/lib/ncurses/config.mk +++ b/lib/ncurses/config.mk @@ -6,6 +6,8 @@ NCURSES_MAJOR= 6 NCURSES_MINOR= 2 NCURSES_PATCH= 20210220 +TINFO_OBJDIR?= ${.OBJDIR:H}/tinfo + CFLAGS+= -D_XOPEN_SOURCE_EXTENDED NCURSES_CFG_H= ${.CURDIR}/ncurses_cfg.h @@ -17,7 +19,7 @@ CFLAGS+= -I${.CURDIR:H}/ncurses CFLAGS+= -I${NCURSES_DIR}/include CFLAGS+= -I${NCURSES_DIR}/ncurses -CFLAGS+= -I${.OBJDIR:H}/tinfo/ +CFLAGS+= -I${TINFO_OBJDIR} CFLAGS+= -Wall @@ -27,7 +29,7 @@ CFLAGS+= -DHAVE_CONFIG_H # everyone needs this .PATH: ${NCURSES_DIR}/include -.PATH: ${.OBJDIR:H}/tinfo/ +.PATH: ${TINFO_OBJDIR} # tools and directories AWK?= awk diff --git a/lib/ncurses/ncurses/Makefile b/lib/ncurses/ncurses/Makefile index b52085780952..e1a3dbf61e49 100644 --- a/lib/ncurses/ncurses/Makefile +++ b/lib/ncurses/ncurses/Makefile @@ -180,9 +180,9 @@ libncursesw.ald: ${.CURDIR}/${STATIC_LDSCRIPT} -e 's,@@STATICLIB_SUFFIX@@,${_STATICLIB_SUFFIX},g' \ ${.ALLSRC} > ${.TARGET} -lib_gen.c: MKlib_gen.sh ${.OBJDIR:H}/tinfo/curses.h ncurses_dll.h +lib_gen.c: MKlib_gen.sh ${TINFO_OBJDIR}/curses.h ncurses_dll.h LC_ALL=C sh ${NCURSES_DIR}/ncurses/base/MKlib_gen.sh "${CPP:N${CCACHE_BIN}} ${CFLAGS}" \ - "${AWK}" generated < ${.OBJDIR:H}/tinfo/curses.h >$@ + "${AWK}" generated < ${TINFO_OBJDIR}/curses.h >$@ expanded.c: MKexpanded.sh sh ${NCURSES_DIR}/ncurses/tty/MKexpanded.sh "${CC:N${CCACHE_BIN}} -E" ${CFLAGS} >expanded.c From nobody Tue Sep 12 23:39:00 2023 X-Original-To: dev-commits-src-main@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 4Rlg5c6yS2z4t6VR; Tue, 12 Sep 2023 23:39:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rlg5c6XkBz3Cq6; Tue, 12 Sep 2023 23:39:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694561940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1Xj+HWE8iaEsfz0/eduvECYvF/p86yMosxzH7rsgLsw=; b=OwnspFqrDp3FUc9sSXiRSm6j1ynDzmEqGjjjANLf3Xdd7/lqdl/1abUpS8XgPcjx8g4CW7 wVcJgwAOtqoMAR8qle4lFwNHquLkP6ZgSNMwKlxECIlPxwXxS3EXhogpY3TfHrMFH2p3a+ LsLFf9/0V/CaNu8n17lM+vGrguZOX6I/IxoAKrrQd57yS0p/2K8gCGynh+5R/FVjvguzR+ uh1D3i42UQK6OvTkQljebR0ipH7Ds7k2NjKyeecTpG1uBfSbp5yVQi6eA+CDloCDCJVDfl K4DI+bv9Di4pG9eOYnc7SgI+B6bHPpBzKKb+B14F7Gfe/OQzW++xehwQ1yVNWw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694561940; a=rsa-sha256; cv=none; b=rziOIJcJ1hpHIVuZfCV+/GgOZMnUr/mJ0/TOeTnU2qj173R5l3camb3k+L/Q8dofTgD1bS C+PZMi8Cwz1k0Vi+1jGnYfscPiOpB1EGcqbSMyDACkyamL5wn2lHbFmCOj6NnfjFhV3Fg7 wCifoIhUOB94Q0hfW9gYqkJY0dc80KPF6vfOJFGKmyf1oELmTiGeppiRSqtwyF9eXGSvJM hOXumbhf9j7KCru1bfM+Z6dD0rR8eUwtTz+80cwDS0yufKcAE1z6LGADKu0UezpUc9SJs2 a5L2gvApq1tm0HZqAG7t1SM14pn9LvhYDF9JpHIl6ItozcaSXFAjth9lw/le4Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694561940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1Xj+HWE8iaEsfz0/eduvECYvF/p86yMosxzH7rsgLsw=; b=iZCJZFSuaXBLSqIY/dpnQnCadCuEwiu4SKbSuqfcpjrPYZFQQosjggVEkB9v/xSTuLHnIP hMBsin6svgRfXV7l8Kgs7Iw93kymns5n/ytzniUpjpq9C+syXvUTJSvlKrkDx11A6BCUqz TZBwNexWdGKFKd3uLLKIcFA6p6TJ9MlhRdJOlP7V/4lQ32kI4jwGNi8cZ0d/h2CtMICeNZ DPWKNiQmgUeE+5uK6QN/qmmHZh8xiPZmpCSddOkYCwZVfw9BdV4c7r+8KMxW1jIZU81D0j o2JspHJ6ZyeGIkv8vw8WqJZxcFHrrmAjWdOpE0GDcKswNHADjD8ezPn/N3FlSA== 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 4Rlg5c5GN3zrYY; Tue, 12 Sep 2023 23:39:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CNd0Gk054411; Tue, 12 Sep 2023 23:39:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CNd0Au054408; Tue, 12 Sep 2023 23:39:00 GMT (envelope-from git) Date: Tue, 12 Sep 2023 23:39:00 GMT Message-Id: <202309122339.38CNd0Au054408@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michael Tuexen <tuexen@FreeBSD.org> Subject: git: 81c5f0fac91d - main - sctp: improve shutting down the read side of a socket List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 81c5f0fac91dfae64205a6c4f9b2a469d1187372 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=81c5f0fac91dfae64205a6c4f9b2a469d1187372 commit 81c5f0fac91dfae64205a6c4f9b2a469d1187372 Author: Michael Tuexen <tuexen@FreeBSD.org> AuthorDate: 2023-09-12 23:33:54 +0000 Commit: Michael Tuexen <tuexen@FreeBSD.org> CommitDate: 2023-09-12 23:36:14 +0000 sctp: improve shutting down the read side of a socket When shutdown(..., SHUT_RD) or shutdown(..., SHUT_RDWR) is called, really clean up the read queue and issue an ungraceful shutdown if user messages are affected. Reported by: syzbot+d4e1d30d578891245f59@syzkaller.appspotmail.com MFC after: 3 days --- sys/netinet/sctp_usrreq.c | 90 ++++++++++++++++++++++++++++++----------------- 1 file changed, 57 insertions(+), 33 deletions(-) diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c index 52b4faf48574..02bb87578528 100644 --- a/sys/netinet/sctp_usrreq.c +++ b/sys/netinet/sctp_usrreq.c @@ -777,52 +777,76 @@ sctp_disconnect(struct socket *so) int sctp_flush(struct socket *so, int how) { - /* - * We will just clear out the values and let subsequent close clear - * out the data, if any. Note if the user did a shutdown(SHUT_RD) - * they will not be able to read the data, the socket will block - * that from happening. - */ + struct epoch_tracker et; + struct sctp_tcb *stcb; + struct sctp_queued_to_read *control, *ncontrol; struct sctp_inpcb *inp; + struct mbuf *m, *op_err; + bool need_to_abort = false; + /* + * For 1-to-1 style sockets, flush the read queue and trigger an + * ungraceful shutdown of the association, if and only if user + * messages are lost. Loosing notifications does not need to be + * signalled to the peer. + */ + if (how == PRU_FLUSH_WR) { + /* This function is only relevant for the read directions. */ + return (0); + } inp = (struct sctp_inpcb *)so->so_pcb; if (inp == NULL) { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); return (EINVAL); } - SCTP_INP_RLOCK(inp); - /* For the 1 to many model this does nothing */ + SCTP_INP_WLOCK(inp); if (inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) { - SCTP_INP_RUNLOCK(inp); + /* For 1-to-many style sockets this function does nothing. */ + SCTP_INP_WUNLOCK(inp); return (0); } - SCTP_INP_RUNLOCK(inp); - if ((how == PRU_FLUSH_RD) || (how == PRU_FLUSH_RDWR)) { - /* - * First make sure the sb will be happy, we don't use these - * except maybe the count - */ - SCTP_INP_WLOCK(inp); - SCTP_INP_READ_LOCK(inp); - inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_CANT_READ; - SCTP_INP_READ_UNLOCK(inp); + stcb = LIST_FIRST(&inp->sctp_asoc_list); + if (stcb == NULL) { SCTP_INP_WUNLOCK(inp); - SOCK_LOCK(so); - KASSERT(!SOLISTENING(so), - ("sctp_flush: called on listening socket %p", so)); - SCTP_SB_CLEAR(so->so_rcv); - SOCK_UNLOCK(so); + return (ENOTCONN); } - if ((how == PRU_FLUSH_WR) || (how == PRU_FLUSH_RDWR)) { - /* - * First make sure the sb will be happy, we don't use these - * except maybe the count - */ - SOCK_LOCK(so); - KASSERT(!SOLISTENING(so), - ("sctp_flush: called on listening socket %p", so)); - SOCK_UNLOCK(so); + SCTP_TCB_LOCK(stcb); + SCTP_INP_READ_LOCK(inp); + inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_CANT_READ; + SOCK_LOCK(so); + TAILQ_FOREACH_SAFE(control, &inp->read_queue, next, ncontrol) { + if ((control->spec_flags & M_NOTIFICATION) == 0) { + need_to_abort = true; + } + TAILQ_REMOVE(&inp->read_queue, control, next); + control->on_read_q = 0; + for (m = control->data; m; m = SCTP_BUF_NEXT(m)) { + sctp_sbfree(control, control->stcb, &so->so_rcv, m); + } + if (control->on_strm_q == 0) { + sctp_free_remote_addr(control->whoFrom); + if (control->data) { + sctp_m_freem(control->data); + control->data = NULL; + } + sctp_free_a_readq(stcb, control); + } else { + stcb->asoc.size_on_all_streams += control->length; + } } + SOCK_UNLOCK(so); + SCTP_INP_READ_UNLOCK(inp); + if (need_to_abort) { + inp->last_abort_code = SCTP_FROM_SCTP_USRREQ + SCTP_LOC_6; + SCTP_INP_WUNLOCK(inp); + op_err = sctp_generate_cause(SCTP_CAUSE_OUT_OF_RESC, ""); + NET_EPOCH_ENTER(et); + sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_LOCKED); + NET_EPOCH_EXIT(et); + return (ECONNABORTED); + } + SCTP_TCB_UNLOCK(stcb); + SCTP_INP_WUNLOCK(inp); return (0); } From nobody Wed Sep 13 02:11:12 2023 X-Original-To: dev-commits-src-main@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 4RlkTF0ZZrz4sTXL; Wed, 13 Sep 2023 02:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlkTF07Y0z4Kpl; Wed, 13 Sep 2023 02:11:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694571073; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HxtmMMCY5zMzlIt/lqb3vWA63aySyiVnEmmSjFwlNa8=; b=M5+tVn5lOm7V0C9kQoarFTC+ezaIZ7xdOnCWEzaCXW8IeUK143dZBvb3FbK/zE2byLQrBb 3l/HTIThgAoIIBIWYVeGqF3KuZFSqhDAS+frOiMpqiD+RjD9kSw8JlW9YtksfP+hvUXl5Z 4cCAaelm6CpCXAsShxgwXm78Q5AE3XsQlpMUBsmNBP+v993tZZTSwoBnRfiblRjRLLku2c T7VxddrJLgkcOxc3PxSrp1W0SQd9AeepNUthcrcx/SYknG/0Xx+iE+/s2YmNKVnffg0Nv9 OyJm1LJh3kp1NUSXh3jFJHoIkTFUN8dE9La5/Tb8zDSM6/dpCKO6+YFDda/Aag== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694571073; a=rsa-sha256; cv=none; b=yzp23Wfqd12xEqhu7MyTN3ZryL26TYwEYL7CMPkplYZ8MCiAknN171jXnjeQEvCg275Eyz T83+JKCVSovvAusue5qmGVd5sI9JrSrxaaj1XR7mCefJ0LC4GHoxTYWZZnuwbIgd4S5+GL 8ETJvaK71Czdh3qGDMSwEYksqxci2u12SU4ZgqUVnyBbG2Yz5X3z+Iz2GhnMiCb0fTMqLQ modfqr6K9nInxrMLriUUiozJ3OWImIuUY6TGRIco9GidJ6ftd73Kh0pTdxkTTAu4bzTA6A TcPQEJWoEYF+XotfwPFhF9wHpc8SiuK628MYUQmdtr5NyJvYn/1Ou9XLYCyOjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694571073; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HxtmMMCY5zMzlIt/lqb3vWA63aySyiVnEmmSjFwlNa8=; b=HMNZ25AZM4AlitE3HxIo6BuA+nO4kzi7Fhl3FmzCTRhXOyS7ZD3IiDnKFdFf74XN37B8ZZ UXjmeMBUbZU33ZHqShsKICTlRjaW8twFUpsnbfQ9UMKyVj5s5xmV//3AWGR+GwPEFSypt+ 15BO4jGIsjnrCC1hTWzxHISNwUNGl4ffXAYNExzBbb6mrzO8PRGcfyIcBBTWw7beTg7TWC DWwBhy0avFMnaQ6NPbIbf917LxFYJ7+jaCrHDT3T9qtSetftSYOZoEm4VHjQaMT4tBYcDA sy5dOuLEot7KdoM3FoyRtBvADQkZayaUYlYjnZPVXtxyFVpW3nSf5kBQiBwTiw== 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 4RlkTD6L3JzwR9; Wed, 13 Sep 2023 02:11:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38D2BCju012379; Wed, 13 Sep 2023 02:11:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38D2BC8i012376; Wed, 13 Sep 2023 02:11:12 GMT (envelope-from git) Date: Wed, 13 Sep 2023 02:11:12 GMT Message-Id: <202309130211.38D2BC8i012376@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Cy Schubert <cy@FreeBSD.org> Subject: git: 7f5e3b9fa3d1 - main - ipfilter: Avoid allocating a new ipf token when not needed List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7f5e3b9fa3d159b7f061b4d01a767cbe5d0527f3 Auto-Submitted: auto-generated The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=7f5e3b9fa3d159b7f061b4d01a767cbe5d0527f3 commit 7f5e3b9fa3d159b7f061b4d01a767cbe5d0527f3 Author: Cy Schubert <cy@FreeBSD.org> AuthorDate: 2023-09-12 20:29:29 +0000 Commit: Cy Schubert <cy@FreeBSD.org> CommitDate: 2023-09-13 02:10:40 +0000 ipfilter: Avoid allocating a new ipf token when not needed Only allocate a new ipftoken_t if one cannot be found. This eliminates allocating unnecessary token structures that will never be used when performing simple lookups for existing token structures. MFC after: 2 weeks --- sys/netpfil/ipfilter/netinet/fil.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/sys/netpfil/ipfilter/netinet/fil.c b/sys/netpfil/ipfilter/netinet/fil.c index 7dee98d0c1ad..b04ec3496a65 100644 --- a/sys/netpfil/ipfilter/netinet/fil.c +++ b/sys/netpfil/ipfilter/netinet/fil.c @@ -7460,10 +7460,6 @@ ipf_token_find(ipf_main_softc_t *softc, int type, int uid, void *ptr) { ipftoken_t *it, *new; - KMALLOC(new, ipftoken_t *); - if (new != NULL) - bzero((char *)new, sizeof(*new)); - WRITE_ENTER(&softc->ipf_tokens); for (it = softc->ipf_token_head; it != NULL; it = it->ipt_next) { if ((ptr == it->ipt_ctx) && (type == it->ipt_type) && @@ -7472,6 +7468,10 @@ ipf_token_find(ipf_main_softc_t *softc, int type, int uid, void *ptr) } if (it == NULL) { + KMALLOC(new, ipftoken_t *); + if (new != NULL) + bzero((char *)new, sizeof(*new)); + it = new; new = NULL; if (it == NULL) { @@ -7483,11 +7483,6 @@ ipf_token_find(ipf_main_softc_t *softc, int type, int uid, void *ptr) it->ipt_type = type; it->ipt_ref = 1; } else { - if (new != NULL) { - KFREE(new); - new = NULL; - } - if (it->ipt_complete > 0) it = NULL; else From nobody Wed Sep 13 11:02:21 2023 X-Original-To: dev-commits-src-main@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 4RlyG55lpWz4sjp0; Wed, 13 Sep 2023 11:02: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlyG52VCJz4mHY; Wed, 13 Sep 2023 11:02:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694602941; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PZRnuSLytcpQ2uN2PdlNYMdBM44YDidN+ZKuQ+M9ebc=; b=we6aqTaahh2bCjDRu5+ZSiFcm7GFgshAf5W8lJkXh1yfaCMiaBBUlDHo2uzhv6rp4qtODx bcUbeiBj9DnzN2ZQKnLizZrQplhOpbxsRfENuVvr8IaFspWohWVebnv3r1Ny97t3uq6A6i Zqe8WPUF2k0vxrgT/wem/SuKl8FJZAGlSPB4FTryAH8c16kOkQbF+5diQGli74AZzxyqWw aYpmWURqIPDKTlGIjxjOUGlYRMAo0CIWkBcGFnBNtmZPnyY5K6lIdVJ2cQm0hyHev7YWzc /CD/c5CZfqS+IZOZhZjaOSitKZxizWtBISZ14ZIf0pho7i8RwO2F7/AT59Serg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694602941; a=rsa-sha256; cv=none; b=uztgtlUopLvuAjUIfVSl4PiQDgUT1wUZgHku0kY/pJ5I76I78FteJKSXmO/N3qh6wH7Rgj t63XjV/wzS1CldXBijwo7atALQDmOvuk/dXni5lSl0MVKz38ROgyoT37kBZBnj7hVwLG5Q OMstuaENkDFBHE9Yt91prw9HyqYCLORZv7U7Rw6DXzb5fzRKUPRWoXfFEFc09i6oEQH3/7 zzCx4Hq2CR5l6Aajq4cviq/cpq2omBw+biwjW/jUbgQ0TlnIltuRmFm4FO5pqgciFnafIB Wd7sdhyC9qzm9TUqnOKPI5ziPGlX8OppmPBiNHlH6HOsvUP4KUl26PYMLn1LHQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694602941; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PZRnuSLytcpQ2uN2PdlNYMdBM44YDidN+ZKuQ+M9ebc=; b=oe1FyjFhoXzvPzxL2zcFQz2ESMkK4ozEKNrR8wL/flzfgoGR+Zn3bzJDu0C4fN5mFWdBP8 g2ur99NZLIiAa8SzZUmamGt2d5KnWTvJ1KuIXfJHOqnlY7maofw5GBtIiwOQWmZTJqgcMp AM7GG6JwyjtQzgDyfShga7Z+2XFmX3H7R48AgE7ey2n90lxUVyjSSPPkfnGi2YBpMEPow7 5L0MTdRbS73FSiR10C5iUGRLKhLZF4rp/RAVEAA3t+GGBIzRqssT9mZibsHwXa45suZ95q jQ66H48N0BIU9vRPmj93UKAX9SUnzZwKdUCVEbyDns4FES4mK07RpnDHhLxAJw== 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 4RlyG51Slrz19tt; Wed, 13 Sep 2023 11:02:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DB2LCN099547; Wed, 13 Sep 2023 11:02:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DB2LiJ099544; Wed, 13 Sep 2023 11:02:21 GMT (envelope-from git) Date: Wed, 13 Sep 2023 11:02:21 GMT Message-Id: <202309131102.38DB2LiJ099544@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Wei Hu <whu@FreeBSD.org> Subject: git: ab7dc1ceb6d3 - main - mana: add ioctl to support toggling offloading features List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: whu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ab7dc1ceb6d36fd804bedb818086ae3ff6692bf7 Auto-Submitted: auto-generated The branch main has been updated by whu: URL: https://cgit.FreeBSD.org/src/commit/?id=ab7dc1ceb6d36fd804bedb818086ae3ff6692bf7 commit ab7dc1ceb6d36fd804bedb818086ae3ff6692bf7 Author: Wei Hu <whu@FreeBSD.org> AuthorDate: 2023-09-13 10:48:02 +0000 Commit: Wei Hu <whu@FreeBSD.org> CommitDate: 2023-09-13 10:59:40 +0000 mana: add ioctl to support toggling offloading features With this support, users can enable or disable offloading features such as txcsum, rxcsum, tso and software lro through ifconfig. To enable or disable tx features, do it on mana interface first, then hn/netvsc to sync it up with mana. For example: ifconfig mana0 -txcsum ifconfig hn0 -tscsum To enable or disable rx features, just applying on mana interface would be sufficient. Disabling txcsum imples disabling tso. Enabling tso when txcsum is disabled will result in an error message in dmesg requesting to enable txcsum first. Above applies to ipv6 offloading features as well. Tested by: whu MFC after: 3 days Sponsored by: Microsoft --- sys/dev/mana/mana_en.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/sys/dev/mana/mana_en.c b/sys/dev/mana/mana_en.c index 56fa4e51ba26..064b28fa94a4 100644 --- a/sys/dev/mana/mana_en.c +++ b/sys/dev/mana/mana_en.c @@ -169,7 +169,7 @@ mana_ioctl(if_t ifp, u_long command, caddr_t data) struct ifrsshash *ifrh; struct ifreq *ifr; uint16_t new_mtu; - int rc = 0; + int rc = 0, mask; switch (command) { case SIOCSIFMTU: @@ -214,6 +214,81 @@ mana_ioctl(if_t ifp, u_long command, caddr_t data) } break; + case SIOCSIFCAP: + MANA_APC_LOCK_LOCK(apc); + ifr = (struct ifreq *)data; + /* + * Fix up requested capabilities w/ supported capabilities, + * since the supported capabilities could have been changed. + */ + mask = (ifr->ifr_reqcap & if_getcapabilities(ifp)) ^ + if_getcapenable(ifp); + + if (mask & IFCAP_TXCSUM) { + if_togglecapenable(ifp, IFCAP_TXCSUM); + if_togglehwassist(ifp, (CSUM_TCP | CSUM_UDP | CSUM_IP)); + + if ((IFCAP_TSO4 & if_getcapenable(ifp)) && + !(IFCAP_TXCSUM & if_getcapenable(ifp))) { + mask &= ~IFCAP_TSO4; + if_setcapenablebit(ifp, 0, IFCAP_TSO4); + if_sethwassistbits(ifp, 0, CSUM_IP_TSO); + mana_warn(NULL, + "Also disabled tso4 due to -txcsum.\n"); + } + } + + if (mask & IFCAP_TXCSUM_IPV6) { + if_togglecapenable(ifp, IFCAP_TXCSUM_IPV6); + if_togglehwassist(ifp, (CSUM_UDP_IPV6 | CSUM_TCP_IPV6)); + + if ((IFCAP_TSO6 & if_getcapenable(ifp)) && + !(IFCAP_TXCSUM_IPV6 & if_getcapenable(ifp))) { + mask &= ~IFCAP_TSO6; + if_setcapenablebit(ifp, 0, IFCAP_TSO6); + if_sethwassistbits(ifp, 0, CSUM_IP6_TSO); + mana_warn(ifp, + "Also disabled tso6 due to -txcsum6.\n"); + } + } + + if (mask & IFCAP_RXCSUM) + if_togglecapenable(ifp, IFCAP_RXCSUM); + /* We can't diff IPv6 packets from IPv4 packets on RX path. */ + if (mask & IFCAP_RXCSUM_IPV6) + if_togglecapenable(ifp, IFCAP_RXCSUM_IPV6); + + if (mask & IFCAP_LRO) + if_togglecapenable(ifp, IFCAP_LRO); + + if (mask & IFCAP_TSO4) { + if (!(IFCAP_TSO4 & if_getcapenable(ifp)) && + !(IFCAP_TXCSUM & if_getcapenable(ifp))) { + MANA_APC_LOCK_UNLOCK(apc); + if_printf(ifp, "Enable txcsum first.\n"); + rc = EAGAIN; + goto out; + } + if_togglecapenable(ifp, IFCAP_TSO4); + if_togglehwassist(ifp, CSUM_IP_TSO); + } + + if (mask & IFCAP_TSO6) { + if (!(IFCAP_TSO6 & if_getcapenable(ifp)) && + !(IFCAP_TXCSUM_IPV6 & if_getcapenable(ifp))) { + MANA_APC_LOCK_UNLOCK(apc); + if_printf(ifp, "Enable txcsum6 first.\n"); + rc = EAGAIN; + goto out; + } + if_togglecapenable(ifp, IFCAP_TSO6); + if_togglehwassist(ifp, CSUM_IP6_TSO); + } + + MANA_APC_LOCK_UNLOCK(apc); +out: + break; + case SIOCSIFMEDIA: case SIOCGIFMEDIA: case SIOCGIFXMEDIA: From nobody Wed Sep 13 11:23:58 2023 X-Original-To: dev-commits-src-main@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 4Rlyl311V3z4swMH; Wed, 13 Sep 2023 11:23:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rlyl30D1mz4ttm; Wed, 13 Sep 2023 11:23:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694604239; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bj4+x1RF+8YVHfKXRol8YqdC3PCZrY4or4wMWnr83bI=; b=NI4I5fDEstNSbG5xVniIMOaUEWHsI/JLVX42gD+U1PJ9v0RLpNwpaXliRJVixKxv7gjSf/ /DH5Lwx/iWBhe0KiPvjNcFlXVeRMNMHKukSjjGsboahsCI64bhQ1Hc46dBEiMSJyBSDvnW 9Lg/y9A2CWGStalDxaFF4NtDUnha1oj48YlxgSbaldxN3ClfLd2Vt1O/lgSJbl99aVpX4i YT7Jt1sgbt09Rm806zZzl5JEfovuJuF83AnwiD0XRU3MS8XfoAt4KGcqKGK8fumBsiuEPi FoBMBOtWv0nNr6LakRJHThcUGKOrfn/+nQBSnGRPEyEE+zJnkLarm2A0AkGnwA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694604239; a=rsa-sha256; cv=none; b=mz/98oGSySY2VY0ijSnQdHNjBOljcThDUqL0Rczsnu1GgX3dL/dxp/9YXQtHLBNwf5n+39 PMgOJ6T4B1EpkCeByqfJRA7beOkRp1m9GckTzC5SE1z3y1MxWC2MAiRGYP9ghKFUjkZogY DoD2x+eXoCG/dSB2IQKUosgtLqveKRgtnDczXZCXZMaIRldfNKx9fPp5plT2cOVT3f1ruf lSJE/k2m0chv/erS5PbYOh4COR/vp2dH7bZvVM4mPNmI48K7O9FQGYTF7MIOaZs6kj3A8M gVt2RkPe1G3fdMfKZ5UWgHNlTjFU/0dpt2afQcbTXaiLhCmj/uqAmk/3EgJSZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694604239; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bj4+x1RF+8YVHfKXRol8YqdC3PCZrY4or4wMWnr83bI=; b=Z/gDHvieD0zFVg4uI8qNHvs7fTzc6pSyNbE9EChgLE52dfYI+Mc2Td8ze7N3YatRGWtvka PdZp0n950ssZHuNU9M6eG2oexf0A8My6IKSfZMoAo/iZBfbYwEBSn1yPdpP/cG3TjDnX5q J1DOGzo/gGnt7Ux5TsXxxrPfAj16SkJS/13m+fSJwWJxViXjsTCTnttLmuNjgn9vF6GGAp GzeW0Hh8c4bsIsU8HZLFD4+4iPbm5Fjz1W9B266evjN+FeZKqtgsDrODwWXlSi9VQtY7M2 YW0S17MrfIk9kShZj0Dqjgqxp57Au7qjK2iE7HWu37cupgYk6ZuciBkU5TluLw== 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 4Rlyl26PYwz1C68; Wed, 13 Sep 2023 11:23:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DBNwbU033066; Wed, 13 Sep 2023 11:23:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DBNwUb033063; Wed, 13 Sep 2023 11:23:58 GMT (envelope-from git) Date: Wed, 13 Sep 2023 11:23:58 GMT Message-Id: <202309131123.38DBNwUb033063@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost <kp@FreeBSD.org> Subject: git: 7d45cdbad4d7 - main - pf tests: pfsync:defer requires scapy List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7d45cdbad4d7905239404e1abc25dbbae4658446 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=7d45cdbad4d7905239404e1abc25dbbae4658446 commit 7d45cdbad4d7905239404e1abc25dbbae4658446 Author: Kristof Provost <kp@FreeBSD.org> AuthorDate: 2023-09-13 09:11:02 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2023-09-13 09:12:27 +0000 pf tests: pfsync:defer requires scapy Add the kyua hint so we skip the test if it's not installed. Sponsored by: Rubicon Communications, LLC ("Netgate") --- tests/sys/netpfil/pf/pfsync.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/sys/netpfil/pf/pfsync.sh b/tests/sys/netpfil/pf/pfsync.sh index d62cdddd504a..80b81205b59d 100644 --- a/tests/sys/netpfil/pf/pfsync.sh +++ b/tests/sys/netpfil/pf/pfsync.sh @@ -118,6 +118,7 @@ defer_head() { atf_set descr 'Defer mode pfsync test' atf_set require.user root + atf_set require.progs scapy } defer_body() From nobody Wed Sep 13 11:43:53 2023 X-Original-To: dev-commits-src-main@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 4RlzB15nKVz4t6Zk; Wed, 13 Sep 2023 11:43: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlzB15LGcz3GbJ; Wed, 13 Sep 2023 11:43:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694605433; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Go/QjVOACKp6zvYVxLNLvKscRyFsL+kS+oeUxEzMnDw=; b=Wd4WKLRd96QOIBGMPRRwQADVTQWBlG6buVHSXKZDtFE0xUD6wS4WAkmGLhIG1o27lFTgB3 FOu7TkZPCa3IJ83Kp8NHA96RDXuU1pH4hBAVejxy9hM6LYLSQYqp2WNU7/aQ0yspR/57TS M0/jDXFZ6N1wCm9ebYXCCMYRxpHUG5yWuK53ePgJJ/XtHF73tjxVWnqx2IU+YdgEk1ctaD V7FNz3kcIT3Xb8akbCVDUXXiprzDI1PjV7jigST00qxlAI5U327h5ASNOc9nf3QyDdTXDZ OSSoFnAQLJuaHgh3Iby1IxDaBn7nY5H7aBVext4fhF7gS4do0tmWCwIDrnqi+g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694605433; a=rsa-sha256; cv=none; b=NsxX2n5JJzouf79Ywe1tZI+Kwjnbia4ZSMywcLJ5InSjzlkZ26951566WsrUbpWaMXdjEr qgbZiFQu+EVsOoLBIoOo6hZmGS/u9DRd6T6cIvFqo8YQgCp2jzdJB//NHXEJn87lbnnCFV yt1PXE9xEPWl1PVnpb+e/wGtHJU940aj1bUEHf1kchN0NIKv1yjTbWOWGz6P+0mZG+TNMw DGOj2Tge23fGWZcHtzFwoidYN6MT80heuWndYfGofG46HB1aLaPCUeEjCmwClpRCrhBoI5 z/Q+QmB42HMjYqiGMZWlHhmrBuN3QBOo1xlgaUn1HcH26V1aPUjiC7MRW95ypw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694605433; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Go/QjVOACKp6zvYVxLNLvKscRyFsL+kS+oeUxEzMnDw=; b=CtfG93r1kleke2XBuK7gE3Yfr0Za23J0jf1Kf8T7KqY8z2eKIfz34jrZtmVSEgaMPtZD1R ymc5u+DyMfT67S+S++M56OcABzsDJU+0b8uu41oqK/H/jhUX+GP28xNTdBRLHBs9qBRHBh 3WV8+QWTjUKBXmwc+aoWvtpgPaqKupLuao/YffpcmcbVNarIoHTvGD4VIA1Woe/u51umb3 ZQO/xQMzgxh648fQYzpDYOw0BA6+h+7W1p7Mngjqqz+557HII4qGnjuJZ6nY1V01s9vnU7 5pXILilhIQtPXkVFtEBfcR5w65HFwfdhWVd3BQDe5wV8Nm8vJrV0Gu3Yx2p8Og== 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 4RlzB14RVjz1C9g; Wed, 13 Sep 2023 11:43:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DBhrF0066234; Wed, 13 Sep 2023 11:43:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DBhrVA066232; Wed, 13 Sep 2023 11:43:53 GMT (envelope-from git) Date: Wed, 13 Sep 2023 11:43:53 GMT Message-Id: <202309131143.38DBhrVA066232@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org> Subject: git: d2c839eee0d5 - main - Belatedly document OPIE removal in RELNOTES and UPDATING. List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: d2c839eee0d5410095f5984d2126f41f4cf62a00 Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=d2c839eee0d5410095f5984d2126f41f4cf62a00 commit d2c839eee0d5410095f5984d2126f41f4cf62a00 Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2023-09-13 11:43:34 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2023-09-13 11:43:45 +0000 Belatedly document OPIE removal in RELNOTES and UPDATING. MFC after: 3 days Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D41822 --- RELNOTES | 7 +++++++ UPDATING | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/RELNOTES b/RELNOTES index 0ff123618e14..f3d717525929 100644 --- a/RELNOTES +++ b/RELNOTES @@ -148,6 +148,13 @@ f0bc4ed144fc: instructions may be probed instead of logical entry and return instructions. The provider is currently amd64-only. +0aa2700123e2: + OPIE has been removed from the base system. If you still wish + to use it, install the security/opie port. Otherwise, make + sure to remove or comment out any mention of pam_opie and + pam_opieaccess from your PAM policies (etcupdate will normally + take care of this for the stock policies). + 0eea46fb1f83: Removed telnetd. diff --git a/UPDATING b/UPDATING index b370f2f3ebb4..59788ab2c15d 100644 --- a/UPDATING +++ b/UPDATING @@ -207,6 +207,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW: after upgrading to restore all the component that were previously installed. +20221002: + OPIE has been removed from the base system. If needed, it can + be installed from ports (security/opie) or packages (opie). + Otherwise, make sure that your PAM policies do not reference + pam_opie or pam_opieaccess. + 20220610: LinuxKPI pm.h changes require an update to the latest drm-kmod version before re-compiling to avoid errors. From nobody Wed Sep 13 13:08:40 2023 X-Original-To: dev-commits-src-main@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 4Rm14R4Dbxz4sbs8; Wed, 13 Sep 2023 13:09:11 +0000 (UTC) (envelope-from gallatin@fastmail.com) Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.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 mx1.freebsd.org (Postfix) with ESMTPS id 4Rm14Q5Bgnz3fgZ; Wed, 13 Sep 2023 13:09:10 +0000 (UTC) (envelope-from gallatin@fastmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=fastmail.com header.s=fm2 header.b=Y+CpIGy1; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=pLNkmIsC; spf=pass (mx1.freebsd.org: domain of gallatin@fastmail.com designates 66.111.4.29 as permitted sender) smtp.mailfrom=gallatin@fastmail.com; dmarc=pass (policy=none) header.from=fastmail.com Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 79D685C0165; Wed, 13 Sep 2023 09:09:09 -0400 (EDT) Received: from imap51 ([10.202.2.101]) by compute5.internal (MEProxy); Wed, 13 Sep 2023 09:09:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1694610549; x=1694696949; bh=9c wY7QdUWHZq5dfV9kTiKsCR4mh61ym+adxvQiRsmoY=; b=Y+CpIGy16mLwDl3ar5 UPYic/APv+sRbUOMr39mGzkfO0frxJ1801M1YdarAsRJd6gXsbb5BkUAcJuhVSu0 PZy3DPQgb1rFwhezofUPUSlEJBwbTKtuiUI979NsziMX6LMnmCNH7Pw84cxnKOAX eE/T8BUTzXbAXHtb/i2Ps0rItGz2vbhbKIpB4z/GS6EHN1+LaW25R3x+GK/NRBlN zTK4HPAkNSWPVRWQtpqWgaBHtSk+9DaWVP3z+7fDVq9lotoeYP/EHn22BoNcfLWG sTRK15cCC+zA75ZFOPtVYS1zLhfN28502f5LS6IwRKIYV92EYLAPlSHi1xqPotHB eNvQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1694610549; x=1694696949; bh=9cwY7QdUWHZq5 dfV9kTiKsCR4mh61ym+adxvQiRsmoY=; b=pLNkmIsC8O2uTJ/41aZlhghRBTt5A OsbPwoY21fEasuUeEQ8TxnM6Fhxwnl1IRWF8239W2CYA9JY8xugDrV/6aiRKL4iw 983eNNoYAEsr+OaOkYJhVFWM4skWQbsdzEyTe0RXak8QNOZD/9oIWaL+qhPHRuRI j59yXY0dBqIsVJfvW7gSWistxhXr+indnjm97wW8q94gPngqUkUr3NQW9LYKXFTN DuaN1IJi3gKMZIQik52L/YOXLj/8925M42naMjWiIHTBhY1XXPkioHjCgm1TFaES EtufCE9CbVkBb1EqaH04f6O/DeuEJ/lbeE9s0g+edONfHGEnmTWmS30gA== X-ME-Sender: <xms:dbQBZVSu9hId3L72fDTszLIcOKtHFaPKXy-DFOIB7hzHzRowBbQdLw> <xme:dbQBZezNDYl8n6mOPANuJGZXo4qtuc6qkSEYdTqTgxci9cd5vVsdMjKn1QTMQBK3v vPFywqg7cnnJM6Hh6w> X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeikedgieduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfgjfhffhffvufgtsegrtd erreerredtnecuhfhrohhmpedfffhrvgifucfirghllhgrthhinhdfuceoghgrlhhlrght ihhnsehfrghsthhmrghilhdrtghomheqnecuggftrfgrthhtvghrnhepheegieeltdegue eiveekveevheeikedvleduledufeetkeelhfduheehteegleehnecuffhomhgrihhnpehf rhgvvggsshgurdhorhhgpdhifhdrtghsnecuvehluhhsthgvrhfuihiivgeptdenucfrrg hrrghmpehmrghilhhfrhhomhepghgrlhhlrghtihhnsehfrghsthhmrghilhdrtghomh X-ME-Proxy: <xmx:dbQBZa0N0zZjrFD_VJFcxgI74lZQXSbi799GeklII8ziFmsQcKutQw> <xmx:dbQBZdCshdxrrdQQv46Db0mWi9ptM3staJeOpeXfy3U-HFAKp6kIsg> <xmx:dbQBZeg4MeoqN0sumkOAGKS6FSATYzP01xUHMJi6eYISsfEycI3efA> <xmx:dbQBZSaC97gQP1DPrkkf17GhJfsszntST3JwtmugMeqKSXY4eRnKqA> Feedback-ID: i2f014658:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 16551B60089; Wed, 13 Sep 2023 09:09:08 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-745-g95dd7bea33-fm-20230905.001-g95dd7bea List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org Mime-Version: 1.0 Message-Id: <7bb4a991-060d-415e-a188-192781c1f3c0@app.fastmail.com> In-Reply-To: <202307171904.36HJ4L1l013461@gitrepo.freebsd.org> References: <202307171904.36HJ4L1l013461@gitrepo.freebsd.org> Date: Wed, 13 Sep 2023 08:08:40 -0500 From: "Drew Gallatin" <gallatin@fastmail.com> To: "Simon J. Gerraty" <sjg@FreeBSD.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 89f361f742ae - main - kern.post.mk allow NEWVERS_{ENV,ARGS} Content-Type: multipart/alternative; boundary=f9e3987d93394d2a80959c26188f6950 X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.50 / 15.00]; URI_COUNT_ODD(1.00)[9]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; DWL_DNSWL_LOW(-1.00)[messagingengine.com:dkim]; NEURAL_HAM_LONG(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[fastmail.com,none]; MV_CASE(0.50)[]; R_DKIM_ALLOW(-0.20)[fastmail.com:s=fm2,messagingengine.com:s=fm2]; R_SPF_ALLOW(-0.20)[+ip4:66.111.4.29]; RCVD_IN_DNSWL_LOW(-0.10)[66.111.4.29:from]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; NEURAL_SPAM_SHORT(0.09)[0.086]; XM_UA_NO_VERSION(0.01)[]; RCPT_COUNT_THREE(0.00)[4]; FROM_HAS_DN(0.00)[]; FREEFALL_USER(0.00)[gallatin]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ARC_NA(0.00)[]; ASN(0.00)[asn:19151, ipnet:66.111.4.0/24, country:US]; FREEMAIL_ENVFROM(0.00)[fastmail.com]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_FROM(0.00)[fastmail.com]; TO_DN_SOME(0.00)[]; RCVD_TLS_LAST(0.00)[]; MID_RHS_MATCH_FROMTLD(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[fastmail.com:+,messagingengine.com:+]; MIME_TRACE(0.00)[0:+,1:+,2:~]; MLMMJ_DEST(0.00)[dev-commits-src-all@FreeBSD.org,dev-commits-src-main@FreeBSD.org] X-Rspamd-Queue-Id: 4Rm14Q5Bgnz3fgZ --f9e3987d93394d2a80959c26188f6950 Content-Type: text/plain Simon. This changes the version strings of kernels built via the buildkernel target and adds a lot of redundancy. Eg: VERSTR changes from: "FreeBSD 14.0-ALPHA1 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:17:25 EDT 2023\n gallatin@beast:/usr/src/sys/amd64/compile/GENERIC" To: "FreeBSD 14.0-ALPHA1 amd64 1400094 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:21:13 EDT 2023\n gallatin@beast:/usr/obj/usr/src/amd64.amd64/sys/GENERIC" Note the extra "amd64 1400094" This screws up some of our (Netflix) tooling, as its reflected via uname -a It appears that when using the buildkernel target, VERSION is picked up from Makefile.inc1's VERSION, which I think is intended for CTFMERGE. Was this intention? Thanks, Drew On Mon, Jul 17, 2023, at 2:04 PM, Simon J. Gerraty wrote: > The branch main has been updated by sjg: > > URL: https://cgit.FreeBSD.org/src/commit/?id=89f361f742aeae11c8b2e28eae3d015882b6c0ee <https://cgit.freebsd.org/src/commit/?id=89f361f742aeae11c8b2e28eae3d015882b6c0ee> > > commit 89f361f742aeae11c8b2e28eae3d015882b6c0ee > Author: Simon J. Gerraty <sjg@FreeBSD.org> > AuthorDate: 2023-07-17 19:03:35 +0000 > Commit: Simon J. Gerraty <sjg@FreeBSD.org> > CommitDate: 2023-07-17 19:03:35 +0000 > > kern.post.mk allow NEWVERS_{ENV,ARGS} > > Allow makefiles better control of newvers.sh env and args. > Also allow variable overrides on command line. > > Reviewed by: imp, stevek > Sponsored by: Juniper Networks, Inc. > Differential Revision: https://reviews.freebsd.org/D41012 > --- > sys/conf/kern.post.mk | 5 +++-- > sys/conf/newvers.sh | 16 +++++++++++++--- > 2 files changed, 16 insertions(+), 5 deletions(-) > > diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk > index c368d5f40df8..45df83e2d16b 100644 > --- a/sys/conf/kern.post.mk > +++ b/sys/conf/kern.post.mk > @@ -444,11 +444,12 @@ config.o env.o hints.o vers.o vnode_if.o: > ${NORMAL_C} > ${NORMAL_CTFCONVERT} > > +NEWVERS_ENV+= MAKE="${MAKE}" > .if ${MK_REPRODUCIBLE_BUILD} != "no" > -REPRO_FLAG="-R" > +NEWVERS_ARGS+= -R > .endif > vers.c: .NOMETA_CMP $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP:Nvers.*} > - MAKE="${MAKE}" sh $S/conf/newvers.sh ${REPRO_FLAG} ${KERN_IDENT} > + ${NEWVERS_ENV} sh $S/conf/newvers.sh ${NEWVERS_ARGS} ${KERN_IDENT} > > vnode_if.c: $S/tools/vnode_if.awk $S/kern/vnode_if.src > ${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -c > diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh > index 85346b1cdc29..e21b3f5ce2e2 100644 > --- a/sys/conf/newvers.sh > +++ b/sys/conf/newvers.sh > @@ -58,13 +58,23 @@ BRANCH="CURRENT" > if [ -n "${BRANCH_OVERRIDE}" ]; then > BRANCH=${BRANCH_OVERRIDE} > fi > -RELEASE="${REVISION}-${BRANCH}" > -VERSION="${TYPE} ${RELEASE}" > > if [ -z "${SYSDIR}" ]; then > - SYSDIR=$(dirname $0)/.. > + SYSDIR=$(dirname $0)/.. > fi > > +# allow random overrides > +while : > +do > + case "$1" in > + *=*) eval "$1"; shift;; > + *) break;; > + esac > +done > + > +RELEASE="${RELEASE:-${REVISION}-${BRANCH}}" > +VERSION="${VERSION:-${TYPE} ${RELEASE}}" > + > RELDATE=$(awk '/^#define[[:space:]]*__FreeBSD_version/ {print $3}' ${PARAMFILE:-${SYSDIR}/sys/param.h}) > > if [ -r "${SYSDIR}/../COPYRIGHT" ]; then > --f9e3987d93394d2a80959c26188f6950 Content-Type: text/html Content-Transfer-Encoding: quoted-printable <!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso= Normal,p.MsoNoSpacing{margin:0}</style></head><body><div>Simon.<br></div= ><div><br></div><div>This changes the version strings of kernels built v= ia the buildkernel target and adds a lot of redundancy. Eg:<br></d= iv><div><br></div><pre class=3D"c-mrkdwn__pre">VERSTR changes from: <br></pre><pre class=3D"c-mrkdwn__pre">"FreeBSD 14.0-ALPHA1 #0 main-n264= 839-91d0876a20ce-dirty: Wed Sep 13 08:17:25 EDT 2023\n gallatin@beast= :/usr/src/sys/amd64/compile/GENERIC"<br></pre><div><br></div><div>To:<br= ></div><div><br></div><pre class=3D"c-mrkdwn__pre">"FreeBSD 14.0-ALPHA1 = amd64 1400094 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:21:13 ED= T 2023\n gallatin@beast:/usr/obj/usr/src/amd64.amd64/sys/GENERIC"<br>= </pre><div><br></div><div>Note the extra "amd64 1400094" Thi= s screws up some of our (Netflix) tooling, as its reflected via uname -a= <br></div><div><br></div><div>It appears that when using the buildkernel= target, VERSION is picked up from Makefile.inc1's VERSION, which I thin= k is intended for CTFMERGE. Was this intention?<br></d= iv><div><br></div><div>Thanks,<br></div><div>Drew<br></div><div><br></di= v><div><br></div><div><br></div><div>On Mon, Jul 17, 2023, at 2:04 PM, S= imon J. Gerraty wrote:<br></div><blockquote type=3D"cite" id=3D"qt" styl= e=3D""><div>The branch main has been updated by sjg:<br></div><div><br><= /div><div>URL: <a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3D= 89f361f742aeae11c8b2e28eae3d015882b6c0ee">https://cgit.FreeBSD.org/src/c= ommit/?id=3D89f361f742aeae11c8b2e28eae3d015882b6c0ee</a><br></div><div><= br></div><div>commit 89f361f742aeae11c8b2e28eae3d015882b6c0ee<br></div><= div>Author: Simon J. Gerraty <<a href=3D"mail= to:sjg@FreeBSD.org">sjg@FreeBSD.org</a>><br></div><div>AuthorDate: 20= 23-07-17 19:03:35 +0000<br></div><div>Commit: Si= mon J. Gerraty <<a href=3D"mailto:sjg@FreeBSD.org">sjg@FreeBSD.org</a= >><br></div><div>CommitDate: 2023-07-17 19:03:35 +0000<br></div><div>= <br></div><div> kern.post.mk allow NEWVERS_{ENV,ARGS}<= br></div><div> <br></div><div> = Allow makefiles better control of newvers.sh env and args.<br></div><div= > Also allow variable overrides on command line.<br></= div><div> <br></div><div> Revie= wed by: imp, stevek<br></div><div> S= ponsored by: Juniper Networks, Inc.<br></div><div> &nbs= p; Differential Revision: <a href=3D"https://reviews.fr= eebsd.org/D41012">https://reviews.freebsd.org/D41012</a><br></div><div>-= --<br></div><div>sys/conf/kern.post.mk | 5 +++--<br></div><div>sys= /conf/newvers.sh | 16 +++++++++++++---<br></div><div>2 files= changed, 16 insertions(+), 5 deletions(-)<br></div><div><br></div><div>= diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk<br></div><div= >index c368d5f40df8..45df83e2d16b 100644<br></div><div>--- a/sys/conf/ke= rn.post.mk<br></div><div>+++ b/sys/conf/kern.post.mk<br></div><div>@@ -4= 44,11 +444,12 @@ config.o env.o hints.o vers.o vnode_if.o:<br></div><div= >${NORMAL_C}<br></div><div>${NORMAL_CTFCONVERT}<br></div><div> <br>= </div><div>+NEWVERS_ENV+=3D MAKE=3D"${MAKE}"<br></div><div>.if ${MK_REPR= ODUCIBLE_BUILD} !=3D "no"<br></div><div>-REPRO_FLAG=3D"-R"<br></div><div= >+NEWVERS_ARGS+=3D -R<br></div><div>.endif<br></div><div>vers.c: .NOMETA= _CMP $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP:Nvers.*}<br></div><d= iv>- MAKE=3D"${MAKE}" sh $S/conf/newvers.sh ${REPRO_FLAG} ${KERN_IDENT}<= br></div><div>+ ${NEWVERS_ENV} sh $S/conf/newvers.sh ${NEWVERS_ARGS} ${K= ERN_IDENT}<br></div><div> <br></div><div>vnode_if.c: $S/tools/vnode= _if.awk $S/kern/vnode_if.src<br></div><div>${AWK} -f $S/tools/vnode_if.a= wk $S/kern/vnode_if.src -c<br></div><div>diff --git a/sys/conf/newvers.s= h b/sys/conf/newvers.sh<br></div><div>index 85346b1cdc29..e21b3f5ce2e2 1= 00644<br></div><div>--- a/sys/conf/newvers.sh<br></div><div>+++ b/sys/co= nf/newvers.sh<br></div><div>@@ -58,13 +58,23 @@ BRANCH=3D"CURRENT"<br></= div><div>if [ -n "${BRANCH_OVERRIDE}" ]; then<br></div><div>BRANCH=3D${B= RANCH_OVERRIDE}<br></div><div>fi<br></div><div>-RELEASE=3D"${REVISION}-$= {BRANCH}"<br></div><div>-VERSION=3D"${TYPE} ${RELEASE}"<br></div><div>&n= bsp;<br></div><div>if [ -z "${SYSDIR}" ]; then<br></div><div>- &nbs= p; SYSDIR=3D$(dirname $0)/..<br></div><div>+ SYSDIR=3D$(dirname $0= )/..<br></div><div>fi<br></div><div> <br></div><div>+# allow random= overrides<br></div><div>+while :<br></div><div>+do<br></div><div>+ case= "$1" in<br></div><div>+ *=3D*) eval "$1"; shift;;<br></div><div>+ *) br= eak;;<br></div><div>+ esac<br></div><div>+done<br></div><div>+<br></div>= <div>+RELEASE=3D"${RELEASE:-${REVISION}-${BRANCH}}"<br></div><div>+VERSI= ON=3D"${VERSION:-${TYPE} ${RELEASE}}"<br></div><div>+<br></div><div>RELD= ATE=3D$(awk '/^#define[[:space:]]*__FreeBSD_version/ {print $3}' ${PARAM= FILE:-${SYSDIR}/sys/param.h})<br></div><div> <br></div><div>if [ -r= "${SYSDIR}/../COPYRIGHT" ]; then<br></div><div><br></div></blockquote><= div><br></div></body></html> --f9e3987d93394d2a80959c26188f6950-- From nobody Wed Sep 13 13:32:40 2023 X-Original-To: dev-commits-src-main@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 4Rm1bX2GH3z4sq77; Wed, 13 Sep 2023 13:32: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rm1bX1q0mz4JRD; Wed, 13 Sep 2023 13:32:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694611960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rSDzQSJJ0q2LBlcq6yAoth6dm25wigaNboPGAw1eZf0=; b=p9rcNXtG4AKkqLc0XIy/za1lhkP+Qids4ZqcSlSWnB10zPQIukVq0NHJNdkLuAGe/7jHrs ylxkgYU/99VFMWKB8j4h24JWr8EsVUIfUeTWrOQzi3sq/UfiNGPfsEIz6PYc1bCOyg1GDX zHiduINZhNoCWp2YDY28DQPQFDhM76x8Lw1lRz5eSyoAQjuXqd10NpcB6NpbKsDrIOGgMU 2hbQ+3aBsdIY0qILceCi61gxhw34agVnKw9GmyuovD39jQaRGaCRyZm7ZUAnYnEu4cwNIa UcJE6A8kRYFYdLzGf+kca2OiVYsK7Tk48pQ2f8+Q3kIAoayFT7D/N1LmaxgDMg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694611960; a=rsa-sha256; cv=none; b=LC7MSim5cUeOKKdm5N4AXoEW4Qm/T4T0uP5rjjlDxEiyUkJ5vmqcOpxDs+Z4C+PJCKKX/9 QBklO51KdRuleRwKeHO+E2w5mA6g3rH4gzSzcnXMntNBJ/Ky5hQOKiri0Q5h1E9Wz5qKMK c1mEta4qMiP2WuV2ERY6R5laf6gG0BxhuB8Qg0sgYDAJyeriM0KwqPRBiVhivTEnjznOP4 G3WBs1rgoequvpMJ5yVlXAwc+YYxP06QiNzlEawAlSAIe+Hf2NXZyAfur+Z56dP5jNGwsU 3+bkXuDmG1qgJ7GDrKsaxTYncfUzbncsoA8qCnj0DUgqYbZVfrMegrAdAeV2zg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694611960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rSDzQSJJ0q2LBlcq6yAoth6dm25wigaNboPGAw1eZf0=; b=ZlbYEDU58qTZHjLn8ho44RnMfoARFu5Pgi2zxd36qG3CPjc1tow33wV23yqkTDcRQpsZq5 AN+ylEuSIf16aZyBj7u1j3u5Jb4TKHKVAJd1oCkv73TKrAuxVuIdGt9f+OzJmHzLq3yEjA pQ4htuFwQyxRmEjkutBOLeNRFLquYOL1zP5BZ/c7syMeu8mAIX2znQoEetZzGIP8FdOq/7 DnhwyozgiGywmlbejl5/QwSJ6IqAc1zXgwibwsjCwK/88+zVtqBf4yuRPKcoLyQC3njfNu Jx0QCSoogTvwEK0CSsgGxDtuAk9TXMWadEOBHEH72AJvOzNIH8xGWPTJcsTKaA== 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 4Rm1bX0t3Dz22J; Wed, 13 Sep 2023 13:32:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DDWeuN048682; Wed, 13 Sep 2023 13:32:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DDWekl048679; Wed, 13 Sep 2023 13:32:40 GMT (envelope-from git) Date: Wed, 13 Sep 2023 13:32:40 GMT Message-Id: <202309131332.38DDWekl048679@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michael Tuexen <tuexen@FreeBSD.org> Subject: git: bb56b36d7188 - main - sctp: further improve shutting down the read side of a socket List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bb56b36d7188e004840294d0bd5dfdf7f3392a05 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=bb56b36d7188e004840294d0bd5dfdf7f3392a05 commit bb56b36d7188e004840294d0bd5dfdf7f3392a05 Author: Michael Tuexen <tuexen@FreeBSD.org> AuthorDate: 2023-09-13 11:02:51 +0000 Commit: Michael Tuexen <tuexen@FreeBSD.org> CommitDate: 2023-09-13 11:02:51 +0000 sctp: further improve shutting down the read side of a socket Deal with the case that the association is already gone. Reported by: syzbot+e256d42e9b390564530a@syzkaller.appspotmail.com MFC after: 3 days --- sys/netinet/sctp_usrreq.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c index 02bb87578528..29d63f989e79 100644 --- a/sys/netinet/sctp_usrreq.c +++ b/sys/netinet/sctp_usrreq.c @@ -806,11 +806,9 @@ sctp_flush(struct socket *so, int how) return (0); } stcb = LIST_FIRST(&inp->sctp_asoc_list); - if (stcb == NULL) { - SCTP_INP_WUNLOCK(inp); - return (ENOTCONN); + if (stcb != NULL) { + SCTP_TCB_LOCK(stcb); } - SCTP_TCB_LOCK(stcb); SCTP_INP_READ_LOCK(inp); inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_CANT_READ; SOCK_LOCK(so); @@ -836,7 +834,7 @@ sctp_flush(struct socket *so, int how) } SOCK_UNLOCK(so); SCTP_INP_READ_UNLOCK(inp); - if (need_to_abort) { + if (need_to_abort && (stcb != NULL)) { inp->last_abort_code = SCTP_FROM_SCTP_USRREQ + SCTP_LOC_6; SCTP_INP_WUNLOCK(inp); op_err = sctp_generate_cause(SCTP_CAUSE_OUT_OF_RESC, ""); @@ -845,7 +843,9 @@ sctp_flush(struct socket *so, int how) NET_EPOCH_EXIT(et); return (ECONNABORTED); } - SCTP_TCB_UNLOCK(stcb); + if (stcb != NULL) { + SCTP_TCB_UNLOCK(stcb); + } SCTP_INP_WUNLOCK(inp); return (0); } From nobody Wed Sep 13 13:54:28 2023 X-Original-To: dev-commits-src-main@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 4Rm257625tz4t2RF; Wed, 13 Sep 2023 13:54:51 +0000 (UTC) (envelope-from gallatin@fastmail.com) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.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 mx1.freebsd.org (Postfix) with ESMTPS id 4Rm2570SNcz4R9Q; Wed, 13 Sep 2023 13:54:51 +0000 (UTC) (envelope-from gallatin@fastmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=fastmail.com header.s=fm2 header.b=IHKkipGJ; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=UhI7yhVl; spf=pass (mx1.freebsd.org: domain of gallatin@fastmail.com designates 66.111.4.27 as permitted sender) smtp.mailfrom=gallatin@fastmail.com; dmarc=pass (policy=none) header.from=fastmail.com Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 118A65C0150; Wed, 13 Sep 2023 09:54:50 -0400 (EDT) Received: from imap51 ([10.202.2.101]) by compute5.internal (MEProxy); Wed, 13 Sep 2023 09:54:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1694613290; x=1694699690; bh=AF Q1pn+j847q3MSDW8nbM3E6zzm9v3lhSD0YcwWcWn4=; b=IHKkipGJ9HPZ/XnHxp aBDsZ5BBzhbEpb4bv69Ktqo88E3q0T4XuFZ7C2V8aESuGkzR3HwlpYaqT05JWdXP GogSMH0kywJpr1I/RL6m+0MZRcX6dhPXJcHLDmW/fMMpMzxwuKVLOL6o8WbKDcpB cNW1B9Ijn8SANvYjFu2e0pmHX0Nia62+fivfaogSfLKd/LqTzlgdFmmVZap7HXoF OV4X8AM03T0/O/l9uoS6olc7SKUIbWZmT02SHfSLP/4uY0rtzJn1irYbGq2nK9iA Fw8Sd69c7H+yzLZi8iqV2ypW04B4ZE02dvWT0EqSYRGxJHSqHHRJ9cq6MohV9z3Q XX8A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1694613290; x=1694699690; bh=AFQ1pn+j847q3 MSDW8nbM3E6zzm9v3lhSD0YcwWcWn4=; b=UhI7yhVlyySkOrD16eCj3NAwbHhiz DOlOE5rxucjUx5AXqAxRin0YqcX5RRRLXVfoZUaWWbVEybOKfc90EsemeHnHC0Vk xy7BP+pK/72SaVcj7uUQZVjLWeB5pW1J6lBtdt4R8kd+eThF0Ed1gfKZHAHTSZHH TShgM4HIXJAcdcKYEmKNZCKBVcm5W+C6hplH+YcDmpeOU7Y0OHgnHu2ZLRaHI4Tu ZC4Yrvsn82laMzJBh81LivTzWaupLxaBFG4T6jImt1LIX+NTfuzbJCEnZtWTMgPZ 6ofamFVR7jywIPHjDpA3sfuQZYrhLZT7WgwgzvoXQ/W5CZlwPN3MmPRVA== X-ME-Sender: <xms:Kb8BZRM2gSm_1_2PjmTKYXzpqL2LddA3xFBRusCYNM00wvGa9b-M3w> <xme:Kb8BZT80E14Lk0L2AG71J6jyUqfz_wdk50gghIx6KfZapY2aTCNBWjWvX6P1tugId SndZ4R7RkzMsW0dAOM> X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeikedgjeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfgjfhffhffvufgtsegrtd erreerredtnecuhfhrohhmpedfffhrvgifucfirghllhgrthhinhdfuceoghgrlhhlrght ihhnsehfrghsthhmrghilhdrtghomheqnecuggftrfgrthhtvghrnhepheegieeltdegue eiveekveevheeikedvleduledufeetkeelhfduheehteegleehnecuffhomhgrihhnpehf rhgvvggsshgurdhorhhgpdhifhdrtghsnecuvehluhhsthgvrhfuihiivgeptdenucfrrg hrrghmpehmrghilhhfrhhomhepghgrlhhlrghtihhnsehfrghsthhmrghilhdrtghomh X-ME-Proxy: <xmx:Kb8BZQQxkhJCjKCPAuYv4dNmhqseFHrmKrcrQV1CfOqeydSjeXIYLA> <xmx:Kb8BZdvi2yw5c9ZMCk41OUWAvTtRvLyXBzIw22Zq_cHcp4ItzTLkTQ> <xmx:Kb8BZZcdmO8oeI2lasf1KCj5WBcyMQtddfUEMCU5x5vTpC_SXXlXpA> <xmx:Kr8BZZFOPERdlSTk1QhRrFJHjeWAijLwGkz4WleIU_acFpXp21DZ7Q> Feedback-ID: i2f014658:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id C7F50B60089; Wed, 13 Sep 2023 09:54:49 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-745-g95dd7bea33-fm-20230905.001-g95dd7bea List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org Mime-Version: 1.0 Message-Id: <da6f7d8b-b50c-4ab4-9ac1-baf14dc8e968@app.fastmail.com> In-Reply-To: <7bb4a991-060d-415e-a188-192781c1f3c0@app.fastmail.com> References: <202307171904.36HJ4L1l013461@gitrepo.freebsd.org> <7bb4a991-060d-415e-a188-192781c1f3c0@app.fastmail.com> Date: Wed, 13 Sep 2023 08:54:28 -0500 From: "Drew Gallatin" <gallatin@fastmail.com> To: "Simon J. Gerraty" <sjg@FreeBSD.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 89f361f742ae - main - kern.post.mk allow NEWVERS_{ENV,ARGS} Content-Type: multipart/alternative; boundary=18c6a348166849e0a8d1f1f95e8e1dbf X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.58 / 15.00]; URI_COUNT_ODD(1.00)[13]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; DWL_DNSWL_LOW(-1.00)[messagingengine.com:dkim]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.99)[-0.993]; DMARC_POLICY_ALLOW(-0.50)[fastmail.com,none]; MV_CASE(0.50)[]; R_DKIM_ALLOW(-0.20)[fastmail.com:s=fm2,messagingengine.com:s=fm2]; R_SPF_ALLOW(-0.20)[+ip4:66.111.4.27:c]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCVD_IN_DNSWL_LOW(-0.10)[66.111.4.27:from]; XM_UA_NO_VERSION(0.01)[]; FREEFALL_USER(0.00)[gallatin]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ARC_NA(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; ASN(0.00)[asn:19151, ipnet:66.111.4.0/24, country:US]; BLOCKLISTDE_FAIL(0.00)[66.111.4.27:server fail]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_FROM(0.00)[fastmail.com]; TO_DN_SOME(0.00)[]; RCVD_TLS_LAST(0.00)[]; MID_RHS_MATCH_FROMTLD(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[fastmail.com:+,messagingengine.com:+]; FREEMAIL_ENVFROM(0.00)[fastmail.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; MLMMJ_DEST(0.00)[dev-commits-src-all@FreeBSD.org,dev-commits-src-main@FreeBSD.org] X-Rspamd-Queue-Id: 4Rm2570SNcz4R9Q --18c6a348166849e0a8d1f1f95e8e1dbf Content-Type: text/plain des seems to be addressing this in https://reviews.freebsd.org/D41845 On Wed, Sep 13, 2023, at 8:08 AM, Drew Gallatin wrote: > Simon. > > This changes the version strings of kernels built via the buildkernel target and adds a lot of redundancy. Eg: > > VERSTR changes from: > > "FreeBSD 14.0-ALPHA1 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:17:25 EDT 2023\n gallatin@beast:/usr/src/sys/amd64/compile/GENERIC" > > To: > > "FreeBSD 14.0-ALPHA1 amd64 1400094 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:21:13 EDT 2023\n gallatin@beast:/usr/obj/usr/src/amd64.amd64/sys/GENERIC" > > Note the extra "amd64 1400094" This screws up some of our (Netflix) tooling, as its reflected via uname -a > > It appears that when using the buildkernel target, VERSION is picked up from Makefile.inc1's VERSION, which I think is intended for CTFMERGE. Was this intention? > > Thanks, > Drew > > > > On Mon, Jul 17, 2023, at 2:04 PM, Simon J. Gerraty wrote: >> The branch main has been updated by sjg: >> >> URL: https://cgit.FreeBSD.org/src/commit/?id=89f361f742aeae11c8b2e28eae3d015882b6c0ee <https://cgit.freebsd.org/src/commit/?id=89f361f742aeae11c8b2e28eae3d015882b6c0ee> >> >> commit 89f361f742aeae11c8b2e28eae3d015882b6c0ee >> Author: Simon J. Gerraty <sjg@FreeBSD.org> >> AuthorDate: 2023-07-17 19:03:35 +0000 >> Commit: Simon J. Gerraty <sjg@FreeBSD.org> >> CommitDate: 2023-07-17 19:03:35 +0000 >> >> kern.post.mk allow NEWVERS_{ENV,ARGS} >> >> Allow makefiles better control of newvers.sh env and args. >> Also allow variable overrides on command line. >> >> Reviewed by: imp, stevek >> Sponsored by: Juniper Networks, Inc. >> Differential Revision: https://reviews.freebsd.org/D41012 >> --- >> sys/conf/kern.post.mk | 5 +++-- >> sys/conf/newvers.sh | 16 +++++++++++++--- >> 2 files changed, 16 insertions(+), 5 deletions(-) >> >> diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk >> index c368d5f40df8..45df83e2d16b 100644 >> --- a/sys/conf/kern.post.mk >> +++ b/sys/conf/kern.post.mk >> @@ -444,11 +444,12 @@ config.o env.o hints.o vers.o vnode_if.o: >> ${NORMAL_C} >> ${NORMAL_CTFCONVERT} >> >> +NEWVERS_ENV+= MAKE="${MAKE}" >> .if ${MK_REPRODUCIBLE_BUILD} != "no" >> -REPRO_FLAG="-R" >> +NEWVERS_ARGS+= -R >> .endif >> vers.c: .NOMETA_CMP $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP:Nvers.*} >> - MAKE="${MAKE}" sh $S/conf/newvers.sh ${REPRO_FLAG} ${KERN_IDENT} >> + ${NEWVERS_ENV} sh $S/conf/newvers.sh ${NEWVERS_ARGS} ${KERN_IDENT} >> >> vnode_if.c: $S/tools/vnode_if.awk $S/kern/vnode_if.src >> ${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -c >> diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh >> index 85346b1cdc29..e21b3f5ce2e2 100644 >> --- a/sys/conf/newvers.sh >> +++ b/sys/conf/newvers.sh >> @@ -58,13 +58,23 @@ BRANCH="CURRENT" >> if [ -n "${BRANCH_OVERRIDE}" ]; then >> BRANCH=${BRANCH_OVERRIDE} >> fi >> -RELEASE="${REVISION}-${BRANCH}" >> -VERSION="${TYPE} ${RELEASE}" >> >> if [ -z "${SYSDIR}" ]; then >> - SYSDIR=$(dirname $0)/.. >> + SYSDIR=$(dirname $0)/.. >> fi >> >> +# allow random overrides >> +while : >> +do >> + case "$1" in >> + *=*) eval "$1"; shift;; >> + *) break;; >> + esac >> +done >> + >> +RELEASE="${RELEASE:-${REVISION}-${BRANCH}}" >> +VERSION="${VERSION:-${TYPE} ${RELEASE}}" >> + >> RELDATE=$(awk '/^#define[[:space:]]*__FreeBSD_version/ {print $3}' ${PARAMFILE:-${SYSDIR}/sys/param.h}) >> >> if [ -r "${SYSDIR}/../COPYRIGHT" ]; then >> > --18c6a348166849e0a8d1f1f95e8e1dbf Content-Type: text/html Content-Transfer-Encoding: quoted-printable <!DOCTYPE html><html><head><title></title><style type=3D"text/css"> p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div>des seems = to be addressing this in <a href=3D"https://reviews.freebsd.org/D41845">= https://reviews.freebsd.org/D41845</a></div><div><br></div><div>On Wed, = Sep 13, 2023, at 8:08 AM, Drew Gallatin wrote:<br></div><blockquote type= =3D"cite" id=3D"qt" style=3D""><div>Simon.<br></div><div><br></div><div>= This changes the version strings of kernels built via the buildkernel ta= rget and adds a lot of redundancy. Eg:<br></div><div><br></div><pr= e class=3D"qt-c-mrkdwn__pre">VERSTR changes from: <br></pre><pre class=3D"qt-c-mrkdwn__pre">"FreeBSD 14.0-ALPHA1 #0 main-n= 264839-91d0876a20ce-dirty: Wed Sep 13 08:17:25 EDT 2023\n gallatin@be= ast:/usr/src/sys/amd64/compile/GENERIC"<br></pre><div><br></div><div>To:= <br></div><div><br></div><pre class=3D"qt-c-mrkdwn__pre">"FreeBSD 14.0-A= LPHA1 amd64 1400094 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:21= :13 EDT 2023\n gallatin@beast:/usr/obj/usr/src/amd64.amd64/sys/GENERI= C"<br></pre><div><br></div><div>Note the extra "amd64 1400094" &nbs= p; This screws up some of our (Netflix) tooling, as its reflected via un= ame -a<br></div><div><br></div><div>It appears that when using the build= kernel target, VERSION is picked up from Makefile.inc1's VERSION, which = I think is intended for CTFMERGE. Was this intention?<= br></div><div><br></div><div>Thanks,<br></div><div>Drew<br></div><div><b= r></div><div><br></div><div><br></div><div>On Mon, Jul 17, 2023, at 2:04= PM, Simon J. Gerraty wrote:<br></div><blockquote type=3D"cite" id=3D"qt= -qt" style=3D""><div>The branch main has been updated by sjg:<br></div><= div><br></div><div>URL: <a href=3D"https://cgit.FreeBSD.org/src/com= mit/?id=3D89f361f742aeae11c8b2e28eae3d015882b6c0ee">https://cgit.FreeBSD= .org/src/commit/?id=3D89f361f742aeae11c8b2e28eae3d015882b6c0ee</a><br></= div><div><br></div><div>commit 89f361f742aeae11c8b2e28eae3d015882b6c0ee<= br></div><div>Author: Simon J. Gerraty <<a hr= ef=3D"mailto:sjg@FreeBSD.org">sjg@FreeBSD.org</a>><br></div><div>Auth= orDate: 2023-07-17 19:03:35 +0000<br></div><div>Commit:  = ; Simon J. Gerraty <<a href=3D"mailto:sjg@FreeBSD.org">sjg@Free= BSD.org</a>><br></div><div>CommitDate: 2023-07-17 19:03:35 +0000<br><= /div><div><br></div><div> kern.post.mk allow NEWVERS_{= ENV,ARGS}<br></div><div> <br></div><div> &nb= sp; Allow makefiles better control of newvers.sh env and args.<br>= </div><div> Also allow variable overrides on command l= ine.<br></div><div> <br></div><div> &n= bsp; Reviewed by: imp, stevek<br></div><div> &nbs= p; Sponsored by: Juniper Networks, Inc.<br></div><div>= Differential Revision: <a href=3D"https://= reviews.freebsd.org/D41012">https://reviews.freebsd.org/D41012</a><br></= div><div>---<br></div><div>sys/conf/kern.post.mk | 5 +++--<br></di= v><div>sys/conf/newvers.sh | 16 +++++++++++++---<br></div><d= iv>2 files changed, 16 insertions(+), 5 deletions(-)<br></div><div><br><= /div><div>diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk<br>= </div><div>index c368d5f40df8..45df83e2d16b 100644<br></div><div>--- a/s= ys/conf/kern.post.mk<br></div><div>+++ b/sys/conf/kern.post.mk<br></div>= <div>@@ -444,11 +444,12 @@ config.o env.o hints.o vers.o vnode_if.o:<br>= </div><div>${NORMAL_C}<br></div><div>${NORMAL_CTFCONVERT}<br></div><div>= <br></div><div>+NEWVERS_ENV+=3D MAKE=3D"${MAKE}"<br></div><div>.if= ${MK_REPRODUCIBLE_BUILD} !=3D "no"<br></div><div>-REPRO_FLAG=3D"-R"<br>= </div><div>+NEWVERS_ARGS+=3D -R<br></div><div>.endif<br></div><div>vers.= c: .NOMETA_CMP $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP:Nvers.*}<b= r></div><div>- MAKE=3D"${MAKE}" sh $S/conf/newvers.sh ${REPRO_FLAG} ${KE= RN_IDENT}<br></div><div>+ ${NEWVERS_ENV} sh $S/conf/newvers.sh ${NEWVERS= _ARGS} ${KERN_IDENT}<br></div><div> <br></div><div>vnode_if.c: $S/t= ools/vnode_if.awk $S/kern/vnode_if.src<br></div><div>${AWK} -f $S/tools/= vnode_if.awk $S/kern/vnode_if.src -c<br></div><div>diff --git a/sys/conf= /newvers.sh b/sys/conf/newvers.sh<br></div><div>index 85346b1cdc29..e21b= 3f5ce2e2 100644<br></div><div>--- a/sys/conf/newvers.sh<br></div><div>++= + b/sys/conf/newvers.sh<br></div><div>@@ -58,13 +58,23 @@ BRANCH=3D"CURR= ENT"<br></div><div>if [ -n "${BRANCH_OVERRIDE}" ]; then<br></div><div>BR= ANCH=3D${BRANCH_OVERRIDE}<br></div><div>fi<br></div><div>-RELEASE=3D"${R= EVISION}-${BRANCH}"<br></div><div>-VERSION=3D"${TYPE} ${RELEASE}"<br></d= iv><div> <br></div><div>if [ -z "${SYSDIR}" ]; then<br></div><div>-= SYSDIR=3D$(dirname $0)/..<br></div><div>+ SYSDIR=3D$(= dirname $0)/..<br></div><div>fi<br></div><div> <br></div><div>+# al= low random overrides<br></div><div>+while :<br></div><div>+do<br></div><= div>+ case "$1" in<br></div><div>+ *=3D*) eval "$1"; shift;;<br></div><d= iv>+ *) break;;<br></div><div>+ esac<br></div><div>+done<br></div><div>+= <br></div><div>+RELEASE=3D"${RELEASE:-${REVISION}-${BRANCH}}"<br></div><= div>+VERSION=3D"${VERSION:-${TYPE} ${RELEASE}}"<br></div><div>+<br></div= ><div>RELDATE=3D$(awk '/^#define[[:space:]]*__FreeBSD_version/ {print $3= }' ${PARAMFILE:-${SYSDIR}/sys/param.h})<br></div><div> <br></div><d= iv>if [ -r "${SYSDIR}/../COPYRIGHT" ]; then<br></div><div><br></div></bl= ockquote><div><br></div></blockquote><div><br></div></body></html> --18c6a348166849e0a8d1f1f95e8e1dbf-- From nobody Wed Sep 13 15:21:55 2023 X-Original-To: dev-commits-src-main@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 4Rm41b3xgbz4spmR; Wed, 13 Sep 2023 15:21:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rm41b3WCXz3LXb; Wed, 13 Sep 2023 15:21:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694618515; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YNYEiq16GjwIoHI0AuwNxucNNjKHbLJElKywWrwC2Lk=; b=E7RvFS1FP93WH9oQHQ9AYGR9FYIxbj29C5YATBqxz55a/w6W1Pq9gd09K6Qts+aiF7PAlo KE4lJYq8OUwO/mQiyKMDn8A+S0Avt1RRWLziS8kIEi9oeF4PQ/h7d78mQ4FiUawLIQmlEs /SV+6+oysn4W/EskpW13dHvFzKzZx3rUVTxNdFlQ4JEjYGR7qbMlQqIKKQxvmJ9kbOOoP2 btKyexgMFaflsnttYX8V4ZopO9K7KIXsMfHaMC7CHG16waV/yjwOWu/IxuYli4O2/af+Vj 7jyAU0hRSpsrwdk3hQ5QLuvRgFlN5qJoAi9TMkgbkDygtEDNe2B2iKbBlUVgkA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694618515; a=rsa-sha256; cv=none; b=el1rX179LhlLR/9j1HPksXEPG6QLUejo2uYnwvk5sY4duCz707mI/DoAuf6U/KsxU9bb7V drN8ZUuBjYLoZyCFQ9rVbagWlu0tSglhNFsWrNhmlXLYWMeu3dt7dkUW4s6L8WuwOQNkrw JkOr8Olv6R3QTlvJRt6bYt7K/f7qET6OWWGQ4PXBZ7Psr/ckyS39wex5oW1vf8dbZAYWH1 bvwdobr9FE0eYlqIKhFohbFQD+wJvYLvprR5XxEX0BI1pY0zuAcUE7LiTJy/ngEy8M0rC6 TlGuCbJG/Qtf1CXbIceU9COlXwTIeJr9yWIHgyPpaRRLCjwW51/bexxV8l7i+g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694618515; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YNYEiq16GjwIoHI0AuwNxucNNjKHbLJElKywWrwC2Lk=; b=Z62qxqYEY3t5emngmZrUTkTM0l1kfll+3EI14/6Cy6Aa24R3aX6hYrGHa+Wa88D+uvHJdO MYxXcIErxCeGP/LUmEGv+YDK59CS066GbXYaAkti98NgneKJ3uv3+NTjRbFrFmV1pEL0Oh +ZrgjfNTa+TM861EG0xhH8DG5F6MDEYARXW1b1VxJTbtisazFyirkCE2PGfObcSl5/VqzZ cyi6/MimGIMb88sAN6Qd/F4LjmAnw+dL7M8kEw163q9qGrRcQjOce2NaFjR8EJ9vHKzfT1 qNZXx54+D1GJz8CorIWg7SOb7z3y1QlK94JBpZP6ivXYAVcyY7FDjf6Qxj0ixw== 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 4Rm41b2d30z4jQ; Wed, 13 Sep 2023 15:21:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DFLtBj029768; Wed, 13 Sep 2023 15:21:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DFLtZg029765; Wed, 13 Sep 2023 15:21:55 GMT (envelope-from git) Date: Wed, 13 Sep 2023 15:21:55 GMT Message-Id: <202309131521.38DFLtZg029765@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste <emaste@FreeBSD.org> Subject: git: 70fbcd451b68 - main - axge: Skip dummy packet headers List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 70fbcd451b68b7f6038d8a602cd8d5e1bb890f1d Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=70fbcd451b68b7f6038d8a602cd8d5e1bb890f1d commit 70fbcd451b68b7f6038d8a602cd8d5e1bb890f1d Author: Damien Broka <git@damien.sh> AuthorDate: 2023-09-13 08:23:47 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-09-13 14:08:11 +0000 axge: Skip dummy packet headers Newer versions of the AX88179 interweave dummies alongside valid packet headers in bulk IN transfer data. This was probably done for backward compatibility with existing drivers. However current driver records these dummy headers as dropped frames, leading to stats misreporting one Ierr per Ipkt. This skips those dummy headers silently, thereby not generating Ierrs for them. Reviewed by: emaste Pull Request: https://github.com/freebsd/freebsd-src/pull/842 --- sys/dev/usb/net/if_axge.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/sys/dev/usb/net/if_axge.c b/sys/dev/usb/net/if_axge.c index a3b459a553e0..385a982afd9d 100644 --- a/sys/dev/usb/net/if_axge.c +++ b/sys/dev/usb/net/if_axge.c @@ -959,8 +959,16 @@ axge_rx_frame(struct usb_ether *ue, struct usb_page_cache *pc, int actlen) hdr_off = pkt_end = (rxhdr >> 16) & 0xFFFF; /* + * On older firmware: * <----------------------- actlen ------------------------> * [frame #0]...[frame #N][pkt_hdr #0]...[pkt_hdr #N][rxhdr] + * + * On newer firmware: + * <----------------------- actlen ----------------- + * [frame #0]...[frame #N][pkt_hdr #0][dummy_hdr]... + * --------------------------------> + * ...[pkt_hdr #N][dummy_hdr][rxhdr] + * * Each RX frame would be aligned on 8 bytes boundary. If * RCR_IPE bit is set in AXGE_RCR register, there would be 2 * padding bytes and 6 dummy bytes(as the padding also should @@ -968,6 +976,10 @@ axge_rx_frame(struct usb_ether *ue, struct usb_page_cache *pc, int actlen) * IP header on 32bits boundary. Driver don't set RCR_IPE bit * of AXGE_RCR register, so there should be no padding bytes * which simplifies RX logic a lot. + * + * Further, newer firmware interweaves dummy headers that have + * pktlen == 0 and should be skipped without being seen as + * dropped frames. */ while (pkt_cnt--) { /* verify the header offset */ @@ -978,6 +990,12 @@ axge_rx_frame(struct usb_ether *ue, struct usb_page_cache *pc, int actlen) usbd_copy_out(pc, hdr_off, &pkt_hdr, sizeof(pkt_hdr)); pkt_hdr.status = le32toh(pkt_hdr.status); pktlen = AXGE_RXBYTES(pkt_hdr.status); + hdr_off += sizeof(pkt_hdr); + + /* Skip dummy packet header. */ + if (pktlen == 0) + continue; + if (pos + pktlen > pkt_end) { DPRINTF("Data position reached end\n"); break; @@ -989,7 +1007,6 @@ axge_rx_frame(struct usb_ether *ue, struct usb_page_cache *pc, int actlen) } else axge_rxeof(ue, pc, pos, pktlen, pkt_hdr.status); pos += (pktlen + 7) & ~7; - hdr_off += sizeof(pkt_hdr); } } From nobody Wed Sep 13 17:28:22 2023 X-Original-To: dev-commits-src-main@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 4Rm6qs2dxXz4tfWK; Wed, 13 Sep 2023 17:28:41 +0000 (UTC) (envelope-from yuri@aetern.org) Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) (using TLSv1.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 mx1.freebsd.org (Postfix) with ESMTPS id 4Rm6qr6wg8z4MZw; Wed, 13 Sep 2023 17:28:40 +0000 (UTC) (envelope-from yuri@aetern.org) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=aetern.org header.s=fm1 header.b=CrwKEqna; dkim=pass header.d=messagingengine.com header.s=fm2 header.b="N Hnpjz6"; spf=pass (mx1.freebsd.org: domain of yuri@aetern.org designates 64.147.123.20 as permitted sender) smtp.mailfrom=yuri@aetern.org Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 1C1813200A44; Wed, 13 Sep 2023 13:28:38 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 13 Sep 2023 13:28:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aetern.org; h=cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm1; t= 1694626117; x=1694712517; bh=QFNrX1gtejyWkLbG2EIX988xSabFyHZ73xe VhGbcMbQ=; b=CrwKEqnaE4DXv5l1qAJvjyQOsG/tDsxXctoEcWLjUloPdOcc2fa 2cOFAcN6vzBDzfqhoT59LfSjEDxMdL51STSbkL9cKQX91Ywi3XnQVMIQ1L0Qfyx8 ro2Ll4yiNkgfTAZp9HDMP6yDUmxg8rpj6gzQXpIP13qd9v18LYn2iAcfUtXgzPWJ 8cYHKSwdRzEkRDtSF5xYVwlwm3MzK6ZsGaaOHBxW9sVQHXCXbYzT3iICVtUdJTxp TO2GjhUACWwiMCjN83Hhw/UbIvftZspa9Mbl8GxoNq4ab/nR3mOYpfksStLICykV PHUkCIH+sxtoUy3DBOJMwR2WJ+GlxQF0qrg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1694626117; x= 1694712517; bh=QFNrX1gtejyWkLbG2EIX988xSabFyHZ73xeVhGbcMbQ=; b=N Hnpjz6AVgKblT7oSZg13atgVBadnKapy1YIYVFQPEfGhZ1Wktr9GgqsOidhrArZM dZR7RhysoBtS7l78ka7a+x4Mcc9ikTt41SpjYKYTQn7VN4hXEjDYHjJ4PSyJjALz P0fkP4CXSs/yonTH6yBlD6pBs5Rdem6Vc3ZQoLXlORtmHD3cpX92k3u6O6snydjT H/XtZzKLRZsO2yEh+Hw0GyJqYnf9I1208cQAf/aYXoJq8eZknexeHcCyzdHMtS8z ke+IDB4mnLZ+i7LNt4ja0d5z+Pdk7j9HRBlWZm5QDxnNe1GYAFZbYxOI5a0HA8I1 JwVxeZzbnVDDNgU3dj5Ig== X-ME-Sender: <xms:RfEBZdIAwcIcGHj6ks5n7mQFRQMNYoJgQBUeEBDNRsldO4aOaaznsQ> <xme:RfEBZZIheHj5utH7vztGzaiDq-wdYiUTPnvsrevv3K9C9Xb2sW1C-umGDk5n5PTcr HLSfvhyDlQE9qyIHXY> X-ME-Received: <xmr:RfEBZVvPR79SQEs_6AHA3X8P0jZdaLEwPlKZKQztzGVUlhmBRAy9beRlSR7yoCOFMg> X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeikedguddufecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfhfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpegjuhhr ihcuoeihuhhrihesrggvthgvrhhnrdhorhhgqeenucggtffrrghtthgvrhhnpeevkefhfe ffgefhheelgeelhfekgedtlefgvdelvdeufeehhfetjeeikeefgfffleenucffohhmrghi nhepfhhrvggvsghsugdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpeihuhhrihesrggvthgvrhhnrdhorhhg X-ME-Proxy: <xmx:RfEBZeZ3pkx_E25p1jU0QvSBku2TKgDNp7pmg7MEcZijCvDMJssAFQ> <xmx:RfEBZUZ15Wod_99NMYBqmtBrNZcS99U3kaV-NoyUPZMPrVQW7yX0YA> <xmx:RfEBZSBvfvysi-G8gbskwQf2rmOr_tYOVBrL6JasJDSIIdWscXfZGg> <xmx:RfEBZTmlU3Ws0dK3RGCDVC6VnrZg0EEwEeC_1LEiepHImnXREyAGcA> Feedback-ID: i0d79475b:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 13 Sep 2023 13:28:36 -0400 (EDT) Message-ID: <7af75066-8b42-477a-8ea4-f64dd0970ab1@aetern.org> Date: Wed, 13 Sep 2023 19:28:22 +0200 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: 98b98ec1bc7e - main - ftpd: add deprecation notice To: Ed Maste <emaste@FreeBSD.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202309091847.389IlZed083348@gitrepo.freebsd.org> Content-Language: en-US From: Yuri <yuri@aetern.org> In-Reply-To: <202309091847.389IlZed083348@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spamd-Bar: / X-Rspamd-Pre-Result: action=no action; module=multimap; Matched map: local_wl_from X-Spamd-Result: default: False [-0.39 / 15.00]; R_DKIM_ALLOW(-0.20)[aetern.org:s=fm1,messagingengine.com:s=fm2]; R_SPF_ALLOW(-0.20)[+ip4:64.147.123.20]; XM_UA_NO_VERSION(0.01)[]; MLMMJ_DEST(0.00)[dev-commits-src-all@FreeBSD.org,dev-commits-src-main@FreeBSD.org]; FREEFALL_USER(0.00)[yuri]; local_wl_from(0.00)[yuri@aetern.org]; DKIM_TRACE(0.00)[aetern.org:+,messagingengine.com:+]; ASN(0.00)[asn:29838, ipnet:64.147.123.0/24, country:US] X-Rspamd-Queue-Id: 4Rm6qr6wg8z4MZw Ed Maste wrote: > The branch main has been updated by emaste: > > URL: https://cgit.FreeBSD.org/src/commit/?id=98b98ec1bc7e961c3d3468b0e481080580c902cf > > commit 98b98ec1bc7e961c3d3468b0e481080580c902cf > Author: Ed Maste <emaste@FreeBSD.org> > AuthorDate: 2023-09-09 17:34:14 +0000 > Commit: Ed Maste <emaste@FreeBSD.org> > CommitDate: 2023-09-09 18:46:58 +0000 > > ftpd: add deprecation notice > > Approved by: gordon > Sponsored by: The FreeBSD Foundation > Differential Revision: https://reviews.freebsd.org/D26447 > --- > libexec/ftpd/ftpd.8 | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/libexec/ftpd/ftpd.8 b/libexec/ftpd/ftpd.8 > index c45df161575c..f5353be894fe 100644 > --- a/libexec/ftpd/ftpd.8 > +++ b/libexec/ftpd/ftpd.8 > @@ -43,6 +43,16 @@ > .Op Fl T Ar maxtimeout > .Op Fl t Ar timeout > .Op Fl u Ar umask > +.Sh .Sh DEPRECATION NOTICE Duplicate .Sh, the rendered man page shows: .Sh DEPRECATION NOTICE > +The > +.Fx > +base system > +.Nm > +is deprecated, and will be removed in > +.Fx 15.0. > +Users are advised to install the > +.Pa ftp/freebsd-ftpd > +port or package instead. > .Sh DESCRIPTION > The > .Nm From nobody Wed Sep 13 17:49:42 2023 X-Original-To: dev-commits-src-main@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 4Rm7JR4dqwz4sXJB; Wed, 13 Sep 2023 17:49:59 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.pphosted.com", Issuer "Sectigo RSA Organization Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rm7JR21H8z4RM9; Wed, 13 Sep 2023 17:49:59 +0000 (UTC) (envelope-from sjg@juniper.net) Authentication-Results: mx1.freebsd.org; none Received: from pps.filterd (m0108158.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38DHLBO3015280; Wed, 13 Sep 2023 10:49:54 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=to : cc : subject : in-reply-to : references : from : mime-version : content-type : content-id : content-transfer-encoding : date : message-id; s=PPS1017; bh=/eK1KzNyiwpT5Nr+7bYjhMQVeUwPvpapGQ2EmoWMe/c=; b=Gem1yRLJ/H90W1MyYtahQwyYDEgjrZMQjBTXT+hb/oZAcE+zOFVrmg9gvBedUPHzukom nKj758fqnLPWVngmWUNbyvmfGzd8QNgkbcuzqKy5J9Xt65dDgA3l7TxUgCuy3/7mjBHE xWFKpdv0ShaWAnLxIQqIGzECfBVIKPaDNxTUpSOCBHSw5EcACkcnXusVDv13l6NvC1wz WqaPwHBve6UBxjyqbqWgQMKtLtbhfm1BBYX9Hzw11EeaMVgs8CDmNR35qnGkoGTXCbJ4 09iwjLz5wVLq/PX5JkMLSLWfKz1M1JPJhEzvQDdgm5Fi93blk8jFu/WCXi/sc2UNiejD LQ== Received: from mw2pr02cu001.outbound.protection.outlook.com (mail-westus2azlp17012026.outbound.protection.outlook.com [40.93.10.26]) by mx0a-00273201.pphosted.com (PPS) with ESMTPS id 3t2y9n2eej-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Sep 2023 10:49:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mf7WA8ImnzU6nB1OxlOaoSqpzKpgJSmCeHQq+f1y5TE/PfA/FKGRbl7GRO1ttcEdYMF4yqizjtx33HUQt3eGG/wXKVAY348DxNJcS2nWbfvUJXXzlOWHcfU1UJqLmyXjz60Jba21mCrE/QnE66fqHyslSi2Mbgt888AZLPIfLaSotw+MaFBz40aky5Z97w7VuabguflaR07Q3m9T0bWwGPkg8cRU0SKh/hL4ttYBvqbu8gzYCjQUyUT618GiHr3q6DTHi5EJfL7qQesHDzh+2bUqMIfx+dY+5JMAShMJ0iyRiddND3eXR8VpLgBOTpBP8yuF8uff96czr9uozvO9/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/eK1KzNyiwpT5Nr+7bYjhMQVeUwPvpapGQ2EmoWMe/c=; b=IHWReEQ1ASVHCh7qnifVe6hmHm2OL0RdG8a0k42KDDjzz50bZC8od1nNeOzj1ZZKbnhRZbPLxCqUEmmctVrBls/vKMsHBmht9FIyMUI3/8goFsvIIS1MNLNOFCz59dQcFzfNLoRUoioDKspgl2kW5p2KyQGKXSCcoMwES2oV+g8wQNfZAzARk0aCLnWnHro8pVTYV1fw1+KNIrEUm3/VoJe2rKPXAj9lZbwKJseALIA0GfJbcqMngNZIt/LnToQD99YH5hyLnVz4FCTelkXSpRk+OfjGcuUE3xY/ZJ0ukViDK3kSZlkCN1ubZiJqf4YM9vYmKOz58LZ20JpbIhZz+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip is 66.129.242.15) smtp.rcpttodomain=freebsd.org smtp.mailfrom=juniper.net; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=juniper.net; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/eK1KzNyiwpT5Nr+7bYjhMQVeUwPvpapGQ2EmoWMe/c=; b=Jqp+RXZbbObXJln9QZlOmzB3b88kpborKIEq4oSemVsib7YJ0idd5caNFzRdNnSNYmhAF8UZKcjpKk602+zDcghMT1QqQYYhf/R6s2NPAowgZQIiuZimGovTDlBX0/fBuJ82Yn8o0jUenn4g+vZB/UsRr78ZxtTDnyEZKOaXh40= Received: from DS7PR06CA0028.namprd06.prod.outlook.com (2603:10b6:8:54::33) by PH0PR05MB7653.namprd05.prod.outlook.com (2603:10b6:510:27::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.19; Wed, 13 Sep 2023 17:49:52 +0000 Received: from DM6NAM12FT075.eop-nam12.prod.protection.outlook.com (2603:10b6:8:54:cafe::14) by DS7PR06CA0028.outlook.office365.com (2603:10b6:8:54::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.19 via Frontend Transport; Wed, 13 Sep 2023 17:49:52 +0000 X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is 66.129.242.15) smtp.mailfrom=juniper.net; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=juniper.net; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.242.15 as permitted sender) Received: from p-exchfe-eqx-02.jnpr.net (66.129.242.15) by DM6NAM12FT075.mail.protection.outlook.com (10.13.178.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.8 via Frontend Transport; Wed, 13 Sep 2023 17:49:52 +0000 Received: from p-exchbe-eqx-02.jnpr.net (10.104.9.15) by p-exchfe-eqx-02.jnpr.net (10.104.9.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Wed, 13 Sep 2023 12:49:50 -0500 Received: from p-mailhub01.juniper.net (10.104.20.6) by p-exchbe-eqx-02.jnpr.net (10.104.9.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30 via Frontend Transport; Wed, 13 Sep 2023 12:49:50 -0500 Received: from kaos.jnpr.net (kaos.jnpr.net [172.23.255.201]) by p-mailhub01.juniper.net (8.14.4/8.11.3) with ESMTP id 38DHnocG023515; Wed, 13 Sep 2023 10:49:50 -0700 (envelope-from sjg@juniper.net) Received: by kaos.jnpr.net (Postfix, from userid 1377) id C7D0B5A54B; Wed, 13 Sep 2023 10:49:42 -0700 (PDT) Received: from kaos.jnpr.net (localhost [127.0.0.1]) by kaos.jnpr.net (Postfix) with ESMTP id C74DD5A5BB; Wed, 13 Sep 2023 10:49:42 -0700 (PDT) To: Drew Gallatin <gallatin@fastmail.com> CC: <src-committers@FreeBSD.org>, <dev-commits-src-all@FreeBSD.org>, <dev-commits-src-main@FreeBSD.org>, <sjg@juniper.net> Subject: Re: git: 89f361f742ae - main - kern.post.mk allow NEWVERS_{ENV,ARGS} In-Reply-To: <da6f7d8b-b50c-4ab4-9ac1-baf14dc8e968@app.fastmail.com> References: <202307171904.36HJ4L1l013461@gitrepo.freebsd.org> <7bb4a991-060d-415e-a188-192781c1f3c0@app.fastmail.com> <da6f7d8b-b50c-4ab4-9ac1-baf14dc8e968@app.fastmail.com> Comments: In-reply-to: "Drew Gallatin" <gallatin@fastmail.com> message dated "Wed, 13 Sep 2023 08:54:28 -0500." From: "Simon J. Gerraty" <sjg@juniper.net> X-Mailer: MH-E 8.6+git; nmh 1.8; GNU Emacs 28.2 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <21463.1694627382.1@kaos.jnpr.net> Content-Transfer-Encoding: quoted-printable Date: Wed, 13 Sep 2023 10:49:42 -0700 Message-ID: <25378.1694627382@kaos.jnpr.net> X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM12FT075:EE_|PH0PR05MB7653:EE_ X-MS-Office365-Filtering-Correlation-Id: ed4a58d1-7343-4204-51f9-08dbb481d510 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ODBXVIZEMKxQgMCF3OtTlDZI+rr/JeR7QL1ls18tmrch3zQN/e0d0w0wFQM1bByja6jJXkb786kjqwU8NLQa3521C6i9+VyfgbqwfbBlAOqShdWvOBSGpnYctzTcZGVULmQwFZ/ZTjwj4JYvNdV0E8jNI4MILUOi6uixS/zIVP40nl5iwxSOZV/0Sq+O4S3593mzJlDRvuSMQSAM6Faf//1HL7Cmd07RMjfeDKmI2kcn/t8GXdzQQW69J+rHe7+32vgy0ay+I2A1hzv/oCGpZWlMU1o/8jHAMyK8oH4pQHzRkkko3uQj2cPa37S0mZcY3K+dtlZQ1LK2zHBK67fdxf2T7TJTekZjydMJet6JhFDIB+9LNYz3Vj9Kybi005pzSpFroXrJFMJy0+fvnevDT84/2WONzvwsIkxGYiQVZEAhydfnCMp5itRgZBOVbtn1IfEGL5HzGbreexoIZHgF+HXkIBP3acz2W0u22xEhHOsWYI26MkFLZEo08+xtLy2Pnj7px7Ll7YQSOCgn5lh8eXt07eco+sm91ATjsLMPQJZjUvcCS1WI+XFv104+TdgQHYYwVyrotuQlnZ0fSxq+STthxPt/Tfd807/zQ1++XGRIRkulx/I+HdrvXpQEGguHnNe9bRukVSRyjsQhr4jNZqwKIYgPPIpPhU+vDAcfwj1eSirV/KiLwnMJP5eND1nYQeOncVY6DKad6MxdO9KTZemqgGVMr9q0QSZmXCzHtaIzK9yFBPB6HhEnEykmmaDtXhDGkndhWX3zFlu8+noQaBHPWzu2EmQD+nRfoE4FCdoNmDGeXqFZwy3z3YKRACbH X-Forefront-Antispam-Report: CIP:66.129.242.15;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:p-exchfe-eqx-02.jnpr.net;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(346002)(376002)(39860400002)(82310400011)(451199024)(186009)(1800799009)(46966006)(36840700001)(40470700004)(8936002)(8676002)(86362001)(4326008)(55016003)(40480700001)(5660300002)(2906002)(4744005)(40460700003)(966005)(7696005)(82740400003)(7126003)(356005)(9686003)(478600001)(6266002)(336012)(26005)(81166007)(6916009)(316002)(47076005)(70206006)(54906003)(70586007)(41300700001)(36860700001)(107886003)(36900700001);DIR:OUT;SFP:1102; X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2023 17:49:52.0517 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ed4a58d1-7343-4204-51f9-08dbb481d510 X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4;Ip=[66.129.242.15];Helo=[p-exchfe-eqx-02.jnpr.net] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM12FT075.eop-nam12.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR05MB7653 X-Proofpoint-GUID: L0P7Hf94YUY85cKG2awZc8lIDo_YHSaS X-Proofpoint-ORIG-GUID: L0P7Hf94YUY85cKG2awZc8lIDo_YHSaS X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-13_12,2023-09-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 malwarescore=0 clxscore=1011 mlxlogscore=474 impostorscore=0 spamscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309130149 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:26211, ipnet:208.84.65.0/24, country:US] X-Rspamd-Queue-Id: 4Rm7JR21H8z4RM9 Drew Gallatin <gallatin@fastmail.com> wrote: > des seems to be addressing this in https://reviews.freebsd.org/D41845<ht= tps://urldefense.com/v3/__https://reviews.freebsd.org/D41845__;!!NEt6yMaO-= gk!BYCrz-e9MyZAae6u3F9l3e9f-Orqf5I_HTbhxGRZWq3o4CuOPwmgI9fm9PipTP-h0etJSkh= PmgktQ7Lv$> That looks fine to me. Thanks des From nobody Wed Sep 13 18:11:40 2023 X-Original-To: dev-commits-src-main@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 4Rm7nS6K15z4sfdm; Wed, 13 Sep 2023 18:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rm7nS5sJkz4VNy; Wed, 13 Sep 2023 18:11:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694628700; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yDHJf1r2G7i6AZTTA6wK3LyOH6T1GUbqPs7vEDTR7Do=; b=nTlL2/XIb/y5QvJaW2DPoFMP0afovyLptbCOGdjG9aLPf1MhCN7Cm2O/tO7uil0974uw8b L9nKK1Q7rTkD/JbL0XdsW5VoRp1SP04dKpU28rRjLl+HOCnlAxhCwozngwGbZrH0hshh4B XNwcdZ0/rZ8qV/fRfDWllz52tMPohaiAuLNeBZ7IPhT4RPHf7h6szMaRJio6nCjPQ2cvfL zSUNDNIqP5w4jFg4FI2UOmBzsZFHHGoAmXl4ykcMyyce6Fq8K8bt315F8b93uOhNBnJ/YG M0RCj65gTipby+dNt7PEUR6Ft6/w0VfeoTKxb373+aiDn1EITleuwK2Q9FIwcA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694628700; a=rsa-sha256; cv=none; b=bzEOphUAkMiCeO+0FOG+cY6IK47noJZsEELk8Ine4QMiNSvTUy22M56u3l9AxH5GM7bQNL eir/esdUwRdOA5vfj6JU2vekQ2qo9+Id8VYaK1LtEGS92q0GarrJpxR5nDuZ3E3yhd0gt+ fPGTUQ0dGgPq2C8J5r0Sz6cMltSI2ImB1fqAJqBXrTNsBF63EYLRSc3UY2cUle2MHuS1w2 R4Ib3chl4mFL2JEfBVaI2MzSGth2uAXoOW9IX7iEzFw+wHTzumLg7xi+iZTi55b/jidEId LUlb9dqxLFgmKqDTVssad9sdSWT9L8vOW+hAxzqYqmOJ2KEh7tqwSG7SSfUZIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694628700; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yDHJf1r2G7i6AZTTA6wK3LyOH6T1GUbqPs7vEDTR7Do=; b=JHcYwPOpkW8+4zc8u982E5toTYrO37NWjHXyjNPqZL2S8SioSvJKLwgVTo1t65Ad1gzA4m Ovt5+v+4wGzYjIebL3KgZseNKfH+z4cazwfk8BVaSjL1p2JmYMECUZQzqGuKkfQD/NxIiZ 271bkwg3U+YXYG4IcIKneiyLqbTsyA1vWOSrbZpx7fx8sayB18Cf0YVeTYCMSZEKMwnlGm sfAZ5GegW7f/ujWKqxHCeI6AQunN8Ay/JzlWiwql5sQ1ppQOvbl0ZJj84EEcKiN0vneYya /8oBkY8LT41TviSa7TXe1/GMpZPcurnjtoYaPaHQfQ2WRA22+FiGgVTvsusi0w== 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 4Rm7nS4wvLz8nv; Wed, 13 Sep 2023 18:11:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DIBeJd010363; Wed, 13 Sep 2023 18:11:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DIBexV010360; Wed, 13 Sep 2023 18:11:40 GMT (envelope-from git) Date: Wed, 13 Sep 2023 18:11:40 GMT Message-Id: <202309131811.38DIBexV010360@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org> Subject: git: 9f16abf8d356 - main - newvers.sh: Avoid picking up stray envars. List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 9f16abf8d3561cb1a2c459eb6cb8fce06223c9b3 Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=9f16abf8d3561cb1a2c459eb6cb8fce06223c9b3 commit 9f16abf8d3561cb1a2c459eb6cb8fce06223c9b3 Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2023-09-13 18:10:46 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2023-09-13 18:10:46 +0000 newvers.sh: Avoid picking up stray envars. 89f361f742ae added a mechanism to allow arbitrary overrides from the command line. Unfortunately, it also had the (likely unintended) effect of allowing RELEASE and VERSION to be passed in from the environment, and Makefile.inc1 happens to define VERSION for the benefit of pkgbase. To restore the status quo, unset RELEASE and VERSION at the top of the script. Fixes: 89f361f742ae MFC after: 3 days Reviewed by: gallatin, sjg, emaste Differential Revision: https://reviews.freebsd.org/D41845 --- sys/conf/newvers.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 40821c100161..73fd6857d307 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -57,6 +57,8 @@ BRANCH="CURRENT" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi +unset RELEASE +unset VERSION if [ -z "${SYSDIR}" ]; then SYSDIR=$(dirname $0)/.. From nobody Wed Sep 13 18:22:25 2023 X-Original-To: dev-commits-src-main@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 4Rm81s3Zgrz4shxP; Wed, 13 Sep 2023 18:22: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rm81s39Byz4XHC; Wed, 13 Sep 2023 18:22:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694629345; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hPewDvtN3BBHYhp6zTOy+e1fgNdUxQXjuYTEbmbnfdk=; b=Onvby8u95B9qMjm0MGX4wERXAwZLN0rzSkjNcaZvKEh/I56abjGCHaU8BuIh7GViqhDy0D rXYjjPG4EuWUNGoTfdDu2X8a07ySLDaCtOyYgtvlRHDz5URDwlSSyWIdirDLvACX/ACquB iTi4lJ53NyHARhCrwkqdG7qyMxdYzvkbTEwPxacPKgwTVFk/FeoFL/z0dkJTIrlrVkBS01 lhC5poY4BbEm7my//Qfj+d4jdUPyQT0AIkAKSLgr37Vc7JxEC1FW6sSfMjMSC0tgQ6gfYJ Hp/2+aFKCwgLS/2IO3sO43KNBmY4uLPe9KTCOaVJ/skcIfnZr6bQPftwqnm4Ow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694629345; a=rsa-sha256; cv=none; b=o1h8SnmMiBy+INMH95UA8xeljUlAnRRm+216FbHnKNGSOpvXF5olvmv/T6Ri8Qi9dIf5OW 6cmvVVEQVaEE2184vdEr5tyDP3ACskFTwgtpttwj6D/Fae2UpZsUHW/7koTXD7KAR/hEIV Ax1+vTcuEQnLEGlRgX+2ZTBAwtANegotbscCAk2ne4vg0dKxad9pBZ8dUfkAZnkdo2SCJt dUJOn6DACa2EvUjsLB3PDJtWeVeikFrl6rMmjocx6r7ubuOsU9cRMHjvjQ8Z4THm2PWbwu SJvI1pnWd4d5LbaXFZGErJIeRzEU1kypAHtf+WSGhRBO5Y9+o/zgTsqit5FZaQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694629345; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hPewDvtN3BBHYhp6zTOy+e1fgNdUxQXjuYTEbmbnfdk=; b=VFDfEM8YNV4wNQ+bZ4ax/XGEC5GBW0plAhweWlpZ8xO4uTj4myfp4FJXdPDS8hDpQnFSqX +6M19Vmp2/tPFS5byMsZ8SCkhy5ohPnOMscHOKvEL/64HP0k3IO7Rb+OAo1IUVS2uDq6n+ T565qvpTqunEjIgDnHsSn8896BM1r4xAkQAthqlsVeHThRNW4kerhau/5Re8vOa5F5OutB in/IK4PWu3lK7ro3oSTGGzpb8+A5IRsaYer0bHvg+k/ZWnfu9375cNeZ+xDzpD+Zv9g59A plEVITZ9yVD5Qiq37SqqmH4NdOHMlYwedXrXo398xHhxVlmZD0cSd4jnR28D1A== 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 4Rm81s2FzCz91t; Wed, 13 Sep 2023 18:22:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DIMPrq030526; Wed, 13 Sep 2023 18:22:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DIMPQL030523; Wed, 13 Sep 2023 18:22:25 GMT (envelope-from git) Date: Wed, 13 Sep 2023 18:22:25 GMT Message-Id: <202309131822.38DIMPQL030523@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore <dougm@FreeBSD.org> Subject: git: 8763b9862f90 - main - powerpc pmap: initialize kernel pmap radix trie List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8763b9862f90dc3bdbbc5e3c2664890be7c1f0c4 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=8763b9862f90dc3bdbbc5e3c2664890be7c1f0c4 commit 8763b9862f90dc3bdbbc5e3c2664890be7c1f0c4 Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2023-09-13 18:17:57 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2023-09-13 18:17:57 +0000 powerpc pmap: initialize kernel pmap radix trie Commit 2d2bcba7ba70141388729ed49674b36fd01146c5 changed radix trie implementation and made it necessary that radix tries be initialized with vm_radix_init. @dbaio reports that in some configurations, there is a powerpc boot panic and that this commit introduced the problem. In powerpc/aim/mmu_radix.c, the radix trie in kernel_pmap is initialized by zeroing all its fields. Add a call to vm_radix_init to properly initialize kernel_pmap->pm_radix. Reported by: dbaio Reviewed by: alc, jhibbits Fixes: 2d2bcba7ba drop NULL check from radix trie search MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D41846 --- sys/powerpc/aim/mmu_radix.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/powerpc/aim/mmu_radix.c b/sys/powerpc/aim/mmu_radix.c index 9c5b67121803..e26508a3bddf 100644 --- a/sys/powerpc/aim/mmu_radix.c +++ b/sys/powerpc/aim/mmu_radix.c @@ -1844,6 +1844,7 @@ mmu_radix_setup_pagetables(vm_size_t hwphyssz) bzero(kernel_pmap, sizeof(struct pmap)); PMAP_LOCK_INIT(kernel_pmap); + vm_radix_init(&kernel_pmap->pm_radix); ptpages = allocpages(3); l1phys = moea64_bootstrap_alloc(RADIX_PGD_SIZE, RADIX_PGD_SIZE); From nobody Wed Sep 13 21:14:35 2023 X-Original-To: dev-commits-src-main@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 4RmCrX1tbFz4sfKM; Wed, 13 Sep 2023 21:14:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmCrX1BSbz3YP6; Wed, 13 Sep 2023 21:14:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694639676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MiI3TU71VLFsxwy5IhISR9tIItBtoDluxFCNkxLDa+w=; b=RkVlRtK/dK/07qTxro1nRpo8V9VQYh60UFcsyXoxsh+WxTHHjeUmVcFFkTzLp+YQ1Zv60s 4a9mS1c5CJsn7emx2f5PpYEIhbXK9OqslopoJfmqhZSq1HppJDZ7ofwibxqbu+cJIZAbVK MSgwZpgX9m9t+o/58eiunDx2pnJk9oVqJsMtpp+RYskLesbgr/G6xEjExJJOsehoHOc+aB OsZxYDRbiys2YGrNIxyUdPGfbwoW6Ly+jeenuvfcG4criWdEKgrqK+pTUBXDxmoEpxRPNj bUJaw2Cti6DhVSd1xC9JuVqRdBWcfJufzuMVLbA7lK6eJrr/6X5+la8WWr2Zpg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694639676; a=rsa-sha256; cv=none; b=m8rdWAk4vAGTNdb2tUDIr3VNlYzc5PzqQ3Q9HYEfYgDty6zLt5J18C3wohQIVLpSmAXVGH mS1MLxvilmbdoExYAfx3pDw+qHeUU2ga7eDg0OQ8Y6MJa9CzfM8S3XLhxXZWPkJFA3vVsi X9dAmjPC3e0jQ40E+KKTkqHbVwFtBlXrmDx8kdKT4qHGCOcCjou6GhPveINxo1eeJw7WU4 x5L4PzDH9NsfBeWIkkSJs1kYd9O6LY/ScrXSflZprqoLR7p5yRkZHkh3ODzqzUrjT20e+0 D0F5w7M6iDTrVP0bPilMjTRFhZXFjs+T7FAdsuuO+oLVJQ8vTfIT9msxFEFdZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694639676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MiI3TU71VLFsxwy5IhISR9tIItBtoDluxFCNkxLDa+w=; b=Wl0DF0M9lrfS2X9UqUHPRsZ14yqlR84xjhWVSfKhv4XZhyuomW43VV/pxZr4MggujBnsVt yJ4DlRl/gVL4vhPkjwktIMdVfHmW9GtB6JSvBl7x7zsqn5MqGRq4QNTJyYvPncCBx5fHfE VKePhipj4hRHnUnm/brbMHtn/TggwFVTHf96NiH8K2Rpc4L7HbBuBOFAODBqHxuWxd7xYB iRGreQ2QGgkcDAsr7tek2bIbVB0LdL9xnc019ZPBlOsARnQxwp6omMOC1fro8rTEsFsD9n tGp0z6VXdgERpipQCb/U3+vnxRIscSa923RlkG/0c6ALYVyUBKb6nhIq8sOuZA== 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 4RmCrX0DpszVMt; Wed, 13 Sep 2023 21:14:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DLEZE8012919; Wed, 13 Sep 2023 21:14:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DLEZ6G012916; Wed, 13 Sep 2023 21:14:35 GMT (envelope-from git) Date: Wed, 13 Sep 2023 21:14:35 GMT Message-Id: <202309132114.38DLEZ6G012916@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste <emaste@FreeBSD.org> Subject: git: 01d82151022c - main - ftpd: correct deprecation notice markup List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 01d82151022cb1383e83c331708a787f1907b00f Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=01d82151022cb1383e83c331708a787f1907b00f commit 01d82151022cb1383e83c331708a787f1907b00f Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2023-09-13 21:13:42 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-09-13 21:13:42 +0000 ftpd: correct deprecation notice markup Also bump .Dd for the original change. Reported by: karels Fixes: 98b98ec1bc7e ("ftpd: add deprecation notice") Sponsored by: The FreeBSD Foundation --- libexec/ftpd/ftpd.8 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/ftpd/ftpd.8 b/libexec/ftpd/ftpd.8 index f5353be894fe..ec4ce0c65100 100644 --- a/libexec/ftpd/ftpd.8 +++ b/libexec/ftpd/ftpd.8 @@ -27,7 +27,7 @@ .\" .\" @(#)ftpd.8 8.2 (Berkeley) 4/19/94 .\" -.Dd June 28, 2022 +.Dd September 9, 2023 .Dt FTPD 8 .Os .Sh NAME @@ -43,7 +43,7 @@ .Op Fl T Ar maxtimeout .Op Fl t Ar timeout .Op Fl u Ar umask -.Sh .Sh DEPRECATION NOTICE +.Sh DEPRECATION NOTICE The .Fx base system From nobody Wed Sep 13 22:17:15 2023 X-Original-To: dev-commits-src-main@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 4RmFDq3bG3z4t1d4; Wed, 13 Sep 2023 22:17: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmFDq383Nz4J1D; Wed, 13 Sep 2023 22:17:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694643435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aDJ1FcnsQOUtDjcHwsCs9LvY3odyHvq5NzagWmVRyf8=; b=ZZpEhE/R7hBEbHyHFwQ9mu0P16MbM5RWFIFh7SGxwvwaT1fQbon5wW0PpN7J+OZ6h9AU9f 9hLIhRNdwDlWIvwDdLy3VIJtT916ruCwzA0nbCiENjyY86VW5QMyU9kfh0sSB3IJNKQmRp ZJTm3VKA/2iZARYFzFIZFjXzzfIdgYCHlt138FTuto81saSHBL4HUZHNfSy1SxRCekb9Nl 5khdiANxJbGvWjAHVo9/1ci/ysgFSHy8vJEZADTCJnagEDgX9Of9Qs1hl0zr2d3sZ4UOw2 4RJfIaidTf65PQOtvuCHDHC4G8Z+78VWXWS6yPtzdMZ1qVos/v5NX32ZNbh6og== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694643435; a=rsa-sha256; cv=none; b=g2Zgs1zqlR9xH/ECnmLSzv7W7yUocP/iDGjgt2On2mDuGURigxo+RyQ24Pl6ycGZSagGyv 28ns49wAHFPuPnDFWv+Q76ccRyGBJ227IfNysZYgcF98vwNlt9A3HWqGH8JSEIiBDvwT4M L0X0RjAD38KynVC5Uex+YGOlanBqn/LiF7z2sjxtNvisXGMntaAy+oEEWVU0UMPGe1XaY3 N7Hld+fDoOfz+8xF5IeNQ7khDyqjnJtDv65izI6WNa+OdsH1FYlJ58HR1yKrm4HAo5ayGM z6lNYB0KXrPnt6M6YzsIyPu7o1EOPUyUIq9kJlxMq1kRRHQNytW9qt1KLS59CA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694643435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aDJ1FcnsQOUtDjcHwsCs9LvY3odyHvq5NzagWmVRyf8=; b=dOPMeajwHoqdNY/Dryaw/e+jrUUZTb9jZGKVtTzA/l8vzsK/LaRsUVfhwqyFH/gC4BaTzx 8IyhXcsKV9IBtyy3AWwSTjfhfYpndKEyIr9BZgkygmMyHkyog2qiBo9/98IvRLZO98SKgM nMFKjhRI9updwykddMAp7EN4vCqg2axHMwHeWMiSSt13VlME/TVlv/SqdPLB/pPjfmYkZw NB0bRMhq+l4WFtoSIB3F7HIzZUQ2h7YMJwomn1KXckpe6qjD3Rcw8UIJrvi19c/phu3+3d Mt4zSV19FNgsUFZwGo/rMGCiToCPmy6RA5YLeOhR3vcobP2rbiPNjoSelHE2Ug== 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 4RmFDq256WzXFH; Wed, 13 Sep 2023 22:17:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DMHFg3012452; Wed, 13 Sep 2023 22:17:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DMHFvJ012449; Wed, 13 Sep 2023 22:17:15 GMT (envelope-from git) Date: Wed, 13 Sep 2023 22:17:15 GMT Message-Id: <202309132217.38DMHFvJ012449@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Eric Joyner <erj@FreeBSD.org> Subject: git: bc3a013ccd23 - main - irdma(4): use related vnet for searching netdev List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: erj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bc3a013ccd23c50bb48f17211ffc36fe85d11e18 Auto-Submitted: auto-generated The branch main has been updated by erj: URL: https://cgit.FreeBSD.org/src/commit/?id=bc3a013ccd23c50bb48f17211ffc36fe85d11e18 commit bc3a013ccd23c50bb48f17211ffc36fe85d11e18 Author: Bartosz Sobczak <bartosz.sobczak@intel.com> AuthorDate: 2023-09-12 21:31:39 +0000 Commit: Eric Joyner <erj@FreeBSD.org> CommitDate: 2023-09-13 22:16:15 +0000 irdma(4): use related vnet for searching netdev It was found through testing that when ULP uses individual vnet, the search for the correct vlan_id may failing because of no proper interface with given address. The solution is to use vnet associated to the connection whenever possible. Signed-off-by: Bartosz Sobczak <bartosz.sobczak@intel.com> Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: erj@ MFC after: 1 day Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D41592 --- sys/dev/irdma/fbsd_kcompat.c | 6 ++---- sys/dev/irdma/fbsd_kcompat.h | 14 ++++++++++++++ sys/dev/irdma/irdma_cm.c | 35 ++++++++++++++++++++++++----------- sys/dev/irdma/irdma_main.h | 5 +++-- sys/dev/irdma/irdma_verbs.c | 4 ++-- 5 files changed, 45 insertions(+), 19 deletions(-) diff --git a/sys/dev/irdma/fbsd_kcompat.c b/sys/dev/irdma/fbsd_kcompat.c index 013f9279952e..fbfa5c9e5fc4 100644 --- a/sys/dev/irdma/fbsd_kcompat.c +++ b/sys/dev/irdma/fbsd_kcompat.c @@ -393,8 +393,7 @@ irdma_get_dst_mac(struct irdma_cm_node *cm_node, struct sockaddr *dst_sin, u8 *d { struct ifnet *netdev = cm_node->iwdev->netdev; #ifdef VIMAGE - struct rdma_cm_id *rdma_id = (struct rdma_cm_id *)cm_node->cm_id->context; - struct vnet *vnet = rdma_id->route.addr.dev_addr.net; + struct vnet *vnet = irdma_cmid_to_vnet(cm_node->cm_id); #endif struct ifnet *ifp; struct llentry *lle; @@ -492,8 +491,7 @@ irdma_resolve_neigh_lpb_chk(struct irdma_device *iwdev, struct irdma_cm_node *cm struct irdma_cm_info *cm_info) { #ifdef VIMAGE - struct rdma_cm_id *rdma_id = (struct rdma_cm_id *)cm_node->cm_id->context; - struct vnet *vnet = rdma_id->route.addr.dev_addr.net; + struct vnet *vnet = irdma_cmid_to_vnet(cm_node->cm_id); #endif int arpindex; int oldarpindex; diff --git a/sys/dev/irdma/fbsd_kcompat.h b/sys/dev/irdma/fbsd_kcompat.h index eb1e615fc048..f465f97167cc 100644 --- a/sys/dev/irdma/fbsd_kcompat.h +++ b/sys/dev/irdma/fbsd_kcompat.h @@ -121,6 +121,20 @@ static inline u64 *irdma_next_pbl_addr(u64 *pbl, struct irdma_pble_info **pinfo, return (*pinfo)->addr; } + +static inline struct vnet * +irdma_cmid_to_vnet(struct iw_cm_id *cm_id) +{ + struct rdma_cm_id *rdma_id; + + if (!cm_id) + return &init_net; + + rdma_id = (struct rdma_cm_id *)cm_id->context; + + return rdma_id->route.addr.dev_addr.net; +} + #if __FreeBSD_version < 1400026 struct ib_cq *irdma_create_cq(struct ib_device *ibdev, const struct ib_cq_init_attr *attr, diff --git a/sys/dev/irdma/irdma_cm.c b/sys/dev/irdma/irdma_cm.c index 48aefda681cb..c1d5875961f0 100644 --- a/sys/dev/irdma/irdma_cm.c +++ b/sys/dev/irdma/irdma_cm.c @@ -1624,10 +1624,13 @@ static u8 irdma_iw_get_vlan_prio(u32 *loc_addr, u8 prio, bool ipv4) * vlan id and mac for that address. */ if_t -irdma_netdev_vlan_ipv6(u32 *addr, u16 *vlan_id, u8 *mac) +irdma_netdev_vlan_ipv6(struct iw_cm_id *cm_id, u32 *addr, u16 *vlan_id, u8 *mac) { if_t ip_dev = NULL; struct in6_addr laddr6; +#ifdef VIMAGE + struct vnet *vnet = irdma_cmid_to_vnet(cm_id); +#endif struct ifaddr *ifa; u16 scope_id = 0; @@ -1641,7 +1644,11 @@ irdma_netdev_vlan_ipv6(u32 *addr, u16 *vlan_id, u8 *mac) IN6_IS_ADDR_MC_INTFACELOCAL(&laddr6)) scope_id = ntohs(laddr6.__u6_addr.__u6_addr16[1]); +#ifdef VIMAGE + ip_dev = ip6_ifp_find(vnet, laddr6, scope_id); +#else ip_dev = ip6_ifp_find(&init_net, laddr6, scope_id); +#endif if (ip_dev) { if (vlan_id) *vlan_id = rdma_vlan_dev_vlan_id(ip_dev); @@ -1658,12 +1665,19 @@ irdma_netdev_vlan_ipv6(u32 *addr, u16 *vlan_id, u8 *mac) * @addr: local IPv4 address */ u16 -irdma_get_vlan_ipv4(u32 *addr) +irdma_get_vlan_ipv4(struct iw_cm_id *cm_id, u32 *addr) { if_t netdev; +#ifdef VIMAGE + struct vnet *vnet = irdma_cmid_to_vnet(cm_id); +#endif u16 vlan_id = 0xFFFF; +#ifdef VIMAGE + netdev = ip_ifp_find(vnet, htonl(addr[0])); +#else netdev = ip_ifp_find(&init_net, htonl(addr[0])); +#endif if (netdev) { vlan_id = rdma_vlan_dev_vlan_id(netdev); dev_put(netdev); @@ -2060,8 +2074,7 @@ irdma_cm_create_ah(struct irdma_cm_node *cm_node, bool wait) struct irdma_ah_info ah_info = {0}; struct irdma_device *iwdev = cm_node->iwdev; #ifdef VIMAGE - struct rdma_cm_id *rdma_id = (struct rdma_cm_id *)cm_node->cm_id->context; - struct vnet *vnet = rdma_id->route.addr.dev_addr.net; + struct vnet *vnet = irdma_cmid_to_vnet(cm_node->cm_id); #endif ether_addr_copy(ah_info.mac_addr, if_getlladdr(iwdev->netdev)); @@ -3520,11 +3533,11 @@ irdma_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) if (((struct sockaddr_in *)&cm_id->local_addr)->sin_family == AF_INET) { cm_node->ipv4 = true; - cm_node->vlan_id = irdma_get_vlan_ipv4(cm_node->loc_addr); + cm_node->vlan_id = irdma_get_vlan_ipv4(cm_id, cm_node->loc_addr); } else { cm_node->ipv4 = false; - irdma_netdev_vlan_ipv6(cm_node->loc_addr, &cm_node->vlan_id, - NULL); + irdma_netdev_vlan_ipv6(cm_id, cm_node->loc_addr, + &cm_node->vlan_id, NULL); } irdma_debug(&iwdev->rf->sc_dev, IRDMA_DEBUG_CM, "Accept vlan_id=%d\n", cm_node->vlan_id); @@ -3719,7 +3732,7 @@ irdma_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) cm_info.rem_addr[0] = ntohl(raddr->sin_addr.s_addr); cm_info.loc_port = ntohs(laddr->sin_port); cm_info.rem_port = ntohs(raddr->sin_port); - cm_info.vlan_id = irdma_get_vlan_ipv4(cm_info.loc_addr); + cm_info.vlan_id = irdma_get_vlan_ipv4(cm_id, cm_info.loc_addr); } else { if (iwdev->vsi.mtu < IRDMA_MIN_MTU_IPV6) return -EINVAL; @@ -3731,7 +3744,7 @@ irdma_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) raddr6->sin6_addr.__u6_addr.__u6_addr32); cm_info.loc_port = ntohs(laddr6->sin6_port); cm_info.rem_port = ntohs(raddr6->sin6_port); - irdma_netdev_vlan_ipv6(cm_info.loc_addr, &cm_info.vlan_id, NULL); + irdma_netdev_vlan_ipv6(cm_id, cm_info.loc_addr, &cm_info.vlan_id, NULL); } cm_info.cm_id = cm_id; cm_info.qh_qpid = iwdev->vsi.ilq->qp_id; @@ -3846,7 +3859,7 @@ irdma_create_listen(struct iw_cm_id *cm_id, int backlog) cm_info.loc_port = ntohs(laddr->sin_port); if (laddr->sin_addr.s_addr != htonl(INADDR_ANY)) { - cm_info.vlan_id = irdma_get_vlan_ipv4(cm_info.loc_addr); + cm_info.vlan_id = irdma_get_vlan_ipv4(cm_id, cm_info.loc_addr); } else { cm_info.vlan_id = 0xFFFF; wildcard = true; @@ -3860,7 +3873,7 @@ irdma_create_listen(struct iw_cm_id *cm_id, int backlog) laddr6->sin6_addr.__u6_addr.__u6_addr32); cm_info.loc_port = ntohs(laddr6->sin6_port); if (!IN6_IS_ADDR_UNSPECIFIED(&laddr6->sin6_addr)) { - irdma_netdev_vlan_ipv6(cm_info.loc_addr, + irdma_netdev_vlan_ipv6(cm_id, cm_info.loc_addr, &cm_info.vlan_id, NULL); } else { cm_info.vlan_id = 0xFFFF; diff --git a/sys/dev/irdma/irdma_main.h b/sys/dev/irdma/irdma_main.h index 25c3fcfc939e..aa5bbee2fb77 100644 --- a/sys/dev/irdma/irdma_main.h +++ b/sys/dev/irdma/irdma_main.h @@ -584,8 +584,9 @@ void irdma_gen_ae(struct irdma_pci_f *rf, struct irdma_sc_qp *qp, struct irdma_gen_ae_info *info, bool wait); void irdma_copy_ip_ntohl(u32 *dst, __be32 *src); void irdma_copy_ip_htonl(__be32 *dst, u32 *src); -u16 irdma_get_vlan_ipv4(u32 *addr); -if_t irdma_netdev_vlan_ipv6(u32 *addr, u16 *vlan_id, u8 *mac); +u16 irdma_get_vlan_ipv4(struct iw_cm_id *cm_id, u32 *addr); +if_t irdma_netdev_vlan_ipv6(struct iw_cm_id *cm_id, u32 *addr, u16 *vlan_id, + u8 *mac); struct ib_mr *irdma_reg_phys_mr(struct ib_pd *ib_pd, u64 addr, u64 size, int acc, u64 *iova_start); int irdma_upload_qp_context(struct irdma_qp *iwqp, bool freeze, bool raw); diff --git a/sys/dev/irdma/irdma_verbs.c b/sys/dev/irdma/irdma_verbs.c index 8b7b34f7b2fb..cda8041ab397 100644 --- a/sys/dev/irdma/irdma_verbs.c +++ b/sys/dev/irdma/irdma_verbs.c @@ -3336,7 +3336,7 @@ irdma_attach_mcast(struct ib_qp *ibqp, union ib_gid *ibgid, u16 lid) if (!ipv6_addr_v4mapped((struct in6_addr *)ibgid)) { irdma_copy_ip_ntohl(ip_addr, sgid_addr.saddr_in6.sin6_addr.__u6_addr.__u6_addr32); - irdma_netdev_vlan_ipv6(ip_addr, &vlan_id, NULL); + irdma_netdev_vlan_ipv6(iwqp->cm_id, ip_addr, &vlan_id, NULL); ipv4 = false; irdma_debug(&iwdev->rf->sc_dev, IRDMA_DEBUG_VERBS, "qp_id=%d, IP6address=%x:%x:%x:%x\n", ibqp->qp_num, @@ -3345,7 +3345,7 @@ irdma_attach_mcast(struct ib_qp *ibqp, union ib_gid *ibgid, u16 lid) } else { ip_addr[0] = ntohl(sgid_addr.saddr_in.sin_addr.s_addr); ipv4 = true; - vlan_id = irdma_get_vlan_ipv4(ip_addr); + vlan_id = irdma_get_vlan_ipv4(iwqp->cm_id, ip_addr); irdma_mcast_mac_v4(ip_addr, dmac); irdma_debug(&iwdev->rf->sc_dev, IRDMA_DEBUG_VERBS, "qp_id=%d, IP4address=%x, MAC=%x:%x:%x:%x:%x:%x\n", From nobody Wed Sep 13 22:17:16 2023 X-Original-To: dev-commits-src-main@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 4RmFDr4vfKz4t1j1; Wed, 13 Sep 2023 22:17: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmFDr3shPz4JMD; Wed, 13 Sep 2023 22:17:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694643436; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gabicTM7rp29s1TfEvLep7ErbzTlkSW/afFKmbLomMw=; b=cHuBbQk648NeT2ZjWfGLmzinv6dfAbz1/ElvIAE1AH2iM64jnUJHFa8587FqGyq0egtNKy XmxOoSKJfpg8LiJj9iucp1yqYPE7sclfLtIYXZT8CxZ5rOABNdCmZQVBc/PwcB/c8suPbM 7mzZjsQ+bJd3fLNvNJb7EJTh8bJHU3oqbqoYFQETPOuaRq0oYoBnXLK6BFhs/dYUt3fNeU Y6I7Rx6ScJUHVO+PYysj5Bw1JvUmHyesmr9vtdHikSGsE6i7U2Baf7n+ROsGNadRjVrVwA brZ18SGRLgTX9jESqdsNYqDf/Ndwg15Es4rr3O2kZhwXclrgXGS7dsTLIn532Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694643436; a=rsa-sha256; cv=none; b=wLoUmYcZsac3J6ys9AhtPT4RsEYYK4Y29lqshbjpFUq/oThIsYBUAmcjrSs72TPwHBsYXq 7L7XTA95u3rhdd1AHLIIxBGS1tJRTCa9xpJQ6rZ6hYzay76LIJEysUYVCvE/4vERq1wtY6 L2IySxYglHVqx1AwUqztPB7NcwyrBMhADafkgY9IDnj2U24cVS1Zxr5koaHYf+FijRnulw hwgRzA6kKwTV7sJfniwt8iHlEXXvnXG5HAzK1ZuQ/SF/ID0KAoFzXTxqCZOQ3hzc0AXWex olEZZVUipGyotQlslmxK5R43PoIXcu48QaSobdE1KmUHUtsxWgYZFUM/WfNfPg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694643436; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gabicTM7rp29s1TfEvLep7ErbzTlkSW/afFKmbLomMw=; b=Oy/PbvSlwAG/p4UmHqViHwih6r8JgjsHEY6cFXu7AgoJAjqvoWsQgt7WU4cgo041H6H+me eb5GaY41aUttQwT/7yTojtaYXM+NdLnKoyvwXmX3/yOBpSNQBbcdhav5/0j875VaocCIWp x/XXEJ/gQbllodj/O7GCgole4OdpQSmE8qQBfKmLPShve291VIUPhjvnBQ5zCpxK+ChRPG aysxotd8j8GnAXOlYaLNelpW090S0iCAwcISt9/rU+JfOoym6LM3bccIPe+4KWYrLZDca2 8a0hr1vdWvA0AaHKvCfpX2icCdUBFbvtOuYOla60TjBeDRYSN2JO/KA6kqI3/Q== 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 4RmFDr2fzszWxw; Wed, 13 Sep 2023 22:17:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DMHGIu012496; Wed, 13 Sep 2023 22:17:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DMHG1I012493; Wed, 13 Sep 2023 22:17:16 GMT (envelope-from git) Date: Wed, 13 Sep 2023 22:17:16 GMT Message-Id: <202309132217.38DMHG1I012493@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Eric Joyner <erj@FreeBSD.org> Subject: git: ffafa6a4d157 - main - irdma(4): remove artificial completion generator List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: erj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ffafa6a4d157e49e6b12567958c4ab0c9151c080 Auto-Submitted: auto-generated The branch main has been updated by erj: URL: https://cgit.FreeBSD.org/src/commit/?id=ffafa6a4d157e49e6b12567958c4ab0c9151c080 commit ffafa6a4d157e49e6b12567958c4ab0c9151c080 Author: Bartosz Sobczak <bartosz.sobczak@intel.com> AuthorDate: 2023-09-12 21:35:06 +0000 Commit: Eric Joyner <erj@FreeBSD.org> CommitDate: 2023-09-13 22:16:21 +0000 irdma(4): remove artificial completion generator Removing artificial completion generator as there had been no indication of the code being required for E810 cards. Further more it was found that the code may have unpleasant side effects on user experience when using ucmatose tool. Signed-off-by: Bartosz Sobczak <bartosz.sobczak@intel.com> Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: erj@ MFC after: 1 day Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D41593 --- contrib/ofed/libirdma/irdma_umain.h | 8 -- contrib/ofed/libirdma/irdma_uverbs.c | 161 +---------------------------------- 2 files changed, 1 insertion(+), 168 deletions(-) diff --git a/contrib/ofed/libirdma/irdma_umain.h b/contrib/ofed/libirdma/irdma_umain.h index c67c5d7076f9..7ff850c46b72 100644 --- a/contrib/ofed/libirdma/irdma_umain.h +++ b/contrib/ofed/libirdma/irdma_umain.h @@ -109,11 +109,6 @@ struct verbs_cq { }; }; -struct irdma_cmpl_gen { - LIST_ENTRY(irdma_cmpl_gen) list; - struct irdma_cq_poll_info cpi; -}; - struct irdma_ucq { struct verbs_cq verbs_cq; struct verbs_mr vmr; @@ -130,7 +125,6 @@ struct irdma_ucq { struct list_head resize_list; /* for extended CQ completion fields */ struct irdma_cq_poll_info cur_cqe; - struct list_head_cmpl cmpl_generated; }; struct irdma_uqp { @@ -150,7 +144,6 @@ struct irdma_uqp { struct irdma_qp_uk qp; enum ibv_qp_type qp_type; struct irdma_sge *recv_sges; - pthread_t flush_thread; }; /* irdma_uverbs.c */ @@ -207,5 +200,4 @@ void irdma_async_event(struct ibv_context *context, void irdma_set_hw_attrs(struct irdma_hw_attrs *attrs); void *irdma_mmap(int fd, off_t offset); void irdma_munmap(void *map); -void *irdma_flush_thread(void *arg); #endif /* IRDMA_UMAIN_H */ diff --git a/contrib/ofed/libirdma/irdma_uverbs.c b/contrib/ofed/libirdma/irdma_uverbs.c index c59d409e72cd..bc6bec34e6cd 100644 --- a/contrib/ofed/libirdma/irdma_uverbs.c +++ b/contrib/ofed/libirdma/irdma_uverbs.c @@ -459,7 +459,6 @@ ucreate_cq(struct ibv_context *context, info.cq_size = get_cq_size(attr_ex->cqe, hw_rev, cqe_64byte_ena); iwucq->comp_vector = attr_ex->comp_vector; LIST_INIT(&iwucq->resize_list); - LIST_INIT(&iwucq->cmpl_generated); total_size = get_cq_total_bytes(info.cq_size, cqe_64byte_ena); cq_pages = total_size >> IRDMA_HW_PAGE_SHIFT; @@ -615,142 +614,6 @@ irdma_process_resize_list(struct irdma_ucq *iwucq, return cq_cnt; } -static void -irdma_remove_cmpls_list(struct irdma_ucq *iwucq) -{ - struct irdma_cmpl_gen *cmpl_node, *next; - - LIST_FOREACH_SAFE(cmpl_node, &iwucq->cmpl_generated, list, next) { - LIST_REMOVE(cmpl_node, list); - free(cmpl_node); - } -} - -static int -irdma_generated_cmpls(struct irdma_ucq *iwucq, struct irdma_cq_poll_info *cq_poll_info) -{ - struct irdma_cmpl_gen *cmpl; - - if (!iwucq || LIST_EMPTY(&iwucq->cmpl_generated)) - return ENOENT; - cmpl = LIST_FIRST(&iwucq->cmpl_generated); - LIST_REMOVE(cmpl, list); - memcpy(cq_poll_info, &cmpl->cpi, sizeof(*cq_poll_info)); - - free(cmpl); - - return 0; -} - -/** - * irdma_set_cpi_common_values - fill in values for polling info struct - * @cpi: resulting structure of cq_poll_info type - * @qp: QPair - * @qp_num: id of the QP - */ -static void -irdma_set_cpi_common_values(struct irdma_cq_poll_info *cpi, - struct irdma_qp_uk *qp, __u32 qp_num) -{ - cpi->comp_status = IRDMA_COMPL_STATUS_FLUSHED; - cpi->error = 1; - cpi->major_err = IRDMA_FLUSH_MAJOR_ERR; - cpi->minor_err = FLUSH_GENERAL_ERR; - cpi->qp_handle = (irdma_qp_handle) (uintptr_t)qp; - cpi->qp_id = qp_num; -} - -static bool -irdma_cq_empty(struct irdma_ucq *iwucq) -{ - struct irdma_cq_uk *ukcq; - __u64 qword3; - __le64 *cqe; - __u8 polarity; - - ukcq = &iwucq->cq; - cqe = IRDMA_GET_CURRENT_CQ_ELEM(ukcq); - get_64bit_val(cqe, 24, &qword3); - polarity = (__u8) FIELD_GET(IRDMA_CQ_VALID, qword3); - - return polarity != ukcq->polarity; -} - -/** - * irdma_generate_flush_completions - generate completion from WRs - * @iwuqp: pointer to QP - */ -static void -irdma_generate_flush_completions(struct irdma_uqp *iwuqp) -{ - struct irdma_qp_uk *qp = &iwuqp->qp; - struct irdma_ring *sq_ring = &qp->sq_ring; - struct irdma_ring *rq_ring = &qp->rq_ring; - struct irdma_cmpl_gen *cmpl; - __le64 *sw_wqe; - __u64 wqe_qword; - __u32 wqe_idx; - - if (pthread_spin_lock(&iwuqp->send_cq->lock)) - return; - if (irdma_cq_empty(iwuqp->send_cq)) { - while (IRDMA_RING_MORE_WORK(*sq_ring)) { - cmpl = malloc(sizeof(*cmpl)); - if (!cmpl) { - pthread_spin_unlock(&iwuqp->send_cq->lock); - return; - } - - wqe_idx = sq_ring->tail; - irdma_set_cpi_common_values(&cmpl->cpi, qp, qp->qp_id); - cmpl->cpi.wr_id = qp->sq_wrtrk_array[wqe_idx].wrid; - sw_wqe = qp->sq_base[wqe_idx].elem; - get_64bit_val(sw_wqe, 24, &wqe_qword); - cmpl->cpi.op_type = (__u8) FIELD_GET(IRDMAQPSQ_OPCODE, wqe_qword); - /* remove the SQ WR by moving SQ tail */ - IRDMA_RING_SET_TAIL(*sq_ring, sq_ring->tail + qp->sq_wrtrk_array[sq_ring->tail].quanta); - LIST_INSERT_HEAD(&iwuqp->send_cq->cmpl_generated, cmpl, list); - } - } - pthread_spin_unlock(&iwuqp->send_cq->lock); - if (pthread_spin_lock(&iwuqp->recv_cq->lock)) - return; - if (irdma_cq_empty(iwuqp->recv_cq)) { - while (IRDMA_RING_MORE_WORK(*rq_ring)) { - cmpl = malloc(sizeof(*cmpl)); - if (!cmpl) { - pthread_spin_unlock(&iwuqp->recv_cq->lock); - return; - } - - wqe_idx = rq_ring->tail; - irdma_set_cpi_common_values(&cmpl->cpi, qp, qp->qp_id); - cmpl->cpi.wr_id = qp->rq_wrid_array[wqe_idx]; - cmpl->cpi.op_type = IRDMA_OP_TYPE_REC; - /* remove the RQ WR by moving RQ tail */ - IRDMA_RING_SET_TAIL(*rq_ring, rq_ring->tail + 1); - LIST_INSERT_HEAD(&iwuqp->recv_cq->cmpl_generated, cmpl, list); - } - } - pthread_spin_unlock(&iwuqp->recv_cq->lock); -} - -void * -irdma_flush_thread(void *arg) -{ - __u8 i = 5; - struct irdma_uqp *iwuqp = arg; - - while (--i) { - if (pthread_spin_lock(&iwuqp->lock)) - break; - irdma_generate_flush_completions(arg); - pthread_spin_unlock(&iwuqp->lock); - sleep(1); - } - pthread_exit(NULL); -} - /** * irdma_udestroy_cq - destroys cq * @cq: ptr to cq to be destroyed @@ -771,8 +634,6 @@ irdma_udestroy_cq(struct ibv_cq *cq) if (ret) goto err; - if (!LIST_EMPTY(&iwucq->cmpl_generated)) - irdma_remove_cmpls_list(iwucq); irdma_process_resize_list(iwucq, NULL); ret = ibv_cmd_destroy_cq(cq); if (ret) @@ -1016,15 +877,6 @@ __irdma_upoll_cq(struct irdma_ucq *iwucq, int num_entries, while (npolled < num_entries) { ret = irdma_poll_one(&iwucq->cq, cur_cqe, entry ? entry + npolled : NULL); - if (ret == ENOENT) { - ret = irdma_generated_cmpls(iwucq, cur_cqe); - if (!ret) { - if (entry) - irdma_process_cqe(entry + npolled, cur_cqe); - else - irdma_process_cqe_ext(cur_cqe); - } - } if (!ret) { ++npolled; cq_new_cqe = true; @@ -1710,14 +1562,7 @@ irdma_umodify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, int attr_mask) return ret; } else { - int ret; - - ret = ibv_cmd_modify_qp(qp, attr, attr_mask, &cmd, sizeof(cmd)); - if (ret) - return ret; - if (attr_mask & IBV_QP_STATE && attr->qp_state == IBV_QPS_ERR) - pthread_create(&iwuqp->flush_thread, NULL, irdma_flush_thread, iwuqp); - return 0; + return ibv_cmd_modify_qp(qp, attr, attr_mask, &cmd, sizeof(cmd)); } } @@ -1770,10 +1615,6 @@ irdma_udestroy_qp(struct ibv_qp *qp) int ret; iwuqp = container_of(qp, struct irdma_uqp, ibv_qp); - if (iwuqp->flush_thread) { - pthread_cancel(iwuqp->flush_thread); - pthread_join(iwuqp->flush_thread, NULL); - } ret = pthread_spin_destroy(&iwuqp->lock); if (ret) goto err; From nobody Wed Sep 13 22:27:17 2023 X-Original-To: dev-commits-src-main@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 4RmFSP34hzz4t42s; Wed, 13 Sep 2023 22:27: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmFSP2nnpz4L7f; Wed, 13 Sep 2023 22:27:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694644037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y4xR/8vq4uEzlTELkj9JacZ4uneUqiJhXH8uBRXdGSU=; b=Gavt3U+97DiuQ6eRJR9WWJfSCQGJISB7Pept/MTR5V2w8EZp7Td1lH4EMhmK3/kCg2WaXn ug1MSOM7WZFrljnX/YhgejVsMY7AY/5tP4ZLjTqzR4qijfw5IdafSfhn+5IwBUFRh9gJ1t QIRHoT8575wVFWRrIIhheJgTsawTyyL7lmBRxygdN/WWHVqJk3LUtsmixwv1A9HO4Prz8p aK5XPIQXP/2H+llEw/+mJPQ2+nxqH1RFogTseDYm/MAEysUCvOAv31hXdvBxv4Ttu9QmyP qbxMPBK5A/Z+D7jXZe7BYWhuKZsTqUVZx2AwV1szZud2TO4yuentSQhqcahyPg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694644037; a=rsa-sha256; cv=none; b=CdHufpzkHjdxp2MNf6xoh3zPQZpDRUfcMwu4iNTdq9iMd7EskqETQugmmZZQgqXH6Vb1eh PgOCxC93OtBGlqaoVXVJJAlV6LXn9eMaXW1c6YO/uM8fyT+M+ZYVyM5JnIftyukj5UJ7Zt UxHwbOocae/+B2o9ITV60sUlbm3VPatbBSVXEjh4j9zJZHjzNipBVFc6bMbwifGoK8iUnA rSleHhrATgo/p1iFQi/nqjA3f1Eqzv3y5xhe+X79O5aN4OjbywoY0gttwOEAKmS3gFW++3 1oVhrB+8npwRkFQRzxDGOBMS15kRQAQIcF2cPTUgkQIds5mKYKompSEvDDX0gA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694644037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y4xR/8vq4uEzlTELkj9JacZ4uneUqiJhXH8uBRXdGSU=; b=Gi4bBlfCg4RfMwNGsFeRM5xBoxUWNbe3v1Z7gG+Hf/NxOw4skEtQhxOjI1oBR7FTHusUXM 2q3qHGKUy66cSAlybOC8ImIYRQAoJclq8H7A2A9wrC3fHfQZiNiqMOFxP/CpmTtBouMuzc fsEnkFZsd1yl1F6Lyk+8sTonbo+LTkhq37Yy1eFTGVBLkWW7tcTsPs24eN1apzbpZyn0N9 tCy0UDhfZXyuMWXtihcoRImwH7YHqqjMisWmx8akS6ssqEIKcgbogEjY9DLPHDyjEYP7pL nQM2GabroHgqnhMXBqumfEEUXYMXzPEnluWF0GWFHjOhXHh5iIL9YyDK7iHXqw== 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 4RmFSP1sX5zXZZ; Wed, 13 Sep 2023 22:27:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38DMRHXU029251; Wed, 13 Sep 2023 22:27:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DMRHOi029248; Wed, 13 Sep 2023 22:27:17 GMT (envelope-from git) Date: Wed, 13 Sep 2023 22:27:17 GMT Message-Id: <202309132227.38DMRHOi029248@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Eric Joyner <erj@FreeBSD.org> Subject: git: 9c30461dd25b - main - ice(4): Update to 1.38.16-k List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: erj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9c30461dd25bac49045acbeac10e00b6cc13d2bc Auto-Submitted: auto-generated The branch main has been updated by erj: URL: https://cgit.FreeBSD.org/src/commit/?id=9c30461dd25bac49045acbeac10e00b6cc13d2bc commit 9c30461dd25bac49045acbeac10e00b6cc13d2bc Author: Eric Joyner <erj@FreeBSD.org> AuthorDate: 2023-08-24 23:26:13 +0000 Commit: Eric Joyner <erj@FreeBSD.org> CommitDate: 2023-09-13 22:26:54 +0000 ice(4): Update to 1.38.16-k New features - Add sysctl "link_active_on_if_down" (defaults to 1 to match previous behavior): set this to 0 to have the driver bring the physical link down when the interface is brought administratively down - Add sysctl "temp" to read chip temperature on E810 devices; this requires a 4.30 or newer NVM (see package sysutils/intel-nvmupdate-100g) Bug fixes and general changes - (linked to irdma) properly propagate PF reset request from irdma driver - (linked to irdma) properly notify irdma of an impending PF reset - (linked to irdma) move Protocol Engine error handling to irdma - Print log message when using a DDP that doesn't support the "TX balancing" mode - Block LLDP agent configuration when DSCP QoS mode is enabled - Fix kernel panic when updating NVM when adapter is in the "TX balancing" mode - Remove ice_sbq_cmd.h since it's unused - Fix LLDP RX filter to still allow LLDP frames to be received by SW after a PF reset in SW LLDP mode - Add ice_if_needs_restart handler in order to fix a bad VLAN and link down interaction - Issue PF reset during unload - nvmupdate process fixes - Use pci_msix_table_bar() to get MSI-X bar index at runtime instead of hardcoding it Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: anzhu@netapp.com MFC after: 3 days Sponsored by: Intel Corporation, NetApp Differential Revision: https://reviews.freebsd.org/D41655 --- sys/dev/ice/ice_adminq_cmd.h | 123 ++++++---- sys/dev/ice/ice_common.c | 490 +++++++++++++++++++++------------------- sys/dev/ice/ice_common.h | 6 +- sys/dev/ice/ice_controlq.c | 110 ++++----- sys/dev/ice/ice_controlq.h | 3 - sys/dev/ice/ice_dcb.c | 2 +- sys/dev/ice/ice_ddp_common.c | 4 + sys/dev/ice/ice_ddp_common.h | 1 + sys/dev/ice/ice_defs.h | 4 +- sys/dev/ice/ice_features.h | 2 + sys/dev/ice/ice_flow.c | 41 +++- sys/dev/ice/ice_flow.h | 6 +- sys/dev/ice/ice_fw_logging.c | 4 +- sys/dev/ice/ice_fwlog.c | 1 + sys/dev/ice/ice_lan_tx_rx.h | 1 - sys/dev/ice/ice_lib.c | 239 ++++++++++++++++++-- sys/dev/ice/ice_lib.h | 16 +- sys/dev/ice/ice_rdma.c | 16 ++ sys/dev/ice/ice_rdma.h | 80 ++++++- sys/dev/ice/ice_rdma_internal.h | 17 ++ sys/dev/ice/ice_sbq_cmd.h | 120 ---------- sys/dev/ice/ice_sched.c | 104 +++++++-- sys/dev/ice/ice_sched.h | 42 +++- sys/dev/ice/ice_strings.c | 4 + sys/dev/ice/ice_switch.c | 334 +++++++++++++++------------ sys/dev/ice/ice_switch.h | 86 ++++--- sys/dev/ice/ice_type.h | 112 ++++++++- sys/dev/ice/if_ice_iflib.c | 130 +++++++++-- sys/dev/ice/irdma_di_if.m | 5 + sys/dev/ice/irdma_if.m | 4 + sys/dev/ice/virtchnl.h | 2 +- 31 files changed, 1360 insertions(+), 749 deletions(-) diff --git a/sys/dev/ice/ice_adminq_cmd.h b/sys/dev/ice/ice_adminq_cmd.h index 710830e95a16..e4dc14b0162c 100644 --- a/sys/dev/ice/ice_adminq_cmd.h +++ b/sys/dev/ice/ice_adminq_cmd.h @@ -168,6 +168,7 @@ struct ice_aqc_list_caps_elem { #define ICE_AQC_CAPS_LED 0x0061 #define ICE_AQC_CAPS_SDP 0x0062 #define ICE_AQC_CAPS_WR_CSR_PROT 0x0064 +#define ICE_AQC_CAPS_SENSOR_READING 0x0067 #define ICE_AQC_CAPS_LOGI_TO_PHYSI_PORT_MAP 0x0073 #define ICE_AQC_CAPS_SKU 0x0074 #define ICE_AQC_CAPS_PORT_MAP 0x0075 @@ -180,7 +181,8 @@ struct ice_aqc_list_caps_elem { #define ICE_AQC_CAPS_EXT_TOPO_DEV_IMG3 0x0084 #define ICE_AQC_CAPS_TX_SCHED_TOPO_COMP_MODE 0x0085 #define ICE_AQC_CAPS_NAC_TOPOLOGY 0x0087 -#define ICE_AQC_CAPS_DYN_FLATTENING 0x0090 +#define ICE_AQC_CAPS_DYN_FLATTENING 0x008A +#define ICE_AQC_CAPS_OROM_RECOVERY_UPDATE 0x0090 #define ICE_AQC_CAPS_ROCEV2_LAG 0x0092 u8 major_ver; @@ -793,12 +795,30 @@ struct ice_aqc_sw_rules { __le32 addr_low; }; +/* Add switch rule response: + * Content of return buffer is same as the input buffer. The status field and + * LUT index are updated as part of the response + */ +struct ice_aqc_sw_rules_elem_hdr { + __le16 type; /* Switch rule type, one of T_... */ +#define ICE_AQC_SW_RULES_T_LKUP_RX 0x0 +#define ICE_AQC_SW_RULES_T_LKUP_TX 0x1 +#define ICE_AQC_SW_RULES_T_LG_ACT 0x2 +#define ICE_AQC_SW_RULES_T_VSI_LIST_SET 0x3 +#define ICE_AQC_SW_RULES_T_VSI_LIST_CLEAR 0x4 +#define ICE_AQC_SW_RULES_T_PRUNE_LIST_SET 0x5 +#define ICE_AQC_SW_RULES_T_PRUNE_LIST_CLEAR 0x6 + __le16 status; +}; + /* Add/Update/Get/Remove lookup Rx/Tx command/response entry * This structures describes the lookup rules and associated actions. "index" * is returned as part of a response to a successful Add command, and can be * used to identify the rule for Update/Get/Remove commands. */ struct ice_sw_rule_lkup_rx_tx { + struct ice_aqc_sw_rules_elem_hdr hdr; + __le16 recipe_id; #define ICE_SW_RECIPE_LOGICAL_PORT_FWD 10 /* Source port for LOOKUP_RX and source VSI in case of LOOKUP_TX */ @@ -877,14 +897,17 @@ struct ice_sw_rule_lkup_rx_tx { * lookup-type */ __le16 hdr_len; - u8 hdr[STRUCT_HACK_VAR_LEN]; + u8 hdr_data[STRUCT_HACK_VAR_LEN]; }; +#pragma pack(1) /* Add/Update/Remove large action command/response entry * "index" is returned as part of a response to a successful Add command, and * can be used to identify the action for Update/Get/Remove commands. */ struct ice_sw_rule_lg_act { + struct ice_aqc_sw_rules_elem_hdr hdr; + __le16 index; /* Index in large action table */ __le16 size; /* Max number of large actions */ @@ -939,50 +962,30 @@ struct ice_sw_rule_lg_act { #define ICE_LG_ACT_STAT_COUNT_M (0x7F << ICE_LG_ACT_STAT_COUNT_S) __le32 act[STRUCT_HACK_VAR_LEN]; /* array of size for actions */ }; +#pragma pack() +#pragma pack(1) /* Add/Update/Remove VSI list command/response entry * "index" is returned as part of a response to a successful Add command, and * can be used to identify the VSI list for Update/Get/Remove commands. */ struct ice_sw_rule_vsi_list { + struct ice_aqc_sw_rules_elem_hdr hdr; + __le16 index; /* Index of VSI/Prune list */ __le16 number_vsi; __le16 vsi[STRUCT_HACK_VAR_LEN]; /* Array of number_vsi VSI numbers */ }; +#pragma pack() #pragma pack(1) /* Query VSI list command/response entry */ struct ice_sw_rule_vsi_list_query { __le16 index; - ice_declare_bitmap(vsi_list, ICE_MAX_VSI); + u8 vsi_list[DIVIDE_AND_ROUND_UP(ICE_MAX_VSI, BITS_PER_BYTE)]; }; #pragma pack() -#pragma pack(1) -/* Add switch rule response: - * Content of return buffer is same as the input buffer. The status field and - * LUT index are updated as part of the response - */ -struct ice_aqc_sw_rules_elem { - __le16 type; /* Switch rule type, one of T_... */ -#define ICE_AQC_SW_RULES_T_LKUP_RX 0x0 -#define ICE_AQC_SW_RULES_T_LKUP_TX 0x1 -#define ICE_AQC_SW_RULES_T_LG_ACT 0x2 -#define ICE_AQC_SW_RULES_T_VSI_LIST_SET 0x3 -#define ICE_AQC_SW_RULES_T_VSI_LIST_CLEAR 0x4 -#define ICE_AQC_SW_RULES_T_PRUNE_LIST_SET 0x5 -#define ICE_AQC_SW_RULES_T_PRUNE_LIST_CLEAR 0x6 - __le16 status; - union { - struct ice_sw_rule_lkup_rx_tx lkup_tx_rx; - struct ice_sw_rule_lg_act lg_act; - struct ice_sw_rule_vsi_list vsi_list; - struct ice_sw_rule_vsi_list_query vsi_list_query; - } pdata; -}; - -#pragma pack() - /* PFC Ignore (direct 0x0301) * The command and response use the same descriptor structure */ @@ -994,8 +997,8 @@ struct ice_aqc_pfc_ignore { u8 reserved[14]; }; -/* Set PFC Mode (direct 0x0303) - * Query PFC Mode (direct 0x0302) +/* Query PFC Mode (direct 0x0302) + * Set PFC Mode (direct 0x0303) */ struct ice_aqc_set_query_pfc_mode { u8 pfc_mode; @@ -1098,9 +1101,9 @@ struct ice_aqc_txsched_elem { u8 generic; #define ICE_AQC_ELEM_GENERIC_MODE_M 0x1 #define ICE_AQC_ELEM_GENERIC_PRIO_S 0x1 -#define ICE_AQC_ELEM_GENERIC_PRIO_M (0x7 << ICE_AQC_ELEM_GENERIC_PRIO_S) +#define ICE_AQC_ELEM_GENERIC_PRIO_M (0x7 << ICE_AQC_ELEM_GENERIC_PRIO_S) #define ICE_AQC_ELEM_GENERIC_SP_S 0x4 -#define ICE_AQC_ELEM_GENERIC_SP_M (0x1 << ICE_AQC_ELEM_GENERIC_SP_S) +#define ICE_AQC_ELEM_GENERIC_SP_M (0x1 << ICE_AQC_ELEM_GENERIC_SP_S) #define ICE_AQC_ELEM_GENERIC_ADJUST_VAL_S 0x5 #define ICE_AQC_ELEM_GENERIC_ADJUST_VAL_M \ (0x3 << ICE_AQC_ELEM_GENERIC_ADJUST_VAL_S) @@ -1673,6 +1676,32 @@ struct ice_aqc_set_mac_lb { u8 reserved[15]; }; +/* Get sensor reading (direct 0x0632) */ +struct ice_aqc_get_sensor_reading { + u8 sensor; +#define ICE_AQC_INT_TEMP_SENSOR 0x0 + u8 format; +#define ICE_AQC_INT_TEMP_FORMAT 0x0 + u8 reserved[6]; + __le32 addr_high; + __le32 addr_low; +}; + +/* Get sensor reading response (direct 0x0632) */ +struct ice_aqc_get_sensor_reading_resp { + union { + u8 raw[8]; + /* Output data for sensor 0x00, format 0x00 */ + struct { + s8 temp; + u8 temp_warning_threshold; + u8 temp_critical_threshold; + u8 temp_fatal_threshold; + u8 reserved[4]; + } s0f0; + } data; +}; + /* DNL Get Status command (indirect 0x0680) * Structure used for the response, the command uses the generic * ice_aqc_generic struct to pass a buffer address to the FW. @@ -2476,6 +2505,19 @@ struct ice_aqc_get_set_rss_keys { u8 extended_hash_key[ICE_AQC_GET_SET_RSS_KEY_DATA_HASH_KEY_SIZE]; }; +enum ice_lut_type { + ICE_LUT_VSI = 0, + ICE_LUT_PF = 1, + ICE_LUT_GLOBAL = 2, + ICE_LUT_TYPE_MASK = 3 +}; + +enum ice_lut_size { + ICE_LUT_VSI_SIZE = 64, + ICE_LUT_GLOBAL_SIZE = 512, + ICE_LUT_PF_SIZE = 2048, +}; + /* Get/Set RSS LUT (indirect 0x0B05/0x0B03) */ struct ice_aqc_get_set_rss_lut { #define ICE_AQC_GSET_RSS_LUT_VSI_VALID BIT(15) @@ -2484,21 +2526,13 @@ struct ice_aqc_get_set_rss_lut { __le16 vsi_id; #define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S 0 #define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_M \ - (0x3 << ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S) - -#define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_VSI 0 -#define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_PF 1 -#define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_GLOBAL 2 + (ICE_LUT_TYPE_MASK << ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S) #define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S 2 #define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_M \ - (0x3 << ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S) + (ICE_LUT_TYPE_MASK << ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S) -#define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_128 128 -#define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_128_FLAG 0 -#define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512 512 #define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512_FLAG 1 -#define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K 2048 #define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K_FLAG 2 #define ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_S 4 @@ -2686,7 +2720,7 @@ struct ice_aqc_move_rdma_qset_buffer { }; /* Download Package (indirect 0x0C40) */ -/* Also used for Update Package (indirect 0x0C42 and 0x0C41) */ +/* Also used for Update Package (indirect 0x0C41 and 0x0C42) */ struct ice_aqc_download_pkg { u8 flags; #define ICE_AQC_DOWNLOAD_PKG_LAST_BUF 0x01 @@ -2989,6 +3023,8 @@ struct ice_aq_desc { struct ice_aqc_get_phy_caps get_phy; struct ice_aqc_set_phy_cfg set_phy; struct ice_aqc_restart_an restart_an; + struct ice_aqc_get_sensor_reading get_sensor_reading; + struct ice_aqc_get_sensor_reading_resp get_sensor_reading_resp; struct ice_aqc_dnl_get_status get_status; struct ice_aqc_dnl_run_command dnl_run; struct ice_aqc_dnl_call_command dnl_call; @@ -3239,6 +3275,7 @@ enum ice_adminq_opc { ice_aqc_opc_get_link_status = 0x0607, ice_aqc_opc_set_event_mask = 0x0613, ice_aqc_opc_set_mac_lb = 0x0620, + ice_aqc_opc_get_sensor_reading = 0x0632, ice_aqc_opc_dnl_get_status = 0x0680, ice_aqc_opc_dnl_run = 0x0681, ice_aqc_opc_dnl_call = 0x0682, diff --git a/sys/dev/ice/ice_common.c b/sys/dev/ice/ice_common.c index a3f50f251533..0df73583e137 100644 --- a/sys/dev/ice/ice_common.c +++ b/sys/dev/ice/ice_common.c @@ -343,6 +343,88 @@ ice_aq_manage_mac_read(struct ice_hw *hw, void *buf, u16 buf_size, return ICE_SUCCESS; } +/** + * ice_phy_maps_to_media + * @phy_type_low: PHY type low bits + * @phy_type_high: PHY type high bits + * @media_mask_low: media type PHY type low bitmask + * @media_mask_high: media type PHY type high bitmask + * + * Return true if PHY type [low|high] bits are only of media type PHY types + * [low|high] bitmask. + */ +static bool +ice_phy_maps_to_media(u64 phy_type_low, u64 phy_type_high, + u64 media_mask_low, u64 media_mask_high) +{ + /* check if a PHY type exist for media type */ + if (!(phy_type_low & media_mask_low || + phy_type_high & media_mask_high)) + return false; + + /* check that PHY types are only of media type */ + if (!(phy_type_low & ~media_mask_low) && + !(phy_type_high & ~media_mask_high)) + return true; + + return false; +} + +/** + * ice_set_media_type - Sets media type + * @pi: port information structure + * + * Set ice_port_info PHY media type based on PHY type. This should be called + * from Get PHY caps with media. + */ +static void ice_set_media_type(struct ice_port_info *pi) +{ + enum ice_media_type *media_type; + u64 phy_type_high, phy_type_low; + + phy_type_high = pi->phy.phy_type_high; + phy_type_low = pi->phy.phy_type_low; + media_type = &pi->phy.media_type; + + /* if no media, then media type is NONE */ + if (!(pi->phy.link_info.link_info & ICE_AQ_MEDIA_AVAILABLE)) + *media_type = ICE_MEDIA_NONE; + /* else if PHY types are only BASE-T, then media type is BASET */ + else if (ice_phy_maps_to_media(phy_type_low, phy_type_high, + ICE_MEDIA_BASET_PHY_TYPE_LOW_M, 0)) + *media_type = ICE_MEDIA_BASET; + /* else if any PHY type is BACKPLANE, then media type is BACKPLANE */ + else if (phy_type_low & ICE_MEDIA_BP_PHY_TYPE_LOW_M || + phy_type_high & ICE_MEDIA_BP_PHY_TYPE_HIGH_M) + *media_type = ICE_MEDIA_BACKPLANE; + /* else if PHY types are only optical, or optical and C2M, then media + * type is FIBER + */ + else if (ice_phy_maps_to_media(phy_type_low, phy_type_high, + ICE_MEDIA_OPT_PHY_TYPE_LOW_M, 0) || + (phy_type_low & ICE_MEDIA_OPT_PHY_TYPE_LOW_M && + phy_type_low & ICE_MEDIA_C2M_PHY_TYPE_LOW_M)) + *media_type = ICE_MEDIA_FIBER; + /* else if PHY types are only DA, or DA and C2C, then media type DA */ + else if (ice_phy_maps_to_media(phy_type_low, phy_type_high, + ICE_MEDIA_DAC_PHY_TYPE_LOW_M, 0) || + (phy_type_low & ICE_MEDIA_DAC_PHY_TYPE_LOW_M && + (phy_type_low & ICE_MEDIA_C2C_PHY_TYPE_LOW_M || + phy_type_high & ICE_MEDIA_C2C_PHY_TYPE_HIGH_M))) + *media_type = ICE_MEDIA_DA; + /* else if PHY types are only C2M or only C2C, then media is AUI */ + else if (ice_phy_maps_to_media(phy_type_low, phy_type_high, + ICE_MEDIA_C2M_PHY_TYPE_LOW_M, + ICE_MEDIA_C2M_PHY_TYPE_HIGH_M) || + ice_phy_maps_to_media(phy_type_low, phy_type_high, + ICE_MEDIA_C2C_PHY_TYPE_LOW_M, + ICE_MEDIA_C2C_PHY_TYPE_HIGH_M)) + *media_type = ICE_MEDIA_AUI; + + else + *media_type = ICE_MEDIA_UNKNOWN; +} + /** * ice_aq_get_phy_caps - returns PHY capabilities * @pi: port information structure @@ -434,6 +516,9 @@ ice_aq_get_phy_caps(struct ice_port_info *pi, bool qual_mods, u8 report_mode, ice_memcpy(pi->phy.link_info.module_type, &pcaps->module_type, sizeof(pi->phy.link_info.module_type), ICE_NONDMA_TO_NONDMA); + ice_set_media_type(pi); + ice_debug(hw, ICE_DBG_LINK, "%s: media_type = 0x%x\n", prefix, + pi->phy.media_type); } return status; @@ -513,156 +598,6 @@ ice_find_netlist_node(struct ice_hw *hw, u8 node_type_ctx, u8 node_part_number, return ICE_ERR_DOES_NOT_EXIST; } -/** - * ice_is_media_cage_present - * @pi: port information structure - * - * Returns true if media cage is present, else false. If no cage, then - * media type is backplane or BASE-T. - */ -static bool ice_is_media_cage_present(struct ice_port_info *pi) -{ - struct ice_aqc_get_link_topo *cmd; - struct ice_aq_desc desc; - - cmd = &desc.params.get_link_topo; - - ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_get_link_topo); - - cmd->addr.topo_params.node_type_ctx = - (ICE_AQC_LINK_TOPO_NODE_CTX_PORT << - ICE_AQC_LINK_TOPO_NODE_CTX_S); - - /* set node type */ - cmd->addr.topo_params.node_type_ctx |= - (ICE_AQC_LINK_TOPO_NODE_TYPE_M & - ICE_AQC_LINK_TOPO_NODE_TYPE_CAGE); - - /* Node type cage can be used to determine if cage is present. If AQC - * returns error (ENOENT), then no cage present. If no cage present then - * connection type is backplane or BASE-T. - */ - return ice_aq_get_netlist_node(pi->hw, cmd, NULL, NULL); -} - -/** - * ice_get_media_type - Gets media type - * @pi: port information structure - */ -static enum ice_media_type ice_get_media_type(struct ice_port_info *pi) -{ - struct ice_link_status *hw_link_info; - - if (!pi) - return ICE_MEDIA_UNKNOWN; - - hw_link_info = &pi->phy.link_info; - if (hw_link_info->phy_type_low && hw_link_info->phy_type_high) - /* If more than one media type is selected, report unknown */ - return ICE_MEDIA_UNKNOWN; - - if (hw_link_info->phy_type_low) { - /* 1G SGMII is a special case where some DA cable PHYs - * may show this as an option when it really shouldn't - * be since SGMII is meant to be between a MAC and a PHY - * in a backplane. Try to detect this case and handle it - */ - if (hw_link_info->phy_type_low == ICE_PHY_TYPE_LOW_1G_SGMII && - (hw_link_info->module_type[ICE_AQC_MOD_TYPE_IDENT] == - ICE_AQC_MOD_TYPE_BYTE1_SFP_PLUS_CU_ACTIVE || - hw_link_info->module_type[ICE_AQC_MOD_TYPE_IDENT] == - ICE_AQC_MOD_TYPE_BYTE1_SFP_PLUS_CU_PASSIVE)) - return ICE_MEDIA_DA; - - switch (hw_link_info->phy_type_low) { - case ICE_PHY_TYPE_LOW_1000BASE_SX: - case ICE_PHY_TYPE_LOW_1000BASE_LX: - case ICE_PHY_TYPE_LOW_10GBASE_SR: - case ICE_PHY_TYPE_LOW_10GBASE_LR: - case ICE_PHY_TYPE_LOW_25GBASE_SR: - case ICE_PHY_TYPE_LOW_25GBASE_LR: - case ICE_PHY_TYPE_LOW_40GBASE_SR4: - case ICE_PHY_TYPE_LOW_40GBASE_LR4: - case ICE_PHY_TYPE_LOW_50GBASE_SR2: - case ICE_PHY_TYPE_LOW_50GBASE_LR2: - case ICE_PHY_TYPE_LOW_50GBASE_SR: - case ICE_PHY_TYPE_LOW_50GBASE_FR: - case ICE_PHY_TYPE_LOW_50GBASE_LR: - case ICE_PHY_TYPE_LOW_100GBASE_SR4: - case ICE_PHY_TYPE_LOW_100GBASE_LR4: - case ICE_PHY_TYPE_LOW_100GBASE_SR2: - case ICE_PHY_TYPE_LOW_100GBASE_DR: - return ICE_MEDIA_FIBER; - case ICE_PHY_TYPE_LOW_10G_SFI_AOC_ACC: - case ICE_PHY_TYPE_LOW_25G_AUI_AOC_ACC: - case ICE_PHY_TYPE_LOW_40G_XLAUI_AOC_ACC: - case ICE_PHY_TYPE_LOW_50G_LAUI2_AOC_ACC: - case ICE_PHY_TYPE_LOW_50G_AUI2_AOC_ACC: - case ICE_PHY_TYPE_LOW_50G_AUI1_AOC_ACC: - case ICE_PHY_TYPE_LOW_100G_CAUI4_AOC_ACC: - case ICE_PHY_TYPE_LOW_100G_AUI4_AOC_ACC: - return ICE_MEDIA_FIBER; - case ICE_PHY_TYPE_LOW_100BASE_TX: - case ICE_PHY_TYPE_LOW_1000BASE_T: - case ICE_PHY_TYPE_LOW_2500BASE_T: - case ICE_PHY_TYPE_LOW_5GBASE_T: - case ICE_PHY_TYPE_LOW_10GBASE_T: - case ICE_PHY_TYPE_LOW_25GBASE_T: - return ICE_MEDIA_BASET; - case ICE_PHY_TYPE_LOW_10G_SFI_DA: - case ICE_PHY_TYPE_LOW_25GBASE_CR: - case ICE_PHY_TYPE_LOW_25GBASE_CR_S: - case ICE_PHY_TYPE_LOW_25GBASE_CR1: - case ICE_PHY_TYPE_LOW_40GBASE_CR4: - case ICE_PHY_TYPE_LOW_50GBASE_CR2: - case ICE_PHY_TYPE_LOW_50GBASE_CP: - case ICE_PHY_TYPE_LOW_100GBASE_CR4: - case ICE_PHY_TYPE_LOW_100GBASE_CR_PAM4: - case ICE_PHY_TYPE_LOW_100GBASE_CP2: - return ICE_MEDIA_DA; - case ICE_PHY_TYPE_LOW_25G_AUI_C2C: - case ICE_PHY_TYPE_LOW_40G_XLAUI: - case ICE_PHY_TYPE_LOW_50G_LAUI2: - case ICE_PHY_TYPE_LOW_50G_AUI2: - case ICE_PHY_TYPE_LOW_50G_AUI1: - case ICE_PHY_TYPE_LOW_100G_AUI4: - case ICE_PHY_TYPE_LOW_100G_CAUI4: - if (ice_is_media_cage_present(pi)) - return ICE_MEDIA_AUI; - /* fall-through */ - case ICE_PHY_TYPE_LOW_1000BASE_KX: - case ICE_PHY_TYPE_LOW_2500BASE_KX: - case ICE_PHY_TYPE_LOW_2500BASE_X: - case ICE_PHY_TYPE_LOW_5GBASE_KR: - case ICE_PHY_TYPE_LOW_10GBASE_KR_CR1: - case ICE_PHY_TYPE_LOW_10G_SFI_C2C: - case ICE_PHY_TYPE_LOW_25GBASE_KR: - case ICE_PHY_TYPE_LOW_25GBASE_KR1: - case ICE_PHY_TYPE_LOW_25GBASE_KR_S: - case ICE_PHY_TYPE_LOW_40GBASE_KR4: - case ICE_PHY_TYPE_LOW_50GBASE_KR_PAM4: - case ICE_PHY_TYPE_LOW_50GBASE_KR2: - case ICE_PHY_TYPE_LOW_100GBASE_KR4: - case ICE_PHY_TYPE_LOW_100GBASE_KR_PAM4: - return ICE_MEDIA_BACKPLANE; - } - } else { - switch (hw_link_info->phy_type_high) { - case ICE_PHY_TYPE_HIGH_100G_AUI2: - case ICE_PHY_TYPE_HIGH_100G_CAUI2: - if (ice_is_media_cage_present(pi)) - return ICE_MEDIA_AUI; - /* fall-through */ - case ICE_PHY_TYPE_HIGH_100GBASE_KR2_PAM4: - return ICE_MEDIA_BACKPLANE; - case ICE_PHY_TYPE_HIGH_100G_CAUI2_AOC_ACC: - case ICE_PHY_TYPE_HIGH_100G_AUI2_AOC_ACC: - return ICE_MEDIA_FIBER; - } - } - return ICE_MEDIA_UNKNOWN; -} - #define ice_get_link_status_datalen(hw) ICE_GET_LINK_STATUS_DATALEN_V1 /** @@ -681,7 +616,6 @@ ice_aq_get_link_info(struct ice_port_info *pi, bool ena_lse, struct ice_aqc_get_link_status_data link_data = { 0 }; struct ice_aqc_get_link_status *resp; struct ice_link_status *li_old, *li; - enum ice_media_type *hw_media_type; struct ice_fc_info *hw_fc_info; bool tx_pause, rx_pause; struct ice_aq_desc desc; @@ -694,7 +628,6 @@ ice_aq_get_link_info(struct ice_port_info *pi, bool ena_lse, hw = pi->hw; li_old = &pi->phy.link_info_old; - hw_media_type = &pi->phy.media_type; li = &pi->phy.link_info; hw_fc_info = &pi->fc; @@ -716,7 +649,6 @@ ice_aq_get_link_info(struct ice_port_info *pi, bool ena_lse, li->link_speed = LE16_TO_CPU(link_data.link_speed); li->phy_type_low = LE64_TO_CPU(link_data.phy_type_low); li->phy_type_high = LE64_TO_CPU(link_data.phy_type_high); - *hw_media_type = ice_get_media_type(pi); li->link_info = link_data.link_info; li->link_cfg_err = link_data.link_cfg_err; li->an_info = link_data.an_info; @@ -747,7 +679,6 @@ ice_aq_get_link_info(struct ice_port_info *pi, bool ena_lse, (unsigned long long)li->phy_type_low); ice_debug(hw, ICE_DBG_LINK, " phy_type_high = 0x%llx\n", (unsigned long long)li->phy_type_high); - ice_debug(hw, ICE_DBG_LINK, " media_type = 0x%x\n", *hw_media_type); ice_debug(hw, ICE_DBG_LINK, " link_info = 0x%x\n", li->link_info); ice_debug(hw, ICE_DBG_LINK, " link_cfg_err = 0x%x\n", li->link_cfg_err); ice_debug(hw, ICE_DBG_LINK, " an_info = 0x%x\n", li->an_info); @@ -1066,7 +997,8 @@ enum ice_status ice_init_hw(struct ice_hw *hw) if (status) goto err_unroll_cqinit; - hw->port_info = (struct ice_port_info *) + if (!hw->port_info) + hw->port_info = (struct ice_port_info *) ice_malloc(hw, sizeof(*hw->port_info)); if (!hw->port_info) { status = ICE_ERR_NO_MEMORY; @@ -1205,7 +1137,7 @@ void ice_deinit_hw(struct ice_hw *hw) */ enum ice_status ice_check_reset(struct ice_hw *hw) { - u32 cnt, reg = 0, grst_timeout, uld_mask; + u32 cnt, reg = 0, grst_timeout, uld_mask, reset_wait_cnt; /* Poll for Device Active state in case a recent CORER, GLOBR, * or EMPR has occurred. The grst delay value is in 100ms units. @@ -1237,8 +1169,10 @@ enum ice_status ice_check_reset(struct ice_hw *hw) uld_mask = ICE_RESET_DONE_MASK | (hw->func_caps.common_cap.iwarp ? GLNVM_ULD_PE_DONE_M : 0); + reset_wait_cnt = ICE_PF_RESET_WAIT_COUNT; + /* Device is Active; check Global Reset processes are done */ - for (cnt = 0; cnt < ICE_PF_RESET_WAIT_COUNT; cnt++) { + for (cnt = 0; cnt < reset_wait_cnt; cnt++) { reg = rd32(hw, GLNVM_ULD) & uld_mask; if (reg == uld_mask) { ice_debug(hw, ICE_DBG_INIT, "Global reset processes done. %d\n", cnt); @@ -1247,7 +1181,7 @@ enum ice_status ice_check_reset(struct ice_hw *hw) ice_msec_delay(10, true); } - if (cnt == ICE_PF_RESET_WAIT_COUNT) { + if (cnt == reset_wait_cnt) { ice_debug(hw, ICE_DBG_INIT, "Wait for Reset Done timed out. GLNVM_ULD = 0x%x\n", reg); return ICE_ERR_RESET_FAILED; @@ -1265,7 +1199,7 @@ enum ice_status ice_check_reset(struct ice_hw *hw) */ static enum ice_status ice_pf_reset(struct ice_hw *hw) { - u32 cnt, reg; + u32 cnt, reg, reset_wait_cnt, cfg_lock_timeout; /* If at function entry a global reset was already in progress, i.e. * state is not 'device active' or any of the reset done bits are not @@ -1290,8 +1224,10 @@ static enum ice_status ice_pf_reset(struct ice_hw *hw) * timeout plus the PFR timeout which will account for a possible reset * that is occurring during a download package operation. */ - for (cnt = 0; cnt < ICE_GLOBAL_CFG_LOCK_TIMEOUT + - ICE_PF_RESET_WAIT_COUNT; cnt++) { + reset_wait_cnt = ICE_PF_RESET_WAIT_COUNT; + cfg_lock_timeout = ICE_GLOBAL_CFG_LOCK_TIMEOUT; + + for (cnt = 0; cnt < cfg_lock_timeout + reset_wait_cnt; cnt++) { reg = rd32(hw, PFGEN_CTRL); if (!(reg & PFGEN_CTRL_PFSWR_M)) break; @@ -1299,7 +1235,7 @@ static enum ice_status ice_pf_reset(struct ice_hw *hw) ice_msec_delay(1, true); } - if (cnt == ICE_PF_RESET_WAIT_COUNT) { + if (cnt == cfg_lock_timeout + reset_wait_cnt) { ice_debug(hw, ICE_DBG_INIT, "PF reset polling failed to complete.\n"); return ICE_ERR_RESET_FAILED; } @@ -2452,6 +2388,11 @@ ice_parse_common_caps(struct ice_hw *hw, struct ice_hw_common_caps *caps, true : false; ice_debug(hw, ICE_DBG_INIT, "%s: nvm_unified_update = %d\n", prefix, caps->nvm_unified_update); + caps->netlist_auth = + (number & ICE_NVM_MGMT_NETLIST_AUTH_SUPPORT) ? + true : false; + ice_debug(hw, ICE_DBG_INIT, "%s: netlist_auth = %d\n", prefix, + caps->netlist_auth); break; case ICE_AQC_CAPS_CEM: caps->mgmt_cem = (number == 1); @@ -2534,6 +2475,8 @@ ice_parse_common_caps(struct ice_hw *hw, struct ice_hw_common_caps *caps, (phys_id & ICE_EXT_TOPO_DEV_IMG_LOAD_EN) != 0; caps->ext_topo_dev_img_prog_en[index] = (phys_id & ICE_EXT_TOPO_DEV_IMG_PROG_EN) != 0; + caps->ext_topo_dev_img_ver_schema[index] = + (phys_id & ICE_EXT_TOPO_DEV_IMG_VER_SCHEMA) != 0; ice_debug(hw, ICE_DBG_INIT, "%s: ext_topo_dev_img_ver_high[%d] = %d\n", prefix, index, @@ -2554,6 +2497,10 @@ ice_parse_common_caps(struct ice_hw *hw, struct ice_hw_common_caps *caps, "%s: ext_topo_dev_img_prog_en[%d] = %d\n", prefix, index, caps->ext_topo_dev_img_prog_en[index]); + ice_debug(hw, ICE_DBG_INIT, + "%s: ext_topo_dev_img_ver_schema[%d] = %d\n", + prefix, index, + caps->ext_topo_dev_img_ver_schema[index]); break; } case ICE_AQC_CAPS_TX_SCHED_TOPO_COMP_MODE: @@ -2564,6 +2511,11 @@ ice_parse_common_caps(struct ice_hw *hw, struct ice_hw_common_caps *caps, ice_debug(hw, ICE_DBG_INIT, "%s: dyn_flattening_en = %d\n", prefix, caps->dyn_flattening_en); break; + case ICE_AQC_CAPS_OROM_RECOVERY_UPDATE: + caps->orom_recovery_update = (number == 1); + ice_debug(hw, ICE_DBG_INIT, "%s: orom_recovery_update = %d\n", + prefix, caps->orom_recovery_update); + break; default: /* Not one of the recognized common capabilities */ found = false; @@ -2782,6 +2734,26 @@ ice_parse_nac_topo_dev_caps(struct ice_hw *hw, struct ice_hw_dev_caps *dev_p, dev_p->nac_topo.id); } +/** + * ice_parse_sensor_reading_cap - Parse ICE_AQC_CAPS_SENSOR_READING cap + * @hw: pointer to the HW struct + * @dev_p: pointer to device capabilities structure + * @cap: capability element to parse + * + * Parse ICE_AQC_CAPS_SENSOR_READING for device capability for reading + * enabled sensors. + */ +static void +ice_parse_sensor_reading_cap(struct ice_hw *hw, struct ice_hw_dev_caps *dev_p, + struct ice_aqc_list_caps_elem *cap) +{ + dev_p->supported_sensors = LE32_TO_CPU(cap->number); + + ice_debug(hw, ICE_DBG_INIT, + "dev caps: supported sensors (bitmap) = 0x%x\n", + dev_p->supported_sensors); +} + /** * ice_parse_dev_caps - Parse device capabilities * @hw: pointer to the HW struct @@ -2827,6 +2799,9 @@ ice_parse_dev_caps(struct ice_hw *hw, struct ice_hw_dev_caps *dev_p, case ICE_AQC_CAPS_NAC_TOPOLOGY: ice_parse_nac_topo_dev_caps(hw, dev_p, &cap_resp[i]); break; + case ICE_AQC_CAPS_SENSOR_READING: + ice_parse_sensor_reading_cap(hw, dev_p, &cap_resp[i]); + break; default: /* Don't list common capabilities as unknown */ if (!found) @@ -3776,8 +3751,10 @@ ice_cfg_phy_fec(struct ice_port_info *pi, struct ice_aqc_set_phy_cfg_data *cfg, break; case ICE_FEC_DIS_AUTO: /* Set No FEC and auto FEC */ - if (!ice_fw_supports_fec_dis_auto(hw)) - return ICE_ERR_NOT_SUPPORTED; + if (!ice_fw_supports_fec_dis_auto(hw)) { + status = ICE_ERR_NOT_SUPPORTED; + goto out; + } cfg->link_fec_opt |= ICE_AQC_PHY_FEC_DIS; /* fall-through */ case ICE_FEC_AUTO: @@ -3852,6 +3829,7 @@ enum ice_status ice_aq_set_link_restart_an(struct ice_port_info *pi, bool ena_link, struct ice_sq_cd *cd) { + enum ice_status status = ICE_ERR_AQ_ERROR; struct ice_aqc_restart_an *cmd; struct ice_aq_desc desc; @@ -3866,7 +3844,16 @@ ice_aq_set_link_restart_an(struct ice_port_info *pi, bool ena_link, else cmd->cmd_flags &= ~ICE_AQC_RESTART_AN_LINK_ENABLE; - return ice_aq_send_cmd(pi->hw, &desc, NULL, 0, cd); + status = ice_aq_send_cmd(pi->hw, &desc, NULL, 0, cd); + if (status) + return status; + + if (ena_link) + pi->phy.curr_user_phy_cfg.caps |= ICE_AQC_PHY_EN_LINK; + else + pi->phy.curr_user_phy_cfg.caps &= ~ICE_AQC_PHY_EN_LINK; + + return ICE_SUCCESS; } /** @@ -4062,6 +4049,51 @@ ice_aq_read_topo_dev_nvm(struct ice_hw *hw, return ICE_SUCCESS; } +static u16 ice_lut_type_to_size(u16 lut_type) +{ + switch (lut_type) { + case ICE_LUT_VSI: + return ICE_LUT_VSI_SIZE; + case ICE_LUT_GLOBAL: + return ICE_LUT_GLOBAL_SIZE; + case ICE_LUT_PF: + return ICE_LUT_PF_SIZE; + default: + return 0; + } +} + +static u16 ice_lut_size_to_flag(u16 lut_size) +{ + u16 f = 0; + + switch (lut_size) { + case ICE_LUT_GLOBAL_SIZE: + f = ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512_FLAG; + break; + case ICE_LUT_PF_SIZE: + f = ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K_FLAG; + break; + default: + break; + } + return f << ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S; +} + +int ice_lut_size_to_type(int lut_size) +{ + switch (lut_size) { + case ICE_LUT_VSI_SIZE: + return ICE_LUT_VSI; + case ICE_LUT_GLOBAL_SIZE: + return ICE_LUT_GLOBAL; + case ICE_LUT_PF_SIZE: + return ICE_LUT_PF; + default: + return -1; + } +} + /** * __ice_aq_get_set_rss_lut * @hw: pointer to the hardware structure @@ -4073,7 +4105,7 @@ ice_aq_read_topo_dev_nvm(struct ice_hw *hw, static enum ice_status __ice_aq_get_set_rss_lut(struct ice_hw *hw, struct ice_aq_get_set_rss_lut_params *params, bool set) { - u16 flags = 0, vsi_id, lut_type, lut_size, glob_lut_idx, vsi_handle; + u16 flags, vsi_id, lut_type, lut_size, glob_lut_idx = 0, vsi_handle; struct ice_aqc_get_set_rss_lut *cmd_resp; struct ice_aq_desc desc; enum ice_status status; @@ -4084,16 +4116,22 @@ __ice_aq_get_set_rss_lut(struct ice_hw *hw, struct ice_aq_get_set_rss_lut_params vsi_handle = params->vsi_handle; lut = params->lut; + lut_type = params->lut_type; + lut_size = ice_lut_type_to_size(lut_type); + cmd_resp = &desc.params.get_set_rss_lut; + if (lut_type == ICE_LUT_GLOBAL) + glob_lut_idx = params->global_lut_id; - if (!ice_is_vsi_valid(hw, vsi_handle) || !lut) + if (!lut || !lut_size || !ice_is_vsi_valid(hw, vsi_handle)) return ICE_ERR_PARAM; - lut_size = params->lut_size; - lut_type = params->lut_type; - glob_lut_idx = params->global_lut_id; - vsi_id = ice_get_hw_vsi_num(hw, vsi_handle); + if (lut_size > params->lut_size) + return ICE_ERR_INVAL_SIZE; - cmd_resp = &desc.params.get_set_rss_lut; + if (set && lut_size != params->lut_size) + return ICE_ERR_PARAM; + + vsi_id = ice_get_hw_vsi_num(hw, vsi_handle); if (set) { ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_set_rss_lut); @@ -4107,61 +4145,15 @@ __ice_aq_get_set_rss_lut(struct ice_hw *hw, struct ice_aq_get_set_rss_lut_params ICE_AQC_GSET_RSS_LUT_VSI_ID_M) | ICE_AQC_GSET_RSS_LUT_VSI_VALID); - switch (lut_type) { - case ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_VSI: - case ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_PF: - case ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_GLOBAL: - flags |= ((lut_type << ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S) & - ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_M); - break; - default: - status = ICE_ERR_PARAM; - goto ice_aq_get_set_rss_lut_exit; - } - - if (lut_type == ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_GLOBAL) { - flags |= ((glob_lut_idx << ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_S) & - ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_M); + flags = ice_lut_size_to_flag(lut_size) | + ((lut_type << ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S) & + ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_M) | + ((glob_lut_idx << ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_S) & + ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_M); - if (!set) - goto ice_aq_get_set_rss_lut_send; - } else if (lut_type == ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_PF) { - if (!set) - goto ice_aq_get_set_rss_lut_send; - } else { - goto ice_aq_get_set_rss_lut_send; - } - - /* LUT size is only valid for Global and PF table types */ - switch (lut_size) { - case ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_128: - flags |= (ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_128_FLAG << - ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S) & - ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_M; - break; - case ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512: - flags |= (ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512_FLAG << - ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S) & - ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_M; - break; - case ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K: - if (lut_type == ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_PF) { - flags |= (ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K_FLAG << - ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S) & - ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_M; - break; - } - /* fall-through */ - default: - status = ICE_ERR_PARAM; - goto ice_aq_get_set_rss_lut_exit; - } - -ice_aq_get_set_rss_lut_send: cmd_resp->flags = CPU_TO_LE16(flags); status = ice_aq_send_cmd(hw, &desc, lut, lut_size, NULL); - -ice_aq_get_set_rss_lut_exit: + params->lut_size = LE16_TO_CPU(desc.datalen); return status; } @@ -5155,7 +5147,7 @@ ice_ena_vsi_txq(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u16 q_handle, q_ctx->q_teid = LE32_TO_CPU(node.node_teid); /* add a leaf node into scheduler tree queue layer */ - status = ice_sched_add_node(pi, hw->num_tx_sched_layers - 1, &node); + status = ice_sched_add_node(pi, hw->num_tx_sched_layers - 1, &node, NULL); if (!status) status = ice_sched_replay_q_bw(pi, q_ctx); @@ -5390,7 +5382,7 @@ ice_ena_vsi_rdma_qset(struct ice_port_info *pi, u16 vsi_handle, u8 tc, for (i = 0; i < num_qsets; i++) { node.node_teid = buf->rdma_qsets[i].qset_teid; status = ice_sched_add_node(pi, hw->num_tx_sched_layers - 1, - &node); + &node, NULL); *** 3424 LINES SKIPPED *** From nobody Thu Sep 14 07:22:02 2023 X-Original-To: dev-commits-src-main@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 4RmTKR0y3Mz4tgG7; Thu, 14 Sep 2023 07:22: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmTKR0WB0z3WSP; Thu, 14 Sep 2023 07:22:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694676123; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MutLbhSx+YhUj5O3k16mp82jAmY4XKIqLqd96pRdNGQ=; b=gknXaB4P5MnIL06XUnQ4tiY1QuA8enh7Q3m6neaJXWknoT3uc+Fe/Jyxqk4i/obWki0Y9I P4TKJRL/hj1MfFnMv61gUOwFFGhltK3KgsmE6omNYTLmHzKPcAcAVT9ogITYeERCOv09T0 p25joEAmtwEdrgx0gbIcUaTWDKbGlD3hFr935QxAjSu6zVd/IAOZRUvlFPeeKFrul/J7m1 SX9cwjKldrQrGgDw6+0wblYRn0DNKvU5Cq4CmX4ESu2pYbuzjodO2NFOViU3ClnaBZQ6Vd 7ohJox/zIBYDyLW1KWh6+SXwxwvKQx03oK1iE4fFwl+xe3N6U9M/g5jcwTMHww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694676123; a=rsa-sha256; cv=none; b=IrByh7m1n244EIdm0QlKYb3Lo9pBV/vP1Yz1e0CWVUaxZUAcL80M6Bps7SGT+sWn3L3Guw GKg+23FsC72Q2vRkv+StdQnNl+OBhXyvfmOvyEbVmflFBMQKerxpMWZJiG0szdmqxwlaN6 w+S3D9Xb/ff+RfxCRZXajb+MhXLRZnVYI1MDGRlK+4m6EqHpYvpPJMXRdDGps81NY+Tfdz vIGTmahg4vABb/4gk8ZV8GXKPP8E/4tFgEft42wW+Z9BueDhT2m9Wji28DGqaL/3ZRnvQL Izxr31PIVLYfzUr+7CMmWU35wndjLbZlQtkeNGOUT4qUgYMLOTrq410nZDJR/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694676123; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MutLbhSx+YhUj5O3k16mp82jAmY4XKIqLqd96pRdNGQ=; b=PyCuKeOgwXCA9YMXnhfll3Dl4lqSQmj8ud5FnHjgAV2KhZnsOBJJibTnFJLUJsF0IORdEL CxNSio5ujn9Z1PFQnqrakx7lhMhh3k7/8OvniPKNl02fMiE3iDmL1lQe0vSmgYksr7LTCL 5IYIc2LZFrVj9e7DY7SSK+FB+MOaqMFoanbCP/MbFwBdOZ8lHJSWB2XYr0kPKxg/+AzF7i +Gh3x0KhZnd6Jc0JrRpRl1aEcR0s0zIdaGTOJ+3yx+8HSWvCO0mD8W80AkXGezrnS/W+3e atBbZnRyYs0Igpom70kp7f+s/dnr0l3Z3pZdzKHOohjOWCGHz95cXssDSMx+JA== 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 4RmTKQ6N6Jznjt; Thu, 14 Sep 2023 07:22:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38E7M2Mq023528; Thu, 14 Sep 2023 07:22:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E7M2tN023525; Thu, 14 Sep 2023 07:22:02 GMT (envelope-from git) Date: Thu, 14 Sep 2023 07:22:02 GMT Message-Id: <202309140722.38E7M2tN023525@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Wei Hu <whu@FreeBSD.org> Subject: git: e7a9817b8d32 - main - Hyper-V: vmbus: implementat bus_get_dma_tag in vmbus List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: whu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e7a9817b8d328dda04069b65944ce2ed6f54c6f0 Auto-Submitted: auto-generated The branch main has been updated by whu: URL: https://cgit.FreeBSD.org/src/commit/?id=e7a9817b8d328dda04069b65944ce2ed6f54c6f0 commit e7a9817b8d328dda04069b65944ce2ed6f54c6f0 Author: Souradeep Chakrabarti <schakrabarti@microsoft.com> AuthorDate: 2023-09-14 07:11:25 +0000 Commit: Wei Hu <whu@FreeBSD.org> CommitDate: 2023-09-14 07:11:25 +0000 Hyper-V: vmbus: implementat bus_get_dma_tag in vmbus In ARM64 Hyper-V UFS filesystem is getting corruption and those corruptions are consistently happening just after hitting a page boundary. It is unable to correctly read disk blocks into buffers that are not aligned to 512-byte boundaries. It happens because storvsc needs physically contiguous memory which may not be the case when bus_dma needs to create a bounce buffer. This can happen when the destination is not cache-line aligned. Hyper-V VMs have VMbus synthetic devices and PCI pass-thru devices that are added dynamically via the VMbus protocol and are not represented in the ACPI DSDT. Only the top level VMbus node exists in the DSDT. As such, on ARM64 these devices don't pick up coherence information and default to not hardware coherent. PR: 267654, 272666 Reviewed by: andrew, whu Tested by: lwhsu MFC after: 3 days Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D41728 --- sys/dev/hyperv/vmbus/vmbus.c | 33 +++++++++++++++++++++++++++++++++ sys/dev/hyperv/vmbus/vmbus_var.h | 1 + 2 files changed, 34 insertions(+) diff --git a/sys/dev/hyperv/vmbus/vmbus.c b/sys/dev/hyperv/vmbus/vmbus.c index e0f7bbc99ca7..ee412e643b4f 100644 --- a/sys/dev/hyperv/vmbus/vmbus.c +++ b/sys/dev/hyperv/vmbus/vmbus.c @@ -137,6 +137,7 @@ static void vmbus_intr_teardown(struct vmbus_softc *); static int vmbus_doattach(struct vmbus_softc *); static void vmbus_event_proc_dummy(struct vmbus_softc *, int); +static bus_dma_tag_t vmbus_get_dma_tag(device_t parent, device_t child); static struct vmbus_softc *vmbus_sc; SYSCTL_NODE(_hw, OID_AUTO, vmbus, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, @@ -183,6 +184,7 @@ static device_method_t vmbus_methods[] = { DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), DEVMETHOD(bus_get_cpus, bus_generic_get_cpus), + DEVMETHOD(bus_get_dma_tag, vmbus_get_dma_tag), /* pcib interface */ DEVMETHOD(pcib_alloc_msi, vmbus_alloc_msi), @@ -219,6 +221,13 @@ vmbus_get_softc(void) return vmbus_sc; } +static bus_dma_tag_t +vmbus_get_dma_tag(device_t dev, device_t child) +{ + struct vmbus_softc *sc = vmbus_get_softc(); + return (sc->dmat); +} + void vmbus_msghc_reset(struct vmbus_msghc *mh, size_t dsize) { @@ -1382,6 +1391,9 @@ vmbus_doattach(struct vmbus_softc *sc) struct sysctl_oid_list *child; struct sysctl_ctx_list *ctx; int ret; + device_t dev_res; + ACPI_HANDLE handle; + unsigned int coherent; if (sc->vmbus_flags & VMBUS_FLAG_ATTACHED) return (0); @@ -1402,6 +1414,27 @@ vmbus_doattach(struct vmbus_softc *sc) sizeof(struct vmbus_channel *) * VMBUS_CHAN_MAX, M_DEVBUF, M_WAITOK | M_ZERO); + /* Coherency attribute */ + dev_res = devclass_get_device(devclass_find("vmbus_res"), 0); + handle = acpi_get_handle(dev_res); + + if (ACPI_FAILURE(acpi_GetInteger(handle, "_CCA", &coherent))) + coherent = 0; + if (bootverbose) + device_printf(sc->vmbus_dev, "Bus is%s cache-coherent\n", + coherent ? "" : " not"); + + bus_dma_tag_create(bus_get_dma_tag(sc->vmbus_dev), + 1, 0, + BUS_SPACE_MAXADDR, + BUS_SPACE_MAXADDR, + NULL, NULL, + BUS_SPACE_MAXSIZE, + BUS_SPACE_UNRESTRICTED, + BUS_SPACE_MAXSIZE, + coherent ? BUS_DMA_COHERENT : 0, + NULL, NULL, + &sc->dmat); /* * Create context for "post message" Hypercalls */ diff --git a/sys/dev/hyperv/vmbus/vmbus_var.h b/sys/dev/hyperv/vmbus/vmbus_var.h index f6fc875deb32..023d27c52cea 100644 --- a/sys/dev/hyperv/vmbus/vmbus_var.h +++ b/sys/dev/hyperv/vmbus/vmbus_var.h @@ -129,6 +129,7 @@ struct vmbus_softc { void *icookie; int vector; #endif + bus_dma_tag_t dmat; }; #define VMBUS_FLAG_ATTACHED 0x0001 /* vmbus was attached */ From nobody Thu Sep 14 08:03:29 2023 X-Original-To: dev-commits-src-main@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 4RmVFF4FnZz4sgDZ; Thu, 14 Sep 2023 08:03: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmVFF3nppz4D2Z; Thu, 14 Sep 2023 08:03:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694678609; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eS9IHlboXwT3gXsHP82OJEbyCUhwnm4jFyVapnc5fMU=; b=tNFw1MzJxfkKNyGxc+JN8fcBdN6HBQcqGgjIo2fupFSAwdqwrshFBDngPZbMQq+dbs5Qxu oDJ2YUx4b319rg7WQ1SOzsHnvYKiCSJ17CeGv+iIwkclvAX3+t9GBZk5h7hu0ONAJTakm9 D9nf32q5uaa1hS6V9AqFL1Xopfbhb+PqnbJgYguCos+U92XUYPynytfXyu55jY3GDB8Oyd G7Wb26wjTVRwzaVngWwxMKY09vmHfWQFKjdtV2E6PxtliLheh8fvAaUoXQ3TLLarkn+Qpg FSen46PgawkRDBYWb5Gy5RgiSxClFTORTswTpTgcUo3BP396FZO3T0VyCq/y7Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694678609; a=rsa-sha256; cv=none; b=Xya3j1VhBhu5iMf1xMUdwwbImt1We4OnUrjWpYg8dqR0EzogioegaZQWeGF5qnJo13zlEh VNlYU1QT427VM69O+1V9ORrOZpW7YCsFyqN4ZrG+BnL3J1g3zbiJg7HvNm76aY9lp13ttw VjhmWyFrDaPYGczGdgZUvZFJ88JQG6crDAWnbjWkKTnce3V+WOP+Qxx2O82HAkqfhglhTh E2WRh/tYtGKiSXFyNrb3hPn8W6dbaIH+39+xLAqL1jqHdzVlsOO2N+svlrnA3XhzQGh5Be 8ULeXhIMClTNSZ7TY/xda1KCvnRXJOLrX4AGiItsa2Rn6ZCArAzqNBvGVvNDnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694678609; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eS9IHlboXwT3gXsHP82OJEbyCUhwnm4jFyVapnc5fMU=; b=H5nFUKW+lfs71QKbylyQQ6fYu021oxxNDEpxn0j4Q/a3TiF8zV89J/KU2XeCzvdjZoGeRh kWVLXaYgSDkrHVObJL+z/R7sJaQV1vLaGPooc3u6Q2nY3Ec6AysBiwjE/a6d1hKLG/0XkF /AgkN0yQZI5TmCAEsjzybx5W4xVWuu/QBggxeez2yaVqjyTRlI/Cjp3HzOA1QkcsZk1XtD MJJh5G3AqJNDgG5BczWTfEllL+XAm4JOQUKKhECGE1NHKCrcStS4QIF5uPRtAVR6Vw50N/ cZqI30JqRwcrVJQM5D7guCqGtZF6Zf02E74G/xD2sab37PVO25pfYE5cC0lCzg== 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 4RmVFF2rHCzpJ1; Thu, 14 Sep 2023 08:03:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38E83TIb092893; Thu, 14 Sep 2023 08:03:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E83Tlq092890; Thu, 14 Sep 2023 08:03:29 GMT (envelope-from git) Date: Thu, 14 Sep 2023 08:03:29 GMT Message-Id: <202309140803.38E83Tlq092890@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Wolfram Schneider <wosch@FreeBSD.org> Subject: git: 6d221ee35544 - main - correct FreeBSD release PR: 273690 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wosch X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6d221ee355446a5628c23fbf6c88169602d9f1a1 Auto-Submitted: auto-generated The branch main has been updated by wosch: URL: https://cgit.FreeBSD.org/src/commit/?id=6d221ee355446a5628c23fbf6c88169602d9f1a1 commit 6d221ee355446a5628c23fbf6c88169602d9f1a1 Author: Wolfram Schneider <wosch@FreeBSD.org> AuthorDate: 2023-09-14 08:03:05 +0000 Commit: Wolfram Schneider <wosch@FreeBSD.org> CommitDate: 2023-09-14 08:03:05 +0000 correct FreeBSD release PR: 273690 --- share/man/man4/mlx4en.4 | 2 +- share/man/man4/mlx4ib.4 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/mlx4en.4 b/share/man/man4/mlx4en.4 index ae805426fb00..69d2904508b8 100644 --- a/share/man/man4/mlx4en.4 +++ b/share/man/man4/mlx4en.4 @@ -84,7 +84,7 @@ please email the specific information to The .Nm device driver first appeared in -.Fx 9.x . +.Fx 9.0 . .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/mlx4ib.4 b/share/man/man4/mlx4ib.4 index 8e3d1c03d89b..536b8cab5280 100644 --- a/share/man/man4/mlx4ib.4 +++ b/share/man/man4/mlx4ib.4 @@ -84,7 +84,7 @@ please email the specific information to The .Nm device driver first appeared in -.Fx 9.x . +.Fx 9.0 . .Sh AUTHORS .An -nosplit The From nobody Thu Sep 14 08:40:37 2023 X-Original-To: dev-commits-src-main@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 4RmW4547X0z4sswn; Thu, 14 Sep 2023 08:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmW453j48z4MHj; Thu, 14 Sep 2023 08:40:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694680837; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F/OmM5QsPHqt0ySDL0uL/6o7lA+HBJwJ/cMFIW8qhLQ=; b=s/ur37FYP2Lrj9vt2gzYR5wENc/4xYN8zUdiRExHdHAMX9QDFjCJhlemBtbxQsTaNTfn0+ SiCGEhf5/xCOGOfa0za1lE7lYyeLNM/Ss7C+WwD8/0a0cEi918HqOTURRoX3U/i0b9bff2 +Cm303ca3kF4lH/WldLVECIyRxCiXerKdGwKdWNl+xhWrmbB2nLLFg7f7AmhgPRb2bgYKU SEGgI8Zi0Xi/bSA0R/6PWGJulTLN/lDc+XXUuBh4u81OBDSIZpkPf7vI9vCqZ2pMsaCXbf sb3+Z43s7o6zU1B2wFZxRvJvf0KFUNK/CBtAZXVYP9w3fzMgqBVBPNPzuus1gQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694680837; a=rsa-sha256; cv=none; b=O5W6wncbQAmA2NTQyfG84XwCVq8Syh8XX/MYHLOps9g95od0rZLK5tTADNSZY1bZsU57OH 15B+qjFJQZu/rxs/hwHReOPR+vJ+t3vOs9CBEXPriKDDgi69McLE+cviHGFiIr9mjkwVoF GRitJ3qE47vMKzn/v9n2Lif5Lv7LSZlbGxtCapl8TtH6ApbbWQJO++m2dUHJXTYg5Pu5JJ cuzZu0bvDQOIq5thch6b0RCJz7kxke2Mhk4dVn3egV7OP0T5N/s6Ui2QwlQn0ulU4228Gx yVuJW4HQs8QRjSVzyQXgm0kvvUpmTqOAUWbXsdIwC+chbf/wM1Hn2Nyn1dRp3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694680837; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F/OmM5QsPHqt0ySDL0uL/6o7lA+HBJwJ/cMFIW8qhLQ=; b=ejsCYpdN/cxwPaw28qd468kDHt0N33nhGursH7+Q41d39WSTTxjtFkZhWFuZ7/oBK3WxXG uBCok+fyK3EFxN2WoSMFGjW4bBsuD+5gbPL3LUuEL1Jc09QAc303XSi0TRSbyFVDXxTmw+ 2/MTDs0zLUR6e3WHHOK0MsuQ6Qi6isVIuVuggXUNNOLI31nCSDwXeNRG8sgk5aOYNGAcWI IOFvMWfixEVTX9DzuvjQ/f/auURUgn4VOEBhROQXDowM1tHNuxmPygGWWbsKqXpHCgqGNA DEELA7gGUgwBUMZZfcf226dz0GmDfx28PmbezmN6qvtVTsaATGeUzJ4+rBfujg== 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 4RmW452pPKzqRg; Thu, 14 Sep 2023 08:40:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38E8ebuQ052750; Thu, 14 Sep 2023 08:40:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E8ebUD052747; Thu, 14 Sep 2023 08:40:37 GMT (envelope-from git) Date: Thu, 14 Sep 2023 08:40:37 GMT Message-Id: <202309140840.38E8ebUD052747@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Andrey V. Elsukov" <ae@FreeBSD.org> Subject: git: 0bf5377b6b96 - main - Avoid IPv6 source address selection on accepting TCP connections List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ae X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0bf5377b6b9642acc85355062b921a07604b7c04 Auto-Submitted: auto-generated The branch main has been updated by ae: URL: https://cgit.FreeBSD.org/src/commit/?id=0bf5377b6b9642acc85355062b921a07604b7c04 commit 0bf5377b6b9642acc85355062b921a07604b7c04 Author: Andrey V. Elsukov <ae@FreeBSD.org> AuthorDate: 2023-09-14 08:39:06 +0000 Commit: Andrey V. Elsukov <ae@FreeBSD.org> CommitDate: 2023-09-14 08:39:06 +0000 Avoid IPv6 source address selection on accepting TCP connections When an application listens IPv6 TCP socket, due to ipfw forwarding tag it may handle connections for addresses that do not belongs to the jail or even current host (transparent proxy). Syncache code can successfully handle TCP handshake for such connections. When syncache finally accepts connection it uses in6_pcbconnect() to properly initlize new connection info. For IPv4 this scenario just works, but for IPv6 it fails when local address doesn't belongs to the jail. This check occurs when in6_pcbladdr() applies IPv6 SAS algorithm. We need IPv6 SAS when we are connection initiator, but in the above case connection is already established and both source and destination addresses are known. Use unused argument to notify in6_pcbconnect() when we don't need source address selection. This will fix `ipfw fwd` to jailed IPv6 address. When we are connection initiator, we stil use IPv6 SAS algorithm and apply all related restrictions. MFC after: 1 month Sponsored by: Yandex LLC Differential Revision: https://reviews.freebsd.org/D41685 --- sys/netinet6/in6_pcb.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c index bf81de78f992..5c4ef7570ddc 100644 --- a/sys/netinet6/in6_pcb.c +++ b/sys/netinet6/in6_pcb.c @@ -335,7 +335,7 @@ in6_pcbbind(struct inpcb *inp, struct sockaddr_in6 *sin6, struct ucred *cred) */ static int in6_pcbladdr(struct inpcb *inp, struct sockaddr_in6 *sin6, - struct in6_addr *plocal_addr6) + struct in6_addr *plocal_addr6, bool sas_required) { int error = 0; int scope_ambiguous = 0; @@ -364,13 +364,25 @@ in6_pcbladdr(struct inpcb *inp, struct sockaddr_in6 *sin6, if ((error = prison_remote_ip6(inp->inp_cred, &sin6->sin6_addr)) != 0) return (error); - error = in6_selectsrc_socket(sin6, inp->in6p_outputopts, - inp, inp->inp_cred, scope_ambiguous, &in6a, NULL); - if (error) - return (error); + if (sas_required) { + error = in6_selectsrc_socket(sin6, inp->in6p_outputopts, + inp, inp->inp_cred, scope_ambiguous, &in6a, NULL); + if (error) + return (error); + } else { + /* + * Source address selection isn't required when syncache + * has already established connection and both source and + * destination addresses was chosen. + * + * This also includes the case when fwd_tag was used to + * select source address in tcp_input(). + */ + in6a = inp->in6p_laddr; + } + if (IN6_IS_ADDR_UNSPECIFIED(&in6a)) return (EHOSTUNREACH); - /* * Do not update this earlier, in case we return with an error. * @@ -398,7 +410,7 @@ in6_pcbladdr(struct inpcb *inp, struct sockaddr_in6 *sin6, */ int in6_pcbconnect(struct inpcb *inp, struct sockaddr_in6 *sin6, struct ucred *cred, - bool rehash __unused) + bool sas_required) { struct inpcbinfo *pcbinfo = inp->inp_pcbinfo; struct sockaddr_in6 laddr6; @@ -432,7 +444,8 @@ in6_pcbconnect(struct inpcb *inp, struct sockaddr_in6 *sin6, struct ucred *cred, * Call inner routine, to assign local interface address. * in6_pcbladdr() may automatically fill in sin6_scope_id. */ - if ((error = in6_pcbladdr(inp, sin6, &laddr6.sin6_addr)) != 0) + if ((error = in6_pcbladdr(inp, sin6, &laddr6.sin6_addr, + sas_required)) != 0) return (error); if (in6_pcblookup_hash_locked(pcbinfo, &sin6->sin6_addr, From nobody Thu Sep 14 08:41:58 2023 X-Original-To: dev-commits-src-main@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 4RmW5g1hg1z4stp7; Thu, 14 Sep 2023 08:41:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmW5g0JVrz4Mwr; Thu, 14 Sep 2023 08:41:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694680919; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lWqUSJK/5rLsaoEXBKOFGq4GVWOTcanhUJrh3WlUvb4=; b=utxDn93rAzY3gcnvurrp5Qek6dCKVB6ihuZyohkho+jPcm5HO5Bovqi7vcKiZuR/L3IaL8 Sbi5pxsWMc9R46nQwshZZH7zcyw/cVsG+PjSLqVGaU4X0nAkZEmaYePUhMGMudVqQtv7cK lv2SQehsWEl85uSTcpDEKK1VSTen9uryO3NzTEWXkgHwFXvOJFJk/bqi6eL/QOCXSXQ5Vg XVFf+nuKXOP4dFXCUCDoUoEdbWXdwuus+IxgZOOrG46p2xxEomuAUuRp1wPXEEOVI5nKyp ykPgvOmlnqUPxbCAKbd1JQn9Qdm3ieajJmP00PH+R+vFrh27Ly0hbW2ysDkrOA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694680919; a=rsa-sha256; cv=none; b=SgC/uZORW5eb3F7TZi6DBEqR6CeQLPL7z24mWc2q0evh3pycbxHGGCcRww5pqv7vbwdA75 5n7VYEfAkH50xOnnTjUEC9MhrDj4Mxky21cBaZz9Ab8JlSKXSkmN9cAi/gO3m6/Mfs8fGg oB06sA09Y3KBpJbweaJWOV6QhMHqwT9LNVXxrJappnN4bR2Q3VTm3jyZO/pEDG+R/Wt4Hk QyxCnZhOzxATklJ3AZKuKSwWp2qYge4H4l1INr4JTUIcIK4ELA7osRNKHDOY4vem6LEYQb NSuSnNHQ/YVo4/8qjQTlUdB5DA8INN+GRnwG6M6IzevIf3Ev+W3ak/8G2ZwoQQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694680919; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lWqUSJK/5rLsaoEXBKOFGq4GVWOTcanhUJrh3WlUvb4=; b=ZsGIjb2caiCh0jGBds0CicS3ReoHPY5X656KyF7H3S9xtGeljLY/Hp0nzNDQeKXz947Jjc KdwAQTM4GvvHt6jLZG8Q9PYvxTzk72OhvniXXs9VxF8As2gHG0QK/tdZNYFTp4i9hMSJX6 WQyCQxtkn4VdQXqd9hbJZUY7wY4ljv3yfroViMQcCKrFglTiqFyU1Od+4phz0gjfVgSpUs c1jAsLb6EzNHJ9VHWs0hB6egK0Yd9JgDHd78JEeBika8r30dAKhOYboVhCxZqnyiGBie8U pisSm1CG/y+57iHGv3zEeHWv2AhXEdvO5SVg5FdQr3obMVdA/+8ANMeP2idghw== 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 4RmW5f6WRTzqSK; Thu, 14 Sep 2023 08:41:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38E8fwrv059536; Thu, 14 Sep 2023 08:41:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E8fw5M059533; Thu, 14 Sep 2023 08:41:58 GMT (envelope-from git) Date: Thu, 14 Sep 2023 08:41:58 GMT Message-Id: <202309140841.38E8fw5M059533@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Wolfram Schneider <wosch@FreeBSD.org> Subject: git: e80697634978 - main - update homepage for FreeBSD Manual Pages List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wosch X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e80697634978578bca84a6f28348db0fbc40118d Auto-Submitted: auto-generated The branch main has been updated by wosch: URL: https://cgit.FreeBSD.org/src/commit/?id=e80697634978578bca84a6f28348db0fbc40118d commit e80697634978578bca84a6f28348db0fbc40118d Author: Wolfram Schneider <wosch@FreeBSD.org> AuthorDate: 2023-09-14 08:40:47 +0000 Commit: Wolfram Schneider <wosch@FreeBSD.org> CommitDate: 2023-09-14 08:41:12 +0000 update homepage for FreeBSD Manual Pages --- share/misc/bsd-family-tree | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index 208523bd1fcb..0910f577bdbd 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -907,11 +907,11 @@ URL: https://web.archive.org/web/20081230094857/http://www.byte.com/art/9410/sec Andreas Klemm, Lars Köller. If you're going to San Francisco ... Die freien BSD-Varianten von Unix. c't April 1997, page 368ff. -BSD Release Announcements collection. +FreeBSD Release Information URL: https://www.FreeBSD.org/releases/ -BSD Hypertext Man Pages -URL: https://www.FreeBSD.org/cgi/man.cgi +FreeBSD Manual Pages +URL: https://man.freebsd.org/cgi/man.cgi UNIX history graphing project URL: https://minnie.tuhs.org/Unix_History/index.html @@ -933,5 +933,5 @@ original BSD announcements from Usenet or tapes. Steven M. Schultz for providing 2.8BSD, 2.10BSD, 2.11BSD manual pages. -- -Copyright (c) 1997-2012 Wolfram Schneider <wosch@FreeBSD.ORG> +Copyright (c) 1997-2023 Wolfram Schneider <wosch@FreeBSD.org> URL: https://cgit.freebsd.org/src/tree/share/misc/bsd-family-tree From nobody Thu Sep 14 09:20:41 2023 X-Original-To: dev-commits-src-main@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 4RmWyK4HyWz4t6SK; Thu, 14 Sep 2023 09:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmWyK3rX2z4bBx; Thu, 14 Sep 2023 09:20:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694683241; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7NoKuwmtEb+G+hN/VHCzqjyl2p8zHtEvP97EC03zMIk=; b=RGvt7/0M+wIyAYivZ891B5dYK1MDzX16uXPxqwofOlHd8IQzmPaOiNBgQN48LpUR6f+XpL CN6mz9z+G1BThZFVjdElTd7xAfIqKNy9b+8Pmm7jDcYU2FGRa7ki1MK24qM0tCGqp65TOZ dc+z9I7Gx6HA6KUgw/YE1147tdZefLAtaxkieVMnR3NQNrRprb9DccDCXuvBxarA0tBGAR 4Pshzi3f/VAXTbzm0XdVdQuzmrGkH88kanWCp+hMObD1YZe0dwUWZb190vFQbBWZ40gEAB OERh/PxmxrEBwOtb7JPdJmuwQhD+BoqCgvNC4TbbPEwOcILHzaYhGMbxb8pDrg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694683241; a=rsa-sha256; cv=none; b=P8y/Ldzem+OadnLuVefNw/LQmFFhCKmjYs25M1M2CwOfrSllCM1sIdqyxj04wp8o3RPT7m /18JFVJSABJvMS8Eoupdj+ZGm91SvZXKRrv1G8jFJL9Zs5x6wjE6dCA9X/mqPmpnJ5nUDX GeWSottytOKj9Tj5RzZdQhiYGVqP50QsmgooPnnEjIvE/svUGLEJmGdZ6J4aJkRV9FYcfU AkTz8uXHjkwdboxEVpFuqGfzEzUj/KkCCGPy/T3NH5W6R4cN6VP65JltoEycFRn+jBBAFE hrXvPu3oidApzRkQTt36bnICnzdGmWR2KOn9YnoVKIAevWGm/TIe5MVqKQU8Bg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694683241; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7NoKuwmtEb+G+hN/VHCzqjyl2p8zHtEvP97EC03zMIk=; b=ycSun+5/qk12aZACv7gBE/a48cCAI5ICnWUovjeXG415ou2LkLqZ5gxH/fBmqMEMqLSnHA k3nqlupSeBtU66HeLMIycmEOFtrEs2MQM4iMqG5TimiFU2XQAESFYBNerQ0DpA9U6edZIb aKs1yW5k1PIx3dVeRxBgjPXj9g7bGCmtq9/76/wYXCWCw6X2YSg3LURQmh7FHB5OWGpEbR 7QBs69iq4Mw4NhRF8pqXdlSEtJCMUXAwWCCGJcRbwnsRsD/e0lxzVpdv2KHuLzgY8kqJui 7dW7Poxl7TpwEyW6ZxxZ/LPUlJ3TmH28DzzgB5TySjkcH28g9FlVqYChRI1AFQ== 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 4RmWyK2vxqzrFn; Thu, 14 Sep 2023 09:20:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38E9Kff8021177; Thu, 14 Sep 2023 09:20:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E9KfKW021174; Thu, 14 Sep 2023 09:20:41 GMT (envelope-from git) Date: Thu, 14 Sep 2023 09:20:41 GMT Message-Id: <202309140920.38E9KfKW021174@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Rabson <dfr@FreeBSD.org> Subject: git: 4e899378bf5d - main - pkgbase: put library links and symlinks in the -dev package List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dfr X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4e899378bf5d89c20430d32982d2635657f34c04 Auto-Submitted: auto-generated The branch main has been updated by dfr: URL: https://cgit.FreeBSD.org/src/commit/?id=4e899378bf5d89c20430d32982d2635657f34c04 commit 4e899378bf5d89c20430d32982d2635657f34c04 Author: Doug Rabson <dfr@FreeBSD.org> AuthorDate: 2023-09-13 10:18:09 +0000 Commit: Doug Rabson <dfr@FreeBSD.org> CommitDate: 2023-09-14 09:19:42 +0000 pkgbase: put library links and symlinks in the -dev package Some libraries (e.g. ncurses) install links to the main library for backwards compatibilty. This change ensures that those links are in the dev package since the files being linked to are in that package. PR: 249143 MFC after: 1 week Reviewed by: emaste, manu Differential Revision: https://reviews.freebsd.org/D41841 --- share/mk/bsd.lib.mk | 1 + share/mk/bsd.links.mk | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index 90d89eeebc5d..49304463d859 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -561,6 +561,7 @@ LINKGRP?= ${LIBGRP} LINKMODE?= ${LIBMODE} SYMLINKOWN?= ${LIBOWN} SYMLINKGRP?= ${LIBGRP} +LINKTAGS= dev .include <bsd.links.mk> .if ${MK_MAN} != "no" && !defined(LIBRARIES_ONLY) diff --git a/share/mk/bsd.links.mk b/share/mk/bsd.links.mk index 990c4cb65a29..6070979612bf 100644 --- a/share/mk/bsd.links.mk +++ b/share/mk/bsd.links.mk @@ -14,8 +14,16 @@ afterinstall: _installlinks .ORDER: realinstall _installlinks _installlinks: .for s t in ${LINKS} +.if defined(LINKTAGS) + ${INSTALL_LINK} ${TAG_ARGS:D${TAG_ARGS},${LINKTAGS}} ${DESTDIR}${s} ${DESTDIR}${t} +.else ${INSTALL_LINK} ${TAG_ARGS} ${DESTDIR}${s} ${DESTDIR}${t} +.endif .endfor .for s t in ${SYMLINKS} +.if defined(LINKTAGS) + ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},${LINKTAGS}} ${s} ${DESTDIR}${t} +.else ${INSTALL_SYMLINK} ${TAG_ARGS} ${s} ${DESTDIR}${t} +.endif .endfor From nobody Thu Sep 14 10:09:29 2023 X-Original-To: dev-commits-src-main@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 4RmY2v4XP9z4tNST; Thu, 14 Sep 2023 10:09:43 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmY2v2jX3z4lZw; Thu, 14 Sep 2023 10:09:43 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2b9c907bc68so11890621fa.2; Thu, 14 Sep 2023 03:09:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694686182; x=1695290982; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=KeQiYFNASXWKlJM1G7dqP3SA6ySW3FoByhy8hUmL3yo=; b=WHLS7O/nlemcP8XZiZZGUWFHr+bf4HsineaA3FjGyJN+mBzedHxpYAHxGSUGA+Ccgk nYZF+iklbxkwN57hjId6t56/cJVcVuuorlA4xZTzCRUptqifBKcPNLNcSB3BpKDTaiBO FeNvPJVfOBzeP80w32jmXE/Ln7o0C1pzdCRvCNcud1l3goHu882PyVKddDGWBVTBEH4G G3bVjB51MdeFypB6EJ9Ll4O3yClPS9eptd26UhH0oewjve+5bU1bVhxq0eEN7i/nEOX2 5/VjZIgisKhtsmCrrfADw3xuyB7WcHddHQrF6sZjz+YJkR136i57RRXjtJk0+qEu/vMw /uEg== X-Gm-Message-State: AOJu0YwIL/BwZDI3Crd/AKvoUjognqS8p756+fsh78DCWGtZM7Npo5+e blZPTizIVWWMsVVsmNn5bJKPtf70K4JhcaK+sZKSelYbsg4= X-Google-Smtp-Source: AGHT+IGzoI1z2v6DpABXwUcW1uahLzWd5ekcSQ2yLNQ//STneVSRlb9W5XHhwZtTvPHUKiF+nbIKK7W8YO05w5Wb9ZA= X-Received: by 2002:a05:6512:3050:b0:501:bae0:36 with SMTP id b16-20020a056512305000b00501bae00036mr5332536lfb.16.1694686181490; Thu, 14 Sep 2023 03:09:41 -0700 (PDT) List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 References: <202309091847.389IlZed083348@gitrepo.freebsd.org> <7af75066-8b42-477a-8ea4-f64dd0970ab1@aetern.org> In-Reply-To: <7af75066-8b42-477a-8ea4-f64dd0970ab1@aetern.org> From: Ed Maste <emaste@freebsd.org> Date: Thu, 14 Sep 2023 11:09:29 +0100 Message-ID: <CAPyFy2B=zhMrcvpYwkmzJaqtGdxQpLA=C0VqS3X43EPUirao-g@mail.gmail.com> Subject: Re: git: 98b98ec1bc7e - main - ftpd: add deprecation notice To: Yuri <yuri@aetern.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Queue-Id: 4RmY2v2jX3z4lZw On Wed, 13 Sept 2023 at 18:28, Yuri <yuri@aetern.org> wrote: > > Duplicate .Sh, the rendered man page shows: > > .Sh DEPRECATION NOTICE Thanks for the report (not sure how I missed that). Mike Karels also noticed it when I requested a merge to 14.0, fixed now. From nobody Thu Sep 14 10:11:06 2023 X-Original-To: dev-commits-src-main@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 4RmY4V287gz4tNg9; Thu, 14 Sep 2023 10:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmY4V1jJDz4lrk; Thu, 14 Sep 2023 10:11:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694686266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/MnE2aH34GLPrx8+FTb7glnswim8nxG7NBcf4eJHnHo=; b=bLsqYaYLwzGIXgfg+0aGFNvfeEN7x/+bRtYRPwIANcXUTCtA/GwOQCELM9j0MYIcIZ/jus Q+95o7ZWqR7SZCk7SQTP+IyZqK9AoIvSROymjp+iM/H/A93C4ehHKtSSxJSMp+FEyOQGT1 VQVr6pyWr+GhP90o4CcycFMOy1RLceHOnh28MXrU+yghRJjTvdKTcY60oqiZOK8R8+mHN0 IYPe8GyBPGbq2h7dGhYFRRsJolaKqJY/AF6wKIFTexqoEHKALcGMyczkHm0jIGYIRKjeM2 8eHoYrHRG1vdqdkIW5SdvQ41NlBAsvwLsTcCocqsjbfA9g3ZVcW+VvJp2Beyeg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694686266; a=rsa-sha256; cv=none; b=VrZzJXl5vVG7yY94kUEDi4MUABM5zUA9dVZFoXPOCWX/bKGkgGv4GNxY4LG/tllZEiGr7U EuFsIt501SlLfl0R1qhm6hIo2cjikGsLha/tbqYK3tgSvBzt18Tf/4PQVxfYIZEn0by2NO vCiPqukWQ5s9fBTimU+2nChP09cQXpiJuSliNPX5PK1CcVw5G3aq5eQ1Y7lE8J/BA172ac cIBlQtJUAf1R/Aqk/bvbjjVqOcp2WgpHU8JU1t9rpSSa8gsq3jiYSZaDu6fyO/4z6eWcdM wCfsix4+1/bzTEgOCc03CPDyBOq71xHbPyGAnwX9MzqqttS9KvkSLdEIsROxkg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694686266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/MnE2aH34GLPrx8+FTb7glnswim8nxG7NBcf4eJHnHo=; b=gDV6eucE+Rn163Zak2itUgvXtEkO2p2Ehlu/GNpoHLGEjcWZlGddXIxizTbVkzR2J0NLGc 8EbO83vdomdJp+E5vxDawKcZ3s386D6IRc1PdlFp6KBy1Kt0MpSQB9Fah+8CK36YKO2n62 0l4u7Fef4+j0xn7ylsDhtrFo6HaIeF82X87Vb9Sx3RofEwz8txuzuZOafEQRz6IXTKxE+O 73Kt0q8HIbRjF51GNjQCCItR0SbZacO5CHqzzDopBNLOF0cqJyk/zHw4Mzs9Z+Zx7IVjTy IfqBXIz3SV8tI3YQfu8w0rGdVL72uWh98YYzsDXVbzmFeez33asomYn8r4TUAw== 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 4RmY4V0mFKzsrv; Thu, 14 Sep 2023 10:11:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EAB64Y004332; Thu, 14 Sep 2023 10:11:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EAB6nY004329; Thu, 14 Sep 2023 10:11:06 GMT (envelope-from git) Date: Thu, 14 Sep 2023 10:11:06 GMT Message-Id: <202309141011.38EAB6nY004329@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Wolfram Schneider <wosch@FreeBSD.org> Subject: git: dd0d16cc4d99 - main - correct FreeBSD release List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wosch X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: dd0d16cc4d99d79f3517f0ce7822c8ea48e900e7 Auto-Submitted: auto-generated The branch main has been updated by wosch: URL: https://cgit.FreeBSD.org/src/commit/?id=dd0d16cc4d99d79f3517f0ce7822c8ea48e900e7 commit dd0d16cc4d99d79f3517f0ce7822c8ea48e900e7 Author: Wolfram Schneider <wosch@FreeBSD.org> AuthorDate: 2023-09-14 10:10:35 +0000 Commit: Wolfram Schneider <wosch@FreeBSD.org> CommitDate: 2023-09-14 10:10:35 +0000 correct FreeBSD release PR: 273690 --- share/man/man4/mlx5ib.4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man4/mlx5ib.4 b/share/man/man4/mlx5ib.4 index 939239ab5d85..71d634b2f695 100644 --- a/share/man/man4/mlx5ib.4 +++ b/share/man/man4/mlx5ib.4 @@ -113,7 +113,7 @@ email all the specific information related to the issue to The .Nm device driver first appeared in -.Fx 12.x . +.Fx 12.0 . .Sh AUTHORS .An -nosplit The From nobody Thu Sep 14 10:14:24 2023 X-Original-To: dev-commits-src-main@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 4RmY8J51dyz4tPnk; Thu, 14 Sep 2023 10:14: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmY8J4c15z4mtd; Thu, 14 Sep 2023 10:14:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694686464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TY6PxVNoLXLl9L4f/iGuPvsc44hODobi1l+sMt0W0kw=; b=yg9emgu2woAuFnNChM9yLsi5d0uyPNG6Nd6c7JHoKooiHKiPKEc9S03cv/7ABLyxx2qgIF JLDdOieEtAoWTRXd0ckiG3NmNsBSEPsM2mUe2HHMcZl1B7HrxEo2ipq+yb4jKAItAwvnac 8sjVx/YD9kcCI228AwkUBfJW8yAHjFDVdzkK/yfqEymnn9CgSeD6+MLMPGuNTfChPVrsmr h8t8d+kwEAprP4a1vMETWu/hzAWO2ujdPkB1wf4aB7LkrRiFI+JP2rauQKidD9y3Oius2w MK1B54ROR5wHZZPz2duApHbisSWzilOA6b0/85FOD707l1U05/466WqnuhNEAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694686464; a=rsa-sha256; cv=none; b=OmSjyiakW822urNO6KGWwceuvf03Z1izP9kIA72zdrTNm81r+6PPm2fDMRHiLRywigrzYx 7eQHURmVAhcnz+ubBfU3BA1u5QDAq7lGl+0fH0h/ZrW4v+Kzb9fPwYo5Bxi4ph5shlyjQX J14LTIWm8XVLpwL/ZTMB5CaBXRDj0KeCnj58/AlgD0BPJNj4ZNE8riDHer3hxpvmUUJOSh Ypwl1EUHEYQT044pX6bUWLfnQEBNkEDNHm9kedapdkIqG5ohlbcIf7qBSLAtDSC7OQaR27 U3e+52NgYY/O8CQFZ7lrtD6uwqkdbZErjRoG46K+jVAbkc+WX5wUE87Sceq9yg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694686464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TY6PxVNoLXLl9L4f/iGuPvsc44hODobi1l+sMt0W0kw=; b=HnmacDYNpSMiy2A4J3m3KiAe3VPd+Y7DXH17bchAehqzqYsVy8ol/d/T9FTmYNsG2bobnm 7dUT63bcUPqKvWbe+DKNz/SXswISWUozGd0P04m+xAthY609k0pXmCBcnnYu92piQA/ivA r2xV5M3URlQBXw9VPQEjwlrMi6DsFZ9L2DKAFrTrqTSD45LIns05ybVd1ECE30cbtWCZY6 q4Xhww+SbEDKzPK2ag0Yrd+0jWeyOCcmy9u0VwtWY6e/uv8ZxbXYYG8hPS+4+v+GTrwRz2 mRNk8N5xKjm4H2DFjuGpmBhaRIKV4ohyNgagmE9B+PeRxDz8fd/NKA84+HTXqA== 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 4RmY8J3g9dzsgn; Thu, 14 Sep 2023 10:14:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EAEOpj011003; Thu, 14 Sep 2023 10:14:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EAEOjG011000; Thu, 14 Sep 2023 10:14:24 GMT (envelope-from git) Date: Thu, 14 Sep 2023 10:14:24 GMT Message-Id: <202309141014.38EAEOjG011000@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost <kp@FreeBSD.org> Subject: git: 79278872ad96 - main - arp(8): fix by-interface and by-host filtering when using netlink List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 79278872ad966e5f54805efbeb692c8cbc0306c8 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=79278872ad966e5f54805efbeb692c8cbc0306c8 commit 79278872ad966e5f54805efbeb692c8cbc0306c8 Author: R. Christian McDonald <rcm@rcm.sh> AuthorDate: 2023-09-14 07:07:24 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2023-09-14 08:14:10 +0000 arp(8): fix by-interface and by-host filtering when using netlink arp(8) has traditionally supported filtering by interface via -i and by hostname. However, this functionality was omitted from the initial netlink-ification of arp. This patch re-introduces this filtering functionality. This patch also improves by-interface filtering by storing and using the ifindex of the requested interface for filtering instead of comparing interface name strings Reviewed by: melifaro Sponsored by: Rubicon Communications, LLC ("Netgate") --- usr.sbin/arp/arp.c | 34 +++++++++++++++------------------- usr.sbin/arp/arp.h | 2 ++ usr.sbin/arp/arp_netlink.c | 8 ++++++++ 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/usr.sbin/arp/arp.c b/usr.sbin/arp/arp.c index 02b2bb1ac4f8..9a19d792f788 100644 --- a/usr.sbin/arp/arp.c +++ b/usr.sbin/arp/arp.c @@ -98,8 +98,6 @@ static int get_ether_addr(in_addr_t ipaddr, struct ether_addr *hwaddr); static int set_rtsock(struct sockaddr_in *dst, struct sockaddr_dl *sdl_m, char *host); -static char *rifname; - struct if_nameindex *ifnameindex; struct arp_opts opts = {}; @@ -146,7 +144,7 @@ main(int argc, char *argv[]) SETFUNC(F_FILESET); break; case 'i': - rifname = optarg; + opts.rifname = optarg; break; case '?': default: @@ -157,15 +155,15 @@ main(int argc, char *argv[]) if (!func) func = F_GET; - if (rifname) { + if (opts.rifname) { if (func != F_GET && !(func == F_DELETE && opts.aflag)) xo_errx(1, "-i not applicable to this operation"); - if (if_nametoindex(rifname) == 0) { + if ((opts.rifindex = if_nametoindex(opts.rifname)) == 0) { if (errno == ENXIO) xo_errx(1, "interface %s does not exist", - rifname); + opts.rifname); else - xo_err(1, "if_nametoindex(%s)", rifname); + xo_err(1, "if_nametoindex(%s)", opts.rifname); } } switch (func) { @@ -179,7 +177,7 @@ main(int argc, char *argv[]) xo_open_list("arp-cache"); struct in_addr all_addrs = {}; - print_entries(0, all_addrs); + print_entries(opts.rifindex, all_addrs); xo_close_list("arp-cache"); xo_close_container("arp"); @@ -448,13 +446,13 @@ get(char *host) xo_open_container("arp"); xo_open_list("arp-cache"); - found = print_entries(0, addr->sin_addr); + found = print_entries(opts.rifindex, addr->sin_addr); if (found == 0) { xo_emit("{d:hostname/%s} ({d:ip-address/%s}) -- no entry", host, inet_ntoa(addr->sin_addr)); - if (rifname) - xo_emit(" on {d:interface/%s}", rifname); + if (opts.rifname) + xo_emit(" on {d:interface/%s}", opts.rifname); xo_emit("\n"); } @@ -552,7 +550,6 @@ search(u_long addr, action_fn *action) struct rt_msghdr *rtm; struct sockaddr_in *sin2; struct sockaddr_dl *sdl; - char ifname[IF_NAMESIZE]; int st, found_entry = 0; mib[0] = CTL_NET; @@ -586,14 +583,13 @@ search(u_long addr, action_fn *action) rtm = (struct rt_msghdr *)next; sin2 = (struct sockaddr_in *)(rtm + 1); sdl = (struct sockaddr_dl *)((char *)sin2 + SA_SIZE(sin2)); - if (rifname && if_indextoname(sdl->sdl_index, ifname) && - strcmp(ifname, rifname)) + if (opts.rifindex && + (opts.rifindex != sdl->sdl_index)) continue; - if (addr) { - if (addr != sin2->sin_addr.s_addr) - continue; - found_entry = 1; - } + if (addr && + (addr != sin2->sin_addr.s_addr)) + continue; + found_entry = 1; (*action)(sdl, sin2, rtm); } free(buf); diff --git a/usr.sbin/arp/arp.h b/usr.sbin/arp/arp.h index a7de3a1a3024..487863be43e7 100644 --- a/usr.sbin/arp/arp.h +++ b/usr.sbin/arp/arp.h @@ -10,6 +10,8 @@ struct arp_opts { bool nflag; time_t expire_time; int flags; + char *rifname; + unsigned int rifindex; }; extern struct arp_opts opts; diff --git a/usr.sbin/arp/arp_netlink.c b/usr.sbin/arp/arp_netlink.c index 4e5c8f3d9940..40b5367f330d 100644 --- a/usr.sbin/arp/arp_netlink.c +++ b/usr.sbin/arp/arp_netlink.c @@ -281,6 +281,7 @@ print_entries_nl(uint32_t ifindex, struct in_addr addr) struct ndmsg *ndmsg = snl_reserve_msg_object(&nw, struct ndmsg); if (ndmsg != NULL) { ndmsg->ndm_family = AF_INET; + /* let kernel filter results by interface if provided */ ndmsg->ndm_ifindex = ifindex; } @@ -296,6 +297,7 @@ print_entries_nl(uint32_t ifindex, struct in_addr addr) while ((hdr = snl_read_reply_multi(&ss_req, nlmsg_seq, &e)) != NULL) { struct snl_parsed_neigh neigh = {}; + struct sockaddr_in *neighaddr; if (!snl_parse_nlmsg(&ss_req, hdr, &snl_rtm_neigh_parser, &neigh)) continue; @@ -307,6 +309,12 @@ print_entries_nl(uint32_t ifindex, struct in_addr addr) continue; } + /* filter results based on host if provided */ + neighaddr = (struct sockaddr_in *)neigh.nda_dst; + if (addr.s_addr && + (addr.s_addr != neighaddr->sin_addr.s_addr)) + continue; + print_entry(&neigh, &link); count++; snl_clear_lb(&ss_req); From nobody Thu Sep 14 10:32:13 2023 X-Original-To: dev-commits-src-main@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 4RmYXw2D6vz4sW6l; Thu, 14 Sep 2023 10:32:16 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.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 "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmYXw1hGlz4rSc; Thu, 14 Sep 2023 10:32:16 +0000 (UTC) (envelope-from kp@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694687536; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=coVzIuJ7+kMrfrOLE2aBiTMD7ag8GSGB8EOSHGwvRs4=; b=K+3rnVeyhral7JEzJ+IDGrTQAnw4kIUTCoLbW/V6ta6bF+XN1JGP0Sc0qwbn66hz3owE7E StzB6kVPcwe29CdpVwnp1rkdByYbCTTCrJ4BNzxuS4/PX+odmEoQqaHzxtl33VxG+YWhT0 cXdmXwg3glfF9Vawo00nneLtyNpLN5kspVEjMyMH85i1s9lsa22jVZxbmzImLy7DFYEyim OpCiyBhUa9i9Z76kg8Esoy7iBYFtKI7QZzCggmgWCQcG6HRAsDQRTbbZVvGmt+K3ZsfYhj qAsZXwC/Da799Gg31g59ax37WUUNOP6KlqdcBSeiAWoFGbs++zGz0GqHXgB9nA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694687536; a=rsa-sha256; cv=none; b=XWSCKx0RCWhO6pvbN9KrAqiKtuFP1HrjxlhFQq7L5TIjkVCsiZI8oRrK/TExEkkFizq8LR jbT3PfKOGId+Sp+Kz+64CrHFKB5VzjCpp4dBfvhq9XXoeVCZVJer4r6UARyyOE4VhjpuG0 wtVXQM2v4cBUSMH2aR3JI/dUxlUXiyc6I+1MzSX4AzekLKuK85WEmSsTOxf+Jzfj+NM2AS MT4M8E7TxWz1ifuJWRtVypQ5XMnJjRW05vUbJJ79oFl9adKuVaQl0sAlRIp3ZAWcAxsdvT 9BQqILEU+HxEHvfSa+3P4nRvI5WVlerGUEpBz7bL7Mqo6Y4BLQdD/77JKLv73w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694687536; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=coVzIuJ7+kMrfrOLE2aBiTMD7ag8GSGB8EOSHGwvRs4=; b=y1dunaVRwgRW2uXQO2gQEWQCL1gFZE0G2HMPlA5XsHQh3aKFqov3yxopsjSuJ/efRNWJba UfFG3o6RZPXKsj20gvZl9WwM4VE7RDj4zA6ScFhJ2JfGSGsb+0bhustET3eetdh8SUqbiw iBYFtJZtwrhTzIrsomfUONprxw2QkD6y8IxaZEMgizLIwaSuaSphr5ttbH09hqr7dhmu68 /WAkwB3nuilL7zW7rQ3Ae3uuGEsS27X/daLxm9ip2r5NEO9Y6U4TfKRxBJ4k3Fua0EKMDX Ctw1fy+HPdHZ8c1BUL3VH+DRBruaezDEifnPHYEVBLqYCfygH2/Ky7/pVM7DDg== Received: from venus.codepro.be (venus.codepro.be [5.9.86.228]) (using TLSv1.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 (2048 bits) client-digest SHA256) (Client CN "mx1.codepro.be", Issuer "R3" (verified OK)) (Authenticated sender: kp) by smtp.freebsd.org (Postfix) with ESMTPSA id 4RmYXw01qBz1MSH; Thu, 14 Sep 2023 10:32:15 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: by venus.codepro.be (Postfix, authenticated sender kp) id 567EF7B66; Thu, 14 Sep 2023 12:32:14 +0200 (CEST) From: Kristof Provost <kp@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 79278872ad96 - main - arp(8): fix by-interface and by-host filtering when using netlink Date: Thu, 14 Sep 2023 11:32:13 +0100 X-Mailer: MailMate (1.14r5937) Message-ID: <006642B7-EA17-4292-94A4-0562FC94EC71@FreeBSD.org> In-Reply-To: <202309141014.38EAEOjG011000@gitrepo.freebsd.org> References: <202309141014.38EAEOjG011000@gitrepo.freebsd.org> List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 14 Sep 2023, at 11:14, Kristof Provost wrote: > The branch main has been updated by kp: > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D79278872ad966e5f54805efb= eb692c8cbc0306c8 > > commit 79278872ad966e5f54805efbeb692c8cbc0306c8 > Author: R. Christian McDonald <rcm@rcm.sh> > AuthorDate: 2023-09-14 07:07:24 +0000 > Commit: Kristof Provost <kp@FreeBSD.org> > CommitDate: 2023-09-14 08:14:10 +0000 > > arp(8): fix by-interface and by-host filtering when using netlink > > arp(8) has traditionally supported filtering by interface via -i an= d > by hostname. However, this functionality was omitted from the initi= al > netlink-ification of arp. This patch re-introduces this filtering > functionality. > > This patch also improves by-interface filtering by storing and usin= g the > ifindex of the requested interface for filtering instead of compari= ng > interface name strings > > Reviewed by: melifaro > Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D41839 =E2=80=94 Kristof From nobody Thu Sep 14 12:12:04 2023 X-Original-To: dev-commits-src-main@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 4Rmbm43Gb4z4t4Pm; Thu, 14 Sep 2023 12:12: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmbm42qyqz3SPL; Thu, 14 Sep 2023 12:12:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694693524; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iswkvVUNN6fbkq8ilkWfgWJuyr2HT+QhntWx5gdjLk8=; b=P6JMXs41D734vBXFoqLbLzkze7z9V9FUJFmGOV/aonwD1uBGWMOEk6njCUcfmCl7O0jEOX 0N97sEI1D4CMO2TzVbpBslBkdwiqMUIAC340xiSi8GxAnFYcFrOl27+pAhNLVqPakVAAPs Tw66HlnAolrzkJoSiMyuqVWDq0UgLDQMaadsrft+V8da2UBh5lFqIYtjSacrbW7RS5E5F9 r8AXQdBG16bmm/sm2lk41l0sNlAMXZCQJxlPaWCiyuhsNpKMEYbaYgEXj3xHseuUoihkH+ I/udqphw4nlBVZBdfZJsIbJBUbe6jPIDzIG6+XjuymInDEWoeovcftLqm/0otQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694693524; a=rsa-sha256; cv=none; b=oKCyMsZK1j3xpGc/aRqkWeBC+Of/Djl85lLhTvUg/PDDcamI6UTCYWp0cYGF9iDKRGMvBw gwikg4MaeMCxkPt/GO+AU7+T4feQyHlomupSiavIS4Es1NyU7GcVUuiNrvTDEhfG15vCOC wWZm0rWQ3NSnEgnFdZPWWHHTXT2M39mjfCn9N7Yu0lwa5phEXN3KXmSTP5Ufgx/OsbsFsB EQ4/NtRDnbnOCg7+k1STgtaoaoUpIxWdnvR4yRYOuHzC7iLgJFI+2j6wOcamNcKCDXXQJc l92bOYRjBAdQ+8daLGZ2QnHInHe5UOImdYEaEx/CEdG6GOV4EthMosQt5Hmd/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694693524; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iswkvVUNN6fbkq8ilkWfgWJuyr2HT+QhntWx5gdjLk8=; b=Lw4K0niCL+PFBwibON74pVXmkLm4QNZHuxwvKZ9D98SC8FfeUFENjw4pC5nBhvxGjsvcrb No11+bCC4Ir9EG17tw5Xb+Q7CAbU7KuZo/1dg2TtzJuY+d1P8gdgsI3YfdNPT6uK8wfa/7 GrFj83R8SgAaHboaVOseULpkTzAnfeJ8GCmMcIFfi2I5m14tff2bcVuGh7sTgNA6TlsbEE BlDtXGqfcAJWlgjrnNu7kAoh5KdgiCF+Otnd/UhKRLTPaiq/IdfLQaL+Nne5J+kmjXUjrG JhqK195w9Vi7vH1jLeNSfd/jGzdMWNtpo+UT9FeWxda23LMCdWvroByvMiL1+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 4Rmbm41vzTzx26; Thu, 14 Sep 2023 12:12:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38ECC4eH009241; Thu, 14 Sep 2023 12:12:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ECC4Am009223; Thu, 14 Sep 2023 12:12:04 GMT (envelope-from git) Date: Thu, 14 Sep 2023 12:12:04 GMT Message-Id: <202309141212.38ECC4Am009223@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Wei Hu <whu@FreeBSD.org> Subject: git: b167e449c8db - main - mana: add lro and tso stat counters List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: whu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b167e449c8db01f082691503fb5c1255ad5750eb Auto-Submitted: auto-generated The branch main has been updated by whu: URL: https://cgit.FreeBSD.org/src/commit/?id=b167e449c8db01f082691503fb5c1255ad5750eb commit b167e449c8db01f082691503fb5c1255ad5750eb Author: Wei Hu <whu@FreeBSD.org> AuthorDate: 2023-09-14 11:56:20 +0000 Commit: Wei Hu <whu@FreeBSD.org> CommitDate: 2023-09-14 12:10:49 +0000 mana: add lro and tso stat counters Add a few stat counters for tso and lro. MFC after: 3 days Sponsored by: Microsoft --- sys/dev/mana/mana.h | 5 ++ sys/dev/mana/mana_en.c | 12 ++++ sys/dev/mana/mana_sysctl.c | 136 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 153 insertions(+) diff --git a/sys/dev/mana/mana.h b/sys/dev/mana/mana.h index 9a22ea87baa3..ab394f3203ad 100644 --- a/sys/dev/mana/mana.h +++ b/sys/dev/mana/mana.h @@ -170,6 +170,9 @@ struct mana_txq { struct mtx txq_mtx; char txq_mtx_name[16]; + uint64_t tso_pkts; + uint64_t tso_bytes; + struct task enqueue_task; struct taskqueue *enqueue_tq; @@ -423,6 +426,8 @@ struct mana_rxq { uint32_t buf_index; + uint64_t lro_tried; + uint64_t lro_failed; struct mana_stats stats; /* MUST BE THE LAST MEMBER: diff --git a/sys/dev/mana/mana_en.c b/sys/dev/mana/mana_en.c index 064b28fa94a4..812a42e51dfc 100644 --- a/sys/dev/mana/mana_en.c +++ b/sys/dev/mana/mana_en.c @@ -501,6 +501,7 @@ mana_xmit(struct mana_txq *txq) struct gdma_queue *gdma_sq; struct mana_cq *cq; int err, len; + bool is_tso; gdma_sq = txq->gdma_sq; cq = &apc->tx_qp[txq->idx].tx_cq; @@ -578,7 +579,10 @@ mana_xmit(struct mana_txq *txq) pkg.wqe_req.flags = 0; pkg.wqe_req.client_data_unit = 0; + is_tso = false; if (mbuf->m_pkthdr.csum_flags & CSUM_TSO) { + is_tso = true; + if (MANA_L3_PROTO(mbuf) == ETHERTYPE_IP) pkg.tx_oob.s_oob.is_outer_ipv4 = 1; else @@ -641,6 +645,11 @@ mana_xmit(struct mana_txq *txq) packets++; bytes += len; + + if (is_tso) { + txq->tso_pkts++; + txq->tso_bytes += len; + } } counter_enter(); @@ -1697,9 +1706,12 @@ mana_rx_mbuf(struct mbuf *mbuf, struct mana_rxcomp_oob *cqe, do_if_input = true; if ((if_getcapenable(ndev) & IFCAP_LRO) && do_lro) { + rxq->lro_tried++; if (rxq->lro.lro_cnt != 0 && tcp_lro_rx(&rxq->lro, mbuf, 0) == 0) do_if_input = false; + else + rxq->lro_failed++; } if (do_if_input) { if_input(ndev, mbuf); diff --git a/sys/dev/mana/mana_sysctl.c b/sys/dev/mana/mana_sysctl.c index 79a4867a0abf..d03ebe44ab31 100644 --- a/sys/dev/mana/mana_sysctl.c +++ b/sys/dev/mana/mana_sysctl.c @@ -46,6 +46,96 @@ SYSCTL_INT(_hw_mana, OID_AUTO, log_level, CTLFLAG_RWTUN, SYSCTL_CONST_STRING(_hw_mana, OID_AUTO, driver_version, CTLFLAG_RD, DRV_MODULE_VERSION, "MANA driver version"); +static int +mana_sysctl_rx_stat_agg_u64(SYSCTL_HANDLER_ARGS) +{ + struct mana_port_context *apc = arg1; + int offset = arg2, i, err; + struct mana_rxq *rxq; + uint64_t stat; + + stat = 0; + for (i = 0; i < apc->num_queues; i++) { + rxq = apc->rxqs[i]; + stat += *((uint64_t *)((uint8_t *)rxq + offset)); + } + + err = sysctl_handle_64(oidp, &stat, 0, req); + if (err || req->newptr == NULL) + return err; + + for (i = 0; i < apc->num_queues; i++) { + rxq = apc->rxqs[i]; + *((uint64_t *)((uint8_t *)rxq + offset)) = 0; + } + return 0; +} + +static int +mana_sysctl_rx_stat_u16(SYSCTL_HANDLER_ARGS) +{ + struct mana_port_context *apc = arg1; + int offset = arg2, err; + struct mana_rxq *rxq; + uint64_t stat; + uint16_t val; + + rxq = apc->rxqs[0]; + val = *((uint16_t *)((uint8_t *)rxq + offset)); + stat = val; + + err = sysctl_handle_64(oidp, &stat, 0, req); + if (err || req->newptr == NULL) + return err; + else + return 0; +} + +static int +mana_sysctl_rx_stat_u32(SYSCTL_HANDLER_ARGS) +{ + struct mana_port_context *apc = arg1; + int offset = arg2, err; + struct mana_rxq *rxq; + uint64_t stat; + uint32_t val; + + rxq = apc->rxqs[0]; + val = *((uint32_t *)((uint8_t *)rxq + offset)); + stat = val; + + err = sysctl_handle_64(oidp, &stat, 0, req); + if (err || req->newptr == NULL) + return err; + else + return 0; +} + +static int +mana_sysctl_tx_stat_agg_u64(SYSCTL_HANDLER_ARGS) +{ + struct mana_port_context *apc = arg1; + int offset = arg2, i, err; + struct mana_txq *txq; + uint64_t stat; + + stat = 0; + for (i = 0; i < apc->num_queues; i++) { + txq = &apc->tx_qp[i].txq; + stat += *((uint64_t *)((uint8_t *)txq + offset)); + } + + err = sysctl_handle_64(oidp, &stat, 0, req); + if (err || req->newptr == NULL) + return err; + + for (i = 0; i < apc->num_queues; i++) { + txq = &apc->tx_qp[i].txq; + *((uint64_t *)((uint8_t *)txq + offset)) = 0; + } + return 0; +} + void mana_sysctl_add_port(struct mana_port_context *apc) { @@ -99,6 +189,52 @@ mana_sysctl_add_port(struct mana_port_context *apc) CTLFLAG_RD, &port_stats->rx_drops, "Receive packet drops"); SYSCTL_ADD_COUNTER_U64(ctx, stats_list, OID_AUTO, "tx_drops", CTLFLAG_RD, &port_stats->tx_drops, "Transmit packet drops"); + + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_queued", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_STATS, apc, + __offsetof(struct mana_rxq, lro.lro_queued), + mana_sysctl_rx_stat_agg_u64, "LU", "LRO queued"); + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_flushed", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_STATS, apc, + __offsetof(struct mana_rxq, lro.lro_flushed), + mana_sysctl_rx_stat_agg_u64, "LU", "LRO flushed"); + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_bad_csum", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_STATS, apc, + __offsetof(struct mana_rxq, lro.lro_bad_csum), + mana_sysctl_rx_stat_agg_u64, "LU", "LRO bad checksum"); + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_tried", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc, + __offsetof(struct mana_rxq, lro_tried), + mana_sysctl_rx_stat_agg_u64, "LU", "LRO tried"); + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_failed", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc, + __offsetof(struct mana_rxq, lro_failed), + mana_sysctl_rx_stat_agg_u64, "LU", "LRO failed"); + + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "lro_ackcnt_lim", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc, + __offsetof(struct mana_rxq, lro.lro_ackcnt_lim), + mana_sysctl_rx_stat_u16, + "LU", "Max # of ACKs to be aggregated by LRO"); + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "lro_length_lim", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc, + __offsetof(struct mana_rxq, lro.lro_length_lim), + mana_sysctl_rx_stat_u32, + "LU", "Max len of aggregated data in byte by LRO"); + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "lro_cnt", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc, + __offsetof(struct mana_rxq, lro.lro_cnt), + mana_sysctl_rx_stat_u32, + "LU", "Max # or LRO packet count"); + + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "tx_tso_packets", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc, + __offsetof(struct mana_txq, tso_pkts), + mana_sysctl_tx_stat_agg_u64, "LU", "TSO packets"); + SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "tx_tso_bytes", + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc, + __offsetof(struct mana_txq, tso_bytes), + mana_sysctl_tx_stat_agg_u64, "LU", "TSO bytes"); } void From nobody Thu Sep 14 15:10:00 2023 X-Original-To: dev-commits-src-main@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 4RmgjP00Nzz4sd5g; Thu, 14 Sep 2023 15:10: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmgjN6hXrz4bdZ; Thu, 14 Sep 2023 15:10:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694704200; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eeAvdgWOLA8bOJcMLyMF+oyYqZRtTHtEXVBtne3XgdY=; b=wbIvOMF49K07mTrGoGK73TP7kkpQP29y492vEGqNYZC50ecaO6LURdAunUApWhM+zghr7A EnmP1mNTZT783PeQfzsbirpZmsvSrNkdljBQMQHCzkHKAdouRkeWpZreIFHs1MHi4iVjwi D+pehDNmPjxUKulp2fQrI4RavL7pAyX06OLZ3AzS/JTvBYB66diDuU7QzdeC+NFxNkyNVt ueEn9beVM3Xd4CksSQd379wRcY0iRHtW7C8wVY2nBWmDU7sm9Hr8IWMrZMPguuPdGUOeyI JsUjR9FC5AI69QVQ3C7zOYirZpQhG75rvRpDlDniJFuxkw7TuuCgZ6ZmoBZiGg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694704200; a=rsa-sha256; cv=none; b=cV5jNqYi70RsNY+92+Z0uAeCeJ5vOD4t6ivVEaxsJfGy2F6A8S73wCK2XKdjNmo46Aqt34 5mfmf+Tm9V2YMqd2nLAKzy05KyH8TAnv2lBbhjtoPz//iSJEjmcZLpDMxtWHIAtDpAzHx1 lHarVik/VEbafuPxmDK4VYFVhij/T38Ik8e/W5hwa/L3ItFdRMxBg01gkl44fxBgQ2m7LR kYnN0cV4wLnAblSDXO8mNcRp2ugNCv0y7i2lrnbQH55CrDJrSjfgF0513hrP2WxSd9KOZ8 qMzPWsDh/gg8mJpzWxhykFpIrgbklPXQs3Yy/Bmg+C+CT/W4rbfw91F25kQgBg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694704200; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eeAvdgWOLA8bOJcMLyMF+oyYqZRtTHtEXVBtne3XgdY=; b=BccSfVH3GzQK6lyro8dE2aU4V7SkSRdgO+wai0FSasBb4tNr37HxwKqCL2QdDzgPntFAlh wZ/eOX4coGEcRhqwbeHtQn7qghyguCFxgvqGMOsFWi1DRrs6stBj1x0VW3NTXLoWZp4gU7 P/2mP3DtwO1NFyG9/RRbUYSw86vrVKBlGAJRnDhY3c07Z58dWf6zEARySKTAeRUunoSqvq xteotysu8wK/3zbLwQKHhpTS99NwYTWvhdVjMcin6ldo/jXP48CVKeMt3p03iAnClmTbcg S7xG7jKsKDGpmN/y5iL2JJBULzMX+tqlNpLxTjuDQBDpyNCarczoj1nAfa9TIA== 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 4RmgjN5fHRz127K; Thu, 14 Sep 2023 15:10:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EFA0Q2098866; Thu, 14 Sep 2023 15:10:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EFA0Y4098837; Thu, 14 Sep 2023 15:10:00 GMT (envelope-from git) Date: Thu, 14 Sep 2023 15:10:00 GMT Message-Id: <202309141510.38EFA0Y4098837@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: 74be676d8774 - main - vfs: drop one vnode list lock trip during vnlru free recycle List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 74be676d87745eb727642f6f8329236c848929d5 Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=74be676d87745eb727642f6f8329236c848929d5 commit 74be676d87745eb727642f6f8329236c848929d5 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-14 14:35:40 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-14 15:03:03 +0000 vfs: drop one vnode list lock trip during vnlru free recycle vnlru_free_impl would take the lock prior to returning even though most frequent caller does not need it. Unsurprisingly vnode_list mtx is the primary bottleneck when recycling and avoiding the useless lock trip helps. Setting maxvnodes to 400000 and running 20 parallel finds each with a dedicated directory tree of 1 million vnodes in total: before: 4.50s user 1225.71s system 1979% cpu 1:02.14 total after: 4.20s user 806.23s system 1973% cpu 41.059 total That's 34% reduction in total real time. With this the block *remains* the primary bottleneck when running on ZFS. --- sys/kern/vfs_subr.c | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 1c6827ba0587..80ec15f78028 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1290,13 +1290,14 @@ vnlru_free_impl(int count, struct vfsops *mnt_op, struct vnode *mvp) mtx_assert(&vnode_list_mtx, MA_OWNED); if (count > max_vnlru_free) count = max_vnlru_free; + if (count == 0) { + mtx_unlock(&vnode_list_mtx); + return (0); + } ocount = count; retried = false; vp = mvp; for (;;) { - if (count == 0) { - break; - } vp = TAILQ_NEXT(vp, v_vnodelist); if (__predict_false(vp == NULL)) { /* @@ -1319,6 +1320,7 @@ vnlru_free_impl(int count, struct vfsops *mnt_op, struct vnode *mvp) */ TAILQ_REMOVE(&vnode_list, mvp, v_vnodelist); TAILQ_INSERT_TAIL(&vnode_list, mvp, v_vnodelist); + mtx_unlock(&vnode_list_mtx); break; } if (__predict_false(vp->v_type == VMARKER)) @@ -1366,18 +1368,28 @@ vnlru_free_impl(int count, struct vfsops *mnt_op, struct vnode *mvp) */ vtryrecycle(vp); count--; + if (count == 0) { + break; + } mtx_lock(&vnode_list_mtx); vp = mvp; } + mtx_assert(&vnode_list_mtx, MA_NOTOWNED); return (ocount - count); } +/* + * XXX: returns without vnode_list_mtx locked! + */ static int vnlru_free_locked(int count) { + int ret; mtx_assert(&vnode_list_mtx, MA_OWNED); - return (vnlru_free_impl(count, NULL, vnode_list_free_marker)); + ret = vnlru_free_impl(count, NULL, vnode_list_free_marker); + mtx_assert(&vnode_list_mtx, MA_NOTOWNED); + return (ret); } void @@ -1389,7 +1401,7 @@ vnlru_free_vfsops(int count, struct vfsops *mnt_op, struct vnode *mvp) VNPASS(mvp->v_type == VMARKER, mvp); mtx_lock(&vnode_list_mtx); vnlru_free_impl(count, mnt_op, mvp); - mtx_unlock(&vnode_list_mtx); + mtx_assert(&vnode_list_mtx, MA_NOTOWNED); } struct vnode * @@ -1534,7 +1546,7 @@ vnlru_under_unlocked(u_long rnumvnodes, u_long limit) } static void -vnlru_kick(void) +vnlru_kick_locked(void) { mtx_assert(&vnode_list_mtx, MA_OWNED); @@ -1544,6 +1556,15 @@ vnlru_kick(void) } } +static void +vnlru_kick(void) +{ + + mtx_lock(&vnode_list_mtx); + vnlru_kick_locked(); + mtx_unlock(&vnode_list_mtx); +} + static void vnlru_proc(void) { @@ -1574,6 +1595,7 @@ vnlru_proc(void) */ if (rnumvnodes > desiredvnodes) { vnlru_free_locked(rnumvnodes - desiredvnodes); + mtx_lock(&vnode_list_mtx); rnumvnodes = atomic_load_long(&numvnodes); } /* @@ -1751,6 +1773,7 @@ vn_alloc_hard(struct mount *mp) rnumvnodes = atomic_load_long(&numvnodes); if (rnumvnodes + 1 < desiredvnodes) { vn_alloc_cyclecount = 0; + mtx_unlock(&vnode_list_mtx); goto alloc; } rfreevnodes = vnlru_read_freevnodes(); @@ -1770,22 +1793,26 @@ vn_alloc_hard(struct mount *mp) */ if (vnlru_free_locked(1) > 0) goto alloc; + mtx_assert(&vnode_list_mtx, MA_NOTOWNED); if (mp == NULL || (mp->mnt_kern_flag & MNTK_SUSPEND) == 0) { /* * Wait for space for a new vnode. */ - vnlru_kick(); + mtx_lock(&vnode_list_mtx); + vnlru_kick_locked(); vn_alloc_sleeps++; msleep(&vnlruproc_sig, &vnode_list_mtx, PVFS, "vlruwk", hz); if (atomic_load_long(&numvnodes) + 1 > desiredvnodes && vnlru_read_freevnodes() > 1) vnlru_free_locked(1); + else + mtx_unlock(&vnode_list_mtx); } alloc: + mtx_assert(&vnode_list_mtx, MA_NOTOWNED); rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1; if (vnlru_under(rnumvnodes, vlowat)) vnlru_kick(); - mtx_unlock(&vnode_list_mtx); return (uma_zalloc_smr(vnode_zone, M_WAITOK)); } From nobody Thu Sep 14 15:30:20 2023 X-Original-To: dev-commits-src-main@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 4Rmh8r68gsz4sjZQ; Thu, 14 Sep 2023 15:30: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmh8r5X9Hz3CwF; Thu, 14 Sep 2023 15:30:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694705420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iRxnUI2HCnXj66JCCJ7vle4Bfm6a1n/z2l9PISEVIXs=; b=ZHGMIwOYYJWKnbVi1xaeyYNebW/TUV5BOJyxPNf8+KdctoCIz0cVdYQtlONfzBbxCPW4Fy d6yCS//Y4YrXE6fC/+3EdUq1lMGHY46AvwPQLkS/icj9zcRITjyFk/QdymNCvHbG0znrCl 4h3BbCJdxzblOIOROXHa/yn09Pbj4b8uTdqs91TjxB5+sRbcGJgTLYuG3vOs52XsXt7Rrj R+OLB63NYUInBZbqTq/yO9mqagmhC4f7S04XZIHeIrtMbdB4W5u80+K2zU+Fbv0p0gN34S bECr1ZsIuQ1A2TTUelQ2tvyKY9711XqdqjUSRA1Fj1mhDPEn6xokKdbOKCV3dA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694705420; a=rsa-sha256; cv=none; b=QGtFByA4giPl8eMRNPDRgSPoPTQcm2bdtMO5vWJkmBnQAqR9K3Nmr3IzjQrMhU5ADyselK PcBmGFCQ+0Ifbp5h0amKpy9xPM0t7WHtQf156pfMatBzVHRPYdMN6SqvyN+uVqZVklnfev d9DL2J/7DXvLlwLMv1RhlqUDzH5ZE81FCTQiWPkdpVReG/+ERV66Q0e4gIDAtc2NGkj2Vi 4A4UgNk+XJ5afSXtJxOrI/w9wbsIeUtw5oMOUJIs9y6wIpUYFzcfSDR7wuBwN7m8rtAI8a sL6Ds8BupP1H+XXizT1XVnLPZeXjoGgLNkcuv8XgHs7vWol5MJK6zPtTMiSUrw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694705420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iRxnUI2HCnXj66JCCJ7vle4Bfm6a1n/z2l9PISEVIXs=; b=ozSyDTS6zlkdabejbGhJR698ofLkyPIf+F22qtzLhF9tdiOkN/UMwKKH59Mwvh8iXroAd0 dkYLQwsIk+aBhpysw7LAoIvGbbEwF5UB/zhmjfkPOqTUICvSkU54YaHoTZIfkg9UGw1pRg TFFUuSJ1Rg2OxzhOZDWzb00V7OJNhwH22L1d8yoJwExuoJsKy/Ef39YaBbcHxQhlcFkcDZ vB++BD77UgTzIzSCoYFSc4R/Y+QK0v4u0uGhQjQuIYEFMYEYUYMD9LxtkERLk/5bMJB4ew +mi5SkLpEoxvfI/0EhB/vaHjqjqPNybK495/vg2ehy8r6G5n95XL6RpfYnKmkg== 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 4Rmh8r4cPGz12ZS; Thu, 14 Sep 2023 15:30:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EFUKOs038937; Thu, 14 Sep 2023 15:30:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EFUKOr038934; Thu, 14 Sep 2023 15:30:20 GMT (envelope-from git) Date: Thu, 14 Sep 2023 15:30:20 GMT Message-Id: <202309141530.38EFUKOr038934@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste <emaste@FreeBSD.org> Subject: git: 125bbadf6084 - main - x86: Add defines for workaround bits in AMD's MSR "Decode Configuration" List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 125bbadf6084ac341673c9eb1979a740d3d5899a Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=125bbadf6084ac341673c9eb1979a740d3d5899a commit 125bbadf6084ac341673c9eb1979a740d3d5899a Author: Olivier Certner <olce.freebsd@certner.fr> AuthorDate: 2023-09-11 13:10:35 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-09-14 15:24:48 +0000 x86: Add defines for workaround bits in AMD's MSR "Decode Configuration" They are a bit more informative than raw hexadecimal values. While here, sort existing defines of bits for AMD MSRs to match the address order. Reviewed by: kib, emaste Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D41816 --- sys/amd64/amd64/initcpu.c | 5 +++-- sys/x86/include/specialreg.h | 9 +++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/sys/amd64/amd64/initcpu.c b/sys/amd64/amd64/initcpu.c index 4debe89426df..a048c08fc9ae 100644 --- a/sys/amd64/amd64/initcpu.c +++ b/sys/amd64/amd64/initcpu.c @@ -101,7 +101,8 @@ init_amd(void) case 0x10: case 0x12: if ((cpu_feature2 & CPUID2_HV) == 0) - wrmsr(MSR_DE_CFG, rdmsr(MSR_DE_CFG) | 1); + wrmsr(MSR_DE_CFG, rdmsr(MSR_DE_CFG) | + DE_CFG_10H_12H_STACK_POINTER_JUMP_FIX_BIT); break; } @@ -151,7 +152,7 @@ init_amd(void) (cpu_feature2 & CPUID2_HV) == 0) { /* 1021 */ msr = rdmsr(MSR_DE_CFG); - msr |= 0x2000; + msr |= DE_CFG_ZEN_LOAD_STALE_DATA_FIX_BIT; wrmsr(MSR_DE_CFG, msr); /* 1033 */ diff --git a/sys/x86/include/specialreg.h b/sys/x86/include/specialreg.h index 548d6010e7b8..f45990a056c8 100644 --- a/sys/x86/include/specialreg.h +++ b/sys/x86/include/specialreg.h @@ -1162,11 +1162,16 @@ #define MSR_IC_CFG 0xc0011021 /* Instruction Cache Configuration */ #define MSR_DE_CFG 0xc0011029 /* Decode Configuration */ +/* MSR_AMDK8_IPM */ +#define AMDK8_SMIONCMPHALT (1ULL << 27) +#define AMDK8_C1EONCMPHALT (1ULL << 28) + /* MSR_VM_CR related */ #define VM_CR_SVMDIS 0x10 /* SVM: disabled by BIOS */ -#define AMDK8_SMIONCMPHALT (1ULL << 27) -#define AMDK8_C1EONCMPHALT (1ULL << 28) +/* MSR_DE_CFG */ +#define DE_CFG_10H_12H_STACK_POINTER_JUMP_FIX_BIT 0x1 +#define DE_CFG_ZEN_LOAD_STALE_DATA_FIX_BIT 0x2000 /* VIA ACE crypto featureset: for via_feature_rng */ #define VIA_HAS_RNG 1 /* cpu has RNG */ From nobody Thu Sep 14 15:51:15 2023 X-Original-To: dev-commits-src-main@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 4Rmhcz3xd9z4spF1; Thu, 14 Sep 2023 15:51: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmhcz3Qbfz3G75; Thu, 14 Sep 2023 15:51:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694706675; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nF7QjsQ+gBUUvn1BM01WWgEn3HyC95WnUx/mueRTwEU=; b=aaTZzySPIsUMDHxIpxHGUeWi6nlHpoKC0BLQiY0waLuQcTlwKiBQdzH4KkDZPpiUTuLT05 00vTuGx6AlReVDEjUlAMulfQHvyrNjr3bKiy4h5o6ikHwhvNdjXLz3++MKtU3fkkzTAjoy fbVHBe+FiDfCXbvqiOn9o0y9g4LADGFuBQUPPLexltLDFF5gDDMy5MYpvTlpAchf+UTXlf gdkqQjO4F7YIGzqm5xMQ6vcZDKLdq9CwNCUIeJ4FKpYyRIlpW/QiaPwLsjV9tvrNoMq0mQ ue919lEaRFGPDo65QSWr/a8sp8XBbRm3v2Hhyrov2BGrALUQZt5yjsDdhvMzLA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694706675; a=rsa-sha256; cv=none; b=jjirU7pttuVpsOkE0EMnJY3AXenDwsKdRUowBtmyqXS1cRXXksDLxi3q/Uh79p+r+pIdNk qC8Zo6OhUd379dA4Q84l8qOuj7Xh7b9P0msOscjo603WDSAwhQrfEfl3gUTxrS7Zzy1Zc8 RND9d634hQ0SlygoDZoYE1uGcYmaffx2dMufZwf3q6flgiwN82ILKhp3nNlpMzTwc47yPq iFs7VQGeu6GQEh95b6WasXVRU+EiLklIO3wvqCZY1RzmruIj5O5cRIy7tW6HBVIKnaAeWl FSguVRc9P1SPgysNpRGTdG3RoKb79vARAOEFMeaNJaeuAlO7Y1T7AmVPlnyQFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694706675; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nF7QjsQ+gBUUvn1BM01WWgEn3HyC95WnUx/mueRTwEU=; b=SClwY+adzG4Pw20EeQ4gxEKw1VuD48fbqg+CpnwkQFVmnbpqbYJz5wswKXdPaDIaakq9ec gm+gL8cStXl1oyJ89X73rzLdP8doYYvQu/zcVjspMVzxmYuRsIHy4HSDU3YZt9WZ7/y0Nq t8CxnEcBabF0dYsMIuLeI+W9P73G5TUyxtXOIFZZ4xQXvswf3CJaFtkQIu8yIK+9fYwOAz U3yR53PRb3MN9FrP827CXxE+XOurewyS2X9uZ6jpR3gfh30adpVM6emMSMDxPKLHtO4Wa1 zrCLRKzjGhR54DfWl8nVMSoRV6e4VXEDthNgWyU1j5/Z3L2WlWmRHaGNbeS47g== 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 4Rmhcz2Twvz12jF; Thu, 14 Sep 2023 15:51:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EFpFmW074786; Thu, 14 Sep 2023 15:51:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EFpFJF074783; Thu, 14 Sep 2023 15:51:15 GMT (envelope-from git) Date: Thu, 14 Sep 2023 15:51:15 GMT Message-Id: <202309141551.38EFpFJF074783@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Rabson <dfr@FreeBSD.org> Subject: git: 74da9c39c346 - main - pkgbase: Split out manpages by default List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dfr X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 74da9c39c3460213750477204979989b5c39cbcd Auto-Submitted: auto-generated The branch main has been updated by dfr: URL: https://cgit.FreeBSD.org/src/commit/?id=74da9c39c3460213750477204979989b5c39cbcd commit 74da9c39c3460213750477204979989b5c39cbcd Author: Doug Rabson <dfr@FreeBSD.org> AuthorDate: 2023-09-14 14:38:07 +0000 Commit: Doug Rabson <dfr@FreeBSD.org> CommitDate: 2023-09-14 15:50:40 +0000 pkgbase: Split out manpages by default This helps with building small container images using pkgbase. Reviewed by: manu bapt MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D41861 --- UPDATING | 4 ++++ share/man/man5/src.conf.5 | 4 ++-- share/mk/bsd.opts.mk | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/UPDATING b/UPDATING index 59788ab2c15d..b1276bfe83f6 100644 --- a/UPDATING +++ b/UPDATING @@ -27,6 +27,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW: world, or to merely disable the most expensive debugging functionality at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20230914: + Enable splitting out pkgbase manpages into separate packages by + default. To disable this, set WITHOUT_MANSPLITPKG=yes in src.conf. + 20230909: Enable vnet sysctl variables to be loader tunable. SYSCTLs which belongs to VNETs can be initialized during early boot or module diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index a5e7c501825a..64f725c7b2fa 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1152,8 +1152,8 @@ is set explicitly) .It Va WITHOUT_MANCOMPRESS Do not install compressed man pages. Only the uncompressed versions will be installed. -.It Va WITH_MANSPLITPKG -Split man pages into their own packages during make package. +.It Va WITHOUT_MANSPLITPKG +Do not split man pages into their own packages during make package. .It Va WITHOUT_MAN_UTILS Do not build utilities for manual pages, .Xr apropos 1 , diff --git a/share/mk/bsd.opts.mk b/share/mk/bsd.opts.mk index 93b0e7184b6d..51260533e265 100644 --- a/share/mk/bsd.opts.mk +++ b/share/mk/bsd.opts.mk @@ -60,6 +60,7 @@ __DEFAULT_YES_OPTIONS = \ MAKE_CHECK_USE_SANDBOX \ MAN \ MANCOMPRESS \ + MANSPLITPKG \ NIS \ NLS \ OPENSSH \ @@ -76,7 +77,6 @@ __DEFAULT_NO_OPTIONS = \ CCACHE_BUILD \ CTF \ INSTALL_AS_USER \ - MANSPLITPKG \ PROFILE \ RETPOLINE \ STALE_STAGED \ From nobody Thu Sep 14 16:31:52 2023 X-Original-To: dev-commits-src-main@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 4RmjWs1V1Nz4t04G; Thu, 14 Sep 2023 16:31: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmjWr6wWkz3MdF; Thu, 14 Sep 2023 16:31:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694709113; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G8jHhY8k/NdR3zEiLYNdmUiyvo5MTSwVBd+IKyZaBTM=; b=gFYarXdiZ5cYfzzbB9Ivj8Ab4uEzsGCLp8CXPUyNmXxjq+6jrsNt2VQBKS+96JVZ4zYUX5 SaPFd+9zE6AC4niNySrXBbdbsTcE8N4KQpe5QuvRlDAyAvVGpG7M8VGatRuyUMeS9GJo9p TKKRzTGD2Vh0bPz501vLk2cyDpxGSsfiQrhtwAc4efoIYRxsB6Y2/RRW1XLchS8Nz/ibL8 zmVBwU5bVs9vMbMs9brgTv2h54fIYAU+MWNHt8u0wFfex38QQ9xL1ORY13mN+YTUTyEdpb /2T2EsQMtSBGYR4irAY4hjObjoxr2RiyQY36Tx/ZMlI5/s4fS0d9/0/ElYsXQw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694709113; a=rsa-sha256; cv=none; b=duykpMmxAQyAeTgoQG+zgKQvxaJTRFNx5Ym+H0Yuznd7NJudg5Wk0rQ/M6mSxR5V2eSm7p MipRnKSdjyQ9IgZsd/f+0jcJmsgArERyi8PH+MEovfvtcnGOvfwwbThe/+H+r0OeUCE04H PFMISDrUQvm7c8yWez2Gpjqwg8XlinB4wlhDoaw1DTVuPmfnvdYCOeZ8LcTR69gjDgPqVB OZD3JtwHE1fbjDT+WhTG40kWDe74xfqaFjgHH/4KazVVn9sAZk25tBqEpnk3mHe1mMaiab ySK7PHozt/A35AdojS/R6ZHqvkNqYwuXaQEh9n3hBqoE1JlGGs4jGpKUPOKblQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694709113; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G8jHhY8k/NdR3zEiLYNdmUiyvo5MTSwVBd+IKyZaBTM=; b=S75tT7lSndkoTr7sH0UnebdkMAT/WaQuHh78CAGxFpDSmP276RRN4C3gVmPi6IHQCZbCs2 uBgkXrkmfR0fXOgWhy0mJkaQl7YfSdCK9tSEh/llj0jtRON8jotgxsbpqiIZZihQt+jydI PPF8oqx4oCB4RG5GkQvZGOem4MVFHG2D2RnnJWXkCZG8jXyE08wj3GTDpcIq7Q6M37sqUY 1VrrjStwGDrYr8oCkZ7IkmTiAMvZrLqo36s7wZi3ag9k0Wu9PymhllxyL8aN/Df7DmyThy xQnzQ+onCN8DYrJOR9F2kwpn6Gx1NTL76JAFUHbembalpdNDxwvnfr4b/LFA5A== 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 4RmjWr627Nz1445; Thu, 14 Sep 2023 16:31:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EGVqu6044544; Thu, 14 Sep 2023 16:31:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EGVqxo044541; Thu, 14 Sep 2023 16:31:52 GMT (envelope-from git) Date: Thu, 14 Sep 2023 16:31:52 GMT Message-Id: <202309141631.38EGVqxo044541@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Simon J. Gerraty" <sjg@FreeBSD.org> Subject: git: a1575a98850c - main - Fix typo in VERIEXEC_VERIFIED_FILE List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a1575a98850c7484edac53052bb0e4232c10002d Auto-Submitted: auto-generated The branch main has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=a1575a98850c7484edac53052bb0e4232c10002d commit a1575a98850c7484edac53052bb0e4232c10002d Author: Simon J. Gerraty <sjg@FreeBSD.org> AuthorDate: 2023-09-14 16:31:31 +0000 Commit: Simon J. Gerraty <sjg@FreeBSD.org> CommitDate: 2023-09-14 16:31:31 +0000 Fix typo in VERIEXEC_VERIFIED_FILE Reviewed by: stevek --- sys/dev/veriexec/veriexec_ioctl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/veriexec/veriexec_ioctl.h b/sys/dev/veriexec/veriexec_ioctl.h index 7f41464e495e..d88998f502b4 100644 --- a/sys/dev/veriexec/veriexec_ioctl.h +++ b/sys/dev/veriexec/veriexec_ioctl.h @@ -63,7 +63,7 @@ struct verified_exec_label_params { #define VERIEXEC_DEBUG_OFF _IO('S', 0x6) /* reset debug */ #define VERIEXEC_GETSTATE _IOR('S', 0x7, int) /* get state */ #define VERIEXEC_SIGNED_LOAD32 _IOW('S', 0x8, struct verified_exec_params32) -#define VERIEXEC_VERIFIED_FILD _IOW('S', 0x9, int) /* fd */ +#define VERIEXEC_VERIFIED_FILE _IOW('S', 0x9, int) /* fd */ #define VERIEXEC_GETVERSION _IOR('S', 0xa, int) /* get version */ #define VERIEXEC_LABEL_LOAD _IOW('S', 0xb, struct verified_exec_label_params) #define VERIEXEC_SIGNED_LOAD _IOW('S', 0xc, struct verified_exec_params) From nobody Thu Sep 14 16:39:52 2023 X-Original-To: dev-commits-src-main@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 4Rmjj44wStz4t21r; Thu, 14 Sep 2023 16:39: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmjj44V4Xz3NjS; Thu, 14 Sep 2023 16:39:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694709592; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gJHwVdRO/8xXDfPO5VhJ2kWEVMZY8CYbp8rt8V7dAzE=; b=a/6BSi++r/GlbD2F3/wh2wr/Zqi0edueTvdosVlmhJm/OSFQPVQeQ/b6fvfxPoBoWAW3h8 mNBonSmL89h/EUQPnSa3rBwWButkXaHT9yAkPFtdy2p8SMah1dypp4Uo6aCHIP3TPt5oX0 GKxoTZKln1cI1x1XGge2X/ec5hPVAXfRobc9U1Q7jmnVkz18zFHlUfmzZnq6gXH9mX0+cg JIhM/JRsGILXF0/19ritcTbwI2fHgODhnGjIC7yPggvlBdZmg6mmb1Bi6xvlA4eRh0uUif dcgEjRmgVlnXOSf9VmOepBPwRrCzFm4QvsKByARhH4Z3c70Lj0BCMhw1uSeHig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694709592; a=rsa-sha256; cv=none; b=NsHyeX0sAMh2Rkz54cqGaC+Qb+DV0He9bW5khB0fNLken1pfYlpVQSlrLsUeedIRW3v74p 8sGeQ8PbeY0kfiD4CrlqVehSm9kMkNBV/hkzr5kkdlZ0TEk+EV7vqpdr6L7mBNEjKNiJZv 2Pwb1OX/WbuROsblbU9846FXeG1GLXv7aIqH66eDILd+uIv/B7LdQNHYZVkuwCaxmj8y7D UDJZVci8MIx81vW3aKDlSH1dgSMB94VKMoAt8L43oy8WgSfnGyxGi4HBoJAwzjAVvcAbTs eXDze8eL+dRKynD72T2Dx6iDrj0iIrWkjuKTR1HhovEwv83cCpfvz2m6uKrz1A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694709592; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gJHwVdRO/8xXDfPO5VhJ2kWEVMZY8CYbp8rt8V7dAzE=; b=oxVT33zXN9deCbR4CI+PUqbrcESm1JqBQWU983lAhd1dkByJmj4LfNZjcLDkzX0C2468xg CaVaD0uF87OUFbWTbRobZ6gCMoBeDtyS+EE961lyXZzzmvIPoSZO/kyijsrYrz52hVZ0m8 /rEL/eai1KT7IJ7NSqSzvmtcIDtZquRuIUbbcmb5YPQPZ9WAORqaMh1VoVBCB0vYWOMnx2 RFEQiE/hL97LXXN0GbxxjEGbLzWvsPLw/ofljmPmDFBGVkxlCcGeL7AbuVrxU7ISTWz/7B rqdl9BaD8VfgnT7iFlrnCe1TVjAQZ1e899vzzgL02Dm4wXkM/ioT8Nu4jO1lsw== 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 4Rmjj43Th8z13sh; Thu, 14 Sep 2023 16:39:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EGdqr3046833; Thu, 14 Sep 2023 16:39:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EGdqbG046830; Thu, 14 Sep 2023 16:39:52 GMT (envelope-from git) Date: Thu, 14 Sep 2023 16:39:52 GMT Message-Id: <202309141639.38EGdqbG046830@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dimitry Andric <dim@FreeBSD.org> Subject: git: b9c012a60b6e - main - ObsoleteFiles: cleanup old libclang_rt files for powerpc64 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b9c012a60b6e98f7c3e765859195302cf3ae7f6c Auto-Submitted: auto-generated The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=b9c012a60b6e98f7c3e765859195302cf3ae7f6c commit b9c012a60b6e98f7c3e765859195302cf3ae7f6c Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2023-09-14 16:39:31 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-09-14 16:39:31 +0000 ObsoleteFiles: cleanup old libclang_rt files for powerpc64 PR: 273776 MFC after: 3 days --- ObsoleteFiles.inc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 55a198db4d04..15e3b000de3c 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -388,10 +388,13 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-armhf.so OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64.so OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-riscv64.a @@ -402,9 +405,11 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-i386.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.cfi-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.cfi-arm.a @@ -424,8 +429,10 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_interceptors-x86_ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-aarch64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-arm.a @@ -443,34 +450,41 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-aarch64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.xray-aarch64.a From nobody Thu Sep 14 16:40:19 2023 X-Original-To: dev-commits-src-main@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 4Rmjjb71QVz4t20R; Thu, 14 Sep 2023 16:40:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmjjb6W2Kz3P3k; Thu, 14 Sep 2023 16:40:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694709619; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eZU6vMGX5b0VoYPv5Z3D8L5mCUGE4cudm1+U4qqjsZs=; b=PP0cYX2nJTjnBtcbYsRtwGR60An8ZNurPx2KX+VhHZtX3HCyZaIdY21zln7w2CRS2SjKgz xsBCUgi74LUhwRUvZVnFZkLAHdCrc5pmOhY8w57OG7TqDcH7o5DAuYxtEZ6Qu4Swdfwkal RJGtpckoyWGAHaOrxiEaXnBK7JzDhbw0sBvCo/f07bFv165A3rr06KplcAKpnhBZ/N3BNR 5Sms5dCBQLH2d4yp0ErqZ5thr8jFzv2+LOmlsF+lGXqVXjzoctHJOVSI5wpYommJQNdorj +cpfPh60JzbIxMHFuEK4611QY+XUGpgFPqJ7cOGOGDgIPB4zP4ORHWNAu9aL/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694709619; a=rsa-sha256; cv=none; b=mglgorYdlLZ165NxVn0OWQq0xzmJiBI+xmbJqc/vUBJK7Bq8VaWd2fAl4/rob4hh2+/DiP +msfaW1FjjRqkOlEELaxRC9UmSSiHca7hbLI2GTy99j/Wm0klEO7KYG1TRkRAhRg/xQUyh DRMBdw5jeV7YTT7Fh2sKAt18Rr62231n9MN9eRdJAINeN20TPQ/5/+5I1aYLMxobi5wO9L B0XCegEL1guexZxn2YB3P0is6ZTQUfjcHIUXR2onnOE5WtFCYE0aNh7QwIyGbIcPFZSRZ6 rRW5plpcmHHwYXYPDvLgi4x9+Vkuk1LH1Xtnivc5zx432IHI9FXDoLm6yWjMEw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694709619; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eZU6vMGX5b0VoYPv5Z3D8L5mCUGE4cudm1+U4qqjsZs=; b=T73W7gGp51odzx8Zgb0DVQHVcoKXpkStlExyC/pkLrRUS9ZnRPEtbOfmijLArmVpgTBLQr Adt6ECauvH4sPukUcZiPpBuV+fs9wL9R0gIvoqpL477wLID/Y7AweulcV+UGRWsIYvvKQ6 wUn+HVKSQ3Psp+vKwihc0Bhu6GfxwL9zMn+6qeqaQzyBtMfB5I8S8mP61rcJO/PVgclHZN au+ovNsIKUjJDzRBbYlrL2ukxDmy5dT/NVAAyRYdpMMzLuHDA+bOzV0/+XFA0hx1jd9QYf sVVgXmC26JxbPojQVguyyDWrl1WUvPvUFW8iI/NLCqhKAEU3m5pY+BzN9bz2iA== 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 4Rmjjb5c8sz146k; Thu, 14 Sep 2023 16:40:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EGeJV9055502; Thu, 14 Sep 2023 16:40:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EGeJQn055499; Thu, 14 Sep 2023 16:40:19 GMT (envelope-from git) Date: Thu, 14 Sep 2023 16:40:19 GMT Message-Id: <202309141640.38EGeJQn055499@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: 76f1153790b6 - main - vfs: don't kick vnlru if it is already running List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 76f1153790b6d2e1a4f0389c3ac24e41d08f9ba6 Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=76f1153790b6d2e1a4f0389c3ac24e41d08f9ba6 commit 76f1153790b6d2e1a4f0389c3ac24e41d08f9ba6 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-14 16:27:47 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-14 16:40:14 +0000 vfs: don't kick vnlru if it is already running Further shaves some lock trips. --- sys/kern/vfs_subr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 80ec15f78028..4c9cb6200f10 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1557,9 +1557,11 @@ vnlru_kick_locked(void) } static void -vnlru_kick(void) +vnlru_kick_cond(void) { + if (vnlruproc_sig) + return; mtx_lock(&vnode_list_mtx); vnlru_kick_locked(); mtx_unlock(&vnode_list_mtx); @@ -1812,7 +1814,7 @@ alloc: mtx_assert(&vnode_list_mtx, MA_NOTOWNED); rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1; if (vnlru_under(rnumvnodes, vlowat)) - vnlru_kick(); + vnlru_kick_cond(); return (uma_zalloc_smr(vnode_zone, M_WAITOK)); } From nobody Thu Sep 14 17:29:56 2023 X-Original-To: dev-commits-src-main@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 4Rmkps0mdGz4tDbQ; Thu, 14 Sep 2023 17:29:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmkps0KZ1z3XVk; Thu, 14 Sep 2023 17:29:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694712597; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=asxXv0Cl8jQw8m+jZnVx7KVOuHw8+atAu+HGAUiG97U=; b=EMZST3lVLwHOYtcpV2TWsOfdT+6iiCZHOivuFDVslGZwBUwyTk+KL2n3GI43MBHMtxixZM kG9sjZWo2kMbCDzxfvQGTkhvONAQnD861EABTHXmyruk5k2r9fBiJjo5Mg7wC3GhrvvWYF blpeLS6gOgQVrfdOdyRGB/W+nY3VJNbkh7gIvXzg93Emnissasj1mIveraVjU4tUJ7RIu9 FbzWRzszd/LTnAoXG/xSGMBPG5/ejxbMlB4PNyp7wHOrSgST7wwzble2u1m2QgVL608wJx v8xZ8qRt9Pdxg7So182WSWADI4o315Oz1zO2p2NwrxtWGSkCZZG7lHbmrn1ZzA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694712597; a=rsa-sha256; cv=none; b=uJHG2w1hYNmNqzj9E3IxLp+O0tds1FT3anOQpcae2Ttqny+vRirvVGF1B6hnWOSxdPUFtO KzqpSjs1CcuK2cfCSA9PMjGhVcvuFOmnpYpxYAQBkDXZUcMpL6pr7HRkk7gjw3kAfL6N9A HJFg8zhqKmYu04aAVMSZMUY0uvT2OC9mAtdh9sDnb//j7VXvGaW1+iRPVGdx1NyyBEdV8d CZRakQpa44r3B2oq66d8o8LEocnN9HpXFpn9Bsq8IOqlTWfWHAD/lgCLR/458eWedy0xtn THRHIIiiMhZwvswYzAzYMiUncN2z/qHqB30G+0+p7QC2sYq2k6AOcS0CQdU1kw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694712597; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=asxXv0Cl8jQw8m+jZnVx7KVOuHw8+atAu+HGAUiG97U=; b=SQOQQ35qmTepnMwaNtWtkSQ+s93YRduaoqDECIlvA1pAFnn0qC8xPlYgcWrrWVSJaOyDeg DIA8J3r40/Rvq4u/ffOi03214/NII+5sVXKKK7QHJzvGoXZxLNAM2YRfnNvOPStu841Vme /3Fhno4sjW4oWLwKb2g1oqHbOlAuZLGvOwguZXQbK/nF3LGYK/KqAkNAy7W/PT96K0F++W 2YwRbLS/G1MfTGZJvACybJvDgrfIH0PFr414wU/c3+VDBJQd1vpGt8m5ZteWo4pfgLIvWL epNMAiM3dEvCvArkyrjlEMvRH9bcYZ+tAIbWL/mCLLrjsL9txnIycFxPYXBbvw== 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 4Rmkpr6VvCz156f; Thu, 14 Sep 2023 17:29:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EHTuFC030543; Thu, 14 Sep 2023 17:29:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EHTu7r030540; Thu, 14 Sep 2023 17:29:56 GMT (envelope-from git) Date: Thu, 14 Sep 2023 17:29:56 GMT Message-Id: <202309141729.38EHTu7r030540@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: 9dc0c983b093 - main - vfs: fix stale comment about freevnodes management List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9dc0c983b0931f359c2ff10d47ad835ef74e929a Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=9dc0c983b0931f359c2ff10d47ad835ef74e929a commit 9dc0c983b0931f359c2ff10d47ad835ef74e929a Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-14 17:28:32 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-14 17:29:52 +0000 vfs: fix stale comment about freevnodes management --- sys/kern/vfs_subr.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 4c9cb6200f10..ed478d33aed0 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1444,12 +1444,12 @@ static struct proc *vnlruproc; static int vnlruproc_sig; /* - * The main freevnodes counter is only updated when threads requeue their vnode - * batches. CPUs are conditionally walked to compute a more accurate total. + * The main freevnodes counter is only updated when a counter local to CPU + * diverges from 0 by more than VNLRU_FREEVNODES_SLOP. CPUs are conditionally + * walked to compute a more accurate total. * - * Limit how much of a slop are we willing to tolerate. Note: the actual value - * at any given moment can still exceed slop, but it should not be by significant - * margin in practice. + * Note: the actual value at any given moment can still exceed slop, but it + * should not be by significant margin in practice. */ #define VNLRU_FREEVNODES_SLOP 126 From nobody Thu Sep 14 20:36:23 2023 X-Original-To: dev-commits-src-main@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 4Rmpxz3CYqz4sMDm; Thu, 14 Sep 2023 20:36: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmpxz2h40z4Wsr; Thu, 14 Sep 2023 20:36:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694723783; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Uh7+F3jU9aGEabh96csRFHbl986sUUWAPMUbFKIoSpA=; b=elF3hQf8OzKA9Koh9e6CCOX/77nmVg876i6PAm4K018BkOzMTHW05br6oW07sTZ0isi5O0 iFysz3Yfwo2tBleePIchU8w2EM8MvmvJ7MPOLxksW0bIAydaLbGgpLMHfgRgDABCi+STdw AAe5MtohXzgJoxEdE/tZJNk+DPhxiEVlSet6N/3YI5HDDX0xUAB7Hx5t0JOK0eGpyDLFO2 2nvBdURAn9FEvJbScrc6nLUXRCsUI/KX9u+MrAU4ETWQohbQIin4PLom6VFRKyePG18HE/ FYWC5sv21pGNjNLwBTH/5zFzHGMviOGqqh5EnQER1ymfWr4flOS277+hX/Y93Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694723783; a=rsa-sha256; cv=none; b=MFsJtDqKdcvc0Y2+V2X6eM+AvL8D81CGWfHvZ51pcl5pHdlTPdoBRALAz/rfugEz7RSP/c E7QljDr9y/lv1GmToLcIBBvGXKUSAFFneEfh90s5OoJhBKyAbFlbyZ7GpzC/TCCuBsb7K1 ZwQaucOKfwJVDH3BWXR6emE+DY8YDOkZ1MF9tFCdoLMr5G50owCaFL7f4bo/oXE8FxLKCd 0JmEx2GHZori/FcQs3srfmkthRvGUp8c7ah2yQaLdBvSrnJxWaKV9yky7Tc5+P8PoQTzhm lpxn74YbSapRThJIwvJKouSjwR8du8G737QKkDPVQ+puk7I5StBA4DuzUk63SA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694723783; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Uh7+F3jU9aGEabh96csRFHbl986sUUWAPMUbFKIoSpA=; b=hcFMOUxRNnFOhKObqjEYNJfkL9zE6C9bKGyq72mEQGzgsF0ybTe0GQPQZAg7qi7lxcfnGH dMInlSR46tZVlQyXQ9AbF6nSn6CcDLvNXAzj/n5yyVjEmoZmamvZHm7SKg7+7N/svIQIus +2X9OLR95cNiTIQzUMgbbPgXNaD9rrZnEd/L6T2sxGU6hHdqY4gRLf6z3tlGwSB0Pn6Ap/ DZmknCqzVoeVafcrGiwW5/Jn+yhnLrRDjqmHyu4xUOGQlFFZwTneFw37hyVNDdVDCNCbpu q56gQSXyqThKrMlT+qkALpwDfKuv/l96spsqhLhmHM3wPk4vKdA47/osbIvaJQ== 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 4Rmpxz1j3kz1B3y; Thu, 14 Sep 2023 20:36:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EKaNAT045291; Thu, 14 Sep 2023 20:36:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EKaNfF045289; Thu, 14 Sep 2023 20:36:23 GMT (envelope-from git) Date: Thu, 14 Sep 2023 20:36:23 GMT Message-Id: <202309142036.38EKaNfF045289@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: 07f52c4b5a4f - main - vfs cache: garbage collect the fullpathfail2 counter List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 07f52c4b5a4f7a658bf7ed29eadd5c4d52a4f3b2 Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=07f52c4b5a4f7a658bf7ed29eadd5c4d52a4f3b2 commit 07f52c4b5a4f7a658bf7ed29eadd5c4d52a4f3b2 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-14 20:25:54 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-14 20:34:20 +0000 vfs cache: garbage collect the fullpathfail2 counter The conditions it checks cannot legally be true (modulo races against forced unmount), so assert on it instead. --- sys/kern/vfs_cache.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 5b0cd64146ad..0f4d7526ebb5 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -542,7 +542,6 @@ STATNODE_COUNTER(negzaps, numnegzaps, STATNODE_COUNTER(neghits, numneghits, "Number of cache hits (negative)"); /* These count for vn_getcwd(), too. */ STATNODE_COUNTER(fullpathcalls, numfullpathcalls, "Number of fullpath search calls"); -STATNODE_COUNTER(fullpathfail1, numfullpathfail1, "Number of fullpath search errors (ENOTDIR)"); STATNODE_COUNTER(fullpathfail2, numfullpathfail2, "Number of fullpath search errors (VOP_VPTOCNP failures)"); STATNODE_COUNTER(fullpathfail4, numfullpathfail4, "Number of fullpath search errors (ENOMEM)"); @@ -3400,14 +3399,7 @@ vn_fullpath_dir(struct vnode *vp, struct vnode *rdir, char *buf, char **retbuf, vp = vp1; continue; } - if (vp->v_type != VDIR) { - vrele(vp); - counter_u64_add(numfullpathfail1, 1); - error = ENOTDIR; - SDT_PROBE3(vfs, namecache, fullpath, return, - error, vp, NULL); - break; - } + VNPASS(vp->v_type == VDIR || VN_IS_DOOMED(vp), vp); error = vn_vptocnp(&vp, buf, &buflen); if (error) break; From nobody Thu Sep 14 21:21:10 2023 X-Original-To: dev-commits-src-main@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 4Rmqxf6ypVz4sRCw; Thu, 14 Sep 2023 21:21:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmqxf6Zghz3CDC; Thu, 14 Sep 2023 21:21:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726470; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W1flHhotgU5T5wRMYnk4R3f/ETvN/BeclftPvWGEeoU=; b=kSAfuZBfijeCukQisFQO5AwORWqva/gvEPVirgn/euFsdJ5fKcaLbvmkLCtsBP8yE7CS5l I9SJdSuaUHzj25SSIfkUIer6RK+H9zmnGHbgUp7jEqi6mF8hRHa3IfpmTrjeqTWMott5qq xZL54oI484i6ylHMyRQdX+lBKcRFBrp6+9gBRrXxhsNnaGs6EF1HdP+ojB94M/Q+DE6x/d 9ETfZdCjTQGT04QqRX0NgocLsy4346l0u8pRr0X+NpzkDWGud6QYVRQycAq0cwxil0+paG cQQnDBeSjEw3s1gDlycaGo8s2Pzo0s2X9oLWOcF3w/B5hKxQtH3bpsxSA6RsZw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726470; a=rsa-sha256; cv=none; b=yDI+ZLgPGDLh5Bki5a+E4dE8XPMFfgjcJOSj7ndAvlYfV32F9ZMxFt2Fjjzwf4fUKsJ+1b jUmqOc8OLUxpvFUFZrktZYA1YplOHfBBp53ZJ2Y+IAOiGHY2p9x2a2BwwySQk3i6iCzAsq KeUyO4phzCfYMuwEbgVGsEKJCPez0d19RhXswP08dItKzi80XR/tRfFGr73jJzVQWTVOhV XXjAMR3mG/vIm8e2OLgjE1DkyS5+P/053mZ8AGnZ5uby2dZrC2f9a5xqjm8pacg3RREfz9 gOV7+Qut6jp8MnCFVa+gFuOAS0uOQdVAgDE4d4CkaRIuvAzTwse/AyFzkjwpew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726470; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W1flHhotgU5T5wRMYnk4R3f/ETvN/BeclftPvWGEeoU=; b=EErRaZxFkS0OU6HiigLGf2mnagQnE3aJ+j+JNOflB37txZ3dFPaJfSix3AIAMYdFEzXW1T 6eQv3R3FxzcMVkq5ReXRMX2eG8hecPZCJY6ASHvnqAqo9KIOMAzdZbeYrTQf4SSimJpqs+ HXS2BIM+aLGmh1J+o/Y7NYEaDi7gkTwzrX6uQYDAvFi1H7RdaFiaJ8xsQQlwBXrsCS67ll 6VyKwlenakmZb875EM7MJiaR7wFIpbVBF4DkQMI3iKlAli/ypG0TzUwhKktmB+UpEaiI+9 xSJRx4xtG7ZN5rxqek3FSacrEGkiXbMDxSpzVzjxN9KSh8uC2zaKtIrlksKOSg== 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 4Rmqxf5gq4z1Brf; Thu, 14 Sep 2023 21:21:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38ELLAX8023291; Thu, 14 Sep 2023 21:21:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLAAT023288; Thu, 14 Sep 2023 21:21:10 GMT (envelope-from git) Date: Thu, 14 Sep 2023 21:21:10 GMT Message-Id: <202309142121.38ELLAAT023288@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Subject: git: ee7077f24f5b - main - iwlwifi: fix a bug in iwl_ssid_exist() List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: ee7077f24f5b02bde8cf5c202848128f18733398 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ee7077f24f5b02bde8cf5c202848128f18733398 commit ee7077f24f5b02bde8cf5c202848128f18733398 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2023-09-14 17:22:04 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2023-09-14 21:20:54 +0000 iwlwifi: fix a bug in iwl_ssid_exist() Rather than always comparing a given SSID to the first SSID of the IE list, compare it to the the iterator one. That way duplicates can be found. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/contrib/dev/iwlwifi/mvm/scan.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/dev/iwlwifi/mvm/scan.c b/sys/contrib/dev/iwlwifi/mvm/scan.c index a4077053e374..8c5d6860914b 100644 --- a/sys/contrib/dev/iwlwifi/mvm/scan.c +++ b/sys/contrib/dev/iwlwifi/mvm/scan.c @@ -447,7 +447,11 @@ static int iwl_ssid_exist(u8 *ssid, u8 ssid_len, struct iwl_ssid_ie *ssid_list) if (!ssid_list[i].len) break; if (ssid_list[i].len == ssid_len && +#if defined(__linux__) !memcmp(ssid_list->ssid, ssid, ssid_len)) +#elif defined(__FreeBSD__) + !memcmp(ssid_list[i].ssid, ssid, ssid_len)) +#endif return i; } return -1; From nobody Thu Sep 14 21:21:11 2023 X-Original-To: dev-commits-src-main@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 4Rmqxh1gPrz4sRq3; Thu, 14 Sep 2023 21:21: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmqxh0qdxz3CFy; Thu, 14 Sep 2023 21:21:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726472; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K+CNqtR1wTguIy0W7tZrSD9sZEO9CkXzGA1wx7RiUNw=; b=dXzrNFaSlI3zt4F+rNKiFY9ZA2F1GTfP2ew/eTEiwK1G0TI0yb57SedM37H7BTSslf+Frw eh89xzcDID8ks7dpeD/Qf/GP1ptphBgzY2zjJ+Prepc3D+EQlmwE/A4DJaHUv3srES73BZ oZlIeiQug/FUmrbWBkgqzzPr472eVCLp5YcgBMMTJli61sCMXUBs5vL0YsVZi8U5hunle6 3F8o2LiXUeQrDV0oba8qMjF91H8DYtXcY4JFos+8kdC2IAb3tO3+Y3yUCpwDHSJSlG9zTN rceecptLiHVN/uKR1tHJuf7xkHngX2NPmE+93Rko2Z/jCE2VyCYFauuZOwdXLQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726472; a=rsa-sha256; cv=none; b=xasKzCQ+TC4sZGCZzALKGHKQnqLhvH14Ui8gPZSjVLhsp6iFXMq0iGfuVUNFx1Hze6Esyn Zi0fUhLEz3gwmz/wgA1FmAxm6S1BWQMVK2LG+3kik9aMwai9GtJLxiq1jCNSYf1rMLjiY0 Hq+JxHRz2BCvHVUOdEI4zO7c0UlbqUNW6ZdeRv+itaHv86bysigVOeFwKzfYKojsUHbWmm OBNQn8VsCWuBagsLxsA83L5R0aZ4Om1OSndV1ReNH6Ex7lOQcBMSzJ4phIj7WExlfotx8F xwZk8aiACMxFeZ2Dm1F8IMuhU3TRBKR33rOQitu1wFluiknRWLKm1u6zh6ajbQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726472; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K+CNqtR1wTguIy0W7tZrSD9sZEO9CkXzGA1wx7RiUNw=; b=k+pEsFpxjact9bFVl1pUJ7iqChDyAHstU/p6+nUNpZ+ve0r7Bg3WxL38S42+zinfMqzpI1 ExJ1s5ZgW4hC5QVL7E7Nv/6SC40e/mZJCngDteufLQ8u7JtiEoGBQTcB50cbkNqklR6qkB p7aE450kuhvVbUI9W0bZj9OI63hNZ37mkwb1sBEYVxWnatjiQyly3G15oGkJulLxH9Zpyr 75LOTUfLln7W9XgM8Iadj3yqw0jvjzlaRvoOaQhUhEw229VU8qnnNV3AibUwsp2/mp09hB NlxAB03yvS9hQQBTSfKOUGInYXs27i2kKbwI1L2HyoWG1qxdp89i72CpVvNvaA== 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 4Rmqxg6g1Pz1C3M; Thu, 14 Sep 2023 21:21:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38ELLB31023345; Thu, 14 Sep 2023 21:21:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLBqr023342; Thu, 14 Sep 2023 21:21:11 GMT (envelope-from git) Date: Thu, 14 Sep 2023 21:21:11 GMT Message-Id: <202309142121.38ELLBqr023342@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Subject: git: 778da03b1271 - main - net80211: mark argument to scan_curchan_task() __unused List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 778da03b1271f52051620ec9b053524727961c9e Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=778da03b1271f52051620ec9b053524727961c9e commit 778da03b1271f52051620ec9b053524727961c9e Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2023-09-14 17:34:01 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2023-09-14 21:20:54 +0000 net80211: mark argument to scan_curchan_task() __unused Mostly as documentation mark an unused argument to scan_curchan_task() as __unused. We may possibly want to check all callers in the future and see if the argument was supposed to be useful or should be entirely removed. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/net80211/ieee80211_scan_sw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net80211/ieee80211_scan_sw.c b/sys/net80211/ieee80211_scan_sw.c index ac97b7c14cbc..0aaa80a6c48d 100644 --- a/sys/net80211/ieee80211_scan_sw.c +++ b/sys/net80211/ieee80211_scan_sw.c @@ -674,7 +674,7 @@ scan_start(void *arg, int pending) } static void -scan_curchan_task(void *arg, int pending) +scan_curchan_task(void *arg, int pending __unused) { struct ieee80211_scan_state *ss = arg; struct scan_state *ss_priv = SCAN_PRIVATE(ss); From nobody Thu Sep 14 21:21:12 2023 X-Original-To: dev-commits-src-main@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 4Rmqxj26wsz4sRqG; Thu, 14 Sep 2023 21:21: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmqxj1JpVz3C17; Thu, 14 Sep 2023 21:21:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726473; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JECifPXkwhzhe68ZD717YWK4B0QFM8A9EjN9nQW4NbY=; b=EmR34MDnHl2nCcCfeu+QtJYWs+AKeDOjpkkAaLg/f2U69WcfWuziFiHJZWJHelKOj/3igc v3qrbkCS5w9D/W3GfFfHzWXUgtquy1HiseWiKCVoxAnOAC5v32mREV4Nu9rfVuzcdUA6X7 an+zvRJSAIb25Oa2bI0cXLirEpL0ne7mtYbvPChPhxOT78RF1KqKsFTujFGgSn7SiMQGAu JgZ4SLxHMwsEwbDHd447llzt45gDVpBCaiBWbtWFvxXAJcNxgw9qqg37evJydeANILpF8R WTZmEjjquz/Gzls20R++3mIb+vsR4UXq/Ymfgp6Mczyqv9I3ITNBNDibeQiUVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726473; a=rsa-sha256; cv=none; b=IiKLdCsQdABKlz2LggYGEOMeQCP50lBjB3DoXgG6kCJxoJw8MOU4eOCPYBNMuNh56IpoU7 I3CFyo0LLmp3N/TtngvrxcBH32KrAqbZvDGe7bksI5qZ/FKBSsHt818qYn+Wws3tr9DFDD lWfR5bd9tnjU+mhYbfgpn+Mgv0gbA8SsO/hI+pyhAllbrXGWyrjJzp4pztINJjZ7CMwOxB acz1MQo+3c11QqK/cM7D+n2hKpvoIT2nSg8iL/muAngn//LTXH/y/m/Lqs/YPhDtr274/h MhG+tUSzloCU+BpaXeaZq0oRl/mxylYRIhfax/ncLMSp1W4AODmPTavxeZrWjg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726473; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JECifPXkwhzhe68ZD717YWK4B0QFM8A9EjN9nQW4NbY=; b=FDd47r8MC+XY66BCcc/sOSAALij86RdbtO6ekSVtL/ww/+uiLCn/E6XkP+DiFLSWfgjzZm Ef6A+sw4wYf7SkpmZAna7u7MySwblgw7OOR8o6Ajy1jJl/lIwNok+MKlqcgvYa+18oHFTM tNWRPYgPYWdrY8afZQR4joLrTd9ozB2T4jpAM4zXNHyMT7xjzjpIqHpybIa3prYh+mKmm5 +T6Lqe6OhoseQbi4NtrjGMC0uH1wmYPxxCrRsRCIPbShbWG4rwaM+5CA6PydIskli6ligI 9lGes5m4aovxpKrYWEzvb5lAx3Iw32mPjSj/qzXbyJGibdWc+Kj6zsN2WjBQbw== 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 4Rmqxj09V8z1C3N; Thu, 14 Sep 2023 21:21:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38ELLCuC023388; Thu, 14 Sep 2023 21:21:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLCsL023385; Thu, 14 Sep 2023 21:21:12 GMT (envelope-from git) Date: Thu, 14 Sep 2023 21:21:12 GMT Message-Id: <202309142121.38ELLCsL023385@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Subject: git: 33396ec29f1d - main - net80211: improve scan debugging List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 33396ec29f1daae31f4738f0da98dce168ca73c6 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=33396ec29f1daae31f4738f0da98dce168ca73c6 commit 33396ec29f1daae31f4738f0da98dce168ca73c6 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2023-09-14 17:36:29 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2023-09-14 21:20:54 +0000 net80211: improve scan debugging While debugging other problems I ran into the case where net80211 was thinking a scan was ongoing and new scans could not be started but given other logging there was clearly no more scan running. It was hard after the fact to quickly determine enough state to reconstruct or validate assumptions. Improve a MSG_SCAN debug logging and implement _db_show_scan() ddb output which can be printed along with show com /S or /a. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/net80211/ieee80211_ddb.c | 74 ++++++++++++++++++++++++++++++++++++++---- sys/net80211/ieee80211_ioctl.c | 6 ++-- sys/net80211/ieee80211_scan.h | 6 +++- 3 files changed, 77 insertions(+), 9 deletions(-) diff --git a/sys/net80211/ieee80211_ddb.c b/sys/net80211/ieee80211_ddb.c index 4e2df134c7a9..525814d202b1 100644 --- a/sys/net80211/ieee80211_ddb.c +++ b/sys/net80211/ieee80211_ddb.c @@ -67,7 +67,7 @@ static void _db_show_sta(const struct ieee80211_node *); static void _db_show_vap(const struct ieee80211vap *, int, int); static void _db_show_com(const struct ieee80211com *, - int showvaps, int showsta, int showmesh, int showprocs); + int showvaps, int showsta, int showmesh, int showprocs, int); static void _db_show_all_vaps(void *, struct ieee80211com *); @@ -132,7 +132,7 @@ DB_SHOW_COMMAND(vap, db_show_vap) DB_SHOW_COMMAND(com, db_show_com) { const struct ieee80211com *ic; - int i, showprocs = 0, showvaps = 0, showsta = 0, showmesh = 0; + int i, showprocs = 0, showvaps = 0, showsta = 0, showmesh = 0, showscan = 0; if (!have_addr) { db_printf("usage: show com <addr>\n"); @@ -141,7 +141,10 @@ DB_SHOW_COMMAND(com, db_show_com) for (i = 0; modif[i] != '\0'; i++) switch (modif[i]) { case 'a': - showsta = showmesh = showvaps = showprocs = 1; + showsta = showmesh = showvaps = showprocs = showscan = 1; + break; + case 'S': + showscan = 1; break; case 's': showsta = 1; @@ -158,7 +161,7 @@ DB_SHOW_COMMAND(com, db_show_com) } ic = (const struct ieee80211com *) addr; - _db_show_com(ic, showvaps, showsta, showmesh, showprocs); + _db_show_com(ic, showvaps, showsta, showmesh, showprocs, showscan); } DB_SHOW_ALL_COMMAND(vaps, db_show_all_vaps) @@ -345,6 +348,61 @@ _db_show_tdma(const char *sep, const struct ieee80211_tdma_state *ts, int showpr } #endif /* IEEE80211_SUPPORT_TDMA */ +static void +_db_show_scan(const struct ieee80211_scan_state *ss, int showprocs) +{ + int i; + const struct ieee80211_scanner *ss_ops; + + db_printf("SCAN %p:", ss); + db_printf(" vap %p ic %p", ss->ss_vap, ss->ss_ic); + db_printf("\n"); + + db_printf("\tss_ops %p (%s) ss_priv %p", + ss->ss_ops, ss->ss_ops->scan_name, ss->ss_priv); + db_printf("\n"); + if (showprocs) { + ss_ops = ss->ss_ops; + DB_PRINTSYM("\t", "scan_attach", ss_ops->scan_attach); + DB_PRINTSYM("\t", "scan_detach", ss_ops->scan_detach); + DB_PRINTSYM("\t", "scan_start", ss_ops->scan_start); + DB_PRINTSYM("\t", "scan_restart", ss_ops->scan_restart); + DB_PRINTSYM("\t", "scan_cancel", ss_ops->scan_cancel); + DB_PRINTSYM("\t", "scan_end", ss_ops->scan_end); + DB_PRINTSYM("\t", "scan_flush", ss_ops->scan_flush); + DB_PRINTSYM("\t", "scan_pickchan", ss_ops->scan_pickchan); + DB_PRINTSYM("\t", "scan_add", ss_ops->scan_add); + DB_PRINTSYM("\t", "scan_age", ss_ops->scan_age); + DB_PRINTSYM("\t", "scan_assoc_fail", ss_ops->scan_assoc_fail); + DB_PRINTSYM("\t", "scan_assoc_success", ss_ops->scan_assoc_success); + DB_PRINTSYM("\t", "scan_iterate", ss_ops->scan_iterate); + DB_PRINTSYM("\t", "scan_spare0", ss_ops->scan_spare0); + DB_PRINTSYM("\t", "scan_spare1", ss_ops->scan_spare1); + DB_PRINTSYM("\t", "scan_spare2", ss_ops->scan_spare2); + DB_PRINTSYM("\t", "scan_spare3", ss_ops->scan_spare3); + } + + db_printf("\tss_flags %b", ss->ss_flags, IEEE80211_SS_FLAGS_BITS); + db_printf("\n"); + + db_printf("\tss_nssid %u", ss->ss_nssid); + for (i = 0; i < ss->ss_nssid && i < IEEE80211_SCAN_MAX_SSID; i++) + _db_show_ssid(" ss_nssid[%d]", i, + ss->ss_ssid[i].len, ss->ss_ssid[i].ssid); + db_printf("\n"); + + db_printf("\tss_chans:\n"); + for (i = 0; i < ss->ss_last && i < IEEE80211_SCAN_MAX; i++) { + db_printf("\t%-3d", i); + _db_show_channel(" ", ss->ss_chans[i]); + db_printf("\n"); + } + + db_printf("\tss_next %u ss_last %u ss_mindwell %lu ss_maxdwell %lu", + ss->ss_next, ss->ss_last, ss->ss_mindwell, ss->ss_maxdwell); + db_printf("\n"); +} + static void _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) { @@ -532,7 +590,7 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) static void _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta, - int showmesh, int showprocs) + int showmesh, int showprocs, int showscan) { struct ieee80211vap *vap; @@ -679,6 +737,10 @@ _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta, DB_PRINTSYM("\t", "ic_addba_response", ic->ic_addba_response); DB_PRINTSYM("\t", "ic_addba_stop", ic->ic_addba_stop); } + if (showscan) { + db_printf("\n"); + _db_show_scan(ic->ic_scan, showprocs); + } if (showvaps && !TAILQ_EMPTY(&ic->ic_vaps)) { db_printf("\n"); TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) @@ -707,7 +769,7 @@ _db_show_all_vaps(void *arg, struct ieee80211com *ic) db_printf(" %s(%p)", if_name(vap->iv_ifp), vap); db_printf("\n"); } else - _db_show_com(ic, 1, 1, 1, 1); + _db_show_com(ic, 1, 1, 1, 1, 1); } static void diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c index 6fe39f588bab..674d163e3e67 100644 --- a/sys/net80211/ieee80211_ioctl.c +++ b/sys/net80211/ieee80211_ioctl.c @@ -2590,8 +2590,10 @@ ieee80211_scanreq(struct ieee80211vap *vap, struct ieee80211_scan_req *sr) sr->sr_flags |= IEEE80211_IOC_SCAN_NOPICK; IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, - "%s: flags 0x%x%s duration 0x%x mindwell %u maxdwell %u nssid %d\n", - __func__, sr->sr_flags, + "%s: vap %p iv_state %#x (%s) flags 0x%x%s " + "duration 0x%x mindwell %u maxdwell %u nssid %d\n", + __func__, vap, vap->iv_state, ieee80211_state_name[vap->iv_state], + sr->sr_flags, (vap->iv_ifp->if_flags & IFF_UP) == 0 ? " (!IFF_UP)" : "", sr->sr_duration, sr->sr_mindwell, sr->sr_maxdwell, sr->sr_nssid); /* diff --git a/sys/net80211/ieee80211_scan.h b/sys/net80211/ieee80211_scan.h index 4274f3948db6..a33864b102e2 100644 --- a/sys/net80211/ieee80211_scan.h +++ b/sys/net80211/ieee80211_scan.h @@ -147,6 +147,10 @@ struct ieee80211_scan_state { unsigned long ss_maxdwell; /* max dwell on channel */ }; +#define IEEE80211_SS_FLAGS_BITS \ + "\20\1NOPICK\2ACTIVE\3PICK1ST\4BGSCAN\5ONCE\6NOBCAST\7NOJOIN" \ + "\15GOTPICK" + /* * The upper 16 bits of the flags word is used to communicate * information to the scanning code that is NOT recorded in @@ -328,7 +332,7 @@ struct ieee80211_scanner { void (*scan_spare0)(void); void (*scan_spare1)(void); void (*scan_spare2)(void); - void (*scan_spare4)(void); + void (*scan_spare3)(void); }; void ieee80211_scanner_register(enum ieee80211_opmode, const struct ieee80211_scanner *); From nobody Thu Sep 14 21:21:14 2023 X-Original-To: dev-commits-src-main@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 4Rmqxk2d5pz4sRH0; Thu, 14 Sep 2023 21:21:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmqxk27r5z3CFT; Thu, 14 Sep 2023 21:21:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726474; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mGNzUYroOQ79RjQeHymbUrAOXkPseIpr8ihocquV+sQ=; b=ipFz266xp+aAqY0N04eVhEBtpF0Za44r8I28w1cHkecqzGCQqI+VmFctmIUDRL9W57K5cK bm6RUsuXK8khQYcp35UxJgSPlr0WEjeHGPNLZ4gydmG2cAoN2cqpEMV6jjiZcTR+ATUDtV Y3GHypdlRJMS8pcHQqw1Sj+ew1CIlKo3cm7n2Uw4pxLd0jqKfadQIxgoxpIyqn99GZUmAj SkUIG2ezfnTEkNzWi/kKKm9sFvIdR/Zv+dUibtfAR1j42jPA2AB1SgKmwvdIhacqIGd30C 4DgUxHO5p0XEi452P+GrYJ0OSG9PE/zNzrdF8OFD/L+mTZ7p2kj0Dp3KOx4cvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726474; a=rsa-sha256; cv=none; b=p0rXXU7QyJpWp/DrG0x7xlszwSCGu4EXKYYzs3EU1doatFR6bxsJf2Wau2F/7x/+VHPIBR TP+xMNpUoZ6KqVF0/oEEejor1UHInkY58Cs1CApO3CV2mBwNyhof0+rqm3ef30txXqst/J tLKlQum93VuiLxYAVxIaEmV2ffCUSkESoN1mNHWLy4JCrZel45OTCkxkJdkO8Qho09H5W4 dNVIN1/4rpYBMSqu+AgVxTTwr0leAUebWB1pP6OCJFJb3d7zGSyghV8QPJMHu5WTRDjWMz obt20oTm4WGI2xyu7Hye8b/Jkt0pxJpZVEdKV9aVGux39RGqrBiuCpgKB73pIA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726474; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mGNzUYroOQ79RjQeHymbUrAOXkPseIpr8ihocquV+sQ=; b=b4MI2Ku85O7iMISwQnRhYoGqNE7+wNDL94w429hFKL/0H16QqVVac1QInrnPDg4qTTIMN7 R/8+f/p2xgrwc1DOQWpVAyQ87eJGmJGQ6JZsYmUaf3h6aZh90FtlPar9RJLjog2JSifac1 82Xb9Cq8NfgBC34z+SVrGfidnRIVveXQNtcym/Vo1CSQxvLzlauK1nlomFRUMu1C4y7qnU +76hvdSzT/+DntePuerC1puWrHmszbjlxDolxi+XH6VQgB7x9rzPOO1T+WurgkY1jy4VqR lc2uwsIMk/aNEjbvplVrFCZtx6TPWctfJXeESo3OsL/8vSCDxxRB9oq8XLfRng== 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 4Rmqxk1DB8z1BNt; Thu, 14 Sep 2023 21:21:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38ELLEYD023449; Thu, 14 Sep 2023 21:21:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLEpg023446; Thu, 14 Sep 2023 21:21:14 GMT (envelope-from git) Date: Thu, 14 Sep 2023 21:21:14 GMT Message-Id: <202309142121.38ELLEpg023446@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Subject: git: e1e90be05017 - main - LinuxKPI: 802.11: make sure bssid for scans (probe_req) is set List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: e1e90be05017c335862c938fd9d577e56f02af30 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e1e90be05017c335862c938fd9d577e56f02af30 commit e1e90be05017c335862c938fd9d577e56f02af30 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2023-09-14 17:48:19 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2023-09-14 21:20:54 +0000 LinuxKPI: 802.11: make sure bssid for scans (probe_req) is set In b0f73768220e9 we added bssid[] to struct cfg80211_scan_request likely while working on mt76 and did not need it (yet) back then. iwlwifi started to use the field in Linux f1fec51cda70f (April 2023). Without it set firmware crashes when trying to send probe requests ((empty) SSID also given to hw_scan). For now always set the field to the wildcard BSSID. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/src/linux_80211.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 51d5bc2c4fc1..4b9cc598740b 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -2728,6 +2728,7 @@ sw_scan: memcpy(hw_req->req.mac_addr, xxx, IEEE80211_ADDR_LEN); memset(hw_req->req.mac_addr_mask, 0xxx, IEEE80211_ADDR_LEN); #endif + eth_broadcast_addr(hw_req->req.bssid); hw_req->req.n_channels = nchan; cpp = (struct linuxkpi_ieee80211_channel **)(hw_req + 1); From nobody Thu Sep 14 21:21:15 2023 X-Original-To: dev-commits-src-main@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 4Rmqxl6trsz4sS1f; Thu, 14 Sep 2023 21:21: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmqxl2ySZz3Cdq; Thu, 14 Sep 2023 21:21:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726475; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k72vK9TJ3cq3bDJnmJ9NAy2I5xF2O64/TsyisIJXkIM=; b=kUKj0gGcVDbgt+HPN9qx0bSVQU/wpYAylB+OI6wVOceyngFOc9GnETud0SR0o+ps7eKJVC GDZgcOAo8cZfTbPwJu7pgDXg+ipl5bSO/8Ot2XwqF4fIVfn9d3at6zR1FCpJo22AbxrmaX 9CnLxPjojiXe8fA2Y5ENG2nDn9kDrSS7/cwvA9NMhjY1VDDimgHKp4D4yO9zqCgPw3ICHz Ax1faFE8tXX7RVsW5Z1l2uZXFQQUF9Zu3Q2bSk95kK3nnnp52Kd83zlzUdEb8lOnaEXig4 x6r5/9hG5kWQhBvTeAYPLPW1wKBnvOVMJKd5CxgZBkX+ACECUAmdrSeO1Est3Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726475; a=rsa-sha256; cv=none; b=rn71la/HGoVaeGFS7HSkDjopz2/I80JNzYXDW4CfXv9IPlrVBBrEuspYpyCLB9zgZ1Dh6D +R26QkwB3327CDJh00cTbpCbd0lMU3cUfP3HxfUo43iD4bnPgraZpWvSQx3YOohKdQfRNb E/a5rvrzTjmS3wd3/brU5RIuz2K8eb1bT2+z0ScyjPJXBzgOBcU0Eo6eV9Ul2+uTh6rJyb 2VPGadFcytkjp5s3DKmYWB7dAhBfs6m34lV9HU7r54gZzeSkDjM1rGpVE+LZxJNlwBrFCu qxSb0X63+ksmLNtRjfOCTsbjzRhPLyMPCyk3UF0wGCX+Ed6X9wFd3bOcqkZfdw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694726475; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k72vK9TJ3cq3bDJnmJ9NAy2I5xF2O64/TsyisIJXkIM=; b=kE2FnXMmbl2WiRzC6Jl3iycSJQ9E1ihUPFQeskvnYXOTJaLly9ukFe1WhvV8TC4BE52R71 X+lq9hSuz93RQwnhp0XLUWQDj4JO+VODabSIYj/4vYV4ybFhiwv7Z6slGOa9pcAWQ3c4Zu y0xfQwMHnRrgGvLnBcqQXItL0U2qZrbozU2I8/kVG4MCZMg383Ie+y62XZSpPMY8njjbWr AoC3BanbcxJgFsWuTQBF4szrmmH1LkrVF5cQWJA4JtAMM6IZlyyyPOdvraPyvbcIHFyQTf GCsnjKTTt6OMPuf3/HCgYnr8SsVvvvzJyvyMR9pUzvCKFJGUVh3tLY4MD1ZkwA== 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 4Rmqxl229xz1C2N; Thu, 14 Sep 2023 21:21:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38ELLF4a023505; Thu, 14 Sep 2023 21:21:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLFZw023502; Thu, 14 Sep 2023 21:21:15 GMT (envelope-from git) Date: Thu, 14 Sep 2023 21:21:15 GMT Message-Id: <202309142121.38ELLFZw023502@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Subject: git: f454a4a10dc0 - main - LinuxKPI: 802.11: fix counting the number of supbands List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: f454a4a10dc027474a85269cb4a3f50bbbf90528 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=f454a4a10dc027474a85269cb4a3f50bbbf90528 commit f454a4a10dc027474a85269cb4a3f50bbbf90528 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2023-09-14 17:57:53 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2023-09-14 21:20:54 +0000 LinuxKPI: 802.11: fix counting the number of supbands While the main purpose was to assign an(y) early chandef with the loop, later additions made use of it to also count supbands as well as to initialise max_rates. Due to the main goal we can exit the loop early and not properly count and initialise supbands and max_rates. Move the terminating condition into the loop and make it a continue rather than ending the loop. Fixes: d9945d7821b9b ("improve hw_scan") Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/src/linux_80211.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 4b9cc598740b..cb919bfd3f5b 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -3760,8 +3760,7 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw) * in any band so we can scale [(ext) sup rates] IE(s) accordingly. */ lhw->supbands = lhw->max_rates = 0; - for (band = 0; band < NUM_NL80211_BANDS && - hw->conf.chandef.chan == NULL; band++) { + for (band = 0; band < NUM_NL80211_BANDS; band++) { struct ieee80211_supported_band *supband; struct linuxkpi_ieee80211_channel *channels; @@ -3772,6 +3771,10 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw) lhw->supbands++; lhw->max_rates = max(lhw->max_rates, supband->n_bitrates); + /* If we have a channel, we need to keep counting supbands. */ + if (hw->conf.chandef.chan != NULL) + continue; + channels = supband->channels; for (i = 0; i < supband->n_channels; i++) { From nobody Thu Sep 14 23:07:04 2023 X-Original-To: dev-commits-src-main@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 4RmtHr3Sgjz4strd; Thu, 14 Sep 2023 23:07: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RmtHr31Vyz3VBZ; Thu, 14 Sep 2023 23:07:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694732824; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C4Rr1ZDEx/Zv8PGm7NqSsPPGk/svejfhh6SFaxkOdhg=; b=mOU/g7AZNZVJasV5IM5FJh1JIFSsE3kDdefKPV2ZW4CfJyf3kFTeL8MCORWJHNIM+dRFci ZWlEbOiCu6FLg9wR9SPAuIMEA1hQGDFcAB3j8xVUs+omqe1JMrNYWDE1FtSlp7RtGZW/1E jG4a9WGlTEiHv8gtAOb7P8CgCMT0bQY5UbDNVRGIJBC5J2kAjReFDbpxBz6SS/pKiJYfVA QwI4JI3jtjcu7j3Pc0BsD+t1Wtxre1QYrtbTSEtQLhCtOQ8v3dZ0X1GAKqc/CzGtgL75U9 2uOxBRS14NSIpJHJyDJOCEwLpfpMW3XBvF0saQ5M1bo7Jrk9oj3BVyZ5pD+hTQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694732824; a=rsa-sha256; cv=none; b=FlH9QD4m8cSkJ7PBqvMnxCzuB2kJ9nKLJBpK5g9icpM2a7TVfpKHeqm3tUg4JWpd4G13B1 kFHU/As4ET5ZcXKHm8jyRJaN3aaCzttoQNOVds0/4mGQxMo4cKzSryg6hPowMq6igXQsHo csx7W0BnXVTEwuEAhGGM09TN3B4If6ZoqPhcr/5iVyhETqRI2uKUmv2qpjbUwTxMTHDke/ xF0Ao9I8QBcwIy3FZOBE66WH2AaW/kXP3PR1oaoqsn9jfg9krFj8/Adq6ZetFmSc6nOfyx QryZCAyODtOfGfZAkgEZY/78roqwlJc0T9r+T4mARbrRw8GGk/baADTCGhRn5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694732824; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C4Rr1ZDEx/Zv8PGm7NqSsPPGk/svejfhh6SFaxkOdhg=; b=H5xKEVQuU6+Ko0r94avzzdl9xxjYAskpZpSveiXESMX50szoKVGGEm+RDgmEofegWl2IjG R1bmy5IYb28KyBog9SV/2JRVOUSzbURNtYQYKBTLCm9HfmJ3139yFsnfJHeOnql4PoIMaJ dyyqaJquUN4U5OVENL2ATEdakDCOGjQk1Tx/r+6+mnoUtJqduFJaQ2Xr2NS0m4gh+aqY/W 9BrwACzgSTt/O6b6LjwD1NXkh2AkmeeCKD4Ef6xbPcXYEhG8fSAHhgtbHhaSDyRkK5aKh1 ckj3XzFQpdfcFfySKxQykUZMrOdlzGNWLqRQ7ctwjK3ewFv148k3KWqvWQf5Qw== 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 4RmtHr26Rbz1FDD; Thu, 14 Sep 2023 23:07:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38EN74uH094751; Thu, 14 Sep 2023 23:07:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EN74N3094748; Thu, 14 Sep 2023 23:07:04 GMT (envelope-from git) Date: Thu, 14 Sep 2023 23:07:04 GMT Message-Id: <202309142307.38EN74N3094748@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: ba5dc166e0f3 - main - vfs: retire vnlru_under_unlocked List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ba5dc166e0f390c703042910b637a83c705c8af3 Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=ba5dc166e0f390c703042910b637a83c705c8af3 commit ba5dc166e0f390c703042910b637a83c705c8af3 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-14 23:05:51 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-14 23:05:51 +0000 vfs: retire vnlru_under_unlocked It only looks at the centralized value which in corner cases can end up being negative. --- sys/kern/vfs_subr.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index ed478d33aed0..84219f3b5c12 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1528,23 +1528,6 @@ vnlru_under(u_long rnumvnodes, u_long limit) return (space < limit); } -static bool -vnlru_under_unlocked(u_long rnumvnodes, u_long limit) -{ - long rfreevnodes, space; - - if (__predict_false(rnumvnodes > desiredvnodes)) - return (true); - - space = desiredvnodes - rnumvnodes; - if (space < limit) { - rfreevnodes = atomic_load_long(&freevnodes); - if (rfreevnodes > wantfreevnodes) - space += rfreevnodes - wantfreevnodes; - } - return (space < limit); -} - static void vnlru_kick_locked(void) { @@ -1826,7 +1809,7 @@ vn_alloc(struct mount *mp) if (__predict_false(vn_alloc_cyclecount != 0)) return (vn_alloc_hard(mp)); rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1; - if (__predict_false(vnlru_under_unlocked(rnumvnodes, vlowat))) { + if (__predict_false(vnlru_under(rnumvnodes, vlowat))) { atomic_subtract_long(&numvnodes, 1); return (vn_alloc_hard(mp)); } From nobody Fri Sep 15 00:07:08 2023 X-Original-To: dev-commits-src-main@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 4Rmvd86ScWz4t8PW; Fri, 15 Sep 2023 00:07: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rmvd860F3z3glR; Fri, 15 Sep 2023 00:07:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694736428; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MWLgHTPAk1oWx6s81rsAEbDfGvIYyG2jpheAxhbT3Zk=; b=VfW+opt2XDUytdX6ScJ8rkJq2C2rOZf2D3GrTNIOLvo3qnnF525C//8SuvpBz3H0CTl8Xv FcPGxCxbQ4fkOS1TcLn9BIrvppg7UEwTK2Vt6QHV8huiZp1ixPeK6HsPvmfyuMikU7Ukoc JUUm3zxe/sTo1JNEMMQPXbvZwE2mRWJ0ujIsgjgzzwdMSU1EA2Bj63nPenYkaquB3/TQB8 NI7PXMxwTbCXLdzPgdtY73TuxUG7DY8Qk/lw5BJXIXH2Vfx4YkKdVPkCratskEe4F1646J kvVH8IcnrK7WdLPC9vkyhwQd9wCRk/e5l3Su206G+PW0qujIW/IrMhuhJbB6HA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694736428; a=rsa-sha256; cv=none; b=UotFCrMmSCpxxcCDeiw/Tauv8IW/axAC6W6hjFjaRNdYqNI8DC3Y702OMH5Rlk3LUw961Z iSkhgmZBBGizbXsEwfTIwSa4yflWamLr20H4RblWz2bTuLJFAVf6YaiKH8/FBCsCswUvr+ eX0igz8ELppa4mGsfgfruliSFb5/Ls5zTht/c63aoSYz/PfqmDU+jsANF1NdO0TW/JFeeK lhk0xZgFv0COewmHzIcjImZrLITA6BvFkmYBHL/aarAm5z26p+28HsXjuZlJTv/eSWd3rg dVwmY1B4OKLFfp0afLi1WPFX2GlZLUS8m4+igWqK3DPuPZSmWEEy6KXnNBIvtQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694736428; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MWLgHTPAk1oWx6s81rsAEbDfGvIYyG2jpheAxhbT3Zk=; b=JB7SybDaGVXifvvUPEdVEZbx1FawrxiHdDmdyionRv6pSZPoE9WF9vQk0uooTC518XnKfY l9fTbvQQs09pxF9ucrRZU8wrUx/+zfE2djazGXuSWI/m8CbzKBNtR0HCAQ4HJ/PxL4OE5g 1bmZc2qew9jhl08Y1dD6E3N5Me1sOYA+3c2AiVqdjDLMqHqvZ2d0mbzzK9PRFuF0LIi6Ur LeXuPIUn/vUYQPiNrVDyy30SbbGiTyPGtI9vFmuyGKqLGQb2pHRTNsj3/c94KuFKK3gKcb RMqFVvRkH9g3Mi7M/kMA0HCrYfUib9/ex1cyv7MQlRcFDCz67gz0mVHPEgU76w== 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 4Rmvd853qyz1GWc; Fri, 15 Sep 2023 00:07:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38F078cI094890; Fri, 15 Sep 2023 00:07:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38F078mH094887; Fri, 15 Sep 2023 00:07:08 GMT (envelope-from git) Date: Fri, 15 Sep 2023 00:07:08 GMT Message-Id: <202309150007.38F078mH094887@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: 03bfee175269 - main - vfs: use vnlru_read_freevnodes for the freevnodes sysctl List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 03bfee175269960c67cab64d761bbb5eb9ac5878 Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=03bfee175269960c67cab64d761bbb5eb9ac5878 commit 03bfee175269960c67cab64d761bbb5eb9ac5878 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-14 23:53:11 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-15 00:06:57 +0000 vfs: use vnlru_read_freevnodes for the freevnodes sysctl For a more accurate result. --- sys/kern/vfs_subr.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 84219f3b5c12..823b8005aa4d 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -184,8 +184,6 @@ static struct vnode *vnode_list_reclaim_marker; */ static long wantfreevnodes; static long __exclusive_cache_line freevnodes; -SYSCTL_ULONG(_vfs, OID_AUTO, freevnodes, CTLFLAG_RD, - &freevnodes, 0, "Number of \"free\" vnodes"); static long freevnodes_old; static counter_u64_t recycles_count; @@ -350,6 +348,19 @@ SYSCTL_PROC(_kern, KERN_MAXVNODES, maxvnodes, CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_maxvnodes, "LU", "Target for maximum number of vnodes"); +static int +sysctl_freevnodes(SYSCTL_HANDLER_ARGS) +{ + u_long rfreevnodes; + + rfreevnodes = vnlru_read_freevnodes(); + return (sysctl_handle_long(oidp, &rfreevnodes, 0, req)); +} + +SYSCTL_PROC(_vfs, OID_AUTO, freevnodes, + CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, sysctl_freevnodes, + "LU", "Number of \"free\" vnodes"); + static int sysctl_wantfreevnodes(SYSCTL_HANDLER_ARGS) { From nobody Fri Sep 15 15:34:15 2023 X-Original-To: dev-commits-src-main@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 4RnJBw158Cz4sslv; Fri, 15 Sep 2023 15:34: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RnJBw0clSz4ThQ; Fri, 15 Sep 2023 15:34:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694792056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GyqyfsPXLCe0P4QAKmr6MyROZtcQlqWIu+ZbDFQkgMI=; b=vUQe5+kLrUyUvIdc+GP8V7WnvngB1O5iTxM+L4kNKBBzAR3TITXMKtmy2G21W7gUYEcT1C 2kXytHmeKY5stVMkA2m4KPyPizAoJcc/hhGDjRV53CUp5Lo0pzdWoDUa4G9FWwBNd3Bvki hrJBooAGxlBjalvLkkEu/FRru0hIK+h/LPNnKfOedp5Pk4EsCovlwRjF7OKKJoVyv3Vt5y 6SkHX7UkH8m0lf4TnMnW0IPHwa2XrPYI2Fqr+/jGdRMpTc1sfwyRnEWYlRGwlsUIb4YPX/ /VyY6BTCKOrAIVUb0JJEvajHIQSrkjtlskiC6Qgr1+k0ScF2tMp6QbIYa8DpBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694792056; a=rsa-sha256; cv=none; b=tn4/9hEUvJk1W6/ZtttJJkWi9f3KeERmMo9gxXM3cpd18yW01PVCnQfhkld3tgDCTpl/De 1fRgJ2KbH3W47p7qnqqw03Cs568aYu02mHMBHJIkkV65p5hJlbzmCHPXZdrv1PYm/B4/Dp 0Xtrh1zr1wN2VwB6SDmgrtxx4YgokT9kkEIFrZ8+IkmZaQ6GQXSWeJWn0LfKIAA0lcUOc0 1xinxRKBvnYJuNyMU6F68/X1rpfTeD+n6ajsLr2WGisgFtFeHt5ICu8EzUsHeHdaoD4kqE Yt0JBmSkshEoyVjDsU/0mjfc4eH5cDfou8lQwVcLcekdjXeXFhXLiddyiFDhBg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694792056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GyqyfsPXLCe0P4QAKmr6MyROZtcQlqWIu+ZbDFQkgMI=; b=u4poh/yQal5z3ZLQ5KxFNrjAHQKTzmZlqmSI4bYUSfnJZq+UMFFuX843XZQOLC3hAPM9gH +v2X/McdxoPCldUZVVC0HlAwzFYIJDLRauP0Xzq5wzAWbdzM4cLBIfn//D0V138vdzSjAe +4sFuf5iqEY0DRTu4hvXGklkF/QJgNaq6ENFnZ7Hqzge7zsB7x2QVseSNIila5Mox5/XfW bdmCGA+7YKD8VKIfxRrCKUbzbKFjL82kvWJn6gUAsHK+3XhpIJ3Xnc0XeNxbtiqFZywHTF l8Q0pVpB4JMIrDv13HRHMBTKyAG1AoXMziTIdRLnoo0hBMWZFXkK+om6Fml94Q== 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 4RnJBv6p62zTpF; Fri, 15 Sep 2023 15:34:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38FFYFbB040764; Fri, 15 Sep 2023 15:34:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38FFYFcD040761; Fri, 15 Sep 2023 15:34:15 GMT (envelope-from git) Date: Fri, 15 Sep 2023 15:34:15 GMT Message-Id: <202309151534.38FFYFcD040761@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis <christos@FreeBSD.org> Subject: git: bbe8195bfad6 - main - kinst: do not look for a function epilogue List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: bbe8195bfad620e01a7b1cfdb0de3e4b65a72949 Auto-Submitted: auto-generated The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=bbe8195bfad620e01a7b1cfdb0de3e4b65a72949 commit bbe8195bfad620e01a7b1cfdb0de3e4b65a72949 Author: Christos Margiolis <christos@FreeBSD.org> AuthorDate: 2023-09-15 15:33:41 +0000 Commit: Christos Margiolis <christos@FreeBSD.org> CommitDate: 2023-09-15 15:33:41 +0000 kinst: do not look for a function epilogue kinst currently only traces functions that start and end with the usual function prologue and epilogue respectively. Ignoring functions that do not have an epilogue however, makes the filtering too strict, as this means that we can not trace functions that never return (e.g vnlru_proc()). This patch relaxes the filtering and only checks whether the function pushes the frame pointer. Reviewed by: markj Approved by: markj Differential Revision: https://reviews.freebsd.org/D41876 --- sys/cddl/dev/kinst/amd64/kinst_isa.c | 18 ++++++++++-------- sys/cddl/dev/kinst/riscv/kinst_isa.c | 11 +++++------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/sys/cddl/dev/kinst/amd64/kinst_isa.c b/sys/cddl/dev/kinst/amd64/kinst_isa.c index 398f30a281c0..b1d3d8727ead 100644 --- a/sys/cddl/dev/kinst/amd64/kinst_isa.c +++ b/sys/cddl/dev/kinst/amd64/kinst_isa.c @@ -22,7 +22,6 @@ #include "kinst.h" #define KINST_PUSHL_RBP 0x55 -#define KINST_POPL_RBP 0x5d #define KINST_STI 0xfb #define KINST_POPF 0x9d @@ -502,7 +501,7 @@ kinst_make_probe(linker_file_t lf, int symindx, linker_symval_t *symval, const char *func; int error, instrsize, n, off; uint8_t *instr, *limit, *tmp; - bool push_found, pop_found; + bool push_found; pd = opaque; func = symval->name; @@ -521,17 +520,20 @@ kinst_make_probe(linker_file_t lf, int symindx, linker_symval_t *symval, * manipulations since they might correspond to exception handlers. */ tmp = instr; - push_found = pop_found = false; + push_found = false; while (tmp < limit) { - if (*tmp == KINST_PUSHL_RBP) + /* + * Checking for 'pop %rbp' as well makes the filtering too + * strict as it would skip functions that never return (e.g., + * vnlru_proc()). + */ + if (*tmp == KINST_PUSHL_RBP) { push_found = true; - else if (*tmp == KINST_POPL_RBP) - pop_found = true; - if (push_found && pop_found) break; + } tmp += dtrace_instr_size(tmp); } - if (!push_found || !pop_found) + if (!push_found) return (0); n = 0; diff --git a/sys/cddl/dev/kinst/riscv/kinst_isa.c b/sys/cddl/dev/kinst/riscv/kinst_isa.c index 9c1f4a239f83..1fabde189712 100644 --- a/sys/cddl/dev/kinst/riscv/kinst_isa.c +++ b/sys/cddl/dev/kinst/riscv/kinst_isa.c @@ -448,7 +448,7 @@ kinst_make_probe(linker_file_t lf, int symindx, linker_symval_t *symval, kinst_patchval_t *insn, v; uint8_t *instr, *limit; int instrsize, n, off; - bool lrsc_block, store_found, ret_found; + bool lrsc_block, store_found; pd = opaque; func = symval->name; @@ -464,16 +464,15 @@ kinst_make_probe(linker_file_t lf, int symindx, linker_symval_t *symval, return (0); /* Check for the usual function prologue. */ + store_found = false; for (insn = (kinst_patchval_t *)instr; insn < (kinst_patchval_t *)limit; insn++) { - if (dtrace_instr_sdsp(&insn) || dtrace_instr_c_sdsp(&insn)) + if (dtrace_instr_sdsp(&insn) || dtrace_instr_c_sdsp(&insn)) { store_found = true; - else if (dtrace_instr_ret(&insn) || dtrace_instr_c_ret(&insn)) - ret_found = true; - if (store_found && ret_found) break; + } } - if (!store_found || !ret_found) + if (!store_found) return (0); n = 0; From nobody Fri Sep 15 19:40:59 2023 X-Original-To: dev-commits-src-main@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 4RnPgb48Zcz4sj97; Fri, 15 Sep 2023 19:40:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RnPgb3jVJz3clk; Fri, 15 Sep 2023 19:40:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694806859; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EcxyQ687zSf9/WFyWsZKpCBK1EvATAI7AHK8E+2usqs=; b=oHKfMnw9oyyF3CqYm/L8N5H2ANa/bIVkZHsoa1djxMCwsx8FO4TTdkJjPmBrfEmFnGBwru 643htK1c5PM9MGPRnc8/lKVLH58ne2U/vH7sK1O+eZEVa8WPYnLIoN5VoHP6yBtCFm/6/e 8+Tbfk1vVnNAlNrFCIXpE2D22upJx6D73f1myMihrGpoAW6iY732HA7plAG6kJCwyzr5zM TXaoTlXyxAIlwd9z0Q4/SfH6IchJT/SqBohNBgaLWMmNUywzzMoykStIicaaiq4iVfKybm LQS3Uyyb6piGlFvSPTJP7zMEp3ddxDH9rZzv800X88SuRL/dKKXc9RpWCwePrQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694806859; a=rsa-sha256; cv=none; b=FmESgEgOmwFf+Yfz6Re6UiqxRRKJrKVd1r3whXROBV3hpsOh0QNmEOAPb3cRX9nCkqksyZ UqVMitGEYo7RStudx72vOGHFcqbd7jf/Joz5VEZu/jCpSRfIY12IRzViueJdg5rRHr1osG PA4kWdTw0gsOyUXSJPeEGhQ3M8NzZ/wxRlGqv/OWUsqogSCgpeDGp5azcvKpzIFD99SpS+ supgUyD06hd8aaToldcamn9iAXIb9SKhMBWwbeWsiBJlH/LAUkANCo0O6GSO2AmrvAiM/s zOFFWtY5QI3YpCbJU/ZmYZk09ZdoQlqnf3TdL9eUTfS0a0nodTf2bdU1pxqYBg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694806859; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EcxyQ687zSf9/WFyWsZKpCBK1EvATAI7AHK8E+2usqs=; b=km7JmI9ah7K7z/7zvSYBFvz9cX6LXVeNUTg3O5eUX6Ku0/JFy7wi5YvoGf9WtiAZKTQcTG VsXrmSY7TVG2IoYYjCDS01Hh/+BBEEuQp4WLNEN0VhetAcfJIEnzGxby4dhf3jHx3WNUPT +85640UY68NTf5sIJcJ1ty4HCVh6Y0LmhZiYvTYC/w17ofxdog6f4tlx9yMF9Rwkjx3Zsr KH90gRlBDoUhhLAqpvDkT9AUok+xb0XDFtJEWarwG/RcyTtNRofy1qEjWCFvqZSm4Ri3gt CbP02gyhEm3J1Ni5TeDSdibjvrURwz1UO6Z6TfJ3yT0e0JKv7Wrah1A5DUXKOg== 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 4RnPgb2mhkzcYk; Fri, 15 Sep 2023 19:40:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38FJexJN048498; Fri, 15 Sep 2023 19:40:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38FJexCc048494; Fri, 15 Sep 2023 19:40:59 GMT (envelope-from git) Date: Fri, 15 Sep 2023 19:40:59 GMT Message-Id: <202309151940.38FJexCc048494@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: 72d97e1dd9cc - main - rtld: output rtld errors into the dbg channel List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 72d97e1dd9cc72a2acb96e35e56db6f3f51bca7d Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=72d97e1dd9cc72a2acb96e35e56db6f3f51bca7d commit 72d97e1dd9cc72a2acb96e35e56db6f3f51bca7d Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-09-15 19:26:50 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-09-15 19:40:41 +0000 rtld: output rtld errors into the dbg channel Sponsored by: The FreeBSD Foundation MFC after: 1 week --- libexec/rtld-elf/rtld.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index aa7e6020a085..f8c4c18b5d5e 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -1073,6 +1073,7 @@ _rtld_error(const char *fmt, ...) fmt, ap); va_end(ap); *lockinfo.dlerror_seen() = 0; + dbg("rtld_error: %s", lockinfo.dlerror_loc()); LD_UTRACE(UTRACE_RTLD_ERROR, NULL, NULL, 0, 0, lockinfo.dlerror_loc()); } From nobody Fri Sep 15 21:36:51 2023 X-Original-To: dev-commits-src-main@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 4RnSFH6cz7z4tDnT; Fri, 15 Sep 2023 21:36: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RnSFH67Rhz4TKK; Fri, 15 Sep 2023 21:36:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694813811; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YgUJ4C5OVB7RcvH16yC77Hxh6fndiej8PFG0XTcLrok=; b=XP0QuaVZIMWdeJ8rX3ub/rgU2JYGCvyjdM0Y2Kp07P3ex0QcpknY6FH2YeFswozXjjism1 0yXqYD/gKCsmcpszKTuhG4ElyckP8lrCVoRHD6sXdnyvI/XMCTIsUYXaI7C89T6nZF4TXB 3g5IkWOqTkmXkJPDb8sx4abBobMxxzpioQyOPYwsENCPotW/GKCz9ndNLARzlBoDi9WJt6 u5K1fnetIFF8ZW52aypvWjuXtoVjC+gxjkNrW5dw7QF4ky55h9iq6khK+rGRTJeD555IWC 2CaxvdVeE0bAV3QnhbM2VHufWygpONFNLZW9tF1o6IvK+pTmiBlf8ttHkJbjBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694813811; a=rsa-sha256; cv=none; b=NTzHuN+FRDjhZRY57qF12zRIU1IjC//XrO3O1JZg4GSf9yk/qXPuRTJUwquqnvQL2KD51j i6B2TLVtXLzK6ya5ocsinVlv+Iach4+uL2bdNwHkt1/olOlusUOewO6TNOs/ofSPzjS4W6 mn7k93g0XKRxoOGqgjx039jWoLQXFZq+8mlwwakpTTaH/yaprJ+1/3QLvBPMMdGMl930Ws NLPdpDsTWkQ6rihr7lwNgnWd/uXz8KudrFdV7eko7z0wSZ1wpjmUZPdQD1wtZphdGo/fl4 hRff6ScA5eMmiRS7pzWbewD2/GPmcJtpDau1dpIquZQ7wL7hhx7NYVzsFaS3NA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694813811; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YgUJ4C5OVB7RcvH16yC77Hxh6fndiej8PFG0XTcLrok=; b=Wo2Rv8rhw5lC4wqMv8HsAfPiYmoTVB4CL2EC55gUjxbHEW13IPW2XPpo3Q80/a5G3yK8Ce 0LwyqfeO+UhqFHDgqnP10Bp/W0BLLDzEI42yI4jy5gQ+vknETqNxuKe8Tv2S6cMwli1GB3 556UvG8Nk2tn3ejyoulLclug46vSq8Vq+1WJlu9jcFZvqh7WqQnAz4YlKVYD8vW/MOysWX hTouVcx+obcNsfd7HioLxeU9aI6CBoldTmcO0PNrrr3lRKfQwEIq7a76Of/VytM5eTM4je iWzVvVSE1m4Uw4VoGNeMiGLHyegsN3a42VqCNbIhvvvCMyJ2Xr/sELmdj2Zl7w== 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 4RnSFH54ggzgLS; Fri, 15 Sep 2023 21:36:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38FLapUi038045; Fri, 15 Sep 2023 21:36:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38FLap9X038042; Fri, 15 Sep 2023 21:36:51 GMT (envelope-from git) Date: Fri, 15 Sep 2023 21:36:51 GMT Message-Id: <202309152136.38FLap9X038042@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org> Subject: git: 7e0a7ef95fac - main - tcpdump: Initialize tzcode early. List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 7e0a7ef95fac1183854cab662bd9afa4647422d6 Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=7e0a7ef95fac1183854cab662bd9afa4647422d6 commit 7e0a7ef95fac1183854cab662bd9afa4647422d6 Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2023-09-15 21:36:41 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2023-09-15 21:36:41 +0000 tcpdump: Initialize tzcode early. An explicit tzset() call is usually not needed as it happens implicitly the first time we call localtime() or mktime(), but in some cases (sandboxing, chroot) this may be too late. PR: 273807 MFC after: 3 days Reviewed by: jrm Differential Revision: https://reviews.freebsd.org/D41880 --- contrib/tcpdump/tcpdump.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/tcpdump/tcpdump.c b/contrib/tcpdump/tcpdump.c index 52209fedb999..8cfcb04fc093 100644 --- a/contrib/tcpdump/tcpdump.c +++ b/contrib/tcpdump/tcpdump.c @@ -1564,6 +1564,8 @@ main(int argc, char **argv) if (abort_on_misalignment(ebuf, sizeof(ebuf)) < 0) error("%s", ebuf); + tzset(); + while ( (op = getopt_long(argc, argv, SHORTOPTS, longopts, NULL)) != -1) switch (op) { From nobody Sat Sep 16 04:23:32 2023 X-Original-To: dev-commits-src-main@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 4RndGY2w5cz4smBD; Sat, 16 Sep 2023 04:23: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RndGY0RZNz4bgV; Sat, 16 Sep 2023 04:23:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694838213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/8th/LDc9pWq9zDnwk97wjBli/u+49Au75i0yCgrUSA=; b=mcncSohkY4RxD1vSD4ah46hyuXI9abLJjRCmpgUXaATNv20UXXBPvhMjCRWSZA3X6Q3yJ+ f9dy4kDRw/zOeCFFb1vDwEYCXIYvqCuwhtMNjDzFFtPcGlW51e9mZIn+Kr+C0zGZlD4BDx egjXjfGoDAgHtsIHEFMfgS47fIQdMQfTV8qXdTXScG+OnoxnmuTHpmqtbHOZepJvyhIIA8 oBoSHGF/a0UwExYVSSVwmgYSDk2mhnGNGP0Z/CcAIdmI93Pj3szNfjlfc1e7OZSL/xwE+4 ECxVO3eipO1mernjarsmWpE/zNE5i1wt+ihuw8CXgKDwqrQU9DsLg6+WCrD0Jg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694838213; a=rsa-sha256; cv=none; b=m2sDc3qoOegViJwP45spl30Bt1TaNKVePU7M3772gfO9+WFqi8ZiAtZPIsRhTBpkHIkY6H 0To40peYlW1YGzcaBwlZVDkOSVCrL2oiQ420laae0uCjq8Px2hmoKgLa/13SrT+F28Qwrn Y/PopVijXMU5PjQpN3X3yumIztx7sHXcilWIDN3os3JKuyh1UhgsHJBaIimLUdgx1cgh85 K2/k6NHX8ed/VBJugilO1eP6mn6wbIhrTand8Flg2g/8YCL6oqblCcjNuLRizIf3ic1+yj SgHmq8iRt0M+kZIbRvmALvB3F+u4xOLkEon9pW/H1o1U/frloPcsCo93g3py2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694838213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/8th/LDc9pWq9zDnwk97wjBli/u+49Au75i0yCgrUSA=; b=IcMOFkRmNcmMz9V+rkK/583D7h8bWgAKCAFds7/ZjUg8lTMludD0whH4xzCqEpaFHbOnTG YGbmcvu8JR/p434BSY/v1T2gJgVABtZsRoiS2dcWnL9cP6TnmFkGvWiTqlv8aRgwqh6WWJ DuOPNP+VZVuH566w4J2tLTGkZNKIrqGjJEDQLW6Cjo7/RzVuY3tZWKZou9f+JIrziLtoV4 mWTV8034AXZv8v4QMw09qtdMzKpCDfMZDTCx6+hr2UC69Bk/obpSMNnA7Ps+kPhNfCOFvf gt4j1XQb+30Vkr1qa2nOXSL+Uppld7bl48cdwnNf6CmOSgDcj49irFE/t1MiCQ== 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 4RndGX6HwBzsfF; Sat, 16 Sep 2023 04:23:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38G4NWSA019461; Sat, 16 Sep 2023 04:23:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G4NW9A019458; Sat, 16 Sep 2023 04:23:32 GMT (envelope-from git) Date: Sat, 16 Sep 2023 04:23:32 GMT Message-Id: <202309160423.38G4NW9A019458@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Robert Clausecker <fuz@FreeBSD.org> Subject: git: 953b93cf24d8 - main - lib/libc/amd64/string/memcmp.S: harden against phony buffer lengths List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 953b93cf24d8871c62416c9bcfca935f1f1853b6 Auto-Submitted: auto-generated The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/src/commit/?id=953b93cf24d8871c62416c9bcfca935f1f1853b6 commit 953b93cf24d8871c62416c9bcfca935f1f1853b6 Author: Robert Clausecker <fuz@FreeBSD.org> AuthorDate: 2023-09-14 05:19:01 +0000 Commit: Robert Clausecker <fuz@FreeBSD.org> CommitDate: 2023-09-16 04:20:32 +0000 lib/libc/amd64/string/memcmp.S: harden against phony buffer lengths When memcmp(a, b, len) (or equally, bcmp) is called with a phony length such that a + len < a, the code would malfunction and not compare the two buffers correctly. While such arguments are illegal (buffers do not wrap around the end of the address space), it is neverthless conceivable that people try things like memcmp(a, b, SIZE_MAX) to compare a and b until the first mismatch, in the knowledge that such a mismatch exists, expecting memcmp() to stop comparing somewhere around the mismatch. While memcmp() is usually written to confirm to this assumption, no version of ISO/IEC 9899 guarantees this behaviour (in contrast to memchr() for which it is). Neverthless it appears sensible to at least not grossly misbehave on phony lengths. This change hardens memcmp() against this case by comparing at least until the end of the address space if a + len overflows a 64 bit integer. Sponsored by: The FreeBSD Foundation Approved by: mjg (blanket, via IRC) See also: b2618b651b28fd29e62a4e285f5be09ea30a85d4 MFC after: 1 week --- lib/libc/amd64/string/memcmp.S | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/libc/amd64/string/memcmp.S b/lib/libc/amd64/string/memcmp.S index d192229677b3..dc8bcff73cb9 100644 --- a/lib/libc/amd64/string/memcmp.S +++ b/lib/libc/amd64/string/memcmp.S @@ -328,13 +328,28 @@ ARCHENTRY(memcmp, baseline) movdqu 16(%rsi, %rdi, 1), %xmm1 pcmpeqb 16(%rdi), %xmm1 # compare second half of this iteration add %rcx, %rdx # pointer to last byte in buffer - pcmpeqb %xmm2, %xmm0 + jc .Loverflow # did this overflow? +0: pcmpeqb %xmm2, %xmm0 pmovmskb %xmm0, %eax xor $0xffff, %eax # any mismatch? jne .Lmismatch_head add $64, %rdi # advance to next iteration jmp 1f # and get going with the loop + /* + * If we got here, a buffer length was passed to memcmp(a, b, len) + * such that a + len < a. While this sort of usage is illegal, + * it is plausible that a caller tries to do something like + * memcmp(a, b, SIZE_MAX) if a and b are known to differ, intending + * for memcmp() to stop comparing at the first mismatch. This + * behaviour is not guaranteed by any version of ISO/IEC 9899, + * but usually works out in practice. Let's try to make this + * case work by comparing until the end of the address space. + */ +.Loverflow: + mov $-1, %rdx # compare until the end of memory + jmp 0b + /* process buffer 32 bytes at a time */ ALIGN_TEXT 0: movdqu -32(%rsi, %rdi, 1), %xmm0 From nobody Sat Sep 16 07:40:33 2023 X-Original-To: dev-commits-src-main@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 4Rnjds4HZRz4tdMg; Sat, 16 Sep 2023 07:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rnjds3sJfz4Fd0; Sat, 16 Sep 2023 07:40:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694850033; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=My3q3mWQlr6xS0aHDHBjlu36cYDjbTuhhtKSs0nUs88=; b=NFnvM0wur9vSdLAbi5/jDptAb9mqBuIEzLbu/hDXilIOwlN1bgOxwEhM5BoQKC9bJC9Ire JlGDCOYH+icTPS5bkkJCNQkBMIqiplX/VXorbXxmORJnMyYraaTj15bno84dL+YUbgipje N59X2Kqy4H3uqibZxLge/+DUSVUTwf8Et3BR+p09qfulkn0IqKYVa6PDZ9lB101ME4yUwV dDRwu1H1f0VkFaDvmNXiN64m9mNMqltmX5oy9RRfqBh75wLLS30TjI5HjF+ZUDC6bXyLrT sc8dUdbixRorMah/r/MY8Lp0Mjj+a+h8y58JVX/rZt+Rw5LMIpAdXXHgGwldYQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694850033; a=rsa-sha256; cv=none; b=BhY1LfKwHc9E7+TkYIju2RSyQKoYq7Aw2PViOhljicOuHmo3yZIIlFA3OM4IYT9JFyQ51i cHnYi+Zzup4R9mFo8bWwuLrBQZrCqj65VwCEgx2QnjdxSokyciGuBIZbuv9R7g4MavSJZT ZHpoY8IY8uTCrGIMRO67oTDyM1tWqlu+wgPT1AD+z4QFoPAyL7xclFgYN6faNZuQWsY15E ZRtK2liKmn3JO/Q2HXyolGY+pQLZfSwhCvWyXiV/l5VTq7gcuLujNsZNpiIMagaIuQR9LJ vHlpatEHNTFfBfIMRfoQpcuwpaqdAlf/Prir2uwl7esnmM0t7F5Psk4zUmaikQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694850033; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=My3q3mWQlr6xS0aHDHBjlu36cYDjbTuhhtKSs0nUs88=; b=HLkEFUtPmBSdm3ngcgmuDkwav+/X6tt1gKx2URhIah7OUEk8hrf8Ur/shbVsblsvRaHBTV ZbEsomAILZss0sPHMBARNvpCb0LWjCwMfgSTiZDAgRyvWzA+nBMRVjI1hwG9oav5S99L/n 0tGp4jYXYwIXXeU8fbQIcxvDtGNtXgjPmz+zEkYrglViEulZErZqMzfsVnVD7eWouz/Rsz nI2NxAG2MeCJshK7InrQb1DHNXX4HV8pH5r4Ly81d6gaqlnDWeMo57BZgxwrxIJ7rDXdS6 yOvqyrYLgTs3OH6GFefLemlfkuTktUSLmt5eO7VGGBnVG/eMbFx8g6FaA2CZJg== 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 4Rnjds2qBDzxXB; Sat, 16 Sep 2023 07:40:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38G7eXWZ042863; Sat, 16 Sep 2023 07:40:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G7eXrU042860; Sat, 16 Sep 2023 07:40:33 GMT (envelope-from git) Date: Sat, 16 Sep 2023 07:40:33 GMT Message-Id: <202309160740.38G7eXrU042860@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: 2a689cadf092 - main - vfs: retire kern.minvnodes List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2a689cadf092a3319d7619c3f4aa242011c20c8e Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=2a689cadf092a3319d7619c3f4aa242011c20c8e commit 2a689cadf092a3319d7619c3f4aa242011c20c8e Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-16 07:33:36 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-16 07:33:36 +0000 vfs: retire kern.minvnodes It was marked as legacy in 2005. --- sys/kern/vfs_subr.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 823b8005aa4d..f4cccf2b4e1f 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -385,8 +385,6 @@ SYSCTL_PROC(_vfs, OID_AUTO, wantfreevnodes, CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_wantfreevnodes, "LU", "Target for minimum number of \"free\" vnodes"); -SYSCTL_ULONG(_kern, OID_AUTO, minvnodes, CTLFLAG_RW, - &wantfreevnodes, 0, "Old name for vfs.wantfreevnodes (legacy)"); static int vnlru_nowhere; SYSCTL_INT(_debug, OID_AUTO, vnlru_nowhere, CTLFLAG_RW | CTLFLAG_STATS, &vnlru_nowhere, 0, "Number of times the vnlru process ran without success"); From nobody Sat Sep 16 07:40:34 2023 X-Original-To: dev-commits-src-main@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 4Rnjdt5HGvz4td8D; Sat, 16 Sep 2023 07:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rnjdt4kN2z4FrD; Sat, 16 Sep 2023 07:40:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694850034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UKNruRthCfL/doOk4OGslX8NxxFJ81iq8KvtDqXc28A=; b=hdEEQ6tjHMMIlfD3BJihI/VeeFeiVABDffjX8I5Gj7K5RiG5lypA/ZPVbQlA4pmEjetyjj UdtlC0/Q7TrzlU0anjP/ackxEd92t5FA6YWg73E5gE0LcYR5yxKgopIr9+yPTkWy3+fOso RG8Bmp7hI0e5rfAftg7o2tpYA5qFEf/HdrC4QRc9GrXI54ogKhjPXNEr8bFrPrginC5Y3g FdUqaDlYV0R1iCIkfQ5pzGe1jVU3YeVU/2HelaiVYGvohCYMaFuLBVg1qi11tr0rpTbaQw tAHx8cWNdkLr9IGszvkscih46J9n1Nj6Xd7e0f7KJ8WsmEf6JJ2eIEeEqAFSqQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694850034; a=rsa-sha256; cv=none; b=pvUowZcx45cMtlSJv6NGyoYTAKpUTSOt0Maop5OsSq2Tn2H5MZgs6MGp6rieW4E59O0CCg uxBRWYqXWgSdrpBTyiPmd2bqwy5C2NOEYFUSHOJytPJ7mcw+lpZs8uR7fHdVvMUAd+pqfF lnKT3a7OQRxpaepOeM11B4ey77LPi9IsNUwAJJqI37Eo9i30PQBiySn0SYBWKAZlCAsrFB scdlwbpDtraB/IK21mr3byY6jnzv2bt/LKKVOSlrt1DJAA5qidcC7MBP2NMyo7M5klQDfU zmGXleNGaYtE7gHVEMzivSH7+4x2kEvoBHr0ED5u3i0hm7xWVxd1dw0iM7RxZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694850034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UKNruRthCfL/doOk4OGslX8NxxFJ81iq8KvtDqXc28A=; b=NY6GETrtEJQvbZrMg+LbfaArAbBjjFdMsrx6Biue9fSC15dXKQuAnRhQs1Af0adzUhCwnZ PIwKSsHVEaGE0iinc5Ljr6eEw3au8kqcMMS6SjldFnRcAbkPWv4+5a8YBuOj92fWtXSj9U 7xOcUtTOoWxmdPp29giZA4YluUFFAak8+GzOu8jPQP82aeZ/amq06q8YCpz7ZK5NQaNwMe XbkRCXeWexCFeo0VksI6ZcOmnIck2/8NdeO08fRatHzsgGCbAMI40ge5QSWvnmT/Um9xDF ESDOoQMm/KeBnb+WbBoH6XoIbumDRK10IB4ibQt83Y99wMb4vEGDYAdmqgz7yQ== 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 4Rnjdt3qnFzxtj; Sat, 16 Sep 2023 07:40:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38G7eYUk042911; Sat, 16 Sep 2023 07:40:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G7eYCP042908; Sat, 16 Sep 2023 07:40:34 GMT (envelope-from git) Date: Sat, 16 Sep 2023 07:40:34 GMT Message-Id: <202309160740.38G7eYCP042908@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: d3e647891243 - main - vfs: group vnode-related sysctls under vfs.vnode List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d3e6478912431309aad36211b6c39b0d741312dc Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=d3e6478912431309aad36211b6c39b0d741312dc commit d3e6478912431309aad36211b6c39b0d741312dc Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-15 21:08:38 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-16 07:39:42 +0000 vfs: group vnode-related sysctls under vfs.vnode Instead of having things scattered through vfs, debug and kern trees. Old names remain for compatibility. Sample output of "sysctl vfs.vnode": vfs.vnode.vnlru.failed_runs: 0 vfs.vnode.vnlru.recycles_free: 0 vfs.vnode.vnlru.recycles: 0 vfs.vnode.stats.alloc_sleeps: 0 vfs.vnode.stats.free: 1310 vfs.vnode.stats.skipped_requeues: 0 vfs.vnode.stats.created: 1686 vfs.vnode.stats.count: 1641 vfs.vnode.param.wantfree: 2097152 vfs.vnode.param.limit: 8388608 --- sys/kern/vfs_subr.c | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index f4cccf2b4e1f..a8477e4b691e 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -126,6 +126,15 @@ static int v_inval_buf_range_locked(struct vnode *vp, struct bufobj *bo, daddr_t startlbn, daddr_t endlbn); static void vnlru_recalc(void); +static SYSCTL_NODE(_vfs, OID_AUTO, vnode, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "vnode configuration and statistics"); +static SYSCTL_NODE(_vfs_vnode, OID_AUTO, param, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "vnode configuration"); +static SYSCTL_NODE(_vfs_vnode, OID_AUTO, stats, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "vnode statistics"); +static SYSCTL_NODE(_vfs_vnode, OID_AUTO, vnlru, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "vnode recycling"); + /* * Number of vnodes in existence. Increased whenever getnewvnode() * allocates a new vnode, decreased in vdropl() for VIRF_DOOMED vnode. @@ -133,10 +142,14 @@ static void vnlru_recalc(void); static u_long __exclusive_cache_line numvnodes; SYSCTL_ULONG(_vfs, OID_AUTO, numvnodes, CTLFLAG_RD, &numvnodes, 0, + "Number of vnodes in existence (legacy)"); +SYSCTL_ULONG(_vfs_vnode_stats, OID_AUTO, count, CTLFLAG_RD, &numvnodes, 0, "Number of vnodes in existence"); static counter_u64_t vnodes_created; SYSCTL_COUNTER_U64(_vfs, OID_AUTO, vnodes_created, CTLFLAG_RD, &vnodes_created, + "Number of vnodes created by getnewvnode (legacy)"); +SYSCTL_COUNTER_U64(_vfs_vnode_stats, OID_AUTO, created, CTLFLAG_RD, &vnodes_created, "Number of vnodes created by getnewvnode"); /* @@ -188,14 +201,18 @@ static long freevnodes_old; static counter_u64_t recycles_count; SYSCTL_COUNTER_U64(_vfs, OID_AUTO, recycles, CTLFLAG_RD, &recycles_count, + "Number of vnodes recycled to meet vnode cache targets (legacy)"); +SYSCTL_COUNTER_U64(_vfs_vnode_vnlru, OID_AUTO, recycles, CTLFLAG_RD, &recycles_count, "Number of vnodes recycled to meet vnode cache targets"); static counter_u64_t recycles_free_count; SYSCTL_COUNTER_U64(_vfs, OID_AUTO, recycles_free, CTLFLAG_RD, &recycles_free_count, + "Number of free vnodes recycled to meet vnode cache targets (legacy)"); +SYSCTL_COUNTER_U64(_vfs_vnode_vnlru, OID_AUTO, recycles_free, CTLFLAG_RD, &recycles_free_count, "Number of free vnodes recycled to meet vnode cache targets"); static counter_u64_t vnode_skipped_requeues; -SYSCTL_COUNTER_U64(_vfs, OID_AUTO, vnode_skipped_requeues, CTLFLAG_RD, &vnode_skipped_requeues, +SYSCTL_COUNTER_U64(_vfs_vnode_stats, OID_AUTO, skipped_requeues, CTLFLAG_RD, &vnode_skipped_requeues, "Number of times LRU requeue was skipped due to lock contention"); static u_long deferred_inact; @@ -345,6 +362,9 @@ sysctl_maxvnodes(SYSCTL_HANDLER_ARGS) } SYSCTL_PROC(_kern, KERN_MAXVNODES, maxvnodes, + CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_maxvnodes, + "LU", "Target for maximum number of vnodes (legacy)"); +SYSCTL_PROC(_vfs_vnode_param, OID_AUTO, limit, CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_maxvnodes, "LU", "Target for maximum number of vnodes"); @@ -358,6 +378,9 @@ sysctl_freevnodes(SYSCTL_HANDLER_ARGS) } SYSCTL_PROC(_vfs, OID_AUTO, freevnodes, + CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, sysctl_freevnodes, + "LU", "Number of \"free\" vnodes (legacy)"); +SYSCTL_PROC(_vfs_vnode_stats, OID_AUTO, free, CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, sysctl_freevnodes, "LU", "Number of \"free\" vnodes"); @@ -382,11 +405,14 @@ sysctl_wantfreevnodes(SYSCTL_HANDLER_ARGS) } SYSCTL_PROC(_vfs, OID_AUTO, wantfreevnodes, + CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_wantfreevnodes, + "LU", "Target for minimum number of \"free\" vnodes (legacy)"); +SYSCTL_PROC(_vfs_vnode_param, OID_AUTO, wantfree, CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_wantfreevnodes, "LU", "Target for minimum number of \"free\" vnodes"); static int vnlru_nowhere; -SYSCTL_INT(_debug, OID_AUTO, vnlru_nowhere, CTLFLAG_RW | CTLFLAG_STATS, +SYSCTL_INT(_vfs_vnode_vnlru, OID_AUTO, failed_runs, CTLFLAG_RD | CTLFLAG_STATS, &vnlru_nowhere, 0, "Number of times the vnlru process ran without success"); static int @@ -1755,7 +1781,7 @@ vtryrecycle(struct vnode *vp) static u_long vn_alloc_cyclecount; static u_long vn_alloc_sleeps; -SYSCTL_ULONG(_vfs, OID_AUTO, vnode_alloc_sleeps, CTLFLAG_RD, &vn_alloc_sleeps, 0, +SYSCTL_ULONG(_vfs_vnode_stats, OID_AUTO, alloc_sleeps, CTLFLAG_RD, &vn_alloc_sleeps, 0, "Number of times vnode allocation blocked waiting on vnlru"); static struct vnode * __noinline From nobody Sat Sep 16 07:52:15 2023 X-Original-To: dev-commits-src-main@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 4RnjvM5Dthz4thCp; Sat, 16 Sep 2023 07:52: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RnjvM4nW0z4JjF; Sat, 16 Sep 2023 07:52:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694850735; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5WHPyqOUvF3T3dId8iLBxVuEEJh674eBdL7VyeGltEo=; b=Ix+cMxCY0j/YNNdX+oo/c/Kzes/4xouQtNab0MTZmYVc/WIA0VmEtbk2B0ofOkYGZZvFjP r+8KGCiae7hNEIanD1mmzAv9M/0P60M8cChzaM46b1/p06iafLWqVurlBooiV1UY7W6NTn 6QSJQVUvHQLjslT3d8/64SStDExLUqK6rqFJRN8mDxS1mMATE3vfblM/s7M5jyPWdv8Pf+ DLwnkRbFeviiIVUC94wQHpATgO66SWVsBZqrqX7oEXLZHJaF2tLfBFOvxO6Dz1VukAA4Wp N+8tziOYn3Av++z8wRmXTd5bx5l4BxZvHxL1s2Fvgu5wZHqJ9JD/K+zloqicEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694850735; a=rsa-sha256; cv=none; b=Y3TLIITnH73RJfmvmnAsqG6jIzThykvTUf7azN93tj9hn4lKaiwiOMz6P0LuvI8KjC9NgV +ftNETd7Z1WIjkEYX6dqgiZyMeLH0b8Vmq+p0+LcnibCpSbQ5yRbWnoFDe+8X4/b5MtAi+ Jfld+409sTqhlpqceswZ4GRhIgGXN5DgMBt0Zz+EgffVywej90enDfivMvMCg1n3OFsWKw iquXYgZlcbJ2vme+DIEFAuKlA883Fp2sDknJMoe3upBMoYAtBK7y5wCSYZMfJO3RVMLbQv nlcBvt+AFxe2QjeHvyMVk4/nOFvepurBQeUSEX30qQGmKc7+RNEE81Po4t+LJA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694850735; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5WHPyqOUvF3T3dId8iLBxVuEEJh674eBdL7VyeGltEo=; b=i59mkb/uDIAu7ceFd8WKsdqg/uLmgTGU3Jb6TOAvI8fW1EZK+WxEI1IXpXjtQ0AsCIq2KQ +xJNHqOVEVhXwZpXgtqtTD3GcWWkj+o84fSIsCbt0JDXonRAk4/LKh9LL0seluiNiJSF8F Rf+XT64YG4M/x1P+bMWY56/ZTR/Ek8NXfTrzetK9HpvQSihHObFvSGHw130a9tLyNDQKAX WD9iCR5IO0u65p0F12fdWBHAj19H9uir6NnA4pJsJNVl/w2HCw1NSblFWu8ZFqXw+eK1ls 09XrDitJo0uIEhrs8ZBForcNzUWJCyJbBGuHZOEz9ktSbgJGjSIgR8h4Aa+SIA== 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 4RnjvM3s4czyZ4; Sat, 16 Sep 2023 07:52:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38G7qF96065745; Sat, 16 Sep 2023 07:52:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G7qFSG065742; Sat, 16 Sep 2023 07:52:15 GMT (envelope-from git) Date: Sat, 16 Sep 2023 07:52:15 GMT Message-Id: <202309160752.38G7qFSG065742@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dimitry Andric <dim@FreeBSD.org> Subject: git: cadbf320b352 - main - ObsoleteFiles: cleanup old libclang_rt files for powerpc64le List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cadbf320b352b3691cdfa90ad8ba818efca4ea68 Auto-Submitted: auto-generated The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=cadbf320b352b3691cdfa90ad8ba818efca4ea68 commit cadbf320b352b3691cdfa90ad8ba818efca4ea68 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2023-09-16 07:47:19 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-09-16 07:47:19 +0000 ObsoleteFiles: cleanup old libclang_rt files for powerpc64le PR: 273776 MFC after: 3 days --- ObsoleteFiles.inc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 15e3b000de3c..10bf398e721a 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -390,11 +390,14 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-i386.so OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64.so +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64le.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64le.so OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-riscv64.a @@ -406,10 +409,12 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.cfi-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.cfi-arm.a @@ -430,9 +435,11 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-arm.a @@ -441,6 +448,8 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc64le.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc64le.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc64lele.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.safestack-aarch64.a @@ -451,6 +460,7 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-aarch64.a @@ -458,19 +468,23 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a @@ -478,6 +492,7 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-arm.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a @@ -485,6 +500,7 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-powerpc64.a +OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-powerpc64le.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-riscv64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.xray-aarch64.a From nobody Sat Sep 16 08:20:47 2023 X-Original-To: dev-commits-src-main@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 4RnkXH6vr6z4sZc6; Sat, 16 Sep 2023 08:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RnkXH6Qpgz4MqW; Sat, 16 Sep 2023 08:20:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694852447; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2v8RuG+Ne/rWskxq2qfUkNaZ/hFIa8iKHhD4SCnaAqo=; b=XsBtVyECUigfbCH2rYbirYIt0BXmCi8mQNOQFjH+rPgZNKHrQ3pSyZAKUCv5Hndvr58L52 nE9xlKXFpJyRQDlZRTDl4lixTsbYog0CVjniGMKMiwDWtaGoO6KMf4TCjDREKQ54rgjM93 yVUDZNPsl7t495gijg9bqfOVZ9LO5ZWd/s4fz35ukmxUkCikqO6UJXGJKsMIDseI3ueVZT PspiK1R/Z5XLIphJz5u18oSfERbhAb6bRJyQRsBCq3uvSlI+h58DOhLGfo4q36RpaPBdb3 wRZpOiRSQexyRI4GGsty63GOmGguA2PtaoamS2oN6GUnUhaMqmJZthf3ASlLaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694852447; a=rsa-sha256; cv=none; b=GtEX/jOS+ma1QVu0ACRfzrV6i2NioWxO1BPw17nVerR3KI2c8FCRzneHPvt/5NA7QaTK4o w4D/3NP4BGaaGoGjjsDFTNuD1ibTHgexDfvJY2KG2w5DnuyKq0ZFYLxA+qLPAmrV80bLeO 1zTj7LCZS3l8lgI8WjOBxFxVKhBlUTuJAd9FGQqVBK2rChh2kpoLDxs/q8E0A5T0x0Fzcr wo8UHVwSpOV11gXffQ1/lm8KGH/94VyUBGi0CXyRBL+msd87MrCEFg+PfPS0w13jdU10Cc snxc0Vv9dqJZV5BMOEtG1EzpHK//VcbC9S2Ev1l7oUQh2vTGcuLmid0rwNiB0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694852447; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2v8RuG+Ne/rWskxq2qfUkNaZ/hFIa8iKHhD4SCnaAqo=; b=emVbUIsRv99FPkn6/IBxzyznznja8MufoWosfpwfsn3MMaFvA0dcSPtOT5scSxkQfzyixr Y7/U6VvIex8zsVlzC4dxeMtg9fACEfuep4fHO7N+YUWSdysUTtrShf7R1BPEE+W6TvevNR HsAU5HJ7SaAmp83Q41D6fP9OPy16Pvh4gYQ21nZXORHwTthWq6LDkHKwdeLfjoVO5lFxag yBoCpOcrybIFkihMYvRhMCXMty73XDZTU13+9xiU+SC1lLUOMmGq5AkB+4kEinqHEPmBCt Ftd6C4weuSXGZvTkiGv5tNG69/uhCVODS4Pn//aTx6kp8BmT3F4Tjl1eozrGXg== 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 4RnkXH5VK3z1005; Sat, 16 Sep 2023 08:20:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38G8KlYp009965; Sat, 16 Sep 2023 08:20:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G8Kl4b009962; Sat, 16 Sep 2023 08:20:47 GMT (envelope-from git) Date: Sat, 16 Sep 2023 08:20:47 GMT Message-Id: <202309160820.38G8Kl4b009962@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: 509d843a982b - main - vfs: s/u_long vstir/bool vstir/ List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 509d843a982b39a531a558c65794ffffcdf93ae8 Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=509d843a982b39a531a558c65794ffffcdf93ae8 commit 509d843a982b39a531a558c65794ffffcdf93ae8 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-16 08:19:24 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-16 08:19:24 +0000 vfs: s/u_long vstir/bool vstir/ --- sys/kern/vfs_subr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index a8477e4b691e..9d5b1b7e472e 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -325,7 +325,7 @@ u_long desiredvnodes; static u_long gapvnodes; /* gap between wanted and desired */ static u_long vhiwat; /* enough extras after expansion */ static u_long vlowat; /* minimal extras before expansion */ -static u_long vstir; /* nonzero to stir non-free vnodes */ +static bool vstir; /* nonzero to stir non-free vnodes */ static volatile int vsmalltrigger = 8; /* pref to keep if > this many pages */ static u_long vnlru_read_freevnodes(void); @@ -1627,7 +1627,7 @@ vnlru_proc(void) */ if (vstir && force == 0) { force = 1; - vstir = 0; + vstir = false; } if (force == 0 && !vnlru_under(rnumvnodes, vlowat)) { vnlruproc_sig = 0; @@ -1799,7 +1799,7 @@ vn_alloc_hard(struct mount *mp) rfreevnodes = vnlru_read_freevnodes(); if (vn_alloc_cyclecount++ >= rfreevnodes) { vn_alloc_cyclecount = 0; - vstir = 1; + vstir = true; } /* * Grow the vnode cache if it will not be above its target max From nobody Sat Sep 16 09:27:13 2023 X-Original-To: dev-commits-src-main@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 4Rnm0y2CsBz4ssJw; Sat, 16 Sep 2023 09:27:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rnm0y1nbdz4X0Z; Sat, 16 Sep 2023 09:27:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694856434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qhW/+A/vbpMx9ynwEsWblHpkH0A1bO/TRvAxw+suAyM=; b=eJ2My8oxC927Lwc9lbQ02+1l2bEdoiMQ/sC+PVWLGM1juMV/hm+dCWFoEeMdrR9JTk/hWI fLMoKUHeOXMvRBX7esRVS4+9Kj6v1UQipuoYpPgDYlr2L2DFVp14S51Zwl46gH+MsUShDC QXYwtSSpPRz19HwhbxDSQkTfmSlOnUxgB4mm1n8ubJFdV3z9AAQ0QgcEXDEDHJM1iGJBdh VEiI4PzHNCxOfFDbY1crqXP/5xouQvSWT4mqQCAkjHEEzUyuRdfpuXqcoPao/q9gVphauW LnRPn6tiWqscuXu8t2xrufBJ6A1qv/9jg8VdicXBqz1QjiAd2r08ms1DF+kFRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694856434; a=rsa-sha256; cv=none; b=td50uSYJzxrkGtzn1EEeVed1738Yy3zfJSi3CBJWYVKsc1jPEp9EXhvaPvs8VmBvzzuT7o k51OFNdn1LbqNq6mR6U914k/Pw0qzkdKuUpp6wKoGZtEd0Hkaa79pj7vweXnVuovBlrShA S0irf6s2FAzUd5H0l2GUTlbjKGZP6YeqBNGffdJQ1+PuWRdX6MwoPhP8/i6VtoHtpHq+Q+ 3YEPM8S0Y1CkbT68HIVDA+clq3Fy4NCYFTDxiy/8KCaQjBT7CaGrUVQjT+D/zG9BgDETJo mEG+6JrAm45/xrGPFxUvZvfTmSLIf/HWOb/ZOwMwHkT7LicczKO7QIj4QkNgBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694856434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qhW/+A/vbpMx9ynwEsWblHpkH0A1bO/TRvAxw+suAyM=; b=atmPjO6TSBy8/BmnM7wWXvSjVpB5cZNxMU8dCAAlX3Il6ZNwy3QFg1Xl5e7ov7ZT/TVQTs 3NV2vZVgJ5hjFUXdjF4/Tj83NTlOLMq7ERhD3ME9meHAFe8VRtsdqTUgRmk317iGAUY4dw M5dvqzQaamrWedp9IAfjg6isIsNMePqAaryw9NKR/5gXXiv3zrNklQU7Z6UixOk5DbYMyF ej0LquHHrKrHkPZFZfNLyi55Lqua7pDW6zo/UWRZkg7pOE7zPT2r7OwTIZNVflne8EIRyv /7hT5OOkbuisRprlyexu5kHfXqOoJJ8zcLhaAV9t5SV+JuNk/L2M5lOkh23k0A== 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 4Rnm0y0sFfz11YP; Sat, 16 Sep 2023 09:27:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38G9RDIj016623; Sat, 16 Sep 2023 09:27:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G9RDsn016620; Sat, 16 Sep 2023 09:27:13 GMT (envelope-from git) Date: Sat, 16 Sep 2023 09:27:13 GMT Message-Id: <202309160927.38G9RDsn016620@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston <markj@FreeBSD.org> Subject: git: f44102411e1b - main - sockets: re-check socket state after call to pr_rcvd() List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: f44102411e1b16363e91a074c9c403069c550e4d Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f44102411e1b16363e91a074c9c403069c550e4d commit f44102411e1b16363e91a074c9c403069c550e4d Author: Greg Becker <becker.greg@att.net> AuthorDate: 2023-09-09 23:38:24 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2023-09-15 16:59:46 +0000 sockets: re-check socket state after call to pr_rcvd() Socket state may have changed after dropping the receive buffer lock in order to call pr_rcvd(). If the buffer is empty, re-check the state after reaquiring the lock and skip calling sbwait() if the socket is in error or the peer has closed. PR: 212716 Reviewed by: markj, glebius MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D41783 --- sys/kern/uipc_socket.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index ffd5e06c34b7..3c7e5c4cb4bb 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -2429,6 +2429,10 @@ dontblock: VNET_SO_ASSERT(so); pr->pr_rcvd(so, flags); SOCKBUF_LOCK(&so->so_rcv); + if (__predict_false(so->so_rcv.sb_mb == NULL && + (so->so_error || so->so_rerror || + so->so_rcv.sb_state & SBS_CANTRCVMORE))) + break; } SBLASTRECORDCHK(&so->so_rcv); SBLASTMBUFCHK(&so->so_rcv); From nobody Sat Sep 16 09:27:15 2023 X-Original-To: dev-commits-src-main@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 4Rnm0z3vxRz4ssVN; Sat, 16 Sep 2023 09:27: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rnm0z359zz4X7D; Sat, 16 Sep 2023 09:27:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694856435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RouldnTevdQ1Gdw8+8jR718wPlBmngiM2A0nqe+RbhE=; b=UdvV3LGPfLnAtx/twfGBt6dL+r4Fzt7MsCml+Bjc2V27kywOMWnCgG/7py1p2iVm1rJkv2 eHTdCoC79WfzEoVfRcYXR/E6v5GaOEotXUZYjzkqsRht3H7Hsv/LUBgSuQYGRXF2Ek+RFr 96tPaDIqa7L9nfF/ACG2rW3IbARdKeO27tRmhGuOEQuyCD2wzN4srcOLyGJG/vhranQrmZ mdQXXMchSrlgHDcdQ1qetmSQO0eHo5qD54RPyq5S6Jb3X9iUywGzv/M/u4p0WITy0R4/DD VxJCa7GfoyDDYii9gOOgeYwgqR1FblP0jtyELhIffWskAAO4dZRPopeWJHqVQg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694856435; a=rsa-sha256; cv=none; b=BQAc/dc5z8dUdpE+aFJxoWaZdKyWJmhPRJTD3+N1T/Ap9mTxue973tMt4YQLAQvfOIHpQx q4a2Uxibn0uChNhCdZAJnlpbc8MDABG1ZFipOZd3j3PVHwfqzQ0Y/0uvXtHPDwt8uks/TF IEEb/W93qj7Qwrm7tBBtrvR/GFanKFkXGxcmdTzjfqEs7oPr8fuH2rZIUKkEdcVZs/uhiI KToiEA59epBc8iUVhxARs7f7l6dzFzSPYcPxnUriiTZ/E24KEnrGGKrwC0poqpSxqUB8GP zwMYDUtLpntTzpVKwOEDyIIXTPe7sI+uf7HG0PlLRnC4mfi9OFt/Byz34ITrNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694856435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RouldnTevdQ1Gdw8+8jR718wPlBmngiM2A0nqe+RbhE=; b=Sf1B3eOe96KH/FBYDV/nieKWMpYC6DnsWLqlH+gQX6uU32wTKeNmWhuYleUo5X5WkkX06d NzqFEaRFXise9tGShdL+FQvbZkddLTiOoEcn78RF7R4nZ98isTbvoyQ7dfmgyNwAmWhGr2 mRkYjLtGAtsfDE/z8osHm/ZOKK65eRUx2Cd9qSuRJl7OLDNL9cNwek85D/wSCvSY65/ZLh Q+XyYs78IvB5u0FcNwMVjiUhqKQD2VG0b4PPB6BeiIUMCKMXCcvJdoB5BrSgOro1tpR2hx llq3rxuz74mQXsv5lJpke6+GjBVHEuPUvBlnyWe3ZZ8bbFaKMZ2otoExKAAJCQ== 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 4Rnm0z1nMmz11HD; Sat, 16 Sep 2023 09:27:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38G9RF8U016674; Sat, 16 Sep 2023 09:27:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G9RF8N016671; Sat, 16 Sep 2023 09:27:15 GMT (envelope-from git) Date: Sat, 16 Sep 2023 09:27:15 GMT Message-Id: <202309160927.38G9RF8N016671@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston <markj@FreeBSD.org> Subject: git: 38426b32e106 - main - socket tests: Add a regression test for MSG_WAITALL List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 38426b32e106cf251520259b29779372eda7a5f8 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=38426b32e106cf251520259b29779372eda7a5f8 commit 38426b32e106cf251520259b29779372eda7a5f8 Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2023-08-31 17:29:29 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2023-09-15 16:59:46 +0000 socket tests: Add a regression test for MSG_WAITALL PR: 212716 MFC after: 1 week Sponsored by: The FreeBSD Foundation --- tests/sys/kern/Makefile | 2 + tests/sys/kern/socket_msg_waitall.c | 181 ++++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index d46223d8ff09..f2fe9e7008d9 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -30,6 +30,7 @@ ATF_TESTS_C+= sigaltstack ATF_TESTS_C+= sigwait ATF_TESTS_C+= socket_accf ATF_TESTS_C+= socket_msg_trunc +ATF_TESTS_C+= socket_msg_waitall TEST_METADATA.sigwait+= is_exclusive="true" .if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH:Mpowerpc*} == "" ATF_TESTS_C+= subr_physmem_test @@ -71,6 +72,7 @@ LIBADD.unix_seqpacket_test+= pthread LIBADD.kcov+= pthread CFLAGS.ktls_test+= -DOPENSSL_API_COMPAT=0x10100000L LIBADD.ktls_test+= crypto util +LIBADD.socket_msg_waitall+= pthread LIBADD.sendfile_helper+= pthread LIBADD.fdgrowtable_test+= util pthread kvm procstat LIBADD.sigwait+= rt diff --git a/tests/sys/kern/socket_msg_waitall.c b/tests/sys/kern/socket_msg_waitall.c new file mode 100644 index 000000000000..e9018b47eec1 --- /dev/null +++ b/tests/sys/kern/socket_msg_waitall.c @@ -0,0 +1,181 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2023 The FreeBSD Foundation + * + * This software was developed by Mark Johnston under sponsorship from + * the FreeBSD Foundation. + */ + +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/un.h> + +#include <netinet/in.h> + +#include <errno.h> +#include <pthread.h> +#include <stdlib.h> +#include <unistd.h> + +#include <atf-c.h> + +struct close_test_params { + struct sockaddr_storage sa; + size_t msglen; + int count; + int af, type, proto; +}; + +static void * +close_test_client(void *arg) +{ + struct close_test_params *p = arg; + char *buf; + size_t buflen; + + buflen = p->msglen + 1; + buf = malloc(buflen); + ATF_REQUIRE(buf != NULL); + + while (p->count-- > 0) { + ssize_t n; + int error, s; + + s = socket(p->af, p->type, p->proto); + ATF_REQUIRE_MSG(s >= 0, "socket: %s", strerror(errno)); + + error = connect(s, (struct sockaddr *)&p->sa, p->sa.ss_len); + ATF_REQUIRE_MSG(error == 0, "connect: %s", strerror(errno)); + + n = recv(s, buf, buflen, MSG_WAITALL); + ATF_REQUIRE_MSG(n == (ssize_t)p->msglen, + "recv: %s", strerror(errno)); + + ATF_REQUIRE(close(s) == 0); + } + + return (NULL); +} + +static void +close_test(struct sockaddr *sa, unsigned int count, int af, int type, int proto) +{ + struct close_test_params p; + const char *msg; + pthread_t t; + size_t msglen; + int error, s; + + s = socket(af, type, proto); + ATF_REQUIRE_MSG(s >= 0, "socket %s", strerror(errno)); + + ATF_REQUIRE_MSG(bind(s, sa, sa->sa_len) == 0, + "bind: %s", strerror(errno)); + ATF_REQUIRE_MSG(listen(s, 1) == 0, + "listen: %s", strerror(errno)); + ATF_REQUIRE_MSG(getsockname(s, sa, &(socklen_t){ sa->sa_len }) == 0, + "getsockname: %s", strerror(errno)); + + msg = "hello bonjour"; + msglen = strlen(msg) + 1; + p = (struct close_test_params){ + .count = count, + .msglen = msglen, + .af = af, + .type = type, + .proto = proto, + }; + memcpy(&p.sa, sa, sa->sa_len); + error = pthread_create(&t, NULL, close_test_client, &p); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + while (count-- > 0) { + ssize_t n; + int cs; + + cs = accept(s, NULL, NULL); + ATF_REQUIRE_MSG(cs >= 0, "accept: %s", strerror(errno)); + + n = send(cs, msg, msglen, 0); + ATF_REQUIRE_MSG(n == (ssize_t)msglen, + "send: %s", strerror(errno)); + + ATF_REQUIRE(close(cs) == 0); + } + + ATF_REQUIRE(close(s) == 0); + ATF_REQUIRE(pthread_join(t, NULL) == 0); +} + +/* + * Make sure that closing a connection kicks a MSG_WAITALL recv() out of the + * syscall. See bugzilla PR 212716. + */ +ATF_TC(close_tcp); +ATF_TC_HEAD(close_tcp, tc) +{ + atf_tc_set_md_var(tc, "timeout", "10"); +} +ATF_TC_BODY(close_tcp, tc) +{ + struct sockaddr_in sin; + + sin = (struct sockaddr_in){ + .sin_len = sizeof(sin), + .sin_family = AF_INET, + .sin_addr = { htonl(INADDR_LOOPBACK) }, + .sin_port = htons(0), + }; + close_test((struct sockaddr *)&sin, 1000, AF_INET, SOCK_STREAM, + IPPROTO_TCP); +} + +/* A variant of the above test for UNIX domain stream sockets. */ +ATF_TC(close_unix_stream); +ATF_TC_HEAD(close_unix_stream, tc) +{ + atf_tc_set_md_var(tc, "timeout", "10"); +} +ATF_TC_BODY(close_unix_stream, tc) +{ + struct sockaddr_un sun; + + sun = (struct sockaddr_un){ + .sun_len = sizeof(sun), + .sun_family = AF_UNIX, + .sun_path = "socket_msg_waitall_unix", + }; + close_test((struct sockaddr *)&sun, 1000, AF_UNIX, SOCK_STREAM, 0); + ATF_REQUIRE_MSG(unlink(sun.sun_path) == 0, + "unlink: %s", strerror(errno)); +} + +/* A variant of the above test for UNIX domain seqpacket sockets. */ +ATF_TC(close_unix_seqpacket); +ATF_TC_HEAD(close_unix_seqpacket, tc) +{ + atf_tc_set_md_var(tc, "timeout", "10"); +} +ATF_TC_BODY(close_unix_seqpacket, tc) +{ + struct sockaddr_un sun; + + sun = (struct sockaddr_un){ + .sun_len = sizeof(sun), + .sun_family = AF_UNIX, + .sun_path = "socket_msg_waitall_unix", + }; + close_test((struct sockaddr *)&sun, 1000, AF_UNIX, SOCK_SEQPACKET, 0); + ATF_REQUIRE_MSG(unlink(sun.sun_path) == 0, + "unlink: %s", strerror(errno)); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, close_tcp); + ATF_TP_ADD_TC(tp, close_unix_stream); + ATF_TP_ADD_TC(tp, close_unix_seqpacket); + + return (atf_no_error()); +} From nobody Sat Sep 16 09:33:19 2023 X-Original-To: dev-commits-src-main@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 4Rnm7z2Wwcz4sv0Z; Sat, 16 Sep 2023 09:33:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rnm7z1hJLz4Z3K; Sat, 16 Sep 2023 09:33:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694856799; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sPG9v0F6Ua6bFjX97BrCGhcDN6564MqfuHzv3weIJEQ=; b=jl/Dyyf3eq1BR4WqMAUPaNqj2GSCz/u/DyMRe6hnRsLmESfEFA8uta7PmP6CATF/qQcGck GjmW0BTOutHryevZOPqiVbuDqLAWSoPKcJ1vpcmy9P7HvaMxHscYnKY9blfluy0TDUTyRh SeI+YS7jzYmnBUdkQd14aocJ2wBelpXCzNEJZimdeYQNyDBL8DeLJ8kFPJEmNjv2T9A4mh lwf0urqelcSupt8bcPkmsWDvwimqxOOgbaUfcfsfaqdwwPdZcIZ2BCp0uoQ1gqrVHLKmWm opX30oPQte6I/trxFXwkhSq0MxhYVZFOQ8AYnq+NhO9olQbil1o/D54tPmj8IQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694856799; a=rsa-sha256; cv=none; b=NcR2WIOoRlc5/bDyJJ1y/yZKk67bu6+7BY+U+fcbly5JweMcRYy4w/9jWofx1j7qxCfM7V Z1optq2770zK/Xi1CDpmBUT1XD5FgDRlLDPUUvlvz7QftuILe8+hZHTqscF7o+lemX/B0p bjDr/B1Cv/KReNXkSFdgNXt9IETqzm/whyehhX/ZY4VMiHixJFy8duNFeA86ZcRkGErfc+ yk6CwqaxwXwMi1aizAT2QWdohY5wcHhRPd9824ptXRm0vS02GtYcIMI2oXZqaDtWJfQwvi MsmiI7plvac/kCRS75yK0rDtIItM6KeD1gAZW6R2qyLhDvLasSJZgeFvqBiM6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694856799; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sPG9v0F6Ua6bFjX97BrCGhcDN6564MqfuHzv3weIJEQ=; b=vd3zNz8EdFmo+Kx/rWgRqxEq9gEwxUo2xoJdZV01rYNOYvEa+ASEtmtzml3pWhQpVZQ2Uw dU8M6Co7ygmZXV4DZdUCA9krMQnsiS+JO0aCxy+NHFpu4cgMge5aKfmpRFev0NQFxATgwL D5oK2S7zc393a8IKd6tWmFqAKLLtn8em+dxyXYkgjDQY3rKLyor++rQ/eRleNjBOXWWdBw fU6oHY/ys30c9wnOm4Ujbxp2evqLEoaSTP0ylCrhwVW7q/XRP2jQvAs+tioGi9yeWfxEon v8rpCzz4L2tvtxczKO4BPW10qUE87xWZzwAFkambVUzvnnxl1XE0aPIyRbrY2g== 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 4Rnm7z0lHLz11Zh; Sat, 16 Sep 2023 09:33:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38G9XJa8033414; Sat, 16 Sep 2023 09:33:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G9XJTS033411; Sat, 16 Sep 2023 09:33:19 GMT (envelope-from git) Date: Sat, 16 Sep 2023 09:33:19 GMT Message-Id: <202309160933.38G9XJTS033411@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston <markj@FreeBSD.org> Subject: git: d643925a79ca - main - unix tests: Use the right type for sendmsg(2) return values List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: d643925a79caab5c6de62b066e374935b60bcaf1 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d643925a79caab5c6de62b066e374935b60bcaf1 commit d643925a79caab5c6de62b066e374935b60bcaf1 Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2023-09-15 08:59:08 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2023-09-15 17:04:15 +0000 unix tests: Use the right type for sendmsg(2) return values MFC after: 1 week --- tests/sys/kern/unix_passfd_test.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/sys/kern/unix_passfd_test.c b/tests/sys/kern/unix_passfd_test.c index 94f0c420029a..d8c0efe5b9ea 100644 --- a/tests/sys/kern/unix_passfd_test.c +++ b/tests/sys/kern/unix_passfd_test.c @@ -182,13 +182,13 @@ sendfd_payload(int sockfd, int send_fd, void *payload, size_t paylen) static void sendfd(int sockfd, int send_fd) { - size_t len; + ssize_t len; char ch; ch = 0; len = sendfd_payload(sockfd, send_fd, &ch, sizeof(ch)); ATF_REQUIRE_MSG(len == sizeof(ch), - "sendmsg: %zu bytes sent; expected %zu; %s", len, sizeof(ch), + "sendmsg: %zd bytes sent; expected %zu; %s", len, sizeof(ch), strerror(errno)); } @@ -532,10 +532,10 @@ ATF_TC_BODY(send_overflow, tc) len = sendfd_payload(fd[0], putfd, buf, sendspace); #if TEST_PROTO == SOCK_STREAM ATF_REQUIRE_MSG(len == -1 && errno == EAGAIN, - "sendmsg: %zu bytes sent, errno %d", len, errno); + "sendmsg: %zd bytes sent, errno %d", len, errno); #elif TEST_PROTO == SOCK_DGRAM ATF_REQUIRE_MSG(len == -1 && errno == ENOBUFS, - "sendmsg: %zu bytes sent, errno %d", len, errno); + "sendmsg: %zd bytes sent, errno %d", len, errno); #endif close(putfd); ATF_REQUIRE(nfiles == openfiles()); @@ -655,14 +655,14 @@ ATF_TC_BODY(rights_creds_payload, tc) #if TEST_PROTO == SOCK_STREAM ATF_REQUIRE_MSG(len != -1 , "sendmsg failed: %s", strerror(errno)); ATF_REQUIRE_MSG((size_t)len < sendspace, - "sendmsg: %zu bytes sent", len); + "sendmsg: %zd bytes sent", len); recvfd_payload(fd[1], &getfd, buf, len, CMSG_SPACE(SOCKCREDSIZE(CMGROUP_MAX)) + CMSG_SPACE(sizeof(int)), 0); #endif #if TEST_PROTO == SOCK_DGRAM ATF_REQUIRE_MSG(len != -1 , "sendmsg failed: %s", strerror(errno)); ATF_REQUIRE_MSG((size_t)len == sendspace, - "sendmsg: %zu bytes sent", len); + "sendmsg: %zd bytes sent", len); recvfd_payload(fd[1], &getfd, buf, len, CMSG_SPACE(SOCKCREDSIZE(CMGROUP_MAX)) + CMSG_SPACE(sizeof(int)), 0); #endif From nobody Sat Sep 16 14:20:17 2023 X-Original-To: dev-commits-src-main@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 4RntW56m4Dz4t8nr; Sat, 16 Sep 2023 14:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RntW56Jxwz4PPl; Sat, 16 Sep 2023 14:20:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694874017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5ydENEVRKFXXfb7xGkMRlQ0T5MG20VKyt7T2Cn41+PY=; b=Kf6IaXzVBYhx4rLEzTyEocuJzRECYiro5l9aB3V8nwsM1Hs59oXB8W1kmNc1d+4j8f5FzJ cTObbsiZAeSWILppuZS08RNZ4KrTRhr7RB9jA1n3FhTb4rnRquT0m7qfoSeggqyA2G42pr qmNtoelPFYcHYHJxNCFEHdtqc6MCsAjgxMLnx4Httt6tFNqcEJMAjhbMTzjZZJwQ8/wIPJ TTY5H1r4Qetmop7mhlgsz1/WszlcjMyh9muF+lbuqyMTT/Nzq3C7bJK0fJKeLfKrRwvNXL P/fqQ50wRFzUbOXH4wGXNg0iwujJI7BYMgK5SP1yEgNGYTyyQKO75MhC5UOmDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694874017; a=rsa-sha256; cv=none; b=INTS7p2HW8fiO5Ch5Y43YfDHC20MBeK/nhyZ3VCqvIYdV7nUQ4YfYd9p+4+xmgNlRDD0AV EiqJSOPkDSihqPY/G2PP5+rdDy6JEaOCrucluL8nOyIRGJ4nl+v0Awn2OrkWXOyz+AOVNV zKzex9DDyVAo1ao6EktIcwwW/uyu3eJ/WwEMCAbnn6MBospDywRlgqqtv9EvC7YkK8+o5+ UEoeEw07uG2iYErP54nBbncrtaQDZ7mHsajtRr3qgDzdyadLM4IyW8R6ERL6dPnqO4l1qt U557+8LlzKOAgJlNE7SVCi8RbtnW9LzXxwt11dp8eMm41JdYbxV2z30Lr3HfIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694874017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5ydENEVRKFXXfb7xGkMRlQ0T5MG20VKyt7T2Cn41+PY=; b=TJUjaVq31iHi7DIU7QOdQxygtcjG/XDhw3hOke8aiZhMcLrUgyH0VBXJ3GO3MI7CVwqd+a lxZ3t36kOgXGblIF/II89PHFHClCxe2mx3em+wOopW87PvTshMgSnZk52g6Yl02Z2/h4ia OH7aQqTa1jI9Hvyd64w9YR8aLROyqU5LSLMzpX60Z/+bCtVdXmp/feVqw+jZiHeLMTe0Xf wkt1ZDaHzeAyBzV4ORMi37kOEUFcMyqCIBiGm/GT81TT6CCSNdERlazFi6MtLNEfDepihZ ddid4DgwmSl6aflAS1SYcyr2LMmlGSbu+8osChIR3PD3SHx1kEJTzmKz+9ByCQ== 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 4RntW55NcVz18mm; Sat, 16 Sep 2023 14:20:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38GEKHca008294; Sat, 16 Sep 2023 14:20:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GEKHrZ008283; Sat, 16 Sep 2023 14:20:17 GMT (envelope-from git) Date: Sat, 16 Sep 2023 14:20:17 GMT Message-Id: <202309161420.38GEKHrZ008283@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: 49874af3eca6 - main - zfs: retire z_nr_znodes List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 49874af3eca6fbbeb3967c737baa3478d6a4e967 Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=49874af3eca6fbbeb3967c737baa3478d6a4e967 commit 49874af3eca6fbbeb3967c737baa3478d6a4e967 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-16 14:18:05 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-16 14:18:05 +0000 zfs: retire z_nr_znodes It is not needed and is going away soon(tm), facilitating other changes. See https://github.com/openzfs/zfs/pull/15274 --- sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h | 1 - sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c | 8 +++----- sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c | 2 -- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h b/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h index 5948e44daab1..56a0ac96ac19 100644 --- a/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h +++ b/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h @@ -93,7 +93,6 @@ struct zfsvfs { zfs_teardown_lock_t z_teardown_lock; zfs_teardown_inactive_lock_t z_teardown_inactive_lock; list_t z_all_znodes; /* all vnodes in the fs */ - uint64_t z_nr_znodes; /* number of znodes in the fs */ kmutex_t z_znodes_lock; /* lock for z_all_znodes */ struct zfsctl_root *z_ctldir; /* .zfs directory pointer */ boolean_t z_show_ctldir; /* expose .zfs in the root dir */ diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c index 49b97ae8f590..8969fd6a54bd 100644 --- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c +++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c @@ -1158,7 +1158,6 @@ zfsvfs_free(zfsvfs_t *zfsvfs) mutex_destroy(&zfsvfs->z_znodes_lock); mutex_destroy(&zfsvfs->z_lock); - ASSERT3U(zfsvfs->z_nr_znodes, ==, 0); list_destroy(&zfsvfs->z_all_znodes); ZFS_TEARDOWN_DESTROY(zfsvfs); ZFS_TEARDOWN_INACTIVE_DESTROY(zfsvfs); @@ -1562,12 +1561,11 @@ zfsvfs_teardown(zfsvfs_t *zfsvfs, boolean_t unmounting) * may add the parents of dir-based xattrs to the taskq * so we want to wait for these. * - * We can safely read z_nr_znodes without locking because the - * VFS has already blocked operations which add to the - * z_all_znodes list and thus increment z_nr_znodes. + * We can safely check z_all_znodes for being empty because the + * VFS has already blocked operations which add to it. */ int round = 0; - while (zfsvfs->z_nr_znodes > 0) { + while (!list_is_empty(&zfsvfs->z_all_znodes)) { taskq_wait_outstanding(dsl_pool_zrele_taskq( dmu_objset_pool(zfsvfs->z_os)), 0); if (++round > 1 && !unmounting) diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c index c4f2b722ef4e..0d4c94555c6b 100644 --- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c +++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c @@ -537,7 +537,6 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, int blksz, mutex_enter(&zfsvfs->z_znodes_lock); list_insert_tail(&zfsvfs->z_all_znodes, zp); - zfsvfs->z_nr_znodes++; zp->z_zfsvfs = zfsvfs; mutex_exit(&zfsvfs->z_znodes_lock); @@ -1286,7 +1285,6 @@ zfs_znode_free(znode_t *zp) mutex_enter(&zfsvfs->z_znodes_lock); POINTER_INVALIDATE(&zp->z_zfsvfs); list_remove(&zfsvfs->z_all_znodes, zp); - zfsvfs->z_nr_znodes--; mutex_exit(&zfsvfs->z_znodes_lock); #if __FreeBSD_version >= 1300139 From nobody Sat Sep 16 15:46:12 2023 X-Original-To: dev-commits-src-main@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 4RnwQD30dBz4tWb0; Sat, 16 Sep 2023 15:46: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RnwQD2b4vz4f1g; Sat, 16 Sep 2023 15:46:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694879172; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=et+dp4QYwSUodkOxULifDxu51r1JczPFm5QBSpEX3mY=; b=rQ33aHqCBKrTy6t68pKc4MXUUJ/UFr6JIrc3cUYAvXuUyOgVFmi9cIkLyTRX4Js3/OOz/e a2kpsmi3ZrgoAf0knjMKMHtgQ2NE9voPs4e4ELbEprGeMiMciSafB06c4js5v+yp5M+fGQ umFzIZkvUcKTCxgEOY5ODp7v+NQsGJwb0JmwD/0uROWSOBXQuKZt3z//Oidp+obGl2jQ6O 2tLhGujuNAYvV6/bk7a4b/3BRJykPXhKLtqc104x00ZEolvvHN24gNDdIg0P+YfR5SZQt9 NCmliacpUO7ReH2pNcl7rVMkOcm2hrayDy315nEsEtQX+rK5d8t9U1cq2/S1Lw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694879172; a=rsa-sha256; cv=none; b=a7kKqTKQ2XKgjdkrKvw8VRfHhQR5itZ47UALmVZUI9wxC0btmZgD/ddZGEEaddC6aL57tO ULEIgTqyDRUsYrSZGNu0x4vOjBbjPfJG2L6DLMSfkgIvdXrq9ypY/FhpnmPqUfcBP2XF+h vAttcEeo/9Hm/dgdkaVe/O7SOZxBWWqhKiTmM8ioTg19swcz3Dt8ypwmTLXn6pfmZ91X1V Ddif0MVJ/Sc7ggzZaxzUX1uJ5qO5/nnq9wolpwZ4cE/QpNhpzuZ/U+z7mT4DymFHvHnaD1 lZbgrbCYm6jGW2GGEC6BNX2Kv5Paq+Hk+VoaWUoL/Hwjrqh2m7OCYqXWVTw3Bw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694879172; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=et+dp4QYwSUodkOxULifDxu51r1JczPFm5QBSpEX3mY=; b=IaXarMTiHNGnIGwXEnWhkaFhEKaak3gt6kHDlACUJv0vPd4lnxtVgGn+LqPGINsI8DJtwt NpfyakSSv8/aXM9Gzp1xD96VdA1lrFkvP2aa083AsXY4Xum0dMcjREBydszRQbrXnXYXzq R2bI6jspfIvYLBxmHXPhfKWnLzpx8lUndB+7zcz33hI6j2vnIASidJOsCzExnFj/rmZkvb FAvP4QVYYX0isauzV2oEPdIvl3UyXDCvtjLXYQoMv4v/BQx+VVBqgR4p32OKZUf7BhdZfT Hm5NfShWRlGjOC82y9YMM7pflpBBD1O2zCXwcds8+SdWanCEdk98TwPB6N08hA== 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 4RnwQD1d1wz1B88; Sat, 16 Sep 2023 15:46:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38GFkCbx048573; Sat, 16 Sep 2023 15:46:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GFkCWj048570; Sat, 16 Sep 2023 15:46:12 GMT (envelope-from git) Date: Sat, 16 Sep 2023 15:46:12 GMT Message-Id: <202309161546.38GFkCWj048570@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste <emaste@FreeBSD.org> Subject: git: d3a9d605a896 - main - Add WITHOUT_MANSPLITPKG description List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: d3a9d605a8963b7833936fd9679b734871facab4 Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d3a9d605a8963b7833936fd9679b734871facab4 commit d3a9d605a8963b7833936fd9679b734871facab4 Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2023-09-16 15:28:28 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-09-16 15:40:41 +0000 Add WITHOUT_MANSPLITPKG description Fixes: 74da9c39c346 ("pkgbase: Split out manpages by default") Sponsored by: The FreeBSD Foundation --- tools/build/options/WITHOUT_MANSPLITPKG | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/build/options/WITHOUT_MANSPLITPKG b/tools/build/options/WITHOUT_MANSPLITPKG new file mode 100644 index 000000000000..a9913308d411 --- /dev/null +++ b/tools/build/options/WITHOUT_MANSPLITPKG @@ -0,0 +1 @@ +Do not split man pages into their own packages during make package. From nobody Sat Sep 16 15:54:37 2023 X-Original-To: dev-commits-src-main@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 4Rnwbx5sv6z4tYL1; Sat, 16 Sep 2023 15:54: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rnwbx5KsPz4gq2; Sat, 16 Sep 2023 15:54:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694879677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZnzTvxriQ9fsiYoSPj1oEyiZh4iYiYF0nhTIYQitzEM=; b=ZWp92y2LCaj/j62N4H2e8TN1KtgW5mC9fibqn+zsXKxfaAoZoqtWtPT7VAZW0z+XIgeTzN jNiFwu/IrSvaJSoz+nExqOS2erxvVtNgpcybu3HcpsZ0gn1swf1cRrxQm1fmo9KxI+h+ju CZFLBg/H0TVv1h/QFGH8rnXY76Gq3ePVloqWvjeWvsYT2oVavoYlIo1VImpKWoUwTvaz4p cPLamP/CzKFPpAo5OUcPzALHcHPbtqM59PPNnrgGjeHJxrThVoTVOtC1o9eO8zdgGPYUKj zryq/eTP01Dp+R44oI8MZSOmSjJLzIiV1IzxerSxR4w0ZP7hHhS994MVhhoE9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694879677; a=rsa-sha256; cv=none; b=OVpo8C28mWAuExouecDQecRCfa0G6snoxzewlFKxSE3d3uRxfDuw4gAM1Q+81Z3abakvEj dkMBDpYv/NEpLiklsG0XamDvfrOpYU+e9CIJDvJJMl+uOor79f6s9LGrnMFbYO1lbIxa5A cmNOMoHh4X/zccLCujtN1GRwYSp8M9Vx9IhB/QHvHgBAgTAK4pjztgUEqvYSWDEddDYAuy +6E5T9koxDWYxEKV7397gCzxoAx1NR19k0CIsArKYwGrzz7dEo/k9EkXavVEta5vhkXgUb pWfEgPeqXI4hXsB9ujW52bUeQ8GcrBsOnANf3wZlklFoSVMKuKu7g/E5+F7SnQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694879677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZnzTvxriQ9fsiYoSPj1oEyiZh4iYiYF0nhTIYQitzEM=; b=hWqFb5Vi9ygLIiR6/enByDdXafV6zpZ4+KFElcPLbdolQlL47H+Ma+pD0aqs4SWQA+OxCL zSak6ULc7Uwk6rWNAPZV6NAQmiObWbuCv1KLnLPVPZ82FVtQRSMoeoAyHHCMOMF32spz4V FKQFm1N24u3qbU78Hrsljl93qlP+S30kjxwfG7dMPA9J1PoQYkpEKHWVOcgzSUCHXRXvxS AnPOR6MAbq8qwU/3mv/jyjJ01F2rUUkMNnOzgC//a1YiIQTaAmir0gAqOGN1palFVAxaw0 cpPuWPUC3YgCB6lM9paO7/o9AS5iZceby49Dq7AXCfRaCPPHzQkTwSgVmXzH5A== 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 4Rnwbx4NyWz1C81; Sat, 16 Sep 2023 15:54:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38GFsbkb064476; Sat, 16 Sep 2023 15:54:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GFsbP9064474; Sat, 16 Sep 2023 15:54:37 GMT (envelope-from git) Date: Sat, 16 Sep 2023 15:54:37 GMT Message-Id: <202309161554.38GFsbP9064474@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: ef89b78bb1f6 - main - vfs: stabilize freevnodes_old List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ef89b78bb1f60484cc743fa590d623ad896ca8e9 Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=ef89b78bb1f60484cc743fa590d623ad896ca8e9 commit ef89b78bb1f60484cc743fa590d623ad896ca8e9 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-16 15:41:12 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-16 15:54:09 +0000 vfs: stabilize freevnodes_old In face of parallel callers. --- sys/kern/vfs_subr.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 9d5b1b7e472e..11cdea5a7dc1 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1528,21 +1528,22 @@ vfs_freevnodes_dec(void) static u_long vnlru_read_freevnodes(void) { - long slop, rfreevnodes; + long slop, rfreevnodes, rfreevnodes_old; int cpu; rfreevnodes = atomic_load_long(&freevnodes); + rfreevnodes_old = atomic_load_long(&freevnodes_old); - if (rfreevnodes > freevnodes_old) - slop = rfreevnodes - freevnodes_old; + if (rfreevnodes > rfreevnodes_old) + slop = rfreevnodes - rfreevnodes_old; else - slop = freevnodes_old - rfreevnodes; + slop = rfreevnodes_old - rfreevnodes; if (slop < VNLRU_FREEVNODES_SLOP) return (rfreevnodes >= 0 ? rfreevnodes : 0); - freevnodes_old = rfreevnodes; CPU_FOREACH(cpu) { - freevnodes_old += cpuid_to_pcpu[cpu]->pc_vfs_freevnodes; + rfreevnodes += cpuid_to_pcpu[cpu]->pc_vfs_freevnodes; } + atomic_store_long(&freevnodes_old, rfreevnodes); return (freevnodes_old >= 0 ? freevnodes_old : 0); } From nobody Sat Sep 16 15:55:30 2023 X-Original-To: dev-commits-src-main@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 4Rnwcy5DqFz4tYck; Sat, 16 Sep 2023 15:55: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rnwcy4p7Yz4hdH; Sat, 16 Sep 2023 15:55:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694879730; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=baICKY+foJtt6fyNZdgvbxO+8ENdjZrweWS86xekGQw=; b=nqjrV9G3GaUs+2KXKSW9Ms1tCyan/nhLFjmmcp/Pj/I7T0hj7WUiWjiymO56EYkGzZFvRc bUiRmQPS/gnGcPUTJQf2E9H4UgbJFupwDJ64f4IkFusO1DPzGCEnUK8dFdRud7k0wr6XxT pgvqDDNISHzHW0H8A2jv23EkfB5VSoXfgBtbM0chC6DlyU6Tb0VXylgTgOXuhsgMcdOt1P PbRYMfY2HwdnrBenQeqNpHXtjgJGaY0qH09TddD6ewlYnETwDvPK/dgLuNenXJijhq2B7P n8InmHcBRIOaUSPqUKOGGhVABzEFtDsWXpgPtdAp66+WtVzV7VkrqvrFWSc0yA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694879730; a=rsa-sha256; cv=none; b=oUTv63+LS7RUDXugX9JoaaJ0h9kT8Emm6Z9cSiY7q8g1mF6BscBBJ5AZWW2hOZ05BlDNN6 9YcxQzm+7VseR98TBoH5ykQ9iDbw8myXJeFFOh3AGWOucsXU72PjAqcHbAiSWESmBNaAX1 0k6y85tnjvA1AYC38AnztKOjYqZA5vCOtz38xKFJttUN/thy4/o+oRxatZCBmLD+8olvm6 XNOga4hGrFLeD3nkdbK1Gal2Poh0P7ROsxTOumBcGv29Ee0kPk2cutk8JW1+D8H4bRXJPQ IpfhrkYHb2mzkx2YbduKkWdi/Nq0Uy3SvsaRI9JjlDfaJWCC+SZ8DK3efm8+vw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694879730; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=baICKY+foJtt6fyNZdgvbxO+8ENdjZrweWS86xekGQw=; b=sWLurqGAcvQqYpuSl3EgFzNxwiwfA6h6eRUX/UCMB3bkvyZN+yaSpwB/VNdkT2jtixhjs/ isBptZOMx/nbHu9XggBkfkQnRA3qnZ4Aglf0l5lOAAf7tRYKkdsxJUjn9ptf7IQJHehdN/ yAw2QN6WHMee5s/s1LA7LLfOfBtBDGHIOgR0emlXXugnAdBRcSxN832j/wgcURZdg6KicB bBSHPxT/wSX65qsOrFfpxIk/mriCKUdCtqD77YI7qXt/lIzuYhoLAgCFi6iSdJyg227a6+ m2LOcZ0eCYj8V30MVPYkom2qC2siMjKfpZdunkuxnXxcGqbQjKvOsHSdny/+0g== 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 4Rnwcy3Dy2z1BsT; Sat, 16 Sep 2023 15:55:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38GFtUdQ064789; Sat, 16 Sep 2023 15:55:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GFtUXj064786; Sat, 16 Sep 2023 15:55:30 GMT (envelope-from git) Date: Sat, 16 Sep 2023 15:55:30 GMT Message-Id: <202309161555.38GFtUXj064786@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste <emaste@FreeBSD.org> Subject: git: 1a18383a52bc - main - libcrypto: link engines and the legacy provider to libcrypto List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 1a18383a52bc373e316d224cef1298debf6f7e25 Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=1a18383a52bc373e316d224cef1298debf6f7e25 commit 1a18383a52bc373e316d224cef1298debf6f7e25 Author: Pierre Pronchery <pierre@freebsdfoundation.org> AuthorDate: 2023-09-15 15:14:16 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-09-16 15:55:12 +0000 libcrypto: link engines and the legacy provider to libcrypto OpenSSL's legacy provider module and engines need to link to libcrypto.so, as it provides some of the actual implementations of legacy routines. This is a little tricky due to build order issues. Introduce a small hack (LIBCRYPTO_WITHOUT_SUBDIRS) that builds libcrypto.so in its usual early phase without any OpenSSL provider modules or engines. This is intended to restore the test suite; a future change should remove the hack and replace it with a better approach. PR: 254853, 273528 Discussed with: Folks at EuroBSDCon in Coimbra Sponsored by: The FreeBSD Foundation --- Makefile.inc1 | 2 +- secure/lib/libcrypto/Makefile | 2 ++ secure/lib/libcrypto/engines/Makefile.inc | 2 ++ secure/lib/libcrypto/modules/legacy/Makefile | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 7c6981f0f890..7776b40a9801 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -2980,7 +2980,7 @@ libraries: .MAKE .PHONY ${_+_}cd ${.CURDIR}; \ ${MAKE} -f Makefile.inc1 _prereq_libs; \ ${MAKE} -f Makefile.inc1 _startup_libs; \ - ${MAKE} -f Makefile.inc1 _prebuild_libs; \ + ${MAKE} -f Makefile.inc1 _prebuild_libs -DLIBCRYPTO_WITHOUT_SUBDIRS; \ ${MAKE} -f Makefile.inc1 _generic_libs # diff --git a/secure/lib/libcrypto/Makefile b/secure/lib/libcrypto/Makefile index 585e89861815..d8ae91bb3272 100644 --- a/secure/lib/libcrypto/Makefile +++ b/secure/lib/libcrypto/Makefile @@ -1,6 +1,8 @@ SHLIBDIR?= /lib +.if !defined(LIBCRYPTO_WITHOUT_SUBDIRS) SUBDIR= engines modules +.endif .include <bsd.own.mk> .include <src.opts.mk> diff --git a/secure/lib/libcrypto/engines/Makefile.inc b/secure/lib/libcrypto/engines/Makefile.inc index 39b728ff722f..13d5f4849cbc 100644 --- a/secure/lib/libcrypto/engines/Makefile.inc +++ b/secure/lib/libcrypto/engines/Makefile.inc @@ -16,6 +16,8 @@ CFLAGS+= -DB_ENDIAN .endif CFLAGS+= -DNDEBUG +LIBADD= crypto + .PATH: ${LCRYPTO_SRC}/engines WARNS?= 0 diff --git a/secure/lib/libcrypto/modules/legacy/Makefile b/secure/lib/libcrypto/modules/legacy/Makefile index 913c0c41f5eb..a285d0b1148b 100644 --- a/secure/lib/libcrypto/modules/legacy/Makefile +++ b/secure/lib/libcrypto/modules/legacy/Makefile @@ -1,5 +1,6 @@ SHLIB_NAME?= legacy.so +LIBADD= crypto SRCS+= legacyprov.c prov_running.c From nobody Sat Sep 16 17:20:13 2023 X-Original-To: dev-commits-src-main@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 4RnyWd0gnfz4sgqN; Sat, 16 Sep 2023 17:21:01 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-yb1-xb33.google.com (mail-yb1-xb33.google.com [IPv6:2607:f8b0:4864:20::b33]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RnyWc5y0Yz3LSM; Sat, 16 Sep 2023 17:21:00 +0000 (UTC) (envelope-from mavbsd@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-yb1-xb33.google.com with SMTP id 3f1490d57ef6-d815a5eee40so2880776276.2; Sat, 16 Sep 2023 10:21:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694884858; x=1695489658; darn=freebsd.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=36fzDa8Oade/qs0EQ3rhlYFTK2CVQ/xjFY+kR0cxtLg=; b=DWJ4aZJYMdaREgLUe4P/hk644WeTYqxs5OmSxEZCP1pF8TjuuQIfMwEH6ATMvcMGVL CKsESgeKrT0qWx2FqK8RTo0Tnz35huNvu1yFun1e5HYQlO6qGN0ggAcSJXtK+YZ4TElX esQ88jGVdgCymFjwAfiNitl3uTY26s2iGdAhchHYIW4xRBP0v4WR0Cg6iwwInaMi1gOJ YY4AaqlEFET+qm1zuFfGvzX4ATWwdFAZd5OquXPBJJk/e1nxNvr9OBuoZ4KzozLa6Bc/ ZKKkYh/WE1nraG8r5WYmu3wrobPNMe93E8XjtCW8TjyGrg5FuduQGZAlEfF2rZbGBPvV /5Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694884858; x=1695489658; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=36fzDa8Oade/qs0EQ3rhlYFTK2CVQ/xjFY+kR0cxtLg=; b=B8GkvyRIep+waIZEhCg+Pxt9G30+g3/ojgiJjfr/qo9Ph98FcmLl51nKfX5avpyjzp TEnk/pnyEieLBSSVadz6Ihsb8xPSTwQBmlCmv/WvzwCQhxtoHe4A9v3eak/Q6d+Al06F 15/Y1nnMiIIr9FWuPnICvunSp0edVl6oRyp6cV3IJn8bqgK+9acByCWyOicyfd0JM3B0 e/5xRMOXalvZkqoZFQulMMH4oUEheel+u1N8jtGxNtBgzOc+rkWqQfpL6PBtLVmX8IRC Rh+2j8ecj47A7q9RS2LyIAelTfP88WhwO5kjjIVduxMW4qUeE/dvYOC0DazjfibToqtl /Jog== X-Gm-Message-State: AOJu0Ywmy5LU0lknk+HvvblLHkqqKkQ+arvNDJnoGxAIJXkQ9Jc5t7cA YbMoGlkZX9wulGTBoeEhjIQJ+X87zX4/Xg== X-Google-Smtp-Source: AGHT+IFmpUGllcvSnPISPKSbIMa0jqOMdkIJIFZW+jIdDXKH9I1IVB1CMUr07q1Soq8lTU00NoKLhA== X-Received: by 2002:a25:ae66:0:b0:d48:1936:14d0 with SMTP id g38-20020a25ae66000000b00d48193614d0mr4650726ybe.53.1694884858524; Sat, 16 Sep 2023 10:20:58 -0700 (PDT) Received: from [10.230.45.5] ([38.32.73.2]) by smtp.gmail.com with ESMTPSA id f144-20020a25cf96000000b00d7465a90f0csm1375774ybg.22.2023.09.16.10.20.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 16 Sep 2023 10:20:58 -0700 (PDT) Message-ID: <329fd392-f737-7fb0-55ef-f40a83698658@gmail.com> Date: Sat, 16 Sep 2023 13:20:13 -0400 List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: git: 49874af3eca6 - main - zfs: retire z_nr_znodes Content-Language: en-US To: Mateusz Guzik <mjg@FreeBSD.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202309161420.38GEKHrZ008283@gitrepo.freebsd.org> From: Alexander Motin <mavbsd@gmail.com> In-Reply-To: <202309161420.38GEKHrZ008283@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Queue-Id: 4RnyWc5y0Yz3LSM On 16.09.2023 10:20, Mateusz Guzik wrote: > The branch main has been updated by mjg: > > URL: https://cgit.FreeBSD.org/src/commit/?id=49874af3eca6fbbeb3967c737baa3478d6a4e967 > > commit 49874af3eca6fbbeb3967c737baa3478d6a4e967 > Author: Mateusz Guzik <mjg@FreeBSD.org> > AuthorDate: 2023-09-16 14:18:05 +0000 > Commit: Mateusz Guzik <mjg@FreeBSD.org> > CommitDate: 2023-09-16 14:18:05 +0000 > > zfs: retire z_nr_znodes > > It is not needed and is going away soon(tm), facilitating other changes. > > See https://github.com/openzfs/zfs/pull/15274 And still for some reason you've committed only half of the upstream PR. > --- > sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h | 1 - > sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c | 8 +++----- > sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c | 2 -- > 3 files changed, 3 insertions(+), 8 deletions(-) Thanks for working on this any way. -- Alexander Motin From nobody Sat Sep 16 17:28:08 2023 X-Original-To: dev-commits-src-main@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 4Rnygr5LyTz4sjYx; Sat, 16 Sep 2023 17:28: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rnygr4gZtz3MxY; Sat, 16 Sep 2023 17:28:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694885288; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MWPRmjOKZ5Gcpgfcs5Z2JVzH61/uQfcSWkaamvuwMVg=; b=C3xSWCmkCb9aI4U9CXNInUjNRvOAHZPpeI3mKLbLwYFK9lTrh6bjMXodrh5elLkcFGcwKo jLxF5Kn5oDyKG/fsTaToGL8cuvhiIAYNT0mo+m+2uJ7A46TrYXFniqGWCiCOT2vcSClbl3 w/GEHuADHEVG6B26GL1zkSYuaQ5Lljc2YYfV3oDsXHPYWcMGpgTZkhxm8+NamrgYQ1chgV njqV/sVEu/EhFvhrTFRHLAx2DkFTxRJmrb/a1GiBUfW1JhZuI2BrxzY6xqOFrlKWUuAjuh 6LnAfjVW3xUxTEgbefs/Y3oi79VOIAKRp1pc51sllmEM/DHQ6jrzUw3isKHjCA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694885288; a=rsa-sha256; cv=none; b=tYVMsWCUzv2WFMJ6KpIa23Arvnj9kjIXIsoidpqdLeCYFmU9Sla5UryPWBkkE58eadABeE CzsYZTF2IdcVIVFr931qr/mfkjcsO/4u1tXXYGs/lY7wsr1sCrdAaGwgDJWKjIrdUGXbqb FormhsFYWaCn8TdahBOSgH243B/1GFF/bl4Q8CET0BByBUzTCWv7MTAB2AFzcl7RXKiD4S inNJ6Xzhs9Yi6djVB8hV6zx/itoxBsticLy2h/EwJgIZJMNHpeD1MUZp6/xQFwqJufRPqN Sn73CaTHal8jntllNqBC/Y/c87SU2RtL/RgI46wmBR4Nb1DRxyTxAft1khzz5A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694885288; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MWPRmjOKZ5Gcpgfcs5Z2JVzH61/uQfcSWkaamvuwMVg=; b=eBC4siaqnMpzPCcIfQJeH6e9PU6o0jhv+a8NaV5t2mVQNOvGuCw0/foGfynk7z07VItste klvT5vD0ltKFcl/4Fv74+8QGBrjengjCl0v0cpQXFyl9Zwzq0ACWnDAYZpiVfI12jDEimK FxEmBwVWpw8HMyg1Q7s+FBi9LAJofDYt7rSOJRkz7sYy+FrPu49+I/kXsDz2M1f5YEll4W esCXMq2w1k3qqWFT2DgUSC4Fx+OpsIv8gxnW52V2N2RAzxxcu8dXs943N918HEP9BbV6XC HVApzmIJuUX5yjICYuA5RRrPbqj3xYv2ivbU5mHAbRAEhjPnwbvvq71mSc5uFg== 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 4Rnygr3m2Yzl6; Sat, 16 Sep 2023 17:28:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38GHS8mK014524; Sat, 16 Sep 2023 17:28:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GHS8vK014521; Sat, 16 Sep 2023 17:28:08 GMT (envelope-from git) Date: Sat, 16 Sep 2023 17:28:08 GMT Message-Id: <202309161728.38GHS8vK014521@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik <mjg@FreeBSD.org> Subject: git: 9080190b970c - main - vfs: count how many times vnlru got woken up due to vnode shortage List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: <mailto:dev-commits-src-main+help@freebsd.org> List-Post: <mailto:dev-commits-src-main@freebsd.org> List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9080190b970c7026695571f90b95fdcf7056ec67 Auto-Submitted: auto-generated The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=9080190b970c7026695571f90b95fdcf7056ec67 commit 9080190b970c7026695571f90b95fdcf7056ec67 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-16 17:26:39 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-16 17:26:39 +0000 vfs: count how many times vnlru got woken up due to vnode shortage --- sys/kern/vfs_subr.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 11cdea5a7dc1..0251525a50c7 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1477,6 +1477,10 @@ vnlru_recalc(void) */ static struct proc *vnlruproc; static int vnlruproc_sig; +static u_long vnlruproc_kicks; + +SYSCTL_ULONG(_vfs_vnode_vnlru, OID_AUTO, kicks, CTLFLAG_RD, &vnlruproc_kicks, 0, + "Number of times vnlru got woken up due to vnode shortage"); /* * The main freevnodes counter is only updated when a counter local to CPU @@ -1571,6 +1575,7 @@ vnlru_kick_locked(void) mtx_assert(&vnode_list_mtx, MA_OWNED); if (vnlruproc_sig == 0) { vnlruproc_sig = 1; + vnlruproc_kicks++; wakeup(vnlruproc); } }