From nobody Sat Aug 12 19:11:53 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNVdj47TDz4qR7R; Sat, 12 Aug 2023 19:11: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 4RNVdj3Yf0z3fj4; Sat, 12 Aug 2023 19:11:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691867513; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X6uyt9fLXGEjA74pZBFpDO/o/9EyicYxTFSwn1oIfXM=; b=HQfT7d0cVGR1v3ltWxyKKWnUKzHrJ9+npwlve7XjcpynbeUoK+wa4YOJkAVm9PIrxbN7+A kJUFQqoIalguUGvPN5VHzc473qovxSAy4J4OT8pA832Gaw8RRHG8cmzkbwNte5qD9+n/1k 183ZbTLiqTajkNRjh9WWuBGNJ0XcJ3SYR/AadyFHpqBTNZQiNvX0rWNya0Bmp3Wk8Q98lk 5o8hIyL0pgzWMKx9k8QU90CBmijFNnQrbRjelqAwy8gzRxztdaYbAJ8wvEcUM5Xg4ZMtGK Lbo2WMji/s44cMQB7q0C0jP3M8dbrmsHAVb8jgABLHATSKbRhpBxF/sGNw2WCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691867513; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X6uyt9fLXGEjA74pZBFpDO/o/9EyicYxTFSwn1oIfXM=; b=mgInKbY6mKx9T5ER9S6MGuGosBK7/BPiruaVxiLPcPO8wFmD8ywgM8ZnIgIPISXgBdb10E mkqKEe8XXvKt54cfevSMbHgVYvt7v1pFXWI59ndH8nwpe9wAyjWzgOFX3ILvF+ePKwufi5 VA4+qnfgzIMo6RbVNPL0krg98rKF8dmkjbeGhcY4qoQV7DkifDcfD+STuMBI6NeTyWSvD8 SZlEKIYre+1wtNdzLuc5KeRhlIWoDhYgiisDHmgJOMqI9W4PBANHEoX7pB+0NQwfgKWrwN XFnPFgZMfpQDBdR/ge3PK/Itmz4SyGeB7Xn9oVzx4DNq9SgWSLZJR2FhxAvAIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691867513; a=rsa-sha256; cv=none; b=xECIPgkoUSDb6guJQl7CspK4lazaLNb1vpYgcGuwDZobihGu47NJkCVABafN8FvKyyG8bJ 0wrm+GWZrAdqgMZ/7lBcS267F01OHNeOhhLZPtRn7qbZClDD+cEDg04T9rCzRCWVf7X6OU o7AFgJZqeHweC6mb45yhMXaTrpvpLdWYyXeW9UZOBSO8iAnyjGn7dNa0W1QMTjZEpHMJ76 fo47s8URmqRhbB9M1/uKqrzCVSc32OQEieFjAgLdrLmrd0Zp+HGoWWwmS7rWS9O+8ZwOx6 fWnCLil+VIpI9nlvx9Zsfs24tG2KvkpwiMS0IJDzitQ0ZL5BAiLzZ9h7IsB4OA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RNVdj2KhdzXtg; Sat, 12 Aug 2023 19:11: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 37CJBrZI001501; Sat, 12 Aug 2023 19:11:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37CJBrah001498; Sat, 12 Aug 2023 19:11:53 GMT (envelope-from git) Date: Sat, 12 Aug 2023 19:11:53 GMT Message-Id: <202308121911.37CJBrah001498@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick <mckusick@FreeBSD.org> Subject: git: db25f7b14097 - stable/13 - Improve dumpfs(8) error messages when a cylinder group read fails. List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: db25f7b14097522eb0177cace29a38c1abe4c7dc Auto-Submitted: auto-generated The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=db25f7b14097522eb0177cace29a38c1abe4c7dc commit db25f7b14097522eb0177cace29a38c1abe4c7dc Author: Kirk McKusick <mckusick@FreeBSD.org> AuthorDate: 2023-08-06 06:09:18 +0000 Commit: Kirk McKusick <mckusick@FreeBSD.org> CommitDate: 2023-08-12 19:11:42 +0000 Improve dumpfs(8) error messages when a cylinder group read fails. Sponsored-by: The FreeBSD Foundation (cherry picked from commit 02b7bf07c5d2ec578fc044b60229c6e951f26087) --- sbin/dumpfs/dumpfs.c | 61 +++++++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/sbin/dumpfs/dumpfs.c b/sbin/dumpfs/dumpfs.c index f93047b8803f..7f3e7bb3e910 100644 --- a/sbin/dumpfs/dumpfs.c +++ b/sbin/dumpfs/dumpfs.c @@ -74,6 +74,7 @@ static const char rcsid[] = #include <stdint.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <unistd.h> #define afs disk.d_fs @@ -89,7 +90,7 @@ static void dumpfreespacecg(int); static int marshal(const char *); static void pbits(void *, int); static void pblklist(void *, int, off_t, int); -static void ufserr(const char *); +static const char *ufserr(void); static void usage(void) __dead2; int @@ -131,7 +132,7 @@ main(int argc, char *argv[]) while ((name = *argv++) != NULL) { if (ufs_disk_fillout(&disk, name) == -1) { - ufserr(name); + printf("\n%s: %s\n", name, ufserr()); eval |= 1; continue; } @@ -162,7 +163,7 @@ dumpfs(const char *name, int dosb) time_t fstime, fsmtime; int64_t fssize; int32_t fsflags; - int i; + int i, ret; switch (disk.d_ufs) { case 2: @@ -187,7 +188,8 @@ dumpfs(const char *name, int dosb) afs.fs_ncg, (intmax_t)fssize, (intmax_t)afs.fs_dsize); break; default: - goto err; + printf("Unknown filesystem type %d\n", disk.d_ufs); + return (1); } printf("bsize\t%d\tshift\t%d\tmask\t0x%08x\n", afs.fs_bsize, afs.fs_bshift, afs.fs_bmask); @@ -242,7 +244,8 @@ dumpfs(const char *name, int dosb) afs.fs_old_nsect, afs.fs_old_npsect, afs.fs_old_spc); break; default: - goto err; + printf("Unknown filesystem type %d\n", disk.d_ufs); + return (1); } printf("old_cpg\t%d\tsize_cg\t%zu\tCGSIZE\t%zu\n", afs.fs_old_cpg, sizeof(struct cg), CGSIZE(&afs)); @@ -310,9 +313,6 @@ dumpfs(const char *name, int dosb) afs.fs_volname, (uintmax_t)afs.fs_swuid, (uintmax_t)afs.fs_providersize); printf("\ncs[].cs_(nbfree,ndir,nifree,nffree):\n\t"); - afs.fs_csp = calloc(1, afs.fs_cssize); - if (bread(&disk, fsbtodb(&afs, afs.fs_csaddr), afs.fs_csp, afs.fs_cssize) == -1) - goto err; for (i = 0; i < afs.fs_ncg; i++) { struct csum *cs = &afs.fs_cs(&afs, i); if (i && i % 4 == 0) @@ -331,14 +331,15 @@ dumpfs(const char *name, int dosb) } if (dosb) return (0); + ret = 0; while ((i = cgread(&disk)) != 0) { - if (i == -1 || dumpcg()) - goto err; + if (i == -1) { + ret = 1; + printf("\ncg %d: %s\n", disk.d_lcg, ufserr()); + } else if (dumpcg()) + ret = 1; } - return (0); - -err: ufserr(name); - return (1); + return (ret); } static int @@ -404,17 +405,22 @@ dumpcg(void) static int dumpfreespace(const char *name, int fflag) { - int i; + intmax_t startblkno; + int i, ret; + ret = 0; while ((i = cgread(&disk)) != 0) { - if (i == -1) - goto err; - dumpfreespacecg(fflag); + if (i != -1) { + dumpfreespacecg(fflag); + } else { + startblkno = disk.d_lcg * afs.fs_fpg; + printf("\nBlocks %jd-%jd of cg %d skipped: %s\n", + startblkno, startblkno + afs.fs_fpg - 1, + disk.d_lcg, ufserr()); + ret = 1; + } } - return (0); -err: - ufserr(name); - return (1); + return (ret); } static void @@ -523,13 +529,14 @@ pblklist(void *vp, int max, off_t offset, int fflag) } } -static void -ufserr(const char *name) +static const char * +ufserr(void) { if (disk.d_error != NULL) - warnx("%s: %s", name, disk.d_error); - else if (errno) - warn("%s", name); + return(disk.d_error); + if (errno) + return (strerror(errno)); + return ("unknown error"); } static void From nobody Sun Aug 13 04:37:54 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNlBp3c9Jz4mSLx; Sun, 13 Aug 2023 04:37: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 4RNlBp2vqZz3YFP; Sun, 13 Aug 2023 04:37:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691901474; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zZa6kpdEXXNTDwhRl/XrzTLMn6ZU7Vdvq2C7TTQpWZY=; b=EjRsQmQqVP6Eqv7s8Oztk0C3oVm3luRhCMyhA6PgPBrzy79mUu3TrLoepGBSH4uh3nJr/A UudDlwe5TxEFJyF2eomxY+jTY+oksBAh9s3C6nBNs5/++UVX1YM+qqmlDFVxUfwc9HS2a6 4A/zqoKrVRpY3974lixhOvUUzdmfHMaocES0LgVC4hCWhVDKYcbS+QAnQOF+Ilo4rAlcKU 2UR8fEqPdR6t3K6kmjvtQReCgfkM3WER9Ai+8FU29LuuKScU8NAXoCHcGLAdZnaBcL1yhV jcMnwaObi1SP0x7qXI0alwKxAA3eZnlmCP3JOba+iSzTtsSoHn07/cbzcu02GA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691901474; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zZa6kpdEXXNTDwhRl/XrzTLMn6ZU7Vdvq2C7TTQpWZY=; b=R4vobahg6vAND5C1bJ4R0zv2aReizSWziG50y4SZFgIS5PZhPqk/Vos1Akqh0ehu4tVdET kvtsRBD8Muz8gPl0OvW068iU5LcfgmTNgyYnIclXfOM13zYjKXrgyNxXZX59OZ75bTpZxt wKBh7KMjImk6bKMIt8Gfta8Lux8zF9IqxRWy2qjjWM4VkuDHm705svnm03vCxMICARQtmo Do4GTrU0qxrONH8+/49+HR2vW4Ug630CBpB9UiPO9TZq10xQj+3kj74reIdkYGN1lFM4uH 08yEF60ein2Y24VuR0OeCf4HIup/uRG/m/XfvzJw+MXwZj2iZS8f65lGmXjsIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691901474; a=rsa-sha256; cv=none; b=khPIdjE2cY0BVUTssbCaJB8o153JI6p/9eblq84+ehbzLJpbg1TH2iDpwydy52ek7LYadG pAHVxKH5VIMJIgCd+LHVQFoiPHrZ2P0pRWAk3Pa9SVuVbQLhomHc2FlVZihWoNHGQ4mZUB KO4AQ3fpNN7cK9LU7HQBN2+r3ENYX5w0p4ONgC1sVylc+CbM3iWXaJ67l4G+Hbi43pIt7K F5RtKf7y3lVIvgvrygngPXoxIruk6K6GBoyISGf8LGDwLwRe13I1SSIZFopKB0C1nPmdQ/ uud47wYubwDq4++yAh/jTCSCtOZrO6++E5BWD5ZdRq+d1qijskXI9INY2UtTyA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RNlBp1jlxzp7f; Sun, 13 Aug 2023 04:37: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 37D4bsSa035874; Sun, 13 Aug 2023 04:37:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D4bs0X035871; Sun, 13 Aug 2023 04:37:54 GMT (envelope-from git) Date: Sun, 13 Aug 2023 04:37:54 GMT Message-Id: <202308130437.37D4bs0X035871@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: 79757c0a33ca - stable/13 - Update comment describing struct vm_map List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 79757c0a33ca0da0f079c7250b820c81520649d9 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=79757c0a33ca0da0f079c7250b820c81520649d9 commit 79757c0a33ca0da0f079c7250b820c81520649d9 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-08-10 05:01:39 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-13 04:35:41 +0000 Update comment describing struct vm_map (cherry picked from commit 9da33e8d10736c255bf63d408837c6942bd28e04) --- sys/vm/vm_map.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h index 7854a91f36a9..21f9b48e9b4e 100644 --- a/sys/vm/vm_map.h +++ b/sys/vm/vm_map.h @@ -179,12 +179,11 @@ vm_map_entry_system_wired_count(vm_map_entry_t entry) /* * A map is a set of map entries. These map entries are - * organized as a threaded binary search tree. Both structures - * are ordered based upon the start and end addresses contained + * organized as a threaded binary search tree. The tree is + * ordered based upon the start and end addresses contained * within each map entry. The largest gap between an entry in a * subtree and one of its neighbors is saved in the max_free - * field, and that field is updated when the tree is - * restructured. + * field, and that field is updated when the tree is restructured. * * Sleator and Tarjan's top-down splay algorithm is employed to * control height imbalance in the binary search tree. From nobody Sun Aug 13 04:37:55 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNlBq3f2Dz4mSP5; Sun, 13 Aug 2023 04:37: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 4RNlBq2yWfz3YCY; Sun, 13 Aug 2023 04:37:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691901475; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M9JfjTf5CgKSI9u9d3TUZk4LiUE4CSDrshf0lBn0rSQ=; b=rD/C6E6u/dNf1wCTRJeQqSlc/BilasNSOH4iTJmTnyi5rGISQha9bqMe2ApkM4sCys7ps2 cNN+BK9VXPggL+6Ige6KDsoscEhZfsj3TrLPUD1s4nbA23FOKe1Bqx7ypaxNE/xJKW153D munSDWF2eigU/th5/cqYwNiGlh7QgbOJHsHs4hMYRNJ4qGiVjkVmFCXP+BZtprbzsdjfa7 x6OiuPG6htmkdghRRKEaJ8XRIsUL2jlM4hVeJewG0piv22gUd8ITdAWFlJHmNrbNJCKZmP tXAYXuTYmYNKFhG44ifrzZuoZOZyiLeX15qgrCfvrzPPbZk5LSHtRcm2YR2KYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691901475; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M9JfjTf5CgKSI9u9d3TUZk4LiUE4CSDrshf0lBn0rSQ=; b=rxkwbKMtTa5a5M7Zo4Dk3bVgVarQPYzUaY679RMR42KXHP6BaoNjeNLSgsuUb8v4UGVbpQ U84DD5U+TeZ9m+AUIS50iSySYojZ+QncvOKwpOf/fXhjlMKhxUDOiLVahLsOkB8aB2hkSD ZEigrq8tDjLB5JQ6InFSx1poxbb0iSsVXfwolASjL4vHZLKnFAv1ZqCjAmnXaJbxqM2FFY 48owdR/ZGeos6s2UibQ/BBw+lBfx7mLOrV580EHYoicMh0hV8K0d+bx+AcVqkZ84XZ3v+8 Enk1RDyouGC/AQLgyz01RiLnPcB524ovGnuJAvZBqXTkK3rSzj9D568SX8ce8Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691901475; a=rsa-sha256; cv=none; b=ieve2oDYA79H5U6pP7qKSaS8dMxobF/pqIDRGcr0C6vVoOwmOKxSJ23LwWrwD5Wpv7IClt 1y9LyVeNnq117EDtMYtL7WKsGnIAAwXxyYnglIBIIIHhU6cwaNBm15HksoqWBEEVQcXTFw aTuGCj08OebNnZFiiRkqk/hDJl4AiYrqYf3LG/ceJJdhZ3DB/jbRkaaPwQ+4LCg2SkeV1I zAYtLdOLmX9NB8fcl0KnSc5FOZ1f3v9ZrjbRb03oTeOXA/FFt3qcyu1KGEgSmWNlpHYgMr cI1DtwVuyfNLRIDqwutLCJ4x06BqmHK6uS9tQ3zE4BHib1QgQ+LdbF4Kb7BVFg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RNlBq1s9KzncB; Sun, 13 Aug 2023 04:37: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 37D4btgI035927; Sun, 13 Aug 2023 04:37:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D4btvW035924; Sun, 13 Aug 2023 04:37:55 GMT (envelope-from git) Date: Sun, 13 Aug 2023 04:37:55 GMT Message-Id: <202308130437.37D4btvW035924@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: 4e94219d5582 - stable/13 - sys/cdefs.h: fix for use __restrict in C++ List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4e94219d55824b19693287052edd8a1da76e3541 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4e94219d55824b19693287052edd8a1da76e3541 commit 4e94219d55824b19693287052edd8a1da76e3541 Author: Sebastian Huber <sebastian.huber@embedded-brains.de> AuthorDate: 2023-08-06 13:27:27 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-13 04:35:41 +0000 sys/cdefs.h: fix for use __restrict in C++ PR: 272723 (cherry picked from commit 15876d9fd83fdfa7d541ea747eb40faeade975d2) --- sys/sys/cdefs.h | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h index 28e464122e58..3fde24f0b9e9 100644 --- a/sys/sys/cdefs.h +++ b/sys/sys/cdefs.h @@ -404,17 +404,15 @@ #endif /* - * GCC 2.95 provides `__restrict' as an extension to C90 to support the - * C99-specific `restrict' type qualifier. We happen to use `__restrict' as - * a way to define the `restrict' type qualifier without disturbing older - * software that is unaware of C99 keywords. + * We use `__restrict' as a way to define the `restrict' type qualifier + * without disturbing older software that is unaware of C99 keywords. + * GCC also provides `__restrict' as an extension to support C99-style + * restricted pointers in other language modes. */ -#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95) -#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901 -#define __restrict -#else +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901 #define __restrict restrict -#endif +#elif !__GNUC_PREREQ__(2, 95) +#define __restrict #endif /* From nobody Sun Aug 13 04:37:56 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNlBs0T6tz4mSP7; Sun, 13 Aug 2023 04:37: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 4RNlBr44bHz3YTZ; Sun, 13 Aug 2023 04: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=1691901476; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hU3sv8Ea8PamUnLAvVkq3yhizqFyh3eVcVg7X6re4Uc=; b=b4kIA+MGObAvkWE6x0TG4DXpEUIxsy9JiCVYxFUX6TRmsnmvBkeJPK5OraS+xFTxR0sazM SuXok91WvVySFl7r3mid+bM6Ht0UK5Vtknv+Bd8NH8Z1GFKLmPJ2lHhPcgWl4Xdkm9p6as 3ahcKFND5I9+WSGerQb73Jup0/5JHpn1GlEaPepPNJTvvul6GLJcRYhSKa5bNq0MI3Ybkr QRzlM3paBqHcJA+QQwIYGxf5zVe8o0/hwkF/eCHy+Vt0GiVnQ9rmm6N4Vo6d92l/R/vtXm 2076OpJggHE4FEeqN3bbbaaT6dwacVhI0O83j85NTVsB2UHF0r/bDrG1PZeXsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691901476; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hU3sv8Ea8PamUnLAvVkq3yhizqFyh3eVcVg7X6re4Uc=; b=Tkyzwrv6MlVWzpIvAgC0eBtzZD4r551J2QKkjhHdRrM7GkWxL7vYTawkLYkXcdRwrQCp/Y kcBe9tCOLZFx71zgdrALekJ43ERp27AaUhEUY2+vA5GIXQTmbCVfY5r6SB3nBQoX4yBZ3y N8WEujCNkiiSfsApFn/eWLVf+YC+lNCk08ppTXRrhDRdhgKFvhrTQ4CvxUp3iNXmKn9qin 4FtPcD7AmLrE4YvaemSyyzAyG/pB7ws1ze6N2sWPPHQkg/ERaCsZtmXgWKmOg0u760DHtc li24gEj5z3zozTuCN5XAZxBMapV/JN0dqi1qADZ9/AIloGKQ1TRhEu81ib6xJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691901476; a=rsa-sha256; cv=none; b=quaOhGNH9VJUT3mQx1H6e2q/5qXWDhKR2geX9WQZz//KtOg7E4PlGSiBMnG4HoQzYXgTeA XTp6/ouNIqCCrqbxN/Vva+Qy9E/TeLqNBUggkl+FycHfJjlFp5ml35z/e9o0jAyQdcQud8 0rcNZxFWqjmpuR6HTOjgDg1CJVTm/oqt07pqN8OS6Nc3omgk06JdVKS+jIj+fvzEaoZyyx 3MU0KZb0FGhYsb3BRkz5Z+FhhPKzJhnOWP5QtJtewroLkwmvwE3EY7M14Apo5yjXxZ8Ba1 Q1xsmzxRjoCB5V9Fe1WFe3kPFfl7S6NTAsc/vn6okEQlhh5aghkJxi3K/MHGYg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RNlBr2vhTzpM4; Sun, 13 Aug 2023 04: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 37D4bu4d035978; Sun, 13 Aug 2023 04: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 37D4buaH035975; Sun, 13 Aug 2023 04:37:56 GMT (envelope-from git) Date: Sun, 13 Aug 2023 04:37:56 GMT Message-Id: <202308130437.37D4buaH035975@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: b53ecd5cf63b - stable/13 - libc dlfcn.c: make dl_iterate_phdr() from libc more useful List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b53ecd5cf63b90a72436642056733b686d881eb1 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=b53ecd5cf63b90a72436642056733b686d881eb1 commit b53ecd5cf63b90a72436642056733b686d881eb1 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-08-09 05:07:05 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-13 04:35:41 +0000 libc dlfcn.c: make dl_iterate_phdr() from libc more useful PR: 272992 (cherry picked from commit 21a52f99440c9bec7679f3b0c5c9d888901c3694) --- lib/libc/gen/dlfcn.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/libc/gen/dlfcn.c b/lib/libc/gen/dlfcn.c index 61984e2fe86c..f1ee86ec1934 100644 --- a/lib/libc/gen/dlfcn.c +++ b/lib/libc/gen/dlfcn.c @@ -169,7 +169,9 @@ _rtld_thread_init(void *li __unused) #ifndef IN_LIBDL static pthread_once_t dl_phdr_info_once = PTHREAD_ONCE_INIT; static struct dl_phdr_info phdr_info; +#ifndef PIC static mutex_t dl_phdr_info_lock = MUTEX_INITIALIZER; +#endif static void dl_init_phdr_info(void) @@ -208,7 +210,16 @@ int dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *) __unused, void *data __unused) { -#ifndef IN_LIBDL +#if defined IN_LIBDL + return (0); +#elif defined PIC + int (*r)(int (*)(struct dl_phdr_info *, size_t, void *), void *); + + r = dlsym(RTLD_DEFAULT, "dl_iterate_phdr"); + if (r == NULL) + return (0); + return (r(callback, data)); +#else tls_index ti; int ret; @@ -223,8 +234,6 @@ dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *) __unused, ret = callback(&phdr_info, sizeof(phdr_info), data); mutex_unlock(&dl_phdr_info_lock); return (ret); -#else - return (0); #endif } From nobody Sun Aug 13 08:42:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNrdY2WYrz4qDtj; Sun, 13 Aug 2023 08: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 4RNrdY262tz4ShF; Sun, 13 Aug 2023 08: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=1691916177; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pfYklILFDdwvaKcTz//Z823APliB6Rtdnb0NJlfTOsE=; b=UV90RGJvg/KZ0n9jd32ec0k0qX8rX5D0LhlsaUfE1NNwOP8kYnt3KQuRWhKUtVxl50EmJq WZ9aYFpcCmpL5Dug9NzrKuTdDgUcNhQO3xS9NEDNQRW/pgjyU6avDae7d+GOEWQqACWq+H Y68SdQjs2PDBE3aNmwu7qTpnraFtrmwymxREwo5Bhp9hTZBXfU7iTADpJrbPOioiVKO3gr wVw1AQVTUaEDb9Qbgl4lpcStjBRsg8kxpldm22LBKjU0v5VBJYgkjn6TvJd5OSWRYkhabg JyAgEfLNiw8O5OVQ6u6iKw/ButJyyYlKpCBE/KzePdCv5CeHcDLBYjGBoi8tfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691916177; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pfYklILFDdwvaKcTz//Z823APliB6Rtdnb0NJlfTOsE=; b=jFEhDa7fVDUxUm8VDgiDhzVl7dTosc7/YlSKW1LC1muI95/fyDdar0TN5xEe2dYQYW6b0E V76goHUxATFgAGeuj2JCuBEzNu+WtRDhSnFSc/v0gIHxJc59PKsdUAaVoMtVC72aPIhQFB +HcEh4J8QCcbKpRMc2vT2qZ+3z09sdckiKvJ1nXIyxuZf24NlmZfsAPo5mqzyABluxmKG1 ALutZzfYp6HAcvLrIsEiBc2OT8VURZX8sYzhkVItAucNAbWdx8YQqBun8TAS5irFQYiUfv 8P60y+jYRq1SEwFu6yogujezAfG3GaED8nwv/A8zqt4TlXSYsb0MfzFeNkuy+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691916177; a=rsa-sha256; cv=none; b=xo9o1o5zRw+U7VvcB6HA1QQcILevKe3NBo9QVd5zS5UIm77yyd3WFrZQdkJfTMyieYjFpU PMrgXxWmxY6Rt806Q7ZQByzqSldlR4UET0yUQmI5tNiSnN6my/xgRzckLG2G9eG6EeZ7Wi 0aNfgoq05s1qzjwTb0pBrSu8PKi2933mUmJUIrnpi18ORLvzx6LtHXv+XT6x3ecSo0k5SZ zpDM1A2zwSa3DI6ADUUXDUdIDniePzVeA54BmH3RscBp1gMFXnpSRfePftG81GfVOFvB+7 b7ZmSPg9VTJafq/LMLG2V7vC+zeGezyoKMn4fCTAuv9JV9EjBq+PosgwV71PoQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RNrdY190jzvlJ; Sun, 13 Aug 2023 08: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 37D8gvu5051321; Sun, 13 Aug 2023 08: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 37D8gvfD051319; Sun, 13 Aug 2023 08:42:57 GMT (envelope-from git) Date: Sun, 13 Aug 2023 08:42:57 GMT Message-Id: <202308130842.37D8gvfD051319@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric <dim@FreeBSD.org> Subject: git: e0a003552650 - stable/13 - Clean up libm use of the __ieee754_ prefix List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: e0a00355265097ac916398bdc58cbe94fa2fbc10 Auto-Submitted: auto-generated The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=e0a00355265097ac916398bdc58cbe94fa2fbc10 commit e0a00355265097ac916398bdc58cbe94fa2fbc10 Author: Steve Kargl <kargl@FreeBSD.org> AuthorDate: 2023-08-03 19:51:17 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-08-13 08:38:17 +0000 Clean up libm use of the __ieee754_ prefix This removes the __ieee754_ prefix from a number of the math functions. msun/src/math_private.h contains the statement that /* * ieee style elementary functions * * We rename functions here to improve other sources' diffability * against fdlibm. */ #define __ieee754_sqrt sqrt ... Here, fdlibm refers to https://netlib.org/fdlibm. It is seen from https://netlib.org/fdlibm/readme that this prefix was used to differentiate between different standards: Wrapper functions will twist the result of the ieee754 function to comply to the standard specified by the value of _LIB_VERSION if _LIB_VERSION = _IEEE_, return the ieee754 result; if _LIB_VERSION = _SVID_, return SVID result; if _LIB_VERSION = _XOPEN_, return XOPEN result; if _LIB_VERSION = _POSIX_, return POSIX/ANSI result. (These are macros, see fdlibm.h for their definition.) AFAICT, FreeBSD has never supported these wrappers. In addition, as C99, principally the long double, functions were added to libm, this convention was not maintained. Given that only 148 of 324 files under lib/msun contain a "Copyright (C) 1993 by Sun Microsystems" statement, the removal of the __ieee754_ prefix provides consistency across all source files. The last time someone compared lib/msun to fdlibm appears to be commit 3f70824172feb82ea3dcdb3866b54fe0eb7cd890 Author: David Schultz <das@FreeBSD.org> Date: Fri Feb 4 18:26:06 2005 +0000 Reduce diffs against vendor source (Sun fdlibm 5.3). The most recent fdlibm RCS string that appears in a Sun Microsystem copyrighted file is date "95/01/18". With Oracle Corporation's acquisition of Sun Microsystems in 2009, it is unlikely that fdlibm will ever be updated. A search for fdlibm at https://opensource.oracle.com/ yields no hits. Finally, OpenBSD removed the use of this prefix over 21 years ago. pSee revision 1.6 of OpenBSD's math_private.h. Note: this does not drop the __ieee754_ prefix from the trigonometric argument reduction functions, e.g., __ieee754_rem_pio2. These functions are internal to the libm and exported through Symbol.map; and thus, reserved for the implementation. PR: 272783 MFC after: 1 week (cherry picked from commit 99843eb89954dac76afe7cf18d962eddfe7a7987) --- lib/msun/src/e_acos.c | 4 +-- lib/msun/src/e_acosf.c | 2 +- lib/msun/src/e_acosh.c | 8 +++--- lib/msun/src/e_acoshf.c | 8 +++--- lib/msun/src/e_asin.c | 4 +-- lib/msun/src/e_asinf.c | 2 +- lib/msun/src/e_atan2.c | 4 +-- lib/msun/src/e_atan2f.c | 2 +- lib/msun/src/e_atanh.c | 4 +-- lib/msun/src/e_atanhf.c | 2 +- lib/msun/src/e_cosh.c | 8 +++--- lib/msun/src/e_coshf.c | 6 ++--- lib/msun/src/e_exp.c | 4 +-- lib/msun/src/e_expf.c | 2 +- lib/msun/src/e_fmod.c | 4 +-- lib/msun/src/e_fmodf.c | 4 +-- lib/msun/src/e_gamma.c | 8 +++--- lib/msun/src/e_gamma_r.c | 8 +++--- lib/msun/src/e_gammaf.c | 8 +++--- lib/msun/src/e_gammaf_r.c | 8 +++--- lib/msun/src/e_hypot.c | 4 +-- lib/msun/src/e_hypotf.c | 6 ++--- lib/msun/src/e_j0.c | 10 +++---- lib/msun/src/e_j0f.c | 8 +++--- lib/msun/src/e_j1.c | 8 +++--- lib/msun/src/e_j1f.c | 6 ++--- lib/msun/src/e_jn.c | 28 ++++++++++---------- lib/msun/src/e_jnf.c | 26 +++++++++--------- lib/msun/src/e_lgamma.c | 8 +++--- lib/msun/src/e_lgamma_r.c | 16 ++++++------ lib/msun/src/e_lgammaf.c | 8 +++--- lib/msun/src/e_lgammaf_r.c | 14 +++++----- lib/msun/src/e_log.c | 4 +-- lib/msun/src/e_log10.c | 2 +- lib/msun/src/e_log10f.c | 2 +- lib/msun/src/e_log2.c | 2 +- lib/msun/src/e_log2f.c | 2 +- lib/msun/src/e_logf.c | 2 +- lib/msun/src/e_pow.c | 4 +-- lib/msun/src/e_powf.c | 4 +-- lib/msun/src/e_remainder.c | 6 ++--- lib/msun/src/e_remainderf.c | 4 +-- lib/msun/src/e_scalb.c | 6 ++--- lib/msun/src/e_scalbf.c | 4 +-- lib/msun/src/e_sinh.c | 6 ++--- lib/msun/src/e_sinhf.c | 4 +-- lib/msun/src/e_sqrt.c | 6 ++--- lib/msun/src/e_sqrtf.c | 4 +-- lib/msun/src/math_private.h | 61 ------------------------------------------- lib/msun/src/s_asinh.c | 6 ++--- lib/msun/src/s_asinhf.c | 6 ++--- lib/msun/src/s_erf.c | 4 +-- lib/msun/src/s_significand.c | 2 +- lib/msun/src/s_significandf.c | 2 +- 54 files changed, 162 insertions(+), 223 deletions(-) diff --git a/lib/msun/src/e_acos.c b/lib/msun/src/e_acos.c index 1f6dca5bb5cb..6623355baa7c 100644 --- a/lib/msun/src/e_acos.c +++ b/lib/msun/src/e_acos.c @@ -14,7 +14,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_acos(x) +/* acos(x) * Method : * acos(x) = pi/2 - asin(x) * acos(-x) = pi/2 + asin(x) @@ -62,7 +62,7 @@ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ double -__ieee754_acos(double x) +acos(double x) { double z,p,q,r,w,s,c,df; int32_t hx,ix; diff --git a/lib/msun/src/e_acosf.c b/lib/msun/src/e_acosf.c index c9f62cc40f5c..64f1c5afb182 100644 --- a/lib/msun/src/e_acosf.c +++ b/lib/msun/src/e_acosf.c @@ -32,7 +32,7 @@ pS2 = -8.6563630030e-03, qS1 = -7.0662963390e-01; float -__ieee754_acosf(float x) +acosf(float x) { float z,p,q,r,w,s,c,df; int32_t hx,ix; diff --git a/lib/msun/src/e_acosh.c b/lib/msun/src/e_acosh.c index 358c8bd6a636..7947995820d0 100644 --- a/lib/msun/src/e_acosh.c +++ b/lib/msun/src/e_acosh.c @@ -15,7 +15,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_acosh(x) +/* acosh(x) * Method : * Based on * acosh(x) = log [ x + sqrt(x*x-1) ] @@ -39,7 +39,7 @@ one = 1.0, ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */ double -__ieee754_acosh(double x) +acosh(double x) { double t; int32_t hx; @@ -51,12 +51,12 @@ __ieee754_acosh(double x) if(hx >=0x7ff00000) { /* x is inf of NaN */ return x+x; } else - return __ieee754_log(x)+ln2; /* acosh(huge)=log(2x) */ + return log(x)+ln2; /* acosh(huge)=log(2x) */ } else if(((hx-0x3ff00000)|lx)==0) { return 0.0; /* acosh(1) = 0 */ } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ t=x*x; - return __ieee754_log(2.0*x-one/(x+sqrt(t-one))); + return log(2.0*x-one/(x+sqrt(t-one))); } else { /* 1<x<2 */ t = x-one; return log1p(t+sqrt(2.0*t+t*t)); diff --git a/lib/msun/src/e_acoshf.c b/lib/msun/src/e_acoshf.c index f529b20d1219..781ccf2a1151 100644 --- a/lib/msun/src/e_acoshf.c +++ b/lib/msun/src/e_acoshf.c @@ -24,7 +24,7 @@ one = 1.0, ln2 = 6.9314718246e-01; /* 0x3f317218 */ float -__ieee754_acoshf(float x) +acoshf(float x) { float t; int32_t hx; @@ -35,14 +35,14 @@ __ieee754_acoshf(float x) if(hx >=0x7f800000) { /* x is inf of NaN */ return x+x; } else - return __ieee754_logf(x)+ln2; /* acosh(huge)=log(2x) */ + return logf(x)+ln2; /* acosh(huge)=log(2x) */ } else if (hx==0x3f800000) { return 0.0; /* acosh(1) = 0 */ } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ t=x*x; - return __ieee754_logf((float)2.0*x-one/(x+__ieee754_sqrtf(t-one))); + return logf((float)2.0*x-one/(x+sqrtf(t-one))); } else { /* 1<x<2 */ t = x-one; - return log1pf(t+__ieee754_sqrtf((float)2.0*t+t*t)); + return log1pf(t+sqrtf((float)2.0*t+t*t)); } } diff --git a/lib/msun/src/e_asin.c b/lib/msun/src/e_asin.c index 931b270498e6..fa180ab5701b 100644 --- a/lib/msun/src/e_asin.c +++ b/lib/msun/src/e_asin.c @@ -14,7 +14,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_asin(x) +/* asin(x) * Method : * Since asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ... * we approximate asin(x) on [0,0.5] by @@ -68,7 +68,7 @@ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ double -__ieee754_asin(double x) +asin(double x) { double t=0.0,w,p,q,c,r,s; int32_t hx,ix; diff --git a/lib/msun/src/e_asinf.c b/lib/msun/src/e_asinf.c index deaabb6a326e..db4b9b6034f7 100644 --- a/lib/msun/src/e_asinf.c +++ b/lib/msun/src/e_asinf.c @@ -32,7 +32,7 @@ static const double pio2 = 1.570796326794896558e+00; float -__ieee754_asinf(float x) +asinf(float x) { double s; float t,w,p,q; diff --git a/lib/msun/src/e_atan2.c b/lib/msun/src/e_atan2.c index 231a1611ee12..0b2e72102edb 100644 --- a/lib/msun/src/e_atan2.c +++ b/lib/msun/src/e_atan2.c @@ -15,7 +15,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_atan2(y,x) +/* atan2(y,x) * Method : * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). * 2. Reduce x to positive by (if x and y are unexceptional): @@ -58,7 +58,7 @@ static volatile double pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ double -__ieee754_atan2(double y, double x) +atan2(double y, double x) { double z; int32_t k,m,hx,hy,ix,iy; diff --git a/lib/msun/src/e_atan2f.c b/lib/msun/src/e_atan2f.c index 346d76746c05..4ea001df974a 100644 --- a/lib/msun/src/e_atan2f.c +++ b/lib/msun/src/e_atan2f.c @@ -30,7 +30,7 @@ static volatile float pi_lo = -8.7422776573e-08; /* 0xb3bbbd2e */ float -__ieee754_atan2f(float y, float x) +atan2f(float y, float x) { float z; int32_t k,m,hx,hy,ix,iy; diff --git a/lib/msun/src/e_atanh.c b/lib/msun/src/e_atanh.c index 422ff2698067..41f3bcaca26d 100644 --- a/lib/msun/src/e_atanh.c +++ b/lib/msun/src/e_atanh.c @@ -15,7 +15,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_atanh(x) +/* atanh(x) * Method : * 1.Reduced x to positive by atanh(-x) = -atanh(x) * 2.For x>=0.5 @@ -42,7 +42,7 @@ static const double one = 1.0, huge = 1e300; static const double zero = 0.0; double -__ieee754_atanh(double x) +atanh(double x) { double t; int32_t hx,ix; diff --git a/lib/msun/src/e_atanhf.c b/lib/msun/src/e_atanhf.c index 4bd6a8f9b9c6..46643beb5ab0 100644 --- a/lib/msun/src/e_atanhf.c +++ b/lib/msun/src/e_atanhf.c @@ -24,7 +24,7 @@ static const float one = 1.0, huge = 1e30; static const float zero = 0.0; float -__ieee754_atanhf(float x) +atanhf(float x) { float t; int32_t hx,ix; diff --git a/lib/msun/src/e_cosh.c b/lib/msun/src/e_cosh.c index 246b5fbec860..071663eb4e15 100644 --- a/lib/msun/src/e_cosh.c +++ b/lib/msun/src/e_cosh.c @@ -14,7 +14,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_cosh(x) +/* cosh(x) * Method : * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2 * 1. Replace x by |x| (cosh(x) = cosh(-x)). @@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$"); static const double one = 1.0, half=0.5, huge = 1.0e300; double -__ieee754_cosh(double x) +cosh(double x) { double t,w; int32_t ix; @@ -65,12 +65,12 @@ __ieee754_cosh(double x) /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */ if (ix < 0x40360000) { - t = __ieee754_exp(fabs(x)); + t = exp(fabs(x)); return half*t+half/t; } /* |x| in [22, log(maxdouble)] return half*exp(|x|) */ - if (ix < 0x40862E42) return half*__ieee754_exp(fabs(x)); + if (ix < 0x40862E42) return half*exp(fabs(x)); /* |x| in [log(maxdouble), overflowthresold] */ if (ix<=0x408633CE) diff --git a/lib/msun/src/e_coshf.c b/lib/msun/src/e_coshf.c index 95a0d6ee68ba..1673315d7b31 100644 --- a/lib/msun/src/e_coshf.c +++ b/lib/msun/src/e_coshf.c @@ -22,7 +22,7 @@ __FBSDID("$FreeBSD$"); static const float one = 1.0, half=0.5, huge = 1.0e30; float -__ieee754_coshf(float x) +coshf(float x) { float t,w; int32_t ix; @@ -43,12 +43,12 @@ __ieee754_coshf(float x) /* |x| in [0.5*ln2,9], return (exp(|x|)+1/exp(|x|))/2; */ if (ix < 0x41100000) { - t = __ieee754_expf(fabsf(x)); + t = expf(fabsf(x)); return half*t+half/t; } /* |x| in [9, log(maxfloat)] return half*exp(|x|) */ - if (ix < 0x42b17217) return half*__ieee754_expf(fabsf(x)); + if (ix < 0x42b17217) return half*expf(fabsf(x)); /* |x| in [log(maxfloat), overflowthresold] */ if (ix<=0x42b2d4fc) diff --git a/lib/msun/src/e_exp.c b/lib/msun/src/e_exp.c index dd04d8e839d5..59da39217391 100644 --- a/lib/msun/src/e_exp.c +++ b/lib/msun/src/e_exp.c @@ -13,7 +13,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_exp(x) +/* exp(x) * Returns the exponential of x. * * Method @@ -102,7 +102,7 @@ huge = 1.0e+300, twom1000= 9.33263618503218878990e-302; /* 2**-1000=0x01700000,0*/ double -__ieee754_exp(double x) /* default IEEE double exp */ +exp(double x) /* default IEEE double exp */ { double y,hi=0.0,lo=0.0,c,t,twopk; int32_t k=0,xsb; diff --git a/lib/msun/src/e_expf.c b/lib/msun/src/e_expf.c index 4903d55c5ab3..620d341be274 100644 --- a/lib/msun/src/e_expf.c +++ b/lib/msun/src/e_expf.c @@ -43,7 +43,7 @@ huge = 1.0e+30, twom100 = 7.8886090522e-31; /* 2**-100=0x0d800000 */ float -__ieee754_expf(float x) +expf(float x) { float y,hi=0.0,lo=0.0,c,t,twopk; int32_t k=0,xsb; diff --git a/lib/msun/src/e_fmod.c b/lib/msun/src/e_fmod.c index 3a28dc4ff1f3..6d5f5332cb85 100644 --- a/lib/msun/src/e_fmod.c +++ b/lib/msun/src/e_fmod.c @@ -15,7 +15,7 @@ __FBSDID("$FreeBSD$"); /* - * __ieee754_fmod(x,y) + * fmod(x,y) * Return x mod y in exact arithmetic * Method: shift and subtract */ @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$"); static const double one = 1.0, Zero[] = {0.0, -0.0,}; double -__ieee754_fmod(double x, double y) +fmod(double x, double y) { int32_t n,hx,hy,hz,ix,iy,sx,i; u_int32_t lx,ly,lz; diff --git a/lib/msun/src/e_fmodf.c b/lib/msun/src/e_fmodf.c index 1b6bf36f9cba..3cef9213c1e5 100644 --- a/lib/msun/src/e_fmodf.c +++ b/lib/msun/src/e_fmodf.c @@ -17,7 +17,7 @@ __FBSDID("$FreeBSD$"); /* - * __ieee754_fmodf(x,y) + * fmodf(x,y) * Return x mod y in exact arithmetic * Method: shift and subtract */ @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$"); static const float one = 1.0, Zero[] = {0.0, -0.0,}; float -__ieee754_fmodf(float x, float y) +fmodf(float x, float y) { int32_t n,hx,hy,hz,ix,iy,sx,i; diff --git a/lib/msun/src/e_gamma.c b/lib/msun/src/e_gamma.c index 28fb5ccba6d6..a13f3e22c08b 100644 --- a/lib/msun/src/e_gamma.c +++ b/lib/msun/src/e_gamma.c @@ -15,10 +15,10 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_gamma(x) +/* gamma(x) * Return the logarithm of the Gamma function of x. * - * Method: call __ieee754_gamma_r + * Method: call gamma_r */ #include "math.h" @@ -27,7 +27,7 @@ __FBSDID("$FreeBSD$"); extern int signgam; double -__ieee754_gamma(double x) +gamma(double x) { - return __ieee754_gamma_r(x,&signgam); + return gamma_r(x,&signgam); } diff --git a/lib/msun/src/e_gamma_r.c b/lib/msun/src/e_gamma_r.c index 2c423dce8558..2d996cabca20 100644 --- a/lib/msun/src/e_gamma_r.c +++ b/lib/msun/src/e_gamma_r.c @@ -15,18 +15,18 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_gamma_r(x, signgamp) +/* gamma_r(x, signgamp) * Reentrant version of the logarithm of the Gamma function * with user provide pointer for the sign of Gamma(x). * - * Method: See __ieee754_lgamma_r + * Method: See lgamma_r */ #include "math.h" #include "math_private.h" double -__ieee754_gamma_r(double x, int *signgamp) +gamma_r(double x, int *signgamp) { - return __ieee754_lgamma_r(x,signgamp); + return lgamma_r(x,signgamp); } diff --git a/lib/msun/src/e_gammaf.c b/lib/msun/src/e_gammaf.c index c1b1668df975..563c1482282d 100644 --- a/lib/msun/src/e_gammaf.c +++ b/lib/msun/src/e_gammaf.c @@ -16,10 +16,10 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_gammaf(x) +/* gammaf(x) * Return the logarithm of the Gamma function of x. * - * Method: call __ieee754_gammaf_r + * Method: call gammaf_r */ #include "math.h" @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$"); extern int signgam; float -__ieee754_gammaf(float x) +gammaf(float x) { - return __ieee754_gammaf_r(x,&signgam); + return gammaf_r(x,&signgam); } diff --git a/lib/msun/src/e_gammaf_r.c b/lib/msun/src/e_gammaf_r.c index 9d7831b5501b..d7fc2db1e96c 100644 --- a/lib/msun/src/e_gammaf_r.c +++ b/lib/msun/src/e_gammaf_r.c @@ -16,18 +16,18 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_gammaf_r(x, signgamp) +/* gammaf_r(x, signgamp) * Reentrant version of the logarithm of the Gamma function * with user provide pointer for the sign of Gamma(x). * - * Method: See __ieee754_lgammaf_r + * Method: See lgammaf_r */ #include "math.h" #include "math_private.h" float -__ieee754_gammaf_r(float x, int *signgamp) +gammaf_r(float x, int *signgamp) { - return __ieee754_lgammaf_r(x,signgamp); + return lgammaf_r(x,signgamp); } diff --git a/lib/msun/src/e_hypot.c b/lib/msun/src/e_hypot.c index 7c455bb6652f..8e3f9317b3a6 100644 --- a/lib/msun/src/e_hypot.c +++ b/lib/msun/src/e_hypot.c @@ -14,7 +14,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_hypot(x,y) +/* hypot(x,y) * * Method : * If (assume round-to-nearest) z=x*x+y*y @@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$"); #include "math_private.h" double -__ieee754_hypot(double x, double y) +hypot(double x, double y) { double a,b,t1,t2,y1,y2,w; int32_t j,k,ha,hb; diff --git a/lib/msun/src/e_hypotf.c b/lib/msun/src/e_hypotf.c index 00610268fafb..a3b8c866697b 100644 --- a/lib/msun/src/e_hypotf.c +++ b/lib/msun/src/e_hypotf.c @@ -20,7 +20,7 @@ __FBSDID("$FreeBSD$"); #include "math_private.h" float -__ieee754_hypotf(float x, float y) +hypotf(float x, float y) { float a,b,t1,t2,y1,y2,w; int32_t j,k,ha,hb; @@ -67,14 +67,14 @@ __ieee754_hypotf(float x, float y) if (w>b) { SET_FLOAT_WORD(t1,ha&0xfffff000); t2 = a-t1; - w = __ieee754_sqrtf(t1*t1-(b*(-b)-t2*(a+t1))); + w = sqrtf(t1*t1-(b*(-b)-t2*(a+t1))); } else { a = a+a; SET_FLOAT_WORD(y1,hb&0xfffff000); y2 = b - y1; SET_FLOAT_WORD(t1,(ha+0x00800000)&0xfffff000); t2 = a - t1; - w = __ieee754_sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b))); + w = sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b))); } if(k!=0) { SET_FLOAT_WORD(t1,(127+k)<<23); diff --git a/lib/msun/src/e_j0.c b/lib/msun/src/e_j0.c index 5d862b6f834d..c43ab6996b4a 100644 --- a/lib/msun/src/e_j0.c +++ b/lib/msun/src/e_j0.c @@ -13,7 +13,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_j0(x), __ieee754_y0(x) +/* j0(x), y0(x) * Bessel function of the first and second kinds of order zero. * Method -- j0(x): * 1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ... @@ -83,7 +83,7 @@ S04 = 1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */ static const double zero = 0, qrtr = 0.25; double -__ieee754_j0(double x) +j0(double x) { double z, s,c,ss,cc,r,u,v; int32_t hx,ix; @@ -143,7 +143,7 @@ v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */ v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */ double -__ieee754_y0(double x) +y0(double x) { double z, s,c,ss,cc,u,v; int32_t hx,ix,lx; @@ -192,12 +192,12 @@ __ieee754_y0(double x) return z; } if(ix<=0x3e400000) { /* x < 2**-27 */ - return(u00 + tpi*__ieee754_log(x)); + return(u00 + tpi*log(x)); } z = x*x; u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06))))); v = one+z*(v01+z*(v02+z*(v03+z*v04))); - return(u/v + tpi*(__ieee754_j0(x)*__ieee754_log(x))); + return(u/v + tpi*(j0(x)*log(x))); } /* The asymptotic expansions of pzero is diff --git a/lib/msun/src/e_j0f.c b/lib/msun/src/e_j0f.c index 1c5ef4da1b49..290be04fc900 100644 --- a/lib/msun/src/e_j0f.c +++ b/lib/msun/src/e_j0f.c @@ -45,7 +45,7 @@ S04 = 1.1661400734e-09; /* 0x30a045e8 */ static const float zero = 0, qrtr = 0.25; float -__ieee754_j0f(float x) +j0f(float x) { float z, s,c,ss,cc,r,u,v; int32_t hx,ix; @@ -105,7 +105,7 @@ v03 = 2.5915085189e-07, /* 0x348b216c */ v04 = 4.4111031494e-10; /* 0x2ff280c2 */ float -__ieee754_y0f(float x) +y0f(float x) { float z, s,c,ss,cc,u,v; int32_t hx,ix; @@ -147,12 +147,12 @@ __ieee754_y0f(float x) return z; } if(ix<=0x39000000) { /* x < 2**-13 */ - return(u00 + tpi*__ieee754_logf(x)); + return(u00 + tpi*logf(x)); } z = x*x; u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06))))); v = one+z*(v01+z*(v02+z*(v03+z*v04))); - return(u/v + tpi*(__ieee754_j0f(x)*__ieee754_logf(x))); + return(u/v + tpi*(j0f(x)*logf(x))); } /* The asymptotic expansions of pzero is diff --git a/lib/msun/src/e_j1.c b/lib/msun/src/e_j1.c index fb4462738368..ee3f6fcc69d4 100644 --- a/lib/msun/src/e_j1.c +++ b/lib/msun/src/e_j1.c @@ -13,7 +13,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_j1(x), __ieee754_y1(x) +/* j1(x), y1(x) * Bessel function of the first and second kinds of order zero. * Method -- j1(x): * 1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ... @@ -84,7 +84,7 @@ s05 = 1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */ static const double zero = 0.0; double -__ieee754_j1(double x) +j1(double x) { double z, s,c,ss,cc,r,u,v,y; int32_t hx,ix; @@ -140,7 +140,7 @@ static const double V0[5] = { }; double -__ieee754_y1(double x) +y1(double x) { double z, s,c,ss,cc,u,v; int32_t hx,ix,lx; @@ -190,7 +190,7 @@ __ieee754_y1(double x) z = x*x; u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4]))); v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4])))); - return(x*(u/v) + tpi*(__ieee754_j1(x)*__ieee754_log(x)-one/x)); + return(x*(u/v) + tpi*(j1(x)*log(x)-one/x)); } /* For x >= 8, the asymptotic expansions of pone is diff --git a/lib/msun/src/e_j1f.c b/lib/msun/src/e_j1f.c index c6c45c107afa..e1f4498b71af 100644 --- a/lib/msun/src/e_j1f.c +++ b/lib/msun/src/e_j1f.c @@ -46,7 +46,7 @@ s05 = 1.2354227016e-11; /* 0x2d59567e */ static const float zero = 0.0; float -__ieee754_j1f(float x) +j1f(float x) { float z, s,c,ss,cc,r,u,v,y; int32_t hx,ix; @@ -102,7 +102,7 @@ static const float V0[5] = { }; float -__ieee754_y1f(float x) +y1f(float x) { float z, s,c,ss,cc,u,v; int32_t hx,ix; @@ -145,7 +145,7 @@ __ieee754_y1f(float x) z = x*x; u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4]))); v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4])))); - return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x)); + return(x*(u/v) + tpi*(j1f(x)*logf(x)-one/x)); } /* For x >= 8, the asymptotic expansions of pone is diff --git a/lib/msun/src/e_jn.c b/lib/msun/src/e_jn.c index 5aaebd400065..6b876ce69554 100644 --- a/lib/msun/src/e_jn.c +++ b/lib/msun/src/e_jn.c @@ -14,7 +14,7 @@ __FBSDID("$FreeBSD$"); /* - * __ieee754_jn(n, x), __ieee754_yn(n, x) + * jn(n, x), yn(n, x) * floating point Bessel's function of the 1st and 2nd kind * of order n * @@ -51,7 +51,7 @@ one = 1.00000000000000000000e+00; /* 0x3FF00000, 0x00000000 */ static const double zero = 0.00000000000000000000e+00; double -__ieee754_jn(int n, double x) +jn(int n, double x) { int32_t i,hx,ix,lx, sgn; double a, b, c, s, temp, di; @@ -69,8 +69,8 @@ __ieee754_jn(int n, double x) x = -x; hx ^= 0x80000000; } - if(n==0) return(__ieee754_j0(x)); - if(n==1) return(__ieee754_j1(x)); + if(n==0) return(j0(x)); + if(n==1) return(j1(x)); sgn = (n&1)&(hx>>31); /* even n -- 0, odd n -- sign(x) */ x = fabs(x); if((ix|lx)==0||ix>=0x7ff00000) /* if x is 0 or inf */ @@ -100,8 +100,8 @@ __ieee754_jn(int n, double x) } b = invsqrtpi*temp/sqrt(x); } else { - a = __ieee754_j0(x); - b = __ieee754_j1(x); + a = j0(x); + b = j1(x); for(i=1;i<n;i++){ temp = b; b = b*((double)(i+i)/x) - a; /* avoid underflow */ @@ -177,7 +177,7 @@ __ieee754_jn(int n, double x) */ tmp = n; v = two/x; - tmp = tmp*__ieee754_log(fabs(v*tmp)); + tmp = tmp*log(fabs(v*tmp)); if(tmp<7.09782712893383973096e+02) { for(i=n-1,di=(double)(i+i);i>0;i--){ temp = b; @@ -201,8 +201,8 @@ __ieee754_jn(int n, double x) } } } - z = __ieee754_j0(x); - w = __ieee754_j1(x); + z = j0(x); + w = j1(x); if (fabs(z) >= fabs(w)) b = (t*z/b); else @@ -213,7 +213,7 @@ __ieee754_jn(int n, double x) } double -__ieee754_yn(int n, double x) +yn(int n, double x) { int32_t i,hx,ix,lx; int32_t sign; @@ -232,8 +232,8 @@ __ieee754_yn(int n, double x) n = -n; sign = 1 - ((n&1)<<1); } - if(n==0) return(__ieee754_y0(x)); - if(n==1) return(sign*__ieee754_y1(x)); + if(n==0) return(y0(x)); + if(n==1) return(sign*y1(x)); if(ix==0x7ff00000) return zero; if(ix>=0x52D00000) { /* x > 2**302 */ /* (x >> n**2) @@ -259,8 +259,8 @@ __ieee754_yn(int n, double x) b = invsqrtpi*temp/sqrt(x); } else { u_int32_t high; - a = __ieee754_y0(x); - b = __ieee754_y1(x); + a = y0(x); + b = y1(x); /* quit if b is -inf */ GET_HIGH_WORD(high,b); for(i=1;i<n&&high!=0xfff00000;i++){ diff --git a/lib/msun/src/e_jnf.c b/lib/msun/src/e_jnf.c index 965feeb666d4..ba586226dae5 100644 --- a/lib/msun/src/e_jnf.c +++ b/lib/msun/src/e_jnf.c @@ -32,7 +32,7 @@ one = 1.0000000000e+00; /* 0x3F800000 */ static const float zero = 0.0000000000e+00; float -__ieee754_jnf(int n, float x) +jnf(int n, float x) { int32_t i,hx,ix, sgn; float a, b, temp, di; @@ -50,16 +50,16 @@ __ieee754_jnf(int n, float x) x = -x; hx ^= 0x80000000; } - if(n==0) return(__ieee754_j0f(x)); - if(n==1) return(__ieee754_j1f(x)); + if(n==0) return(j0f(x)); + if(n==1) return(j1f(x)); sgn = (n&1)&(hx>>31); /* even n -- 0, odd n -- sign(x) */ x = fabsf(x); if(ix==0||ix>=0x7f800000) /* if x is 0 or inf */ b = zero; else if((float)n<=x) { /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ - a = __ieee754_j0f(x); - b = __ieee754_j1f(x); + a = j0f(x); + b = j1f(x); for(i=1;i<n;i++){ temp = b; b = b*((float)(i+i)/x) - a; /* avoid underflow */ @@ -134,7 +134,7 @@ __ieee754_jnf(int n, float x) */ tmp = n; v = two/x; - tmp = tmp*__ieee754_logf(fabsf(v*tmp)); + tmp = tmp*logf(fabsf(v*tmp)); if(tmp<(float)8.8721679688e+01) { for(i=n-1,di=(float)(i+i);i>0;i--){ temp = b; @@ -158,8 +158,8 @@ __ieee754_jnf(int n, float x) } } } - z = __ieee754_j0f(x); - w = __ieee754_j1f(x); + z = j0f(x); + w = j1f(x); if (fabsf(z) >= fabsf(w)) b = (t*z/b); else @@ -170,7 +170,7 @@ __ieee754_jnf(int n, float x) } float -__ieee754_ynf(int n, float x) +ynf(int n, float x) { int32_t i,hx,ix,ib; int32_t sign; @@ -186,12 +186,12 @@ __ieee754_ynf(int n, float x) n = -n; sign = 1 - ((n&1)<<1); } - if(n==0) return(__ieee754_y0f(x)); - if(n==1) return(sign*__ieee754_y1f(x)); + if(n==0) return(y0f(x)); + if(n==1) return(sign*y1f(x)); if(ix==0x7f800000) return zero; - a = __ieee754_y0f(x); - b = __ieee754_y1f(x); + a = y0f(x); + b = y1f(x); /* quit if b is -inf */ GET_FLOAT_WORD(ib,b); for(i=1;i<n&&ib!=0xff800000;i++){ diff --git a/lib/msun/src/e_lgamma.c b/lib/msun/src/e_lgamma.c index 43f5175603ec..9c4a30e6e135 100644 --- a/lib/msun/src/e_lgamma.c +++ b/lib/msun/src/e_lgamma.c @@ -15,10 +15,10 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_lgamma(x) +/* lgamma(x) * Return the logarithm of the Gamma function of x. * - * Method: call __ieee754_lgamma_r + * Method: call lgamma_r */ #include <float.h> @@ -29,9 +29,9 @@ __FBSDID("$FreeBSD$"); *** 659 LINES SKIPPED *** From nobody Sun Aug 13 08:43:32 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNrfD2YgWz4qDlb; Sun, 13 Aug 2023 08:43:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RNrfD1kymz4T9r; Sun, 13 Aug 2023 08:43:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691916212; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1AvTTIuyx6hlFHe8kw0wseGmtPqT/sbi2hvb8w6anEY=; b=eH9TDdu6VPmsRjJ2vMWhO/cUNoUNnr86lCduJvY5uc7TOEYmEoPhXYe5JC2Ri4J/H0h3Nl ApwFGWHqxMubzoF2rzaj41Oc+sTsguxQ038qYVT7LMrIc+ijP+aNO1QdCw/mj2VUJKG0cK 6ZIqbJDACFpmn4jt93IY2og2qjOgfAYpfFjs4oMR/GKCV2W+RGZMbcDGDsG9tabJp2lABA 6RISjRt1ZXXOoxEllRKaOqG8HswrmcbyjtzkY+wQ+KoJXeSGGyPp/3Wt+hBvFQ4yiebKkz G3t6+aXUccrv0wTaO4X4f65sLSl08xxuD13wqrsQEO/i/JYYROjI4+e7CrHmYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691916212; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1AvTTIuyx6hlFHe8kw0wseGmtPqT/sbi2hvb8w6anEY=; b=whXKNSzVYyktdxpCdm7bdJqTOvkc+jtenBxwTrMOVyOEFxjIniXw8jYrEb6uHP2mjSvaO7 Kgoq7h+c3P3BXmeDKdZSq76V0y/A/xRK7z9sFxdONZF6XyAbaIaft+lwchnnNxRDeFAUX9 H//DrUzpmFGC59BgvMQlWrTUxhdRWvYlWS9eJOKjMUzzTHAeSLM0iN3tNCCHHNj3fsKTmT 8H6TITfwBGBBBR4qpEtEzyG/8MMFMkYPLej3OTkriWSi+j4Rhe3SqwlxGmdjftpJ/P9WvH Jp3KKBOLd2F1JWogy4zud5ngjgqPRTP1eiOpeelulNIF9qDmGMS+L3FmIQPJgA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691916212; a=rsa-sha256; cv=none; b=iySbvloMfcIZvJlTjbrvy2WMPNu7nuWCqosjrIvvCk7N1PCtuT33FQVGSHQ6K0ypIaphUD ft1OWkvN85bne9vHtB521Nqjic+AFhpplrsgmWb7zsB8cjoQSJ+C+AWObExZspEhPYDuh8 8XM+nvKgZDUcSiNCMCVC/MUzJiV4j6DPO0WfF5mYgplw7hydfUfoPnUULVUflkhtP0PsAk lySAQ79wsr64W8vlM7M5NNtO7RCkWa636ug+47xehoeXZ2n3Y7zsjJcycTmcTMx/9JHw8b PkMi35N3pBmfvXbn+uJYU1o+3+SF0ITVo3mcew5EioY4Q5OS6jKObu0yZ1Xn0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RNrfD0pHBzwHQ; Sun, 13 Aug 2023 08:43: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 37D8hWbO051548; Sun, 13 Aug 2023 08:43:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D8hWER051545; Sun, 13 Aug 2023 08:43:32 GMT (envelope-from git) Date: Sun, 13 Aug 2023 08:43:32 GMT Message-Id: <202308130843.37D8hWER051545@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric <dim@FreeBSD.org> Subject: git: dd565d99901a - stable/12 - Use a builtin where possible in msun List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/12 X-Git-Reftype: branch X-Git-Commit: dd565d99901a891192e0b821cab5f9523c603f38 Auto-Submitted: auto-generated The branch stable/12 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=dd565d99901a891192e0b821cab5f9523c603f38 commit dd565d99901a891192e0b821cab5f9523c603f38 Author: Andrew Turner <andrew@FreeBSD.org> AuthorDate: 2021-11-02 11:31:17 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-08-13 08:39:08 +0000 Use a builtin where possible in msun Some of the functions in msun can be implemented using a compiler builtin function to generate a small number of instructions. Implement this support in fma, fmax, fmin, and sqrt on arm64. Care must be taken as the builtin can be implemented as a function call on some architectures that lack direct support. In these cases we need to use the original code path. As we don't set errno on failure build with -fno-math-errno so the toolchain doesn't convert a builtin into a function call when it detects a failure, e.g. gcc will add a call to sqrt when the input is negative leading to an infinite loop. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D32801 (cherry picked from commit b2e843161dc3b79777e873183447c92ed9c3703a) --- lib/msun/Makefile | 5 +++++ lib/msun/aarch64/Makefile.inc | 12 ++++++++++++ lib/msun/src/e_sqrt.c | 18 +++++++++++++----- lib/msun/src/e_sqrtf.c | 8 ++++++++ lib/msun/src/s_fma.c | 8 ++++++++ lib/msun/src/s_fmaf.c | 8 ++++++++ lib/msun/src/s_fmax.c | 8 ++++++++ lib/msun/src/s_fmaxf.c | 8 ++++++++ lib/msun/src/s_fmin.c | 8 ++++++++ lib/msun/src/s_fminf.c | 8 ++++++++ 10 files changed, 86 insertions(+), 5 deletions(-) diff --git a/lib/msun/Makefile b/lib/msun/Makefile index ae8b42bebe40..4771de91c561 100644 --- a/lib/msun/Makefile +++ b/lib/msun/Makefile @@ -45,6 +45,11 @@ CFLAGS+= -I${.CURDIR}/${ARCH_SUBDIR} CFLAGS+= -ffp-exception-behavior=maytrap .endif +# Tell the compiler we don't set errno in any of the math functions. This +# stops gcc from trying to generate a function call to set errno when using +# a builtin in the implementation +CFLAGS+= -fno-math-errno + .PATH: ${.CURDIR}/bsdsrc .PATH: ${.CURDIR}/src .PATH: ${.CURDIR}/man diff --git a/lib/msun/aarch64/Makefile.inc b/lib/msun/aarch64/Makefile.inc index 286a60859591..b0e01488b0bb 100644 --- a/lib/msun/aarch64/Makefile.inc +++ b/lib/msun/aarch64/Makefile.inc @@ -2,3 +2,15 @@ LDBL_PREC = 113 +# Use a builtin when it generates the needed instruction +CFLAGS+=-DUSE_BUILTIN_FMAF +CFLAGS+=-DUSE_BUILTIN_FMA + +CFLAGS+=-DUSE_BUILTIN_FMAXF +CFLAGS+=-DUSE_BUILTIN_FMAX + +CFLAGS+=-DUSE_BUILTIN_FMINF +CFLAGS+=-DUSE_BUILTIN_FMIN + +CFLAGS+=-DUSE_BUILTIN_SQRTF +CFLAGS+=-DUSE_BUILTIN_SQRT diff --git a/lib/msun/src/e_sqrt.c b/lib/msun/src/e_sqrt.c index 12fb56e1340b..37351a425ce4 100644 --- a/lib/msun/src/e_sqrt.c +++ b/lib/msun/src/e_sqrt.c @@ -14,6 +14,18 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <float.h> + +#include "math.h" +#include "math_private.h" + +#ifdef USE_BUILTIN_SQRT +double +__ieee754_sqrt(double x) +{ + return (__builtin_sqrt(x)); +} +#else /* __ieee754_sqrt(x) * Return correctly rounded sqrt. * ------------------------------------------ @@ -84,11 +96,6 @@ __FBSDID("$FreeBSD$"); *--------------- */ -#include <float.h> - -#include "math.h" -#include "math_private.h" - static const double one = 1.0, tiny=1.0e-300; double @@ -187,6 +194,7 @@ __ieee754_sqrt(double x) INSERT_WORDS(z,ix0,ix1); return z; } +#endif #if (LDBL_MANT_DIG == 53) __weak_reference(sqrt, sqrtl); diff --git a/lib/msun/src/e_sqrtf.c b/lib/msun/src/e_sqrtf.c index 7eba4d07f92c..06e5d62fa5f9 100644 --- a/lib/msun/src/e_sqrtf.c +++ b/lib/msun/src/e_sqrtf.c @@ -20,6 +20,13 @@ static char rcsid[] = "$FreeBSD$"; #include "math.h" #include "math_private.h" +#ifdef USE_BUILTIN_SQRTF +float +__ieee754_sqrtf(float x) +{ + return (__builtin_sqrtf(x)); +} +#else static const float one = 1.0, tiny=1.0e-30; float @@ -87,3 +94,4 @@ __ieee754_sqrtf(float x) SET_FLOAT_WORD(z,ix); return z; } +#endif diff --git a/lib/msun/src/s_fma.c b/lib/msun/src/s_fma.c index 41a6424fdf7f..95cffd0ba36d 100644 --- a/lib/msun/src/s_fma.c +++ b/lib/msun/src/s_fma.c @@ -35,6 +35,13 @@ __FBSDID("$FreeBSD$"); #include "math_private.h" +#ifdef USE_BUILTIN_FMA +double +fma(double x, double y, double z) +{ + return (__builtin_fma(x, y, z)); +} +#else /* * A struct dd represents a floating-point number with twice the precision * of a double. We maintain the invariant that "hi" stores the 53 high-order @@ -284,6 +291,7 @@ fma(double x, double y, double z) else return (add_and_denormalize(r.hi, adj, spread)); } +#endif /* !USE_BUILTIN_FMA */ #if (LDBL_MANT_DIG == 53) __weak_reference(fma, fmal); diff --git a/lib/msun/src/s_fmaf.c b/lib/msun/src/s_fmaf.c index 389cf1b11bee..4591cc219bbb 100644 --- a/lib/msun/src/s_fmaf.c +++ b/lib/msun/src/s_fmaf.c @@ -34,6 +34,13 @@ __FBSDID("$FreeBSD$"); #include "math.h" #include "math_private.h" +#ifdef USE_BUILTIN_FMAF +float +fmaf(float x, float y, float z) +{ + return (__builtin_fmaf(x, y, z)); +} +#else /* * Fused multiply-add: Compute x * y + z with a single rounding error. * @@ -69,3 +76,4 @@ fmaf(float x, float y, float z) SET_LOW_WORD(adjusted_result, lr + 1); return (adjusted_result); } +#endif /* !USE_BUILTIN_FMAF */ diff --git a/lib/msun/src/s_fmax.c b/lib/msun/src/s_fmax.c index 0c234bcc5f7f..b53b1e64da04 100644 --- a/lib/msun/src/s_fmax.c +++ b/lib/msun/src/s_fmax.c @@ -34,6 +34,13 @@ __FBSDID("$FreeBSD$"); #include "fpmath.h" +#ifdef USE_BUILTIN_FMAX +double +fmax(double x, double y) +{ + return (__builtin_fmax(x, y)); +} +#else double fmax(double x, double y) { @@ -54,6 +61,7 @@ fmax(double x, double y) return (x > y ? x : y); } +#endif #if (LDBL_MANT_DIG == 53) __weak_reference(fmax, fmaxl); diff --git a/lib/msun/src/s_fmaxf.c b/lib/msun/src/s_fmaxf.c index 8e9d1baf3e8e..8d3d14f4b52a 100644 --- a/lib/msun/src/s_fmaxf.c +++ b/lib/msun/src/s_fmaxf.c @@ -33,6 +33,13 @@ __FBSDID("$FreeBSD$"); #include "fpmath.h" +#ifdef USE_BUILTIN_FMAXF +float +fmaxf(float x, float y) +{ + return (__builtin_fmaxf(x, y)); +} +#else float fmaxf(float x, float y) { @@ -53,3 +60,4 @@ fmaxf(float x, float y) return (x > y ? x : y); } +#endif diff --git a/lib/msun/src/s_fmin.c b/lib/msun/src/s_fmin.c index d7f24c121fb2..53f36c1c2d3d 100644 --- a/lib/msun/src/s_fmin.c +++ b/lib/msun/src/s_fmin.c @@ -34,6 +34,13 @@ __FBSDID("$FreeBSD$"); #include "fpmath.h" +#ifdef USE_BUILTIN_FMIN +double +fmin(double x, double y) +{ + return (__builtin_fmin(x, y)); +} +#else double fmin(double x, double y) { @@ -54,6 +61,7 @@ fmin(double x, double y) return (x < y ? x : y); } +#endif #if (LDBL_MANT_DIG == 53) __weak_reference(fmin, fminl); diff --git a/lib/msun/src/s_fminf.c b/lib/msun/src/s_fminf.c index 258316725ddd..58b6a489b820 100644 --- a/lib/msun/src/s_fminf.c +++ b/lib/msun/src/s_fminf.c @@ -33,6 +33,13 @@ __FBSDID("$FreeBSD$"); #include "fpmath.h" +#ifdef USE_BUILTIN_FMINF +float +fminf(float x, float y) +{ + return (__builtin_fminf(x, y)); +} +#else float fminf(float x, float y) { @@ -53,3 +60,4 @@ fminf(float x, float y) return (x < y ? x : y); } +#endif From nobody Sun Aug 13 08:43:33 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNrfF3MhYz4qDgH; Sun, 13 Aug 2023 08:43: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 4RNrfF36cKz4T5V; Sun, 13 Aug 2023 08:43:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691916213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L4GAy3kkgWlr4LIQWGcPUg+al9ge6GZozmbkvvSs9+k=; b=YahTjOuIJgTAcsQ69CMIJyE9DQEhnJZAFX+v8HpUVIbOF2ysayhJZn/vxxjK55eLkwe2ru FK86xw5QzSYft28dlHQIZ5QqXgi0qA1Lm4Y2ZmwnpY7ActLQ2fvXfz980cCUSh0fkXOyu3 Sf2x05RP+oWt8MZ3o82fPGJU2698o+KQiLvQnqTi8+MGeadfOCdkCYq7Ix3rChfowPNVTa wctKIM5dyvuUN+0zBb6WlhLTeFyKET+yfTerIYNeUnN6MPGpBqpIs1SSHrF77u303UtzpO SWYEKyeJW8fDsiyXZXkc2S0y+UfvUUNrd7GZWH69jDG4eVi7y7W6f25CtOkqVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691916213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L4GAy3kkgWlr4LIQWGcPUg+al9ge6GZozmbkvvSs9+k=; b=Sh1zAS70UyZV6/hiZnLF4oi1wJKBFe0czzFMF+RhrkQybWxyJUHiZt/3gmoqvAep/SuEzI XB/LPB19Xj6kHO82xM/yJg+CVWPCNhvoqLeOEUA623ffz4Njnwnjf8vBBrtpb4aoWiCTIy b5ML2K1lBIoABzk0iAsVibRFsfGo4lLVBl81GJrcDeZjWKIWoHRZuru4Yc0Dd5xwXP3UkR jK6UQqed0Gnn1N+cDZnFrdYompHOwPNnIPBYVXdDmrsa4xdtUN4Y9x4cBn/ZdmxOXFOARM IlG/RqwXQeQPqtD/0nhOz9+55SZNokJqERItkAicTY8ebvRxN9YKql3MmJdHYA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691916213; a=rsa-sha256; cv=none; b=qJVD9MO8WiNL2C463I8pR19TlV3FBc+1vPFE9npK8p7WscPcYjAZAFsNwxwi3hE5y3u4P0 M1Mrcd8Cz3lSrWos327Ul5HllKPb8TKyBHP3i9QsCehfNJKGDsijXsNDNpLRHfWoXaiPgs 2K0t7KZvY8kJIw0UlSXVNczhpkGGKIsk3rsCcKZSHViTRu54vsPHW7LrSaxLhN8BozMnd1 JQbEP2D11fSClWdJbjqeLAKgz0nOXgxMDmw58kRaB01XCgRo0RJtK7G2RWqKLuHJyr5FZJ 1bBP+mqgQtuDQMMmlwtMeyFHlqz5naSTLLem3s/adiQTrWT/ypQbrbAIlfhP8w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RNrfF1dWpzw7T; Sun, 13 Aug 2023 08:43: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 37D8hXta051599; Sun, 13 Aug 2023 08:43:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D8hXZQ051596; Sun, 13 Aug 2023 08:43:33 GMT (envelope-from git) Date: Sun, 13 Aug 2023 08:43:33 GMT Message-Id: <202308130843.37D8hXZQ051596@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric <dim@FreeBSD.org> Subject: git: afa7546359d3 - stable/12 - Clean up libm use of the __ieee754_ prefix List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/12 X-Git-Reftype: branch X-Git-Commit: afa7546359d3ad1c82d46a5a99f3cef36229ea71 Auto-Submitted: auto-generated The branch stable/12 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=afa7546359d3ad1c82d46a5a99f3cef36229ea71 commit afa7546359d3ad1c82d46a5a99f3cef36229ea71 Author: Steve Kargl <kargl@FreeBSD.org> AuthorDate: 2023-08-03 19:51:17 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-08-13 08:39:13 +0000 Clean up libm use of the __ieee754_ prefix This removes the __ieee754_ prefix from a number of the math functions. msun/src/math_private.h contains the statement that /* * ieee style elementary functions * * We rename functions here to improve other sources' diffability * against fdlibm. */ #define __ieee754_sqrt sqrt ... Here, fdlibm refers to https://netlib.org/fdlibm. It is seen from https://netlib.org/fdlibm/readme that this prefix was used to differentiate between different standards: Wrapper functions will twist the result of the ieee754 function to comply to the standard specified by the value of _LIB_VERSION if _LIB_VERSION = _IEEE_, return the ieee754 result; if _LIB_VERSION = _SVID_, return SVID result; if _LIB_VERSION = _XOPEN_, return XOPEN result; if _LIB_VERSION = _POSIX_, return POSIX/ANSI result. (These are macros, see fdlibm.h for their definition.) AFAICT, FreeBSD has never supported these wrappers. In addition, as C99, principally the long double, functions were added to libm, this convention was not maintained. Given that only 148 of 324 files under lib/msun contain a "Copyright (C) 1993 by Sun Microsystems" statement, the removal of the __ieee754_ prefix provides consistency across all source files. The last time someone compared lib/msun to fdlibm appears to be commit 3f70824172feb82ea3dcdb3866b54fe0eb7cd890 Author: David Schultz <das@FreeBSD.org> Date: Fri Feb 4 18:26:06 2005 +0000 Reduce diffs against vendor source (Sun fdlibm 5.3). The most recent fdlibm RCS string that appears in a Sun Microsystem copyrighted file is date "95/01/18". With Oracle Corporation's acquisition of Sun Microsystems in 2009, it is unlikely that fdlibm will ever be updated. A search for fdlibm at https://opensource.oracle.com/ yields no hits. Finally, OpenBSD removed the use of this prefix over 21 years ago. pSee revision 1.6 of OpenBSD's math_private.h. Note: this does not drop the __ieee754_ prefix from the trigonometric argument reduction functions, e.g., __ieee754_rem_pio2. These functions are internal to the libm and exported through Symbol.map; and thus, reserved for the implementation. PR: 272783 MFC after: 1 week (cherry picked from commit 99843eb89954dac76afe7cf18d962eddfe7a7987) --- lib/msun/src/e_acos.c | 4 +-- lib/msun/src/e_acosf.c | 2 +- lib/msun/src/e_acosh.c | 8 +++--- lib/msun/src/e_acoshf.c | 8 +++--- lib/msun/src/e_asin.c | 4 +-- lib/msun/src/e_asinf.c | 2 +- lib/msun/src/e_atan2.c | 4 +-- lib/msun/src/e_atan2f.c | 2 +- lib/msun/src/e_atanh.c | 4 +-- lib/msun/src/e_atanhf.c | 2 +- lib/msun/src/e_cosh.c | 8 +++--- lib/msun/src/e_coshf.c | 6 ++--- lib/msun/src/e_exp.c | 4 +-- lib/msun/src/e_expf.c | 2 +- lib/msun/src/e_fmod.c | 4 +-- lib/msun/src/e_fmodf.c | 4 +-- lib/msun/src/e_gamma.c | 8 +++--- lib/msun/src/e_gamma_r.c | 8 +++--- lib/msun/src/e_gammaf.c | 8 +++--- lib/msun/src/e_gammaf_r.c | 8 +++--- lib/msun/src/e_hypot.c | 4 +-- lib/msun/src/e_hypotf.c | 6 ++--- lib/msun/src/e_j0.c | 10 +++---- lib/msun/src/e_j0f.c | 8 +++--- lib/msun/src/e_j1.c | 8 +++--- lib/msun/src/e_j1f.c | 6 ++--- lib/msun/src/e_jn.c | 28 ++++++++++---------- lib/msun/src/e_jnf.c | 26 +++++++++--------- lib/msun/src/e_lgamma.c | 8 +++--- lib/msun/src/e_lgamma_r.c | 16 ++++++------ lib/msun/src/e_lgammaf.c | 8 +++--- lib/msun/src/e_lgammaf_r.c | 14 +++++----- lib/msun/src/e_log.c | 4 +-- lib/msun/src/e_log10.c | 2 +- lib/msun/src/e_log10f.c | 2 +- lib/msun/src/e_log2.c | 2 +- lib/msun/src/e_log2f.c | 2 +- lib/msun/src/e_logf.c | 2 +- lib/msun/src/e_pow.c | 4 +-- lib/msun/src/e_powf.c | 4 +-- lib/msun/src/e_remainder.c | 6 ++--- lib/msun/src/e_remainderf.c | 4 +-- lib/msun/src/e_scalb.c | 6 ++--- lib/msun/src/e_scalbf.c | 4 +-- lib/msun/src/e_sinh.c | 6 ++--- lib/msun/src/e_sinhf.c | 4 +-- lib/msun/src/e_sqrt.c | 6 ++--- lib/msun/src/e_sqrtf.c | 4 +-- lib/msun/src/math_private.h | 61 ------------------------------------------- lib/msun/src/s_asinh.c | 6 ++--- lib/msun/src/s_asinhf.c | 6 ++--- lib/msun/src/s_erf.c | 4 +-- lib/msun/src/s_significand.c | 2 +- lib/msun/src/s_significandf.c | 2 +- 54 files changed, 162 insertions(+), 223 deletions(-) diff --git a/lib/msun/src/e_acos.c b/lib/msun/src/e_acos.c index 1f6dca5bb5cb..6623355baa7c 100644 --- a/lib/msun/src/e_acos.c +++ b/lib/msun/src/e_acos.c @@ -14,7 +14,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_acos(x) +/* acos(x) * Method : * acos(x) = pi/2 - asin(x) * acos(-x) = pi/2 + asin(x) @@ -62,7 +62,7 @@ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ double -__ieee754_acos(double x) +acos(double x) { double z,p,q,r,w,s,c,df; int32_t hx,ix; diff --git a/lib/msun/src/e_acosf.c b/lib/msun/src/e_acosf.c index c9f62cc40f5c..64f1c5afb182 100644 --- a/lib/msun/src/e_acosf.c +++ b/lib/msun/src/e_acosf.c @@ -32,7 +32,7 @@ pS2 = -8.6563630030e-03, qS1 = -7.0662963390e-01; float -__ieee754_acosf(float x) +acosf(float x) { float z,p,q,r,w,s,c,df; int32_t hx,ix; diff --git a/lib/msun/src/e_acosh.c b/lib/msun/src/e_acosh.c index 358c8bd6a636..7947995820d0 100644 --- a/lib/msun/src/e_acosh.c +++ b/lib/msun/src/e_acosh.c @@ -15,7 +15,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_acosh(x) +/* acosh(x) * Method : * Based on * acosh(x) = log [ x + sqrt(x*x-1) ] @@ -39,7 +39,7 @@ one = 1.0, ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */ double -__ieee754_acosh(double x) +acosh(double x) { double t; int32_t hx; @@ -51,12 +51,12 @@ __ieee754_acosh(double x) if(hx >=0x7ff00000) { /* x is inf of NaN */ return x+x; } else - return __ieee754_log(x)+ln2; /* acosh(huge)=log(2x) */ + return log(x)+ln2; /* acosh(huge)=log(2x) */ } else if(((hx-0x3ff00000)|lx)==0) { return 0.0; /* acosh(1) = 0 */ } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ t=x*x; - return __ieee754_log(2.0*x-one/(x+sqrt(t-one))); + return log(2.0*x-one/(x+sqrt(t-one))); } else { /* 1<x<2 */ t = x-one; return log1p(t+sqrt(2.0*t+t*t)); diff --git a/lib/msun/src/e_acoshf.c b/lib/msun/src/e_acoshf.c index f529b20d1219..781ccf2a1151 100644 --- a/lib/msun/src/e_acoshf.c +++ b/lib/msun/src/e_acoshf.c @@ -24,7 +24,7 @@ one = 1.0, ln2 = 6.9314718246e-01; /* 0x3f317218 */ float -__ieee754_acoshf(float x) +acoshf(float x) { float t; int32_t hx; @@ -35,14 +35,14 @@ __ieee754_acoshf(float x) if(hx >=0x7f800000) { /* x is inf of NaN */ return x+x; } else - return __ieee754_logf(x)+ln2; /* acosh(huge)=log(2x) */ + return logf(x)+ln2; /* acosh(huge)=log(2x) */ } else if (hx==0x3f800000) { return 0.0; /* acosh(1) = 0 */ } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ t=x*x; - return __ieee754_logf((float)2.0*x-one/(x+__ieee754_sqrtf(t-one))); + return logf((float)2.0*x-one/(x+sqrtf(t-one))); } else { /* 1<x<2 */ t = x-one; - return log1pf(t+__ieee754_sqrtf((float)2.0*t+t*t)); + return log1pf(t+sqrtf((float)2.0*t+t*t)); } } diff --git a/lib/msun/src/e_asin.c b/lib/msun/src/e_asin.c index 931b270498e6..fa180ab5701b 100644 --- a/lib/msun/src/e_asin.c +++ b/lib/msun/src/e_asin.c @@ -14,7 +14,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_asin(x) +/* asin(x) * Method : * Since asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ... * we approximate asin(x) on [0,0.5] by @@ -68,7 +68,7 @@ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ double -__ieee754_asin(double x) +asin(double x) { double t=0.0,w,p,q,c,r,s; int32_t hx,ix; diff --git a/lib/msun/src/e_asinf.c b/lib/msun/src/e_asinf.c index deaabb6a326e..db4b9b6034f7 100644 --- a/lib/msun/src/e_asinf.c +++ b/lib/msun/src/e_asinf.c @@ -32,7 +32,7 @@ static const double pio2 = 1.570796326794896558e+00; float -__ieee754_asinf(float x) +asinf(float x) { double s; float t,w,p,q; diff --git a/lib/msun/src/e_atan2.c b/lib/msun/src/e_atan2.c index 231a1611ee12..0b2e72102edb 100644 --- a/lib/msun/src/e_atan2.c +++ b/lib/msun/src/e_atan2.c @@ -15,7 +15,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_atan2(y,x) +/* atan2(y,x) * Method : * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). * 2. Reduce x to positive by (if x and y are unexceptional): @@ -58,7 +58,7 @@ static volatile double pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ double -__ieee754_atan2(double y, double x) +atan2(double y, double x) { double z; int32_t k,m,hx,hy,ix,iy; diff --git a/lib/msun/src/e_atan2f.c b/lib/msun/src/e_atan2f.c index 346d76746c05..4ea001df974a 100644 --- a/lib/msun/src/e_atan2f.c +++ b/lib/msun/src/e_atan2f.c @@ -30,7 +30,7 @@ static volatile float pi_lo = -8.7422776573e-08; /* 0xb3bbbd2e */ float -__ieee754_atan2f(float y, float x) +atan2f(float y, float x) { float z; int32_t k,m,hx,hy,ix,iy; diff --git a/lib/msun/src/e_atanh.c b/lib/msun/src/e_atanh.c index 422ff2698067..41f3bcaca26d 100644 --- a/lib/msun/src/e_atanh.c +++ b/lib/msun/src/e_atanh.c @@ -15,7 +15,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_atanh(x) +/* atanh(x) * Method : * 1.Reduced x to positive by atanh(-x) = -atanh(x) * 2.For x>=0.5 @@ -42,7 +42,7 @@ static const double one = 1.0, huge = 1e300; static const double zero = 0.0; double -__ieee754_atanh(double x) +atanh(double x) { double t; int32_t hx,ix; diff --git a/lib/msun/src/e_atanhf.c b/lib/msun/src/e_atanhf.c index 4bd6a8f9b9c6..46643beb5ab0 100644 --- a/lib/msun/src/e_atanhf.c +++ b/lib/msun/src/e_atanhf.c @@ -24,7 +24,7 @@ static const float one = 1.0, huge = 1e30; static const float zero = 0.0; float -__ieee754_atanhf(float x) +atanhf(float x) { float t; int32_t hx,ix; diff --git a/lib/msun/src/e_cosh.c b/lib/msun/src/e_cosh.c index 246b5fbec860..071663eb4e15 100644 --- a/lib/msun/src/e_cosh.c +++ b/lib/msun/src/e_cosh.c @@ -14,7 +14,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_cosh(x) +/* cosh(x) * Method : * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2 * 1. Replace x by |x| (cosh(x) = cosh(-x)). @@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$"); static const double one = 1.0, half=0.5, huge = 1.0e300; double -__ieee754_cosh(double x) +cosh(double x) { double t,w; int32_t ix; @@ -65,12 +65,12 @@ __ieee754_cosh(double x) /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */ if (ix < 0x40360000) { - t = __ieee754_exp(fabs(x)); + t = exp(fabs(x)); return half*t+half/t; } /* |x| in [22, log(maxdouble)] return half*exp(|x|) */ - if (ix < 0x40862E42) return half*__ieee754_exp(fabs(x)); + if (ix < 0x40862E42) return half*exp(fabs(x)); /* |x| in [log(maxdouble), overflowthresold] */ if (ix<=0x408633CE) diff --git a/lib/msun/src/e_coshf.c b/lib/msun/src/e_coshf.c index 95a0d6ee68ba..1673315d7b31 100644 --- a/lib/msun/src/e_coshf.c +++ b/lib/msun/src/e_coshf.c @@ -22,7 +22,7 @@ __FBSDID("$FreeBSD$"); static const float one = 1.0, half=0.5, huge = 1.0e30; float -__ieee754_coshf(float x) +coshf(float x) { float t,w; int32_t ix; @@ -43,12 +43,12 @@ __ieee754_coshf(float x) /* |x| in [0.5*ln2,9], return (exp(|x|)+1/exp(|x|))/2; */ if (ix < 0x41100000) { - t = __ieee754_expf(fabsf(x)); + t = expf(fabsf(x)); return half*t+half/t; } /* |x| in [9, log(maxfloat)] return half*exp(|x|) */ - if (ix < 0x42b17217) return half*__ieee754_expf(fabsf(x)); + if (ix < 0x42b17217) return half*expf(fabsf(x)); /* |x| in [log(maxfloat), overflowthresold] */ if (ix<=0x42b2d4fc) diff --git a/lib/msun/src/e_exp.c b/lib/msun/src/e_exp.c index dd04d8e839d5..59da39217391 100644 --- a/lib/msun/src/e_exp.c +++ b/lib/msun/src/e_exp.c @@ -13,7 +13,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_exp(x) +/* exp(x) * Returns the exponential of x. * * Method @@ -102,7 +102,7 @@ huge = 1.0e+300, twom1000= 9.33263618503218878990e-302; /* 2**-1000=0x01700000,0*/ double -__ieee754_exp(double x) /* default IEEE double exp */ +exp(double x) /* default IEEE double exp */ { double y,hi=0.0,lo=0.0,c,t,twopk; int32_t k=0,xsb; diff --git a/lib/msun/src/e_expf.c b/lib/msun/src/e_expf.c index 4903d55c5ab3..620d341be274 100644 --- a/lib/msun/src/e_expf.c +++ b/lib/msun/src/e_expf.c @@ -43,7 +43,7 @@ huge = 1.0e+30, twom100 = 7.8886090522e-31; /* 2**-100=0x0d800000 */ float -__ieee754_expf(float x) +expf(float x) { float y,hi=0.0,lo=0.0,c,t,twopk; int32_t k=0,xsb; diff --git a/lib/msun/src/e_fmod.c b/lib/msun/src/e_fmod.c index 3a28dc4ff1f3..6d5f5332cb85 100644 --- a/lib/msun/src/e_fmod.c +++ b/lib/msun/src/e_fmod.c @@ -15,7 +15,7 @@ __FBSDID("$FreeBSD$"); /* - * __ieee754_fmod(x,y) + * fmod(x,y) * Return x mod y in exact arithmetic * Method: shift and subtract */ @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$"); static const double one = 1.0, Zero[] = {0.0, -0.0,}; double -__ieee754_fmod(double x, double y) +fmod(double x, double y) { int32_t n,hx,hy,hz,ix,iy,sx,i; u_int32_t lx,ly,lz; diff --git a/lib/msun/src/e_fmodf.c b/lib/msun/src/e_fmodf.c index 1b6bf36f9cba..3cef9213c1e5 100644 --- a/lib/msun/src/e_fmodf.c +++ b/lib/msun/src/e_fmodf.c @@ -17,7 +17,7 @@ __FBSDID("$FreeBSD$"); /* - * __ieee754_fmodf(x,y) + * fmodf(x,y) * Return x mod y in exact arithmetic * Method: shift and subtract */ @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$"); static const float one = 1.0, Zero[] = {0.0, -0.0,}; float -__ieee754_fmodf(float x, float y) +fmodf(float x, float y) { int32_t n,hx,hy,hz,ix,iy,sx,i; diff --git a/lib/msun/src/e_gamma.c b/lib/msun/src/e_gamma.c index 28fb5ccba6d6..a13f3e22c08b 100644 --- a/lib/msun/src/e_gamma.c +++ b/lib/msun/src/e_gamma.c @@ -15,10 +15,10 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_gamma(x) +/* gamma(x) * Return the logarithm of the Gamma function of x. * - * Method: call __ieee754_gamma_r + * Method: call gamma_r */ #include "math.h" @@ -27,7 +27,7 @@ __FBSDID("$FreeBSD$"); extern int signgam; double -__ieee754_gamma(double x) +gamma(double x) { - return __ieee754_gamma_r(x,&signgam); + return gamma_r(x,&signgam); } diff --git a/lib/msun/src/e_gamma_r.c b/lib/msun/src/e_gamma_r.c index 2c423dce8558..2d996cabca20 100644 --- a/lib/msun/src/e_gamma_r.c +++ b/lib/msun/src/e_gamma_r.c @@ -15,18 +15,18 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_gamma_r(x, signgamp) +/* gamma_r(x, signgamp) * Reentrant version of the logarithm of the Gamma function * with user provide pointer for the sign of Gamma(x). * - * Method: See __ieee754_lgamma_r + * Method: See lgamma_r */ #include "math.h" #include "math_private.h" double -__ieee754_gamma_r(double x, int *signgamp) +gamma_r(double x, int *signgamp) { - return __ieee754_lgamma_r(x,signgamp); + return lgamma_r(x,signgamp); } diff --git a/lib/msun/src/e_gammaf.c b/lib/msun/src/e_gammaf.c index c1b1668df975..563c1482282d 100644 --- a/lib/msun/src/e_gammaf.c +++ b/lib/msun/src/e_gammaf.c @@ -16,10 +16,10 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_gammaf(x) +/* gammaf(x) * Return the logarithm of the Gamma function of x. * - * Method: call __ieee754_gammaf_r + * Method: call gammaf_r */ #include "math.h" @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$"); extern int signgam; float -__ieee754_gammaf(float x) +gammaf(float x) { - return __ieee754_gammaf_r(x,&signgam); + return gammaf_r(x,&signgam); } diff --git a/lib/msun/src/e_gammaf_r.c b/lib/msun/src/e_gammaf_r.c index 9d7831b5501b..d7fc2db1e96c 100644 --- a/lib/msun/src/e_gammaf_r.c +++ b/lib/msun/src/e_gammaf_r.c @@ -16,18 +16,18 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_gammaf_r(x, signgamp) +/* gammaf_r(x, signgamp) * Reentrant version of the logarithm of the Gamma function * with user provide pointer for the sign of Gamma(x). * - * Method: See __ieee754_lgammaf_r + * Method: See lgammaf_r */ #include "math.h" #include "math_private.h" float -__ieee754_gammaf_r(float x, int *signgamp) +gammaf_r(float x, int *signgamp) { - return __ieee754_lgammaf_r(x,signgamp); + return lgammaf_r(x,signgamp); } diff --git a/lib/msun/src/e_hypot.c b/lib/msun/src/e_hypot.c index 7c455bb6652f..8e3f9317b3a6 100644 --- a/lib/msun/src/e_hypot.c +++ b/lib/msun/src/e_hypot.c @@ -14,7 +14,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_hypot(x,y) +/* hypot(x,y) * * Method : * If (assume round-to-nearest) z=x*x+y*y @@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$"); #include "math_private.h" double -__ieee754_hypot(double x, double y) +hypot(double x, double y) { double a,b,t1,t2,y1,y2,w; int32_t j,k,ha,hb; diff --git a/lib/msun/src/e_hypotf.c b/lib/msun/src/e_hypotf.c index 00610268fafb..a3b8c866697b 100644 --- a/lib/msun/src/e_hypotf.c +++ b/lib/msun/src/e_hypotf.c @@ -20,7 +20,7 @@ __FBSDID("$FreeBSD$"); #include "math_private.h" float -__ieee754_hypotf(float x, float y) +hypotf(float x, float y) { float a,b,t1,t2,y1,y2,w; int32_t j,k,ha,hb; @@ -67,14 +67,14 @@ __ieee754_hypotf(float x, float y) if (w>b) { SET_FLOAT_WORD(t1,ha&0xfffff000); t2 = a-t1; - w = __ieee754_sqrtf(t1*t1-(b*(-b)-t2*(a+t1))); + w = sqrtf(t1*t1-(b*(-b)-t2*(a+t1))); } else { a = a+a; SET_FLOAT_WORD(y1,hb&0xfffff000); y2 = b - y1; SET_FLOAT_WORD(t1,(ha+0x00800000)&0xfffff000); t2 = a - t1; - w = __ieee754_sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b))); + w = sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b))); } if(k!=0) { SET_FLOAT_WORD(t1,(127+k)<<23); diff --git a/lib/msun/src/e_j0.c b/lib/msun/src/e_j0.c index 5d862b6f834d..c43ab6996b4a 100644 --- a/lib/msun/src/e_j0.c +++ b/lib/msun/src/e_j0.c @@ -13,7 +13,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_j0(x), __ieee754_y0(x) +/* j0(x), y0(x) * Bessel function of the first and second kinds of order zero. * Method -- j0(x): * 1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ... @@ -83,7 +83,7 @@ S04 = 1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */ static const double zero = 0, qrtr = 0.25; double -__ieee754_j0(double x) +j0(double x) { double z, s,c,ss,cc,r,u,v; int32_t hx,ix; @@ -143,7 +143,7 @@ v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */ v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */ double -__ieee754_y0(double x) +y0(double x) { double z, s,c,ss,cc,u,v; int32_t hx,ix,lx; @@ -192,12 +192,12 @@ __ieee754_y0(double x) return z; } if(ix<=0x3e400000) { /* x < 2**-27 */ - return(u00 + tpi*__ieee754_log(x)); + return(u00 + tpi*log(x)); } z = x*x; u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06))))); v = one+z*(v01+z*(v02+z*(v03+z*v04))); - return(u/v + tpi*(__ieee754_j0(x)*__ieee754_log(x))); + return(u/v + tpi*(j0(x)*log(x))); } /* The asymptotic expansions of pzero is diff --git a/lib/msun/src/e_j0f.c b/lib/msun/src/e_j0f.c index 1c5ef4da1b49..290be04fc900 100644 --- a/lib/msun/src/e_j0f.c +++ b/lib/msun/src/e_j0f.c @@ -45,7 +45,7 @@ S04 = 1.1661400734e-09; /* 0x30a045e8 */ static const float zero = 0, qrtr = 0.25; float -__ieee754_j0f(float x) +j0f(float x) { float z, s,c,ss,cc,r,u,v; int32_t hx,ix; @@ -105,7 +105,7 @@ v03 = 2.5915085189e-07, /* 0x348b216c */ v04 = 4.4111031494e-10; /* 0x2ff280c2 */ float -__ieee754_y0f(float x) +y0f(float x) { float z, s,c,ss,cc,u,v; int32_t hx,ix; @@ -147,12 +147,12 @@ __ieee754_y0f(float x) return z; } if(ix<=0x39000000) { /* x < 2**-13 */ - return(u00 + tpi*__ieee754_logf(x)); + return(u00 + tpi*logf(x)); } z = x*x; u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06))))); v = one+z*(v01+z*(v02+z*(v03+z*v04))); - return(u/v + tpi*(__ieee754_j0f(x)*__ieee754_logf(x))); + return(u/v + tpi*(j0f(x)*logf(x))); } /* The asymptotic expansions of pzero is diff --git a/lib/msun/src/e_j1.c b/lib/msun/src/e_j1.c index fb4462738368..ee3f6fcc69d4 100644 --- a/lib/msun/src/e_j1.c +++ b/lib/msun/src/e_j1.c @@ -13,7 +13,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_j1(x), __ieee754_y1(x) +/* j1(x), y1(x) * Bessel function of the first and second kinds of order zero. * Method -- j1(x): * 1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ... @@ -84,7 +84,7 @@ s05 = 1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */ static const double zero = 0.0; double -__ieee754_j1(double x) +j1(double x) { double z, s,c,ss,cc,r,u,v,y; int32_t hx,ix; @@ -140,7 +140,7 @@ static const double V0[5] = { }; double -__ieee754_y1(double x) +y1(double x) { double z, s,c,ss,cc,u,v; int32_t hx,ix,lx; @@ -190,7 +190,7 @@ __ieee754_y1(double x) z = x*x; u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4]))); v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4])))); - return(x*(u/v) + tpi*(__ieee754_j1(x)*__ieee754_log(x)-one/x)); + return(x*(u/v) + tpi*(j1(x)*log(x)-one/x)); } /* For x >= 8, the asymptotic expansions of pone is diff --git a/lib/msun/src/e_j1f.c b/lib/msun/src/e_j1f.c index c6c45c107afa..e1f4498b71af 100644 --- a/lib/msun/src/e_j1f.c +++ b/lib/msun/src/e_j1f.c @@ -46,7 +46,7 @@ s05 = 1.2354227016e-11; /* 0x2d59567e */ static const float zero = 0.0; float -__ieee754_j1f(float x) +j1f(float x) { float z, s,c,ss,cc,r,u,v,y; int32_t hx,ix; @@ -102,7 +102,7 @@ static const float V0[5] = { }; float -__ieee754_y1f(float x) +y1f(float x) { float z, s,c,ss,cc,u,v; int32_t hx,ix; @@ -145,7 +145,7 @@ __ieee754_y1f(float x) z = x*x; u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4]))); v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4])))); - return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x)); + return(x*(u/v) + tpi*(j1f(x)*logf(x)-one/x)); } /* For x >= 8, the asymptotic expansions of pone is diff --git a/lib/msun/src/e_jn.c b/lib/msun/src/e_jn.c index c7ba7da6567b..b70c496e6735 100644 --- a/lib/msun/src/e_jn.c +++ b/lib/msun/src/e_jn.c @@ -14,7 +14,7 @@ __FBSDID("$FreeBSD$"); /* - * __ieee754_jn(n, x), __ieee754_yn(n, x) + * jn(n, x), yn(n, x) * floating point Bessel's function of the 1st and 2nd kind * of order n * @@ -51,7 +51,7 @@ one = 1.00000000000000000000e+00; /* 0x3FF00000, 0x00000000 */ static const double zero = 0.00000000000000000000e+00; double -__ieee754_jn(int n, double x) +jn(int n, double x) { int32_t i,hx,ix,lx, sgn; double a, b, c, s, temp, di; @@ -69,8 +69,8 @@ __ieee754_jn(int n, double x) x = -x; hx ^= 0x80000000; } - if(n==0) return(__ieee754_j0(x)); - if(n==1) return(__ieee754_j1(x)); + if(n==0) return(j0(x)); + if(n==1) return(j1(x)); sgn = (n&1)&(hx>>31); /* even n -- 0, odd n -- sign(x) */ x = fabs(x); if((ix|lx)==0||ix>=0x7ff00000) /* if x is 0 or inf */ @@ -100,8 +100,8 @@ __ieee754_jn(int n, double x) } b = invsqrtpi*temp/sqrt(x); } else { - a = __ieee754_j0(x); - b = __ieee754_j1(x); + a = j0(x); + b = j1(x); for(i=1;i<n;i++){ temp = b; b = b*((double)(i+i)/x) - a; /* avoid underflow */ @@ -177,7 +177,7 @@ __ieee754_jn(int n, double x) */ tmp = n; v = two/x; - tmp = tmp*__ieee754_log(fabs(v*tmp)); + tmp = tmp*log(fabs(v*tmp)); if(tmp<7.09782712893383973096e+02) { for(i=n-1,di=(double)(i+i);i>0;i--){ temp = b; @@ -201,8 +201,8 @@ __ieee754_jn(int n, double x) } } } - z = __ieee754_j0(x); - w = __ieee754_j1(x); + z = j0(x); + w = j1(x); if (fabs(z) >= fabs(w)) b = (t*z/b); else @@ -213,7 +213,7 @@ __ieee754_jn(int n, double x) } double -__ieee754_yn(int n, double x) +yn(int n, double x) { int32_t i,hx,ix,lx; int32_t sign; @@ -232,8 +232,8 @@ __ieee754_yn(int n, double x) n = -n; sign = 1 - ((n&1)<<1); } - if(n==0) return(__ieee754_y0(x)); - if(n==1) return(sign*__ieee754_y1(x)); + if(n==0) return(y0(x)); + if(n==1) return(sign*y1(x)); if(ix==0x7ff00000) return zero; if(ix>=0x52D00000) { /* x > 2**302 */ /* (x >> n**2) @@ -259,8 +259,8 @@ __ieee754_yn(int n, double x) b = invsqrtpi*temp/sqrt(x); } else { u_int32_t high; - a = __ieee754_y0(x); - b = __ieee754_y1(x); + a = y0(x); + b = y1(x); /* quit if b is -inf */ GET_HIGH_WORD(high,b); for(i=1;i<n&&high!=0xfff00000;i++){ diff --git a/lib/msun/src/e_jnf.c b/lib/msun/src/e_jnf.c index 965feeb666d4..ba586226dae5 100644 --- a/lib/msun/src/e_jnf.c +++ b/lib/msun/src/e_jnf.c @@ -32,7 +32,7 @@ one = 1.0000000000e+00; /* 0x3F800000 */ static const float zero = 0.0000000000e+00; float -__ieee754_jnf(int n, float x) +jnf(int n, float x) { int32_t i,hx,ix, sgn; float a, b, temp, di; @@ -50,16 +50,16 @@ __ieee754_jnf(int n, float x) x = -x; hx ^= 0x80000000; } - if(n==0) return(__ieee754_j0f(x)); - if(n==1) return(__ieee754_j1f(x)); + if(n==0) return(j0f(x)); + if(n==1) return(j1f(x)); sgn = (n&1)&(hx>>31); /* even n -- 0, odd n -- sign(x) */ x = fabsf(x); if(ix==0||ix>=0x7f800000) /* if x is 0 or inf */ b = zero; else if((float)n<=x) { /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ - a = __ieee754_j0f(x); - b = __ieee754_j1f(x); + a = j0f(x); + b = j1f(x); for(i=1;i<n;i++){ temp = b; b = b*((float)(i+i)/x) - a; /* avoid underflow */ @@ -134,7 +134,7 @@ __ieee754_jnf(int n, float x) */ tmp = n; v = two/x; - tmp = tmp*__ieee754_logf(fabsf(v*tmp)); + tmp = tmp*logf(fabsf(v*tmp)); if(tmp<(float)8.8721679688e+01) { for(i=n-1,di=(float)(i+i);i>0;i--){ temp = b; @@ -158,8 +158,8 @@ __ieee754_jnf(int n, float x) } } } - z = __ieee754_j0f(x); - w = __ieee754_j1f(x); + z = j0f(x); + w = j1f(x); if (fabsf(z) >= fabsf(w)) b = (t*z/b); else @@ -170,7 +170,7 @@ __ieee754_jnf(int n, float x) } float -__ieee754_ynf(int n, float x) +ynf(int n, float x) { int32_t i,hx,ix,ib; int32_t sign; @@ -186,12 +186,12 @@ __ieee754_ynf(int n, float x) n = -n; sign = 1 - ((n&1)<<1); } - if(n==0) return(__ieee754_y0f(x)); - if(n==1) return(sign*__ieee754_y1f(x)); + if(n==0) return(y0f(x)); + if(n==1) return(sign*y1f(x)); if(ix==0x7f800000) return zero; - a = __ieee754_y0f(x); - b = __ieee754_y1f(x); + a = y0f(x); + b = y1f(x); /* quit if b is -inf */ GET_FLOAT_WORD(ib,b); for(i=1;i<n&&ib!=0xff800000;i++){ diff --git a/lib/msun/src/e_lgamma.c b/lib/msun/src/e_lgamma.c index 43f5175603ec..9c4a30e6e135 100644 --- a/lib/msun/src/e_lgamma.c +++ b/lib/msun/src/e_lgamma.c @@ -15,10 +15,10 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -/* __ieee754_lgamma(x) +/* lgamma(x) * Return the logarithm of the Gamma function of x. * - * Method: call __ieee754_lgamma_r + * Method: call lgamma_r */ #include <float.h> @@ -29,9 +29,9 @@ __FBSDID("$FreeBSD$"); *** 659 LINES SKIPPED *** From nobody Mon Aug 14 09:35:23 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RPTlb4dgsz4qD02; Mon, 14 Aug 2023 09:35: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 4RPTlb3v1Qz4My4; Mon, 14 Aug 2023 09:35:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692005723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q2jqxhYpL9UqU3SS/FHH1mSBrx7dSEeJRyJuKEGE14o=; b=QAwakrhGKq51MIzVpNOkEfz22hxY8DHpxFrEjRHv4wiG1XwTW/6lltpuhy37yudxeuNDYt 6FlX7zgImoBXYRVYl7gmV3Y5lTNGcSpahNrYunlxa6yuamy8UF65otYNA4H3Vt2zQ0wr0a wOzC1Rc69MwN74sd9Ao7eQdh6vmUUwy7QcachIoAf3UozMFVA+i9nkGxXB/FSEU0soQGT0 L20u5TRK3KizJ2/YGFyhuVT/cX10urn94Y1bPnbPwknOwP8b1yGnZpf7+8qoE3+BFAQo9j qgUdyPAPfo+KH33U5eVz/w2PPnLPMYokfXMWLw5NPA0rVUnXtS6pevU8tWbDkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692005723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q2jqxhYpL9UqU3SS/FHH1mSBrx7dSEeJRyJuKEGE14o=; b=Nw7n0SOxs6gSKbfkAVlWKypiJVpHlT0ZfEIFg4YzYZIV56gOJcJo7y0qF3pcJvY3DMXMxf DRM+9VcM2K7AsMvwsE8RRd34DL11XzLH+TEl4g6M3pzhrKpjJWm6ZiigUJh0eS/tD+Uuvz sQp4r8R4+M+Z56k5OYXmQo7K1WJc/aRSIPk5Q1Y+LjDtWHRxwJQSieJwPj/R48kR+oC+Oi xhpXEgiRKGpssKhgh7/As+FXVrSC5+wCH78KsTMTqAWTvk5BSnW7cH5cgwOtSow9bI6mES VjWjHgQR0FnErw2FlPkwX/ey+nxJKCMowabwP5FSjJP1XNdTTeFed2CPRNrVIg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692005723; a=rsa-sha256; cv=none; b=lsHFrkeRNjE0GJ3vgp/nHAKlSJYlO7dX7QNFvvXC3d5AJyqOTaea5qp27wMWnHsmNklBsa 6H85x7Odve641mjyd0c3NtAPT4DoU66SNA7JRitvMnMi0PYR+ycuwjPBqV+TiIJv6+5Ky+ 1xkk8t5KRRoqVtR42qpGMRpvUEk9sQXNGm3v9zaiHEiL6f2+YlOYBZ7y2NSphYNJkrB4LR 0xM0+pCazByBBroPCGq8Pbr5q8mxaUMbIoWlBXCVlMcRVUA00vjeL/3mhj+pBfhYKSDOeN +G8p6pAMhno/2TaBhb0YGw6iAOSpHYbO89HK6orySV7cgrP2mESbJMzd3mURJw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RPTlb2wwJz7rD; Mon, 14 Aug 2023 09:35: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 37E9ZNP2028730; Mon, 14 Aug 2023 09:35:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37E9ZN6X028727; Mon, 14 Aug 2023 09:35:23 GMT (envelope-from git) Date: Mon, 14 Aug 2023 09:35:23 GMT Message-Id: <202308140935.37E9ZN6X028727@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Richard Scheffenegger <rscheff@FreeBSD.org> Subject: git: 110b2f4d47dd - stable/13 - tcp: Handle <RST,ACK> in SYN-RCVD List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rscheff X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 110b2f4d47dddadebd71ed327bd9a10f9acbbbfe Auto-Submitted: auto-generated The branch stable/13 has been updated by rscheff: URL: https://cgit.FreeBSD.org/src/commit/?id=110b2f4d47dddadebd71ed327bd9a10f9acbbbfe commit 110b2f4d47dddadebd71ed327bd9a10f9acbbbfe Author: Richard Scheffenegger <rscheff@FreeBSD.org> AuthorDate: 2023-07-26 22:41:25 +0000 Commit: Richard Scheffenegger <rscheff@FreeBSD.org> CommitDate: 2023-08-14 08:48:52 +0000 tcp: Handle <RST,ACK> in SYN-RCVD Patch base stack to correctly handle the RST bit independently of other header flags per TCP RFC. MFC after: 1 week Reviewed By: tuexen, #transport Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D40982 (cherry picked from commit b352ef58c29b1f2967e358c147e0f7faf8cfbef3) --- sys/netinet/tcp_input.c | 4 ++++ sys/netinet/tcp_syncache.c | 12 ------------ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index bb2a0e497dcf..f2890dff7290 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -2021,6 +2021,10 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so, * if seg contains an ACK, but not for our SYN/ACK, send a RST. */ case TCPS_SYN_RECEIVED: + if (thflags & TH_RST) { + /* Handle RST segments later. */ + break; + } if ((thflags & TH_ACK) && (SEQ_LEQ(th->th_ack, tp->snd_una) || SEQ_GT(th->th_ack, tp->snd_max))) { diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c index b3c2fbeb927e..59a8df134f80 100644 --- a/sys/netinet/tcp_syncache.c +++ b/sys/netinet/tcp_syncache.c @@ -619,18 +619,6 @@ syncache_chkrst(struct in_conninfo *inc, struct tcphdr *th, struct mbuf *m, sc = syncache_lookup(inc, &sch); /* returns locked sch */ SCH_LOCK_ASSERT(sch); - /* - * Any RST to our SYN|ACK must not carry ACK, SYN or FIN flags. - * See RFC 793 page 65, section SEGMENT ARRIVES. - */ - if (th->th_flags & (TH_ACK|TH_SYN|TH_FIN)) { - if ((s = tcp_log_addrs(inc, th, NULL, NULL))) - log(LOG_DEBUG, "%s; %s: Spurious RST with ACK, SYN or " - "FIN flag set, segment ignored\n", s, __func__); - TCPSTAT_INC(tcps_badrst); - goto done; - } - /* * No corresponding connection was found in syncache. * If syncookies are enabled and possibly exclusively From nobody Mon Aug 14 09:39:30 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RPTrM14QLz4qDdt; Mon, 14 Aug 2023 09:39: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 4RPTrM0Zstz4Njt; Mon, 14 Aug 2023 09:39:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692005971; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3UvcGgW4tIctWg23J9Zdk5yrZELKFmSkHnYx/NtfN0I=; b=rd+yikvwNnXKN1XqKkNjXJPBL44Sp64lsOJ4BsrW5w/ep1TrUQsS4BEicuf5ngHdarC8i3 75FYbXhoy0lFmbfGu45/+mDLBDIRV5ON9rTqNoyYPkv2PpKPYqLJTb+6GRPCzuA6zSCSY2 Cg8pbSPzlZs+HUVrSP0qpfUayaweu7aqUx4gcr6NcTUBPtxERLqEWhP04cFKlluD1VRTgD QoWsel8XPr17O4Yf2+orbZGN9ElfIVdXEgJ+2pg+vLAr//n65KPHJIP1VzWTALVUNS/NMB yHDuv8EzQEnRg54aTwQfdUd4qV9YfwW2XIZvimQEBmcHqnYiEighQFrXG1O1Xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692005971; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3UvcGgW4tIctWg23J9Zdk5yrZELKFmSkHnYx/NtfN0I=; b=im8vkTj14Avziq56wkag8QPSdfQIsG5AFrCSD+O8z+J9fWjv4acz4duwKDwegLZZClWnxU Yl7W09yFHLhEVn6zqOFQg7m/iOUSJaJv4A35PqqedgkFFBxoqm4Br3FbVJxDqyBnmdWzfr YQYxgx9hRGvyuLQcbj1JHWeeQxim/RcPrNlbChOfHfcmcN9NDTg7uECikc2myRDndxa2Jw skr974llLXfjXvRywLC1dY+seG85zIN7/CdOFUszTcMwU9wiNmnqqDCnEdaZ4iKepSmWdA MjUJpmV9d7B52+e4a/xXX0H5qAQBIT+ePUZtbWTTlo9erdOYw2Fv673HXvrSpQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692005971; a=rsa-sha256; cv=none; b=VChcj/wOKy8uCI051e6EKqLNt0wQ+vyrABNKPHBPLI1SzFFpy1NGx70KpEGQfDWOC51KLR 5TLP/x9uhXgv0b2aS5aA9yvvk9CMw44n6HeBxFOuh479XAB5PFp4HFvsjlmLSLheR8dEZR ie6MwJ2rC2oAswsyOWmEHh6lHS/VSw6dDIdD+/WZQmMRZNWPLI68mijzh0E5kvy+xppsvE Zpzc5robbdzTCaEliK8mqpX7q00mpcx7urG6AFEDTbSq3zpORt5UilgvWQ6dHmziAaaVmL 8ewTDy8ha+5KmerKqnhbgOvoW0T57GOv/ITgdAi9mALmopvf9NdgPssIuryRGQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RPTrL6g08z8M4; Mon, 14 Aug 2023 09:39: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 37E9dUxQ029447; Mon, 14 Aug 2023 09:39:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37E9dUfL029444; Mon, 14 Aug 2023 09:39:30 GMT (envelope-from git) Date: Mon, 14 Aug 2023 09:39:30 GMT Message-Id: <202308140939.37E9dUfL029444@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Richard Scheffenegger <rscheff@FreeBSD.org> Subject: git: b2d895f70ded - stable/12 - tcp: Handle <RST,ACK> in SYN-RCVD List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rscheff X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: b2d895f70ded2c7c179d6380efb1423fabad5564 Auto-Submitted: auto-generated The branch stable/12 has been updated by rscheff: URL: https://cgit.FreeBSD.org/src/commit/?id=b2d895f70ded2c7c179d6380efb1423fabad5564 commit b2d895f70ded2c7c179d6380efb1423fabad5564 Author: Richard Scheffenegger <rscheff@FreeBSD.org> AuthorDate: 2023-07-26 22:41:25 +0000 Commit: Richard Scheffenegger <rscheff@FreeBSD.org> CommitDate: 2023-08-14 09:38:03 +0000 tcp: Handle <RST,ACK> in SYN-RCVD Patch base stack to correctly handle the RST bit independently of other header flags per TCP RFC. MFC after: 1 week Reviewed By: tuexen, #transport Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D40982 (cherry picked from commit b352ef58c29b1f2967e358c147e0f7faf8cfbef3) --- sys/netinet/tcp_input.c | 4 ++++ sys/netinet/tcp_syncache.c | 12 ------------ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index fd55a5a09369..0fa2c7ac6562 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1966,6 +1966,10 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so, * if seg contains an ACK, but not for our SYN/ACK, send a RST. */ case TCPS_SYN_RECEIVED: + if (thflags & TH_RST) { + /* Handle RST segments later. */ + break; + } if ((thflags & TH_ACK) && (SEQ_LEQ(th->th_ack, tp->snd_una) || SEQ_GT(th->th_ack, tp->snd_max))) { diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c index d06b54cffc1c..a530bbbabb2a 100644 --- a/sys/netinet/tcp_syncache.c +++ b/sys/netinet/tcp_syncache.c @@ -558,18 +558,6 @@ syncache_chkrst(struct in_conninfo *inc, struct tcphdr *th, struct mbuf *m) sc = syncache_lookup(inc, &sch); /* returns locked sch */ SCH_LOCK_ASSERT(sch); - /* - * Any RST to our SYN|ACK must not carry ACK, SYN or FIN flags. - * See RFC 793 page 65, section SEGMENT ARRIVES. - */ - if (th->th_flags & (TH_ACK|TH_SYN|TH_FIN)) { - if ((s = tcp_log_addrs(inc, th, NULL, NULL))) - log(LOG_DEBUG, "%s; %s: Spurious RST with ACK, SYN or " - "FIN flag set, segment ignored\n", s, __func__); - TCPSTAT_INC(tcps_badrst); - goto done; - } - /* * No corresponding connection was found in syncache. * If syncookies are enabled and possibly exclusively From nobody Wed Aug 16 09:17:30 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG24Sh4z4qS3F; Wed, 16 Aug 2023 09:17: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 4RQjG23b66z4Dx2; Wed, 16 Aug 2023 09:17:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177450; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7CCQT8BGE1y7XcV4MQ+skuc1Q9vWccxNFB3q9DMbKZQ=; b=anIMTH26VbPBzmdpHzYcnl5m374UoHlAKg+1eg9IhlomroRX5gAd890DFwHbg7/wAMqFzi oKBElsFTv8gUVKraQse4QsOhddA8+faJf7iTZzzuK8knNd0rFIX3mbB8Vbz+eEKIMZYd/e /IT3oodZp7zvdJ+lnm1DjykeF/prqOCKaX38sxtiA45FQaWwCrbQGBUa7pnWC+UTWke3tt K21L/2Fj36wV3MjykeM1SqYyrTqVOvnwY6N0UD2xOp0Uq0L85WxPPWRHtgv97HPao838Ud hb4fShlH6Xyi7+ob0hdRXxf0EvhNW8oiDI23YQOGrrnSLWuSfAIkRDzH4Tb3Jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177450; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7CCQT8BGE1y7XcV4MQ+skuc1Q9vWccxNFB3q9DMbKZQ=; b=WmIPhDgbnkDLYDK7x9KhXTbx1VIK9rz0sBa2umRGo0d4Y+PT5GCBop5S8uE0PhJulPGmen Kjrqk0V/AcCr/v/oCnpfeYZRztId+GQrnH+aIutOjb6Qprov+8WYw6wL2tmgzuK+6uQ7X2 cP5PyeJjvL2SeTvNewKY8y8JZDVfVx/X7OmkSfICQdhRaP692wMh35gMdBpOd2mQr/9447 ON8RusDkJaJL42E3Gf7McSGWWFmOumwLovFL0AXG7C+QLvTXijfPm/Ti8cyQd5QBIx6u+4 gQHDemVzrRJ9+ULB1Jsu2ZZ5eY9VXGii9Hn02sx+x36NEpkonlU14AwC30GhHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177450; a=rsa-sha256; cv=none; b=fpV0IuLCUlfILSKO15gSwljA/KkKnVrIVTDOIAxVixfdfBimNZeXqXwwk2Qhr5HHeK0wMy VHoRPOXay8F7fvexd/wjxBiVas5C4Dqs2+/aYt7PJk0mbBW7h8olcBd+bFB45QwJ/XMcY/ cgKZEeyB+1BmJ/PvnXCwVSIlogvnHdFC5e6GvnCEpG80df0f8iRsfxFjyS+KxjWm7P38uO mTErgSUEgZvvUzukDahwP9sGEPTJp2BlYv3vIb+3LBKZFLv5oQEgQcYi8cN9JpdCBy7rPv iMGh4rR7nVu+mBEt0i+DE/VVX74k6yTnzQ2lRmHaoiDZQlkX30I2d26OqhELaA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RQjG22Q79zm5D; Wed, 16 Aug 2023 09:17: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 37G9HU5O093611; Wed, 16 Aug 2023 09:17:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HUnt093608; Wed, 16 Aug 2023 09:17:30 GMT (envelope-from git) Date: Wed, 16 Aug 2023 09:17:30 GMT Message-Id: <202308160917.37G9HUnt093608@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: b9ccef49d02c - stable/13 - vnode read(2)/write(2): acquire rangelock regardless of do_vn_io_fault() List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b9ccef49d02c9ad9e3b986347562408d80271b6c Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=b9ccef49d02c9ad9e3b986347562408d80271b6c commit b9ccef49d02c9ad9e3b986347562408d80271b6c Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-07-23 15:55:50 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-16 09:16:09 +0000 vnode read(2)/write(2): acquire rangelock regardless of do_vn_io_fault() PR: 272678 (cherry picked from commit 5b353925ff61b9ddb97bb453ba75278b578ed7d9) --- sys/kern/vfs_vnops.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 8f618a9ad46d..42080181d094 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -1442,6 +1442,7 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred, void *rl_cookie; struct vn_io_fault_args args; int error; + bool rl_locked; doio = uio->uio_rw == UIO_READ ? vn_read : vn_write; vp = fp->f_vnode; @@ -1464,12 +1465,7 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred, } foffset_lock_uio(fp, uio, flags); - if (do_vn_io_fault(vp, uio)) { - args.kind = VN_IO_FAULT_FOP; - args.args.fop_args.fp = fp; - args.args.fop_args.doio = doio; - args.cred = active_cred; - args.flags = flags | FOF_OFFSET; + if (vp->v_type == VREG) { if (uio->uio_rw == UIO_READ) { rl_cookie = vn_rangelock_rlock(vp, uio->uio_offset, uio->uio_offset + uio->uio_resid); @@ -1481,11 +1477,22 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred, rl_cookie = vn_rangelock_wlock(vp, uio->uio_offset, uio->uio_offset + uio->uio_resid); } + rl_locked = true; + } else { + rl_locked = false; + } + if (do_vn_io_fault(vp, uio)) { + args.kind = VN_IO_FAULT_FOP; + args.args.fop_args.fp = fp; + args.args.fop_args.doio = doio; + args.cred = active_cred; + args.flags = flags | FOF_OFFSET; error = vn_io_fault1(vp, uio, &args, td); - vn_rangelock_unlock(vp, rl_cookie); } else { error = doio(fp, uio, active_cred, flags | FOF_OFFSET, td); } + if (rl_locked) + vn_rangelock_unlock(vp, rl_cookie); foffset_unlock_uio(fp, uio, flags); return (error); } From nobody Wed Aug 16 09:17:31 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG34mnDz4qS3G; Wed, 16 Aug 2023 09:17: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 4RQjG3492hz4FH4; Wed, 16 Aug 2023 09:17:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177451; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QubN6wewfC3qcBT537985FxaZ167GqdaNitI/xK+JsA=; b=kPlJ9p6QBDOWZNVno60bQmwwKx5OjoxBKtATTz4Khg1c3Tkxk/ce7bWGt5CUPB9uM3RVUE RJcaweS/vI2VWYqCTgAQ5/oBHxAvaFjr5LbE7znnwx3G1iX6GJ7UA6b+MNCnZ49sJeYGSE 1V7gtrtM7XRrR0YJ703A5PDP6Odzi7rme9SCFBkd1SxZIulHZfIrxcWU2Ku2rKKO9xGh2A 6b4QmvpxIMmUmdRWjgiAP9ZrY5JWIzvGGkussxVMDOGbIfpZLO24reRwDiWgbsW1+vZJka DCoQJcdBbi5OkMmKguA49HfTlR/lioun4vBlGlTDpYp/nzk3cvRIj8oYDAaGzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177451; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QubN6wewfC3qcBT537985FxaZ167GqdaNitI/xK+JsA=; b=d7tgYvtZoqkyasq1kHqf53LXhbC1jioIOGNVUwFUhqLxSpi/MmVe+NdIja3zcNn8oNoJov bN6Z2FXUY/LxK2eN6llKSTUQAtCi/hJ4Kp3rV12jnYsDqSlYyfZsP3FaXzP0ed37Xyv+V1 xBC6dKvaN16WvPB4m3TgthoWFx34UvauQEHnoFm34ZtEj64KXNt7cCMwmUmYhh4I3J2WTG lNPfBG310dO4bw8MpIixtqE0No8oXiau8kASZwv3oK5PrTusqdYSSBXGTit6fCFnON93CE lex10RgwA/p9USWVpWu20efQIqVY+hiM/VOB1gZ7ozXS7w3taKz9yw4NeASnxw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177451; a=rsa-sha256; cv=none; b=XHn75NPakuoUXdalrDN9/OCTMAH7PV0HmhPEA4yVdxEQfxgBDl/4XDr7Z7S+UdI8hkZZfm BBphvYsvJd+xHsIqmdagrwNaOeHmH5RKgAL7vgvY4E2g8GBg2rChnW+rST1iNF+0Pqh28m 0K0dg9Vu4w5LuYh4+8cKitLW8TeVjQypIWQHStvzJBwsCjhmvzRVWN1yVneyWDmhoYUH7k eslpOwnglD4IRwRkGxrInqrvxqbJAWPF/ga3M1JNt1ZZ8rkBqyh2eNfHwofg5H3jQC4k7o sPFlzyALYXiQvXdddSGEktbWBgG2SMMqk/FfQ2dudwc8p9vcV9JntgvLtcXhbw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RQjG32wBMzmVD; Wed, 16 Aug 2023 09:17:31 +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 37G9HVMm093662; Wed, 16 Aug 2023 09:17:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HVdr093659; Wed, 16 Aug 2023 09:17:31 GMT (envelope-from git) Date: Wed, 16 Aug 2023 09:17:31 GMT Message-Id: <202308160917.37G9HVdr093659@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: febdac6a879a - stable/13 - Revert "vnode read(2)/write(2): acquire rangelock regardless of do_vn_io_fault()" List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: febdac6a879ab5727d00086fc7c6f295b3036896 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=febdac6a879ab5727d00086fc7c6f295b3036896 commit febdac6a879ab5727d00086fc7c6f295b3036896 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-08-06 01:23:42 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-16 09:16:09 +0000 Revert "vnode read(2)/write(2): acquire rangelock regardless of do_vn_io_fault()" (cherry picked from commit 651fdc3d198d066b18823db3b74cf38a0144dfac) --- sys/kern/vfs_vnops.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 42080181d094..8f618a9ad46d 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -1442,7 +1442,6 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred, void *rl_cookie; struct vn_io_fault_args args; int error; - bool rl_locked; doio = uio->uio_rw == UIO_READ ? vn_read : vn_write; vp = fp->f_vnode; @@ -1465,7 +1464,12 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred, } foffset_lock_uio(fp, uio, flags); - if (vp->v_type == VREG) { + if (do_vn_io_fault(vp, uio)) { + args.kind = VN_IO_FAULT_FOP; + args.args.fop_args.fp = fp; + args.args.fop_args.doio = doio; + args.cred = active_cred; + args.flags = flags | FOF_OFFSET; if (uio->uio_rw == UIO_READ) { rl_cookie = vn_rangelock_rlock(vp, uio->uio_offset, uio->uio_offset + uio->uio_resid); @@ -1477,22 +1481,11 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred, rl_cookie = vn_rangelock_wlock(vp, uio->uio_offset, uio->uio_offset + uio->uio_resid); } - rl_locked = true; - } else { - rl_locked = false; - } - if (do_vn_io_fault(vp, uio)) { - args.kind = VN_IO_FAULT_FOP; - args.args.fop_args.fp = fp; - args.args.fop_args.doio = doio; - args.cred = active_cred; - args.flags = flags | FOF_OFFSET; error = vn_io_fault1(vp, uio, &args, td); + vn_rangelock_unlock(vp, rl_cookie); } else { error = doio(fp, uio, active_cred, flags | FOF_OFFSET, td); } - if (rl_locked) - vn_rangelock_unlock(vp, rl_cookie); foffset_unlock_uio(fp, uio, flags); return (error); } From nobody Wed Aug 16 09:17:32 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG53F7Rz4qSD0; Wed, 16 Aug 2023 09:17: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 4RQjG455P4z4F0g; Wed, 16 Aug 2023 09:17:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177452; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GrddOUuFDRXzRRSz0Bd0x1Wib4Fc4ioI4HCIQO9dz5Q=; b=elN5eeFEXLS9d+gPXEZRKSlVZ0+JMhL9S6RNu1Uy52Gq/z/GPOvORzAVRrgUgFY3XnOUgt 0veirPEz9eWR6CohOncN6LSet2VDpBhpr5KLEsa7C4xH4PuhfSmCU8jADQ4S83PSWisxVB X1bzlQqk+IOipPLeRDX73VJ+Hj+8LA8i23Lk1aPOOM37VK2K9x+uGCylPO5I5Ay3OH7xV2 zlrapBFxFb0ko4602h1A7SUGBhz2yC5VwXVqDztdmo4x5J8uR/fojyXBpvCNwgV/Ury/kU NkK+nhLm4tBZy4hM66yTFFqZgMtb2Xvr0TTRhCSsh9C7V0ZMzJ8UvhlcTgFHkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177452; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GrddOUuFDRXzRRSz0Bd0x1Wib4Fc4ioI4HCIQO9dz5Q=; b=skpssNCgHNRk1SOPFcstmkKi8715wat1RxhcF2pew2se+pOix3sokEOS8K4QzU4mq5aP9j GrVm4KMzXYykFOHSBSFAkV/cvL7BkJ8Cw9fdeTRULSL/57Un76kpyMAFUeMTcDDcVhAxRd jryO0c3hnn+y+00Gc4Y67kbbTYvYlCqUyioL5oBoSh4tWkSrC6LmVHRhuwmjQWRVTPAWUY GO7RSYbonmidYqjmsYtJkRQ49tWKwkSsdo7hfzeHUm0zFCm68iXRAlhm3vExr6jV8GQOUu nIyhVKpi0whzselUDgybNN/FShoxpE7PhSRgUOk0PbuHT74SnOWlfcSjzPapeg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177452; a=rsa-sha256; cv=none; b=oWWK5ZHcfC/qzMo6U7zmzatOArnzL1L/iW/ADA58YtKdcUw3R0KR2vO/sgSbIzg5D0ySK7 E1nZEH0YZLgpIUqio5Q14ZoNr46aFg7xpwmcdURrAsVPe5XG2LVwK5cc66j1jTJTeRxHeM 8W/YwU3dPV/OM2Npf8orBBzQZBoLRbajhfLuQ5aAC3bJvoSdfbfV5LDeZdX3xCjo9lsJOG KDfcqti1D0Rg8tUfp8Y1sU2FxfWQgBg7B7YTFuKOJ7/wHB0E1Kho4qu4/iNEhyYtgT7ADk dvOl2XZy1evLhTzLNlPf/Elhz6epKEh+BcsoqFbzn5nkI8c/IznJh4faJj+/rA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RQjG43yq5zm5F; Wed, 16 Aug 2023 09:17: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 37G9HWvB093716; Wed, 16 Aug 2023 09:17:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HWej093713; Wed, 16 Aug 2023 09:17:32 GMT (envelope-from git) Date: Wed, 16 Aug 2023 09:17:32 GMT Message-Id: <202308160917.37G9HWej093713@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: ee3b3146293c - stable/13 - vnode io: request range-locking when pgcache reads are enabled List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ee3b3146293c0dd2e8a779ebb0a3ee65318e8c3b Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=ee3b3146293c0dd2e8a779ebb0a3ee65318e8c3b commit ee3b3146293c0dd2e8a779ebb0a3ee65318e8c3b Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-08-06 01:23:35 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-16 09:16:09 +0000 vnode io: request range-locking when pgcache reads are enabled PR: 272678 (cherry picked from commit 821dec4d56a876db56a82cf1dc54a84905b74f5b) --- sys/kern/vfs_vnops.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 8f618a9ad46d..d9bd52c2822e 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -1442,6 +1442,7 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred, void *rl_cookie; struct vn_io_fault_args args; int error; + bool do_io_fault, do_rangelock; doio = uio->uio_rw == UIO_READ ? vn_read : vn_write; vp = fp->f_vnode; @@ -1463,13 +1464,10 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred, return (EISDIR); } + do_io_fault = do_vn_io_fault(vp, uio); + do_rangelock = do_io_fault || (vn_irflag_read(vp) & VIRF_PGREAD) != 0; foffset_lock_uio(fp, uio, flags); - if (do_vn_io_fault(vp, uio)) { - args.kind = VN_IO_FAULT_FOP; - args.args.fop_args.fp = fp; - args.args.fop_args.doio = doio; - args.cred = active_cred; - args.flags = flags | FOF_OFFSET; + if (do_rangelock) { if (uio->uio_rw == UIO_READ) { rl_cookie = vn_rangelock_rlock(vp, uio->uio_offset, uio->uio_offset + uio->uio_resid); @@ -1481,11 +1479,19 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred, rl_cookie = vn_rangelock_wlock(vp, uio->uio_offset, uio->uio_offset + uio->uio_resid); } + } + if (do_io_fault) { + args.kind = VN_IO_FAULT_FOP; + args.args.fop_args.fp = fp; + args.args.fop_args.doio = doio; + args.cred = active_cred; + args.flags = flags | FOF_OFFSET; error = vn_io_fault1(vp, uio, &args, td); - vn_rangelock_unlock(vp, rl_cookie); } else { error = doio(fp, uio, active_cred, flags | FOF_OFFSET, td); } + if (do_rangelock) + vn_rangelock_unlock(vp, rl_cookie); foffset_unlock_uio(fp, uio, flags); return (error); } From nobody Wed Aug 16 09:17:33 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG64zfDz4qS5P; Wed, 16 Aug 2023 09:17: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 4RQjG55pG2z4FHS; Wed, 16 Aug 2023 09:17:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177453; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fjPdlh0wXyP22A9Kyv/oxrrEjvBt+dTRzVKU3KD/8uY=; b=xEB1IYIM4YqkcVE1NHRzNg8RMGLRkWiE3en84a9OLzvQpXNrEfEpf7X1I6RGovWIC2DdNj RAhpV+IpHXVlyg9hO8gAF5sMkWeKWFzhIrW5pMrrFRtSJG6PRqc2vjbpcJdAaC9mcGy7ST twz+Vb1Zk8pQk6/kO3fBty2V7sN5pkP1xTLv4pIQJJ/2gsglzm9rW+UcWViFJR5YOx4chX A026rSLNTZ5XjQ+54MDXKo/Tw+Ws9tn8yt0mHWoK/BO2Dz8rxOBJrpPVMH1p1eha4xuhWX HgLPk4UvTFp9NhcgpVS2BmtCzcmvdUturAcZhMgwC/GF00GolelzCbII/uv2+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177453; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fjPdlh0wXyP22A9Kyv/oxrrEjvBt+dTRzVKU3KD/8uY=; b=YQlNaLIpdd4I4veRXQ2rd+tAgVq7T66tXvJrp9uikkcj1XStc+cIzRiHSI/qvOmsK8Pf+W yOPwkJJs7sG9ZPmBrlw/crkqoMnFQj9BL/W85WftXKuOqsX2VVvE+JzPJG2zVcEmdjTcfU PejyeTc9zoXcRRP+wniqL4OPeK/EDZPGgjvpoLl6Ku2GKvXR6Ymo2C0JRlr7hDUDpUerN3 q8nAtV7x3FiyOi2KA6gyLodRqtzfCKX1OoBjVCkhIRf44A1OnRWx1VkGIwF77re25i1gh8 c+l1lLw6aeTIggXwFqYCGIi/i7c4t+bkLsF3Wa/7Xvv3Muuq+hBnZh5wjy0f5Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177453; a=rsa-sha256; cv=none; b=MU5NwtbROlKCV6vlXzzrUQ+8MJYTbSzP334lvl8AJeaVh+ER1bgDCuYuH9ayTlnqMKrenr GrK8UP8jr6yTJD9PytdY4hsUFvmnqKrVvCgKBHAcwXjoK3X8BZlbnqDZnqoaISQCoRqcTy OF4QSxQfIdwUnVmAdgAah0abwfi6WpLJnfeDtRdrSXLZOio5Edj67Cm3zXVQASBqRmi9Hr JelinOp1mytcMqmV1fT4Uk6FusXMMs4XnCz4qf94L8hXbCV8XYsTdF7imenta8HTctUbGl 1swsYBlJBj3qw4+NthzWm5/7dkBSa7yqD9/MhKayJAgK2bI5Cu/rmJpYbo+WLA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RQjG54YMRzm0M; Wed, 16 Aug 2023 09:17: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 37G9HX5h093775; Wed, 16 Aug 2023 09:17:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HXEm093772; Wed, 16 Aug 2023 09:17:33 GMT (envelope-from git) Date: Wed, 16 Aug 2023 09:17:33 GMT Message-Id: <202308160917.37G9HXEm093772@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: 14e8b328e324 - stable/13 - tmpfs: add a knob to enable pgcache read for mount List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 14e8b328e3245d9260212ec9e108f7fe23158cd8 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=14e8b328e3245d9260212ec9e108f7fe23158cd8 commit 14e8b328e3245d9260212ec9e108f7fe23158cd8 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-08-06 01:35:36 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-16 09:16:09 +0000 tmpfs: add a knob to enable pgcache read for mount (cherry picked from commit 0f613ab85e5a5274704d179f39fb15163d46e7c4) --- sys/fs/tmpfs/tmpfs.h | 3 +++ sys/fs/tmpfs/tmpfs_subr.c | 2 +- sys/fs/tmpfs/tmpfs_vfsops.c | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/fs/tmpfs/tmpfs.h b/sys/fs/tmpfs/tmpfs.h index 8d2ec4354d3e..a56fdfa6c408 100644 --- a/sys/fs/tmpfs/tmpfs.h +++ b/sys/fs/tmpfs/tmpfs.h @@ -405,6 +405,9 @@ struct tmpfs_mount { bool tm_nonc; /* Do not update mtime on writes through mmaped areas. */ bool tm_nomtime; + + /* Read from page cache directly. */ + bool tm_pgread; }; #define TMPFS_LOCK(tm) mtx_lock(&(tm)->tm_allnode_lock) #define TMPFS_UNLOCK(tm) mtx_unlock(&(tm)->tm_allnode_lock) diff --git a/sys/fs/tmpfs/tmpfs_subr.c b/sys/fs/tmpfs/tmpfs_subr.c index 49c1b729d753..98f28ead23e6 100644 --- a/sys/fs/tmpfs/tmpfs_subr.c +++ b/sys/fs/tmpfs/tmpfs_subr.c @@ -1069,7 +1069,7 @@ loop: VI_LOCK(vp); KASSERT(vp->v_object == NULL, ("Not NULL v_object in tmpfs")); vp->v_object = object; - vn_irflag_set_locked(vp, VIRF_PGREAD); + vn_irflag_set_locked(vp, (tm->tm_pgread ? VIRF_PGREAD : 0)); VI_UNLOCK(vp); VM_OBJECT_WUNLOCK(object); break; diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c index 32c26823efc1..9a9c3f4570de 100644 --- a/sys/fs/tmpfs/tmpfs_vfsops.c +++ b/sys/fs/tmpfs/tmpfs_vfsops.c @@ -329,7 +329,7 @@ tmpfs_mount(struct mount *mp) struct tmpfs_mount *tmp; struct tmpfs_node *root; int error; - bool nomtime, nonc; + bool nomtime, nonc, pgread; /* Size counters. */ u_quad_t pages; off_t nodes_max, size_max, maxfilesize; @@ -407,6 +407,7 @@ tmpfs_mount(struct mount *mp) maxfilesize = 0; nonc = vfs_getopt(mp->mnt_optnew, "nonc", NULL, NULL) == 0; nomtime = vfs_getopt(mp->mnt_optnew, "nomtime", NULL, NULL) == 0; + pgread = vfs_getopt(mp->mnt_optnew, "pgread", NULL, NULL) == 0; /* Do not allow mounts if we do not have enough memory to preserve * the minimum reserved pages. */ @@ -454,6 +455,7 @@ tmpfs_mount(struct mount *mp) tmp->tm_ronly = (mp->mnt_flag & MNT_RDONLY) != 0; tmp->tm_nonc = nonc; tmp->tm_nomtime = nomtime; + tmp->tm_pgread = pgread; /* Allocate the root node. */ error = tmpfs_alloc_node(mp, tmp, VDIR, root_uid, root_gid, From nobody Wed Aug 16 09:17:34 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG70BKWz4qSD3; Wed, 16 Aug 2023 09:17: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 4RQjG66n9tz4F5s; Wed, 16 Aug 2023 09:17:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177454; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hWEsrRdGkDFj2CHbGYtXBuh2oswwBRuYV6MLVR0nZEA=; b=rjXb5iObbpbzS3DGIw2ghZAqMkTMD0WheD/QOklSV6ErIkbY2+YolNloUjHUdwJb39vTbm Z9rT7yv99nKAfGxblQTd2veiv6kWXQbL9uWyRM0JekdS/oeHvgrDclNGqqaVCsELjQY2aQ VR/6ipNleLjENnlK2Qh0KNjNk6zgRVcCoKoycVXEMoaH1c9TOwRrzFXl4U4ZnDy3IYENmA qQv9CzPCn5vGzgLJf8NPGeITB5Aq0XhfaS9Y3oY+VF8G+bqvP+xQXBy8HMbZzxEgWM3y1O hKBTdJHB20+Uv4NiI5URPTL8sqFfU+5AADCBUdvddfko/e7gqCdzl4WeOorW4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692177454; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hWEsrRdGkDFj2CHbGYtXBuh2oswwBRuYV6MLVR0nZEA=; b=mqHNYq2I/8XpHW2oQDEQWXRS/y8vvir6VaD9Q224nXOGpvIcZA2NQUKNEPVCqg4OXs1two R5zurm81ZcSSX9IqX26fQyAqZJGMI6mND7jmnMyhb/TiCk+wD95zpY23YgaE80DlT/QbtI 20PJKggpd91INBh7c7DMJeW2R8JxccZawtk0bK+yDDsoQwFr5Xlp8xwPrWJjiJqIZXRCno YkQdQ0H8HBb7b77CGwsmy796tpZTiTflcb8MJph61ZgcnZphxU+LApfo6MlsFeHQHF0Qam DfvhUZ7dN65r68GRsqPfVDenBR+PAaZSCiwQ3AlsCEY6ZznijfYBj/Cymgc1Ug== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177455; a=rsa-sha256; cv=none; b=Utb+8eiZ9SMSM083oM4g3LoIZXtukoOiusUmxMTN+s1zko/e1vzw2BcEuL3+ZB5LsrAvPQ rlhSFk1NmFJErnpye+AX5PVW+P4uXJlllZJuOkKIBHaDjPRwlPU8fjSFJ9zyWY55WIZqg+ WRGk3vNnN9nMnNMAGsFgC85oUW/VtiI4iBzhAVP2wtNvqwCVRty+DC6KZIlSB4kpvY0cL+ mTJfLbhuh+nbygbDC+P8HQdJ8bWlUzxDU3sD7Jja17VdjaMGk5WyUYkNaAy86LiTrzZazw /TshoL/uez9sp1+J/YUaCici3NC/G//uxUOcauNIVcdl30Zlw4xj/DIs91vkOg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RQjG65tSRzmMn; Wed, 16 Aug 2023 09:17: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 37G9HYNj093841; Wed, 16 Aug 2023 09:17:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HYHv093838; Wed, 16 Aug 2023 09:17:34 GMT (envelope-from git) Date: Wed, 16 Aug 2023 09:17:34 GMT Message-Id: <202308160917.37G9HYHv093838@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: 0fbf21482f5a - stable/13 - tmpfs: add the "pgread" mount option to the allowed options list for mount List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0fbf21482f5a594d26314e1354df4dd691bc6401 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=0fbf21482f5a594d26314e1354df4dd691bc6401 commit 0fbf21482f5a594d26314e1354df4dd691bc6401 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-08-11 18:00:44 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-16 09:16:09 +0000 tmpfs: add the "pgread" mount option to the allowed options list for mount (cherry picked from commit 765ad5b28d3fa272208aedc3047a6a3dff561037) --- sys/fs/tmpfs/tmpfs_vfsops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c index 9a9c3f4570de..af0b158988f7 100644 --- a/sys/fs/tmpfs/tmpfs_vfsops.c +++ b/sys/fs/tmpfs/tmpfs_vfsops.c @@ -93,7 +93,7 @@ static int tmpfs_statfs(struct mount *, struct statfs *); static const char *tmpfs_opts[] = { "from", "size", "maxfilesize", "inodes", "uid", "gid", "mode", "export", - "union", "nonc", "nomtime", "nosymfollow", NULL + "union", "nonc", "nomtime", "nosymfollow", "pgread", NULL }; static const char *tmpfs_updateopts[] = { From nobody Wed Aug 16 12:32:13 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQnZk2Pw2z4qd54; Wed, 16 Aug 2023 12:32: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 4RQnZj6zhwz4TFk; Wed, 16 Aug 2023 12:32:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692189134; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L4ut3NxO5Ny/TpOt1kPCkpi83B4YQUIM8ZSBiFJyZ0Q=; b=hptau+XfLICKo27BR50DdvteXgXdQonYOazsdTJiTlKijT8sT154oyojjHkejvpZwQfK9m lXbH9R88Sh3aCJyJAoE7mijdtjhO+O4qSdRczNow0OPKBIOj4EAhfOmUs6DsIB7+HSNNn9 voMvjSX+HGz6BF/SJrMJHr7Y8Q+aKGZmSzqC/0rtd5RO8LBS1WnuY0G5l3UC0xvc94zXwO noS4M9P5hwhe5e9r5Lm5uZPx5blGSggJPvyHtHe+edHPHCk/BOy6d9emfsIvPjskenfUhp LglOz/eX5Q+sejqCvVN9323sE7+HHRlqFI/Sf0Mbuq+4EtnLUnv2SPmpHOentg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692189134; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L4ut3NxO5Ny/TpOt1kPCkpi83B4YQUIM8ZSBiFJyZ0Q=; b=ZRiOK8vrvdu59SCxh1ukhdrT3ddOUnJqxj2u81TMzlV6LFGSbTKSCVfb2osEOkf3NAfoUJ J5IhX0Xhks04ZXi2ENa6fMRydSb2F3Guy/ty2O7Hmdpurgrf1SV203PvtAER59qR3N44FV u9nRFaU8dkiyYc5SYg7HaZee2Jem/CLntJFR5g3lM5D55bbN3C8t5xPlfA7kXX7n74xWJ9 y7fLQej3C+DT5tFw14v+bEboEehX+EF00S8iR5ooBZGtv5ZKCF27jHhKT3DFopqDavJpw7 nRiCLXfdsYBBvC3TJTJqQeUqdkhEi2dLiXmpCqfpelWd1mZ4rPKZa3/ecHMdfw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692189134; a=rsa-sha256; cv=none; b=VLeEbs+AH9EOZDOaBJjP2yRnGunPz9e1HLZZKxjPIt1Xs7JNTmG2e7Zbpa3uaivAU90PeA LP8IVtdf4R/Gx8mmA2PgeEH3P3N4uF9dHMLT33CFu8FEXqXeIcXsL8hSL8uTzkyfTgGh12 lW75veb7/DigJBzPUGOeAWIdBzbXPqxRv4wdO+pQxOlBhsv5I+2oRQzGsy6wTJUWuXIkEs x/xtbBklpIqFN+Norv5OxR8WVuS9j7RCFUN9GJUNWPukVUQzd3Vl+SkAT2plh9e/pv/d2H dG14g/zBcdUTglwdy/nTOY4qCDzCCwyk4koRUXMWMMMFcf4wDX8METLO+0FHBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RQnZj64Z3zs4l; Wed, 16 Aug 2023 12:32: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 37GCWD10023359; Wed, 16 Aug 2023 12:32:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37GCWDrb023356; Wed, 16 Aug 2023 12:32:13 GMT (envelope-from git) Date: Wed, 16 Aug 2023 12:32:13 GMT Message-Id: <202308161232.37GCWDrb023356@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Doug Rabson <dfr@FreeBSD.org> Subject: git: 3af770071046 - stable/13 - ifconfig(8): Teach ifconfig to attach and run itself in a jail List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 3af7700710466b330e54307ff5bc5ea6bb91fec4 Auto-Submitted: auto-generated The branch stable/13 has been updated by dfr: URL: https://cgit.FreeBSD.org/src/commit/?id=3af7700710466b330e54307ff5bc5ea6bb91fec4 commit 3af7700710466b330e54307ff5bc5ea6bb91fec4 Author: Yan Ka Chiu <nyan@myuji.xyz> AuthorDate: 2023-05-23 20:39:22 +0000 Commit: Doug Rabson <dfr@FreeBSD.org> CommitDate: 2023-08-16 12:25:57 +0000 ifconfig(8): Teach ifconfig to attach and run itself in a jail Add -j <jail> flag to ifconfig to allow ifconfig to attach and run inside a jail. This allow parent to configure network interfaces of its children even if ifconfig is not available in child's tree (e.g. Linux Jails) Reviewed by: emaste, khng, melifaro Event: Kitchener-Waterloo Hackathon 202305 MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D40213 (cherry picked from commit 7e49aa86a2824e76e9d9becf61db12066bc0d79d) --- sbin/ifconfig/ifconfig.8 | 22 ++++++++++++++++++++++ sbin/ifconfig/ifconfig.c | 40 ++++++++++++++++++++++++++++++++++------ 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index e7d41da45bec..651d64fb31df 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -36,6 +36,7 @@ .Nd configure network interface parameters .Sh SYNOPSIS .Nm +.Op Fl j Ar jail .Op Fl kLmn .Op Fl f Ar type Ns Cm \&: Ns Ar format .Ar interface @@ -49,9 +50,11 @@ .Oc .Op Ar parameters .Nm +.Op Fl j Ar jail .Ar interface .Cm destroy .Nm +.Op Fl j Ar jail .Fl a .Op Fl dkLmuv .Op Fl f Ar type Ns Cm \&: Ns Ar format @@ -61,13 +64,16 @@ .Nm .Fl C .Nm +.Op Fl j Ar jail .Fl g Ar groupname .Nm +.Op Fl j Ar jail .Fl l .Op Fl du .Op Fl g Ar groupname .Op Ar address_family .Nm +.Op Fl j Ar jail .Op Fl dkLmuv .Op Fl f Ar type Ns Cm \&: Ns Ar format .Sh DESCRIPTION @@ -233,6 +239,22 @@ Setting to .Cm all selects all interfaces. +.It Fl j Ar jail +Perform the actions inside the +.Ar jail . +.Pp +The +.Cm ifconfig +will first attach to the +.Ar jail +(by jail id or jail name) before performing the effects. +.Pp +This allow network interfaces of +.Ar jail +to be configured even if the +.Cm ifconfig +binary is not available in +.Ar jail . .It Fl k Print keying information for the .Ar interface , diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 6deeebba9f01..f93a97572a78 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -42,6 +42,9 @@ static const char rcsid[] = #include <sys/param.h> #include <sys/ioctl.h> +#ifdef JAIL +#include <sys/jail.h> +#endif #include <sys/module.h> #include <sys/linker.h> #include <sys/queue.h> @@ -189,12 +192,12 @@ usage(void) } fprintf(stderr, - "usage: ifconfig [-f type:format] %sinterface address_family\n" + "usage: ifconfig [-j jail] [-f type:format] %sinterface address_family\n" " [address [dest_address]] [parameters]\n" - " ifconfig interface create\n" - " ifconfig -a %s[-d] [-m] [-u] [-v] [address_family]\n" - " ifconfig -l [-d] [-u] [address_family]\n" - " ifconfig %s[-d] [-m] [-u] [-v]\n", + " ifconfig [-j jail] interface create\n" + " ifconfig [-j jail] -a %s[-d] [-m] [-u] [-v] [address_family]\n" + " ifconfig [-j jail] -l [-d] [-u] [address_family]\n" + " ifconfig [-j jail] %s[-d] [-m] [-u] [-v]\n", options, options, options); exit(1); } @@ -412,12 +415,18 @@ main(int argc, char *argv[]) struct ifreq paifr; const struct sockaddr_dl *sdl; char options[1024], *cp, *envformat, *namecp = NULL; +#ifdef JAIL + char *jail_name = NULL; +#endif struct ifa_queue q = TAILQ_HEAD_INITIALIZER(q); struct ifa_order_elt *cur, *tmp; const char *ifname, *matchgroup, *nogroup; struct option *p; size_t iflen; int flags; +#ifdef JAIL + int jid; +#endif all = downonly = uponly = namesonly = noload = verbose = 0; f_inet = f_inet6 = f_ether = f_addr = NULL; @@ -438,7 +447,7 @@ main(int argc, char *argv[]) atexit(printifnamemaybe); /* Parse leading line options */ - strlcpy(options, "G:adf:klmnuv", sizeof(options)); + strlcpy(options, "G:adf:j:klmnuv", sizeof(options)); for (p = opts; p != NULL; p = p->next) strlcat(options, p->opt, sizeof(options)); while ((c = getopt(argc, argv, options)) != -1) { @@ -459,6 +468,15 @@ main(int argc, char *argv[]) usage(); nogroup = optarg; break; + case 'j': +#ifdef JAIL + if (optarg == NULL) + usage(); + jail_name = optarg; +#else + Perror("not built with jail support"); +#endif + break; case 'k': printkeys++; break; @@ -511,6 +529,16 @@ main(int argc, char *argv[]) if (!namesonly && argc < 1) all = 1; +#ifdef JAIL + if (jail_name) { + jid = jail_getid(jail_name); + if (jid == -1) + Perror("jail not found"); + if (jail_attach(jid) != 0) + Perror("cannot attach to jail"); + } +#endif + /* -a and -l allow an address family arg to limit the output */ if (all || namesonly) { if (argc > 1) From nobody Wed Aug 16 12:32:14 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQnZl2MRDz4qd23; Wed, 16 Aug 2023 12:32: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 4RQnZl1VQsz4Tcm; Wed, 16 Aug 2023 12:32:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692189135; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I49I65jSVruZZAG9XuyCMaNgy5irzS4ogkDUkLI5Eu4=; b=wDsxz8y34r+Kc08MlQZWHlSIoLcB3T/hGiaMHiow6MR9rC5K9NWBwnVOEcaBGf8559wTvw Bv/h7uxCjlxeuHddQ93402jEg0FeoAqlKy0cTLulIUKaUCVUvdxJo0fY8MruW3QZsLDLHy eeY7kYEXqxAfydMvflh6RqDpIi4sKBglY7oPvo87NxgJXirI+nHMtAnCp9uZVJIA+owEGZ pMNYxExsiA5vEV6l5++vqnXpO1qVcfnhX1bKkuNWso8VBRFaiPML2YuVRPfRn/GZB5GwUF bkDqhsDE8jCjrNLARfMKHufq/HdHj5QqU0aHD8qYE1npHyYgFxs9wNw4YppxiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692189135; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I49I65jSVruZZAG9XuyCMaNgy5irzS4ogkDUkLI5Eu4=; b=wNdPadCauUk94lLHJhMS6B3P2gRfbnlrLDtwomGtd3fIafsBhMJFOiDeceEsiWCb4MvXR5 UoOxlx4I7Zrd0nWlbE82eGhlSiyXveu7kL7XZ+B1oVc8GYoRVslVwy4PLfn1Arl40uZdSN 1HCe3aXqmbwkvssXX3UrN1EbW8YLFDkR/6fxUwp4MnC+mAnIWIdXqu/tODqkMEzWZl3TOO euSrL9xEkclghCpTJxX2BkvP/zOycKBK5JBuz+5dFu5Zzt9GnGE0jJkXdgzeGTNIS6qtCp BSaWF4ao0+UxzzGP7ssPLRqHIeNnE2KKm+lpAuA1wZjgkqpl4TSjL+qEqaCpIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692189135; a=rsa-sha256; cv=none; b=mrD7sK19PV4k6cIGamQl4E6phVEc8MxamjIPGjlj+cH3XhELG2SOAkPVtFV3QBupFQRX1Q uGTZsGY9HM7dYPZfeqXybYaYQ0h7y83Wu2imeJwpqSwqim+6zUAhhu9ntwHVnBcV6R2l6k LN9oBafK3NeijU6neQlQcbIqrY2TVtNy1e7yHwyTCVslPGX5UIa++Y4/ddVWf+Sx8gdBkN PkzVyVBmqwSeEXDdWCURrlf2OLscJc1m5DKO/itfRxNZUKTWiPixr1XN1tU/VBjHhnAvJu BwS7w4psXoc8OSdJarQAIg6PFnEML/camSbdIi6cKEj50sAAg5mElNEG4eBc/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RQnZl06Lczs4m; Wed, 16 Aug 2023 12:32: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 37GCWEU1023412; Wed, 16 Aug 2023 12:32:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37GCWEsT023408; Wed, 16 Aug 2023 12:32:14 GMT (envelope-from git) Date: Wed, 16 Aug 2023 12:32:14 GMT Message-Id: <202308161232.37GCWEsT023408@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Doug Rabson <dfr@FreeBSD.org> Subject: git: 07cbc2f943ff - stable/13 - route(8): teach route to attach to jails List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 07cbc2f943ff32bee33c4405903795d5545d57ea Auto-Submitted: auto-generated The branch stable/13 has been updated by dfr: URL: https://cgit.FreeBSD.org/src/commit/?id=07cbc2f943ff32bee33c4405903795d5545d57ea commit 07cbc2f943ff32bee33c4405903795d5545d57ea Author: Yan Ka, Chiu <nyan@myuji.xyz> AuthorDate: 2023-06-13 06:05:17 +0000 Commit: Doug Rabson <dfr@FreeBSD.org> CommitDate: 2023-08-16 12:25:57 +0000 route(8): teach route to attach to jails Add -j <jail> flag to route(8) to allow route to perform actions in a Jail. Differential Revision: https://reviews.freebsd.org/D40377 MFC after: 2 weeks (cherry picked from commit ab4d1b73cbf8980dbe05cde7d822010042db8344) --- sbin/route/Makefile | 5 +++++ sbin/route/route.8 | 5 ++++- sbin/route/route.c | 36 ++++++++++++++++++++++++++++++++++-- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/sbin/route/Makefile b/sbin/route/Makefile index e65030f805bb..2cecadd24a72 100644 --- a/sbin/route/Makefile +++ b/sbin/route/Makefile @@ -19,6 +19,11 @@ CFLAGS+= -DINET6 .endif CFLAGS+= -I. +.if ${MK_JAIL} != "no" && !defined(RESCUE) +CFLAGS+= -DJAIL +LIBADD+= jail +.endif + HAS_TESTS= SUBDIR.${MK_TESTS}+= tests diff --git a/sbin/route/route.8 b/sbin/route/route.8 index afcf55ab44c7..72c22bee23ed 100644 --- a/sbin/route/route.8 +++ b/sbin/route/route.8 @@ -28,7 +28,7 @@ .\" @(#)route.8 8.3 (Berkeley) 3/19/94 .\" $FreeBSD$ .\" -.Dd March 14, 2023 +.Dd June 13, 2023 .Dt ROUTE 8 .Os .Sh NAME @@ -36,6 +36,7 @@ .Nd manually manipulate the routing tables .Sh SYNOPSIS .Nm +.Op Fl j Ar jail .Op Fl dnqtv .Ar command .Oo @@ -91,6 +92,8 @@ Suppress all output from the and .Cm flush commands. +.It Fl j Ar jail +Run inside a jail. .El .Pp The diff --git a/sbin/route/route.c b/sbin/route/route.c index 5f33cecb1b20..e10d0b18ee40 100644 --- a/sbin/route/route.c +++ b/sbin/route/route.c @@ -48,6 +48,9 @@ __FBSDID("$FreeBSD$"); #include <sys/file.h> #include <sys/socket.h> #include <sys/ioctl.h> +#ifdef JAIL +#include <sys/jail.h> +#endif #include <sys/sysctl.h> #include <sys/types.h> #include <sys/queue.h> @@ -63,6 +66,9 @@ __FBSDID("$FreeBSD$"); #include <ctype.h> #include <err.h> #include <errno.h> +#ifdef JAIL +#include <jail.h> +#endif #include <paths.h> #include <signal.h> #include <stdbool.h> @@ -90,6 +96,9 @@ static struct keytab { {0, 0} }; +#ifdef JAIL +char * jail_name; +#endif static struct sockaddr_storage so[RTAX_MAX]; static int pid, rtm_addrs; static int s; @@ -161,7 +170,7 @@ usage(const char *cp) { if (cp != NULL) warnx("bad keyword: %s", cp); - errx(EX_USAGE, "usage: route [-46dnqtv] command [[modifiers] args]"); + errx(EX_USAGE, "usage: route [-j jail] [-46dnqtv] command [[modifiers] args]"); /* NOTREACHED */ } @@ -169,12 +178,15 @@ int main(int argc, char **argv) { int ch; +#ifdef JAIL + int jid; +#endif size_t len; if (argc < 2) usage(NULL); - while ((ch = getopt(argc, argv, "46nqdtv")) != -1) + while ((ch = getopt(argc, argv, "46nqdtvj:")) != -1) switch(ch) { case '4': #ifdef INET @@ -207,6 +219,15 @@ main(int argc, char **argv) case 'd': debugonly = 1; break; + case 'j': +#ifdef JAIL + if (optarg == NULL) + usage(NULL); + jail_name = optarg; +#else + errx(1, "Jail support is not compiled in"); +#endif + break; case '?': default: usage(NULL); @@ -216,6 +237,17 @@ main(int argc, char **argv) pid = getpid(); uid = geteuid(); + +#ifdef JAIL + if (jail_name != NULL) { + jid = jail_getid(jail_name); + if (jid == -1) + errx(1, "Jail not found"); + if (jail_attach(jid) != 0) + errx(1, "Cannot attach to jail"); + } +#endif + if (tflag) s = open(_PATH_DEVNULL, O_WRONLY, 0); else From nobody Wed Aug 16 17:48:08 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQwbD4prSz4qtyk; Wed, 16 Aug 2023 17:48: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 4RQwbD48bmz3TBJ; Wed, 16 Aug 2023 17:48:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692208088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5p09CQyEpR+OMoJV/MeyGnJj67E2pGrjSF3Q/knDbZk=; b=FTO4c/IAMqdZBb5rWID60+jbA3Sgtc9Iyz+xZm5l7oBYxhKQygDFm4jsjbnrU1obYw3Psm pBdPVvFngR48hAdhMNBsGmQF/2+Q2emx6BInNFVHc9iLArOma0nSO2Kq0VlAJObpl/nBFN isRrzDQ4DFrSFt5sr4E7uT0sLwRZIKbirr6eJS4UqcN5MzcAFoo8Llw+1nExXALaZMaK16 kT6Dbe8ef7/wCZJQUH+GtGlmtGH4y2C1L3h+joCcAuZye9fT/dZr7xWoLQTcHRRKXV4TQm tr8AwwNrmZcDOiExdxlKjYindm2dLN4f28FROhZ4lclxiTpCqKcRmcCtgOQj/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692208088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5p09CQyEpR+OMoJV/MeyGnJj67E2pGrjSF3Q/knDbZk=; b=r4LaXcv9+EPZYrxkIN2dsb4rWGrcQ1FDJSKeDUC65knVzg4vaa9uG+JMeZZH7zAhzJA1UC 6rkxJoHEOesy2NuxuLatGD0gN+2B+ujntuq1tzdT+wYXlQiv9qFE1CwJ2h7oXi/IJwHd3C gZDChFfwAxCWXKngA0i63vadEm+3UcOw1O4reiytDRNJIAJ0slJJHZ0RGbjme8WTDuHLJr IkAWgMwLKeiI4M6t6jhF3e8cIz7g5dk5/5/RegjJGECezcyR6Jq8m6AmKZtEsWqy4Amh6v GDyblwIKzh5gkwtOwFT0xE0OC0yxkQrjZziY023DFyzeUxPM8WpdHPiWgTl/oQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692208088; a=rsa-sha256; cv=none; b=rUoqJkuSktCpnvty/oVNtHDCnREvy5Xy/I4vwVcRW5jjBUQCxLjKRouu1BW2mbwGs+V8Tx 2MLViRcfJg9sNzjUZ0P+eDgvJ/Wk4GTj934tmcZGGYbeKqo+tKcEz9Z7WtfudFUG/M13Lf iVVQK/KKESLO38cNMn7QTqXL3T6rlAQVaFxLyxgGATwCSyi/vdWHhS3V+iF2xgJmz4QL9G IkNJ0DMxS9qQkWw5cY6bSoi/BQ9kCNdhHYZYENIUs8PMRVVKud82O1YRsgfVxwsth/7J9R kN4BS3NPJEfpfbWlI3P2KrWBoK1E64oj/vEvRc/ZwjHr/XgYJ9GsCzLfuEHGIg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RQwbD31fnz11Pv; Wed, 16 Aug 2023 17:48: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 37GHm81u042031; Wed, 16 Aug 2023 17:48:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37GHm8cE042028; Wed, 16 Aug 2023 17:48:08 GMT (envelope-from git) Date: Wed, 16 Aug 2023 17:48:08 GMT Message-Id: <202308161748.37GHm8cE042028@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost <kp@FreeBSD.org> Subject: git: 31d385e78eba - stable/13 - ping: use the in6_addr buffer when parsing src address as AF_INET6 List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 31d385e78eba5d0fd8a3d13fde86e345917a2588 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=31d385e78eba5d0fd8a3d13fde86e345917a2588 commit 31d385e78eba5d0fd8a3d13fde86e345917a2588 Author: R. Christian McDonald <rcm@rcm.sh> AuthorDate: 2023-08-08 18:40:02 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2023-08-16 15:04:04 +0000 ping: use the in6_addr buffer when parsing src address as AF_INET6 Reviewed by: kp MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 9f2cddd261d09b736893454cb8b7aa0651ac5211) --- sbin/ping/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/ping/main.c b/sbin/ping/main.c index 2f94b5d3227d..bfe19e0ff442 100644 --- a/sbin/ping/main.c +++ b/sbin/ping/main.c @@ -102,7 +102,7 @@ main(int argc, char *argv[]) */ if (inet_pton(AF_INET, optarg, &a) == 1) ipv4 = true; - else if (inet_pton(AF_INET6, optarg, &a) == 1) + else if (inet_pton(AF_INET6, optarg, &a6) == 1) ipv6 = true; break; #endif From nobody Thu Aug 17 00:30:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RR5X12lH7z4mQl9; Thu, 17 Aug 2023 00:30: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 4RR5X12J7Wz4TlK; Thu, 17 Aug 2023 00:30:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692232257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7UzBDUvOOZ/3JY8Ww7qvNRmDO36NXUZtZJ9OUjdtWAw=; b=t0ApJ0r+LOtDzGIOEO+ag6DLXJvuZjmwrVBlDjUjKWfDTAIdDdGh3Q777EusdhHw10wFwW dTIxv6INNcZ2ePwzGsS8jBDQyBqTTN7M2kVAK6MdPBvw3tzIFU8Xnebgbgsjo8zJKPy43t sUZ4FED4lux/SwbxVQjABBcC5uoMqn6pzPhE+PcBTS/u0Qk/PsDC6W1ZGFP/BD89LFNvFZ 9xr1s41b/iLgbBOZF1Bdkq03u5fnkUxo571K/2ZRvFi8Jz5zOmmmKLGRSqpqMMzOvuduSs 4eREIj3boLqhIU4H9CNNIR3naglvFBp1RN8GdsUnC2fBTCkX0kSIBdHiwCnbrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692232257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7UzBDUvOOZ/3JY8Ww7qvNRmDO36NXUZtZJ9OUjdtWAw=; b=vSMEJE0oZmwgEjQ/RAxLDSHfnZ2bitAZdowb7XzrBWozet4cOu044ZKrao4mgyJ+OEewQY bhHOPYpe+niWTa/sp+Esyt75XUwaLSLsR+apDpSg/kg9qFeT7AqLb5koV2Sy9Ge8Hq0jRn 7EviIDkRPGoy3bLxuKaPXReVSeg0aYLcUX0ry37yZbRXkXCTtkfoLwGacI95f16zjt1v6q 45iIFi9tQMNEM50mx2OGgawssDpX8s6v/4HkPJ7mW89RH3BZTv+pufoZJ0dGuFyjhqUPXC YQkRVLdAWgnAfBMwRUgY2xJp9vTw84L51WE34J11jf1EUxgaCohz3W0AeefHyA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692232257; a=rsa-sha256; cv=none; b=rcuaTdERzHkb85wC2kWikNhOe5W0DTFMysMggf1dadi4MYqib9xHBejpVPypRDjGHEMmGh +MPEcP9+JQpl0KVADYpEZI7PhjAN5WVFDUj3ZifJqC9f9G0khFBKGPE8yIqLifainXFxjh Xsh3m6nvZwaftv0mwa5XE6BH2SFtN4wJ2hW1GVHao9zvtT8WongBjxRZouAwLonsQSLn5Y AnTeqsCEg0Q5i1We2V7Ntv22A/E5CPLe4Ykl/8MzV99l09b99KPra1hqhr/Zg3j7h2Gba4 KeECQcFsvWgGFwzEyc7tajDBoi2QNA07dpJ8ajqXSyqa20W8aovo1x8u3kJdXg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RR5X11LwVz1ByJ; Thu, 17 Aug 2023 00:30: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 37H0Uvm9037277; Thu, 17 Aug 2023 00:30:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37H0UvCG037274; Thu, 17 Aug 2023 00:30:57 GMT (envelope-from git) Date: Thu, 17 Aug 2023 00:30:57 GMT Message-Id: <202308170030.37H0UvCG037274@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling <kbowling@FreeBSD.org> Subject: git: a1c25461c6d1 - stable/13 - ixgbe: Add support for 82599 LS List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a1c25461c6d16987b0e1eee60a8a1a0b0618574f Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=a1c25461c6d16987b0e1eee60a8a1a0b0618574f commit a1c25461c6d16987b0e1eee60a8a1a0b0618574f Author: Kevin Bowling <kbowling@FreeBSD.org> AuthorDate: 2023-08-10 01:30:15 +0000 Commit: Kevin Bowling <kbowling@FreeBSD.org> CommitDate: 2023-08-17 00:30:19 +0000 ixgbe: Add support for 82599 LS Obtained from: DPDK 549ccd3dc01539e060597b503f2b65b272de3347 (cherry picked from commit 9228ac3a69c4c7401a743e6465e118101a2beeb0) --- sys/dev/ixgbe/if_ix.c | 1 + sys/dev/ixgbe/ixgbe_82599.c | 3 +++ sys/dev/ixgbe/ixgbe_type.h | 2 ++ 3 files changed, 6 insertions(+) diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c index 54bc16e73763..150fdff03d05 100644 --- a/sys/dev/ixgbe/if_ix.c +++ b/sys/dev/ixgbe/if_ix.c @@ -76,6 +76,7 @@ static pci_vendor_info_t ixgbe_vendor_info_array[] = PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_XAUI_LOM, "Intel(R) X520 82599 (XAUI/BX4)"), PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_CX4, "Intel(R) X520 82599 (Dual CX4)"), PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_T3_LOM, "Intel(R) X520-T 82599 LOM"), + PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_LS, "Intel(R) X520 82599 LS"), PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_COMBO_BACKPLANE, "Intel(R) X520 82599 (Combined Backplane)"), PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_BACKPLANE_FCOE, "Intel(R) X520 82599 (Backplane w/FCoE)"), PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_SF2, "Intel(R) X520 82599 (Dual SFP+)"), diff --git a/sys/dev/ixgbe/ixgbe_82599.c b/sys/dev/ixgbe/ixgbe_82599.c index 698602080592..7afb440b556d 100644 --- a/sys/dev/ixgbe/ixgbe_82599.c +++ b/sys/dev/ixgbe/ixgbe_82599.c @@ -568,6 +568,9 @@ enum ixgbe_media_type ixgbe_get_media_type_82599(struct ixgbe_hw *hw) case IXGBE_DEV_ID_82599_T3_LOM: media_type = ixgbe_media_type_copper; break; + case IXGBE_DEV_ID_82599_LS: + media_type = ixgbe_media_type_fiber_lco; + break; case IXGBE_DEV_ID_82599_QSFP_SF_QP: media_type = ixgbe_media_type_fiber_qsfp; break; diff --git a/sys/dev/ixgbe/ixgbe_type.h b/sys/dev/ixgbe/ixgbe_type.h index 9fb800560e43..7d39e391855a 100644 --- a/sys/dev/ixgbe/ixgbe_type.h +++ b/sys/dev/ixgbe/ixgbe_type.h @@ -100,6 +100,7 @@ #define IXGBE_DEV_ID_82599_KR 0x1517 #define IXGBE_DEV_ID_82599_COMBO_BACKPLANE 0x10F8 #define IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ 0x000C +#define IXGBE_DEV_ID_82599_LS 0x154F #define IXGBE_DEV_ID_82599_CX4 0x10F9 #define IXGBE_DEV_ID_82599_SFP 0x10FB #define IXGBE_SUBDEV_ID_82599_SFP 0x11A9 @@ -3758,6 +3759,7 @@ enum ixgbe_media_type { ixgbe_media_type_fiber, ixgbe_media_type_fiber_fixed, ixgbe_media_type_fiber_qsfp, + ixgbe_media_type_fiber_lco, ixgbe_media_type_copper, ixgbe_media_type_backplane, ixgbe_media_type_cx4, From nobody Thu Aug 17 00:30:58 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RR5X24DJYz4mQnb; Thu, 17 Aug 2023 00:30: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 4RR5X23GgXz4Tdb; Thu, 17 Aug 2023 00:30:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692232258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TzEtOTz0ziNnCjzIdpzcT7xWQ6gm7+jX0X2owgWTuTg=; b=mYAdw6vAhwSGFJ4R+709wMIm+6cQDZO/aiogSIJuCeWbFAr8WGeG1me4wWJUy1xn3Nm1mo O8oozzo7iMmHlqby47zRbwBlDiiu2kxIGODDJCzNC6N6HyL1EUUJ88YEfKMXgb6NFsxpMZ 1I//dWNJt5nxVvFwmhSb3UOoolo/9VqZGT9ieHTKS8hhGHh49sb7JnCDIBLc4X6IQTvwyP LrHNUcJ5A3eJ1aNgZ1XvTjMBI5L8mSabPV2xLPj39i1VfTPNctDBhHi6Xpx1AaqpsncRgd ZRxEizMsnzgtvuK0tCQ/8mgcKIE6Vkj1HJZ+eg/pUVEmW0vz+ja/MHK9XJELag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692232258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TzEtOTz0ziNnCjzIdpzcT7xWQ6gm7+jX0X2owgWTuTg=; b=HnuHX0IrmnHJ4vMWaXCTfHya/sy2BIQKOIZhtYEAos7HNhrF5lole4tF7xzAiZcv+m32LX 8zbi8F85DZpkAH3+dDiTHq3VKefxmzZcs5hho6FKsmqrWwJH+kdNYunxTSGsavsYmJc12k t5HS/lBcJLB3E6SWsMzFIjkzAxvKv6ztOP63NQ8ZM0hbSieqTXwzeHv1cU0sEwyxkLyrGr egbqh11BfcTk7OsKN1zWFWwHf26QExVOjXMaVwRRkWyYtZ6OxeWv0QU/x9AWmKPE5yj6TQ XTexVxGOX4NxhwT6o7vBMioM3vKi9AjvmdRYHEmf5uKWvNgeTzezMhGXth9Dug== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692232258; a=rsa-sha256; cv=none; b=I5sbvZgdpDepOt6yPdK2XtGbl4slFmRyySuegf6T5O2GeckwCAjqsAJwxbPz5dqUm/DFud 3+Twd0JffzS185Ih0e+U7Hu+c+RVYZU0twyl3ZaFqrrqnNKeh+6bnsFI7PWR0fUdd/UvHP N/V8bPiWxhwqxFhEFi3smJ6c07PK6ERpQPAIUc6NIo9Rg95EkX2P8kKf804p6rSaxPVIpG 10VkyoiFiwpu5hw36qlceIvaXy6Mr/2hI/GUnO2bqoH4nqyHLxyqUfiGbMc5u8c4ChQEUl YYGyP5oWs2To/OmrVtKbwvrfYAA+JNcW5gSuOlBRyHmi5IcBfWYJELbwZ9tDpw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RR5X22LyVz1CNS; Thu, 17 Aug 2023 00:30: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 37H0Uw4v037327; Thu, 17 Aug 2023 00:30:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37H0UwD0037324; Thu, 17 Aug 2023 00:30:58 GMT (envelope-from git) Date: Thu, 17 Aug 2023 00:30:58 GMT Message-Id: <202308170030.37H0UwD0037324@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling <kbowling@FreeBSD.org> Subject: git: f09f2763b67f - stable/13 - igc: sync srrctl buffer sizing with e1000 List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: f09f2763b67fcbf65d7cac5b114eab72308cde60 Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=f09f2763b67fcbf65d7cac5b114eab72308cde60 commit f09f2763b67fcbf65d7cac5b114eab72308cde60 Author: Kevin Bowling <kbowling@FreeBSD.org> AuthorDate: 2023-08-10 14:41:21 +0000 Commit: Kevin Bowling <kbowling@FreeBSD.org> CommitDate: 2023-08-17 00:30:32 +0000 igc: sync srrctl buffer sizing with e1000 Approved by: grehan Differential Revision: https://reviews.freebsd.org/D31493 (cherry picked from commit 0eb8cd1de26849cbaefaf3bc59aa9612fa0dfa52) --- sys/dev/igc/if_igc.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/sys/dev/igc/if_igc.c b/sys/dev/igc/if_igc.c index 826a35e7e15e..49d4755d057c 100644 --- a/sys/dev/igc/if_igc.c +++ b/sys/dev/igc/if_igc.c @@ -1986,6 +1986,7 @@ igc_initialize_transmit_unit(if_ctx_t ctx) * Enable receive unit. * **********************************************************************/ +#define BSIZEPKT_ROUNDUP ((1<<IGC_SRRCTL_BSIZEPKT_SHIFT)-1) static void igc_initialize_receive_unit(if_ctx_t ctx) @@ -2051,24 +2052,19 @@ igc_initialize_receive_unit(if_ctx_t ctx) igc_initialize_rss_mapping(adapter); if (if_getmtu(ifp) > ETHERMTU) { - /* Set maximum packet len */ - if (adapter->rx_mbuf_sz <= 4096) { - srrctl |= 4096 >> IGC_SRRCTL_BSIZEPKT_SHIFT; - rctl |= IGC_RCTL_SZ_4096 | IGC_RCTL_BSEX; - } else if (adapter->rx_mbuf_sz > 4096) { - srrctl |= 8192 >> IGC_SRRCTL_BSIZEPKT_SHIFT; - rctl |= IGC_RCTL_SZ_8192 | IGC_RCTL_BSEX; - } psize = scctx->isc_max_frame_size; /* are we on a vlan? */ if (ifp->if_vlantrunk != NULL) psize += VLAN_TAG_SIZE; IGC_WRITE_REG(&adapter->hw, IGC_RLPML, psize); - } else { - srrctl |= 2048 >> IGC_SRRCTL_BSIZEPKT_SHIFT; - rctl |= IGC_RCTL_SZ_2048; } + /* Set maximum packet buffer len */ + srrctl |= (adapter->rx_mbuf_sz + BSIZEPKT_ROUNDUP) >> + IGC_SRRCTL_BSIZEPKT_SHIFT; + /* srrctl above overrides this but set the register to a sane value */ + rctl |= IGC_RCTL_SZ_2048; + /* * If TX flow control is disabled and there's >1 queue defined, * enable DROP. From nobody Thu Aug 17 00:30:59 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RR5X40hnzz4mQsX; Thu, 17 Aug 2023 00:31: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 4RR5X34r8bz4Tf8; Thu, 17 Aug 2023 00:30:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692232259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Oh+1pS38PdRpd/YXNx6y5ObiHeDcXmky12EUL3+wTGg=; b=YrqM3tOIgpc9nROkAOxU4oVxhx9oV/FdEbMXbKcEMCsuLB94E2lpTop+45pUANgIuQPv5+ e+J4cvxJMbMy5W5+DBWMKZPiUbmoFbvrtO49v1AgT3IDO6/WvxCYO0rasG+u9a5VLQE6vp Fcj+Fe2g+Cs26LeJvxPJw6cQnpGYsC6Iwkk5ncu8VF7ZMBHOUZXd2W3czZ9qf67zxHNZjn Ehd/k0zY4UoJZjtwreiIuqE+gX/73BMjEVuSmF7MGVW6mCSvScnXucI7HsfKWAYU2Y0L1s k1GnW/F5itNePIw2zcFyYHMYd0HQnMS6OBRMHUNK93wrmTMSR+9rvESQLMP9Gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692232259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Oh+1pS38PdRpd/YXNx6y5ObiHeDcXmky12EUL3+wTGg=; b=ZtRq7YiWurLVVXOHVMAi+Jh1zSe1TTHUfzYYrEQphFQZg1cP7pldxuJYrSqZd3zjmq+VSO WtbmIt8HdJydJOr5LoxCGDakflgzESF43hCcPGcx0LS1OC/jUJ/dov2usKbgFA14tFSytW PQkrcTR6qgAJEjZDVDxkc42Xxh5TWDsG9kqUg8qhBQ2eYDS8oyeOb2k5arh1eNj/urnZ5J JZDaT286el5FWPrPoXsWZa6j6KNiBBn25NBEeHpZZIqFkooHS01ZqnHcqxL1HEwCwnaDlG v80ryjvFDCdI5nXhmRNKtyQz7WOEMAzYm/sF9FaLRsEzWrZOTl4eU2ITrfay4g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692232259; a=rsa-sha256; cv=none; b=jKEDU0P5K0XGGDK8w2Rn9/22vc0c9jp1+RTrVX5o/wwb3e/lmv2mRvEbdIkT+OkPxNMGs4 I3U6IuulF01vhU1kwQYR2WCLLRw6ZAkWHXBWRzUefql1RW8ZvZsjaCQBQz2kbBBCUGriex YVvqABQ+F8pv/k7xKSOobH3gAbeOzRiNI66z4KxHh3XD10XjEnDpQll4ZFuwg7frHwDQH0 OPsYC4NDh5icfFxw+Ll7SD7aY9z/ez3aK/zluBgDXI9p4B8z23JkoivBNW++pWo4zjZx36 +UU8WOVXodXCd2JWXgzM7nqxQaNin5NXGUankqnepwmEI1uTO0E3fS7JrfPTzQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RR5X33KRXz1C9R; Thu, 17 Aug 2023 00:30: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 37H0UxlJ037375; Thu, 17 Aug 2023 00:30:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37H0Ux5U037371; Thu, 17 Aug 2023 00:30:59 GMT (envelope-from git) Date: Thu, 17 Aug 2023 00:30:59 GMT Message-Id: <202308170030.37H0Ux5U037371@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling <kbowling@FreeBSD.org> Subject: git: a6b804a4f6f4 - stable/13 - ixgbe: Check for fw_recovery List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a6b804a4f6f499a63f428f73fba67ea8ccacb07a Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=a6b804a4f6f499a63f428f73fba67ea8ccacb07a commit a6b804a4f6f499a63f428f73fba67ea8ccacb07a Author: Kevin Bowling <kbowling@FreeBSD.org> AuthorDate: 2023-08-10 00:31:49 +0000 Commit: Kevin Bowling <kbowling@FreeBSD.org> CommitDate: 2023-08-17 00:30:47 +0000 ixgbe: Check for fw_recovery The x550 uses an upgradable flash code. Check for recovery condition like other flashable intel cards do in case of fw errors. Differential Revision: https://reviews.freebsd.org/D31869 (cherry picked from commit 8b4a3fbdd57215cffde530e2fa3098c272a985fe) --- sys/dev/ixgbe/if_ix.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c index 150fdff03d05..4245f4f08eb7 100644 --- a/sys/dev/ixgbe/if_ix.c +++ b/sys/dev/ixgbe/if_ix.c @@ -921,6 +921,15 @@ ixgbe_if_attach_pre(if_ctx_t ctx) goto err_pci; } + if (hw->mac.ops.fw_recovery_mode && hw->mac.ops.fw_recovery_mode(hw)) { + device_printf(dev, "Firmware recovery mode detected. Limiting " + "functionality.\nRefer to the Intel(R) Ethernet Adapters " + "and Devices User Guide for details on firmware recovery " + "mode."); + error = ENOSYS; + goto err_pci; + } + if (hw->mbx.ops.init_params) hw->mbx.ops.init_params(hw); From nobody Thu Aug 17 13:02:59 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRQCm0Nj4z4qdt1; Thu, 17 Aug 2023 13:03: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 4RRQCl6cnbz4h0V; Thu, 17 Aug 2023 13:02:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692277379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sSpH0zC/SGVq0m6HXHBfb6NXg/wSH4BmDMJf9TUgYc8=; b=cPgklM5rCjtvrEOUzzhr8CTqifPRK1CYlbLjg5LsNEzrpnGCVNK4qLCexSOPdzt5C4p/7l DfvFsTaYwJ4Nj1rPyC2hDmcY5Jp2Z7wLQs+Hlk9Ax6ojovmD6Iq2owrFbhDiWSX6hjrDTZ tEJ+5gCX0eF1BjTc3JXWi++NF5eYe7jR2a6VRswKy0J68JFokavW2CIuLwycOEDkjQ7/g/ /cYJSflWGWFF9D5PLK6KUFEnZ2mp2uDqcZMt2RQogI2bQDoW7EkCiscnGEaXwoITsfhIbk IpMGyg1BOeNUNfvDnGMstRxu+F1bA0ipp/0+FMueqSq8TsvbfptZRR5hgVO1zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692277379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sSpH0zC/SGVq0m6HXHBfb6NXg/wSH4BmDMJf9TUgYc8=; b=FvJzoDwCGXXma8ihlbqmneovpG1Fhz3xPNLAco9c41tG+70voI9B8ZrRaU4yqpfrcq3dO5 e/VuwQuw8uOoXQ7+6LTK5RrZZwpxiEk1DZkgZBHp3YE/Bu7RRfEinzqZ7ML6YK/j5aS6EQ WkACIDTG89uc4cgq+sVhd2PGB58fG8ELGR7LQCuZHMvsR6WWlq/X+YmyVG8I8V8E7wOibv dpSELvFLU/UCO5eNec2Nwh0zOTBDLSYmutS71O8Hf1BQtazUOklkE84fEAg3a5TihWQxwL kxyeymegOn5Y7Oz/+sO+6ZvLCsjJk7DXqFeB4A0jx7jHHzsQSqHF3U+igF/EYg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692277379; a=rsa-sha256; cv=none; b=JMxtfYtGZ0Lb43lYIFlPAs34scy0okOGRfp6CLO8iR2oPGm0aiApFNr4nkmVCtaYmaegF6 JKHzOSlpqgm+f/Gzr9JlMXvvNFhzy+B9/ft8z9AgLpyoNhT5QhKXk+q1MfkOCNDV0VrBVi q25tsMTKI0+L3CfmWAYj1HwYlHF3H4x6TdhEVt0C9wI+VfqYZSg/zEBERcUFjinh6Bab07 eVAIVMoG78z8F1y1i0t8DwmkrBdEjQYExng9DYYEZYXJyDSgjxfTVii1+5WlRigTmG/AKJ rQP+hCW8lDHtxZDR0DNIZ0d11RdO5HfFsvPtZozVl0iz52JM+7SZAdRiJBvEfA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRQCl5dThzZgH; Thu, 17 Aug 2023 13:02: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 37HD2xPD096711; Thu, 17 Aug 2023 13:02:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HD2xe7096708; Thu, 17 Aug 2023 13:02:59 GMT (envelope-from git) Date: Thu, 17 Aug 2023 13:02:59 GMT Message-Id: <202308171302.37HD2xe7096708@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 3152cbdd1657 - stable/13 - bhyve: don't panic if e820 finds no available memory List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3152cbdd16572e0580588b349165c680ce8bc87b Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=3152cbdd16572e0580588b349165c680ce8bc87b commit 3152cbdd16572e0580588b349165c680ce8bc87b Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-09 12:32:33 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-17 12:58:04 +0000 bhyve: don't panic if e820 finds no available memory The GVT-d emulation tries to allocate some specific memory. It could happen that this address doesn't exist. In that case, GVT-d will fall back to allocate any address. Nevertheless, this only works if the e820 fails with an error instead of exiting on an assertion. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40034 (cherry picked from commit 99aeb28b2f7e28c516dd6434db63a9bc1c1f3218) --- usr.sbin/bhyve/e820.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/usr.sbin/bhyve/e820.c b/usr.sbin/bhyve/e820.c index 6c43e6eda3a5..99a66645f70f 100644 --- a/usr.sbin/bhyve/e820.c +++ b/usr.sbin/bhyve/e820.c @@ -197,11 +197,17 @@ e820_add_entry(const uint64_t base, const uint64_t end, return (0); } - assert(element != NULL); - /* Non system memory should be allocated inside system memory. */ - assert(element->type == E820_TYPE_MEMORY); - /* New element should fit into existing system memory element. */ - assert(base >= element->base && end <= element->end); + /* + * If some one tries to allocate a specific address, it could happen, that + * this address is not allocatable. Therefore, do some checks. If the + * address is not allocatable, don't panic. The user may have a fallback and + * tries to allocate another address. This is true for the GVT-d emulation + * which tries to reuse the host address of the graphics stolen memory and + * falls back to allocating the highest address below 4 GB. + */ + if (element == NULL || element->type != E820_TYPE_MEMORY || + (base < element->base || end > element->end)) + return (ENOMEM); if (base == element->base) { /* From nobody Thu Aug 17 13:29:31 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRQpN1ZjGz4qgHv; Thu, 17 Aug 2023 13:29:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RRQpN0zs2z4jYG; Thu, 17 Aug 2023 13:29:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692278972; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=m7ePx43WafxkO2Zaizyxktaba5T/5g3cpsw33bJRaZg=; b=rZa5W0LD13DBoI44hSWxvoSmqHYd51Dk5/aVgHz80zr4Js0XzgZPBzlz/IMGfpuoVLBjp4 M7X0dpwPxoLVAjPTy0pHPBgKEFmNevXdOdcZ8qngzY3e2adaKiFd4zs+DPFR8gYrlPbW2G AN5Dyov6nnBbBX5n3tDvbXdnJgFmmRSmNj3VVxQprIsjro7uLcbJB3EBZ89nm9i5EQDszl wTMpnvbIyyto8dgQmFy0WPg0oSXkgaAPpzbO3USWbMDjK2NXTMMGpEhCk7IRBHiYmcWpE1 IiY7A8/uitl5O29pdpzQ4ooNfQ99xdTPtOGARofrJN4TTVq7IEdwasZ62+jiPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692278972; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=m7ePx43WafxkO2Zaizyxktaba5T/5g3cpsw33bJRaZg=; b=MwqFmYqlHaYhT1WYvXmV1dBZStjbekHmMwgDpspB1w31M3x/k1El3DM+TxeiM/sBp2/mSa C1vU8wOTA/oEKFmuPfXFhPRGhd1iOC58MkQvkjfyEEz80nJO9H7MbfQ48wl8oQOo3eUTiq rp4/OPf80iX+971iAyjoGCmQI5Wpv3vU/dDy7r42VLGJuF57b8Y1VPmrmJ6XRYvB+pABqs 4wfoY5I9ffOVRKKq5TEGomI41ku5WrW+k4pbD/PoBd7ItF7QqSvLEUnfSInfkrAGzDmSIK XyKcfEIWo/7IAiHZ8qBMZJYnhNZ5TMkv0U2s+50Kyc7qx3xl9QbrSQKPuslKDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692278972; a=rsa-sha256; cv=none; b=NZ1v1F0ZuYMTZur7tYNItf4nlmasHlaXebsqoAaSv4PaNbpfVpx5q0xTKBS4K+ShXVGS5v ZTmFeRhjUW2QVmuCvpaaWL6YPauBadsWhnLmavXT3+rvPYbCnZGEoBWdtrTSYuveG4KigU 25GYmd24U3/4GXa3qlIazJGDtQNtkg/gIzy02DlUmQ5F5sS7L30YSY6cQmr9Styy/JOa7c VNGueMCy0xdlNJQ9Af8fb+3iu6SAeaIqcGXqhCkBSd6fEHz9KG4UGFwwPW9moa5FJ2XOpq kJsGqIjypGr1VIRqlCc2nwkMkHLekao3Hw3cwVjrb+2VpCu8B5RTHFHw8/FqxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRQpN00fSzbk7; Thu, 17 Aug 2023 13:29: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 37HDTVsX030652; Thu, 17 Aug 2023 13:29:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HDTVsp030649; Thu, 17 Aug 2023 13:29:31 GMT (envelope-from git) Date: Thu, 17 Aug 2023 13:29:31 GMT Message-Id: <202308171329.37HDTVsp030649@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 82eece443ee3 - stable/13 - bhyve: fix vCPU single-stepping on VMX List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 82eece443ee3eed9a04481e7127271985734ddff Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=82eece443ee3eed9a04481e7127271985734ddff commit 82eece443ee3eed9a04481e7127271985734ddff Author: Bojan Novković <bojan.novkovic@fer.hr> AuthorDate: 2023-05-09 07:02:04 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-17 13:06:29 +0000 bhyve: fix vCPU single-stepping on VMX This patch fixes virtual machine single stepping on VMX hosts. Currently, when using bhyve's gdb stub, each attempt at single-stepping a vCPU lands in a timer interrupt. The current single-stepping mechanism uses the Monitor Trap Flag feature to cause VMEXIT after a single instruction is executed. Unfortunately, the SDM states that MTF causes VMEXITs for the next instruction that gets executed, which is often not what the person using the debugger expects. [1] This patch adds a new VM capability that masks interrupts on a vCPU by blocking interrupt injection and modifies the gdb stub to use the newly added capability while single-stepping a vCPU. [1] Intel SDM 26.5.2 Vol. 3C Reviewed by: corvink, jbh MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D39949 (cherry picked from commit fefac543590db4e1461235b7c936f46026d0f318) --- sys/amd64/include/vmm.h | 1 + sys/amd64/vmm/intel/vmx.c | 7 +++++++ usr.sbin/bhyve/gdb.c | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/sys/amd64/include/vmm.h b/sys/amd64/include/vmm.h index 29797ad04e0d..84b689dd7391 100644 --- a/sys/amd64/include/vmm.h +++ b/sys/amd64/include/vmm.h @@ -500,6 +500,7 @@ enum vm_cap_type { VM_CAP_RDPID, VM_CAP_RDTSCP, VM_CAP_IPI_EXIT, + VM_CAP_MASK_HWINTR, VM_CAP_MAX }; diff --git a/sys/amd64/vmm/intel/vmx.c b/sys/amd64/vmm/intel/vmx.c index 3a0693a29e80..9c2672c9ae23 100644 --- a/sys/amd64/vmm/intel/vmx.c +++ b/sys/amd64/vmm/intel/vmx.c @@ -1439,6 +1439,10 @@ vmx_inject_interrupts(struct vmx_vcpu *vcpu, struct vlapic *vlapic, uint64_t rflags, entryinfo; uint32_t gi, info; + if (vcpu->cap.set & (1 << VM_CAP_MASK_HWINTR)) { + return; + } + if (vcpu->state.nextrip != guestrip) { gi = vmcs_read(VMCS_GUEST_INTERRUPTIBILITY); if (gi & HWINTR_BLOCKING) { @@ -3634,6 +3638,9 @@ vmx_setcap(void *vcpui, int type, int val) vlapic = vm_lapic(vcpu->vcpu); vlapic->ipi_exit = val; break; + case VM_CAP_MASK_HWINTR: + retval = 0; + break; default: break; } diff --git a/usr.sbin/bhyve/gdb.c b/usr.sbin/bhyve/gdb.c index 6c1315a8371d..03f684e002ce 100644 --- a/usr.sbin/bhyve/gdb.c +++ b/usr.sbin/bhyve/gdb.c @@ -795,6 +795,9 @@ gdb_cpu_resume(int vcpu) if (vs->stepping) { error = vm_set_capability(ctx, vcpu, VM_CAP_MTRAP_EXIT, 1); assert(error == 0); + + error = vm_set_capability(ctx, vcpu, VM_CAP_MASK_HWINTR, 1); + assert(error == 0); } } @@ -845,6 +848,8 @@ gdb_cpu_mtrap(int vcpu) vs->stepping = false; vs->stepped = true; vm_set_capability(ctx, vcpu, VM_CAP_MTRAP_EXIT, 0); + vm_set_capability(ctx, vcpu, VM_CAP_MASK_HWINTR, 0); + while (vs->stepped) { if (stopped_vcpu == -1) { debug("$vCPU %d reporting step\n", vcpu); From nobody Thu Aug 17 13:29:33 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRQpP2fwJz4qgHx; Thu, 17 Aug 2023 13:29: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 4RRQpP20Qvz4jYW; Thu, 17 Aug 2023 13:29:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692278973; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eW4keyDRKKjDpuvBQrnfYv0dJsUgLOsS18lyN37WS/4=; b=Fw3jocyS5zVMhYbLI94ZZKLHEpBWJPiIZBQDEaPXAHSx66yHFGwQCwaZtK1m47V447NKhy 8L61nqQGtGOQMI1iWVFdchNe97Rty76VZJpqvmc5rTLY571BkQRPE5sKUHS5VqLJVPWVja 3NZGxENQ5hlboCZs247m5IFe92TzOqU5gcwvcJvThSMOXjTy2lU0ZJGoTZ/bqJxO/X3Z9R HZcreNiKlYK7KGtiJzREm6JXDeT3xZX6DwgFHY72BtUAxGh7sQrTe16IwBRDxUf1+xJuSa zLRyzP7JX/pPofYHOwiLFEMYldpyh2/9YdRCFzZXAgm0hR12//rZ2QDuaPAFlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692278973; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eW4keyDRKKjDpuvBQrnfYv0dJsUgLOsS18lyN37WS/4=; b=O80N2d7h+LyBGVyHhMjsjqDgfMcLKhVjI6nqH8D/nyElpn+zMsN3jw09pS8xHBOc9WQGgJ X/9AnXgrRgRvbYAbYlFWdVEDFzgjN4wTVBGOxRdvOIlddKGpjqcKAlU3VDSsjB9MazIR/y dTN8qhq4Nie5105F2gy/mxnulZo69C7MkzGfFj0FEVhgVHM/9Cs3hDPM9j4E7+f1k7QBRs zLZH3qRjeKuiuRi6CSNh8QUVn00RsrQPnqCNt67pkT9nOh0atObTSdZaQPBZuVDX41OvaE y69n2xdCkpfq2lEnvSHYXKRKOAajEWeGM3YJKD+LMEVzxC7nyplbkiRFKleP9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692278973; a=rsa-sha256; cv=none; b=k7zKSAshjkqXJYJOuBbqyooorphdF/iB6JMb0ycSUoBZBbGlP5PQw/5gevOBt4p1i5gUWr LJFCM8YMqN2zV/PdvoBvSc92Cgl6fY/+9+00+Dm9KCHoEJ3sqF2aJysOtmKT29pPWg3lIG 3jYvN7oGz5vjw3QLbXmwzN7EFmk8QPtd954fzTmdmXwE5clcXLNuQbtGMfUjM+d4irvto9 qsn7TmxOsn9eLdrVVDmahekVbcpbrE3hfdeD7GcxxfLGNKFxZBX6kEIM5JKwWD7kMKXVhm nDi/BG3Ih4C31vvDWzAMhwnA7x9959BYeJRddeRp74HneAFcXV23KeqN9z0AMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRQpP0ylyzZyh; Thu, 17 Aug 2023 13:29: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 37HDTXl8030713; Thu, 17 Aug 2023 13:29:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HDTXQJ030710; Thu, 17 Aug 2023 13:29:33 GMT (envelope-from git) Date: Thu, 17 Aug 2023 13:29:33 GMT Message-Id: <202308171329.37HDTXQJ030710@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 320ce3c3c56b - stable/13 - bhyve: Remove vestigial support for setting max vCPUs. List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 320ce3c3c56bb0b52236d67c995a9d669e7a5bd2 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=320ce3c3c56bb0b52236d67c995a9d669e7a5bd2 commit 320ce3c3c56bb0b52236d67c995a9d669e7a5bd2 Author: John Baldwin <jhb@FreeBSD.org> AuthorDate: 2023-06-12 10:47:35 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-17 13:06:51 +0000 bhyve: Remove vestigial support for setting max vCPUs. The kernel part of the hypervisor is not going to support per-VM maxcpu limits. The topology is only used to control the values returned by CPUID leaves for which max vCPUs is not relevant. Reviewed by: corvink, markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D37176 (cherry picked from commit bb1770105022e7d65bef0f32988c08ee9676b68e) --- usr.sbin/bhyve/bhyverun.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c index 14a4eb9cabec..63ca9439d6e6 100644 --- a/usr.sbin/bhyve/bhyverun.c +++ b/usr.sbin/bhyve/bhyverun.c @@ -293,10 +293,6 @@ topology_parse(const char *opt) set_config_value("cores", cp + strlen("cores=")); else if (strncmp(cp, "threads=", strlen("threads=")) == 0) set_config_value("threads", cp + strlen("threads=")); -#ifdef notyet /* Do not expose this until vmm.ko implements it */ - else if (strncmp(cp, "maxcpus=", strlen("maxcpus=")) == 0) - set_config_value("maxcpus", cp + strlen("maxcpus=")); -#endif else if (strchr(cp, '=') != NULL) goto out; else @@ -1136,8 +1132,7 @@ do_open(const char *vmname) exit(4); } } - error = vm_set_topology(ctx, cpu_sockets, cpu_cores, cpu_threads, - 0 /* maxcpus, unimplemented */); + error = vm_set_topology(ctx, cpu_sockets, cpu_cores, cpu_threads, 0); if (error) errx(EX_OSERR, "vm_set_topology"); return (ctx); From nobody Thu Aug 17 13:29:34 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRQpQ3ZNPz4qgFQ; Thu, 17 Aug 2023 13:29: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 4RRQpQ2tFHz4jvT; Thu, 17 Aug 2023 13:29:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692278974; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D4l6eSc8+JPUi5CGDCCUqk1n1j+sFkqULVc9IrLLBQI=; b=ks02CuX9Dh00fynGCwlA+whHEMRl9uFYeOKzwO5rm3+xEGa7GJbQB2goOS+gn9f5U2OEu3 Qlg/iKH9NxvLvgnGWFCakbgoXxyA2BQ1s+YSj8QZJkd7HGWWWIFjygmZ8qmNNRALdSLknz g4qAYiq0gpduCXaZD03pUju3rbYi0drJ0x2jUHgkMts9asb2hT1gLO6GtXLUCRPpjt4QD/ b2PbtnNsA7GhxC5zOOP92dbFYs/exMsJesMEjqBhu/XPuWt8MQebqLfUBD0xgwo3knop8t 5G5BuvCdTykSj4plxFCw1vskMB8YGCY8WrZQ2I7/7NGZfUtOLReda7TaNKlybQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692278974; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D4l6eSc8+JPUi5CGDCCUqk1n1j+sFkqULVc9IrLLBQI=; b=tgpvyZmqFu9ClvkPMdI8F3zWlMH7l9mg+TXZwymKY4M38TsRQ0UD8paMkMbCIX/f9tw14N sbPdBvZJ0KS5Jb2exkJ2HAuYkRms60VdsNcMcBugPYvlNIdoHJK0yFiyj9H923PAKQL4LA Uaz7SuG8G2WBxg/TJJ1ccuGMjssDHxwZQR7Tvme/juFyxgXV8/xgxqTUbbV8XkHvFn6KVY KGrbXeUYDZ37k5Ay1zVfRiyvN3c+pcPBB5/C3el/oUwyP0fg2p+zIpKC/5YctGeaywG7zO 1yGy1gJm+bUYcPiJSzRiDSnrAOkMdfqpspZV44Ss6oCE3epbOuFudI1q28mf7g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692278974; a=rsa-sha256; cv=none; b=oquY3yGSaVJPMrAzTkI9OtlNF5vaz29GWsl3i/a6YIEphBG5GlkvsVNX6Z9RMZ8tdUMPA6 cOjjBWoaNapnkLzPT9dRdzfhHsqW4FkSq4PGQzoaBN00VFza8JdRnAgvZmsjsUSnz/7+8p x2n2hY54GKyGi6C5cfhR0GMF51aU1LiSlXdJOEITjjkSTV8muETXQyfeWHPkW9YeIztoYj u1pJw4bvvOx8WEklIyXiVbEr2Za7hVaVvUa/uhHni5U9h7ji7i1SBUkeuPrBvK4pXM7j+H Q6ogv/Hfj7zfCWVRiKurX+SsbUIkuY1IOphPebkKLQXcRxAuYOgFm4ySQUNeZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRQpQ1yfnzbsQ; Thu, 17 Aug 2023 13:29: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 37HDTYKN030754; Thu, 17 Aug 2023 13:29:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HDTYAI030751; Thu, 17 Aug 2023 13:29:34 GMT (envelope-from git) Date: Thu, 17 Aug 2023 13:29:34 GMT Message-Id: <202308171329.37HDTYAI030751@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 1fb7c59981bc - stable/13 - linuxkpi: advance platform_device List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 1fb7c59981bc5d4c522521df067caaaa85c42cdb Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=1fb7c59981bc5d4c522521df067caaaa85c42cdb commit 1fb7c59981bc5d4c522521df067caaaa85c42cdb Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-01-31 08:18:38 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-17 13:06:53 +0000 linuxkpi: advance platform_device These are required by some linux driver like: https://github.com/beckhoff/bbapi Reviewed by: manu MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D39554 (cherry picked from commit 740d76544ad8a59f1be53584a0aa5bbbe00833ee) --- sys/compat/linuxkpi/common/include/linux/platform_device.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/platform_device.h b/sys/compat/linuxkpi/common/include/linux/platform_device.h index f45cdce829c4..0d7aebfa4037 100644 --- a/sys/compat/linuxkpi/common/include/linux/platform_device.h +++ b/sys/compat/linuxkpi/common/include/linux/platform_device.h @@ -34,6 +34,9 @@ #include <linux/device.h> struct platform_device { + const char *name; + int id; + bool id_auto; struct device dev; }; @@ -78,6 +81,13 @@ platform_driver_unregister(struct platform_driver *pdrv) return; } +static __inline int +platform_device_register(struct platform_device *pdev) +{ + pr_debug("%s: TODO\n", __func__); + return (0); +} + static __inline void platform_device_unregister(struct platform_device *pdev) { From nobody Thu Aug 17 14:07:30 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRRfB4mhtz4qhy6; Thu, 17 Aug 2023 14:07: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 4RRRfB4GJJz4mj8; Thu, 17 Aug 2023 14:07:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692281250; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qXp4KN7qg6duBg5nf+VSqN14PHHq3MNkjfbwPLZUnXk=; b=HSqokwdMzdHLPKir5lSPV+/LyUCXX9clO8KTzEAWClHiys92KHVDo6NFUInC5lE3Ayi0o2 mh/qPZDKSFgidn7EkMVwnkN5oeW/jj05DIlRvNwrzGPRsTNO1gGRQ5+3v7zqk6/4OaT7IN YTmr/NqdsiwEbEp0xa5l6Pn6gtfYRnuy8mPgYXtTy8igXdoHkX2gZ/kU3NnjMg1uVMnfS9 bsm1u/oX41ypn6QWdx681pWczCk54qRDq5qJdqc/keFWc4DxglRG5M5/5WFcTBBEI4T4OC JDypnEYjGw3mQy5DEZHsWbRk+j9n3n9cAjAH+l76LgsJrzcwLN7n33r7bIlfqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692281250; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qXp4KN7qg6duBg5nf+VSqN14PHHq3MNkjfbwPLZUnXk=; b=IUYjhIAX9iFY01J2n1kud5LdMwRlg56uPhto036VzAiQOFJKSzZRK/jlZY2nQzYFXR9B1K P5FfVcQQ2kOped95ugDcTNO5nYsDIDa58XVbSMJ1AA2JKd4hRwbQ7zKWWmKSo32b3DLq0T J4wqB4FUu1f4h0wR2gLPwVTBDyg9oWg6m3uW05sPBrIcVHpvzWQjiBf4mNZG14Xn3zwkGV DkZ1HM9zZiISHSN9JzYh3f1JsYx7fPdLrOzbYbnVGoDqz0Vk7SqKx4tgHPGc/HqybqMWjo R3SbAAj+myBDITiM7YEbYZYVTZeS6UndJ/LcIfhYaPkMgpINLAidQQwlS1bnQw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692281250; a=rsa-sha256; cv=none; b=pXD+RqAWpX78a+L/VESY20lKFWcfvWaUQB596qrb1p4iZOAO8PFV38znYP862g+HfXG3EE d0HIpTg7Rzp6UAAojPKadJO0XX9hWwSSX/u6F6EOKFCfNBvjVPra0ww0qM0zb6eJxildSz Gf4NmgHXcAV16y2b5W56ZHc9gbeIaj12kJKUuTZAzETlhiwIRm5VxDQxv66eGp4G/Wyra5 5fFJrTxb21nH7or4rf+5Oh9+r8XcPweoL2MGjN/iwV2eh+H1+qCyav3jO/K/8kV3Ko8CvH 1ShpHuVmNnv4fcrFPNlbvu0cdL53421UBgVfdO2D2P8MhbYcAEGddKR6xK6vaw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRRfB3K4Vzclw; Thu, 17 Aug 2023 14:07: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 37HE7U98097159; Thu, 17 Aug 2023 14:07:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HE7Uil097156; Thu, 17 Aug 2023 14:07:30 GMT (envelope-from git) Date: Thu, 17 Aug 2023 14:07:30 GMT Message-Id: <202308171407.37HE7Uil097156@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste <emaste@FreeBSD.org> Subject: git: 044dfb356bb6 - stable/13 - msi: report error for attempt to use APIC ID > 255 List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 044dfb356bb6481af4de4ed0f7ef04c3b638bf71 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=044dfb356bb6481af4de4ed0f7ef04c3b638bf71 commit 044dfb356bb6481af4de4ed0f7ef04c3b638bf71 Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2023-08-08 23:42:09 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-08-17 14:06:39 +0000 msi: report error for attempt to use APIC ID > 255 The MSI/MSI-X address includes 8 bits to encode the Destination ID. Previously IDs over 255 overlapped with the fixed portion of the address, resulting in an invalid value (and a nonfunctional interrupt). Instead, print an error message and return EINVAL. The interrupt will still not work, but the user will have a clue as to why. PR: 273022 Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D41395 (cherry picked from commit cbf845052f1c2862a64e66dbaf38e887a7592474) --- sys/x86/x86/msi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/x86/x86/msi.c b/sys/x86/x86/msi.c index f85d4a5161e5..de8f42c0fa68 100644 --- a/sys/x86/x86/msi.c +++ b/sys/x86/x86/msi.c @@ -620,6 +620,11 @@ msi_map(int irq, uint64_t *addr, uint32_t *data) mtx_unlock(&msi_lock); error = EOPNOTSUPP; #endif + if (error == EOPNOTSUPP && msi->msi_cpu > 0xff) { + printf("%s: unsupported destination APIC ID %u\n", __func__, + msi->msi_cpu); + error = EINVAL; + } if (error == EOPNOTSUPP) { *addr = INTEL_ADDR(msi); *data = INTEL_DATA(msi); From nobody Fri Aug 18 00:33:18 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRjXG46lCz4qNdD; Fri, 18 Aug 2023 00:33:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RRjXG3Pgqz3Gpr; Fri, 18 Aug 2023 00:33:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692318798; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4hlUqt1PIXafAPoMNE0UI7k4OBUzTpcTTBss4tMyjfw=; b=bg6yOwwxJo1L6L0w6cN+ZsLgSsv9y1wLRjY/v8c/w2Tx1LPUgRG/b0ofTZiTOH8+HUi2JT EGL/rWcRTwibjtv0WpgFTaoMn30MXZCagO2uI5+KemWyQjwf5h065kaIOYAQ+xuF4D+tb3 VcAor14eJwwqME2oLJl6OBMaQkv0ua25aYpVMuW+wGUKZo0An70ZrA9hyjGE+1L1nEer9f eSNzoPSutYi2/K33GM0PpwhzyMQVo1jm9j35RqDxAAoIdMD+hZ8O3wD1TsSBEETVdYQgBR gsjfclv529+AzK5eKjn3MKk1Yxm6Coy+eXOKN/XX6B1IGHxPmQQkZzpJNqjaow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692318798; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4hlUqt1PIXafAPoMNE0UI7k4OBUzTpcTTBss4tMyjfw=; b=YiHdS8eixwNgzZeirxSdzp5r14Zy06ezpYSaNirvdPoHVMdqkHLmw5m2oaVLvKW0cFbhPI 2tAnasGXT2If6/ovqe//Snu8QcUf1QmCS798COBeqX0jf56ltHKm4U7Kb4rHHFjEannHsc 9aHLXYAiJvHThqJWd6Txyhm5NNcn2RkY1l7rNQfsrm63eu0vt/8V3Ug7IIMe08udVUP818 Ot1Z4Lx1/WagmeQORZPw+VaVbwys2ZKnDFCq4rVulsWbBaYZuaiSJk6Tp5yBItFX4d7YzY ip54hyvWjpD9cwfXxOHiRCjVOmqMUx+tQZAXo6fiX0WjHOEl4uSS4y29tMPmVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692318798; a=rsa-sha256; cv=none; b=S1B5z8YgPTMSh8IhhIL3DtgIW2150XPgapnju4WVJir20qUk9Z0XqeEWphHNYjaR85T5oJ Q7fFQ96dgEiGygX9Ts0xMdC5/mstpOd7juj9ATUXGaPympB/B06umbRYSMl925nLh0FmAJ /u/kOFU9ywL6NzsYQwbQTW6po1IVoCs+2sF+3zTNsR46E0Bvr1XM89lCJBMfFkk456dUh2 VtQ0HQseihHZmZQ1KbeVBbSSQnoJoxoP9SjyNJh31iUGf6KKI57o9E+RprwrtPAk0tUW75 CGuzQCfIZt7He2PsNeKOd97tTU4PrAA01NX5iDaXRMYzotuEy/3b5m1ujsoTwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRjXG2QLWzvML; Fri, 18 Aug 2023 00:33:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I0XIaQ046225; Fri, 18 Aug 2023 00:33:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I0XIBW046222; Fri, 18 Aug 2023 00:33:18 GMT (envelope-from git) Date: Fri, 18 Aug 2023 00:33:18 GMT Message-Id: <202308180033.37I0XIBW046222@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling <kbowling@FreeBSD.org> Subject: git: 3bbf655b2826 - stable/13 - e1000: Fix off by one ipcse List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3bbf655b282690a70051f386c64aa95430b5fb64 Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=3bbf655b282690a70051f386c64aa95430b5fb64 commit 3bbf655b282690a70051f386c64aa95430b5fb64 Author: Kevin Bowling <kbowling@FreeBSD.org> AuthorDate: 2023-08-15 21:37:43 +0000 Commit: Kevin Bowling <kbowling@FreeBSD.org> CommitDate: 2023-08-18 00:33:08 +0000 e1000: Fix off by one ipcse This has been off by one in the FreeBSD drivers as far back as I've looked. Emperically HW and SW emulations I have available don't seem to mind. Noticed while debugging other issues. (cherry picked from commit eac761e967b34066aa7183474249df87d79a2f32) --- sys/dev/e1000/em_txrx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/e1000/em_txrx.c b/sys/dev/e1000/em_txrx.c index b90ab21cd825..765458d621f9 100644 --- a/sys/dev/e1000/em_txrx.c +++ b/sys/dev/e1000/em_txrx.c @@ -290,7 +290,7 @@ em_transmit_checksum_setup(struct e1000_softc *sc, if_pkt_info_t pi, offsetof(struct ip, ip_sum); if (csum_flags & CSUM_IP) { *txd_upper |= E1000_TXD_POPTS_IXSM << 8; - TXD->lower_setup.ip_fields.ipcse = htole16(hdr_len); + TXD->lower_setup.ip_fields.ipcse = htole16(hdr_len - 1); cmd |= E1000_TXD_CMD_IP; } else if (csum_flags & (CSUM_IP6_TCP | CSUM_IP6_UDP)) TXD->lower_setup.ip_fields.ipcse = htole16(0); From nobody Fri Aug 18 00:56:48 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRk3N5VH8z4qPxD; Fri, 18 Aug 2023 00:56: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 4RRk3N51L4z3JPL; Fri, 18 Aug 2023 00:56:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692320208; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0LTxpd/O6SRTx3OKhMfHqi+1CuqR+yie7Uh2Vus3f6w=; b=XTzMofhXxVqaGqfFYiCi6xwLCQriZL+ECmHEkeuJpDZSKh6hALKqLcg1OeZKG4xMf2R7SX 53rVr6a7l9Bjgp97g2n0heehQxyjn+rrHa9H1tSZvoncXpJ4aH8mdLjRFwPef1nGCUKaa+ geizpIlKPJEGKn39EzaqskvIHxLqVq2PQY+Jdp69Rv2mCUuGlW43BaITU82Kk4vkTH/hZH dZ5MJqHovznUnMRiOtMB6uNd5v3LUXruVO5iqH/zxDRkdDy9hIt8e8bSbnPOMDenkknIkn 9OOrTX59EcC3VRG9K/DHV9S3+lgEbwOF0LQIWqNfhu6CNLIkIySYk5f665kkXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692320208; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0LTxpd/O6SRTx3OKhMfHqi+1CuqR+yie7Uh2Vus3f6w=; b=Vr3CtZ+zuEGATvV7r5t4UBjCQ0gvRKrXc1SBWxD+4npOrerHKzgLCE6Er1RQNV283yRhfy NJQ9AfzvDMYSUM5Vzw5fQSTMMfvgCG5XgrO8ugpKL+30LaRWS0MnKSIiMY5wYssXNkprSm xQCCJv1WKhuHs3KwpGr3CCQt7k/bmb6gRNxdrPRdGLAhkiBFluCCXoIu6rcORturRA/G1o ey/hSgHeOeTLcGY8H27KrpQx9HL8jwW3zhivnk8WiPx++ztPOyvqqv8a5q6EfKCrRmmrOt EH3gwx2kBwgrtGcHObAb2Cb53i/cJuibm4Pdn3bS1VX28VEvwPbBLDJ+2+n5MQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692320208; a=rsa-sha256; cv=none; b=V7dzT03XmZ7Yszw+b49upWDzDd2NXoFruzqb0jXkVxnm7GpIHRJwWL5u5TUYsO0TbmbFEs tSqQd75TvJNrz1PGeOqVGweejFko0ObtYai7DXzCmpcTraQI/boGgPQOtAwlK3+jCDushs SmZLDEQJqf4+AuNj53WmFd7vNWx9rb+PYAbGNj8ER2mdB56LmlnWCMA9xh2hYRBqo5cWKo JB6Ksw4UbZ7mhX/cWyK5hAM5HbGlMs6F8c5z5rQ1waszR0mI99UbjISp9Sufr73aWVjN15 8OkGKpGE3VBAmTVUjbWpO5+PyVjnWAEZhImEHRYYyf9b4Ho+YfTUBoyoiC5YcA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRk3N44rJzw9d; Fri, 18 Aug 2023 00:56:48 +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 37I0umlt079880; Fri, 18 Aug 2023 00:56:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I0umh9079877; Fri, 18 Aug 2023 00:56:48 GMT (envelope-from git) Date: Fri, 18 Aug 2023 00:56:48 GMT Message-Id: <202308180056.37I0umh9079877@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling <kbowling@FreeBSD.org> Subject: git: b8e5efdd24b0 - stable/13 - e1000: Some fixes for hardware capabilities List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b8e5efdd24b09fffa345a64db585ed9d66b00f84 Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=b8e5efdd24b09fffa345a64db585ed9d66b00f84 commit b8e5efdd24b09fffa345a64db585ed9d66b00f84 Author: Kevin Bowling <kbowling@FreeBSD.org> AuthorDate: 2023-08-03 20:49:15 +0000 Commit: Kevin Bowling <kbowling@FreeBSD.org> CommitDate: 2023-08-18 00:54:54 +0000 e1000: Some fixes for hardware capabilities This MFC squash retains disabled TSO ultimately, but contains some capability fixes. f1b5488f: e1000: Enable TSO for lem(4) and em(4) Most em(4) devices now enjoy TSO and TSO6, matching NetBSD and Linux defaults. A prior commit automasks TSO on 10/100 Ethernet due to errata and other bugs for IPv6 were fixed recently allowing this. Mike Karels identified a performance anomaly on Intel 82574L devices. These are multiqueue enabled on FreeBSD since the conversion to iflib. I am investigating whether this can be fixed, in the mean time MSI-X with checksum offloads remain default. i219 SPT devices have an errata that downclocks the DMA engine, which results in TSO not being able to acheive line rate. Therefore, it is disabled on: * Intel(R) I219-LM and I219-V SPT * Intel(R) I219-LM and I219-V SPT-H (2) * Intel(R) I219-LM and I219-V LBG (3) * Intel(R) I219-LM and I219-V SPT (4) * Intel(R) I219-LM and I219-V SPT (5) Many lem(4) devices enjoy TSO, exceptions being 82542, 82543, 82547. TSO6 may be possible for some chipsets but I am still working through my testing matrix and that is hidden behind hw.em.unsupported_tso. If you encounter issues, you may disable TSO with for example: ifconfig em0 -tso -tso6. I ask to be informed of any deviations from normal operation requiring this. Thanks to cc@ for access to emulab.net. On a sample I219 system it saves about 16% CPU on IPv4 and 19% on IPv6. iperf3 -Vc reported numbers: total% user% system% IPv4 TSO 21.3 7 14.4 21.4 6 15.4 21.5 6 15.5 IPv4 no TSO 36.8 5.4 31.4 38.5 5.1 33.5 38.2 5.7 32.6 IPv4 no TSO no TXCSUM 45.1 5.8 39.3 46 6.3 39.7 46.2 5.9 40.4 IPv6 TSO6 21.7 5.4 16.3 21.6 5.1 16.5 21.9 5.6 16.3 IPv6 no TSO6 41.2 5.2 36 41 5.1 36 40.8 5.2 35.7 IPv6 no TSO6 no TXCSUM6 49 5.9 43.1 48.8 4.9 43.9 49 5.6 43.4 Tested by: cc (lem(4)), karels (82574L) Relnotes: yes Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D41170 13da8423: e1000: Enable TSO on 82574 Further testing indicates something wrong with particular reciever, enabling TSO 82574 for wider testing. Tested by: karels 797e480c: e1000: disable TSO on lem(4) and em(4) Disable TSO on lem(4) and em(4) until a ring stall can be debugged. I am not able to reproduce the issue on lem(4) but disabling there in abundance of caution in case the issue is not specific to em(4). Reported by: grog (cherry picked from commit f1b5488f7bba7f25a57750f87cbcbccbd5b9d16b) (cherry picked from commit 13da84237a37961938e9e237171ac111ddc1897c) (cherry picked from commit 797e480cba8834e584062092c098e60956d28180) --- sys/dev/e1000/if_em.c | 69 +++++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index bf5fec7e9e3a..7f72ae53d0a2 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -905,25 +905,19 @@ em_if_attach_pre(if_ctx_t ctx) scctx->isc_tx_tso_size_max = EM_TSO_SIZE; scctx->isc_tx_tso_segsize_max = EM_TSO_SEG_SIZE; scctx->isc_capabilities = scctx->isc_capenable = EM_CAPS; - /* - * For EM-class devices, don't enable IFCAP_{TSO4,VLAN_HWTSO,TSO6} - * by default as we don't have workarounds for all associated - * silicon errata. E. g., with several MACs such as 82573E, - * TSO only works at Gigabit speed and otherwise can cause the - * hardware to hang (which also would be next to impossible to - * work around given that already queued TSO-using descriptors - * would need to be flushed and vlan(4) reconfigured at runtime - * in case of a link speed change). Moreover, MACs like 82579 - * still can hang at Gigabit even with all publicly documented - * TSO workarounds implemented. Generally, the penality of - * these workarounds is rather high and may involve copying - * mbuf data around so advantages of TSO lapse. Still, TSO may - * work for a few MACs of this class - at least when sticking - * with Gigabit - in which case users may enable TSO manually. - */ - scctx->isc_capenable &= ~(IFCAP_TSO4 | IFCAP_VLAN_HWTSO | IFCAP_TSO6); scctx->isc_tx_csum_flags = CSUM_TCP | CSUM_UDP | CSUM_IP_TSO | CSUM_IP6_TCP | CSUM_IP6_UDP; + + /* Disable TSO on all em(4) until ring stalls can be debugged */ + scctx->isc_capenable &= ~IFCAP_TSO; + + /* + * Disable TSO on SPT due to errata that downclocks DMA performance + * i218-i219 Specification Update 1.5.4.5 + */ + if (hw->mac.type == e1000_pch_spt) + scctx->isc_capenable &= ~IFCAP_TSO; + /* * We support MSI-X with 82574 only, but indicate to iflib(4) * that it shall give MSI at least a try with other devices. @@ -946,24 +940,41 @@ em_if_attach_pre(if_ctx_t ctx) scctx->isc_capabilities = scctx->isc_capenable = LEM_CAPS; if (em_unsupported_tso) scctx->isc_capabilities |= IFCAP_TSO6; - /* - * For LEM-class devices, don't enable IFCAP_{TSO4,VLAN_HWTSO} - * by default as we don't have workarounds for all associated - * silicon errata. TSO4 may work on > 82544 but its status - * is unknown by the authors. Please report any success or failures. - */ - scctx->isc_capenable &= ~(IFCAP_TSO4 | IFCAP_VLAN_HWTSO); scctx->isc_tx_csum_flags = CSUM_TCP | CSUM_UDP | CSUM_IP_TSO | CSUM_IP6_TCP | CSUM_IP6_UDP; + /* Disable TSO on all lem(4) until ring stalls can be debugged */ + scctx->isc_capenable &= ~IFCAP_TSO; + + /* 82541ER doesn't do HW tagging */ + if (hw->device_id == E1000_DEV_ID_82541ER || + hw->device_id == E1000_DEV_ID_82541ER_LOM) { + scctx->isc_capabilities &= ~IFCAP_VLAN_HWTAGGING; + scctx->isc_capenable = scctx->isc_capabilities; + } + /* This is the first e1000 chip and it does not do offloads */ + if (hw->mac.type == e1000_82542) { + scctx->isc_capabilities &= ~(IFCAP_HWCSUM | IFCAP_VLAN_HWCSUM | + IFCAP_HWCSUM_IPV6 | IFCAP_VLAN_HWTAGGING | + IFCAP_VLAN_HWFILTER | IFCAP_TSO | IFCAP_VLAN_HWTSO); + scctx->isc_capenable = scctx->isc_capabilities; + } + /* These can't do TSO for various reasons */ + if (hw->mac.type < e1000_82544 || hw->mac.type == e1000_82547 || + hw->mac.type == e1000_82547_rev_2) { + scctx->isc_capabilities &= ~(IFCAP_TSO | IFCAP_VLAN_HWTSO); + scctx->isc_capenable = scctx->isc_capabilities; + } + /* XXXKB: No IPv6 before this? */ + if (hw->mac.type < e1000_82545){ + scctx->isc_capabilities &= ~IFCAP_HWCSUM_IPV6; + scctx->isc_capenable = scctx->isc_capabilities; + } /* "PCI/PCI-X SDM 4.0" page 33 (b) - FDX requirement on these chips */ - if (hw->mac.type == e1000_82542 || hw->mac.type == e1000_82547 || - hw->mac.type == e1000_82547_rev_2) + if (hw->mac.type == e1000_82547 || hw->mac.type == e1000_82547_rev_2) scctx->isc_capenable &= ~(IFCAP_HWCSUM | IFCAP_VLAN_HWCSUM | IFCAP_HWCSUM_IPV6); - /* 82541ER doesn't do HW tagging */ - if (hw->device_id == E1000_DEV_ID_82541ER || hw->device_id == E1000_DEV_ID_82541ER_LOM) - scctx->isc_capenable &= ~IFCAP_VLAN_HWTAGGING; + /* INTx only */ scctx->isc_msix_bar = 0; } From nobody Fri Aug 18 00:59:42 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRk6l1Kh8z4qPsj; Fri, 18 Aug 2023 00:59: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 4RRk6k6CmFz3KZm; Fri, 18 Aug 2023 00:59:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692320382; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3NumkOSnyM14tqEMz6hRwJrN0QIMkq+rNXoisDiunHk=; b=yHXQu3oBNyVEvrKdgEVTN2BmFNgkt7sEkEaVOhHxMmFESqRPE6uNGHTigNRhHDZcATgpVj IKXoddvDbqq/E7JQkZ8Fd6oyEUupPbw0b+lusFWG0dwbMJSozP8+/qlyrhwKHEws876dYE 3vMJUDKgyiG9Yuej9EDjf/KY7mymD06qcCmX2x0CmHzYR3rsC1MAYfA2r47W1ddMN9RNaB jewuKqUmF+LvWSxIZQgnGMkonu9pW8wNzubVBnWyJsDJWAWyrPOljW+nlm8mIxz1GM9kXn hrkAiRbRHOpYCyUFbG7e6Hu+lBubXcVugYO8ZiKUfmuEfWMJe6htz5bohaj2rQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692320382; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3NumkOSnyM14tqEMz6hRwJrN0QIMkq+rNXoisDiunHk=; b=CZri242y1KwIfLPI7fxfulMXpGhfpXWWT9Qqn2jr0XQ77QZgZ6eeCiFYygnglRoUhYBEnS 5zOYWtmTuf8GrtcGRhxQKFz+eTMlnHyBS3s3kuruc3jfF9Do6t26xNBmBFB/zvR6RHcDLW kIpsqbFFCshhdto/jb40UoA1aHCpXhxqBx3wj4fNWNUx8R6B2UkshhlM+49V/wRF2I64A6 0di/KyAo+SAGLVESrXhq/hwPyBovw9yngECnPpddLe4qzqN5tcA0vWFkE/ynnzyeRT3qfB lpwX2sGZodwpTWYGHwlg0DYu7/PBF/XGRucFOqmrdDkiV67b+Tja2priz8I19w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692320382; a=rsa-sha256; cv=none; b=FZqOzFn/Sj1Sf2XGL2ICi8W3RxUfth/6NZbsbMXAxmvPba0bvpWd5aR40MCja4TmaByKSy Qph74oQvZVQYG0+r4+VpjEMJJJehdG2oF8sdgB8GwIdG0XyG4bUtZ3tFoJ7Nzj/NG7ojzn kSYquGaR3RMHjj/VhWPoe0VMD/FlX902oeFMbZi1XGF38dqK6wy+BEwflOREKHndqtpVCv RVMC2oUvROV/z0BQjI57XBKCfEdSvvF6zumhH34lnauu1e9GBbPImg62HI2JbHjWN+tJXr eBdZ7YzzJvMpH9ZH2OyNatUyONglGOQQ+sOnTJtJHeVzxs51YSKlyKP6DXfXhA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRk6k5HGrzvxS; Fri, 18 Aug 2023 00:59:42 +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 37I0xgEP080385; Fri, 18 Aug 2023 00:59:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I0xgjR080382; Fri, 18 Aug 2023 00:59:42 GMT (envelope-from git) Date: Fri, 18 Aug 2023 00:59:42 GMT Message-Id: <202308180059.37I0xgjR080382@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling <kbowling@FreeBSD.org> Subject: git: f73eb35106cc - stable/13 - vlan: Respect IFCAP_LRO mask List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: f73eb35106cc65d19af0f2e82a111308c5090c3a Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=f73eb35106cc65d19af0f2e82a111308c5090c3a commit f73eb35106cc65d19af0f2e82a111308c5090c3a Author: Kevin Bowling <kbowling@FreeBSD.org> AuthorDate: 2023-08-12 16:31:22 +0000 Commit: Kevin Bowling <kbowling@FreeBSD.org> CommitDate: 2023-08-18 00:59:30 +0000 vlan: Respect IFCAP_LRO mask vlan_capabilities(), used by the IFCAP ioctl, was not respecting the IFCAP_LRO bit if it was masked by the requestor. This prevented if_bridge(4) from automasking LRO with a message like: bridge0: can't disable some capabilities on em3.11: 0x400 This also prevented manually disabling LRO from any vlan interface. PR: 254596 Reported by: Paul Vixie <paul@redbarn.org> (cherry picked from commit b1a39c31a3569bd045a0f40057c3773fc8166f6d) --- sys/net/if_vlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c index 21082f2d5741..d34575dd61fc 100644 --- a/sys/net/if_vlan.c +++ b/sys/net/if_vlan.c @@ -1850,7 +1850,7 @@ vlan_capabilities(struct ifvlan *ifv) if (p->if_capabilities & IFCAP_VLAN_HWCSUM) cap |= p->if_capabilities & IFCAP_LRO; if (p->if_capenable & IFCAP_VLAN_HWCSUM) - ena |= p->if_capenable & IFCAP_LRO; + ena |= mena & IFCAP_LRO; /* * If the parent interface can offload TCP connections over VLANs then From nobody Fri Aug 18 01:00:18 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRk7R3br8z4qPpX; Fri, 18 Aug 2023 01:00: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 4RRk7R18z2z3L7b; Fri, 18 Aug 2023 01:00:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692320419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5CflBasuSv/jedMjuZpWZCVjUcnnIiKj0w5KRw1VUmM=; b=wN6/mxoaa8TtHsxbJOXtkafmGVPHD3NFegEUgJF9OxjyKPbE6O1t5OjC/JjNrEFbKXm0Ej F/A6PpM5vAqk3jQC5qnqVdexPwRQVOsG3nTagkH3bLTwaqUeio9hgpNlFowvn0dP+7iSHQ 4hjwCtd/ekPd7BZqBqsUKZs+DF9w2PIk3wIEkvhXHSUPbrTYhwz3tn/DBv4RuxmMzhY+8o o8x3WYIsa9tbJoUc0W2ES89mLVcSbPoJJR3jo1xHOQtGqSUyQWWF39vtzXdsGQYAMXBrf4 gWrIY+uE6TIk3mMqgoV6hLHLARdWnf+PQmiKZWubNilyQkegShLWdjBCFQXXRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692320419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5CflBasuSv/jedMjuZpWZCVjUcnnIiKj0w5KRw1VUmM=; b=i+ezwrEcWqRxHfHxW2yWF+dY2elZ6RBeh//Rcbf9EoI+UFchZXNqMNWDV78162RRVFiCE5 eVEJn+DP9ZHtWQxTBAIhgZIHT6o2MRwXyU/e7WOPEldo6VuiLIk46f3tLQxxVrClNUj/x+ H0jL5T7NfHW4yAos+M6/gFj3tYGAncM7TNIrECkc9D6BdJJ2TCWkDPeuVABwujtxOMHYRA Leq5UIOiAf9+QvSolEAFoqg5zRPPcpKfo2QH6kB1Aj6TJIgxOpgsdxmUZ97o2Qq4s9Wugc zObxgYkdMRXa/gIoVaXqMmBLTFX6oTRq54uECSMRu03Kj2DcsDQsPDKeiYZlCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692320419; a=rsa-sha256; cv=none; b=rY7R2ci+cZvbCQiGBzehuEVRgCFCdw+Sy9NiFcTcUc6qfVh4LyMKY82qRnE8qQyzpjvZtq 4qiXh1f5Ej1LJgomP9Mhbw9zwNuNvY1i9LYezS6AYF6St7CrLHpZH+F7HxU9KiNVkE/Vln 90hZMwzwMYLvvP1689UaJ6+yaZTMXyUyFlCXO6bPGqOajmJFdAVavMHFfG13SfcKmOnRWq vQeA3/qSGvtSdpdKT0VrIdE8qzsmIRqNSY8Ut7OAgZzq2wLoZlGBzHashG5iodDByMH1/A oek1pQUvuyyT1KPmJBvc66gainaR8ABp1bffK3LqYefaU4Y7/lSIsmnwJj2QxQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRk7R05m8zwSN; Fri, 18 Aug 2023 01:00: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 37I10Ieu090137; Fri, 18 Aug 2023 01:00:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I10IEh090134; Fri, 18 Aug 2023 01:00:18 GMT (envelope-from git) Date: Fri, 18 Aug 2023 01:00:18 GMT Message-Id: <202308180100.37I10IEh090134@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling <kbowling@FreeBSD.org> Subject: git: 50b52fe14b89 - stable/12 - vlan: Respect IFCAP_LRO mask List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: 50b52fe14b8949539e7fe583d4578b1f2c96dc59 Auto-Submitted: auto-generated The branch stable/12 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=50b52fe14b8949539e7fe583d4578b1f2c96dc59 commit 50b52fe14b8949539e7fe583d4578b1f2c96dc59 Author: Kevin Bowling <kbowling@FreeBSD.org> AuthorDate: 2023-08-12 16:31:22 +0000 Commit: Kevin Bowling <kbowling@FreeBSD.org> CommitDate: 2023-08-18 01:00:07 +0000 vlan: Respect IFCAP_LRO mask vlan_capabilities(), used by the IFCAP ioctl, was not respecting the IFCAP_LRO bit if it was masked by the requestor. This prevented if_bridge(4) from automasking LRO with a message like: bridge0: can't disable some capabilities on em3.11: 0x400 This also prevented manually disabling LRO from any vlan interface. PR: 254596 Reported by: Paul Vixie <paul@redbarn.org> (cherry picked from commit b1a39c31a3569bd045a0f40057c3773fc8166f6d) --- sys/net/if_vlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c index 491c1a4fa371..5c84480e15d3 100644 --- a/sys/net/if_vlan.c +++ b/sys/net/if_vlan.c @@ -1748,7 +1748,7 @@ vlan_capabilities(struct ifvlan *ifv) if (p->if_capabilities & IFCAP_VLAN_HWCSUM) cap |= p->if_capabilities & IFCAP_LRO; if (p->if_capenable & IFCAP_VLAN_HWCSUM) - ena |= p->if_capenable & IFCAP_LRO; + ena |= mena & IFCAP_LRO; /* * If the parent interface can offload TCP connections over VLANs then From nobody Fri Aug 18 04:03:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRpCK559kz4qc3Z; Fri, 18 Aug 2023 04:03: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 4RRpCK4Pbzz3ddR; Fri, 18 Aug 2023 04:03:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692331437; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pAejLlSelIxx13AFby1jK4GVIbgfmmAXRnyHTrZVojY=; b=Zk/nDbe+Sp4m6TeQPBePpkCbuGDDyw2uELOjcjMMlR3BiN7l75FwTWMBIBXRynbI7ae1Bj OUpi1Vo/T2mts4gcRPq51K3uKEfx7Y9L3hrEWZub98D0U9hk/SYtTl2Obr4VU8tO7aM6Ks CD+DCbvX4dqYdsfejX1yw2byx9uJSnDF3waT0eQXBrU/yk7LIEIV5xhVHhxJx/8Rz4AZeL x1Fkbs0g5zQL6iiq9OypfULBkVxm7VUzkBCtLBwOCOYA4og2FK3lhJAsg67u8HT02LXCoG bvs97mE/AlE6tRVvshebN4+JEwIFE255RGOBgbFcixFpaXVk7z2gJR6wkhsS1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692331437; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pAejLlSelIxx13AFby1jK4GVIbgfmmAXRnyHTrZVojY=; b=dqHx5I6Cjw5I1UfVv93RN8WotEwYdh1oe6sWStn9vgB+UZ3HL3THesS0IFZ3TW1E53oMgC Op7+pOZXDYy8EiEqsfwgSjhKIu/HwlZ+OOkR8qVFbSWrxnIzCEWlVe9agjvNNiCWOGiMpD /l2hs0X0MWumjkcYPRr7Xe8GoMJS8j1PVinToHPq8vvfKVSacpak5BctbDqjkmP/gtnvEq FfqK8GNur5B9wQGZowf4pBCu/fELEio5y4GSXLivT1ph+R0cxTKRW/QeUAAnDdhQ1GvzCU v+1gRah1VK+FHbS6S09+ckOPj06exdIhAlPBkkIsdc5U9YQ8AYNOCmjp7KHZ8g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692331437; a=rsa-sha256; cv=none; b=t98YozohKEJ7RSadbJwoHQhuT90QR11EOp8oAef8rsrfVTyF563C/J1QjSlxy9n1h5yuNj BJ7wWGCpfHWC5rucbUvH9Wl2sjI6sfCnV/zoOXYrtBQtl8f9AEe0aTXae4kuyKdTtRTn4t amoZ/q01VnZUmcf1HzJTZsRP67S736xXTyjIBCEymvOwmev4VEymPt9YFaV0j608bmxzRi 1bVesVRTbBmr6QPTHQLG3HfOwH1u0wRCJGSPe6xs/FAkdBK95mT2OYoJoUN5Tip8rLlJtY jJGfd8yUcWKN/bT9b5c1LwbIy8tnSv6da53xJRW4xR1njygg1fR9bCr0OLpAyg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRpCK3Gbcz11kP; Fri, 18 Aug 2023 04:03: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 37I43vfG098758; Fri, 18 Aug 2023 04:03:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I43vjm098755; Fri, 18 Aug 2023 04:03:57 GMT (envelope-from git) Date: Fri, 18 Aug 2023 04:03:57 GMT Message-Id: <202308180403.37I43vjm098755@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans <kevans@FreeBSD.org> Subject: git: f0ebed6a313b - stable/13 - kern: osd: avoid dereferencing freed slots List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: f0ebed6a313b8cdd91859287aad8015392352bc1 Auto-Submitted: auto-generated The branch stable/13 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=f0ebed6a313b8cdd91859287aad8015392352bc1 commit f0ebed6a313b8cdd91859287aad8015392352bc1 Author: Kyle Evans <kevans@FreeBSD.org> AuthorDate: 2023-08-10 17:32:33 +0000 Commit: Kyle Evans <kevans@FreeBSD.org> CommitDate: 2023-08-18 04:02:46 +0000 kern: osd: avoid dereferencing freed slots If a slot is freed that isn't the last one, we'll set its destructor to NULL to indicate that it's been freed and leave a hole in the slot map. Check osd_destructors in osd_call() to avoid dereferencing a method that is potentially from a module that's been unloaded. This scenario would most commonly surface when two modules are loaded that osd_register(), then the earlier one deregisters and an osd_call() is made after the fact. In the specific report that triggered the investigation, kldload if_wg -> kldload linux* -> kldunload if_wg -> destroy a jail -> panic. Noted in the review, but left for follow-up work, is that the realloc that may happen in osd_deregister() should likely go away and the assumption that reallocating to a smaller size cannot fail is actually not correct. Reported by: dim (cherry picked from commit 2bd446d7f1a03fbf6d98ace4548f8793599f48fb) --- sys/kern/kern_osd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/kern/kern_osd.c b/sys/kern/kern_osd.c index 23178731b899..ced6df31cf44 100644 --- a/sys/kern/kern_osd.c +++ b/sys/kern/kern_osd.c @@ -396,6 +396,9 @@ osd_call(u_int type, u_int method, void *obj, void *data) error = 0; sx_slock(&osdm[type].osd_module_lock); for (i = 0; i < osdm[type].osd_ntslots; i++) { + /* Hole in the slot map; avoid dereferencing. */ + if (osdm[type].osd_destructors[i] == NULL) + continue; methodfun = osdm[type].osd_methods[i * osdm[type].osd_nmethods + method]; if (methodfun != NULL && (error = methodfun(obj, data)) != 0) From nobody Fri Aug 18 07:18:43 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX41PyHz4qq2q; Fri, 18 Aug 2023 07:18: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 4RRtX36NT4z4dkx; Fri, 18 Aug 2023 07:18:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343123; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bXy7fWdYTNwjarIi7BFafJMCqS4DnTPJBXylUs1pY+8=; b=KOuzIrr0VVHVVzf7w1ARchXXuMd1miYBBJ4pdQGimsL6cmnXu8rtIpDXZdj33H4lQvXb56 lkFlB6VRV9xeP80hop3F1CamhJCVXmHDwBqGHSUznTOYfW04AOeYgTNsbsgbV/wc2qGDgY nmP+jddQ035zayxKzIeqxkr24eKOu+FOzzAAZ4wNMS6Bb9GtTYTjWgTjcXRGh6q+dJmgto GMglbzOtmll+AxbZzhHyHini9lmzDVlcBPaeCXt7N66LoEtDa/LHr+6avQcqzD6SEOKOh6 N/ZrzPBIPFfo/NAp/misgKJU0bjprtWGDqiImqHkVncIiotuJJK0GPb2xi5fRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343123; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bXy7fWdYTNwjarIi7BFafJMCqS4DnTPJBXylUs1pY+8=; b=Q/pVk779yYWzMhzT45Zsz1MXDLCGYuDtiaMZiawSbemB5+TVmnUbKYtGcxDF95ZtMf+dGI /3+/Vaej7thMC7QXhMF1tBPmMoASRa7SE0bI0j9MAORdrcoVAAvWt5ihZjkAD53S6bs5cV XIN3B0qmzlgQ4w/IpVYlfE0b5aLJp+5uLePT6HG70Nt6/CwjbQyS67J5I12IQWZi2kOpji ZDJSEQZSlhBnLYWTke/oLiTPsdS1nzGTgLDLd0O1J2gmaNJmuLKYF12IrPXA5xDciT9hnN 69aVO3J9OUYKLcGQRT383IRQA5aO/SA6GeV0SzHAzCeCujrDDiJSZSznKOw/lg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343123; a=rsa-sha256; cv=none; b=QSsnbBavWlAUVLoPZv4asYaVlYQtoLsvB22P6tSmz2ojJx0vERDxNsq65P8L9Is4cTEHCy NDoYah37XyA4GlSgyFJB3/0eg/VnOfE3a2tExOao/R+iYeVdITmyD1v+u2NY6JDf6/nzKB LW0VUXZzWV+CLgk1Uzz7mnXTutefkvcbxUh6ZqhO6tmTZ9FftBdLePED5tnh6U6jMTW0pU j083ChTMzclrv7vOi1v3HmnB37mzPvAxS1jJYX1psK3sYqU/Js10PDSIpEDfKXoCL58DN1 P/t+4l8hi71ZA+WkMt8ZTnbiZam23KFUo1lBY5eIwjy8hXhXspN2/MtqDVWj7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRtX35Rqpz16KX; Fri, 18 Aug 2023 07:18: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 37I7IhvH017495; Fri, 18 Aug 2023 07:18:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7Ih2M017492; Fri, 18 Aug 2023 07:18:43 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:18:43 GMT Message-Id: <202308180718.37I7Ih2M017492@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 3e520a8fc711 - stable/13 - bhyve: save/restore pir_desc List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3e520a8fc7115f0e5015e5c3ce4a13b6d9cf00e4 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=3e520a8fc7115f0e5015e5c3ce4a13b6d9cf00e4 commit 3e520a8fc7115f0e5015e5c3ce4a13b6d9cf00e4 Author: Vitaliy Gusev <gusev.vitaliy@gmail.com> AuthorDate: 2023-05-09 08:27:29 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:04:25 +0000 bhyve: save/restore pir_desc Failing to preserve pir_desc can result in pending interrupts being lost on resume leading to a hung VM. Reviewed by: corvink, jhb MFC after: 1 week Sponsored by: vStack Differential Revision: https://reviews.freebsd.org/D35447 (cherry picked from commit c543e09f1f8ef98f201f7dd3f34ae023d61dfa83) --- sys/amd64/vmm/intel/vmx.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/amd64/vmm/intel/vmx.c b/sys/amd64/vmm/intel/vmx.c index 9c2672c9ae23..6d9e11972948 100644 --- a/sys/amd64/vmm/intel/vmx.c +++ b/sys/amd64/vmm/intel/vmx.c @@ -4179,6 +4179,9 @@ vmx_vcpu_snapshot(void *vcpui, struct vm_snapshot_meta *meta) SNAPSHOT_BUF_OR_LEAVE(vcpu->guest_msrs, sizeof(vcpu->guest_msrs), meta, err, done); + SNAPSHOT_BUF_OR_LEAVE(vcpu->pir_desc, + sizeof(*vcpu->pir_desc), meta, err, done); + vmxctx = &vcpu->ctx; SNAPSHOT_VAR_OR_LEAVE(vmxctx->guest_rdi, meta, err, done); SNAPSHOT_VAR_OR_LEAVE(vmxctx->guest_rsi, meta, err, done); From nobody Fri Aug 18 07:18:44 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX53MGVz4qph6; Fri, 18 Aug 2023 07:18: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 4RRtX51gS9z4dl7; Fri, 18 Aug 2023 07:18:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343125; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d9JJRb+rz9swNBWwVN6cy7sl6nZOmsnZwQhcolxynt4=; b=wZBZ0dR3FVeQV0b3+bI+1IZewD1jum5bLOdgpgYvWCt8tLXdAxWDlonsBfJ5KcDQmLDLAj m1IGfpDzH0JC9JTbK5xBV4BLOsADy6zt3QrCXW0Yvg5FYfkxdWNkBqAz5id3SgNxSpXTnb j/GJ+5JHDG7WpyJh6GpM7h2XonPK31YZ9rvRI6ECWt7ckefYy052tdwJvj+NGxaF40zOzw 3NNbgO2dksfrpSRbMcLoVAX/lYZfe1Us6pz1iGMSrztKxwsWh/55TIDuIH3hGCQRY1zGlD 1RK1dufwqs980sHZNhfxbsRTAC2/hUFlG9OmnJcBPZmRQPuuYVJHiMIBw0W11w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343125; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d9JJRb+rz9swNBWwVN6cy7sl6nZOmsnZwQhcolxynt4=; b=mLkgr53yyxka3fvNTXiNTZWggNajHfh7FiMEhK/OggoI3T6xk9blUdzJt+MFqoc8qT2tqC S7W+A/8FxAGcslF6uC7ngWDqOtmgiCdMauTjQtpiqBjDU+qDra5uvMH7GnUok4IakvXh+a RsKvJLeA7MXrBRyuBSOHN9ci7WnC2MrjtWiOCLqeXKr+Ih7Y2/gAuiodAAx3XBWiV9QPSJ s7D7EYc+YntaCwwzt1nIsddh8JdA7KKQC9be294PeBQ1HZnaexkbT+GdNmxXgh8ZvyW7Dx 7qRZqtYpcr7e3uttAYw6RELvIJtIDTJo79lKetuHmCp984W7aplUhyIhitOv4Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343125; a=rsa-sha256; cv=none; b=mLSGRZhMlqQzUz/NZahl5dI/YcgdUE6jJPTZgmxL09pEh9Cw1cNtQtRaleaj6H36L3NRA5 bBAtxSN9t46rqQd+UjnpFypGXPp6K0qwl7/rDrPDxnRyyRtygIIjmWqY8xd5wsPOIqHbNF q5UNGePeMp478OBOzLOWqIDXry4R/8krs9Gscp46z4L4b0V/qSgAoNSH3bWajxaoXRkvwp pil1TGc4p5MV3/5NGP6Q3Mu7rzLKc3gLTcE3JIuRhoIBq9yLwh+FR5eBApMWi6JtOnXG0v iQsbJ3MZEE8iaFXG1SFrNn/1XxPQMloKBLSeUWXta83b2fIObyQWW2Lxf2KFlw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRtX46dkhz16gx; Fri, 18 Aug 2023 07:18: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 37I7IiN2017546; Fri, 18 Aug 2023 07:18:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7IiWT017543; Fri, 18 Aug 2023 07:18:44 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:18:44 GMT Message-Id: <202308180718.37I7IiWT017543@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 5573404166b0 - stable/13 - bhyve: rename 'user_dev' with 'devices' List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5573404166b090ccf8556888efd9657657b54032 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=5573404166b090ccf8556888efd9657657b54032 commit 5573404166b090ccf8556888efd9657657b54032 Author: Vitaliy Gusev <gusev.vitaliy@gmail.com> AuthorDate: 2023-05-15 14:28:14 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:04:25 +0000 bhyve: rename 'user_dev' with 'devices' Bhyve don't use 'user' specifier for emulated devices. And using 'user' adds duality. Reviewed by: corvink, rew MFC after: 1 week Sponsored by: vStack Differential Revision: https://reviews.freebsd.org/D40106 (cherry picked from commit b10d65a420f068bccf6aaf2942157a5347211dc5) --- usr.sbin/bhyve/bhyverun.c | 6 +++--- usr.sbin/bhyve/snapshot.c | 23 +++++++++++------------ usr.sbin/bhyve/snapshot.h | 6 +++--- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c index 63ca9439d6e6..4db8274335cd 100644 --- a/usr.sbin/bhyve/bhyverun.c +++ b/usr.sbin/bhyve/bhyverun.c @@ -1520,7 +1520,7 @@ main(int argc, char *argv[]) #ifdef BHYVE_SNAPSHOT if (restore_file != NULL) { fprintf(stdout, "Pausing pci devs...\r\n"); - if (vm_pause_user_devs() != 0) { + if (vm_pause_devices() != 0) { fprintf(stderr, "Failed to pause PCI device state.\n"); exit(1); } @@ -1532,7 +1532,7 @@ main(int argc, char *argv[]) } fprintf(stdout, "Restoring pci devs...\r\n"); - if (vm_restore_user_devs(ctx, &rstate) != 0) { + if (vm_restore_devices(ctx, &rstate) != 0) { fprintf(stderr, "Failed to restore PCI device state.\n"); exit(1); } @@ -1544,7 +1544,7 @@ main(int argc, char *argv[]) } fprintf(stdout, "Resuming pci devs...\r\n"); - if (vm_resume_user_devs() != 0) { + if (vm_resume_devices() != 0) { fprintf(stderr, "Failed to resume PCI device state.\n"); exit(1); } diff --git a/usr.sbin/bhyve/snapshot.c b/usr.sbin/bhyve/snapshot.c index 5f9ef2053990..451839944bd6 100644 --- a/usr.sbin/bhyve/snapshot.c +++ b/usr.sbin/bhyve/snapshot.c @@ -926,7 +926,7 @@ vm_restore_kern_structs(struct vmctx *ctx, struct restore_state *rstate) } static int -vm_restore_user_dev(struct vmctx *ctx, struct restore_state *rstate, +vm_restore_device(struct vmctx *ctx, struct restore_state *rstate, const struct vm_snapshot_dev_info *info) { void *dev_ptr; @@ -971,15 +971,14 @@ vm_restore_user_dev(struct vmctx *ctx, struct restore_state *rstate, return (0); } - int -vm_restore_user_devs(struct vmctx *ctx, struct restore_state *rstate) +vm_restore_devices(struct vmctx *ctx, struct restore_state *rstate) { size_t i; int ret; for (i = 0; i < nitems(snapshot_devs); i++) { - ret = vm_restore_user_dev(ctx, rstate, &snapshot_devs[i]); + ret = vm_restore_device(ctx, rstate, &snapshot_devs[i]); if (ret != 0) return (ret); } @@ -988,7 +987,7 @@ vm_restore_user_devs(struct vmctx *ctx, struct restore_state *rstate) } int -vm_pause_user_devs(void) +vm_pause_devices(void) { const struct vm_snapshot_dev_info *info; size_t i; @@ -1008,7 +1007,7 @@ vm_pause_user_devs(void) } int -vm_resume_user_devs(void) +vm_resume_devices(void) { const struct vm_snapshot_dev_info *info; size_t i; @@ -1163,7 +1162,7 @@ vm_snapshot_dev_write_data(int data_fd, xo_handle_t *xop, const char *array_key, } static int -vm_snapshot_user_dev(const struct vm_snapshot_dev_info *info, +vm_snapshot_device(const struct vm_snapshot_dev_info *info, int data_fd, xo_handle_t *xop, struct vm_snapshot_meta *meta, off_t *offset) { @@ -1185,7 +1184,7 @@ vm_snapshot_user_dev(const struct vm_snapshot_dev_info *info, } static int -vm_snapshot_user_devs(struct vmctx *ctx, int data_fd, xo_handle_t *xop) +vm_snapshot_devices(struct vmctx *ctx, int data_fd, xo_handle_t *xop) { int ret; off_t offset; @@ -1227,7 +1226,7 @@ vm_snapshot_user_devs(struct vmctx *ctx, int data_fd, xo_handle_t *xop) meta->buffer.buf = meta->buffer.buf_start; meta->buffer.buf_rem = meta->buffer.buf_size; - ret = vm_snapshot_user_dev(&snapshot_devs[i], data_fd, xop, + ret = vm_snapshot_device(&snapshot_devs[i], data_fd, xop, meta, &offset); if (ret != 0) goto snapshot_err; @@ -1365,7 +1364,7 @@ vm_checkpoint(struct vmctx *ctx, const char *checkpoint_file, bool stop_vm) vm_vcpu_pause(ctx); - ret = vm_pause_user_devs(); + ret = vm_pause_devices(); if (ret != 0) { fprintf(stderr, "Could not pause devices\r\n"); error = ret; @@ -1394,7 +1393,7 @@ vm_checkpoint(struct vmctx *ctx, const char *checkpoint_file, bool stop_vm) goto done; } - ret = vm_snapshot_user_devs(ctx, kdata_fd, xop); + ret = vm_snapshot_devices(ctx, kdata_fd, xop); if (ret != 0) { fprintf(stderr, "Failed to snapshot device state.\n"); error = -1; @@ -1409,7 +1408,7 @@ vm_checkpoint(struct vmctx *ctx, const char *checkpoint_file, bool stop_vm) } done: - ret = vm_resume_user_devs(); + ret = vm_resume_devices(); if (ret != 0) fprintf(stderr, "Could not resume devices\r\n"); vm_vcpu_resume(ctx); diff --git a/usr.sbin/bhyve/snapshot.h b/usr.sbin/bhyve/snapshot.h index 9bf881fded92..5f98be875544 100644 --- a/usr.sbin/bhyve/snapshot.h +++ b/usr.sbin/bhyve/snapshot.h @@ -95,9 +95,9 @@ void checkpoint_cpu_suspend(int vcpu); int restore_vm_mem(struct vmctx *ctx, struct restore_state *rstate); int vm_restore_kern_structs(struct vmctx *ctx, struct restore_state *rstate); -int vm_restore_user_devs(struct vmctx *ctx, struct restore_state *rstate); -int vm_pause_user_devs(void); -int vm_resume_user_devs(void); +int vm_restore_devices(struct vmctx *ctx, struct restore_state *rstate); +int vm_pause_devices(void); +int vm_resume_devices(void); int get_checkpoint_msg(int conn_fd, struct vmctx *ctx); void *checkpoint_thread(void *param); From nobody Fri Aug 18 07:18:45 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX64NMtz4qpkb; Fri, 18 Aug 2023 07:18: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 4RRtX62sWDz4djH; Fri, 18 Aug 2023 07:18:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343126; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kAL9+JpVi7ASGwQrAjwIqGFd2/c1PwIhMDrZmdL3HGM=; b=jaJZoBftBnP5jNItIaRHz8fd0uCXUFbeoErzIXYEvVZjLH1nN+v/l2Fdnqb9Fh3Xs7Yaiy 4teUUaRS5r6tj/9InzAaWn6QWfJOrSQ9U1jEbWLh0sknjoX3rGezZlq3dQanwykiEtse1r +jNwKyh0j3KozWk1qmtC6fHbzw543AQ6xKlpbM6l0CQWc7l6PHoHEmu/pDw20D3Up1+Hgz madistXxWfPBVXsqMrc5Ec2bHw88YbsA9OHPZEutYP84/7It27nZFGvX3kz4FiQc5jkHAW hu2yU3+1o2xQYBE9nc4LJHE3l79ZIm7hknI6cItQx7tyduVwqo5uDWwf/m5qAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343126; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kAL9+JpVi7ASGwQrAjwIqGFd2/c1PwIhMDrZmdL3HGM=; b=sQHSahODMXnuslooFnNduDtWXKHsgn1s5YdgkZeIux6mrjAf8wmEEkZUZi8o/PpzrhaGuX XS8XdOGsItz9VaO5EpcxmoXkvbBmJfLm6LHjUbAMskX7Sr0mjjvhFl0AxS2clEW3n1upNn vLQhvzYSBRSVM8qwYVfoLym2SWNjXwZ0EOzis0c0f2zhTMd/8LukISbTEXDS2cfVAZdgY3 adqA9m4c/nfg3V5cqQVXHRbQQIHvzT64lNXgFsUrTxU8KpiL3jknUuqo73gVNT1x9sow1W huq4N7vLygSkAZQilQT7atcqPPa1vUtFMAEbGPECfsQgFKRUXOoWX4byGC/1gw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343126; a=rsa-sha256; cv=none; b=um1o+DOqkXCXShXRaDBALEHoIwsjUtcgq7lSGM/2yCZAqjR7qVWdmW3cpLJafkOzsTFf51 8mnCAZB6te0/l0l+KX5hhP/a1e/kTq3U5hEeCHR6xCxhE6PAzBYUKSUVk6wWBXRpmSYxHJ 1KkjqVGD+d15BH4mZqh+wAFQltS3dvoUfe8/v5rnDug3LHzgnvgM1/u0sCg/zRsgVZ6av2 62JSjA70bnj4XA3eeNWKs39RVyMGbEnfJCVPKVyVZDR7b/di+OddMyQuWSC7aFiTgxZ3Nd Ap7zUui0IAAxTxsggSuJGgmdc5WrjBeoUU/RFrgSxxNy/51pxJIT+SN2g3bD/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRtX60Yckz16Mv; Fri, 18 Aug 2023 07:18: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 37I7Ijep017603; Fri, 18 Aug 2023 07:18:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7Ijfw017600; Fri, 18 Aug 2023 07:18:45 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:18:45 GMT Message-Id: <202308180718.37I7Ijfw017600@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 51e32fe73405 - stable/13 - bhyve: add bus, slot and func to device name List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 51e32fe73405a20caed05cd24310d4e6bb718507 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=51e32fe73405a20caed05cd24310d4e6bb718507 commit 51e32fe73405a20caed05cd24310d4e6bb718507 Author: Vitaliy Gusev <gusev.vitaliy@gmail.com> AuthorDate: 2023-05-15 14:28:45 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:04:26 +0000 bhyve: add bus, slot and func to device name Each device needs a unique identifier to store and restore snapshots properly. Adding the pci bsf information to the device name creates a unique identifier as a bsf can't be occupied twice. Reviewed by: corvink MFC after: 1 week Sponsored by: vStack Differential Revision: https://reviews.freebsd.org/D40107 (cherry picked from commit 14c80457b0f6a5eb6ff9a1db573462410c64a454) --- usr.sbin/bhyve/pci_emul.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_emul.c b/usr.sbin/bhyve/pci_emul.c index 47ddf3f1809c..f52bf94b7c3d 100644 --- a/usr.sbin/bhyve/pci_emul.c +++ b/usr.sbin/bhyve/pci_emul.c @@ -1023,7 +1023,8 @@ pci_emul_init(struct vmctx *ctx, struct pci_devemu *pde, int bus, int slot, pdi->pi_lintr.pirq_pin = 0; pdi->pi_lintr.ioapic_irq = 0; pdi->pi_d = pde; - snprintf(pdi->pi_name, PI_NAMESZ, "%s-pci-%d", pde->pe_emu, slot); + snprintf(pdi->pi_name, PI_NAMESZ, "%s@pci.%d.%d.%d", pde->pe_emu, bus, + slot, func); /* Disable legacy interrupts */ pci_set_cfgdata8(pdi, PCIR_INTLINE, 255); From nobody Fri Aug 18 07:18:47 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX73f6Sz4qq2y; Fri, 18 Aug 2023 07:18: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 4RRtX72VLHz4f3w; Fri, 18 Aug 2023 07:18:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343127; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fJdwswUkcrEudALMkMv+HFKCp/UFLQB4YJV6gMEAozY=; b=i8vODGjxCDCJnJ7fy7bfffDk+imus0+WE8Ha3wWyPObFx7HjCDrPlfOO8L+G8tGv1sC0AS GXIWkqWMaBsY6Ei7UKSk9e7pF6iyBd4lcgTnLtA5fY00583yhoZHZWB4/JugnahGDCFM3I Lee0xayw4DYuBo392cdkLWj4Q6SV7fHnv0XQpalZ7t21SqTlewtSic73VjinQWZ+ytXlYL oL8QsMlnNqbKaIjMPis1JNiT2X+geakoWEgRiCtug3LJhIb/IGQzv9Kk+05M26Pa+PRAUF IRiucgzD80kSoRiyFbavyOsKVQoaexlv8aQiWOAikPLyH/e0kqvP80l2Lg+KPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343127; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fJdwswUkcrEudALMkMv+HFKCp/UFLQB4YJV6gMEAozY=; b=BUVjYxsZQXnvE7RxZjS4aO1D7bc4OFSvnXh0KL0+2hV/2t2Z6lNB0sPjHJX/Dtrg3UuMJF 2ODP8TRFlmYGclFErt6+MJiBTGOTfG1WoBzbFVFDTG4smcntWtMU3ysAi49grSyDXwWsoF vuhcpHQH3Vb2sIndnFGhouudIL7XgnWpx1qDUW53wVO2X7QGV8uIESvzhWlGH8llcdcbCC mF9ywTbPaKShrwWf49l0wWEBtmHu611q8vWLKfR84syC7ulmn1gTxRgqaGB65IHEYdF90v 24erN3M7yYMitJxgKayl+UG/kRBTNBy3zm+wWxPeIgzKpwXbclbfZPMUCaUlGA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343127; a=rsa-sha256; cv=none; b=jrxvXpyO9bn3wwM1a8XRVOktcXf7RVEPt1zeXJbeEknGMqNpehiIXlATUYiKrj9uAkNBgw 0ZL1Twdxva5HkVhk+KYkI4dkM1NFn3iLRXAu8ILNrfxsN4/h8lHQ+zkbAmpDygyaBmCDdj 9ic2kN80HIviGg7JHqi9dvsyoisKrvltxD0Hos7J3ORIMl1bRkGYzQ13EfHHj9Sptvzfou 1qOUSCq3Tg+Urxp1T7fEHR4UNI8pDDEU1dsQbRaV8BO+d4hQwbomSpfCe6xqendJz2DGEu nZaC4QSs5fgYHjYl03s2TOKxzDwe/QA9Pocw0krLgnnLJRpL8yPfjBzG+FFp1w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRtX71Zpqz16Mw; Fri, 18 Aug 2023 07:18: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 37I7Ilpn017656; Fri, 18 Aug 2023 07:18:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7IlSb017653; Fri, 18 Aug 2023 07:18:47 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:18:47 GMT Message-Id: <202308180718.37I7IlSb017653@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 295d69c8b00f - stable/13 - bhyve: add .pe_snapshot method for PCI 'hostbridge' List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 295d69c8b00f99e97eebd1858f99c037942c5c96 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=295d69c8b00f99e97eebd1858f99c037942c5c96 commit 295d69c8b00f99e97eebd1858f99c037942c5c96 Author: Vitaliy Gusev <gusev.vitaliy@gmail.com> AuthorDate: 2023-05-15 16:29:56 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:04:26 +0000 bhyve: add .pe_snapshot method for PCI 'hostbridge' There is no error when dump doesn't have it, but to be more consistent this PCI devices should be saved as well. Reviewed by: corvink, rew MFC after: 1 week Sponsored by: vStack Differential Revision: https://reviews.freebsd.org/D40108 (cherry picked from commit 6f7d2cf8bbb5ce6c4dbe0153d54cdc474b5266f4) --- usr.sbin/bhyve/pci_hostbridge.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/usr.sbin/bhyve/pci_hostbridge.c b/usr.sbin/bhyve/pci_hostbridge.c index 03eacc5e134a..90ccda0a79cd 100644 --- a/usr.sbin/bhyve/pci_hostbridge.c +++ b/usr.sbin/bhyve/pci_hostbridge.c @@ -86,6 +86,14 @@ pci_amd_hostbridge_legacy_config(nvlist_t *nvl, const char *opts __unused) return (0); } +#ifdef BHYVE_SNAPSHOT +static int +pci_de_snapshot(struct vm_snapshot_meta *meta __unused) +{ + return (0); +} +#endif + static const struct pci_devemu pci_de_amd_hostbridge = { .pe_emu = "amd_hostbridge", .pe_legacy_config = pci_amd_hostbridge_legacy_config, @@ -96,5 +104,8 @@ PCI_EMUL_SET(pci_de_amd_hostbridge); static const struct pci_devemu pci_de_hostbridge = { .pe_emu = "hostbridge", .pe_init = pci_hostbridge_init, +#ifdef BHYVE_SNAPSHOT + .pe_snapshot = pci_de_snapshot, +#endif }; PCI_EMUL_SET(pci_de_hostbridge); From nobody Fri Aug 18 07:18:48 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX84dbyz4qpdt; Fri, 18 Aug 2023 07:18: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 4RRtX83Tvfz4f5q; Fri, 18 Aug 2023 07:18:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343128; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=62SqdEQAmQCyO4Ho27ykRNwuM78gUqEyMG04uFyS12Y=; b=Kntpl98EZ0ULLw9bbU/sx6i4iq2teXzeH4wj2eFFtqmB1btm3N+veJzpI7vgWg71nU3vcw Ws0cw4G4jrMQVEk5eC2yeqNwl9NMlWv5gLpBiJIrxTcW9INyoRWIg+ZoMT8z7E1l9Wa4r8 iwmeDcofnCBtXkjKUjcwpZ4zPTfBSE4tu/nA12X9vbSOeIjTmwZnsd9Ej4kHVEHwgIQg4C rEibgkPY2cngGztHYZk3hfnIg/2FsgDuBbUN3dt3FDMur52c61NPvxtwgrff1noPYSMYkb gA3IWUVf1XhVleh9LmigIwZF+ddV6I6+HZ07o3Y3+IIEd16yFacLj8j6KjyyYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343128; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=62SqdEQAmQCyO4Ho27ykRNwuM78gUqEyMG04uFyS12Y=; b=c0JIXe9+Q2H/BMIxMZ2W/QQ6pQQcZ4nnc7w47Ba6Bj+mWsZYLI9nhKp+wLYTu43nrb5WxJ rOz9xW0rkzuxumDbOMqnOoEj6QlBRLq6GL+r84QRj9AbK/fz333fQIkgt2lfV6GobhyLYQ o1bp677kAb+rmKHW5xOK3aNa4VfeKhOKXOfjRhP6CYZpaTxVvhIgzNJQOWi8j9YTm/C2sm KsbknD4v6mdw7kRB13N6s3/dy3E3Qk9Q7GMYspmvHkw1cyvoMMn3U3i/f9cO2aKKEF84UX Biwhh0+BXcj/SqWmKHsr6axazwHBLIVRggiWei2iCl+w3eJBHviVsyisFxwq6A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343128; a=rsa-sha256; cv=none; b=MMuBcdtmPBqmcNQqN/uaFXE8gu65spEKy25RauyH4mJrSLzvbkwPJ8d72Zy3eMM2ESZP27 JNpLU1YFKYtU97Kl6mgmN/gTP7E1/k2QJSQKyB5KKPtsuRewuJUk5udZQoNra1K6AaeVNj BFOSIgKm20OsoH3SytMd6QWO0SCbjqdEYTXXdMOfLyF04N0JmkjZ3aw4tqrJihPqUXCgF6 A9sz11Oh5DY8u6gsQ2dm8p8QVVBwu2rC++y2+0WfZsaMp5+qCCpRpfBeYbKkXEccPPg0U7 5f63EDHPvk3Oe90Xg3y/IhhB9L+4HFoL0+LQbxcn0NLgcKbNB9NZWIyyfMSC2g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRtX82bmqz16gy; Fri, 18 Aug 2023 07:18:48 +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 37I7ImF1017710; Fri, 18 Aug 2023 07:18:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7ImDx017707; Fri, 18 Aug 2023 07:18:48 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:18:48 GMT Message-Id: <202308180718.37I7ImDx017707@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 5a07451f796f - stable/13 - bhyve: rename 'structs' snapshot key with 'kern_structs' List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5a07451f796f9f619ee8c2da9aaa314c5b570992 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=5a07451f796f9f619ee8c2da9aaa314c5b570992 commit 5a07451f796f9f619ee8c2da9aaa314c5b570992 Author: Vitaliy Gusev <gusev.vitaliy@gmail.com> AuthorDate: 2023-05-15 14:25:15 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:04:26 +0000 bhyve: rename 'structs' snapshot key with 'kern_structs' Using key 'structs' is ambiguous. This section contains data related to the kernel. It should use a more informative naming. Reviewed by: corvink, rew MFC after: 1 week Sponsored by: vStack Differential Revision: https://reviews.freebsd.org/D40104 (cherry picked from commit 50aef9f62c1be9e723169ef57920c3fca07bd2fb) --- usr.sbin/bhyve/snapshot.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/usr.sbin/bhyve/snapshot.c b/usr.sbin/bhyve/snapshot.c index 451839944bd6..9cd1ce34eeea 100644 --- a/usr.sbin/bhyve/snapshot.c +++ b/usr.sbin/bhyve/snapshot.c @@ -118,10 +118,10 @@ static sig_t old_winch_handler; #define SNAPSHOT_BUFFER_SIZE (20 * MB) -#define JSON_STRUCT_ARR_KEY "structs" +#define JSON_KERNEL_ARR_KEY "kern_structs" #define JSON_DEV_ARR_KEY "devices" #define JSON_BASIC_METADATA_KEY "basic metadata" -#define JSON_SNAPSHOT_REQ_KEY "snapshot_req" +#define JSON_SNAPSHOT_REQ_KEY "device" #define JSON_SIZE_KEY "size" #define JSON_FILE_OFFSET_KEY "file_offset" @@ -422,16 +422,16 @@ lookup_struct(enum snapshot_req struct_id, struct restore_state *rstate, ucl_object_iter_t it = NULL; int64_t snapshot_req, size, file_offset; - structs = ucl_object_lookup(rstate->meta_root_obj, JSON_STRUCT_ARR_KEY); + structs = ucl_object_lookup(rstate->meta_root_obj, JSON_KERNEL_ARR_KEY); if (structs == NULL) { fprintf(stderr, "Failed to find '%s' object.\n", - JSON_STRUCT_ARR_KEY); + JSON_KERNEL_ARR_KEY); return (NULL); } if (ucl_object_type(structs) != UCL_ARRAY) { fprintf(stderr, "Object '%s' is not an array.\n", - JSON_STRUCT_ARR_KEY); + JSON_KERNEL_ARR_KEY); return (NULL); } @@ -1059,7 +1059,7 @@ vm_snapshot_kern_struct(int data_fd, xo_handle_t *xop, const char *array_key, meta->dev_req); xo_emit_h(xop, "{:" JSON_SIZE_KEY "/%lu}\n", data_size); xo_emit_h(xop, "{:" JSON_FILE_OFFSET_KEY "/%lu}\n", *offset); - xo_close_instance_h(xop, JSON_STRUCT_ARR_KEY); + xo_close_instance_h(xop, JSON_KERNEL_ARR_KEY); *offset += data_size; @@ -1095,7 +1095,7 @@ vm_snapshot_kern_structs(struct vmctx *ctx, int data_fd, xo_handle_t *xop) .op = VM_SNAPSHOT_SAVE, }; - xo_open_list_h(xop, JSON_STRUCT_ARR_KEY); + xo_open_list_h(xop, JSON_KERNEL_ARR_KEY); for (i = 0; i < nitems(snapshot_kern_structs); i++) { meta->dev_name = snapshot_kern_structs[i].struct_name; meta->dev_req = snapshot_kern_structs[i].req; @@ -1111,7 +1111,7 @@ vm_snapshot_kern_structs(struct vmctx *ctx, int data_fd, xo_handle_t *xop) goto err_vm_snapshot_kern_data; } } - xo_close_list_h(xop, JSON_STRUCT_ARR_KEY); + xo_close_list_h(xop, JSON_KERNEL_ARR_KEY); err_vm_snapshot_kern_data: if (buffer != NULL) From nobody Fri Aug 18 07:18:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX962tYz4qq32; Fri, 18 Aug 2023 07:18:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtX94Yv9z4fBB; Fri, 18 Aug 2023 07:18:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343129; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0PdCezLeZANGrksxA6NZCbHO58IM6FZDbVAOpzoDGOw=; b=hyQXPDv+JtX1upvcb+IsIrFKEYprbElKHxK6vki5cWYvi4UdUh74BH0xqCu5gA2nd949nN ZyDgqJjE+fcSmRwzFvRtaOPURnrei7YQKh2TPjuvuL4C3elb9BfTv6HCtmNCtM4CI5zgDD rq4/mfTR3nqvh/nXsIwb+BFUMdWsfHXUhh86K6rNMxoSNfCkGhmyOb32g1YY60fN6GcEUR lB0YFEFvAD6iB+k8vWDEDqF7V499pDK25UsDECDfBxo14xXNIIrTIVcvWmzM/AgHnnYL0I xrvR69McvSxDQOnW3pdvpEjXN/lwaFKqS1Ev6LFCTyhdemdDIAWPZ5GLkvCriA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343129; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0PdCezLeZANGrksxA6NZCbHO58IM6FZDbVAOpzoDGOw=; b=a7Mh0GUCr18GuJSozt1iz1r6sja5SO7SUUR3eOY/uzOnkF0znR3gKN5zfnsKj7g3ktjJn5 /sxDsoPiBTv5Ipj8viWNSRTlFFkdUF1X4YDSmmBytmOCrvrKo5t0tx2yH14QkEl2ozlpNG mRfxFOrZAnHLXZl+ycV09p/p2jwkXzw52NMVNYwKpE+NU2MAsXGge36lXbIZ4IcM6kT9uL T4/mQylxrX61iYzVfs4Nz1Bd/wVcR/Tct81j0r5FcN/1nSVRo9EldcKrFOEmQ67THN3gQM GqYYjt/BzqwW7aYLp1/m99k6cY3MP2VbCF63+LBzI2tcGcgI/dumY1VPTphFCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343129; a=rsa-sha256; cv=none; b=UPa99R4QeNm878KNYq37jCD2U4UZrL2Y2XCeVRFuFuE1jQlMoaF6tYW2gzE6oXpVpgIWNx LeJlyY+49nF0sYdTy1mp4sbpYTfkz/RbyxWS/+eDGrW4xJPPDNsWat/onuDgh2MguHg+DV 6Uol81sDgADvkZi9GTmPqDSvqmYbipQw1lTXaiEVx+SSTVL/eFdVqPU1RST4H0Y4albZ8k J6xDXwArAJeUpmMwbtBnKUfzsFZh2zcl0p4WzA3/hGeYwkwqMhzyuvMFfdW2Dq1e0VTW+w KcobYJZcsAFG+9eYDRT2gZgY+Ebdbdhs5UVDg1AHkvbdLElrRPCj7aaj+f+tdA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRtX93fmcz16Sb; Fri, 18 Aug 2023 07:18:49 +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 37I7Inn0017752; Fri, 18 Aug 2023 07:18:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7In4P017749; Fri, 18 Aug 2023 07:18:49 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:18:49 GMT Message-Id: <202308180718.37I7In4P017749@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 8caac07ce933 - stable/13 - bhyvectl: Add '--get-debug-cpus' command List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 8caac07ce933a5d8c3a57e12d6b1537c6235d712 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=8caac07ce933a5d8c3a57e12d6b1537c6235d712 commit 8caac07ce933a5d8c3a57e12d6b1537c6235d712 Author: Vitaliy Gusev <gusev.vitaliy@gmail.com> AuthorDate: 2023-07-25 12:03:54 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:04:26 +0000 bhyvectl: Add '--get-debug-cpus' command vmm and libvmmapi already have handlers for that. When adding debug cpus, they were only used for the debug stub. Over time, they were reused by other parts like snapshots or idle APs. Reviewed by: corvink, jhb MFC after: 1 week Sponsored by: vStack Differential Revision: https://reviews.freebsd.org/D40804 (cherry picked from commit 65f8467e3351c38a9d57b538b85cf6c5fab5818e) --- usr.sbin/bhyvectl/bhyvectl.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyvectl/bhyvectl.c b/usr.sbin/bhyvectl/bhyvectl.c index 2a022c550d54..dfa523ea16c8 100644 --- a/usr.sbin/bhyvectl/bhyvectl.c +++ b/usr.sbin/bhyvectl/bhyvectl.c @@ -190,6 +190,7 @@ usage(bool cpu_intel) " [--set-rtc-nvram=<val>]\n" " [--rtc-nvram-offset=<offset>]\n" " [--get-active-cpus]\n" + " [--get-debug-cpus]\n" " [--get-suspended-cpus]\n" " [--get-intinfo]\n" " [--get-eptp]\n" @@ -265,7 +266,7 @@ static int force_reset, force_poweroff; static const char *capname; static int create, destroy, get_memmap, get_memseg; static int get_intinfo; -static int get_active_cpus, get_suspended_cpus; +static int get_active_cpus, get_debug_cpus, get_suspended_cpus; static uint64_t memsize; static int set_cr0, get_cr0, set_cr2, get_cr2, set_cr3, get_cr3; static int set_cr4, get_cr4; @@ -1450,6 +1451,7 @@ setup_options(bool cpu_intel) { "force-reset", NO_ARG, &force_reset, 1 }, { "force-poweroff", NO_ARG, &force_poweroff, 1 }, { "get-active-cpus", NO_ARG, &get_active_cpus, 1 }, + { "get-debug-cpus", NO_ARG, &get_debug_cpus, 1 }, { "get-suspended-cpus", NO_ARG, &get_suspended_cpus, 1 }, { "get-intinfo", NO_ARG, &get_intinfo, 1 }, { "get-cpu-topology", NO_ARG, &get_cpu_topology, 1 }, @@ -2324,6 +2326,12 @@ main(int argc, char *argv[]) print_cpus("active cpus", &cpus); } + if (!error && (get_debug_cpus || get_all)) { + error = vm_debug_cpus(ctx, &cpus); + if (!error) + print_cpus("debug cpus", &cpus); + } + if (!error && (get_suspended_cpus || get_all)) { error = vm_suspended_cpus(ctx, &cpus); if (!error) From nobody Fri Aug 18 07:28:40 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtlY0H6Xz4qqhJ; Fri, 18 Aug 2023 07:28: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 4RRtlX5Fhtz3DdR; Fri, 18 Aug 2023 07:28:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sftZjTwyoKzOtiL9J6Eqq3IUEULtEck8gV68l0+3nXg=; b=QH1dZeYkLb9yNAiGfApjFz5geAReQzxGYsBtI9kd963r1jigYqclMVHJhXhwpV7owoBOl6 jLoRu5DtRYksXWvfmtdd9xQdzIYxd7dmK2LruHEjJd6vKPXcfN4lKNrGNSoRh4MoR7IGPk QTxA4MnJtbwBBWx13fz5pJRK/Y2ynyhDjfLkR8YSR8JXLq4ewFD82C/Jr59+X7xg6VB06q g5t4P7d9hz6N7whDkuMNn7No+2hvGIDLnsWLlb35pTQJX2Q3JYQG4o1W7ouDNjb92GtZ4F zjLfNoIJCN8IOdfnvOLucDQ7NhAPv9mQqh6ejUS79vpgMXtndC3BjZ5EKeJ/Pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sftZjTwyoKzOtiL9J6Eqq3IUEULtEck8gV68l0+3nXg=; b=H2n4GSjxUPtReMuUjnMx7bcGiCxWWFMuyjNx+sUQuB6Nii2IqY1B+iioLMQMEEJZ3Rykr0 hiGdngY36UhZluktmIf43HbN4BxXcveHGoSErt8Jv3yjvm+0VxRlrhsGAwDl435DZk/0uj e6cVEssPFr68sdQRPkxtI4A7S6oh/RbRFZpM+3DqvbOOy4vAZI2I3H8UEhG3jeRRl+tFYd PYN7XjJfTKY0pGcn1g30OxKmeTLZVB9kOPO7aXOpdqdxungAywC8EuUveVbb0zRLFn2QYU C+nAJHN2Umpt79EcvYfuc12HOxENz955/tWQjT0+zxnqF+DGsvxS9TseLdi98g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343720; a=rsa-sha256; cv=none; b=r+F6KWmegyPGcuWjSrB3efW2jbZmFPI2zVPft6tNaVUwX0FeL/I47uwKkJ+59iddPTFS7A /9bXLYdoaLYosgONeSyvcSC3YD0Ol5Fzz0IriaY6tZ2pnK5gaJuRY8vZWt7ev5R38qSwpa PMdK065tYjoDYHnYt7S2b9l0FdSzDJT0VvelG2TndoXRy3gnm6DzjpX3QXGHcBiXoS9fc1 B3c8RvS3JvkwhAPMjoIu5577JF8Sif3Wmen5Jx0gKAZkjYICv7gt0Qu+mRtYymxnJXI4gT UmgpjGSsffI3zjuFaFfvbTKY7HKQRl+lv8ljl0HAPPJ354MWiDdSE4gxPL0ZvQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRtlX4LDhz16Wc; Fri, 18 Aug 2023 07:28: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 37I7Sejh034238; Fri, 18 Aug 2023 07:28:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7SelL034235; Fri, 18 Aug 2023 07:28:40 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:28:40 GMT Message-Id: <202308180728.37I7SelL034235@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: b1fffed683ab - stable/13 - bhyve: add cmdline option for user defined fw_cfg items List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b1fffed683ab82b2693e7b5bb81ca72be4d348ba Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=b1fffed683ab82b2693e7b5bb81ca72be4d348ba commit b1fffed683ab82b2693e7b5bb81ca72be4d348ba Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2021-09-08 09:31:21 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:24:54 +0000 bhyve: add cmdline option for user defined fw_cfg items Some guest allow to configure themself by fw_cfg. E.g. Fedora CoreOs can be provisioned by adding a JSON file as fw_cfg item. Reviewed by: jhb MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D38338 (cherry picked from commit ca14781c8170f3517ae79e198c0c880dbc3142dd) bhyve: error out if fwcfg user file isn't read completely At the moment, fwcfg reads the file once at startup and passes these data to the guest. Therefore, we should always read the whole file. Otherwise we should error out. Additionally, GCC12 complains that the comparison whether fwcfg_file->size is lower than 0 is always false due to the limited range of data type. Reviewed by: markj Fixes: ca14781c8170f3517ae79e198c0c880dbc3142dd ("bhyve: add cmdline option for user defined fw_cfg items") MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40076 (cherry picked from commit 26d9f973d8691eccc098ded7326137d6f76ad243) --- usr.sbin/bhyve/bhyve.8 | 19 ++++++ usr.sbin/bhyve/bhyverun.c | 9 ++- usr.sbin/bhyve/qemu_fwcfg.c | 145 ++++++++++++++++++++++++++++++++++++++++++++ usr.sbin/bhyve/qemu_fwcfg.h | 1 + 4 files changed, 172 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index ed9c045c3159..b764807c7980 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -45,6 +45,15 @@ .Op Cm ,threads= Ar n .Oc .Sm on +.Oo Fl f +.Sm off +.Ar name Cm \&, +.Oo +.Cm string No | Cm file +.Oc +.Cm \&= Ar data +.Sm on +.Oc .Oo .Sm off .Fl G\~ @@ -145,6 +154,16 @@ Force .Nm to exit when a guest issues an access to an I/O port that is not emulated. This is intended for debug purposes. +.It Fl f Ar name Ns Cm \&, Ns Oo Cm string Ns No | Ns Cm file Ns Oc Ns Cm \&= Ns Ar data +Add a fw_cfg file +.Ar name +to the fw_cfg interface. +If a +.Cm string +is specified, the fw_cfg file contains the string as data. +If a +.Cm file +is specified, bhyve reads the file and adds the file content as fw_cfg data. .It Fl G Xo .Sm off .Oo Ar w Oc diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c index 4db8274335cd..7cc293827518 100644 --- a/usr.sbin/bhyve/bhyverun.c +++ b/usr.sbin/bhyve/bhyverun.c @@ -1258,9 +1258,9 @@ main(int argc, char *argv[]) progname = basename(argv[0]); #ifdef BHYVE_SNAPSHOT - optstr = "aehuwxACDHIPSWYk:o:p:G:c:s:m:l:K:U:r:"; + optstr = "aehuwxACDHIPSWYk:f:o:p:G:c:s:m:l:K:U:r:"; #else - optstr = "aehuwxACDHIPSWYk:o:p:G:c:s:m:l:K:U:"; + optstr = "aehuwxACDHIPSWYk:f:o:p:G:c:s:m:l:K:U:"; #endif while ((c = getopt(argc, argv, optstr)) != -1) { switch (c) { @@ -1288,6 +1288,11 @@ main(int argc, char *argv[]) case 'C': set_config_bool("memory.guest_in_core", true); break; + case 'f': + if (qemu_fwcfg_parse_cmdline_arg(optarg) != 0) { + errx(EX_USAGE, "invalid fwcfg item '%s'", optarg); + } + break; case 'G': parse_gdb_options(optarg); break; diff --git a/usr.sbin/bhyve/qemu_fwcfg.c b/usr.sbin/bhyve/qemu_fwcfg.c index e88608d90cae..e845c70950b1 100644 --- a/usr.sbin/bhyve/qemu_fwcfg.c +++ b/usr.sbin/bhyve/qemu_fwcfg.c @@ -7,13 +7,18 @@ #include <sys/param.h> #include <sys/endian.h> +#include <sys/queue.h> +#include <sys/stat.h> #include <machine/vmm.h> #include <err.h> #include <errno.h> +#include <fcntl.h> +#include <stdio.h> #include <stdlib.h> #include <string.h> +#include <unistd.h> #include "acpi_device.h" #include "bhyverun.h" @@ -98,6 +103,15 @@ struct qemu_fwcfg_softc { static struct qemu_fwcfg_softc fwcfg_sc; +struct qemu_fwcfg_user_file { + STAILQ_ENTRY(qemu_fwcfg_user_file) chain; + uint8_t name[QEMU_FWCFG_MAX_NAME]; + uint32_t size; + void *data; +}; +static STAILQ_HEAD(qemu_fwcfg_user_file_list, + qemu_fwcfg_user_file) user_files = STAILQ_HEAD_INITIALIZER(user_files); + static int qemu_fwcfg_selector_port_handler(struct vmctx *const ctx __unused, const int in, const int port __unused, const int bytes, uint32_t *const eax, @@ -384,6 +398,22 @@ qemu_fwcfg_add_file(const char *name, const uint32_t size, void *const data) return (0); } +static int +qemu_fwcfg_add_user_files(void) +{ + const struct qemu_fwcfg_user_file *fwcfg_file; + int error; + + STAILQ_FOREACH(fwcfg_file, &user_files, chain) { + error = qemu_fwcfg_add_file(fwcfg_file->name, fwcfg_file->size, + fwcfg_file->data); + if (error) + return (error); + } + + return (0); +} + static const struct acpi_device_emul qemu_fwcfg_acpi_device_emul = { .name = QEMU_FWCFG_ACPI_DEVICE_NAME, .hid = QEMU_FWCFG_ACPI_HARDWARE_ID, @@ -458,6 +488,11 @@ qemu_fwcfg_init(struct vmctx *const ctx) } if ((error = qemu_fwcfg_add_item_file_dir()) != 0) { warnx("%s: Unable to add file_dir item", __func__); + } + + /* add user defined fwcfg files */ + if ((error = qemu_fwcfg_add_user_files()) != 0) { + warnx("%s: Unable to add user files", __func__); goto done; } @@ -468,3 +503,113 @@ done: return (error); } + +static void +qemu_fwcfg_usage(const char *opt) +{ + warnx("Invalid fw_cfg option \"%s\"", opt); + warnx("-f [name=]<name>,(string|file)=<value>"); +} + +/* + * Parses the cmdline argument for user defined fw_cfg items. The cmdline + * argument has the format: + * "-f [name=]<name>,(string|file)=<value>" + * + * E.g.: "-f opt/com.page/example,string=Hello" + */ +int +qemu_fwcfg_parse_cmdline_arg(const char *opt) +{ + struct qemu_fwcfg_user_file *fwcfg_file; + struct stat sb; + const char *opt_ptr, *opt_end; + ssize_t bytes_read; + int fd; + + fwcfg_file = malloc(sizeof(*fwcfg_file)); + if (fwcfg_file == NULL) { + warnx("Unable to allocate fw_cfg_user_file"); + return (ENOMEM); + } + + /* get pointer to <name> */ + opt_ptr = opt; + /* If [name=] is specified, skip it */ + if (strncmp(opt_ptr, "name=", sizeof("name=") - 1) == 0) { + opt_ptr += sizeof("name=") - 1; + } + + /* get the end of <name> */ + opt_end = strchr(opt_ptr, ','); + if (opt_end == NULL) { + qemu_fwcfg_usage(opt); + return (EINVAL); + } + + /* check if <name> is too long */ + if (opt_end - opt_ptr >= QEMU_FWCFG_MAX_NAME) { + warnx("fw_cfg name too long: \"%s\"", opt); + return (EINVAL); + } + + /* save <name> */ + strncpy(fwcfg_file->name, opt_ptr, opt_end - opt_ptr); + fwcfg_file->name[opt_end - opt_ptr] = '\0'; + + /* set opt_ptr and opt_end to <value> */ + opt_ptr = opt_end + 1; + opt_end = opt_ptr + strlen(opt_ptr); + + if (strncmp(opt_ptr, "string=", sizeof("string=") - 1) == 0) { + opt_ptr += sizeof("string=") - 1; + fwcfg_file->data = strdup(opt_ptr); + if (fwcfg_file->data == NULL) { + warnx("Can't duplicate fw_cfg_user_file string \"%s\"", + opt_ptr); + return (ENOMEM); + } + fwcfg_file->size = strlen(opt_ptr) + 1; + } else if (strncmp(opt_ptr, "file=", sizeof("file=") - 1) == 0) { + opt_ptr += sizeof("file=") - 1; + + fd = open(opt_ptr, O_RDONLY); + if (fd < 0) { + warn("Can't open fw_cfg_user_file file \"%s\"", + opt_ptr); + return (EINVAL); + } + + if (fstat(fd, &sb) < 0) { + warn("Unable to get size of file \"%s\"", opt_ptr); + close(fd); + return (-1); + } + + fwcfg_file->data = malloc(sb.st_size); + if (fwcfg_file->data == NULL) { + warnx( + "Can't allocate fw_cfg_user_file file \"%s\" (size: 0x%16lx)", + opt_ptr, sb.st_size); + close(fd); + return (ENOMEM); + } + bytes_read = read(fd, fwcfg_file->data, sb.st_size); + if (bytes_read < 0 || bytes_read != sb.st_size) { + warn("Unable to read file \"%s\"", opt_ptr); + free(fwcfg_file->data); + close(fd); + return (-1); + } + fwcfg_file->size = bytes_read; + + close(fd); + } else { + qemu_fwcfg_usage(opt); + return (EINVAL); + } + + STAILQ_INSERT_TAIL(&user_files, fwcfg_file, chain); + + return (0); +} diff --git a/usr.sbin/bhyve/qemu_fwcfg.h b/usr.sbin/bhyve/qemu_fwcfg.h index def0487fdf02..5c73e8309c6e 100644 --- a/usr.sbin/bhyve/qemu_fwcfg.h +++ b/usr.sbin/bhyve/qemu_fwcfg.h @@ -23,3 +23,4 @@ struct qemu_fwcfg_item { int qemu_fwcfg_add_file(const char *name, const uint32_t size, void *const data); int qemu_fwcfg_init(struct vmctx *const ctx); +int qemu_fwcfg_parse_cmdline_arg(const char *opt); From nobody Fri Aug 18 07:28:41 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtlZ13X6z4qqbT; Fri, 18 Aug 2023 07:28:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtlY6dR2z3DNK; Fri, 18 Aug 2023 07:28:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343721; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2xtYrA0BUl/eRSezIINUreKkNMlByNb5CjQBq2QdaEw=; b=GwXgu58DOsY1QKzxuZ/G+QTxhbJnUJLH6eyAMHG6Dc1OZWJdEIoom9gJ5cORtug0W0/Z/y tcRPXQPGLd+8iOJfMx/fur8RTbjiQOSLyYESl2gbq0lytKYaRkb97bEl41LOPp120AyvmY tQxeA7Rcj69hLytbnajsRcg+Ezd6cArHiz/ARPpfEhw0kTW0A6vO4hoBXOI4cAvQaTJoWr owBpULGX1vwsSX3DzbirZnM674TmBNqZRLKe58mORESXG1c3yYKk96KCC13C5c3ag4c0+y 7TYgZ9HwjkZDvi4ZubpioUJTXT2z61REqDa0spQSh84Lvsn5WsqAwnYFLnJDEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692343721; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2xtYrA0BUl/eRSezIINUreKkNMlByNb5CjQBq2QdaEw=; b=S7tPOolnF7/+yh9jZoXBn2OigOjSRWGje3BsxlJehwH02C0ljUVqCabJ7/yXrpMwGOR3Hu MSpszdSR2BS8mh3EBkwd87l65AUMgB/pI4S6mOyjwTy3U92HTh5MeX+4GdsMzLbROgHYVl HOGpgIVUInPjdD0Re8jp7Pq00VNXF9uA6O1ev9J8uzEta3Rakz3P4wtWARqtFv9HOFszqT e4DrY8mmOG/p2+icYcXe+9+1LwmcEJzPe9eoL0MH7xQjg4ousPkrj9/EOQmkdt0vcwaSTR kV4sOdvBw/ydJzYo4lyYgpj6L3dRCU6SFXwc0UonNGfJNJUIlwX2OXJT2+SNlw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343721; a=rsa-sha256; cv=none; b=cfjWEhDLhb6+o2kjH0NdcNdNB+G4BGXt8AJnNIXDQUE5wdIL9P0b8gn19kN+8FWvrYvv17 JzIAfm4ciEzizgt+iBF2ieMENRbGQUY6zArUZCZHiTWto9e7sHegDjHZUFdzb/scPCT00d i3pIUHznsuOQO2fYskMTZwBZuL0nweSAof6S9zs1BB+MtR+Wjy4YXYWNCHLLxxQWom2wFo l8WblQLAWi87arWAmXD0Jif1XO7IkbvY840DyhCu69MRvC+uLZw3rEkD4ooJTN3Ij7eopL asgjCOtMMkDmqLY6m2wwKgO06jpalFmyi0uPdeIemVLgKTWVjb5lFim5xCMwYg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRtlY5Kp7z16RQ; Fri, 18 Aug 2023 07:28: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 37I7SfN5034293; Fri, 18 Aug 2023 07:28:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7Sf7h034290; Fri, 18 Aug 2023 07:28:41 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:28:41 GMT Message-Id: <202308180728.37I7Sf7h034290@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: b3f053b4f46e - stable/13 - bhyve: allow adding FwCfg items to ACPI tables List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b3f053b4f46ef1b1c64b2e2870f7cd172941946b Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=b3f053b4f46ef1b1c64b2e2870f7cd172941946b commit b3f053b4f46ef1b1c64b2e2870f7cd172941946b Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2022-07-22 08:58:01 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:25:06 +0000 bhyve: allow adding FwCfg items to ACPI tables A TPM has an event log. Therefore, qemu adds a FwCfg item and adds it to an ACPI table. We like to use the same OVMF driver as qemu, so we should do the same. This commit adds the ability to basl to do it. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40451 (cherry picked from commit 4e46ab0ebe96b56d4fa7ea7df4a81cd533109f07) --- usr.sbin/bhyve/basl.c | 17 +++++++++++++++++ usr.sbin/bhyve/basl.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/usr.sbin/bhyve/basl.c b/usr.sbin/bhyve/basl.c index 348174c6520d..90cb608aecc6 100644 --- a/usr.sbin/bhyve/basl.c +++ b/usr.sbin/bhyve/basl.c @@ -490,6 +490,23 @@ basl_table_append_content(struct basl_table *table, void *data, uint32_t len) len - sizeof(ACPI_TABLE_HEADER))); } +int +basl_table_append_fwcfg(struct basl_table *const table, + const uint8_t *fwcfg_name, const uint32_t alignment, const uint8_t size) +{ + assert(table != NULL); + assert(fwcfg_name != NULL); + assert(size <= sizeof(uint64_t)); + + BASL_EXEC(qemu_loader_alloc(basl_loader, fwcfg_name, alignment, + QEMU_LOADER_ALLOC_HIGH)); + BASL_EXEC(qemu_loader_add_pointer(basl_loader, table->fwcfg_name, + fwcfg_name, table->len, size)); + BASL_EXEC(basl_table_append_int(table, 0, size)); + + return (0); +} + int basl_table_append_gas(struct basl_table *const table, const uint8_t space_id, const uint8_t bit_width, const uint8_t bit_offset, diff --git a/usr.sbin/bhyve/basl.h b/usr.sbin/bhyve/basl.h index 4d9ab4c589a8..e12173b701a2 100644 --- a/usr.sbin/bhyve/basl.h +++ b/usr.sbin/bhyve/basl.h @@ -82,6 +82,9 @@ int basl_table_append_checksum(struct basl_table *table, uint32_t start, /* Add an ACPI_TABLE_* to basl without its header. */ int basl_table_append_content(struct basl_table *table, void *data, uint32_t len); +int basl_table_append_fwcfg(struct basl_table *table, + const uint8_t *fwcfg_name, uint32_t alignment, + uint8_t size); int basl_table_append_gas(struct basl_table *table, uint8_t space_id, uint8_t bit_width, uint8_t bit_offset, uint8_t access_width, uint64_t address); From nobody Fri Aug 18 07:41:43 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2b4rkmz4qrNm; Fri, 18 Aug 2023 07:41: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 4RRv2b40d0z3FkB; Fri, 18 Aug 2023 07:41:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344503; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c5fOY8mgMLkxXhFnSbXMWiICihaN+Vx47XYnXHt5IxQ=; b=sa6uG1xYg+I+Vw0fKvksArdKoSEfCyT6kFbk0M33PS8mK/ZshkEUzWqi3KkD5/AP7qL/qe C+EJE8B2tf+xvNTKdCLHLpSgHrmLeguqgapwXA0/oe2u3E/TasFt4qWzog/BV9rBp82a8k VyEXOBQqwmqsAqN/JUGTv5jSU/pRU23E6fZGwkXL+rNHg/oh1Kq1EaBJBMICHyB0gMJ3ae 4VPxeojZAGi/zNm7cn5WKUANw/FOKrXIfB73lMQ4Wd0gGSzEM1gq2fK/iOYzjuev1DJzwq /qfq1/8a0kFYqw/IYeg3gKvqPArNFDLFYssZ+M6HO1CFSaQAD/9+Cts/CAx0dA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344503; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c5fOY8mgMLkxXhFnSbXMWiICihaN+Vx47XYnXHt5IxQ=; b=CGjNvlIMtG2jShzSENt1YILW9UoLHzokvc0Rtl39h2OYMqHKKIQ45mD4LIIQGtFBgyyq1G anjJbBAC6ILCTw6GC8vtVBNdRthqeWdl/4l7BsJ+cAeEBy3KNYsPzde7BQC+g3fAwN01jF BtSr1MaVWH8CuLVTdXNFMGZVtT4meDLpxY0i6+8EkwvM0bFuW+eqQQBWug+2h7WGfkaJGc AF1c9MQChI7BXc/8p4RihXs0+hJjvlxnjio3Nt+gSbR9fS4GpGjc2m/cUKVgjTkmW4yra8 /AOTFRudZqucwd29JHNcD1WJ9bjQcVLUoeumrSRnbe/nS9wISOPuoLZCP8v0FQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344503; a=rsa-sha256; cv=none; b=AGmDLk3lkYsdTt/j+ks2XILns8nAwAVUh26Y5tfyEUgzytk54gXadLUHKw8KrmrJ8oCDvT PVkmjeGAbTr7cFsfRVZ+M6kv4qYlkdS2xZaDugnH3Gvb39iQpJDsKY/TzntG2pIWj5N9co c/2dIRWkOqR92oUfneDmnpv8xaJyN0lejGdpk8jkqoR5Dkjnsr3p9/MxnX5WOnDY3yXUex 1jgYzQm7WR61YH5dfkja3E5YcgN7q2hPd8cENfV5qmB1EhRdA0+GlwayhQcuk2sOXFYnxG 9Za1Rj5FNLiQHVxTvpPRZ+UFVUVJ85pOvHvPdjq0GgsvkE8d3Y79vmifGeudag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2b33tdz16tD; Fri, 18 Aug 2023 07:41: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 37I7fhJD065700; Fri, 18 Aug 2023 07:41:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fhhR065697; Fri, 18 Aug 2023 07:41:43 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:43 GMT Message-Id: <202308180741.37I7fhhR065697@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 194d65b5f860 - stable/13 - bhyve: make passthru sel public available List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 194d65b5f86024a0d0e63b16710b0d04c74ad250 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=194d65b5f86024a0d0e63b16710b0d04c74ad250 commit 194d65b5f86024a0d0e63b16710b0d04c74ad250 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-10 10:19:49 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:29:26 +0000 bhyve: make passthru sel public available The GVT-d emulation requires access to this selector to read from the device. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40035 (cherry picked from commit 60793cee27993048864f60e3c19039386e4a4ab0) --- usr.sbin/bhyve/pci_passthru.c | 8 ++++++++ usr.sbin/bhyve/pci_passthru.h | 1 + 2 files changed, 9 insertions(+) diff --git a/usr.sbin/bhyve/pci_passthru.c b/usr.sbin/bhyve/pci_passthru.c index 2475a574249c..10e77990c283 100644 --- a/usr.sbin/bhyve/pci_passthru.c +++ b/usr.sbin/bhyve/pci_passthru.c @@ -660,6 +660,14 @@ done: return (error); } +struct pcisel * +passthru_get_sel(struct passthru_softc *sc) +{ + assert(sc != NULL); + + return (&sc->psc_sel); +} + int set_pcir_handler(struct passthru_softc *sc, int reg, int len, cfgread_handler rhandler, cfgwrite_handler whandler) diff --git a/usr.sbin/bhyve/pci_passthru.h b/usr.sbin/bhyve/pci_passthru.h index d18839e116fa..9b9293cdba7b 100644 --- a/usr.sbin/bhyve/pci_passthru.h +++ b/usr.sbin/bhyve/pci_passthru.h @@ -24,5 +24,6 @@ int passthru_cfgread_emulate(struct passthru_softc *sc, struct pci_devinst *pi, int coff, int bytes, uint32_t *rv); int passthru_cfgwrite_emulate(struct passthru_softc *sc, struct pci_devinst *pi, int coff, int bytes, uint32_t val); +struct pcisel *passthru_get_sel(struct passthru_softc *sc); int set_pcir_handler(struct passthru_softc *sc, int reg, int len, cfgread_handler rhandler, cfgwrite_handler whandler); From nobody Fri Aug 18 07:41:44 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2c71bhz4qrLK; Fri, 18 Aug 2023 07:41: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 4RRv2c5XVMz3Fsf; Fri, 18 Aug 2023 07:41:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344504; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kiIxTNFiyYKiY4M6bICBw6Q1YQVl0kBZdDD+VE4CJt8=; b=ZY320oydF3Pq47gojvMGuJbk9ZFwc+EQzlKTxCYZfPmSqjsO9kRmvNMdHgqMsuJGeCmF1g 68RtudJZjoSJxdDXC5e2G0lgpbWhoZr3yhclGJom/Fc7KZ8/Hbh+RTrIo6kR0VUX0imy0k VsYGY1TWQPl4fzD9ZauxBN+sk7cDFgPly+d3nAOhl/3Y60XyGJ3mxhYQc2oGyI7xJ3hxLR yR8aPcBU+PRITyAJ/R7HFtw2tmsloYpLGZgiD9tFEA3QXBGY8hHwhIyJwsmIDUQvpJZnMS 4xE725c+pqmwTzHVE/pNmDetwQ1kMMoGdAuYxekLY8bkV4sQmz57fnOnNRxWMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344504; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kiIxTNFiyYKiY4M6bICBw6Q1YQVl0kBZdDD+VE4CJt8=; b=iW+IISRPciF/4UFSIH/jJhiAY/8h04QMBvMpZOzmzLc2xvsrO9LqM1FZGPhN2FA4x3QiAr w2r6I3n6Ag93QKPbJpHVQZTgo2je7H6auJevr8ECnwpJTzovpPAH/kUScTWY2J0lrPTlRZ /K2SEzRnKpWEHhR7eOhAwTgs3/D1ETPYESd6ktQBW4N0Ww2DSKadGrAYJfkZYHtQodRK/u yqG850jMnYvpvwre5rQsBNJRdfr3Y83uUnJLGxbNDNGxQ2V1PsT4w39Xd0juBU3a9UM2hN xCWVPWrVXzirNJgZ3pNGP6HfMxJqTCKI0KsfArieZ2F8VHXQqeMg4sipJQg/CQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344504; a=rsa-sha256; cv=none; b=V63L/oZxwIDb23CC94Nl9cZxc/Xu/g15SelKx9hMp4tA3bjoI8PL3ceU0GYT36iTP9EhCs cN28uttdaFcWmwA70Ma19mFkUvSH+gxe/4YPAlypLsChZx2Kc8/zl9mvfTCYIi2nXCiCkt r4stnjwRNuz6JXmkRbUAza0D6u+ICEboDnzl3TaFu2DyiJKZWhXlVD+iqPyGVelYYvYHR6 /s9tgAaIY6MrmRzN5Q9MfnQN5zThbA8h5aq52Q/9y2SYQIeKIWmkJih0DxSAM2XndTJNx8 n4RKJBlTzZt/RjAzyv+r/PuwYRN9Q4SEOycMBwprVDgOIc/75h47b2K0fcuZMA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2c43j6z176T; Fri, 18 Aug 2023 07:41: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 37I7fieA065755; Fri, 18 Aug 2023 07:41:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fi3E065752; Fri, 18 Aug 2023 07:41:44 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:44 GMT Message-Id: <202308180741.37I7fi3E065752@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 7ffa1d667f74 - stable/13 - bhyve: add helper for passthru specific mmio ranges List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 7ffa1d667f748bc6dd84a63ff5f805a1d99c9124 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=7ffa1d667f748bc6dd84a63ff5f805a1d99c9124 commit 7ffa1d667f748bc6dd84a63ff5f805a1d99c9124 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-10 10:22:33 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:29:26 +0000 bhyve: add helper for passthru specific mmio ranges Intel GPUs have two special memory regions. They are called Graphics Stolen Memory and OpRegion. bhyve has to emulate both of them. In order to keep track of those special regions, add generic mmio ranges to the passthru emulation. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40036 (cherry picked from commit 93cf93179c505cebbcdbeef196d523d36890ed4a) --- usr.sbin/bhyve/pci_passthru.c | 12 ++++++++++++ usr.sbin/bhyve/pci_passthru.h | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/usr.sbin/bhyve/pci_passthru.c b/usr.sbin/bhyve/pci_passthru.c index 10e77990c283..d6978a1be822 100644 --- a/usr.sbin/bhyve/pci_passthru.c +++ b/usr.sbin/bhyve/pci_passthru.c @@ -78,6 +78,8 @@ __FBSDID("$FreeBSD$"); #define MSIX_TABLE_COUNT(ctrl) (((ctrl) & PCIM_MSIXCTRL_TABLE_SIZE) + 1) #define MSIX_CAPLEN 12 +#define PASSTHRU_MMIO_MAX 2 + static int pcifd = -1; struct passthru_softc { @@ -94,6 +96,7 @@ struct passthru_softc { } psc_msix; struct pcisel psc_sel; + struct passthru_mmio_mapping psc_mmio_map[PASSTHRU_MMIO_MAX]; cfgread_handler psc_pcir_rhandler[PCI_REGMAX + 1]; cfgwrite_handler psc_pcir_whandler[PCI_REGMAX + 1]; }; @@ -660,6 +663,15 @@ done: return (error); } +struct passthru_mmio_mapping * +passthru_get_mmio(struct passthru_softc *sc, int num) +{ + assert(sc != NULL); + assert(num < PASSTHRU_MMIO_MAX); + + return (&sc->psc_mmio_map[num]); +} + struct pcisel * passthru_get_sel(struct passthru_softc *sc) { diff --git a/usr.sbin/bhyve/pci_passthru.h b/usr.sbin/bhyve/pci_passthru.h index 9b9293cdba7b..7ce12a27bba4 100644 --- a/usr.sbin/bhyve/pci_passthru.h +++ b/usr.sbin/bhyve/pci_passthru.h @@ -11,6 +11,14 @@ #include "pci_emul.h" +struct passthru_mmio_mapping { + vm_paddr_t gpa; /* guest physical address */ + void *gva; /* guest virtual address */ + vm_paddr_t hpa; /* host physical address */ + void *hva; /* guest virtual address */ + vm_paddr_t len; +}; + struct passthru_softc; typedef int (*cfgread_handler)(struct passthru_softc *sc, @@ -24,6 +32,8 @@ int passthru_cfgread_emulate(struct passthru_softc *sc, struct pci_devinst *pi, int coff, int bytes, uint32_t *rv); int passthru_cfgwrite_emulate(struct passthru_softc *sc, struct pci_devinst *pi, int coff, int bytes, uint32_t val); +struct passthru_mmio_mapping *passthru_get_mmio(struct passthru_softc *sc, + int num); struct pcisel *passthru_get_sel(struct passthru_softc *sc); int set_pcir_handler(struct passthru_softc *sc, int reg, int len, cfgread_handler rhandler, cfgwrite_handler whandler); From nobody Fri Aug 18 07:41:45 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2f1S5kz4qrFX; Fri, 18 Aug 2023 07: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 4RRv2d6FCXz3FnZ; Fri, 18 Aug 2023 07:41:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344505; h=from:from:reply-to:subject:subject: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+zzv6VnZqQE6nigHleZHHbEjp8u3XCBrWCnj3Pl83o=; b=Sw8iuBfTYvk0dz5biQ52kQV9C0GFuqtFrqgkmZU0hA8iTaUpVJ9vip8BYE/FVYRewFK8Dk bwXzN+vSVEWYnfiSfEnxkb+48auHGIk00l2gHSqV23ZM/4QK0xEgBDZZSoUXKgK0LH+3cO nXJGwkaHd5vBEjJVP2nzUW+UADSRPbFBqFTW+iI3RumN2zBOy4Gty7dHMjeR7+ViftL3kC XFqVJ3bDOGtC6A9Ttm1a1rNzUviK8nguI5J9pUG5WIbsN3kpum7ciOGGyIVSD5Rbl9dhhB ivrqK1DZZ5foCcYSUCAs8ZltP5jLTodFo3A4UOrU0+qEmZQ1XvYvY6DHQ3VsSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344505; h=from:from:reply-to:subject:subject: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+zzv6VnZqQE6nigHleZHHbEjp8u3XCBrWCnj3Pl83o=; b=RCnMGyRANzLg6XNu26b6DrgUlwg8Q2LxiMJsaZl9O54J6vEWN7SivQFmXcsCCpl14epoNO Cq3Y5BPa2VOG5ZZGlygCm5vHa/4WByKvWO6+zuE36VdxehtI2SNGfCIb5gFFh+ZMTvu+mo zUJ4AEJXMG9xH5VFx64SVc/gYMJswxYEe8z3om6pCCc729nHrUwJqJQ7pWWxMEZECzTV+g yIXh78S3d+TI6GlqLirGsUsmaiyj/nQbQwMoNwQYV0TLh4zMxqu45xzmduTePoucy9H13p o4VK0LBShgBpGjgq4Nx0t8yxpg/vb42PEApFBC2I5dt24BwPY3FUdyqC0SYv8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344505; a=rsa-sha256; cv=none; b=Av033rs5qG1ifmDU/1s/RsYqJSYtFOuM7JJ1ntBz3lnCHpby40YdEG35kBOl6KXIX75XoT aZlrU4pXExUClOdGLiQwXCAbFQzGp327hk7xqtl3JcQtq7FckrMbNJSJIn+6deJp1ebuJL VoONVqGiJgYy+TzI+/0y3IJZBD70Lz72kcCFYP3XL4FpohSkmZqWwcdLHnE7tx7EPAaVdl /NppbiyFv6dMwa7wOsie9UzkefhJWbGKygMuVcH+8y+nsLS7k6IlkVC/0FKZoHxEgEcinr Mej8JznvfVmULCXc15ubCL/f6C0ws5yNperWOGx0sn5Om2vyr4inis8e8cl0VQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2d531rz176V; Fri, 18 Aug 2023 07:41: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 37I7fjcK065797; Fri, 18 Aug 2023 07:41:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fjqU065794; Fri, 18 Aug 2023 07:41:45 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:45 GMT Message-Id: <202308180741.37I7fjqU065794@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 6ae7ed9e3854 - stable/13 - bhyve: import OpRegion definitions List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 6ae7ed9e3854e92d776b650e12f54391432c6470 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=6ae7ed9e3854e92d776b650e12f54391432c6470 commit 6ae7ed9e3854e92d776b650e12f54391432c6470 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-10 10:25:19 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:29:27 +0000 bhyve: import OpRegion definitions Those definitions are required for the GVT-d emulation to parse the OpRegion. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40037 (cherry picked from commit b67f0d360b87d6e8a71ab5118a8acb350505c20a) --- usr.sbin/bhyve/pci_gvt-d-opregion.h | 186 ++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) diff --git a/usr.sbin/bhyve/pci_gvt-d-opregion.h b/usr.sbin/bhyve/pci_gvt-d-opregion.h new file mode 100644 index 000000000000..f506f1449e48 --- /dev/null +++ b/usr.sbin/bhyve/pci_gvt-d-opregion.h @@ -0,0 +1,186 @@ +/** @file + IGD OpRegion definition from Intel Integrated Graphics Device OpRegion + Specification. + + https://01.org/sites/default/files/documentation/skl_opregion_rev0p5.pdf + + Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +/* + * See + * <https://github.com/tianocore/edk2-platforms/blob/82979ab1ca44101e0b92a9c4bda1dfe64a8249f6/Silicon/Intel/IntelSiliconPkg/Include/IndustryStandard/IgdOpRegion.h> + */ + +#pragma once + +#include <sys/types.h> + +#define IGD_OPREGION_HEADER_SIGN "IntelGraphicsMem" +#define IGD_OPREGION_HEADER_MBOX1 BIT0 +#define IGD_OPREGION_HEADER_MBOX2 BIT1 +#define IGD_OPREGION_HEADER_MBOX3 BIT2 +#define IGD_OPREGION_HEADER_MBOX4 BIT3 +#define IGD_OPREGION_HEADER_MBOX5 BIT4 + +#define IGD_OPREGION_VBT_SIZE_6K (6 * 1024UL) + +/** + OpRegion structures: + Sub-structures define the different parts of the OpRegion followed by the + main structure representing the entire OpRegion. + @note These structures are packed to 1 byte offsets because the exact + data location is required by the supporting design specification due to + the fact that the data is used by ASL and Graphics driver code compiled + separately. +**/ + +/// +/// OpRegion Mailbox 0 Header structure. The OpRegion Header is used to +/// identify a block of memory as the graphics driver OpRegion. +/// Offset 0x0, Size 0x100 +/// +struct igd_opregion_header { + int8_t sign[0x10]; ///< Offset 0x00 OpRegion Signature + uint32_t size; ///< Offset 0x10 OpRegion Size + uint32_t over; ///< Offset 0x14 OpRegion Structure Version + uint8_t sver[0x20]; ///< Offset 0x18 System BIOS Build Version + uint8_t vver[0x10]; ///< Offset 0x38 Video BIOS Build Version + uint8_t gver[0x10]; ///< Offset 0x48 Graphic Driver Build Version + uint32_t mbox; ///< Offset 0x58 Supported Mailboxes + uint32_t dmod; ///< Offset 0x5C Driver Model + uint32_t pcon; ///< Offset 0x60 Platform Configuration + int16_t dver[0x10]; ///< Offset 0x64 GOP Version + uint8_t rm01[0x7C]; ///< Offset 0x84 Reserved Must be zero +} __packed; + +/// +/// OpRegion Mailbox 1 - Public ACPI Methods +/// Offset 0x100, Size 0x100 +/// +struct igd_opregion_mbox1 { + uint32_t drdy; ///< Offset 0x100 Driver Readiness + uint32_t csts; ///< Offset 0x104 Status + uint32_t cevt; ///< Offset 0x108 Current Event + uint8_t rm11[0x14]; ///< Offset 0x10C Reserved Must be Zero + uint32_t didl[8]; ///< Offset 0x120 Supported Display Devices ID List + uint32_t + cpdl[8]; ///< Offset 0x140 Currently Attached Display Devices List + uint32_t + cadl[8]; ///< Offset 0x160 Currently Active Display Devices List + uint32_t nadl[8]; ///< Offset 0x180 Next Active Devices List + uint32_t aslp; ///< Offset 0x1A0 ASL Sleep Time Out + uint32_t tidx; ///< Offset 0x1A4 Toggle Table Index + uint32_t chpd; ///< Offset 0x1A8 Current Hotplug Enable Indicator + uint32_t clid; ///< Offset 0x1AC Current Lid State Indicator + uint32_t cdck; ///< Offset 0x1B0 Current Docking State Indicator + uint32_t sxsw; ///< Offset 0x1B4 Display Switch Notification on Sx + ///< StateResume + uint32_t evts; ///< Offset 0x1B8 Events supported by ASL + uint32_t cnot; ///< Offset 0x1BC Current OS Notification + uint32_t NRDY; ///< Offset 0x1C0 Driver Status + uint8_t did2[0x1C]; ///< Offset 0x1C4 Extended Supported Devices ID + ///< List(DOD) + uint8_t + cpd2[0x1C]; ///< Offset 0x1E0 Extended Attached Display Devices List + uint8_t rm12[4]; ///< Offset 0x1FC - 0x1FF Reserved Must be zero +} __packed; + +/// +/// OpRegion Mailbox 2 - Software SCI Interface +/// Offset 0x200, Size 0x100 +/// +struct igd_opregion_mbox2 { + uint32_t scic; ///< Offset 0x200 Software SCI Command / Status / Data + uint32_t parm; ///< Offset 0x204 Software SCI Parameters + uint32_t dslp; ///< Offset 0x208 Driver Sleep Time Out + uint8_t rm21[0xF4]; ///< Offset 0x20C - 0x2FF Reserved Must be zero +} __packed; + +/// +/// OpRegion Mailbox 3 - BIOS/Driver Notification - ASLE Support +/// Offset 0x300, Size 0x100 +/// +struct igd_opregion_mbox3 { + uint32_t ardy; ///< Offset 0x300 Driver Readiness + uint32_t aslc; ///< Offset 0x304 ASLE Interrupt Command / Status + uint32_t tche; ///< Offset 0x308 Technology Enabled Indicator + uint32_t alsi; ///< Offset 0x30C Current ALS Luminance Reading + uint32_t bclp; ///< Offset 0x310 Requested Backlight Brightness + uint32_t pfit; ///< Offset 0x314 Panel Fitting State or Request + uint32_t cblv; ///< Offset 0x318 Current Brightness Level + uint16_t bclm[0x14]; ///< Offset 0x31C Backlight Brightness Levels Duty + ///< Cycle Mapping Table + uint32_t cpfm; ///< Offset 0x344 Current Panel Fitting Mode + uint32_t epfm; ///< Offset 0x348 Enabled Panel Fitting Modes + uint8_t plut[0x4A]; ///< Offset 0x34C Panel Look Up Table & Identifier + uint32_t pfmb; ///< Offset 0x396 PWM Frequency and Minimum Brightness + uint32_t ccdv; ///< Offset 0x39A Color Correction Default Values + uint32_t pcft; ///< Offset 0x39E Power Conservation Features + uint32_t srot; ///< Offset 0x3A2 Supported Rotation Angles + uint32_t iuer; ///< Offset 0x3A6 Intel Ultrabook(TM) Event Register + uint64_t fdss; ///< Offset 0x3AA DSS Buffer address allocated for IFFS + ///< feature + uint32_t fdsp; ///< Offset 0x3B2 Size of DSS buffer + uint32_t stat; ///< Offset 0x3B6 State Indicator + uint64_t rvda; ///< Offset 0x3BA Absolute/Relative Address of Raw VBT + ///< Data from OpRegion Base + uint32_t rvds; ///< Offset 0x3C2 Raw VBT Data Size + uint8_t rsvd2[0x3A]; ///< Offset 0x3C6 - 0x3FF Reserved Must be zero. + ///< Bug in spec 0x45(69) +} __packed; + +/// +/// OpRegion Mailbox 4 - VBT Video BIOS Table +/// Offset 0x400, Size 0x1800 +/// +struct igd_opregion_mbox4 { + uint8_t rvbt[IGD_OPREGION_VBT_SIZE_6K]; ///< Offset 0x400 - 0x1BFF Raw + ///< VBT Data +} __packed; + +/// +/// OpRegion Mailbox 5 - BIOS/Driver Notification - Data storage BIOS to Driver +/// data sync Offset 0x1C00, Size 0x400 +/// +struct igd_opregion_mbox5 { + uint32_t phed; ///< Offset 0x1C00 Panel Header + uint8_t bddc[0x100]; ///< Offset 0x1C04 Panel EDID (DDC data) + uint8_t rm51[0x2FC]; ///< Offset 0x1D04 - 0x1FFF Reserved Must be zero +} __packed; + +/// +/// IGD OpRegion Structure +/// +struct igd_opregion { + struct igd_opregion_header + header; ///< OpRegion header (Offset 0x0, Size 0x100) + struct igd_opregion_mbox1 mbox1; ///< Mailbox 1: Public ACPI Methods + ///< (Offset 0x100, Size 0x100) + struct igd_opregion_mbox2 mbox2; ///< Mailbox 2: Software SCI Interface + ///< (Offset 0x200, Size 0x100) + struct igd_opregion_mbox3 + mbox3; ///< Mailbox 3: BIOS to Driver Notification (Offset 0x300, + ///< Size 0x100) + struct igd_opregion_mbox4 mbox4; ///< Mailbox 4: Video BIOS Table (VBT) + ///< (Offset 0x400, Size 0x1800) + struct igd_opregion_mbox5 + mbox5; ///< Mailbox 5: BIOS to Driver Notification Extension (Offset + ///< 0x1C00, Size 0x400) +} __packed; + +/// +/// VBT Header Structure +/// +struct vbt_header { + uint8_t product_string[20]; + uint16_t version; + uint16_t header_size; + uint16_t table_size; + uint8_t checksum; + uint8_t reserved1; + uint32_t bios_data_offset; + uint32_t aim_data_offset[4]; +} __packed; From nobody Fri Aug 18 07:41:46 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2g0wSmz4qrNn; Fri, 18 Aug 2023 07:41: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 4RRv2f6yPmz3G6n; Fri, 18 Aug 2023 07: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=1692344507; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2HjHZHn1FfIFIfOKZq3WRXpUiPt/z7Nsdae3N/7PZNc=; b=iGwlbqRBCPCneISzxZouuD0k54X9iEiQjvAXef10AQDOPdw8c6DnfoISM9FrRvzwIXBGL/ AXcbxndAEGXv5V31yN/9SQKls934vzAy+JjHbgsylOHOcB/DnYzBRQLJ64dTrotA38MkPs MtybGs50OyLpS4lufTt3UKghrc/MALzkAC/0SLifvS9SzIgwD1qgGmKfZDCxI7MC9AE9zF UjqhLdMgdY8ZVn3+1WIthKlnoQ+2TLWwGKRv9bpDJgOlaVpvFz4ESwjzNZ3v8FDINJhbr5 M8xqWBFZEyjTq7wyEdbjoko1+YCrCBXsSE6u0UMhxjQccJDQ5oa2BL92TToGwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344507; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2HjHZHn1FfIFIfOKZq3WRXpUiPt/z7Nsdae3N/7PZNc=; b=OEJyLAA2WL+CUwfw3ZmKI+Tt4OiYfXHBQV40E/6PIlr7NtSn+rPLT0x0Zw8HSObPluBH8W gjnXl+MoGVzMOwmB3EwW+p8ompoLidcA1YNyyXa5EfY3sM/MIV3uahgX4/UmW4RgARmoPF NvwIFZsPSHbbSgaJphDGT8A89pDcUDX61eAQPbdyxgZOtGEv1QVGSxziwNj/9JU2O7fJ69 BirxU/OPNpCr3YiBpy9cl3Ewcm+OwbmS1TZlQAgOTGFODgTOEqGu5+Xp7Rk9RZ90b0vvFv nrvQKtzHZtzq53jzyu980FpXruTG+KSO06oT2CozzsJlJn0KcWP6yF2A7PcHQQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344507; a=rsa-sha256; cv=none; b=w1+p9pGoGuULma/yQcMFSwlGCNu2B2vV7LmHleDtRvjAVeSNUahqzZ+TXq7mv0qKguTzyg 7cdGINlszrsR5SBXZeyvpUS9T2nV6eYI6pRMP7IsuLlep6ez1RycNd223g1RkZdNigR92U nQzwyO8m7dFyg15ANEbsz4W3I3Vqdu4X4CTbMYzLtuwdrxqrfZsOC6kIZgHHJprcIXkfiy T6pTE8+ytyidZGlTFEAWY4w0K3wkET4ykbFXsRg3srW1mR/FZO1dCZuxbLY5nB2TK6PJIS W8t0JnNWCwi/EhoO4MxGPrJL7SEhZEhL6RBriHIjyAMkVmJMPEGBAmYLtJw+2Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2f63HWz16tG; Fri, 18 Aug 2023 07: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 37I7fkRM065842; Fri, 18 Aug 2023 07: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 37I7fkYM065839; Fri, 18 Aug 2023 07:41:46 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:46 GMT Message-Id: <202308180741.37I7fkYM065839@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 3b81aa26ab4c - stable/13 - bhyve: add empty GVT-d emulation List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3b81aa26ab4c8fb360d25a6cd2fedc49cff67e51 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=3b81aa26ab4c8fb360d25a6cd2fedc49cff67e51 commit 3b81aa26ab4c8fb360d25a6cd2fedc49cff67e51 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-10 10:31:50 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:32:05 +0000 bhyve: add empty GVT-d emulation Don't emulate anything yet. Just check if the user would like to pass an Intel GPU to the guest. Reviewed by: jhb, markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40038 (cherry picked from commit 90c3a1b6629c80a7e4c3fa86d6b794596fdf06b4) --- usr.sbin/bhyve/Makefile | 1 + usr.sbin/bhyve/pci_gvt-d.c | 55 +++++++++++++++++++++++++++++++++++++++++++ usr.sbin/bhyve/pci_passthru.c | 22 ++++++++++++++++- usr.sbin/bhyve/pci_passthru.h | 10 ++++++++ 4 files changed, 87 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile index c2b426359c22..2f282567eb87 100644 --- a/usr.sbin/bhyve/Makefile +++ b/usr.sbin/bhyve/Makefile @@ -45,6 +45,7 @@ SRCS= \ pci_emul.c \ pci_hda.c \ pci_fbuf.c \ + pci_gvt-d.c \ pci_hostbridge.c \ pci_irq.c \ pci_lpc.c \ diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c new file mode 100644 index 000000000000..767b8ee3127f --- /dev/null +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -0,0 +1,55 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2020 Beckhoff Automation GmbH & Co. KG + * Author: Corvin Köhne <c.koehne@beckhoff.com> + */ + +#include <sys/types.h> + +#include <dev/pci/pcireg.h> + +#include <errno.h> + +#include "pci_gvt-d-opregion.h" +#include "pci_passthru.h" + +#define PCI_VENDOR_INTEL 0x8086 + +static int +gvt_d_probe(struct pci_devinst *const pi) +{ + struct passthru_softc *sc; + uint16_t vendor; + uint8_t class; + + sc = pi->pi_arg; + + vendor = read_config(passthru_get_sel(sc), PCIR_VENDOR, 0x02); + if (vendor != PCI_VENDOR_INTEL) + return (ENXIO); + + class = read_config(passthru_get_sel(sc), PCIR_CLASS, 0x01); + if (class != PCIC_DISPLAY) + return (ENXIO); + + return (0); +} + +static int +gvt_d_init(struct pci_devinst *const pi __unused, nvlist_t *const nvl __unused) +{ + return (0); +} + +static void +gvt_d_deinit(struct pci_devinst *const pi __unused) +{ +} + +static struct passthru_dev gvt_d_dev = { + .probe = gvt_d_probe, + .init = gvt_d_init, + .deinit = gvt_d_deinit, +}; +PASSTHRU_DEV_SET(gvt_d_dev); diff --git a/usr.sbin/bhyve/pci_passthru.c b/usr.sbin/bhyve/pci_passthru.c index d6978a1be822..793fe3762530 100644 --- a/usr.sbin/bhyve/pci_passthru.c +++ b/usr.sbin/bhyve/pci_passthru.c @@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$"); #include <machine/vmm.h> -#include "config.h" #include "debug.h" #include "mem.h" #include "pci_passthru.h" @@ -82,6 +81,8 @@ __FBSDID("$FreeBSD$"); static int pcifd = -1; +SET_DECLARE(passthru_dev_set, struct passthru_dev); + struct passthru_softc { struct pci_devinst *psc_pi; /* ROM is handled like a BAR */ @@ -856,6 +857,8 @@ passthru_init(struct pci_devinst *pi, nvlist_t *nvl) { int bus, slot, func, error, memflags; struct passthru_softc *sc; + struct passthru_dev **devpp; + struct passthru_dev *devp, *dev = NULL; const char *value; sc = NULL; @@ -919,9 +922,26 @@ passthru_init(struct pci_devinst *pi, nvlist_t *nvl) if ((error = set_pcir_handler(sc, PCIR_COMMAND, 0x04, NULL, NULL)) != 0) goto done; + SET_FOREACH(devpp, passthru_dev_set) { + devp = *devpp; + assert(devp->probe != NULL); + if (devp->probe(pi) == 0) { + dev = devp; + break; + } + } + + if (dev != NULL) { + error = dev->init(pi, nvl); + if (error != 0) + goto done; + } + error = 0; /* success */ done: if (error) { + if (dev != NULL) + dev->deinit(pi); free(sc); vm_unassign_pptdev(pi->pi_vmctx, bus, slot, func); } diff --git a/usr.sbin/bhyve/pci_passthru.h b/usr.sbin/bhyve/pci_passthru.h index 7ce12a27bba4..49d2bb309f71 100644 --- a/usr.sbin/bhyve/pci_passthru.h +++ b/usr.sbin/bhyve/pci_passthru.h @@ -7,8 +7,11 @@ #pragma once +#include <sys/linker_set.h> + #include <vmmapi.h> +#include "config.h" #include "pci_emul.h" struct passthru_mmio_mapping { @@ -21,6 +24,13 @@ struct passthru_mmio_mapping { struct passthru_softc; +struct passthru_dev { + int (*probe)(struct pci_devinst *pi); + int (*init)(struct pci_devinst *pi, nvlist_t *nvl); + void (*deinit)(struct pci_devinst *pi); +}; +#define PASSTHRU_DEV_SET(x) DATA_SET(passthru_dev_set, x) + typedef int (*cfgread_handler)(struct passthru_softc *sc, struct pci_devinst *pi, int coff, int bytes, uint32_t *rv); typedef int (*cfgwrite_handler)(struct passthru_softc *sc, From nobody Fri Aug 18 07:41:47 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2h2Bfdz4qrXp; Fri, 18 Aug 2023 07:41: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 4RRv2h0gP8z3G2c; Fri, 18 Aug 2023 07:41:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344508; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DXcT1ky1AAwKgPOSoDpEQKq31hGqMA7uiP8jebZb8Yw=; b=qM/Qt9KMCDc7r/mX6DbN+j8WdFO8b9qVt7rsAlTWC/fdxS5JSK9mpafZKEiQnngWnQBQhI 4QRl2+sTk7LtT3m/MFczTn9QTVHGZ+Y64IfRKE8lQRtwd68tvKsJpFyUo+RFgaRnHTp6yV PwApienxv4EA/j9dVECt6gQTN0aof6ZazaSbBUa9HX4/8xgh2kCR5DMUIkVPic8z57g/UB /olYrDTcOBJDFCakj69NVfplPZ5KYngj1lTzlYPZV+nlnsrGwikKZF2TyNzbz66ZtrkoCE TnLrF3H/fkLQlgZsuLLgrOueBAMjIFyK9UQKSZ9kG8PB0ZpezSPv4S7F+gKJoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344508; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DXcT1ky1AAwKgPOSoDpEQKq31hGqMA7uiP8jebZb8Yw=; b=HkOWWDFlr9qW4FK5X7+dlsLohDUS0w5jSICY5gCn7CseavVINXJu5hRz1ymWL4MSEu/cwS 7G2BFgsJYuVZBTgiqkyglxNcmNd5gwTj2n+952u/oyja9YSvWZ/IdqJw5EgGHT4y7Wiq5B FomJwT7Y/oS8fc8qktQ4Fjlv0PfBuux5DYgT+yIZutQIZ8OIOP9z4xRBColHJh1C8GRzsj beFofZCGAyJve/CPYjMKx0KbYeIYMGyhWxVzxLE8hunQGcWIJQ2N7vzZXQMIYy7S1yEZdr dRAd278iSQPxev4CHMzbRz7sR/jB55lgmZOXS7GqJWmFXRLTOutP5nK/yXSsMQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344508; a=rsa-sha256; cv=none; b=C0phaawJDG4Br7oEkseeu/6n4qUEWO10Xrtm0tySUApMIkhhgBVx3khrcJU1bcV3gN7cu9 u4HSGD3WrtbD2PkWJQgAfHkZr4rAIB/RxtU14Q1wWI6VBjjSFuRSflng4Ip+T0AaygVKvh 6cJTMO4oLeivuvFAOK+ELjwdTRKpsJ8P/1nMzuw6FClk+sbWoUCsnOa2ZcMqhDADHT7Z3b 2uvMWV+FwafrMbEkuBGLLhCc/ccEwYAmG1i6g8f4R139nMfyjvcVIfNeIbtun3LuFMoOvG e0YrFWqCPVknbmGdgs0GZl0kVcZKBG6l72rtsMI2Q+4quPVwdmXTT/Qzg2mfng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2g6rfcz174m; Fri, 18 Aug 2023 07:41: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 37I7flgd066506; Fri, 18 Aug 2023 07:41:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7flI6066501; Fri, 18 Aug 2023 07:41:47 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:47 GMT Message-Id: <202308180741.37I7flI6066501@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 13a371bcdfdd - stable/13 - bhyve: read out graphics stolen memory address and size List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 13a371bcdfdde22344f01fbbb04e713c27424c32 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=13a371bcdfdde22344f01fbbb04e713c27424c32 commit 13a371bcdfdde22344f01fbbb04e713c27424c32 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-11 08:53:15 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:32:07 +0000 bhyve: read out graphics stolen memory address and size This is the first step to emulate the graphics stolen memory register. Note that the graphics stolen memory is somehow confusing. On the one hand the Intel Open Source HD Graphics Programmers' Reference Manual states that it's only GPU accessible. As the CPU can't access the area, the guest shouldn't need it. On the other hand, the Intel GOP driver refuses to work properly, if it's not set to a proper address. Intel itself maps it into the guest by EPT [1]. At the moment, we're not aware of any situation where this EPT mapping is required, so we don't do it yet. Intel also states that the Windows driver for Tiger Lake reads the address of the graphics stolen memory [2]. As the GVT-d code doesn't support Tiger Lake in its first implementation, we can't check how it behaves. We should keep an eye on it. [1] https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L655-L657 [2] https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L626-L629 Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40039 (cherry picked from commit 4a9bf50f408eb9f1acc220dba2b260ec610fd15b) --- usr.sbin/bhyve/pci_gvt-d.c | 73 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 767b8ee3127f..0be740921c92 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -6,6 +6,9 @@ */ #include <sys/types.h> +#include <sys/sysctl.h> + +#include <err.h> #include <dev/pci/pcireg.h> @@ -16,6 +19,8 @@ #define PCI_VENDOR_INTEL 0x8086 +#define GVT_D_MAP_GSM 0 + static int gvt_d_probe(struct pci_devinst *const pi) { @@ -36,12 +41,78 @@ gvt_d_probe(struct pci_devinst *const pi) return (0); } +/* + * Note that the graphics stolen memory is somehow confusing. On the one hand + * the Intel Open Source HD Graphics Programmers' Reference Manual states that + * it's only GPU accessible. As the CPU can't access the area, the guest + * shouldn't need it. On the other hand, the Intel GOP driver refuses to work + * properly, if it's not set to a proper address. + * + * Intel itself maps it into the guest by EPT [1]. At the moment, we're not + * aware of any situation where this EPT mapping is required, so we don't do it + * yet. + * + * Intel also states that the Windows driver for Tiger Lake reads the address of + * the graphics stolen memory [2]. As the GVT-d code doesn't support Tiger Lake + * in its first implementation, we can't check how it behaves. We should keep an + * eye on it. + * + * [1] + * https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L655-L657 + * [2] + * https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L626-L629 + */ static int -gvt_d_init(struct pci_devinst *const pi __unused, nvlist_t *const nvl __unused) +gvt_d_setup_gsm(struct pci_devinst *const pi) { + struct passthru_softc *sc; + struct passthru_mmio_mapping *gsm; + size_t sysctl_len; + int error; + + sc = pi->pi_arg; + + gsm = passthru_get_mmio(sc, GVT_D_MAP_GSM); + if (gsm == NULL) { + warnx("%s: Unable to access gsm", __func__); + return (-1); + } + + sysctl_len = sizeof(gsm->hpa); + error = sysctlbyname("hw.intel_graphics_stolen_base", &gsm->hpa, + &sysctl_len, NULL, 0); + if (error) { + warn("%s: Unable to get graphics stolen memory base", + __func__); + return (-1); + } + sysctl_len = sizeof(gsm->len); + error = sysctlbyname("hw.intel_graphics_stolen_size", &gsm->len, + &sysctl_len, NULL, 0); + if (error) { + warn("%s: Unable to get graphics stolen memory length", + __func__); + return (-1); + } + gsm->hva = NULL; /* unused */ + return (0); } +static int +gvt_d_init(struct pci_devinst *const pi, nvlist_t *const nvl __unused) +{ + int error; + + if ((error = gvt_d_setup_gsm(pi)) != 0) { + warnx("%s: Unable to setup Graphics Stolen Memory", __func__); + goto done; + } + +done: + return (error); +} + static void gvt_d_deinit(struct pci_devinst *const pi __unused) { From nobody Fri Aug 18 07:41:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2j3jTsz4qrFc; Fri, 18 Aug 2023 07:41:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2j28Nzz3G7q; Fri, 18 Aug 2023 07:41:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344509; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/+mkzK61223kZRJvmZqq/HdmSXHVJlhtXHUIe9ZTfRg=; b=GmeLiIxAt2EVQZPsIA2t1al1/gtR+Oxx2NYZYSm6orM5NCqhsX9lcbYurXTZb6mUjhIwc8 1MB0svYoeNw05HEXciFulWlNI3ncA09wY4CGfOmOs7VjT8JWaSLu5nsAv5ViGOciVuAmPT 18rnE3jZuLQ6MFSdJXQQu2cBtgGfvr2GGwhJruQDOloWINdpeXkP5Ufw/cDH0ovGA8AhCM nlshikUrrQCBBU+lD7kdg8mZMUXjsvgRmxBRDkb6vhxVhZL2iYP/h5RVjMIOeAaUWQ4HFm JX+w97pwrFrWaU9VtxFWnd+Ee+kwqLjyBjtvzqdzgDlP9RViR2CpUiw05iVgLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344509; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/+mkzK61223kZRJvmZqq/HdmSXHVJlhtXHUIe9ZTfRg=; b=NTHwVOjWkhZHsDs7Jfr4cQI8bHm4c6sc/XU/7h3WN1qAiZ90XTpKtR61FYnVYSrfrUQDxV Kwkirk8j9f/6CZKg4MKV6TqbCX8f3E7A1Y3hNaNs/ftSMPUWSN0asbTBsXX73EzLHSaBLP DoqAR3O6ucoJ2fabN9a8lcwZ5cjq1wKxu5kpXWYpxQSgRZ8Z1Oj3ICthR/guyU8hUiTBCv bpsFMC/7SgBtiAoDliV0EmCC4+djoY9X8G1h9Y3bZO+ftSaULLdYFJbhEqINu9k6v7oVNZ hL8GvINiXQUgFAsl/+cAiQRCeC8pfkWZFqDM0zBmKogoop21Dk1oJkF6lPMx5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344509; a=rsa-sha256; cv=none; b=eTiwW69d+BhbMaw1tdA4FkxuI+Wvh6KQPpWWsttG/3Awi4hgi0E6tCc7IfMTc3yBdTRJ6b perhthTRoe70PQpRy9MVSz0qj5YKy46dKnXpfCHCtmI3nJ0GZyBJYXkYvaPrAq45hoQWk9 2KJMdxYhEB1CXsFy08LUGXIHlk6Ws2Ug6iB70HoDiA3/8T2IyV1Iwr8/Waw3/ZjUg2NqOR BPXkb9zq+7zdX+zTZD203ybccTUoS6h6JN1HHpPv+7rlgkpvv6TLk2ftS/dDG93B9Im+lh zzOnYCzHRwaUDsslRCQcA1oJPOk6izF0jtpZ/Y2poSgd01pQkkJx0HLioqDyzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2j0ybfz16wF; Fri, 18 Aug 2023 07:41:49 +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 37I7fnOt066782; Fri, 18 Aug 2023 07:41:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fnmO066779; Fri, 18 Aug 2023 07:41:49 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:49 GMT Message-Id: <202308180741.37I7fnmO066779@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: aa598e677a7c - stable/13 - bhyve: allocate guest memory for graphics stolen memory List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: aa598e677a7c3e6cf8e8524e9e8015df9c28a9f9 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=aa598e677a7c3e6cf8e8524e9e8015df9c28a9f9 commit aa598e677a7c3e6cf8e8524e9e8015df9c28a9f9 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-11 09:10:07 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:32:07 +0000 bhyve: allocate guest memory for graphics stolen memory The graphics stolen memory is only GPU accessible. So, we don't have to copy any data to it as the guest will be unable to access it anyway. We just have to allocate and reserve some memory. That's done by adding an E820 entry for the graphics stolen memory. The guest firmware will pick up the E820 and reserve this range. Note that we try to reuse the host address as Intel states that newer Tiger Lake platforms need this [1]. [1] https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L626-L629 Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40059 (cherry picked from commit 1bd361eea28ae74b42d49bfc96b109a7eae9f3d3) --- usr.sbin/bhyve/pci_gvt-d.c | 64 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 0be740921c92..9c5b0906ec29 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -8,17 +8,24 @@ #include <sys/types.h> #include <sys/sysctl.h> -#include <err.h> - #include <dev/pci/pcireg.h> +#include <err.h> #include <errno.h> +#include "e820.h" #include "pci_gvt-d-opregion.h" #include "pci_passthru.h" +#define KB (1024UL) +#define MB (1024 * KB) +#define GB (1024 * MB) + #define PCI_VENDOR_INTEL 0x8086 +#define PCIM_BDSM_GSM_ALIGNMENT \ + 0x00100000 /* Graphics Stolen Memory is 1 MB aligned */ + #define GVT_D_MAP_GSM 0 static int @@ -41,6 +48,27 @@ gvt_d_probe(struct pci_devinst *const pi) return (0); } +static vm_paddr_t +gvt_d_alloc_mmio_memory(const vm_paddr_t host_address, const vm_paddr_t length, + const vm_paddr_t alignment, const enum e820_memory_type type) +{ + vm_paddr_t address; + + /* Try to reuse host address. */ + address = e820_alloc(host_address, length, E820_ALIGNMENT_NONE, type, + E820_ALLOCATE_SPECIFIC); + if (address != 0) { + return (address); + } + + /* + * We're not able to reuse the host address. Fall back to the highest usable + * address below 4 GB. + */ + return ( + e820_alloc(4 * GB, length, alignment, type, E820_ALLOCATE_HIGHEST)); +} + /* * Note that the graphics stolen memory is somehow confusing. On the one hand * the Intel Open Source HD Graphics Programmers' Reference Manual states that @@ -95,6 +123,38 @@ gvt_d_setup_gsm(struct pci_devinst *const pi) return (-1); } gsm->hva = NULL; /* unused */ + gsm->gva = NULL; /* unused */ + gsm->gpa = gvt_d_alloc_mmio_memory(gsm->hpa, gsm->len, + PCIM_BDSM_GSM_ALIGNMENT, E820_TYPE_RESERVED); + if (gsm->gpa == 0) { + warnx( + "%s: Unable to add Graphics Stolen Memory to E820 table (hpa 0x%lx len 0x%lx)", + __func__, gsm->hpa, gsm->len); + e820_dump_table(); + return (-1); + } + if (gsm->gpa != gsm->hpa) { + /* + * ACRN source code implies that graphics driver for newer Intel + * platforms like Tiger Lake will read the Graphics Stolen Memory + * address from an MMIO register. We have three options to solve this + * issue: + * 1. Patch the value in the MMIO register + * This could have unintended side effects. Without any + * documentation how this register is used by the GPU, don't do + * it. + * 2. Trap the MMIO register + * It's not possible to trap a single MMIO register. We need to + * trap a whole page. Trapping a bunch of MMIO register could + * degrade the performance noticeably. We have to test it. + * 3. Use an 1:1 host to guest mapping + * Maybe not always possible. As far as we know, no supported + * platform requires a 1:1 mapping. For that reason, just log a + * warning. + */ + warnx( + "Warning: Unable to reuse host address of Graphics Stolen Memory. GPU passthrough might not work properly."); + } return (0); } From nobody Fri Aug 18 07:41:50 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2k6zWPz4qrZ8; Fri, 18 Aug 2023 07:41: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 4RRv2k37Bmz3G3B; Fri, 18 Aug 2023 07:41:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ODmjbrFXg+j7arGU2KxCNzzbYP7xKrGi5i/P0kxsmyI=; b=l8btvmPuPLuPU7fCIBWuk99sc9YarsJAV7LyIrh2xIJbQPPyDQEBuWOz/di5Y5H+zE1wL9 xeSzabOS8FB7eYzNF1jftUfXSPkl9Re8lyI5H+QCTe6N8Yn0/JzEoaNYSChI7qCXqdAl/i IYI6ltEBdA1obzAi8vB0tGatbsOEQCTG/OQsGF/JQTKM6EzVsAtkTUiOpPd9pABH8A0Dbf mRdSmKtm+17G1wtyCynWWAFv5lvFKTdkf5BGl7jtozA8BsVanXysHIPudg4daqzR3BowNj 8xy9odeqt4pxzvG66fdAtRQUqGBVFT1MonFoC5P5hNZBBP3P3bg+kkF4WcX0/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ODmjbrFXg+j7arGU2KxCNzzbYP7xKrGi5i/P0kxsmyI=; b=Rr+xF0EFIiahipc0BPiMhQdr7JklnbgBYiZYuEdFMAijNS7qhmP695oymiZvXLu4sc0RwV KO9x8KCpQyJoGW513Qt4gWkieY8OG3wIfSSxGqugSN7rsKkmMa+oQVmdLni3CFH/CQeSA2 8ptbtYKgs4l4k32+cGma5TmyG7kGcY+72JC+U6EQqN7c8y4soFj5ZO/4FSmiGmfTFx5u4C 72IerrCtyKPLn1mvJy9aendmAwAqWrwBmSE85mJ1ZzOF9c1xJKYmMIn7+BDo2094p0jZps rlC1+wIVuSEperptO9I+OFYRXEvU3KWPbxDA/fe7A3xsqYaQyCbHRR3rfsYH8g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344510; a=rsa-sha256; cv=none; b=wpk4BtRQYF6NmQ2QIQZieD7d1SIWZ/1aXWk1Rfr4fPoSbgQziNud4zqF8FQ4Tc6Y/q3gPf msi8YRIYWynQZOEvYynQezASS/u11hyOFT0Gi2fGz0XQay1McdZFMsLYUa8vUuwrk2IrTk +/GgTKwr85c6wcPWQMq8Hwd9kmqcG/GU1yAOlIIB9cviPz9Mrf7bNQZKZV291feYZjksfN Gdv2OXG5YRgqL6yWt7DsFKapHd5e+zbB7OT/QBUrVtAbnGc/DyYjJBn5F27REQjuzzKveR MnAMiiGf9MBGNImPjIJTGT8DlwLiUYv2NgOF+fdm6aaQCGXUneE8zDLFy8j+2w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2k1zCCz174n; Fri, 18 Aug 2023 07:41: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 37I7foTA066830; Fri, 18 Aug 2023 07:41:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fo81066827; Fri, 18 Aug 2023 07:41:50 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:50 GMT Message-Id: <202308180741.37I7fo81066827@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 6d037b69ee62 - stable/13 - bhyve: emulate graphics stolen memory register List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 6d037b69ee623ffee05864d6f01712c875409be0 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=6d037b69ee623ffee05864d6f01712c875409be0 commit 6d037b69ee623ffee05864d6f01712c875409be0 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-11 09:18:56 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:32:07 +0000 bhyve: emulate graphics stolen memory register This register contains a host physical address. This address is meaningless for the guest. We have to emulate it and set it to a valid guest physical address. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40060 (cherry picked from commit d9fa7c113df254b237e5a573d0567eb686e5fcde) --- usr.sbin/bhyve/pci_gvt-d.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 9c5b0906ec29..3109bc06be82 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -23,6 +23,8 @@ #define PCI_VENDOR_INTEL 0x8086 +#define PCIR_BDSM 0x5C /* Base of Data Stolen Memory register */ + #define PCIM_BDSM_GSM_ALIGNMENT \ 0x00100000 /* Graphics Stolen Memory is 1 MB aligned */ @@ -96,6 +98,7 @@ gvt_d_setup_gsm(struct pci_devinst *const pi) struct passthru_softc *sc; struct passthru_mmio_mapping *gsm; size_t sysctl_len; + uint32_t bdsm; int error; sc = pi->pi_arg; @@ -156,7 +159,12 @@ gvt_d_setup_gsm(struct pci_devinst *const pi) "Warning: Unable to reuse host address of Graphics Stolen Memory. GPU passthrough might not work properly."); } - return (0); + bdsm = read_config(passthru_get_sel(sc), PCIR_BDSM, 4); + pci_set_cfgdata32(pi, PCIR_BDSM, + gsm->gpa | (bdsm & (PCIM_BDSM_GSM_ALIGNMENT - 1))); + + return (set_pcir_handler(sc, PCIR_BDSM, 4, passthru_cfgread_emulate, + passthru_cfgwrite_emulate)); } static int From nobody Fri Aug 18 07:41:51 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2m1Y7mz4qrLc; Fri, 18 Aug 2023 07:41: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 4RRv2l40gfz3GMg; Fri, 18 Aug 2023 07:41:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344511; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1mLJ5QA3CNtmW8X5IBB+lWX2j0pSJdB4jQc+2SQMhX8=; b=X7N6xr7Nrd14qgLP/3jzqikmEqcKmbyBecYeOZpL6F8phk6Ncoq137PP3J6WcYxgghuNs1 UpKIHAjV+Y+Mc+YXAalD+l2GpWQcBwE+NmDVmvgHhaBHHAfbfPeaDT6Mv+glU14SeHbh2x z1zmQkSBGGmhNpIGCLOyQbh6ixcBg4LWBwze+gtj7jStHT89bNxn9psaasVtncFdsViIWf /oiz4zkGi5HqDQg+vf0XaAt1aFqmeaFmZH2UBAa7ofzeDtsLRETZ5pailFMr9VvkDGNR0e MohG6QwKI9dYSyJfTf6oZD//qiA3YWDSQq6vevDpnbIWba9QQvdn7Q4+nfvnzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344511; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1mLJ5QA3CNtmW8X5IBB+lWX2j0pSJdB4jQc+2SQMhX8=; b=uB35uZRLB4X7w3ytd//6tt109ei3zUBCDqH+oTQQ8g/G3LKyyIuiz5GCJGAtx48by+2boT lv0LrIdZQVi4+cphiJYjKmKOrahp//b36fskB1TuUqGXgZPT9fytm4CwEZkyPY2skEvo1n zQIXCc5kc7nvy+zZYSchUnDpCBjFb1/IJZSwIraBBgdGhQ1UxqE8C47AXZOogfMTIXvs4x Tjf0uru5A+5GrWQOqBDB4qz5F//ZmYrDOENPLZhc+m/jgx/84CPThBC0lKVwqRzEZhg7yD 0ISW9ZimJDn1x4CnEORH4vRKFtkxdqd+/c5q5eGmr3wcFjDcKb4/yH/65Li4bQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344511; a=rsa-sha256; cv=none; b=Eu1tchNMrtpuJWYhaoCO0/HPO5zl1PPYaosQWaC0589tWjcMjLWoXBxMzuONMxqigfyslo gJSdCfY4xl5UqKnwJO+ewjr7mUFwmje6BLyL2ryT4UL5MVDGMO8NNnbLAjVNTLax7iVAY0 HIBEKVWAfN2zpafEPlWXmYfdruxvoOgFTNBaWeDqLiPhIBkR8MqfbPDp0efQTbnfE89VTH 1CN4ErWkmMjmh/ACxzIGusRcE99G9lMy+K2LzI3EZTnQWGkF9yAMavPmr3gS9uZAgIvPHa tGPSBH2V/W/t+SwPxkz+P6uf77PlFVM/Cdj8K24dh9xuS4AQemlcuAPdKqLQog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2l2mDtz179M; Fri, 18 Aug 2023 07:41: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 37I7fpSv066884; Fri, 18 Aug 2023 07:41:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fp9S066881; Fri, 18 Aug 2023 07:41:51 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:51 GMT Message-Id: <202308180741.37I7fp9S066881@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: b260e413b4b7 - stable/13 - bhyve: read OpRegion address and size for GVT-d List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b260e413b4b7053e4c7a4521e4e9823bb01515be Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=b260e413b4b7053e4c7a4521e4e9823bb01515be commit b260e413b4b7053e4c7a4521e4e9823bb01515be Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-10 11:38:02 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:32:07 +0000 bhyve: read OpRegion address and size for GVT-d The OpRegion provides some configuration bits and ACPI methods used by some Intel drivers. The guest needs access to it. In the first step, we're reading it's address and size. Reviewed by: jhb MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40040 (cherry picked from commit 6952b9d25e18fd3a4bf0d1bb7d6b44ff6edf6737) --- usr.sbin/bhyve/pci_gvt-d.c | 67 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 3109bc06be82..fd3b48c3e5b7 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -6,12 +6,16 @@ */ #include <sys/types.h> +#include <sys/mman.h> #include <sys/sysctl.h> #include <dev/pci/pcireg.h> #include <err.h> #include <errno.h> +#include <fcntl.h> +#include <string.h> +#include <unistd.h> #include "e820.h" #include "pci_gvt-d-opregion.h" @@ -21,14 +25,20 @@ #define MB (1024 * KB) #define GB (1024 * MB) +#ifndef _PATH_MEM +#define _PATH_MEM "/dev/mem" +#endif + #define PCI_VENDOR_INTEL 0x8086 -#define PCIR_BDSM 0x5C /* Base of Data Stolen Memory register */ +#define PCIR_BDSM 0x5C /* Base of Data Stolen Memory register */ +#define PCIR_ASLS_CTL 0xFC /* Opregion start address register */ #define PCIM_BDSM_GSM_ALIGNMENT \ 0x00100000 /* Graphics Stolen Memory is 1 MB aligned */ #define GVT_D_MAP_GSM 0 +#define GVT_D_MAP_OPREGION 1 static int gvt_d_probe(struct pci_devinst *const pi) @@ -167,6 +177,56 @@ gvt_d_setup_gsm(struct pci_devinst *const pi) passthru_cfgwrite_emulate)); } +static int +gvt_d_setup_opregion(struct pci_devinst *const pi) +{ + struct passthru_softc *sc; + struct passthru_mmio_mapping *opregion; + struct igd_opregion_header *header; + uint64_t asls; + int memfd; + + sc = pi->pi_arg; + + memfd = open(_PATH_MEM, O_RDONLY, 0); + if (memfd < 0) { + warn("%s: Failed to open %s", __func__, _PATH_MEM); + return (-1); + } + + opregion = passthru_get_mmio(sc, GVT_D_MAP_OPREGION); + if (opregion == NULL) { + warnx("%s: Unable to access opregion", __func__); + close(memfd); + return (-1); + } + + asls = read_config(passthru_get_sel(sc), PCIR_ASLS_CTL, 4); + + header = mmap(NULL, sizeof(*header), PROT_READ, MAP_SHARED, memfd, + asls); + if (header == MAP_FAILED) { + warn("%s: Unable to map OpRegion header", __func__); + close(memfd); + return (-1); + } + if (memcmp(header->sign, IGD_OPREGION_HEADER_SIGN, + sizeof(header->sign)) != 0) { + warnx("%s: Invalid OpRegion signature", __func__); + munmap(header, sizeof(*header)); + close(memfd); + return (-1); + } + + opregion->hpa = asls; + opregion->len = header->size * KB; + munmap(header, sizeof(header)); + + close(memfd); + + return (0); +} + static int gvt_d_init(struct pci_devinst *const pi, nvlist_t *const nvl __unused) { @@ -177,6 +237,11 @@ gvt_d_init(struct pci_devinst *const pi, nvlist_t *const nvl __unused) goto done; } + if ((error = gvt_d_setup_opregion(pi)) != 0) { + warnx("%s: Unable to setup OpRegion", __func__); + goto done; + } + done: return (error); } From nobody Fri Aug 18 07:41:52 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2n5NYXz4qrJ5; Fri, 18 Aug 2023 07:41: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 4RRv2m4tQhz3GN3; Fri, 18 Aug 2023 07:41:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344512; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sUnZLy3KcVE+sdeo6K5RDBf3zzbeH64cHXM9lMNnVL4=; b=BGouMFjMGGnvuVZIWnD5/XliNmxP6sKQKwSJzKjeGnBnHiHAES7MCaIPDaBx0XXFm0bWO1 ongB6Ul4Ixwel5G7Qn176cQbSG/SRUjklHCInaXb4ndEjgd4Y/kYoDLWes9/3rm1E2pzxh Uf1aNAZ2+a/JTnTNt/KIOGlSP4IAQqRpUSqght5aLticQJLWrprZxAWiW3x5JldHOw53dp c+KWVqkMm9v3j1tR05F9q1ND2y5jnMX32u4lTI43zSYnH6ShWutqADWbtkoOn26TRKqY1Z LCIXqPSGTv6/5axvpBwwdoarSO7eTRdhoOlcyhWYNR2NL52fJ5BNgtLvvhLeMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344512; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sUnZLy3KcVE+sdeo6K5RDBf3zzbeH64cHXM9lMNnVL4=; b=RonSsoRu0+IOufBh2eyek3udCSvzUIf+gWHkk8I34ULHqCvJv9EUFJQicsCPz4mBiltTYf xt2C5isHL+baNsITeFuud2eK84LoHLnKAvq8cB+ejzsv8FD39IegrjaNN19p3ZTpw5+sYf AY+3qXJHE+3SVOXb6iQva7uL7IxniFodQ+H8VPhjNUBU2dXuP8P3G0hn7v3v5UfRj2xY+8 h+xcN26NgxYKtfyq068sRT+ntEffLAjXjovy+xove/TeB1I+AnsVMUB0e9zmUDQ73HUVRR QwTMa7EEi1D/EI9JhXfZCOB+GcdacP4Y18AFYKh/EcVKpFeFM8tGIE668uvbZA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344512; a=rsa-sha256; cv=none; b=SFccRgmUCW204S51sz/VAC0IY8fh/em1dEojbtagu1JENt8hML/T5ruY+OOjaCsGRm3Y1e a509q/TQ3POL4exCKrwHFVRZjPvEVSD7I8q4uL8FQWAOnXC2Z1u0FOvxNPtysYxu6NCRAP NP8kxVurYII4WGuvOLYz/x8j+KfYm7ZYiHwkFwf26dYNH4smoWs/Zo3C2nkUYqyzeFgzYM kVJxYQAVk/ICM90bCk58mbTVBiMny4gbrXYq11m9v22Dk6ZcXncQVf7oTI/ATug0fLaz/L fES3Mxix256cntsl2wLtjGW2Spp3MPDtrTxgKaifUhVDTsMwig+2thzZ+q39fw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2m3zXRz16V3; Fri, 18 Aug 2023 07:41: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 37I7fqeK066934; Fri, 18 Aug 2023 07:41:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fqi5066931; Fri, 18 Aug 2023 07:41:52 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:52 GMT Message-Id: <202308180741.37I7fqi5066931@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 04e774846c9d - stable/13 - bhyve: copy OpRegion into guest memory List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 04e774846c9d2e37287a1ddd6e7b0cde5d994ed1 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=04e774846c9d2e37287a1ddd6e7b0cde5d994ed1 commit 04e774846c9d2e37287a1ddd6e7b0cde5d994ed1 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-10 11:39:56 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:32:08 +0000 bhyve: copy OpRegion into guest memory This makes the OpRegion accessible by the guest. However, the guest doesn't know the address of the OpRegion. This will be fixed by an upcoming commit. The range of the OpRegion is added to the e820 table. This allows the guest firmware to easily pick up this range and to reserve it properly. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40041 (cherry picked from commit 1115cdcf7af12fd06ca255b981cb579a7bb7a147) --- usr.sbin/bhyve/pci_gvt-d.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index fd3b48c3e5b7..4616bc84d275 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -222,8 +222,40 @@ gvt_d_setup_opregion(struct pci_devinst *const pi) opregion->len = header->size * KB; munmap(header, sizeof(header)); + opregion->hva = mmap(NULL, opregion->len * KB, PROT_READ, MAP_SHARED, + memfd, opregion->hpa); + if (opregion->hva == MAP_FAILED) { + warn("%s: Unable to map host OpRegion", __func__); + close(memfd); + return (-1); + } close(memfd); + opregion->gpa = gvt_d_alloc_mmio_memory(opregion->hpa, opregion->len, + E820_ALIGNMENT_NONE, E820_TYPE_NVS); + if (opregion->gpa == 0) { + warnx( + "%s: Unable to add OpRegion to E820 table (hpa 0x%lx len 0x%lx)", + __func__, opregion->hpa, opregion->len); + e820_dump_table(); + return (-1); + } + opregion->gva = vm_map_gpa(pi->pi_vmctx, opregion->gpa, opregion->len); + if (opregion->gva == NULL) { + warnx("%s: Unable to map guest OpRegion", __func__); + return (-1); + } + if (opregion->gpa != opregion->hpa) { + /* + * A 1:1 host to guest mapping is not required but this could + * change in the future. + */ + warnx( + "Warning: Unable to reuse host address of OpRegion. GPU passthrough might not work properly."); + } + + memcpy(opregion->gva, opregion->hva, opregion->len); + return (0); } @@ -247,8 +279,18 @@ done: } static void -gvt_d_deinit(struct pci_devinst *const pi __unused) +gvt_d_deinit(struct pci_devinst *const pi) { + struct passthru_softc *sc; + struct passthru_mmio_mapping *opregion; + + sc = pi->pi_arg; + + opregion = passthru_get_mmio(sc, GVT_D_MAP_OPREGION); + + /* HVA is only set, if it's initialized */ + if (opregion->hva) + munmap((void *)opregion->hva, opregion->len); } static struct passthru_dev gvt_d_dev = { From nobody Fri Aug 18 07:41:53 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2p0jcmz4qrFp; Fri, 18 Aug 2023 07:41: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 4RRv2n5TPGz3GNF; Fri, 18 Aug 2023 07:41:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344513; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZDHPP3Hm9Lyads0aGYbxcwv8aT+KrTYTKlCJ0jfkQWU=; b=UxDhUr+DRAilMKXoqRZEl2OPuHDv0sOnXWJZ2a8anqJ+w8pcC1yLAEh+rgFg8/gXS37vtY eloSSnf1QYvlyP9+HQuFXUlpUHRcbQZf81xGnjwSc4Rfw778j3JixYBfrJ0wNL4bAJhNmN pYQpqIBl2+Tq+NonMUGhu76HQeUla+RYuuBz6s6Xh429II/oKK3Y6S/03doI7wFjv8AbrT KvBVsa4ZijeteONPFxBew1UWJ1niR1FGkaJQJPUBeP0EXgKnGiTSyRqXLdEvjcu9ef5baP 6MqHhuE8GejGAw6w+Ot3IGPZvvCmTyehSxXoBAyVwH/meLlbQn1dWyZoIKoq/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692344513; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZDHPP3Hm9Lyads0aGYbxcwv8aT+KrTYTKlCJ0jfkQWU=; b=WnVYRMJoWWao4SF48JviFzfPWsAHU8MD5akzE37N/zGnHEOFskDsT4UVMtC6MNdqeenfj/ G7W1MU+LVVNAODQ9sQGmE15vtnk0QmWXny/fC3Xxx0WvEsnadygQ6SB9wlzcgIEfX92Eqf AS/5clnzXvVJFYxn9jXOQCP/GQMpxly43vimqSqrK3UJK3VtxqEz7byzcRIu1/Yj7lnvV9 kwlc8qtab9Ci6iwJsiwIw9BNIVgypEG8+rka9SIwvoUIzbigM+vexG6P6gvQVJI/rcvQ0U JGuDqSusqSH7MX/+yBGBsTn4MmYIoQDYD8oDD1IJGMYctG+yPMBDziR7agC+ww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344513; a=rsa-sha256; cv=none; b=h6r10Jo4zkFDWggtDN89XowH6wMB0drFYW7tDRuH4x8aeeEFJD8GivDSFAalNkuq5yHv3S Mi//ei7YP5RcCLdnaFmRuIDBg+sq7lUGsdmPAE3UztXCOP228AR1ZiDWrPzFAx4D2io7sO jzJDbjdm4C2MutqK1FbGNCAPoBhNJ+/Z/Ku5xk4AILeZlGU9zDr8DmWCWVj/DwhwhPCOS8 yrObDkWJmjQQTVlsAdiWAzIVuVDYyA1i6FjNYRjnylzsZzbpcuqCE9aYk2TjJwVwUrc14S mi7iEZHs8Mf4Sk2FFHq/qMyagt2xA5eRgVpXEfn1WjjkbeOqudJ++/+Wn+AZzg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRv2n4b5lz179W; Fri, 18 Aug 2023 07:41: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 37I7frVj066996; Fri, 18 Aug 2023 07:41:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7frnQ066993; Fri, 18 Aug 2023 07:41:53 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:41:53 GMT Message-Id: <202308180741.37I7frnQ066993@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: 50734f2ba36b - stable/13 - bhyve: pass address of OpRegion to the guest List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 50734f2ba36bb79d8472a71e6bd0ebb5399786a8 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=50734f2ba36bb79d8472a71e6bd0ebb5399786a8 commit 50734f2ba36bb79d8472a71e6bd0ebb5399786a8 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2023-05-10 11:44:28 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:32:08 +0000 bhyve: pass address of OpRegion to the guest Don't allow access to the physical ASLS register. It contains a host address which is meaningless for the guest. Additionally, it allows the guest to safely rewrite this register. This is the last commit required for GVT-d. Nevertheless, it might not work due to missing firmware support. MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D26209 (cherry picked from commit 71fb2dcb0023d49fc048e1f7b610ad05bd2efc32) --- usr.sbin/bhyve/pci_gvt-d.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 4616bc84d275..35c7f30dd292 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -256,7 +256,10 @@ gvt_d_setup_opregion(struct pci_devinst *const pi) memcpy(opregion->gva, opregion->hva, opregion->len); - return (0); + pci_set_cfgdata32(pi, PCIR_ASLS_CTL, opregion->gpa); + + return (set_pcir_handler(sc, PCIR_ASLS_CTL, 4, passthru_cfgread_emulate, + passthru_cfgwrite_emulate)); } static int From nobody Fri Aug 18 07:53:44 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRvJT0dDnz4qrv7; Fri, 18 Aug 2023 07:53: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 4RRvJS4xXJz3L3X; Fri, 18 Aug 2023 07:53:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692345224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fl66+ET8WlxEbpcGbMnbajPRLcqv6iriU2dFNg/hqOg=; b=bhjIBEasgHcvYRlcoLvAhIQL4oGzcC7YOVAeLkN/Yg3IiZtQ3vsEJmD3Xl6BczrH25a6aM z4I+FnZUZaN6zLtXjpADkeSQyRxFU61WrqqXVoaPtf9unXnP5V5Aw+O3Z6TWDm4/oe5Q88 0lMdKvKO4w4q2Xtowr/XxZ4eyNST/80Viht6Danl3vdrRV3s/ZOo9V+LLfHf/OgxPYFT5Z /lAJMG2G6aDkJi/uIVdCLNap2t6uFU5IM9X+cN3pe9slxBNxSqAIQbchRbQD+PV/4O99yr SOJYKaZtR0LM97bQt/cDcxPUUdXzqs0f22QhcdXtXrfUJS2CRZBUOvD/fRSrYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692345224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fl66+ET8WlxEbpcGbMnbajPRLcqv6iriU2dFNg/hqOg=; b=RmIdfEV4v0RnpaTa5T87LTxPpViFMhNWOWnUb+Ye0DsVK+CmmPAzC4IhOuEo/hMn1Zn0ob GtaG4MEtGKoTFqXHprip96XlqljadDGrKptIBV3nqAEy4WJpG7Z5xR11C4kTeE5t8AaWBe Gw9DG7IGGfIT5eXe6plq4Wb+wVyrTLaYmi+OVIiWF0XuYgHnFXyWSArUH4F6wmsjwfmBTa 85ohLnZkLH5zZXvtaIdF1er569ha7ujmlCTn4j7Pz5m/gQoyU2h1XzN1v4ojbk1B8+WgYw LFGbqTPuL6F73jTPLF8AXFjfllEqUUsy1KOvnW/ygiNoo8L0TVvzVBSmzNqjVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692345224; a=rsa-sha256; cv=none; b=bV3uwraUyfY4BZhIpQCuFDtBQyTbFSr598O0cb+h6yTv8VvvXIblZYOGDBbYUA0XQrNQ5p lsrfq/OYl5roqnY4rMWe9SfOVqNwKBY2ebU1r40kY1VG2WeRRBnHKny/Q0SYZqBGHPUta+ JqY4dZBlbCIy/2EJBBjYPzRIYCRxxqn0hwtvENFUxuS9IilkL7hja1TC5vY7Qg/Sg7Lbrc pI/+VPRJtYJhCqbapcWR+asr5MqtcoUEasGZD3VD2xfOLmGjmpug1xzOILuESJex/BrGhW GUtEpFTpjF+iIoW8Sy0G/GQ7QvA60rb9lhlCVPYTQA129uFpoJyS9ds8ozP38Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRvJS41Q9z16xP; Fri, 18 Aug 2023 07:53: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 37I7riie083761; Fri, 18 Aug 2023 07:53:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7ri9i083758; Fri, 18 Aug 2023 07:53:44 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:53:44 GMT Message-Id: <202308180753.37I7ri9i083758@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: c791a53c8026 - stable/13 - bhyve: add helper to create a bootorder List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c791a53c8026951051be47cbd608915b6fa41845 Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=c791a53c8026951051be47cbd608915b6fa41845 commit c791a53c8026951051be47cbd608915b6fa41845 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2021-08-16 07:47:53 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:52:10 +0000 bhyve: add helper to create a bootorder Qemu's fwcfg allows to define a bootorder. Therefore, the hypervisor has to create a fwcfg item named bootorder, which has a newline seperated list of boot entries. Qemu's OVMF will pick up the bootorder and applies it. Add the moment, bhyve's OVMF doesn't support a custom bootorder by qemu's fwcfg. However, in the future bhyve will gain support for qemu's OVMF. Additonally, we can port relevant parts from qemu's to bhyve's OVMF implementation. Reviewed by: jhb, markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D39284 (cherry picked from commit 6632a0a4e3ab68b0e31b612e8aeca14de3fc8159) --- usr.sbin/bhyve/pci_emul.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++ usr.sbin/bhyve/pci_emul.h | 2 ++ 2 files changed, 78 insertions(+) diff --git a/usr.sbin/bhyve/pci_emul.c b/usr.sbin/bhyve/pci_emul.c index f52bf94b7c3d..2f85e453ff17 100644 --- a/usr.sbin/bhyve/pci_emul.c +++ b/usr.sbin/bhyve/pci_emul.c @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include "pci_irq.h" #include "pci_lpc.h" #include "pci_passthru.h" +#include "qemu_fwcfg.h" #define CONF1_ADDR_PORT 0x0cf8 #define CONF1_DATA_PORT 0x0cfc @@ -121,6 +122,14 @@ struct pci_bar_allocation { static TAILQ_HEAD(pci_bar_list, pci_bar_allocation) pci_bars = TAILQ_HEAD_INITIALIZER(pci_bars); +struct boot_device { + TAILQ_ENTRY(boot_device) boot_device_chain; + struct pci_devinst *pdi; + int bootindex; +}; +static TAILQ_HEAD(boot_list, boot_device) boot_devices = TAILQ_HEAD_INITIALIZER( + boot_devices); + #define PCI_EMUL_IOBASE 0x2000 #define PCI_EMUL_IOLIMIT 0x10000 @@ -949,6 +958,45 @@ pci_emul_alloc_rom(struct pci_devinst *const pdi, const uint64_t size, return (0); } +int +pci_emul_add_boot_device(struct pci_devinst *pi, int bootindex) +{ + struct boot_device *new_device, *device; + + /* don't permit a negative bootindex */ + if (bootindex < 0) { + errx(4, "Invalid bootindex %d for %s", bootindex, pi->pi_name); + } + + /* alloc new boot device */ + new_device = calloc(1, sizeof(struct boot_device)); + if (new_device == NULL) { + return (ENOMEM); + } + new_device->pdi = pi; + new_device->bootindex = bootindex; + + /* search for boot device with higher boot index */ + TAILQ_FOREACH(device, &boot_devices, boot_device_chain) { + if (device->bootindex == bootindex) { + errx(4, + "Could not set bootindex %d for %s. Bootindex already occupied by %s", + bootindex, pi->pi_name, device->pdi->pi_name); + } else if (device->bootindex > bootindex) { + break; + } + } + + /* add boot device to queue */ + if (device == NULL) { + TAILQ_INSERT_TAIL(&boot_devices, new_device, boot_device_chain); + } else { + TAILQ_INSERT_BEFORE(device, new_device, boot_device_chain); + } + + return (0); +} + #define CAP_START_OFFSET 0x40 static int pci_emul_add_capability(struct pci_devinst *pi, u_char *capdata, int caplen) @@ -1357,6 +1405,27 @@ pci_ecfg_base(void) return (PCI_EMUL_ECFG_BASE); } +static int +init_bootorder(void) +{ + struct boot_device *device; + FILE *fp; + char *bootorder; + size_t bootorder_len; + + if (TAILQ_EMPTY(&boot_devices)) + return (0); + + fp = open_memstream(&bootorder, &bootorder_len); + TAILQ_FOREACH(device, &boot_devices, boot_device_chain) { + fprintf(fp, "/pci@i0cf8/pci@%d,%d\n", + device->pdi->pi_slot, device->pdi->pi_func); + } + fclose(fp); + + return (qemu_fwcfg_add_file("bootorder", bootorder_len, bootorder)); +} + #define BUSIO_ROUNDUP 32 #define BUSMEM32_ROUNDUP (1024 * 1024) #define BUSMEM64_ROUNDUP (512 * 1024 * 1024) @@ -1386,6 +1455,8 @@ init_pci(struct vmctx *ctx) pci_emul_membase64 = roundup2(pci_emul_membase64, PCI_EMUL_MEMSIZE64); pci_emul_memlim64 = pci_emul_membase64 + PCI_EMUL_MEMSIZE64; + TAILQ_INIT(&boot_devices); + for (bus = 0; bus < MAXBUSES; bus++) { snprintf(node_name, sizeof(node_name), "pci.%d", bus); nvl = find_config_node(node_name); @@ -1493,6 +1564,11 @@ init_pci(struct vmctx *ctx) } lpc_pirq_routed(); + if ((error = init_bootorder()) != 0) { + warnx("%s: Unable to init bootorder", __func__); + return (error); + } + /* * The guest physical memory map looks like the following: * [0, lowmem) guest system memory diff --git a/usr.sbin/bhyve/pci_emul.h b/usr.sbin/bhyve/pci_emul.h index ce14f5e34889..2eb2e3a4e280 100644 --- a/usr.sbin/bhyve/pci_emul.h +++ b/usr.sbin/bhyve/pci_emul.h @@ -234,6 +234,8 @@ int pci_emul_alloc_bar(struct pci_devinst *pdi, int idx, enum pcibar_type type, uint64_t size); int pci_emul_alloc_rom(struct pci_devinst *const pdi, const uint64_t size, void **const addr); +int pci_emul_add_boot_device(struct pci_devinst *const pi, + const int bootindex); int pci_emul_add_msicap(struct pci_devinst *pi, int msgnum); int pci_emul_add_pciecap(struct pci_devinst *pi, int pcie_device_type); void pci_emul_capwrite(struct pci_devinst *pi, int offset, int bytes, From nobody Fri Aug 18 07:53:45 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRvJV4D3kz4qrvC; Fri, 18 Aug 2023 07:53: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 4RRvJT68LKz3L5n; Fri, 18 Aug 2023 07:53:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692345225; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z0bQxW15LyhH8BatU4BaA3TfQKU5kQilUFdsx79YUBk=; b=WSB5esJOLoFbay6c75NeeS/FbZPQ8Pzk5K+UfWdS1n6A2G5qP+6XIZGmSCPVVPaW7SO+oL zDuAcLybTJnpWTOootKB9T4RAgfRWWPMFsfajRQD+vZNlVPnEuqrnaJUVpe8PAzJnrPzqv aCrokSXkvDFc3XyaZtikl0l4mJLSKCa6z5vzrrjEHL7f+fxXmykcVOWaZI3RiYNJmmGXYT gkwQbF+Seu7atIKljpvBs1m8r965o8SG1rASq7+miPMlhaLo0tVycKJYA0bd2xnKk5PUSL CanX219wNUDu9l1mwBoZ3n1/Wvt16k0N+MCGxC05PloW05bVtCuCGGNU00LCYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692345225; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z0bQxW15LyhH8BatU4BaA3TfQKU5kQilUFdsx79YUBk=; b=CHwAXZshSDqowIB4R8hZAYV9vTjy8ZDDsGp764Cc9BwqZ0zCX0ALiafQVuB51jAC0rGu8n 1pwRdjXW2R4X3aCW/6hvlnQPxLd9Piydnq31PwPSocz9s3ClP5HdAlaHR6ee4mrjZsyxtL wBnKEWpBLTkWXQVJA4KFpB+ZqDGoPzrqGIUf31Txlkxx7B0EvU0thIOVJuRVkuWXzqKrPq N2gvGV20U2s85OtlCcIksMh+CYG80DY/FmSeoNURkNEr0AGCPzlZv0rUCcnoEadHkY3TBm uKNJ/pab6HmfcPbbJGQ36PKOy5bAHLtk08ylDLZPA/by7V664bvhTJdRYMg8Fg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692345225; a=rsa-sha256; cv=none; b=ypIo5k+DTLPQAdvMSMMeMcLq+U8PZ3HQIcqEpVz8s8kA7s3xzpT24ScyLuv4hJsB35vTWy WB945uA8y5AOnaDzXWFr47aqRiXNiHRYKfK5W2ASO/rPmX63h3nZehpZDSsCFGH/Fg8AcW Ab7xJBhsIxjUvjF/mFwQ514fvkBymq0yS8dx6yJQ7X2jsnujrcjrWgP+IOXOyhlMhSWrYf 2v+j72PIHoIrJN623N/m6VIP+wd1cL6QaVec/Co8e9b1F9MvVXRcxwHnOESPJVeSrDlR2M AvW22vOCuHnxmbiDdzmtLkCGsuNuEh0Y3mZ1OWg6Lo1J5vg5Q/fw1nx6Q5xAIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RRvJT4w6Xz17Sr; Fri, 18 Aug 2023 07:53: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 37I7rjnk083812; Fri, 18 Aug 2023 07:53:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7rjaX083809; Fri, 18 Aug 2023 07:53:45 GMT (envelope-from git) Date: Fri, 18 Aug 2023 07:53:45 GMT Message-Id: <202308180753.37I7rjaX083809@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org> Subject: git: b02e0f964028 - stable/13 - bhyve: add bootindex option for several devices List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b02e0f96402830405c0812dc26b7492d487f795b Auto-Submitted: auto-generated The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=b02e0f96402830405c0812dc26b7492d487f795b commit b02e0f96402830405c0812dc26b7492d487f795b Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2021-08-16 07:50:15 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2023-08-18 07:52:10 +0000 bhyve: add bootindex option for several devices The bootindex option creates an entry in the "bootorder" fwcfg file. This file can be picked up by the guest firmware to determine the bootorder. Nevertheless, it's not guaranteed that the guest firmware uses the bootorder. At the moment, our OVMF ignores the bootorder. This will change in the future. If guest firmware supports the "bootorder" fwcfg file and no device uses the bootindex option, the boot order is determined by the firmware itself. If one or more devices specify a bootindex, the first bootable device with the lowest bootindex will be booted. It's not garanteed that devices without a bootindex will be recognized as bootable from the firmware in that case. Reviewed by: jhb MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D39285 (cherry picked from commit 480bef9481f0c44b19ac4b2adb09f6c3191acd41) --- usr.sbin/bhyve/bhyve.8 | 18 ++++++++++++++++++ usr.sbin/bhyve/block_if.c | 21 ++++++++++++++++++++- usr.sbin/bhyve/block_if.h | 2 ++ usr.sbin/bhyve/pci_ahci.c | 7 +++++++ usr.sbin/bhyve/pci_nvme.c | 8 ++++++++ usr.sbin/bhyve/pci_virtio_block.c | 5 +++++ usr.sbin/bhyve/pci_virtio_scsi.c | 9 +++++++++ 7 files changed, 69 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index b764807c7980..819d2bb0ef81 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -482,6 +482,12 @@ if not explicitly specified. Disable emulation of guest trim requests via .Dv DIOCGDELETE requests. +.It Li bootindex= Ns Ar index +Add the device to the bootorder at +.Ar index . +A fwcfg file is used to specify the bootorder. +The guest firmware may ignore or doesn't support this fwcfg file. +In that case, this feature doesn't work as expected. .El .Pp SCSI device backends: @@ -499,6 +505,12 @@ are: .It Cm iid= Ns Ar IID Initiator ID to use when sending requests to specified CTL port. The default value is 0. +.It Li bootindex= Ns Ar index +Add the device to the bootorder at +.Ar index . +A fwcfg file is used to specify the bootorder. +The guest firmware may ignore or doesn't support this fwcfg file. +In that case, this feature doesn't work as expected. .El .Pp 9P device backends: @@ -596,6 +608,12 @@ Add .Ar romfile as option ROM to the PCI device. The ROM will be loaded by firmware and should be capable of initializing the device. +.It Li bootindex= Ns Ar index +Add the device to the bootorder at +.Ar index . +A fwcfg file is used to specify the bootorder. +The guest firmware may ignore or doesn't support this fwcfg file. +In that case, this feature doesn't work as expected. .El .Pp Guest memory must be wired using the diff --git a/usr.sbin/bhyve/block_if.c b/usr.sbin/bhyve/block_if.c index 187a5ac55e09..8846c6032539 100644 --- a/usr.sbin/bhyve/block_if.c +++ b/usr.sbin/bhyve/block_if.c @@ -122,6 +122,7 @@ struct blockif_ctxt { TAILQ_HEAD(, blockif_elem) bc_pendq; TAILQ_HEAD(, blockif_elem) bc_busyq; struct blockif_elem bc_reqs[BLOCKIF_MAXREQ]; + int bc_bootindex; }; static pthread_once_t blockif_once = PTHREAD_ONCE_INIT; @@ -453,12 +454,22 @@ blockif_legacy_config(nvlist_t *nvl, const char *opts) return (pci_parse_legacy_config(nvl, cp + 1)); } +int +blockif_add_boot_device(struct pci_devinst *const pi, + struct blockif_ctxt *const bc) +{ + if (bc->bc_bootindex < 0) + return (0); + + return (pci_emul_add_boot_device(pi, bc->bc_bootindex)); +} + struct blockif_ctxt * blockif_open(nvlist_t *nvl, const char *ident) { char tname[MAXCOMLEN + 1]; char name[MAXPATHLEN]; - const char *path, *pssval, *ssval; + const char *path, *pssval, *ssval, *bootindex_val; char *cp; struct blockif_ctxt *bc; struct stat sbuf; @@ -467,6 +478,7 @@ blockif_open(nvlist_t *nvl, const char *ident) int extra, fd, i, sectsz; int ro, candelete, geom, ssopt, pssopt; int nodelete; + int bootindex; #ifndef WITHOUT_CAPSICUM cap_rights_t rights; @@ -480,6 +492,7 @@ blockif_open(nvlist_t *nvl, const char *ident) ssopt = 0; ro = 0; nodelete = 0; + bootindex = -1; if (get_config_bool_node_default(nvl, "nocache", false)) extra |= O_DIRECT; @@ -512,6 +525,11 @@ blockif_open(nvlist_t *nvl, const char *ident) } } + bootindex_val = get_config_value_node(nvl, "bootindex"); + if (bootindex_val != NULL) { + bootindex = atoi(bootindex_val); + } + path = get_config_value_node(nvl, "path"); if (path == NULL) { EPRINTLN("Missing \"path\" for block device."); @@ -628,6 +646,7 @@ blockif_open(nvlist_t *nvl, const char *ident) TAILQ_INIT(&bc->bc_freeq); TAILQ_INIT(&bc->bc_pendq); TAILQ_INIT(&bc->bc_busyq); + bc->bc_bootindex = bootindex; for (i = 0; i < BLOCKIF_MAXREQ; i++) { bc->bc_reqs[i].be_status = BST_FREE; TAILQ_INSERT_HEAD(&bc->bc_freeq, &bc->bc_reqs[i], be_link); diff --git a/usr.sbin/bhyve/block_if.h b/usr.sbin/bhyve/block_if.h index b36d0c367890..52ebd8634b8e 100644 --- a/usr.sbin/bhyve/block_if.h +++ b/usr.sbin/bhyve/block_if.h @@ -62,11 +62,13 @@ struct blockif_req { struct iovec br_iov[BLOCKIF_IOV_MAX]; }; +struct pci_devinst; struct blockif_ctxt; typedef void blockif_resize_cb(struct blockif_ctxt *, void *, size_t); int blockif_legacy_config(nvlist_t *nvl, const char *opts); +int blockif_add_boot_device(struct pci_devinst *const pi, struct blockif_ctxt *const bc); struct blockif_ctxt *blockif_open(nvlist_t *nvl, const char *ident); int blockif_register_resize_callback(struct blockif_ctxt *bc, blockif_resize_cb *cb, void *cb_arg); diff --git a/usr.sbin/bhyve/pci_ahci.c b/usr.sbin/bhyve/pci_ahci.c index a263eae6ad49..90fcf2449b9d 100644 --- a/usr.sbin/bhyve/pci_ahci.c +++ b/usr.sbin/bhyve/pci_ahci.c @@ -2476,6 +2476,13 @@ pci_ahci_init(struct pci_devinst *pi, nvlist_t *nvl) ret = 1; goto open_fail; } + + ret = blockif_add_boot_device(pi, bctxt); + if (ret) { + sc->ports = p; + goto open_fail; + } + sc->port[p].bctx = bctxt; sc->port[p].pr_sc = sc; sc->port[p].port = p; diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c index 4ff5243262fa..b446bc266716 100644 --- a/usr.sbin/bhyve/pci_nvme.c +++ b/usr.sbin/bhyve/pci_nvme.c @@ -3211,6 +3211,14 @@ pci_nvme_parse_config(struct pci_nvme_softc *sc, nvlist_t *nvl) sc->dataset_management = NVME_DATASET_MANAGEMENT_DISABLE; } + value = get_config_value_node(nvl, "bootindex"); + if (value != NULL) { + if (pci_emul_add_boot_device(sc->nsc_pi, atoi(value))) { + EPRINTLN("Invalid bootindex %d", atoi(value)); + return (-1); + } + } + value = get_config_value_node(nvl, "ram"); if (value != NULL) { uint64_t sz = strtoull(value, NULL, 10); diff --git a/usr.sbin/bhyve/pci_virtio_block.c b/usr.sbin/bhyve/pci_virtio_block.c index 9fd6db41dba8..c8ec62a66793 100644 --- a/usr.sbin/bhyve/pci_virtio_block.c +++ b/usr.sbin/bhyve/pci_virtio_block.c @@ -471,6 +471,11 @@ pci_vtblk_init(struct pci_devinst *pi, nvlist_t *nvl) return (1); } + if (blockif_add_boot_device(pi, bctxt)) { + perror("Invalid boot device"); + return (1); + } + size = blockif_size(bctxt); sectsz = blockif_sectsz(bctxt); blockif_psectsz(bctxt, &sts, &sto); diff --git a/usr.sbin/bhyve/pci_virtio_scsi.c b/usr.sbin/bhyve/pci_virtio_scsi.c index f5728c5c53c2..d9ad1382f0c5 100644 --- a/usr.sbin/bhyve/pci_virtio_scsi.c +++ b/usr.sbin/bhyve/pci_virtio_scsi.c @@ -707,6 +707,15 @@ pci_vtscsi_init(struct pci_devinst *pi, nvlist_t *nvl) if (value != NULL) sc->vss_iid = strtoul(value, NULL, 10); + value = get_config_value_node(nvl, "bootindex"); + if (value != NULL) { + if (pci_emul_add_boot_device(pi, atoi(value))) { + EPRINTLN("Invalid bootindex %d", atoi(value)); + free(sc); + return (-1); + } + } + devname = get_config_value_node(nvl, "dev"); if (devname == NULL) devname = "/dev/cam/ctl"; From nobody Fri Aug 18 12:40:13 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS1g14GQlz4qT0X; Fri, 18 Aug 2023 12:40: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 4RS1g11yNgz4N81; Fri, 18 Aug 2023 12:40:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692362413; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/D81kOTt3MVJzxB0LUvEaqOleexI1ASsstJomVVmwJU=; b=Lp9cwlUUQSjXNMpnvi123lqODhI5IyFL3fe+Rp8Ai+76cFi5OQfgm0ZoW+vVG2v91ZFZCn OXUVAC+SR36TJyK6U1gWZt1vVnZ252BZ9dK9f4xPc82eOOS+eU78+n9egtgJODq5gI0tM3 MJTYBcWyAB62OAr9qqY/gWsWl7LTxrqdkjCFawOp52dU7dOv0kRE/KlWtg2ZjvcfIENYq/ 21I7PBvll/jxQTGM1MgiGz1vGKFvBUoKUI9sBqV0tDM3lGdE8yYb0wt+sQT7SgzztIh4ss yjGSLG6KAN1LyZEft29b17P4DLxXFZ2vO+D2z2mmU0GllNdAFJElsF9gK7vjHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692362413; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/D81kOTt3MVJzxB0LUvEaqOleexI1ASsstJomVVmwJU=; b=rjj98mO2xpGWft5vKymWxREn93qrKJQklTParyRcjzHjwZ1g9wW2iuls+9rrAf5nxNhKpk OZZi6pova/pU2ncPnFWiRfsuOOlvBZrG2+uejIbxy99W9H2G7cO6s1uLp8rcN0AvfqDY4g 6LRMAsfHUGXgkCDIuPUcpkEUV+J11N9xzdCXRGbpzSwBMJX4ltP4JKIp5gozQ9kpksH/tY a9YVde4opObvulyjC667zBsTXlM/eDBjXuH/1OMzMduch1WIC44DyGTGwWplsX3lHm3sLB 37W9BPUH6RlsdpdiX1O7xkFO9Oh31y4JinlP/VGLqGkdMGKaWGUbEYJUrZ09mw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692362413; a=rsa-sha256; cv=none; b=kFSzEJxY2d1/m1EVHvDoB1+gUpMNRHzkeHjGUN0/P5alqOfajwTiIFyMp5KKNxj0lhZsH1 ut0YDoEeKIy6X/cDSEoxf7B8U3Tq3MabyXpGeVjRj7UV8k5zv44EofbxVXMa9EAFgSPPR4 LYAK3PbLsl/tPXgzQ4CDmo0GF/GwL+SmFCxOAGacFHOLfZew62vrD3KaPS7E7BclnIyUUy +79N+gl4O+sBIJ8zklFlmPfKQdSfCxfA/WFq5/eRhn/MM0Hyz/yPVpgtfXKhJe4zfKTHV9 YU+EcWekwS40/M22FOIrG/SIFKnr0bGkZZCbLvAts/Ha+5WZThUKwk1Lrd8gOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RS1g10vsTz1M6; Fri, 18 Aug 2023 12:40: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 37ICeDQe056750; Fri, 18 Aug 2023 12:40:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37ICeD9T056740; Fri, 18 Aug 2023 12:40:13 GMT (envelope-from git) Date: Fri, 18 Aug 2023 12:40:13 GMT Message-Id: <202308181240.37ICeD9T056740@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mike Karels <karels@FreeBSD.org> Subject: git: 4aead44fa14f - stable/13 - md driver compat32: fix structure padding for arm, powerpc List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: karels X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4aead44fa14fd089b8e3eeb48c24c2c14aea8f93 Auto-Submitted: auto-generated The branch stable/13 has been updated by karels: URL: https://cgit.FreeBSD.org/src/commit/?id=4aead44fa14fd089b8e3eeb48c24c2c14aea8f93 commit 4aead44fa14fd089b8e3eeb48c24c2c14aea8f93 Author: Mike Karels <karels@FreeBSD.org> AuthorDate: 2023-08-08 14:09:03 +0000 Commit: Mike Karels <karels@FreeBSD.org> CommitDate: 2023-08-18 12:39:55 +0000 md driver compat32: fix structure padding for arm, powerpc Because the 32-bit md_ioctl structure contains 64-bit members, arm and powerpc add padding to a multiple of 8. i386 doesn't do this. The md_ioctl32 definition was correct for amd64/i386 without padding, but wrong for arm64 and powerpc64. Make __packed__ conditional on __amd64__, and test for the expected size on non-amd64. Note that mdconfig is used in the ATF test suite. Note, I verified the structure size for powerpc, but was unable to test. Reviewed by: jrtc27 Differential Revision: https://reviews.freebsd.org/D41339 Discussed with: jhibbits (cherry picked from commit 58a46cfd751ac726ddca8544bf73a290b0154a57) --- sys/dev/md/md.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c index 52d64d6721cd..6878eb387fda 100644 --- a/sys/dev/md/md.c +++ b/sys/dev/md/md.c @@ -146,8 +146,16 @@ struct md_ioctl32 { int md_fwsectors; uint32_t md_label; int md_pad[MDNPAD]; -} __attribute__((__packed__)); +} +#ifdef __amd64__ +__attribute__((__packed__)) +#endif +; +#ifndef __amd64__ +CTASSERT((sizeof(struct md_ioctl32)) == 440); +#else CTASSERT((sizeof(struct md_ioctl32)) == 436); +#endif #define MDIOCATTACH_32 _IOC_NEWTYPE(MDIOCATTACH, struct md_ioctl32) #define MDIOCDETACH_32 _IOC_NEWTYPE(MDIOCDETACH, struct md_ioctl32) From nobody Fri Aug 18 12:41:17 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS1hF62Gdz4qSmc; Fri, 18 Aug 2023 12:41: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 4RS1hF5TTwz4Ncv; Fri, 18 Aug 2023 12:41:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692362477; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FfUoGNuvkozaCESijGNDbZVu//s89Y1bGSuIOthw+To=; b=JV7iNXDMewWyNhwYYrlkVefI/rYrmnGuBPKhtK8zbgE278ecbxXqSbm4D8h5zk5GKrBy6z WLviH63QwBWBOwXPulSqfI54DbEAqhReA74OmkazM+fy24hcFcR3SmHjV34bESpv9TLI28 QMMthPjNRKNbWVnlKdM/6jOsKBfxfQGgPJD6Jrjr2kjqDT7YM1gL2dL8Yedx6oLhsEFQA/ iFaMb1Hgpvnhhj8L77sbwN17i2uEYPNyGVKHWgj8FY72WHf6ENG/kXASNhIvf50K5S+A7l tElNSeU2Sv7E0FSkM8b2MSF3N4tP5LGM95OgEMxoJPh1ab/sh/8o6/YsfFbpGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692362477; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FfUoGNuvkozaCESijGNDbZVu//s89Y1bGSuIOthw+To=; b=Cj2EZxz1q2C+sW4s5dW2limaItu/eju2qh1nvDGCsYCj2wq3sf7A39fspKQJdN3sI0kYkT tTujfngYlQ63I71DFYF75ctLguYyalxqYcB96uPjWrRTCmpTJN4pvPIrL1qvgYFa8qKd9j 0zje9fR1ZqJfluQQXbAFR6yptHW64LV+XID/LyA6UCMJPbC/BpFOfh7qyvirGy2kGmZ+jv v5QE3RRhf/Ja28cFlVhDbTup4VnBUz+CITJvHCotIS3GCbTdQv7wBGu7K1qUhfEWV+CZrk /sLtul83hrNdFc2HvNSWbsCHLywTNNAZ9sLbdL8kmiNqus+Xcw9fh6iIyxuNJQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692362477; a=rsa-sha256; cv=none; b=NLj6CYG9eEwb8N1kh8ry3x95gk778zluD80n7TT3b91/keAinZ7oMi50XAENe0Y2ihNzU0 x2nWcu6li+OyBaL1z+AUm5KbS1bWN+o01jk/k1u/CLF9+nCfAhAS1BPzjlOrACA40hUvn3 rd/rx1geMlTS1XxmR7HVmgsshHX4AqpndRuHHgvINgFzwCb3oLUB/TapL2xu9i1UqBKt4A auyighhspr6J+Ye+Q0JU+1SRuB1bdlprHJ+6ovwX0XyEhZDduL9ytnGKegWTWtHKXu3wZu E4nWex+c7PwrftTChU8EtemznrR5jt7GHV3AB7yQEfJGpAL0Eb3rEt2S3NlbqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RS1hF4XD0z1qX; Fri, 18 Aug 2023 12:41: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 37ICfHr8064250; Fri, 18 Aug 2023 12:41:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37ICfHtX064247; Fri, 18 Aug 2023 12:41:17 GMT (envelope-from git) Date: Fri, 18 Aug 2023 12:41:17 GMT Message-Id: <202308181241.37ICfHtX064247@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mike Karels <karels@FreeBSD.org> Subject: git: 55b79ced0048 - stable/12 - md driver compat32: fix structure padding for arm, powerpc List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: karels X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: 55b79ced0048e9015053ccfd96cf7f38be49ecbf Auto-Submitted: auto-generated The branch stable/12 has been updated by karels: URL: https://cgit.FreeBSD.org/src/commit/?id=55b79ced0048e9015053ccfd96cf7f38be49ecbf commit 55b79ced0048e9015053ccfd96cf7f38be49ecbf Author: Mike Karels <karels@FreeBSD.org> AuthorDate: 2023-08-08 14:09:03 +0000 Commit: Mike Karels <karels@FreeBSD.org> CommitDate: 2023-08-18 12:41:06 +0000 md driver compat32: fix structure padding for arm, powerpc Because the 32-bit md_ioctl structure contains 64-bit members, arm and powerpc add padding to a multiple of 8. i386 doesn't do this. The md_ioctl32 definition was correct for amd64/i386 without padding, but wrong for arm64 and powerpc64. Make __packed__ conditional on __amd64__, and test for the expected size on non-amd64. Note that mdconfig is used in the ATF test suite. Note, I verified the structure size for powerpc, but was unable to test. Reviewed by: jrtc27 Differential Revision: https://reviews.freebsd.org/D41339 Discussed with: jhibbits (cherry picked from commit 58a46cfd751ac726ddca8544bf73a290b0154a57) --- sys/dev/md/md.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c index 641dff4f45d3..73e3bf578019 100644 --- a/sys/dev/md/md.c +++ b/sys/dev/md/md.c @@ -145,8 +145,16 @@ struct md_ioctl32 { int md_fwsectors; uint32_t md_label; int md_pad[MDNPAD]; -} __attribute__((__packed__)); +} +#ifdef __amd64__ +__attribute__((__packed__)) +#endif +; +#ifndef __amd64__ +CTASSERT((sizeof(struct md_ioctl32)) == 440); +#else CTASSERT((sizeof(struct md_ioctl32)) == 436); +#endif #define MDIOCATTACH_32 _IOC_NEWTYPE(MDIOCATTACH, struct md_ioctl32) #define MDIOCDETACH_32 _IOC_NEWTYPE(MDIOCDETACH, struct md_ioctl32) From nobody Fri Aug 18 14:11:45 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS3hf0D22z4qZhD; Fri, 18 Aug 2023 14:11: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 4RS3hd6nC1z4c6R; Fri, 18 Aug 2023 14:11:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692367906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hI/fjUofkn6+coWGW9JxF2/1WjqroyR0i/DwD+jvs0w=; b=Uv8nSFKbEhtcjxtnumxxJdB7bWZYGx+EMgdnAMZ8Dz74+23UlA49+g1z0pQssTP9kFaWIf vuxFqDfjJoKxifsfyQ6dZsJnyM0mSByPuMZlMRvwps34yi3X8Jd58rwcJHZ3ZuwiA3ubfn LrEYaOdf1fsWVZuUJlmOFQKXD1nkuQEvkFQIWRUdbDtSykEqnc8SZRLU79ZWr6kGESGcjM Y/KmYwCxTFwaJsAD40bNpDHBF4pPR46FBJOlZdIY5gAajDnNzc4ZJKbDasTZMLTuCCQ1qA AP8DVIHQVHcY2G9twSzuwkMXhBAPfYeyE6zmj2SDXbGnS6x3v+LC6cHy9Qyzxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692367905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hI/fjUofkn6+coWGW9JxF2/1WjqroyR0i/DwD+jvs0w=; b=cGH7BUV/1lDupFiR5xDQrS8U6kCayTLFWEhRkPmTBENpbzVJZuVOIrhT91rx2ZCVGaB6BK R4b+cSBs52Rrx9MI08j+XY/44TaZ62l9s3tSqFGVAwUoOtRtHPBJCUUV4xWqf7YY3OHsL7 S7y9SKC7ciT7jfEXV3osUWQwN5GaDCWzsGj396XdIgTRbWP9B7ZYSbrpcQ07pM2fCZR3qN 71MH95Dm35kRImenx5FJEA9Ac4MluOE3PKDY427CDPY/Yz+K4T9+QTPl+Q++C1CHh0kZkt Rv6NyhthMUmOC2/hgdzDL0Y/pJeNx83xscQByNWvI+pYqTllT687GimAw3KDrg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692367906; a=rsa-sha256; cv=none; b=FdClEUxPPvlXLdrsm6akTcIU95jYUuZHLbc5k+3/6Ak3ZpUzqbKh6AU6bo+c0aepOnL70e 6bHnmHvphKjQWuVLFwbeXccpxOSbDtvrRMKyyeIEDH/i2I6l63iooanXsGQLfr9KVqrN7S liy0plEm9bhX2JyYEr5pjKZpDsgV1LWu6yG0Dp6cruw4js0USL5VUxGP7PQsKTHA8IvGF2 jJIgtH8kqse9qfN7YQVwUQrBF+sEGu077emw2gTFKX8e1QCLRSH2Y96nQoSiM0O5kb+SiO DQP/S7HOMKWhq6gnm891sGt1eK0hWjmIOLNfdDt4rkJHvq7xFFfex+KRFIvOng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RS3hd5s7rz3m3; Fri, 18 Aug 2023 14:11: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 37IEBjqW015447; Fri, 18 Aug 2023 14:11:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37IEBjdS015444; Fri, 18 Aug 2023 14:11:45 GMT (envelope-from git) Date: Fri, 18 Aug 2023 14:11:45 GMT Message-Id: <202308181411.37IEBjdS015444@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Doug Rabson <dfr@FreeBSD.org> Subject: git: ab3a78287800 - stable/13 - pkgbase: move libcom_err from kerberos to kerberos-lib List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: ab3a78287800f3f8ade899f4c1b6303c7d496117 Auto-Submitted: auto-generated The branch stable/13 has been updated by dfr: URL: https://cgit.FreeBSD.org/src/commit/?id=ab3a78287800f3f8ade899f4c1b6303c7d496117 commit ab3a78287800f3f8ade899f4c1b6303c7d496117 Author: Doug Rabson <dfr@FreeBSD.org> AuthorDate: 2023-08-09 07:42:16 +0000 Commit: Doug Rabson <dfr@FreeBSD.org> CommitDate: 2023-08-18 14:10:23 +0000 pkgbase: move libcom_err from kerberos to kerberos-lib This makes it possible to install kerberos-lib (which is used by common utilities such as curl) without pulling in the rest of kerberos. MFC after: 1 week (cherry picked from commit 54cfeb848468b8086fd046bdb94a0ed30f6dec15) --- lib/libcom_err/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libcom_err/Makefile b/lib/libcom_err/Makefile index 4bb69614453e..fcc060a615fb 100644 --- a/lib/libcom_err/Makefile +++ b/lib/libcom_err/Makefile @@ -1,6 +1,6 @@ # $FreeBSD$ -PACKAGE= kerberos +PACKAGE= kerberos-lib LIB= com_err SRCS= com_err.c error.c From nobody Fri Aug 18 15:42:16 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS5j52GNpz4qhFF; Fri, 18 Aug 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 4RS5j51clXz3HMq; Fri, 18 Aug 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=1692373337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+3sWDiKdqsHkqmNOlSBPRc2trijc+yFLxUHLNNVXVrc=; b=ou5XWSZNdZK6AKLyzhjocgSk0KRjO8MSibSXDe6PVXU8/uA3zxWmcmzLSV8uEJNl00pd4s WYeIr2QeV+9/8SksPXnYAfE65nvzX3sqpvdUTYZDSA1TwaUDrRPICYLfOxgw+2gcEmXJt/ 1QA+6PKRff1fJf9hRt27+JZjijmJpHBkMfwAduDUSVJlmhTkvGsoI/GD99D2OxxeOxXVSg Uv/kJxE17JfcUhpjft92JPFT7qsNNTDyh59KUkHdT3ldVt3rIcJi/O76QVsWKGsufdPhZ0 x8MiXIqqUIXHu85AqC/fAmfbrdYiVQXuqoDTpqDes/x4fln4t/6juBWZ8j0t3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692373337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+3sWDiKdqsHkqmNOlSBPRc2trijc+yFLxUHLNNVXVrc=; b=HiqSPh/e16TgGLCyB1p4TLDUhe6TCou2RhFiASH+In55OTKhuZOzZgQkyemmWiwdEiSvZK LqanPfnZdLDDaDCkXGPLlonSnndiqUpHk94EI4HdOt9SHWFOSOg2XRx9O77HwsVmVG28Bl Ftk7nME25uF63lkTQ2i42HoDwVW9KyiL3acKH5ibzkvM9crB/mJZsKd7H99gAxM/uTV/Zo TKhkMto4ZmIX80hvFp7uo6kTGe/2YFsnkFrvZufM4i4bq9wWyR8Od8y9sbdE4mu1fV9gUd E85PWce0lGssx3D5ffyYq1NNiTzboPnhoZgaxZPabXkCvtzckyZWTSYki6hKnQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692373337; a=rsa-sha256; cv=none; b=lMYv3oNnlkUPFQ40eHW0LPON8JUlDscUjADR6cfW5y4HkyRgBtAH+48MtfP5ZgYa5jQp++ U6qB0DwKFl+8e6g3yovQWTLegNmWL/eH24C6zucj3nQektkD7IiXn0ksGjxctVKqTa8iOf d7URagKk8rbyV4DTfjTKghUv44dgOu7tBJ1Orgr1BCnTf1lAnsRszUTwfpQeCJHw/BFLby NjALRGhcUMWuMYhTG4TK2H5tn9bj5zvzaT9Gk6B2DeYSESvKO9tRHm6WSGwn2DFnw8qmdz 6Wu5F9EzB1LLavVBKc22VRv6pqvfX+Mr4ut6V6lMnT5svMmzM/szExL08C4gdA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RS5j50gvQz5yT; Fri, 18 Aug 2023 15:42: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 37IFgH2t066329; Fri, 18 Aug 2023 15:42:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37IFgGMt066326; Fri, 18 Aug 2023 15:42:16 GMT (envelope-from git) Date: Fri, 18 Aug 2023 15:42:16 GMT Message-Id: <202308181542.37IFgGMt066326@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org> Subject: git: 7c35f64b635e - stable/13 - ldns: Upgrade to 1.8.3. List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 7c35f64b635e954b3391937fa5cfc72b6165b605 Auto-Submitted: auto-generated The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=7c35f64b635e954b3391937fa5cfc72b6165b605 commit 7c35f64b635e954b3391937fa5cfc72b6165b605 Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2023-05-24 15:50:18 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2023-08-18 15:29:28 +0000 ldns: Upgrade to 1.8.3. Merge commit 'cf3e3d5bd0a1fae39c74c7db5a4e8b10732d0766' Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D40226 (cherry picked from commit 5afab0e5e56fe90a378fb57249600e7924e1cab2) ldns: Remove a set but unused variable. Reviewed by: des Differential Revision: https://reviews.freebsd.org/D40695 (cherry picked from commit 2e1665ff345498c3f99ffd07b6e90669172d2df2) --- contrib/ldns/Changelog | 195 +- contrib/ldns/Makefile.in | 622 +- contrib/ldns/README | 5 +- contrib/ldns/README-Travis.md | 274 + contrib/ldns/aclocal.m4 | 4 +- contrib/ldns/acx_nlnetlabs.m4 | 126 +- contrib/ldns/ax_pkg_swig.m4 | 14 +- contrib/ldns/ax_python_devel.m4 | 39 +- contrib/ldns/buffer.c | 2 +- contrib/ldns/config.guess | 1646 ++-- contrib/ldns/config.sub | 2649 +++--- contrib/ldns/configure | 9584 ++++++++++++-------- contrib/ldns/configure.ac | 256 +- contrib/ldns/dane.c | 65 +- contrib/ldns/dname.c | 2 +- contrib/ldns/dnssec.c | 91 +- contrib/ldns/dnssec_sign.c | 318 +- contrib/ldns/dnssec_verify.c | 208 +- contrib/ldns/dnssec_zone.c | 850 +- contrib/ldns/drill/ChangeLog.22-nov-2005 | 6 +- contrib/ldns/drill/Makefile.in | 119 - contrib/ldns/drill/chasetrace.c | 4 +- contrib/ldns/drill/config.h | 294 - contrib/ldns/drill/config.h.in | 293 - contrib/ldns/drill/configure | 6714 -------------- contrib/ldns/drill/configure.ac | 276 - contrib/ldns/drill/dnssec.c | 16 +- contrib/ldns/drill/drill.1.in | 13 +- contrib/ldns/drill/drill.c | 221 +- contrib/ldns/drill/drill.h | 1 - contrib/ldns/drill/error.c | 2 +- contrib/ldns/drill/securetrace.c | 56 +- contrib/ldns/duration.c | 143 +- contrib/ldns/edns.c | 436 + contrib/ldns/error.c | 31 +- contrib/ldns/freebsd-configure.sh | 9 +- contrib/ldns/host2str.c | 1247 ++- contrib/ldns/host2wire.c | 63 +- contrib/ldns/install-sh | 181 +- contrib/ldns/keys.c | 253 +- contrib/ldns/ldns/buffer.h | 31 + contrib/ldns/ldns/common.h | 3 + contrib/ldns/ldns/common.h.in | 3 + contrib/ldns/ldns/config.h | 209 +- contrib/ldns/ldns/config.h.in | 199 +- contrib/ldns/ldns/dane.h | 4 +- contrib/ldns/ldns/dname.h | 2 +- contrib/ldns/ldns/dnssec.h | 52 +- contrib/ldns/ldns/dnssec_sign.h | 16 +- contrib/ldns/ldns/dnssec_verify.h | 6 +- contrib/ldns/ldns/dnssec_zone.h | 14 +- contrib/ldns/ldns/edns.h | 272 + contrib/ldns/ldns/error.h | 14 +- contrib/ldns/ldns/host2str.h | 38 +- contrib/ldns/ldns/host2wire.h | 15 +- contrib/ldns/ldns/internal.h | 14 + contrib/ldns/ldns/keys.h | 60 +- contrib/ldns/ldns/ldns.h | 1 + contrib/ldns/ldns/net.h | 63 +- contrib/ldns/ldns/net.h.in | 63 +- contrib/ldns/ldns/packet.h | 49 +- contrib/ldns/ldns/parse.h | 38 +- contrib/ldns/ldns/radix.h | 4 +- contrib/ldns/ldns/rbtree.h | 2 +- contrib/ldns/ldns/rdata.h | 28 +- contrib/ldns/ldns/resolver.h | 6 +- contrib/ldns/ldns/rr.h | 21 +- contrib/ldns/ldns/rr_functions.h | 4 +- contrib/ldns/ldns/sha1.h | 9 +- contrib/ldns/ldns/sha2.h | 27 +- contrib/ldns/ldns/str2host.h | 90 +- contrib/ldns/ldns/update.h | 2 +- contrib/ldns/ldns/util.h | 13 +- contrib/ldns/ldns/util.h.in | 9 +- contrib/ldns/ldns/wire2host.h | 8 +- contrib/ldns/ldns/zone.h | 6 +- contrib/ldns/{libdns.doxygen => libdns.doxygen.in} | 415 +- contrib/ldns/ltmain.sh | 219 +- contrib/ldns/m4/ax_config_feature.m4 | 6 +- contrib/ldns/m4/ax_have_poll.m4 | 4 +- contrib/ldns/m4/libtool.m4 | 31 +- contrib/ldns/makewin.sh | 263 + contrib/ldns/net.c | 108 +- contrib/ldns/packaging/fedora/ldns.spec | 4 +- contrib/ldns/packaging/ldns-config.in | 17 +- contrib/ldns/packet.c | 114 +- contrib/ldns/parse.c | 97 +- contrib/ldns/radix.c | 5 +- contrib/ldns/rbtree.c | 2 +- contrib/ldns/rdata.c | 8 +- contrib/ldns/resolver.c | 22 +- contrib/ldns/rr.c | 200 +- contrib/ldns/rr_functions.c | 8 +- contrib/ldns/sha1.c | 3 +- contrib/ldns/sha2.c | 21 +- contrib/ldns/str2host.c | 901 +- contrib/ldns/tsig.c | 16 +- contrib/ldns/util.c | 34 +- contrib/ldns/wire2host.c | 10 +- contrib/ldns/zone.c | 77 +- lib/libldns/Makefile | 11 +- usr.bin/drill/Makefile | 4 +- 102 files changed, 15589 insertions(+), 15734 deletions(-) diff --git a/contrib/ldns/Changelog b/contrib/ldns/Changelog index 0bd3658e767d..aba41c88c5c8 100644 --- a/contrib/ldns/Changelog +++ b/contrib/ldns/Changelog @@ -1,3 +1,166 @@ +1.8.3 2022-08-15 + * bugfix #183: Assertion failure with OPT record without rdata. + This caused packet creation with only a DO bit (for DNSSEC OK) + to crash. Thanks Anand Buddhdev and others for reporting this + so quickly. + * Fix for syntax error in pyldns + +1.8.2 2022-08-12 + * bugfix #147: Allow for tabs in whitespace before quoted rdata + fields. Thanks Felipe Gasper + * bugfix #149: Add some missing [out] annotations to doxygen + parameters. Thanks aldot. + * Fix build error on Solaris 10 with inet_ntop redeclaration error. + * Fix -U flag with ldns-signzone. Thanks Ulrich and Jonathan + * Enable compile of SVCB and HTTPS support by default. + * bugfix #179: Free line memory even if zone file parsing fails + Thanks Claudius Zingerli + * bugfix #166: Grow buffer when writing chars and fixed size + strings when converting to presentation format, preventing + potential assersion errors. + * bugfix #46: Print network errors when secure tracing. + Thanks reedjc + * EDNS0 Option handling and conversion into presentation format. + * bugfix #145: ldns-verify-zone should not call occluded records + glue. Thanks Habbie + +1.8.1 2021-12-03 + * bugfix #146: ldns-1.7.1 had soname 3.0, so ldns-1.8.x soname + needs to larger. Thanks Leah Neukirchen & Felipe Gasper + * Undo PR#123 fix ldns.pc installation when building out-of-source + Thanks Axel Xu + +1.8.0 2021-11-26 + * bugfix #38: Print "line" before line number when printing + zone parse errors. Thanks Petr Å paÄek. + * bugfix: Revert unused variables in ldns-config removal patch. + * bugfix #50: heap Out-of-bound Read vulnerability in + rr_frm_str_internal reported by pokerfacett. + * bugfix #51: Heap Out-of-bound Read vulnerability in + ldns_nsec3_salt_data reported by pokerfacett. + * Fix memory leak in examples/ldns-testns handle_tcp routine. + * Detect fixed time memory compare for openssl 0.9.8. + * Fix compile warning by variable initialisation for older gcc. + * Fix #92: ldns-testns.c:429:15: error: 'fork' is unavailable: not + available on tvOS. + * Fix for #93: fix packaging/libldns.pc Makefile rule. + * ZONEMD support in ldns-signzone and ldns-verify-zone + * ldns-testns can answer several queries over one tcp connection, + if they arrive within 100msec of each other. + * Fix so that ldns-testns does not leak sockets if the read fails. + * SVCB and HTTPS draft rrtypes. + Enable with --enable-rrtype-svcb-https. + * bugfix #117: Assertion failure with DNSSEC validating of + non existence of RR types at the root. Thanks ZjYwMj + * Set NSEC(3) ttls to the minimum of the MINIMUM field of the SOA + record and the TTL of the SOA itself. draft-ietf-dnsop-nsec-ttl + * bugfix #119: Let example tools read longer RR's than + LDNS_MAX_LINELEN + * Add SVCPARAMS to python ldns_rdf_type2str function. + * PR #134 Miscellaneous spelling fixes. Thanks jsoref! + * Fix that ldns-read-zone and ldns_zone_new_frm_fp_l properly return + the $INCLUDE not implemented error. + * Fix that ldns-read-zone and ldns_zone_new_frm_fp_l count the line + number for an empty line after a comment. + * Fix #135: Fix compile with OpenSSL-3.0.0-beta2. + * PR #107: Added ldns_pkt2buffer_wire_compress() to make dname + compression optional when converting packets to wire format. + Thanks Eli Lindsey + * Option to ldns-keygen to create symlinks with known names + (i.e. without the key id) to the created files. + Thanks Andreas Schulze + * Fix #121: Correct handling of centimetres by LOC parser. + Thanks Felipe Gasper + * PR #126: Link with libldns.la in Makefile.in. + Thanks orbea + * PR #127: Added option -Q to drill to give short answer. + Thanks niknah + * PR #133: Update m4 files for python modules. + Thanks Petr MenÅ¡Ãk + * Bufix CAA value fields may be empty: Thanks Robert Mortimer + * PR #108: Fix for ldns-compare-zones net detecting when first zone + has a RRset that shrinks from two to one RRs, or grows from one + to two RRs. Thanks Emilio Caballero + * Fix #131: Drill sig chasing breaks with gcc-11 and + strict-aliasing. Thanks Stanislav Levin + * Fix #130: Unless $TLL is defined, ttl defaults to the last + explicitly stated value. Thanks Benno + * Fix #48: Missing UNSIGNED legend with drill. Thanks reedjc + * Fix #143: EVP_PKEY_base_id became a macro with OpenSSL > 3.0 + Thanks Daniel J. Luke + * Let ldns-signzone warn for high NSEC3 iteration counts. + Thanks Andreas Schulze + +1.7.1 2019-07-26 + * bugfix: Manage verification paths for OpenSSL >= 1.1.0 + Thanks Marco Davids + * bugfix #4106: find the SDK on MacOS X <= 10.6 + Thanks Bill Cole + * bugfix #4155: ldns-config contains never used variables + Thanks Petr MenÅ¡Ãk + * bugfix #4221: drill -x crashes with malformed IPv4 address + Thanks Oleksandr Tymoshenko + * bugfix #3437: CDS & CDNSKEY RRsets should be signed with the KSK + Thanks Tony Finch + * bugfix #1566, #1568, #1569, #1570: Potential NULL Dereferences + Thanks Bill Parker + * bugfix #1260: Anticipate strchr returning NULL on unfound char + Thanks Stephan Zeisberg + * bugfix #1257: Free after reallocing to 0 size (CVE-2017-1000232) + Thanks Stephan Zeisberg + * bugfix #1256: Check parse limit before t increment (CVE-2017-1000231) + Thanks Stephan Zeisberg + * bugfix #1245: Only one signature per RRset needs to be valid with + ldns-verify-zone. Thanks Emil Natan. + * ldns-notify can use all supported hash algorithms with -y. + * bugfix #1209: make install ldns.pc file + Thanks Oleksandr Natalenko + * bugfix #1218: Only chase DS if signer is parent of owner. + Thanks Emil Natan + * bugfix #617: Retry WKS service and protocol names lower case. + Thanks Siali Yan + * Spelling errors in binaries and man pages + Thanks Andreas Schulze + * removed duplicate condition in ldns_udp_send_query. + * ldns_wire2pkt: fix null pointer dereference if pkt allocation fails + and fix memory leak with more EDNS sections + Thanks Jan Vcelak + * bugfix #1399: ldns_pkt2wire() Python binding is broken. + Thanks James Raftery + * ED25519 and ED448 support. Default is to autodetect support in + OpenSSL. Disable with --disable-ed25519 and --disable-ed448. + * ldns-notify: can have IPv6 address as argument. + * Fix time sensitive TSIG compare vulnerability. + * Fix that ldns-testns ignores sigpipe. + * Fix that ldns-notify sets the query RR as question RR, this + removes the wrong TTL and 0 rdata from the packet printout. + * Allow -T flag to be used together with drill -x + * Python bindings compile with swig 4.0 + Thanks Jitka PlesnÃková + * bugfix #4248: drill -DT fails for CNAME domain + Thanks Thom Wiggers + * bugfix #4214: Various fixes and leaks found by coverity. + Thanks Petr MenÅ¡Ãk + * Feature #3394: An -I option to ldns-notify to specify a source + IP address to send to notify from. Thanks Geert Hendrickx + * Bugfix #279: New API functions ldns_udp_connect2, + ldns_tcp_connect2, ldns_udp_bgsend2 and ldns_tcp_bgsend2, + that return -1 on failure and allow socket number 0 + to be returned too. Thanks Joerg Sonnenberger + * Bugfix #1447: More verbose reporting of chasing problems with + ldns-verify-zone. Thanks Stephane Guedon + * OpenSSL engine support with ldns-signzone. + See also https://penzin.net/ldns-signzone/ + Many thanks Vadim Penzin. + * Various improvements found with shellcheck. + Thanks Jeffrey Walton + * PR #36 Update manpage of ldns-notify to mention algorithm + support with TSIG. Thanks Anand Buddhdev + * Compile warnings with signed char input to to_lower() + and is_digit() with NetBSD. Thanks HÃ¥vard Eidnes + * Missing Makefile.PL in DNS-LDNS perl module contribution. + Thanks Jaap Akkerhuis + 1.7.0 2016-12-20 * Fix lookup of relative names in ldns_resolver_search. * bugfix #548: Double free for answers > 4096 in ldns_resolver_send_pkt @@ -98,7 +261,7 @@ Thanks William King * Use OpenSSL DANE functions for verification (unless explicitly disabled with --disable-dane-ta-usage). - * Bumb .so version + * Bump .so version * Include OPENPGPKEY RR type by default * rdata processing for SMIMEA RR type * Fix crash in displaying TLSA RR's. @@ -168,7 +331,7 @@ * bugfix #505: Manpage and usage output fixes (Thanks Tomas Hozza) * Adjust ldns_sha1() so that the input data is not modified (Thanks Marc Buijsman) - * Messages to stderr are now off by default and can be reenabled with + * Messages to stderr are now off by default and can be re-enabled with the --enable-stderr-msgs configure option. 1.6.16 2012-11-13 @@ -197,7 +360,7 @@ in sync. * Let ldns_pkt_push_rr now return false on (memory) errors. * Make buffer_export comply to documentation and fix buffer2str - * Various improvements and fixes of pyldns from Katel Slany + * Various improvements and fixes of pyldns from Karel Slany now documented in their own Changelog. * bugfix: Make ldns_resolver_pop_nameserver clear the array when there was only one. @@ -236,7 +399,7 @@ * bugfix #433: Allocate rdf using ldns_rdf_new in ldns_dname_label * bugfix #432: Use LDNS_MALLOC & LDNS_FREE i.s.o. malloc & free * bugfix #431: Added error message for LDNS_STATUS_INVALID_B32_EXT - * bugfix #427: Explicitely link ssl with the programs that use it. + * bugfix #427: Explicitly link ssl with the programs that use it. * Fix reading \DDD: Error on values that are outside range (>255). * bugfix #429: fix doxyparse.pl fails on NetBSD because specified path to perl. @@ -300,7 +463,7 @@ * Update of libdns.vim (thanks Miek Gieben) * Added the ldnsx Python module to our contrib section, which adds even more pythonisticism to the usage of ldns with Python. (Many thanks - to Christpher Olah and Paul Wouters) + to Christopher Olah and Paul Wouters) The ldnsx module is automatically installed when --with-pyldns is used with configuring, but may explicitly be excluded with the --without-pyldnsx option to configure. @@ -328,7 +491,7 @@ * bugfix #380: Minimizing effect of discrepancies in sizeof(bool) at build time and when used. * bugfix #383: Fix detection of empty nonterminals of multiple labels. - * Fixed the ommission of rrsets in nsec(3)s and rrsigs to all occluded + * Fixed the omission of rrsets in nsec(3)s and rrsigs to all occluded names (in stead of just the ones that contain glue only) and all occluded records on the delegation points (in stead of just the glue). * Clarify the operation of ldns_dnssec_mark_glue and the usage of @@ -511,7 +674,7 @@ * --enable-gost : use the GOST algorithm (experimental). * Added some missing options to drill manpage * Some fixes to --without-ssl option - * Fixed quote parsing withing strings + * Fixed quote parsing within strings * Bitmask fix in EDNS handling * Fixed non-fqdn domain name completion for rdata field domain names of length 1 @@ -618,7 +781,7 @@ from Shane Kerr, bug id 188) * zone.c memory leaks on error and allocation checks fixed (patch from Shane Kerr, bug id 189) - * ldns-zplit output and error messages fixed (patch from Shane Kerr, + * ldns-zsplit output and error messages fixed (patch from Shane Kerr, bug id 190) * Fixed potential buffer overflow in ldns_str2rdf_dname * Signing code no longer signs delegation NS rrsets @@ -647,7 +810,7 @@ * DLV RR type added * TCP fallback system has been improved * HMAC-SHA256 TSIG support has been added. - * TTLS are now correcly set in NSEC(3) records when signing zones + * TTLS are now correctly set in NSEC(3) records when signing zones EXAMPLE TOOLS: * New example: ldns-revoke to revoke DNSKEYs according to RFC5011 @@ -722,7 +885,7 @@ 28 Nov 2007 1.2.2: * Added support for HMAC-MD5 keys in generator * Added a new example tool (written by Ondrej Sury): ldns-compare-zones - * ldns-keygen now checks key sizes for rfc conformancy + * ldns-keygen now checks key sizes for rfc conformance * ldns-signzone outputs SSL error if present * Fixed manpages (thanks to Ondrej Sury) * Fixed Makefile for -j <x> @@ -800,7 +963,7 @@ * -r was killed in favor of -o <header bit mnemonic> which allows for a header bits setting (and maybe more in the future) - * DNSSEC is never automaticaly set, even when you query + * DNSSEC is never automatically set, even when you query for DNSKEY/RRSIG or DS. * Implement a crude RTT check, it now distinguishes between reachable and unreachable. @@ -812,7 +975,7 @@ * ldns-dpa was added to the examples - this is the Dns Packet Analyzer tool. * ldnsd - as very, very simple nameserver impl. - * ldns-zsplit - split zones for parrallel signing + * ldns-zsplit - split zones for parallel signing * ldns-zcat - cat split zones back together * ldns-keyfetcher - Fetches DNSKEY records with a few (non-strong, non-DNSSEC) anti-spoofing techniques. @@ -831,7 +994,7 @@ API: Changed: * renamed ldns/dns.h to ldns/ldns.h - * ldns_rr_new_frm_str() is extented with an extra variable which + * ldns_rr_new_frm_str() is extended with an extra variable which in common use may be NULL. This trickles through to: o ldns_rr_new_frm_fp o ldns_rr_new_frm_fp_l @@ -872,7 +1035,7 @@ * char *_when was removed from the ldns_pkt structure 18 Oct 2005: 1.0.0: ldns-team - * Commited a patch from HÃ¥kan Olsson + * Committed a patch from HÃ¥kan Olsson * Added UPDATE support (Jakob Schlyter and HÃ¥kan Olsson) * License change: ldns is now BSD licensed * ldns now depends on SSL @@ -905,7 +1068,7 @@ 13 Jun 2005: 0.65: ldns-team * Repository is online at: http://www.nlnetlabs.nl/ldns/svn/ - * Apply reference copying throuhgout ldns, except in 2 + * Apply reference copying throughout ldns, except in 2 places in the ldns_resolver structure (._domain and ._nameservers) * Usual array of bugfixes @@ -914,7 +1077,7 @@ 23 May 2005: 0.60: ldns-team * Removed config.h from the header installed files - (you're not supposed to include that in a libary) + (you're not supposed to include that in a library) * Further tweaking - DNSSEC signing/verification works - Assorted bug fixes and tweaks (memory management) diff --git a/contrib/ldns/Makefile.in b/contrib/ldns/Makefile.in index 04f683bf1197..57957d0844d3 100644 --- a/contrib/ldns/Makefile.in +++ b/contrib/ldns/Makefile.in @@ -40,15 +40,29 @@ edit = sed \ # override $U variable which is used by autotools for deansification (for # K&R C compilers), but causes problems if $U is defined in the env). U= + +# set all of the tools due to cross-compiles. libtool uses most of them. +# https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html CC = @CC@ +CXX = @CXX@ +CPP = @CPP@ +LD = @LD@ +AS = @AS@ +AR = @AR@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ + +# Unbound project specific flags CFLAGS = @CFLAGS@ CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ -DLDNS_TRUST_ANCHOR_FILE="\"$(LDNS_TRUST_ANCHOR_FILE)\"" +ARFLAGS = @ARFLAGS@ LDFLAGS = @LDFLAGS@ + LIBS = @LIBS@ LIBOBJDIR = compat/ LIBOBJS = @LIBOBJS@ PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ -PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_X_CFLAGS = @PYTHON_X_CFLAGS@ LIBSSL_CPPFLAGS = @LIBSSL_CPPFLAGS@ LIBSSL_LDFLAGS = @LIBSSL_LDFLAGS@ @@ -72,15 +86,15 @@ LINTFLAGS += -D"__BEGIN_DECLS=" -D"__ssize_t=ssize_t" -D"__intptr_t=intptr LINTFLAGS += -D"_RuneLocale=int" DEPFLAG = @DEPFLAG@ -INSTALL = $(srcdir)/install-sh +INSTALL = $(srcdir)/install-sh LIBLOBJS = $(LIBOBJS:.o=.lo) -LDNS_LOBJS = buffer.lo dane.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo duration.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo net.lo packet.lo parse.lo radix.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo +LDNS_LOBJS = buffer.lo dane.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo duration.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo net.lo packet.lo parse.lo radix.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo edns.lo LDNS_LOBJS_EX = ^linktest\.c$$ LDNS_ALL_LOBJS = $(LDNS_LOBJS) $(LIBLOBJS) LIB = libldns.la -LDNS_HEADERS = buffer.h dane.h dname.h dnssec.h dnssec_sign.h dnssec_verify.h dnssec_zone.h duration.h error.h higher.h host2str.h host2wire.h keys.h ldns.h packet.h parse.h radix.h rbtree.h rdata.h resolver.h rr_functions.h rr.h sha1.h sha2.h str2host.h tsig.h update.h wire2host.h zone.h +LDNS_HEADERS = buffer.h dane.h dname.h dnssec.h dnssec_sign.h dnssec_verify.h dnssec_zone.h duration.h error.h higher.h host2str.h host2wire.h keys.h ldns.h packet.h parse.h radix.h rbtree.h rdata.h resolver.h rr_functions.h rr.h sha1.h sha2.h str2host.h tsig.h update.h wire2host.h zone.h edns.h LDNS_HEADERS_EX = ^config\.h|common\.h|util\.h|net\.h$$ LDNS_HEADERS_GEN= common.h util.h net.h @@ -89,8 +103,8 @@ PYLDNS_I_FILES = $(pywrapdir)/file_py3.i $(pywrapdir)/ldns_buffer.i $(pywrapdir) DRILL_LOBJS = drill/chasetrace.lo drill/dnssec.lo drill/drill.lo drill/drill_util.lo drill/error.lo drill/root.lo drill/securetrace.lo drill/work.lo EXAMPLE_LOBJS = examples/ldns-chaos.lo examples/ldns-compare-zones.lo examples/ldns-dane.lo examples/ldnsd.lo examples/ldns-dpa.lo examples/ldns-gen-zone.lo examples/ldns-key2ds.lo examples/ldns-keyfetcher.lo examples/ldns-keygen.lo examples/ldns-mx.lo examples/ldns-notify.lo examples/ldns-nsec3-hash.lo examples/ldns-read-zone.lo examples/ldns-resolver.lo examples/ldns-revoke.lo examples/ldns-rrsig.lo examples/ldns-signzone.lo examples/ldns-test-edns.lo examples/ldns-testns.lo examples/ldns-testpkts.lo examples/ldns-update.lo examples/ldns-verify-zone.lo examples/ldns-version.lo examples/ldns-walk.lo examples/ldns-zcat.lo examples/ldns-zsplit.lo -EXAMPLE_PROGS = examples/ldns-chaos examples/ldns-compare-zones examples/ldnsd examples/ldns-gen-zone examples/ldns-key2ds examples/ldns-keyfetcher examples/ldns-keygen examples/ldns-mx examples/ldns-notify examples/ldns-read-zone examples/ldns-resolver examples/ldns-rrsig examples/ldns-test-edns examples/ldns-update examples/ldns-version examples/ldns-walk examples/ldns-zcat examples/ldns-zsplit -EX_PROGS_BASENM = ldns-chaos ldns-compare-zones ldns-dane ldnsd ldns-dpa ldns-gen-zone ldns-key2ds ldns-keyfetcher ldns-keygen ldns-mx ldns-notify ldns-nsec3-hash ldns-read-zone ldns-resolver ldns-revoke ldns-rrsig ldns-signzone ldns-test-edns ldns-testns ldns-testpkts ldns-update ldns-verify-zone ldns-version ldns-walk ldns-zcat ldns-zsplit +EXAMPLE_PROGS = examples/ldns-chaos examples/ldns-compare-zones examples/ldnsd examples/ldns-gen-zone examples/ldns-key2ds examples/ldns-keyfetcher examples/ldns-keygen examples/ldns-mx examples/ldns-notify examples/ldns-read-zone examples/ldns-resolver examples/ldns-rrsig examples/ldns-test-edns examples/ldns-update examples/ldns-version examples/ldns-walk examples/ldns-zcat examples/ldns-zsplit +EX_PROGS_BASENM = ldns-chaos ldns-compare-zones ldns-dane ldnsd ldns-dpa ldns-gen-zone ldns-key2ds ldns-keyfetcher ldns-keygen ldns-mx ldns-notify ldns-nsec3-hash ldns-read-zone ldns-resolver ldns-revoke ldns-rrsig ldns-signzone ldns-test-edns ldns-testns ldns-testpkts ldns-update ldns-verify-zone ldns-version ldns-walk ldns-zcat ldns-zsplit EXAMPLE_PROGS_EX= ^examples/ldns-testpkts\.c|examples/ldns-testns\.c|examples/ldns-dane\.c|examples/ldns-dpa\.c|examples/ldns-nsec3-hash\.c|examples/ldns-revoke\.c|examples/ldns-signzone\.c|examples/ldns-verify-zone\.c$$ TESTNS = examples/ldns-testns TESTNS_LOBJS = examples/ldns-testns.lo examples/ldns-testpkts.lo @@ -118,6 +132,10 @@ all: setup-builddir lib linktest manpages @P5_DNS_LDNS@ @PYLDNS@ @DRILL@ @EXAMPL .c.lo: $(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $< -o $@ +# Need libtool compile +.c.o: + $(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $< -o $@ + $(LDNS_LOBJS) $(LIBLOBJS) $(DRILL_LOBJS) $(EXAMPLE_LOBJS): $(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/$(@:.lo=.c) -o $@ @@ -130,14 +148,16 @@ setup-builddir: @if test ! -d include ; then $(INSTALL) -d include; fi @if test ! -h include/ldns ; then ln -s ../ldns include/ldns || echo "include/ldns exists"; fi +# builddir/ is used by 60-compile-builddir putdown-builddir: rm -f include/ldns lib config.h test ! -d include || rmdir include || : if test -d examples -a ! -f examples/README; then rmdir examples || : ; fi if test -d drill -a ! -f drill/README ; then rmdir drill || : ; fi if test -d compat -a ! -f compat/malloc.c; then rmdir compat || : ; fi + rm -rf builddir/ -drill: no-drill-config-h drill/drill drill/drill.1 +drill: setup-builddir no-drill-config-h drill/drill drill/drill.1 no-drill-config-h: @if test -e $(srcdir)/drill/config.h -o -e drill/config.h ; \ then echo "A config.h was detected in the drill subdirectory." ; \ @@ -147,8 +167,8 @@ no-drill-config-h: exit -1 ; \ fi -drill/drill: $(DRILL_LOBJS) $(LIB) - $(LINK_EXE) $(DRILL_LOBJS) $(LIBS) $(LIBSSL_LIBS) -lldns -o drill/drill +drill/drill: $(DRILL_LOBJS) $(LIB) $(LIBLOBJS) + $(LINK_EXE) $(DRILL_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o drill/drill drill/drill.1: $(srcdir)/drill/drill.1.in $(edit) $(srcdir)/drill/drill.1.in > drill/drill.1 @@ -168,7 +188,7 @@ uninstall-drill: clean-drill: $(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill drill/drill.1 -examples: no-examples-config-h $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1 +examples: setup-builddir no-examples-config-h $(LIB) $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1 no-examples-config-h: @if test -e $(srcdir)/examples/config.h -o -e examples/config.h ; \ then echo "A config.h was detected in the examples subdirectory." ; \ @@ -178,22 +198,25 @@ no-examples-config-h: exit -1 ; \ fi +# Need LIBSSL_LIBS $(EXAMPLE_PROGS): - $(LINK_EXE) $@.lo $(LIBS) -lldns -o $@ + $(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@ +# Need LIBSSL_LIBS $(TESTNS): - $(LINK_EXE) $(TESTNS_LOBJS) $(LIBS) -lldns -o $(TESTNS) + $(LINK_EXE) $(TESTNS_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $(TESTNS) +# Need LIBSSL_LIBS $(LDNS_DPA): - $(LINK_EXE) $(LDNS_DPA_LOBJS) $(LIBS) $(LIBPCAP_LIBS) -lldns \ + $(LINK_EXE) $(LDNS_DPA_LOBJS) $(LIBLOBJS) $(LIB) $(LIBPCAP_LIBS) $(LIBSSL_LIBS) $(LIBS) \ -o $(LDNS_DPA) $(LDNS_DANE): - $(LINK_EXE) $(LDNS_DANE_LOBJS) $(LIBS) $(LIBSSL_SSL_LIBS) -lldns \ + $(LINK_EXE) $(LDNS_DANE_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_SSL_LIBS) $(LIBS) \ -o $(LDNS_DANE) $(EX_SSL_PROGS): - $(LINK_EXE) $@.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o $@ + $(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@ examples/ldns-dane.1: $(srcdir)/examples/ldns-dane.1.in $(edit) $(srcdir)/examples/ldns-dane.1.in > examples/ldns-dane.1 @@ -221,14 +244,14 @@ uninstall-examples: test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ; clean-examples: - $(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS) + $(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS) $(LIBTOOL) --mode clean rm -f $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) $(LIBTOOL) --mode clean rm -f $(EXAMPLE_LOBJS) $(LIBTOOL) --mode clean rm -f examples/ldns-dane.1 examples/ldns-verify-zone.1 linktest: $(srcdir)/linktest.c libldns.la $(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/linktest.c -o linktest.lo - $(LINK_EXE) linktest.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o linktest + $(LINK_EXE) linktest.lo $(LIB) $(LIBSSL_LIBS) $(LIBS) -o linktest lib: libldns.la @@ -243,7 +266,7 @@ libldns.la-export-all: $(LDNS_ALL_LOBJS) mancheck: sh -c 'find . -name \*.\[13\] -exec troff -z {} \;' 2>&1 | sed "s/^\.\///" | sed "s/\(:[0\-9]\+:\)/\1 warning:/g" -doxygen: manpages +doxygen: @if test ! -e doc/header.html ; then \ $(INSTALL) -c -m 644 $(srcdir)/doc/header.html doc/ ; \ fi ; @@ -252,14 +275,29 @@ doxygen: manpages doc: manpages $(doxygen) @$(INSTALL) -d doc -manpages: $(srcdir)/doc/function_manpages - @$(INSTALL) -d doc - @cat $(srcdir)/ldns/*.h \ - | $(srcdir)/doc/doxyparse.pl \ - -m $(srcdir)/doc/function_manpages \ - | grep -v ^doxygen | grep -v ^cat > doc/ldns_manpages +manpages: $(srcdir)/doc/function_manpages + @$(INSTALL) -d doc/man/man3 + @if [ -f $(srcdir)/doc/man/man3/ldns_rr.3 ] ; \ + then \ + if test -d ldns ; then \ + echo "is builddir srcdir" > ldns/YES ; \ + if [ ! -f $(srcdir)/ldns/YES ]; then \ + echo "Copying manpages..."; \ + for m in $(srcdir)/doc/man/man3/*.3 ; \ + do \ + $(INSTALL) -c -C -m 444 $${m} doc/man/man3/ ; \ + done; \ + fi ;\ + rm -f ldns/YES; \ + fi; \ + else \ + echo "Generating manpages..."; \ + cat $(srcdir)/ldns/*.h \ + | $(srcdir)/doc/doxyparse.pl -m $(srcdir)/doc/function_manpages \ + | grep -v ^doxygen | grep -v ^cat > doc/ldns_manpages; \ + fi -manpage-create-errors: $(srcdir)/doc/function_manpages +manpage-create-errors: $(srcdir)/doc/function_manpages @$(INSTALL) -d doc @cat $(srcdir)/ldns/*.h \ | $(srcdir)/doc/doxyparse.pl -e \ @@ -276,7 +314,7 @@ manpage-errors: echo doc/man/man3/$${m}.3: manpage-has-bad-whatis-entry; \ fi; \ done || echo "WARNING!: Cannot detect manpage errors on `uname`" - + pyldns: _ldns.la $(pywrapdir)/ldns_wrapper.c: $(PYLDNS_I_FILES) ldns/config.h @@ -285,8 +323,8 @@ $(pywrapdir)/ldns_wrapper.c: $(PYLDNS_I_FILES) ldns/config.h ldns_wrapper.lo: $(pywrapdir)/ldns_wrapper.c ldns/config.h $(COMP_LIB) -I./include/ldns $(LIBSSL_CPPFLAGS) $(PYTHON_CPPFLAGS) $(PYTHON_X_CFLAGS) -c $(pywrapdir)/ldns_wrapper.c -o $@ -_ldns.la: ldns_wrapper.lo libldns.la - $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS) +_ldns.la: ldns_wrapper.lo libldns.la + $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs $(LIB) $(PYTHON_LIBS) $(LIBS) $(p5_dns_ldns_dir)/Makefile: $(p5_dns_ldns_dir)/Makefile.PL BUILDDIR=`pwd`; cd $(p5_dns_ldns_dir); LD_LIBRARY_PATH="$$BUILDDIR/.libs:$$LD_LIBRARY_PATH" DYLD_LIBRARY_PATH="$$BUILDDIR/.libs:$$DYLD_LIBRARY_PATH" $(PERL) Makefile.PL LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR" @@ -308,9 +346,9 @@ clean-p5-dns-ldns: $(p5_dns_ldns_dir)/Makefile test-p5-dns-ldns: $(p5_dns_ldns_dir)/Makefile cd $(p5_dns_ldns_dir); $(MAKE) test -install: install-h install-lib @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_DNS_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@ +install: install-h install-lib install-pc @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_DNS_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@ -uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_DNS_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@ +uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib uninstall-pc $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_DNS_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@ destclean: uninstall @@ -355,12 +393,22 @@ uninstall-h: test ! -d $(DESTDIR)$(includedir)/ldns || rmdir -p $(DESTDIR)$(includedir)/ldns || echo "ok, dir already gone" exit 0 +packaging/libldns.pc: $(srcdir)/packaging/libldns.pc.in + ./config.status --file=$@ + +install-pc: packaging/libldns.pc + $(INSTALL) -m 644 packaging/libldns.pc $(DESTDIR)$(libdir)/pkgconfig/ldns.pc + +uninstall-pc: + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/pkgconfig/ldns.pc + test ! -d $(DESTDIR)$(libdir)/pkgconfig || rmdir -p $(DESTDIR)$(libdir)/pkgconfig || echo "ok, dir already gone" + install-lib: lib $(INSTALL) -m 755 -d $(DESTDIR)$(libdir) $(LIBTOOL) --mode=install cp libldns.la $(DESTDIR)$(libdir) $(LIBTOOL) --mode=finish $(DESTDIR)$(libdir) -uninstall-lib: +uninstall-lib: $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/libldns.la test ! -d $(DESTDIR)$(libdir) || rmdir -p $(DESTDIR)$(libdir) || echo "ok, dir already gone" @@ -370,7 +418,7 @@ install-pyldns: @PYLDNS@ $(LIBTOOL) --mode=install cp _ldns.la $(DESTDIR)$(python_site) $(LIBTOOL) --mode=finish $(DESTDIR)$(python_site) -uninstall-pyldns: +uninstall-pyldns: rm -f $(DESTDIR)$(python_site)/ldns/* test ! -d $(DESTDIR)$(python_site)/ldns || rmdir $(DESTDIR)$(python_site)/ldns || echo "ok, dir already gone" @@ -425,7 +473,7 @@ docclean: rm -f doc/ldns_manpages distclean: realclean - rm -fr autom4te.cache + rm -fr autom4te.cache rm -f config.guess config.sub configure ltmain.sh ldns/config.h.in ## No need for changes here @@ -457,8 +505,8 @@ allclean: test-clean clean test-clean: tpkg -b test clean -test: @TEST_P5_DNS_LDNS@ - if test -x "`which bash`"; then bash test/test_all.sh; else sh test/test_all.sh; fi +test: examples drill @TEST_P5_DNS_LDNS@ + ./test/test_all.sh # Recreate symbols file, only needed when API changes @@ -538,129 +586,137 @@ depend: buffer.lo buffer.o: $(srcdir)/buffer.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h dane.lo dane.o: $(srcdir)/dane.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h dname.lo dname.o: $(srcdir)/dname.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h dnssec.lo dnssec.o: $(srcdir)/dnssec.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h dnssec_sign.lo dnssec_sign.o: $(srcdir)/dnssec_sign.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \ - $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \ - $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ - $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ - $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ - $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ - $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h + $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \ + $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \ + $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \ + $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \ + $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \ + $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h dnssec_verify.lo dnssec_verify.o: $(srcdir)/dnssec_verify.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \ - $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \ - $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ - $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ - $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ - $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ - $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h + $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \ + $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \ + $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \ + $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \ + $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \ + $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h dnssec_zone.lo dnssec_zone.o: $(srcdir)/dnssec_zone.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \ - $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \ - $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \ + $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \ + $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \ + $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \ + $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \ + $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h +duration.lo duration.o: $(srcdir)/duration.c ldns/config.h $(srcdir)/ldns/duration.h +edns.lo edns.o: $(srcdir)/edns.c $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h \ + $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h \ + $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ + $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h -duration.lo duration.o: $(srcdir)/duration.c ldns/config.h $(srcdir)/ldns/duration.h error.lo error.o: $(srcdir)/error.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h higher.lo higher.o: $(srcdir)/higher.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h host2str.lo host2str.o: $(srcdir)/host2str.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \ - $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \ - $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ - $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ - $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ - $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ - $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h + $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \ + $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \ + $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \ + $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \ + $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \ + $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h host2wire.lo host2wire.o: $(srcdir)/host2wire.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \ - $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \ - $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ - $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ - $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ - $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ - $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h + $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \ + $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \ + $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \ + $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \ + $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \ + $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h keys.lo keys.o: $(srcdir)/keys.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h linktest.lo linktest.o: $(srcdir)/linktest.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \ - $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \ - $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ - $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ - $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ - $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ - $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h + $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \ + $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \ + $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \ + $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \ + $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \ + $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h net.lo net.o: $(srcdir)/net.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h packet.lo packet.o: $(srcdir)/packet.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h parse.lo parse.o: $(srcdir)/parse.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ @@ -670,40 +726,40 @@ radix.lo radix.o: $(srcdir)/radix.c ldns/config.h $(srcdir)/ldns/radix.h $(srcdi rbtree.lo rbtree.o: $(srcdir)/rbtree.c ldns/config.h $(srcdir)/ldns/rbtree.h ldns/util.h ldns/common.h rdata.lo rdata.o: $(srcdir)/rdata.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h resolver.lo resolver.o: $(srcdir)/resolver.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \ - $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \ - $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ - $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ - $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ - $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ - $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h + $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \ + $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \ + $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \ + $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \ + $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \ + $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h rr.lo rr.o: $(srcdir)/rr.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h rr_functions.lo rr_functions.o: $(srcdir)/rr_functions.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \ - $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \ - $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ - $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ - $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ - $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \ - $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h + $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \ + $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \ + $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \ + $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \ + $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \ + $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h sha1.lo sha1.o: $(srcdir)/sha1.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \ $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \ - $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \ - $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ + $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \ + $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \ *** 44979 LINES SKIPPED *** From nobody Fri Aug 18 16:23:25 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS6cZ2L7Pz4qkrZ; Fri, 18 Aug 2023 16:23:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RS6cY4p4Jz3QgZ; Fri, 18 Aug 2023 16:23:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692375805; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RV6zzNKeMvl7JHgEkzu02YQxuU7AjiPoPNvcdrN6TAQ=; b=CwwGp1rerci13FzrFphht9RrxeDnUFH3yweVqddnGXwRzWsXGQex3/ZgtYhI1xN7zv65Qd Kh4Vk+39eRH+qoWcXmvnK0VGmyIrmnZ27RdXexG52JkFoLe6Jyxl4qWVucC/wBNpZWH0/I 3nz9c+auiDZgfluXrk5SToz2nUMQJWdIX/deaYc8mMerzWXl5Wq8Qxv2qf3uPcDSQPnOfD +aySOTWqMosmss3zWG4rY9ROwFkldS06j9XVqw0eq9/PATYXrnfefYSZMC13oyt+zQ1hcA pmibaCKr5YPHuSeg440Eiz/0drIGssXexgDd//NLzmIAXhB+YP/w9R14clIDmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692375805; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RV6zzNKeMvl7JHgEkzu02YQxuU7AjiPoPNvcdrN6TAQ=; b=KxazNgVjuLsFWjeV32Ap1XRoIgj0iCzrl/iUXZGC5R/IhN5KUlaPKVP46YRWGx4R3MlxDH 7u3d3i6QVSZSb4uTWiTranEWHG/3WhYKx4+UpyNC76Y2xy5CMJoNCUEsPLVKa79os1b2v9 G795GG87f66OPfkJwiphOmvRXa7QYS/j1Yb7L6O5Xv7F/UMShGcw0Wm3Sshcv84MXuXnbk jAreWg+dbafNrQ30CoICex7V3Iuq7Suny0PEuvfZltCm9j9f6Fn671jNG6VuvejlnOO/dx ASfEOrgmqN8I1VNKApkehQNisYkEIoMl83zLFm4k7SPnUPMq+SR3PSG4Q4iYBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692375805; a=rsa-sha256; cv=none; b=vndhGWpoApnILJ+v5fEMTd93CHISHMXW26EsIW5jE8TlHKkuYrF6mU2dXB5eeChLnpgzBO awVbOnq1ygUOtVKE2zfbD+w5HtW+l1ITHiEX4ymO8yGkc+X1ImcDBt1E2zui7hVFQphiSN FAXou/8rp1GcOkZVWGkVRuIvjmOEsXhELqBhatZH4dh/Rv7wOcIQJsgdRsNfQLquECBV9y A0dpK5xia7dnLmqtdKmG1a3Y6vEblb6/Jg1+mGuuZMLO0g1XbwjArij1Qb30ehEy/M/U7G P8x+2ihUVluTvnd4yV92Yr4fgn5zH8lPJRKo2rwbykV27lheS8JZ8S3MsCcg2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RS6cY3sV3z7nd; Fri, 18 Aug 2023 16:23: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 37IGNPV5033632; Fri, 18 Aug 2023 16:23:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37IGNP1p033629; Fri, 18 Aug 2023 16:23:25 GMT (envelope-from git) Date: Fri, 18 Aug 2023 16:23:25 GMT Message-Id: <202308181623.37IGNP1p033629@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste <emaste@FreeBSD.org> Subject: git: 3bf46f880f43 - stable/13 - Cirrus update to new freebsd instance version List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3bf46f880f439c85e906a5d4061b0ba9d94d26d8 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=3bf46f880f439c85e906a5d4061b0ba9d94d26d8 commit 3bf46f880f439c85e906a5d4061b0ba9d94d26d8 Author: QWERTIOX <qwertiox.kontakt@gmail.com> AuthorDate: 2023-04-19 13:01:15 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-08-18 16:23:02 +0000 Cirrus update to new freebsd instance version MFC after: 2 weeks Pull Request: https://github.com/freebsd/freebsd-src/pull/718 (cherry picked from commit 5e2ba9cb6b0bc097f6ed176894cfee3b5bd405f4) --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index fb0149a5d91b..bc53e2124259 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -5,7 +5,7 @@ compute_engine_instance: # gcloud compute images list --project freebsd-org-cloud-dev --no-standard-images platform: freebsd image_project: freebsd-org-cloud-dev - image: freebsd-13-1-release-amd64 + image: freebsd-13-2-release-amd64 cpu: 8 memory: 8G disk: 40 From nobody Fri Aug 18 23:18:43 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqm01lyz4fs5X; Fri, 18 Aug 2023 23:18: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 4RSHql6KfFz4nGY; Fri, 18 Aug 2023 23:18:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vRSHYDeUKPNPssvmepZklgBbz/joMb6CuldignuhBLk=; b=Cdfoz9YDw4/of8wLUwMmCb9BL0HtZ4wqDlhiMBbPdDHR8wE1cgdlHEOrDmfh+oHtEWKokL NSpNyuOARaBdLiVkAIh2JK68SEXHvihxicMSu5B0yn8ZbCL5TVrOKSv1y3lKLp6Yw8v4sQ n2Azw51ZAsXXENuZIeayZVSh/QStpAK4F16uCai5TfsdjKhA1GqYkKqxS8TnBrf19M/Tsl Ef/c9E9cz4CztHJ3/yFzbLYPcpmXRezz6lJzLium3KIGz7POEwpQRWNNeHhDWMbIc879TN mZHSQgkhvtVn80SuuyRc1B785c1iRoy3bYTfzhZ6BNTXqxpTZlLBG9KbGx8LHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vRSHYDeUKPNPssvmepZklgBbz/joMb6CuldignuhBLk=; b=SU92uTchADdX8KuQYcAd+KlynCc8M6ogYq78jzlbFqUEUcJbkXfXWQLEZPzvIwZ5rBn4p4 UKnEUrXWVIYXGWX9OJnWkee2vFanLTLBsZW7z/GlTG/CuwruwPmsVRI+RF1/u/WWLjyHl0 a4RI08Lk6d5KB5DeOG50FGyN1UPIkKbWEQUojAW9ovo4Cl9qBo0bU2+LvR3/ya1VAWd6VQ F+YROJXJNEYWnBr9PX6C7apGGSI3dEHE+cfXvIHdaDzNtNStIwSG05h4oLhrPJL1nqaPG4 N/d6C8zB5y7JwpOSZlVM5NcxhB3N9O/UHJCRBok/OMANWSq72qIT2sL3ofZgRA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400723; a=rsa-sha256; cv=none; b=XmYLo+DAVQKGSGL1GxTjhbQiWkVI3JPiZlR8KGLpWVtgq8QzIu1yc5jK3wfCUvRDmmVYaU NqOTwDBCOoD6hGk84cwm1iO4MZyEK+iDpfu1AmhN5hfTG8R/tAl+ISn1X9cmZFpVHdfquu 6CpCbWCoY4BWRbZ23shIyvqvxc7zpYnTcaD6FI1KAlO1/veYu/WPYDDujG6rDdR2sTe2Ms 2Gf7Owz/UlGDjYv4dR8HWcLGsSF9p1ZPnuR73CGnocIJaeCmAwnByqR3PY5piJ6q3/5Z7j vZS0+Yt5LbsGHoeXGhngA5PScos4OCUkLFzAlxLfLlJ3aO3kxtp/Q/WWn/YSlw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSHql5Hxwzb6Q; Fri, 18 Aug 2023 23:18: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 37INIhUE018505; Fri, 18 Aug 2023 23:18:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIh3a018502; Fri, 18 Aug 2023 23:18:43 GMT (envelope-from git) Date: Fri, 18 Aug 2023 23:18:43 GMT Message-Id: <202308182318.37INIh3a018502@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI <delphij@FreeBSD.org> Subject: git: 4e846759f0a3 - stable/13 - Add gve, the driver for Google Virtual NIC (gVNIC) List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 4e846759f0a327c8e150ab8910b06f93edecf0d9 Auto-Submitted: auto-generated The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=4e846759f0a327c8e150ab8910b06f93edecf0d9 commit 4e846759f0a327c8e150ab8910b06f93edecf0d9 Author: Shailend Chand <shailend@google.com> AuthorDate: 2023-06-02 18:58:24 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2023-08-18 23:18:15 +0000 Add gve, the driver for Google Virtual NIC (gVNIC) gVNIC is a virtual network interface designed specifically for Google Compute Engine (GCE). It is required to support per-VM Tier_1 networking performance, and for using certain VM shapes on GCE. The NIC supports TSO, Rx and Tx checksum offloads, and RSS. It does not currently do hardware LRO, and thus the software-LRO in the host is used instead. It also supports jumbo frames. For each queue, the driver negotiates a set of pages with the NIC to serve as a fixed bounce buffer, this precludes the use of iflib. Reviewed-by: markj Differential Revision: https://reviews.freebsd.org/D39873 (cherry picked from commit 54dfc97b0bd99f1c3bcbb37357cf28cd81a7cf00) --- share/man/man4/Makefile | 5 + share/man/man4/gve.4 | 215 ++++++++++++ sys/conf/files | 7 + sys/dev/gve/gve.h | 459 ++++++++++++++++++++++++ sys/dev/gve/gve_adminq.c | 803 ++++++++++++++++++++++++++++++++++++++++++ sys/dev/gve/gve_adminq.h | 394 +++++++++++++++++++++ sys/dev/gve/gve_desc.h | 151 ++++++++ sys/dev/gve/gve_main.c | 853 +++++++++++++++++++++++++++++++++++++++++++++ sys/dev/gve/gve_plat.h | 94 +++++ sys/dev/gve/gve_qpl.c | 284 +++++++++++++++ sys/dev/gve/gve_register.h | 54 +++ sys/dev/gve/gve_rx.c | 684 ++++++++++++++++++++++++++++++++++++ sys/dev/gve/gve_sysctl.c | 261 ++++++++++++++ sys/dev/gve/gve_tx.c | 806 ++++++++++++++++++++++++++++++++++++++++++ sys/dev/gve/gve_utils.c | 405 +++++++++++++++++++++ sys/modules/Makefile | 6 + sys/modules/gve/Makefile | 36 ++ 17 files changed, 5517 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 4fc01a6c4b1f..b7372ac63c2e 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -174,6 +174,7 @@ MAN= aac.4 \ geom_map.4 \ geom_uzip.4 \ gif.4 \ + ${_gve.4} \ gpio.4 \ gpioiic.4 \ gpiokeys.4 \ @@ -922,6 +923,10 @@ _linux.4= linux.4 _ossl.4= ossl.4 .endif +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64" +_gve.4= gve.4 +.endif + .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64" || \ ${MACHINE_CPUARCH} == "riscv" _cgem.4= cgem.4 diff --git a/share/man/man4/gve.4 b/share/man/man4/gve.4 new file mode 100644 index 000000000000..9bb1be1b9a53 --- /dev/null +++ b/share/man/man4/gve.4 @@ -0,0 +1,215 @@ +.\" SPDX-License-Identifier: BSD-3-Clause +.\" +.\" Copyright (c) 2023 Google LLC +.\" +.\" Redistribution and use in source and binary forms, with or without modification, +.\" are permitted provided that the following conditions are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright notice, this +.\" list of conditions and the following disclaimer. +.\" +.\" 2. Redistributions in binary form must reproduce the above copyright notice, +.\" this list of conditions and the following disclaimer in the documentation +.\" and/or other materials provided with the distribution. +.\" +.\" 3. Neither the name of the copyright holder nor the names of its contributors +.\" may be used to endorse or promote products derived from this software without +.\" specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +.\" DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +.\" ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +.\" SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.Dd April 26, 2023 +.Dt GVE 4 +.Os +.Sh NAME +.Nm gve +.Nd "Ethernet driver for Google Virtual NIC (gVNIC)" +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device gve" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +if_gve_load="YES" +.Ed +.Sh DESCRIPTION +gVNIC is a virtual network interface designed specifically for Google Compute Engine (GCE). +It is required to support per-VM Tier-1 networking performance, and for using certain VM shapes on GCE. +.Pp +.Nm +is the driver for gVNIC. +It supports the following features: +.Pp +.Bl -bullet -compact +.It +RX checksum offload +.It +TX chesksum offload +.It +TCP Segmentation Offload (TSO) +.It +Large Receive Offload (LRO) in software +.It +Jumbo frames +.It +Receive Side Scaling (RSS) +.El +.Pp +For more information on configuring this device, see +.Xr ifconfig 8 . +.Sh HARDWARE +.Nm +binds to a single PCI device ID presented by gVNIC: +.Pp +.Bl -bullet -compact +.It +0x1AE0:0x0042 +.El +.Sh DIAGNOSTICS +The following messages are recorded during driver initialization: +.Bl -diag +.It "Enabled MSIX with %d vectors" +.It "Configured device resources" +.It "Successfully attached %s" +.It "Deconfigured device resources" +.El +.Pp +These messages are seen if driver initialization fails. +Global (across-queues) allocation failures: +.Bl -diag +.It "Failed to configure device resources: err=%d" +.It "No compatible queue formats" +.It "Failed to allocate ifnet struct" +.It "Failed to allocate admin queue mem" +.It "Failed to alloc DMA mem for DescribeDevice" +.It "Failed to allocate QPL page" +.El +.Pp +irq and BAR allocation failures: +.Bl -diag +.It "Failed to acquire any msix vectors" +.It "Tried to acquire %d msix vectors, got only %d" +.It "Failed to setup irq %d for Tx queue %d " +.It "Failed to setup irq %d for Rx queue %d " +.It "Failed to allocate irq %d for mgmnt queue" +.It "Failed to setup irq %d for mgmnt queue, err: %d" +.It "Failed to allocate BAR0" +.It "Failed to allocate BAR2" +.It "Failed to allocate msix table" +.El +.Pp +Rx queue-specific allocation failures: +.Bl -diag +.It "No QPL left for rx ring %d" +.It "Failed to alloc queue resources for rx ring %d" +.It "Failed to alloc desc ring for rx ring %d" +.It "Failed to alloc data ring for rx ring %d" +.El +.Pp +Tx queue-specific allocation failures: +.Bl -diag +.It "No QPL left for tx ring %d" +.It "Failed to alloc queue resources for tx ring %d" +.It "Failed to alloc desc ring for tx ring %d" +.It "Failed to vmap fifo, qpl_id = %d" +.El +.El +.Pp +The following messages are recorded when the interface detach fails: +.Bl -diag +.It "Failed to deconfigure device resources: err=%d" +.El +.Pp +If bootverbose is on, the following messages are recorded when the interface is being brought up: +.Bl -diag +.It "Created %d rx queues" +.It "Created %d tx queues" +.It "MTU set to %d" +.El +.Pp +The following messages are recorded when the interface is being brought down: +.Bl -diag +.It "Destroyed %d rx queues" +.It "Destroyed %d tx queues" +.El +.Pp +These messages are seen if errors are encountered when bringing the interface up or down: +.Bl -diag +.It "Failed to destroy rxq %d, err: %d" +.It "Failed to destroy txq %d, err: %d" +.It "Failed to create rxq %d, err: %d" +.It "Failed to create txq %d, err: %d" +.It "Failed to set MTU to %d" +.It "Invalid new MTU setting. new mtu: %d max mtu: %d min mtu: %d" +.It "Cannot bring the iface up when detached" +.It "Reached max number of registered pages %lu > %lu" +.It "Failed to init lro for rx ring %d" +.El +.Pp +These messages are seen if any admin queue command fails: +.Bl -diag +.It "AQ command(%u): failed with status %d" +.It "AQ command(%u): unknown status code %d" +.It "AQ commands timed out, need to reset AQ" +.It "Unknown AQ command opcode %d" +.El +.Pp +These messages are recorded when the device is being reset due to an error: +.Bl -diag +.It "Scheduling reset task!" +.It "Waiting until admin queue is released." +.It "Admin queue released" +.El +.Pp +If it was the NIC that requested the reset, this message is recorded: +.Bl -diag +.It "Device requested reset" +.El +.Pp +If the reset fails during the reinitialization phase, this message is recorded: +.Bl -diag +.It "Restore failed!" +.El +.Pp +These two messages correspoond to the NIC alerting the driver to link state changes: +.Bl -diag +.It "Device link is up." +.It "Device link is down." +.El +.Pp +Apart from these messages, the driver exposes per-queue packet and error counters as sysctl nodes. +Global (across queues) counters can be read using +.Xr netstat 8 . +.Sh LIMITATIONS +.Nm +does not support the transmission of VLAN-tagged packets. +All VLAN-tagged traffic is dropped. +.Sh SUPPORT +Please email gvnic-drivers@google.com with the specifics of the issue encountered. +.El +.Sh SEE ALSO +.Xr ifconfig 8 , +.Xr netstat 8 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 14.0 . +.Sh AUTHORS +The +.Nm +driver was written by Google. diff --git a/sys/conf/files b/sys/conf/files index b6b99253805e..2c0cbe38082d 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -1809,6 +1809,13 @@ dev/fxp/if_fxp.c optional fxp dev/fxp/inphy.c optional fxp dev/gem/if_gem.c optional gem dev/gem/if_gem_pci.c optional gem pci +dev/gve/gve_adminq.c optional gve +dev/gve/gve_main.c optional gve +dev/gve/gve_qpl.c optional gve +dev/gve/gve_rx.c optional gve +dev/gve/gve_sysctl.c optional gve +dev/gve/gve_tx.c optional gve +dev/gve/gve_utils.c optional gve dev/goldfish/goldfish_rtc.c optional goldfish_rtc fdt dev/gpio/dwgpio/dwgpio.c optional gpio dwgpio fdt dev/gpio/dwgpio/dwgpio_bus.c optional gpio dwgpio fdt diff --git a/sys/dev/gve/gve.h b/sys/dev/gve/gve.h new file mode 100644 index 000000000000..61781cddee94 --- /dev/null +++ b/sys/dev/gve/gve.h @@ -0,0 +1,459 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 2023 Google LLC + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors + * may be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef _GVE_FBSD_H +#define _GVE_FBSD_H + +#include "gve_desc.h" +#include "gve_plat.h" +#include "gve_register.h" + +#ifndef PCI_VENDOR_ID_GOOGLE +#define PCI_VENDOR_ID_GOOGLE 0x1ae0 +#endif + +#define PCI_DEV_ID_GVNIC 0x0042 +#define GVE_REGISTER_BAR 0 +#define GVE_DOORBELL_BAR 2 + +/* Driver can alloc up to 2 segments for the header and 2 for the payload. */ +#define GVE_TX_MAX_DESCS 4 +#define GVE_TX_BUFRING_ENTRIES 4096 + +#define ADMINQ_SIZE PAGE_SIZE + +#define GVE_DEFAULT_RX_BUFFER_SIZE 2048 +/* Each RX bounce buffer page can fit two packet buffers. */ +#define GVE_DEFAULT_RX_BUFFER_OFFSET (PAGE_SIZE / 2) + +/* + * Number of descriptors per queue page list. + * Page count AKA QPL size can be derived by dividing the number of elements in + * a page by the number of descriptors available. + */ +#define GVE_QPL_DIVISOR 16 + +static MALLOC_DEFINE(M_GVE, "gve", "gve allocations"); + +struct gve_dma_handle { + bus_addr_t bus_addr; + void *cpu_addr; + bus_dma_tag_t tag; + bus_dmamap_t map; +}; + +union gve_tx_desc { + struct gve_tx_pkt_desc pkt; /* first desc for a packet */ + struct gve_tx_mtd_desc mtd; /* optional metadata descriptor */ + struct gve_tx_seg_desc seg; /* subsequent descs for a packet */ +}; + +/* Tracks the memory in the fifo occupied by a segment of a packet */ +struct gve_tx_iovec { + uint32_t iov_offset; /* offset into this segment */ + uint32_t iov_len; /* length */ + uint32_t iov_padding; /* padding associated with this segment */ +}; + +/* Tracks allowed and current queue settings */ +struct gve_queue_config { + uint16_t max_queues; + uint16_t num_queues; /* current */ +}; + +struct gve_irq_db { + __be32 index; +} __aligned(CACHE_LINE_SIZE); + +/* + * GVE_QUEUE_FORMAT_UNSPECIFIED must be zero since 0 is the default value + * when the entire configure_device_resources command is zeroed out and the + * queue_format is not specified. + */ +enum gve_queue_format { + GVE_QUEUE_FORMAT_UNSPECIFIED = 0x0, + GVE_GQI_RDA_FORMAT = 0x1, + GVE_GQI_QPL_FORMAT = 0x2, + GVE_DQO_RDA_FORMAT = 0x3, +}; + +enum gve_state_flags_bit { + GVE_STATE_FLAG_ADMINQ_OK, + GVE_STATE_FLAG_RESOURCES_OK, + GVE_STATE_FLAG_QPLREG_OK, + GVE_STATE_FLAG_RX_RINGS_OK, + GVE_STATE_FLAG_TX_RINGS_OK, + GVE_STATE_FLAG_QUEUES_UP, + GVE_STATE_FLAG_LINK_UP, + GVE_STATE_FLAG_DO_RESET, + GVE_STATE_FLAG_IN_RESET, + GVE_NUM_STATE_FLAGS /* Not part of the enum space */ +}; + +BITSET_DEFINE(gve_state_flags, GVE_NUM_STATE_FLAGS); + +#define GVE_DEVICE_STATUS_RESET (0x1 << 1) +#define GVE_DEVICE_STATUS_LINK_STATUS (0x1 << 2) + +#define GVE_RING_LOCK(ring) mtx_lock(&(ring)->ring_mtx) +#define GVE_RING_TRYLOCK(ring) mtx_trylock(&(ring)->ring_mtx) +#define GVE_RING_UNLOCK(ring) mtx_unlock(&(ring)->ring_mtx) +#define GVE_RING_ASSERT(ring) mtx_assert(&(ring)->ring_mtx, MA_OWNED) + +#define GVE_IFACE_LOCK_INIT(lock) sx_init(&lock, "gve interface lock") +#define GVE_IFACE_LOCK_DESTROY(lock) sx_destroy(&lock) +#define GVE_IFACE_LOCK_LOCK(lock) sx_xlock(&lock) +#define GVE_IFACE_LOCK_UNLOCK(lock) sx_unlock(&lock) +#define GVE_IFACE_LOCK_ASSERT(lock) sx_assert(&lock, SA_XLOCKED) + +struct gve_queue_page_list { + uint32_t id; + uint32_t num_dmas; + uint32_t num_pages; + vm_offset_t kva; + vm_page_t *pages; + struct gve_dma_handle *dmas; +}; + +struct gve_irq { + struct resource *res; + void *cookie; +}; + +struct gve_rx_slot_page_info { + void *page_address; + vm_page_t page; + uint32_t page_offset; + uint16_t pad; +}; + +/* + * A single received packet split across multiple buffers may be + * reconstructed using the information in this structure. + */ +struct gve_rx_ctx { + /* head and tail of mbuf chain for the current packet */ + struct mbuf *mbuf_head; + struct mbuf *mbuf_tail; + uint32_t total_size; + uint8_t frag_cnt; + bool drop_pkt; +}; + +struct gve_ring_com { + struct gve_priv *priv; + uint32_t id; + + /* + * BAR2 offset for this ring's doorbell and the + * counter-array offset for this ring's counter. + * Acquired from the device individually for each + * queue in the queue_create adminq command. + */ + struct gve_queue_resources *q_resources; + struct gve_dma_handle q_resources_mem; + + /* Byte offset into BAR2 where this ring's 4-byte irq doorbell lies. */ + uint32_t irq_db_offset; + /* Byte offset into BAR2 where this ring's 4-byte doorbell lies. */ + uint32_t db_offset; + /* + * Index, not byte-offset, into the counter array where this ring's + * 4-byte counter lies. + */ + uint32_t counter_idx; + + /* + * The index of the MSIX vector that was assigned to + * this ring in `gve_alloc_irqs`. + * + * It is passed to the device in the queue_create adminq + * command. + * + * Additionally, this also serves as the index into + * `priv->irq_db_indices` where this ring's irq doorbell's + * BAR2 offset, `irq_db_idx`, can be found. + */ + int ntfy_id; + + /* + * The fixed bounce buffer for this ring. + * Once allocated, has to be offered to the device + * over the register-page-list adminq command. + */ + struct gve_queue_page_list *qpl; + + struct task cleanup_task; + struct taskqueue *cleanup_tq; +} __aligned(CACHE_LINE_SIZE); + +struct gve_rxq_stats { + counter_u64_t rbytes; + counter_u64_t rpackets; + counter_u64_t rx_dropped_pkt; + counter_u64_t rx_copybreak_cnt; + counter_u64_t rx_frag_flip_cnt; + counter_u64_t rx_frag_copy_cnt; + counter_u64_t rx_dropped_pkt_desc_err; + counter_u64_t rx_dropped_pkt_mbuf_alloc_fail; +}; + +#define NUM_RX_STATS (sizeof(struct gve_rxq_stats) / sizeof(counter_u64_t)) + +/* power-of-2 sized receive ring */ +struct gve_rx_ring { + struct gve_ring_com com; + struct gve_dma_handle desc_ring_mem; + struct gve_dma_handle data_ring_mem; + + /* accessed in the receive hot path */ + struct { + struct gve_rx_desc *desc_ring; + union gve_rx_data_slot *data_ring; + struct gve_rx_slot_page_info *page_info; + + struct gve_rx_ctx ctx; + struct lro_ctrl lro; + uint8_t seq_no; /* helps traverse the descriptor ring */ + uint32_t cnt; /* free-running total number of completed packets */ + uint32_t fill_cnt; /* free-running total number of descs and buffs posted */ + uint32_t mask; /* masks the cnt and fill_cnt to the size of the ring */ + struct gve_rxq_stats stats; + } __aligned(CACHE_LINE_SIZE); + +} __aligned(CACHE_LINE_SIZE); + +/* + * A contiguous representation of the pages composing the Tx bounce buffer. + * The xmit taskqueue and the completion taskqueue both simultaneously use it. + * Both operate on `available`: the xmit tq lowers it and the completion tq + * raises it. `head` is the last location written at and so only the xmit tq + * uses it. + */ +struct gve_tx_fifo { + vm_offset_t base; /* address of base of FIFO */ + uint32_t size; /* total size */ + volatile int available; /* how much space is still available */ + uint32_t head; /* offset to write at */ +}; + +struct gve_tx_buffer_state { + struct mbuf *mbuf; + struct gve_tx_iovec iov[GVE_TX_MAX_DESCS]; +}; + +struct gve_txq_stats { + counter_u64_t tbytes; + counter_u64_t tpackets; + counter_u64_t tso_packet_cnt; + counter_u64_t tx_dropped_pkt; + counter_u64_t tx_dropped_pkt_nospace_device; + counter_u64_t tx_dropped_pkt_nospace_bufring; + counter_u64_t tx_dropped_pkt_vlan; +}; + +#define NUM_TX_STATS (sizeof(struct gve_txq_stats) / sizeof(counter_u64_t)) + +/* power-of-2 sized transmit ring */ +struct gve_tx_ring { + struct gve_ring_com com; + struct gve_dma_handle desc_ring_mem; + + struct task xmit_task; + struct taskqueue *xmit_tq; + + /* accessed in the transmit hot path */ + struct { + union gve_tx_desc *desc_ring; + struct gve_tx_buffer_state *info; + struct buf_ring *br; + + struct gve_tx_fifo fifo; + struct mtx ring_mtx; + + uint32_t req; /* free-running total number of packets written to the nic */ + uint32_t done; /* free-running total number of completed packets */ + uint32_t mask; /* masks the req and done to the size of the ring */ + struct gve_txq_stats stats; + } __aligned(CACHE_LINE_SIZE); + +} __aligned(CACHE_LINE_SIZE); + +struct gve_priv { + if_t ifp; + device_t dev; + struct ifmedia media; + + uint8_t mac[ETHER_ADDR_LEN]; + + struct gve_dma_handle aq_mem; + + struct resource *reg_bar; /* BAR0 */ + struct resource *db_bar; /* BAR2 */ + struct resource *msix_table; + + uint32_t mgmt_msix_idx; + uint32_t rx_copybreak; + + uint16_t num_event_counters; + uint16_t default_num_queues; + uint16_t tx_desc_cnt; + uint16_t rx_desc_cnt; + uint16_t rx_pages_per_qpl; + uint64_t max_registered_pages; + uint64_t num_registered_pages; + uint32_t supported_features; + uint16_t max_mtu; + + struct gve_dma_handle counter_array_mem; + __be32 *counters; + struct gve_dma_handle irqs_db_mem; + struct gve_irq_db *irq_db_indices; + + enum gve_queue_format queue_format; + struct gve_queue_page_list *qpls; + struct gve_queue_config tx_cfg; + struct gve_queue_config rx_cfg; + uint32_t num_queues; + + struct gve_irq *irq_tbl; + struct gve_tx_ring *tx; + struct gve_rx_ring *rx; + + /* + * Admin queue - see gve_adminq.h + * Since AQ cmds do not run in steady state, 32 bit counters suffice + */ + struct gve_adminq_command *adminq; + vm_paddr_t adminq_bus_addr; + uint32_t adminq_mask; /* masks prod_cnt to adminq size */ + uint32_t adminq_prod_cnt; /* free-running count of AQ cmds executed */ + uint32_t adminq_cmd_fail; /* free-running count of AQ cmds failed */ + uint32_t adminq_timeouts; /* free-running count of AQ cmds timeouts */ + /* free-running count of each distinct AQ cmd executed */ + uint32_t adminq_describe_device_cnt; + uint32_t adminq_cfg_device_resources_cnt; + uint32_t adminq_register_page_list_cnt; + uint32_t adminq_unregister_page_list_cnt; + uint32_t adminq_create_tx_queue_cnt; + uint32_t adminq_create_rx_queue_cnt; + uint32_t adminq_destroy_tx_queue_cnt; + uint32_t adminq_destroy_rx_queue_cnt; + uint32_t adminq_dcfg_device_resources_cnt; + uint32_t adminq_set_driver_parameter_cnt; + uint32_t adminq_verify_driver_compatibility_cnt; + + uint32_t interface_up_cnt; + uint32_t interface_down_cnt; + uint32_t reset_cnt; + + struct task service_task; + struct taskqueue *service_tq; + + struct gve_state_flags state_flags; + struct sx gve_iface_lock; +}; + +static inline bool +gve_get_state_flag(struct gve_priv *priv, int pos) +{ + return (BIT_ISSET(GVE_NUM_STATE_FLAGS, pos, &priv->state_flags)); +} + +static inline void +gve_set_state_flag(struct gve_priv *priv, int pos) +{ + BIT_SET_ATOMIC(GVE_NUM_STATE_FLAGS, pos, &priv->state_flags); +} + +static inline void +gve_clear_state_flag(struct gve_priv *priv, int pos) +{ + BIT_CLR_ATOMIC(GVE_NUM_STATE_FLAGS, pos, &priv->state_flags); +} + +/* Defined in gve_main.c */ +void gve_schedule_reset(struct gve_priv *priv); + +/* Register access functions defined in gve_utils.c */ +uint32_t gve_reg_bar_read_4(struct gve_priv *priv, bus_size_t offset); +void gve_reg_bar_write_4(struct gve_priv *priv, bus_size_t offset, uint32_t val); +void gve_db_bar_write_4(struct gve_priv *priv, bus_size_t offset, uint32_t val); + +/* QPL (Queue Page List) functions defined in gve_qpl.c */ +int gve_alloc_qpls(struct gve_priv *priv); +void gve_free_qpls(struct gve_priv *priv); +int gve_register_qpls(struct gve_priv *priv); +int gve_unregister_qpls(struct gve_priv *priv); + +/* TX functions defined in gve_tx.c */ +int gve_alloc_tx_rings(struct gve_priv *priv); +void gve_free_tx_rings(struct gve_priv *priv); +int gve_create_tx_rings(struct gve_priv *priv); +int gve_destroy_tx_rings(struct gve_priv *priv); +int gve_tx_intr(void *arg); +int gve_xmit_ifp(if_t ifp, struct mbuf *mbuf); +void gve_qflush(if_t ifp); +void gve_xmit_tq(void *arg, int pending); +void gve_tx_cleanup_tq(void *arg, int pending); + +/* RX functions defined in gve_rx.c */ +int gve_alloc_rx_rings(struct gve_priv *priv); +void gve_free_rx_rings(struct gve_priv *priv); +int gve_create_rx_rings(struct gve_priv *priv); +int gve_destroy_rx_rings(struct gve_priv *priv); +int gve_rx_intr(void *arg); +void gve_rx_cleanup_tq(void *arg, int pending); + +/* DMA functions defined in gve_utils.c */ +int gve_dma_alloc_coherent(struct gve_priv *priv, int size, int align, + struct gve_dma_handle *dma); +void gve_dma_free_coherent(struct gve_dma_handle *dma); +int gve_dmamap_create(struct gve_priv *priv, int size, int align, + struct gve_dma_handle *dma); +void gve_dmamap_destroy(struct gve_dma_handle *dma); + +/* IRQ functions defined in gve_utils.c */ +void gve_free_irqs(struct gve_priv *priv); +int gve_alloc_irqs(struct gve_priv *priv); +void gve_unmask_all_queue_irqs(struct gve_priv *priv); +void gve_mask_all_queue_irqs(struct gve_priv *priv); + +/* Systcl functions defined in gve_sysctl.c*/ +void gve_setup_sysctl(struct gve_priv *priv); +void gve_accum_stats(struct gve_priv *priv, uint64_t *rpackets, + uint64_t *rbytes, uint64_t *rx_dropped_pkt, uint64_t *tpackets, + uint64_t *tbytes, uint64_t *tx_dropped_pkt); + +/* Stats functions defined in gve_utils.c */ +void gve_alloc_counters(counter_u64_t *stat, int num_stats); +void gve_free_counters(counter_u64_t *stat, int num_stats); + +#endif /* _GVE_FBSD_H_ */ diff --git a/sys/dev/gve/gve_adminq.c b/sys/dev/gve/gve_adminq.c new file mode 100644 index 000000000000..3c332607ebd4 --- /dev/null +++ b/sys/dev/gve/gve_adminq.c @@ -0,0 +1,803 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 2023 Google LLC + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors + * may be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include <sys/endian.h> +#include <sys/socket.h> +#include <sys/time.h> + +#include <net/ethernet.h> +#include <net/if.h> +#include <net/if_var.h> + +#include "gve.h" +#include "gve_adminq.h" + +#define GVE_ADMINQ_SLEEP_LEN_MS 20 +#define GVE_MAX_ADMINQ_EVENT_COUNTER_CHECK 10 +#define GVE_ADMINQ_DEVICE_DESCRIPTOR_VERSION 1 +#define GVE_REG_ADMINQ_ADDR 16 +#define ADMINQ_SLOTS (ADMINQ_SIZE / sizeof(struct gve_adminq_command)) + +#define GVE_DEVICE_OPTION_ERROR_FMT "%s option error:\n" \ + "Expected: length=%d, feature_mask=%x.\n" \ + "Actual: length=%d, feature_mask=%x.\n" + +#define GVE_DEVICE_OPTION_TOO_BIG_FMT "Length of %s option larger than expected." \ + " Possible older version of guest driver.\n" + +static +void gve_parse_device_option(struct gve_priv *priv, + struct gve_device_descriptor *device_descriptor, + struct gve_device_option *option, + struct gve_device_option_gqi_qpl **dev_op_gqi_qpl, + struct gve_device_option_jumbo_frames **dev_op_jumbo_frames) +{ + uint32_t req_feat_mask = be32toh(option->required_features_mask); + uint16_t option_length = be16toh(option->option_length); + uint16_t option_id = be16toh(option->option_id); + + /* + * If the length or feature mask doesn't match, continue without + * enabling the feature. + */ + switch (option_id) { + case GVE_DEV_OPT_ID_GQI_QPL: + if (option_length < sizeof(**dev_op_gqi_qpl) || + req_feat_mask != GVE_DEV_OPT_REQ_FEAT_MASK_GQI_QPL) { + device_printf(priv->dev, GVE_DEVICE_OPTION_ERROR_FMT, + "GQI QPL", (int)sizeof(**dev_op_gqi_qpl), + GVE_DEV_OPT_REQ_FEAT_MASK_GQI_QPL, + option_length, req_feat_mask); + break; + } + + if (option_length > sizeof(**dev_op_gqi_qpl)) { + device_printf(priv->dev, GVE_DEVICE_OPTION_TOO_BIG_FMT, + "GQI QPL"); + } + *dev_op_gqi_qpl = (void *)(option + 1); + break; + + case GVE_DEV_OPT_ID_JUMBO_FRAMES: + if (option_length < sizeof(**dev_op_jumbo_frames) || + req_feat_mask != GVE_DEV_OPT_REQ_FEAT_MASK_JUMBO_FRAMES) { + device_printf(priv->dev, GVE_DEVICE_OPTION_ERROR_FMT, + "Jumbo Frames", (int)sizeof(**dev_op_jumbo_frames), + GVE_DEV_OPT_REQ_FEAT_MASK_JUMBO_FRAMES, + option_length, req_feat_mask); + break; + } + + if (option_length > sizeof(**dev_op_jumbo_frames)) { + device_printf(priv->dev, + GVE_DEVICE_OPTION_TOO_BIG_FMT, "Jumbo Frames"); + } + *dev_op_jumbo_frames = (void *)(option + 1); + break; + + default: + /* + * If we don't recognize the option just continue + * without doing anything. + */ + device_printf(priv->dev, "Unrecognized device option 0x%hx not enabled.\n", + option_id); + } +} + +/* Process all device options for a given describe device call. */ +static int +gve_process_device_options(struct gve_priv *priv, + struct gve_device_descriptor *descriptor, + struct gve_device_option_gqi_qpl **dev_op_gqi_qpl, + struct gve_device_option_jumbo_frames **dev_op_jumbo_frames) +{ + char *desc_end = (char *)descriptor + be16toh(descriptor->total_length); + const int num_options = be16toh(descriptor->num_device_options); + struct gve_device_option *dev_opt; + int i; + + /* The options struct directly follows the device descriptor. */ + dev_opt = (void *)(descriptor + 1); + for (i = 0; i < num_options; i++) { + if ((char *)(dev_opt + 1) > desc_end || + (char *)(dev_opt + 1) + be16toh(dev_opt->option_length) > desc_end) { + device_printf(priv->dev, + "options exceed device_descriptor's total length.\n"); + return (EINVAL); + } + + gve_parse_device_option(priv, descriptor, dev_opt, + dev_op_gqi_qpl, dev_op_jumbo_frames); + dev_opt = (void *)((char *)(dev_opt + 1) + be16toh(dev_opt->option_length)); + } + + return (0); +} + +static int gve_adminq_execute_cmd(struct gve_priv *priv, + struct gve_adminq_command *cmd); + +static int +gve_adminq_destroy_tx_queue(struct gve_priv *priv, uint32_t id) +{ + struct gve_adminq_command cmd = (struct gve_adminq_command){}; + + cmd.opcode = htobe32(GVE_ADMINQ_DESTROY_TX_QUEUE); + cmd.destroy_tx_queue.queue_id = htobe32(id); + + return (gve_adminq_execute_cmd(priv, &cmd)); +} + +static int +gve_adminq_destroy_rx_queue(struct gve_priv *priv, uint32_t id) +{ + struct gve_adminq_command cmd = (struct gve_adminq_command){}; + + cmd.opcode = htobe32(GVE_ADMINQ_DESTROY_RX_QUEUE); + cmd.destroy_rx_queue.queue_id = htobe32(id); + + return (gve_adminq_execute_cmd(priv, &cmd)); +} + +int +gve_adminq_destroy_rx_queues(struct gve_priv *priv, uint32_t num_queues) +{ + int err; + int i; + + for (i = 0; i < num_queues; i++) { + err = gve_adminq_destroy_rx_queue(priv, i); + if (err != 0) { + device_printf(priv->dev, "Failed to destroy rxq %d, err: %d\n", + i, err); + } + } + + if (err != 0) + return (err); + + device_printf(priv->dev, "Destroyed %d rx queues\n", num_queues); + return (0); +} + +int +gve_adminq_destroy_tx_queues(struct gve_priv *priv, uint32_t num_queues) +{ + int err; + int i; + + for (i = 0; i < num_queues; i++) { + err = gve_adminq_destroy_tx_queue(priv, i); + if (err != 0) { + device_printf(priv->dev, "Failed to destroy txq %d, err: %d\n", + i, err); + } + } + + if (err != 0) + return (err); *** 4709 LINES SKIPPED *** From nobody Fri Aug 18 23:18:44 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqn19rkz4fs0W; Fri, 18 Aug 2023 23:18: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 4RSHqn0ZBmz4nGt; Fri, 18 Aug 2023 23:18:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400725; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=orVgJWChtTOcFozdwFyzQPQb4fXMPE6+W6yCWY5Wenw=; b=ZxYjP2lmjYseYjPiEeL5tlLwPbUvLNS725EReJdVaUDIewrd4z9cPX6l09Ea0zFZDQC698 rTtIjxXNK7VoIjjIoNQsgWK919br3n/IlADZfECWLYVkFE7YS4uKD3hsyjYpxX3xp+n2ek b3WR8bjI0QZQ7v2Cxx7M1znxlpKuTiLBZnayScikfXGCIEjvgP/6o3QEi8keGxfvqVOlbg hErsvaO4ms7lb9B/oWbACJwJH81Bp+JTJMi2OFBKP3Fo4YLHSTWwhl1/Y/29hDeQ6pikHa oZuzrdknDD93zTB/Zi1J+cBvWdZ9nymjwEPUUJ38WuoiURB8Rih0Ko3+vGFNmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400725; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=orVgJWChtTOcFozdwFyzQPQb4fXMPE6+W6yCWY5Wenw=; b=AYtJTgxw+09zVKixk3FJN3eeQkDzFFfko6+QiCcV1TMBwtPkquiNuBR0CX08Sknx398ppo JH4eOSa/7o1ruQ6eaPda6QmhwklPowW8nfSmJ1NdsttCFhRUpBisFyKgm8r9+63Ppm9yWf kxypVfxkReX3I8KcYgTfaIhj8irlhtglWz3rcp/SJzR+YmGCQVvKDUMdbOYBWpDC6TwpiW bQQmLmi1XUjpVwu1V3mE0hzvDrtQbANCIf9CdRFhODM3WzOoM9DDGWoV0+AwFWEXZFpQUw Nv5TQuj2A8PgP2lkSGTUzPHCR3WkKhmiLbi5hAN3g8oPsO2Xm+BHHDeM2seqPQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400725; a=rsa-sha256; cv=none; b=I5z5Que3tkAYAmS5PKOxEM0k6DBOI5jrG3bRN/giL73XXqTFj4pDACA472JhvpwEXiuI6s /rf4f7mxNBn6Mb6pP8fz0rdysWAGdnEffSTtHYoGfTe+mhvYUPoFLFYd7phEL10eipMC4T h8NGCMyDaZU7nHS3wkt24wmjkNJi1LQ0fVlIjEhIYNQxxnNC+SyekOHIh4zJyMC/HfHyqq 537O+hBe1OZ7JykRdfRyFnLxh/Vi16gpq+pq4L4f/BCSBxAgB4gygeeqJrhxuhfksGPDbo BvjQKUxQunEd6MSzPtBW0ks4fGcT5vB4h5Pg1HvJHsLlBz1ddXNU5gncDsiBjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSHqm64FKzb40; Fri, 18 Aug 2023 23:18: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 37INIixP018560; Fri, 18 Aug 2023 23:18:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIipR018557; Fri, 18 Aug 2023 23:18:44 GMT (envelope-from git) Date: Fri, 18 Aug 2023 23:18:44 GMT Message-Id: <202308182318.37INIipR018557@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI <delphij@FreeBSD.org> Subject: git: 78f491c86d04 - stable/13 - gve: Fix build on i386 and enable LINT builds. List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 78f491c86d04b8938ff7b26481268b8f223d86e0 Auto-Submitted: auto-generated The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=78f491c86d04b8938ff7b26481268b8f223d86e0 commit 78f491c86d04b8938ff7b26481268b8f223d86e0 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2023-06-04 23:35:00 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2023-08-18 23:18:15 +0000 gve: Fix build on i386 and enable LINT builds. Reviewed-by: imp Differential Revision: https://reviews.freebsd.org/D40419 (cherry picked from commit 4d779448adb32ef6424abb781dab87065964d42f) --- share/man/man4/Makefile | 5 +---- sys/amd64/conf/LINT-NOIP | 1 + sys/amd64/conf/NOTES | 3 +++ sys/arm64/conf/NOTES | 3 +++ sys/dev/gve/gve_qpl.c | 6 +++--- sys/i386/conf/LINT-NOIP | 1 + sys/i386/conf/NOTES | 3 +++ sys/modules/Makefile | 5 +---- 8 files changed, 16 insertions(+), 11 deletions(-) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index b7372ac63c2e..46437362dd90 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -918,15 +918,12 @@ _nvme.4= nvme.4 .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \ ${MACHINE_CPUARCH} == "aarch64" +_gve.4= gve.4 _ipmi.4= ipmi.4 _linux.4= linux.4 _ossl.4= ossl.4 .endif -.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64" -_gve.4= gve.4 -.endif - .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64" || \ ${MACHINE_CPUARCH} == "riscv" _cgem.4= cgem.4 diff --git a/sys/amd64/conf/LINT-NOIP b/sys/amd64/conf/LINT-NOIP index 544893cf1332..c99462fce081 100644 --- a/sys/amd64/conf/LINT-NOIP +++ b/sys/amd64/conf/LINT-NOIP @@ -13,6 +13,7 @@ nodevice ale nodevice bxe nodevice em nodevice fxp +nodevice gve nodevice jme nodevice msk nodevice mxge diff --git a/sys/amd64/conf/NOTES b/sys/amd64/conf/NOTES index a72e9f2623bb..eacfd77fd7e1 100644 --- a/sys/amd64/conf/NOTES +++ b/sys/amd64/conf/NOTES @@ -506,6 +506,9 @@ device virtio_console # VirtIO Console device # Linux KVM paravirtualization support device kvm_clock # KVM paravirtual clock driver +# Google Virtual NIC +device gve # Google Virtual NIC (gVNIC) driver + # Microsoft Hyper-V enhancement support device hyperv # HyperV drivers device hvhid # HyperV HID device diff --git a/sys/arm64/conf/NOTES b/sys/arm64/conf/NOTES index 0d275c0fdd2c..aa69035f291f 100644 --- a/sys/arm64/conf/NOTES +++ b/sys/arm64/conf/NOTES @@ -63,6 +63,9 @@ device virtio_mmio device virtio_blk device vtnet +# Google Virtual NIC +device gve # Google Virtual NIC (gVNIC) driver + # CPU frequency control device cpufreq diff --git a/sys/dev/gve/gve_qpl.c b/sys/dev/gve/gve_qpl.c index 891d132d2f10..3c6d9af6feee 100644 --- a/sys/dev/gve/gve_qpl.c +++ b/sys/dev/gve/gve_qpl.c @@ -101,9 +101,9 @@ gve_alloc_qpl(struct gve_priv *priv, uint32_t id, int npages, bool single_kva) int i; if (npages + priv->num_registered_pages > priv->max_registered_pages) { - device_printf(priv->dev, "Reached max number of registered pages %lu > %lu\n", - npages + priv->num_registered_pages, - priv->max_registered_pages); + device_printf(priv->dev, "Reached max number of registered pages %ju > %ju\n", + (uintmax_t)npages + priv->num_registered_pages, + (uintmax_t)priv->max_registered_pages); return (EINVAL); } diff --git a/sys/i386/conf/LINT-NOIP b/sys/i386/conf/LINT-NOIP index 1c91dae98baa..32c5af163381 100644 --- a/sys/i386/conf/LINT-NOIP +++ b/sys/i386/conf/LINT-NOIP @@ -12,6 +12,7 @@ nodevice ale nodevice bxe nodevice em nodevice fxp +nodevice gve nodevice jme nodevice lio nodevice msk diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES index 2c069e1c52b8..07255ff81165 100644 --- a/sys/i386/conf/NOTES +++ b/sys/i386/conf/NOTES @@ -723,6 +723,9 @@ device virtio_console # VirtIO Console device # Linux KVM paravirtualization support device kvm_clock # KVM paravirtual clock driver +# Google Virtual NIC +device gve # Google Virtual NIC (gVNIC) driver + options HYPERV device hyperv # HyperV drivers device hvhid # HyperV HID device diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 079638c2f6cd..48d6328835e0 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -534,6 +534,7 @@ SUBDIR+= linux_common .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \ ${MACHINE_CPUARCH} == "i386" _ena= ena +_gve= gve .if ${MK_OFED} != "no" || defined(ALL_MODULES) _ibcore= ibcore _ipoib= ipoib @@ -557,10 +558,6 @@ _mlx4ib= mlx4ib _mlx5ib= mlx5ib .endif -.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" -_gve= gve -.endif - _ossl= ossl _rtw88= rtw88 .if ${MK_SOURCELESS_UCODE} != "no" From nobody Fri Aug 18 23:18:45 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqp1Yrcz4frxM; Fri, 18 Aug 2023 23:18: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 4RSHqp0x7Tz4nYG; Fri, 18 Aug 2023 23:18:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400726; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VzCzvM0df/QNylriAJf8balj0vHywVKRCIDeUODjA+8=; b=TgtwFTKOThjA49wZTIX05YdkHsb3KokCLpJmkitJzAQWV9rH3zpKRm6mJduF7GsJJVqSJ6 0fwvBTmDNbHLSwxshX+3/w+7MUjGVvpjPdOwi2hgVNIc5nxfLSNAd1LU6wxClhe4rOnXOF 8ZFRbHupd38tt/kOBC5bSLI4AvYTJjwFXqZRuA8Capm6wb83KEGUQiFmhp+yAhd8CfyXld x9dIkGkMCM2z4sS1EVjD3vUnvy5CCMHt79hsKdg1yTgKTh7+OjpmScjhy2AoJrvsMwht8u M0mZ8/E4+t/zogvAJk4/iEXioIdMy73f0FzC7JYRZz5oScAOUmQen7N5mb66rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400726; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VzCzvM0df/QNylriAJf8balj0vHywVKRCIDeUODjA+8=; b=Sa4grg/ltkDYkZyZ6YMmqYCIav7bYBnSgbcU/kNnTXF7/psliGlfQM4HtCkS+zdjF0aAI+ JGXOe2BuRXgsFsMgUMbi2WUEStfoAUYJB8kLMp9TUW9VpbkYS+ppOIIj2GG7c0sUaEGlwf 1RU+L27l4WkipIpfuEBfWeEgTq8lRWNipA1qQfmLEfrytjhI/vhH8nhDdxrhRooW0AY4Ec 3Z1k6YlBOqeuSOvL4tw8bXZ5aYQKfO1MxB4CSWXyDGECgN5ltQ91CSaBzSW8L8q15NbUqy 3ZlLVWE8/++sRqID7HW/QUG3m9l2Ix6+V63sA1Stcgo0kSA+PbFlPfEoAb2K8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400726; a=rsa-sha256; cv=none; b=KjVMNFwQ13nB97xfsxH+9qW+NoJDUK9JcEWOOLKNCL1TJ2un7AYcd5T6b29fKI7kj6hIsr /GHGHabEKDcV43A5L0RgItaA6yOJNLZHwW9uSbL4tVb1Ev1wNnLaiC2MR8wL/ihBqUNgGP en7XltxTIsRQha4IvX3cAEwZDPUt37qX/LC4gQsZASJayAZ/lnDoVQ7mpos656vOIh1AHu vriZXScLgPl2zQlwFubyvRdw6G3mb4nJtkjMUBtg93TlBX3jW7vK72WiGb3RG9oZP/gDvY ORHawkV7ntzV2f4y6r+uROhmQtBNJnZ1HU9gw8Ws5LKyfhbkrV9+ctg+G7vZkw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSHqp02ZFzbQv; Fri, 18 Aug 2023 23:18: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 37INIjD2018617; Fri, 18 Aug 2023 23:18:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIjWu018614; Fri, 18 Aug 2023 23:18:45 GMT (envelope-from git) Date: Fri, 18 Aug 2023 23:18:45 GMT Message-Id: <202308182318.37INIjWu018614@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI <delphij@FreeBSD.org> Subject: git: 80a7ab5a4f79 - stable/13 - gve: Add PNP info to PCI attachment of gve(4) driver. List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 80a7ab5a4f7952c24f817ee8a21bc1d4a1fb2436 Auto-Submitted: auto-generated The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=80a7ab5a4f7952c24f817ee8a21bc1d4a1fb2436 commit 80a7ab5a4f7952c24f817ee8a21bc1d4a1fb2436 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2023-06-06 00:58:43 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2023-08-18 23:18:15 +0000 gve: Add PNP info to PCI attachment of gve(4) driver. Reviewed-by: imp Differential Revision: https://reviews.freebsd.org/D40429 (cherry picked from commit 1bbdfb0b438689a839e29094fcb582a104cbabd9) --- sys/dev/gve/gve_main.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c index ae45a0cfc24a..383fd326d33a 100644 --- a/sys/dev/gve/gve_main.c +++ b/sys/dev/gve/gve_main.c @@ -38,6 +38,16 @@ #define GVE_DEFAULT_RX_COPYBREAK 256 +/* Devices supported by this driver. */ +static struct gve_dev { + uint16_t vendor_id; + uint16_t device_id; + const char *name; +} gve_devs[] = { + { PCI_VENDOR_ID_GOOGLE, PCI_DEV_ID_GVNIC, "gVNIC" } +}; +#define GVE_DEVS_COUNT nitems(gve_devs) + struct sx gve_global_lock; static int @@ -701,10 +711,18 @@ gve_service_task(void *arg, int pending) static int gve_probe(device_t dev) { - if (pci_get_vendor(dev) == PCI_VENDOR_ID_GOOGLE && - pci_get_device(dev) == PCI_DEV_ID_GVNIC) { - device_set_desc(dev, "gVNIC"); - return (BUS_PROBE_DEFAULT); + uint16_t deviceid, vendorid; + int i; + + vendorid = pci_get_vendor(dev); + deviceid = pci_get_device(dev); + + for (i = 0; i < GVE_DEVS_COUNT; i++) { + if (vendorid == gve_devs[i].vendor_id && + deviceid == gve_devs[i].device_id) { + device_set_desc(dev, gve_devs[i].name); + return (BUS_PROBE_DEFAULT); + } } return (ENXIO); } @@ -851,3 +869,5 @@ DRIVER_MODULE(gve, pci, gve_driver, gve_devclass, 0, 0); #else DRIVER_MODULE(gve, pci, gve_driver, 0, 0); #endif +MODULE_PNP_INFO("U16:vendor;U16:device", pci, gve, gve_devs, + GVE_DEVS_COUNT); From nobody Fri Aug 18 23:18:47 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqq6jZNz4fs3B; Fri, 18 Aug 2023 23:18: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 4RSHqq23GLz4nNZ; Fri, 18 Aug 2023 23:18:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400727; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6UuCi8GqzM68uneb8rwSRdx4JXrz76Fodu+Ip2WwI8c=; b=IP9HLHT978tzQKbxQlE74ub60jxbCGpEzdyxkbIkuYAnj3lfSsjGxp98ACMon2iRz2IIRc 8PC4w/g5a7tMqruLfVFA8TcinCgDBLdtHBAFmphSKo9e2+l5zeGpYGEhoVwtI7Yj45xeZ9 6ZKydEI6qu0n6bmLpOC4AZwreLWrbNvr98jwoLB9CJ6tfjyLLJpQu9QXxFIA+XnG6jDHev Q4oCVTMW2o/fTW8LnG0LErysx3291Otd1Z7ByeCANArBamzA4hOlrIE+6SyvsP8N1B2aYQ FCNxSEujPOupRTR3s+Q9tz/Ok7/Gzpd+0sUgPaVlDY7j2Fk9pMKT8oyyQ6MFew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400727; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6UuCi8GqzM68uneb8rwSRdx4JXrz76Fodu+Ip2WwI8c=; b=IHKYZuhxn31BHeGEH3/iuARvXRbCAMz9/EX4cuoY6ZQrus7QMKE8RBCNqxqJMOsBT7Sdwx cbpQ6dNaRyeR78tU1Iygg6p/WQT05sIrUZmJgM0MdPeMEfBgWWXcw3Y+aNnC8St7tu/Su8 p2ql8608c7HkYoMwcdyqk8BPUUOpDkt2xaBabk6CxGDMEb8SQDQOMVQWzm0IgXjOr+i4vL bOYN4qUiYs7qikvBoyhOAAIBB+phm24TDLTL+7vQ6/94VtU+BTYL+DUVoH7E50RnnFY85y sucfU4MCIZ5PvZFx/usaJaYPpG3nUjDLN+X7u8AzPtjQB7KNa1JWRyF1Bfxrrw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400727; a=rsa-sha256; cv=none; b=pTrsuo8Te9QOoAp+ijixqmiev+tqFMX4zsWi+lHddhExdj7xz5C/LtycQc1yi96HGUmzhR EmJQwZ6duO8nKIY7e3zr9weK9Zll3jFJE3qzEewjbttue9IqboYTOJQSoeirSiOS2IJyDV xZeTAwZhyfVF9u0hTY2o54ksjJXkJ5r84id5cywN9gmT975+/sblz5WGYY1aSx/ZKVL2ZR Oc0ljfrbICok0jPEglZYV1G/6xsLya4fzaRUP0VIiOnNfdCngq0WnwHPRDCyIzpk3nKybD rJbDa3BjNaQXKblJpBXgyWUxKUMdOtOJEjEBhDy+DP//yE7IulZioE2cAotXsQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSHqq15zjzb41; Fri, 18 Aug 2023 23:18: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 37INIldN018671; Fri, 18 Aug 2023 23:18:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIlcJ018668; Fri, 18 Aug 2023 23:18:47 GMT (envelope-from git) Date: Fri, 18 Aug 2023 23:18:47 GMT Message-Id: <202308182318.37INIlcJ018668@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI <delphij@FreeBSD.org> Subject: git: 06d98c3bf47e - stable/13 - gve: Unobfuscate code by using nitems directly for loop. List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 06d98c3bf47ec79f2e0c2942088eade399ea78b5 Auto-Submitted: auto-generated The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=06d98c3bf47ec79f2e0c2942088eade399ea78b5 commit 06d98c3bf47ec79f2e0c2942088eade399ea78b5 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2023-06-07 04:14:30 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2023-08-18 23:18:15 +0000 gve: Unobfuscate code by using nitems directly for loop. While there, also make MODULE_PNP_INFO to reflect that the device description is provided. Reported-by: jrtc27 Reviewed-by: jrtc27, imp Differential Revision: https://reviews.freebsd.org/D40430 (cherry picked from commit 1177a6c8dcfd6625c541d6ffc3c6915b8b6354f7) --- sys/dev/gve/gve_main.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c index 383fd326d33a..c3ee6d5c3433 100644 --- a/sys/dev/gve/gve_main.c +++ b/sys/dev/gve/gve_main.c @@ -46,7 +46,6 @@ static struct gve_dev { } gve_devs[] = { { PCI_VENDOR_ID_GOOGLE, PCI_DEV_ID_GVNIC, "gVNIC" } }; -#define GVE_DEVS_COUNT nitems(gve_devs) struct sx gve_global_lock; @@ -717,7 +716,7 @@ gve_probe(device_t dev) vendorid = pci_get_vendor(dev); deviceid = pci_get_device(dev); - for (i = 0; i < GVE_DEVS_COUNT; i++) { + for (i = 0; i < nitems(gve_devs); i++) { if (vendorid == gve_devs[i].vendor_id && deviceid == gve_devs[i].device_id) { device_set_desc(dev, gve_devs[i].name); @@ -869,5 +868,5 @@ DRIVER_MODULE(gve, pci, gve_driver, gve_devclass, 0, 0); #else DRIVER_MODULE(gve, pci, gve_driver, 0, 0); #endif -MODULE_PNP_INFO("U16:vendor;U16:device", pci, gve, gve_devs, - GVE_DEVS_COUNT); +MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, gve, gve_devs, + nitems(gve_devs)); From nobody Fri Aug 18 23:18:48 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqt0Ynwz4fs5j; Fri, 18 Aug 2023 23:18: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 4RSHqr3KWBz4nbh; Fri, 18 Aug 2023 23:18:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wKy0vfVKahljse/DD19vrmlUWd15UJ/0OlC0WUBPjJc=; b=r60z0HgjePPMn4paBWYM5OOdhqFEye+98Eiif667V4asxs58NvhAGnvcYs2xfvquJibkON pZcGCL5B9JIzyyTMufg3/HgrtF/iJXGHnkdFLb2Blr0z1vhDKiUCLQknmsVQxW/qpLHoLl /czPNgOIY/IZDM+29jGwNqofHCGEZvTO/Fm1/trxKbEZevTSSBfTubHwobhaViMN13oLeY tVdv7ApUag0drv+1EZ3P/ncfwdxB6vnDjRZ5GMnEvUkxFHUuhhBhF9HCuxYDQ9aq4vcZLM zXZCXthMC2S8hRBNIIMNPxRsEC+pzKH1f/ttUhsuKP9mcXYVoouLGASNRG/t8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wKy0vfVKahljse/DD19vrmlUWd15UJ/0OlC0WUBPjJc=; b=Zp7lwxwf00ra6Mge5DnHVGrxQ3S3SGVtRloJB7Z5S1XBK9pycYRkg9CwFSpoELXfCCKk5V hDgiKqSpY69ZW3E99GhMM5GSZJsuh5xsC2se7aiI5TBZK5LlZhajq26QqJ0o8kdRb3J0rQ qpiIeXaarxwb0+kTs3eTRWKjfhw53rbfzJgaVsES3ITbympYKYFKAN9JFe1UjDe6y4YwHi YOaSkARsBSGKyX5nMbi2rHRQ8FpvxQdDO1a+5fTLdR1YMOC7Wl7Lcn0JX0ZVvp7ZPjSTGV 7UXmMUjb1fPda33tQAmIXXvTSl4R1PTzICIvoT4WHRa/fTs0OPMLsPIBpmwXcg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400728; a=rsa-sha256; cv=none; b=jHt/MJKtBOHy0L/9hjiZag0XhtH+U7Mg4S+oEDdU9PtHtB1DGLXVm8BdGoziNuFh1xCGmq s+q5XqIfo64rnMqKwtOuX0FPjpdOEG7sJ2RtZTwq81+nYZp76Rj3cwS/33pQE7kpNbwHQp qF40dl2gRI5CkcECilpEkqJ9F1r5m4O0AiMm2wcdr13ZLCehywgXGt5OYKY5Je2JtLGo3v hDWnEyHL2+HFKvFsEHXuR3Lcqk3uoLHIgaBmp8TcQpVjo+qqWrXieH6X7ylJYcb0q66SrE juEHNjd9K0fBRMLHoA1q1c1Q+4wT9kFq6mU/DlakJcLMRPEyOBdrZcCkrWQYYg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSHqr25xFzbQw; Fri, 18 Aug 2023 23:18:48 +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 37INImgl018718; Fri, 18 Aug 2023 23:18:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIm8C018715; Fri, 18 Aug 2023 23:18:48 GMT (envelope-from git) Date: Fri, 18 Aug 2023 23:18:48 GMT Message-Id: <202308182318.37INIm8C018715@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI <delphij@FreeBSD.org> Subject: git: 545ab0eb1993 - stable/13 - gve: Fix Tx tcpdump panic List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: 545ab0eb19931d8b2e978da18811f16b97b94c78 Auto-Submitted: auto-generated The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=545ab0eb19931d8b2e978da18811f16b97b94c78 commit 545ab0eb19931d8b2e978da18811f16b97b94c78 Author: Shailend Chand <shailend@google.com> AuthorDate: 2023-07-27 05:22:31 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2023-08-18 23:18:16 +0000 gve: Fix Tx tcpdump panic Ringing the doorbell before making the BPF call can result in the mbuf being freed before the BPF call. Reviewed-by: markj Differential Revision: https://reviews.freebsd.org/D41189 (cherry picked from commit 74861578d95573e13a2099143f9d4e7edbb82806) --- sys/dev/gve/gve_tx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/dev/gve/gve_tx.c b/sys/dev/gve/gve_tx.c index dd48bc35a258..db3f7415f412 100644 --- a/sys/dev/gve/gve_tx.c +++ b/sys/dev/gve/gve_tx.c @@ -706,12 +706,12 @@ gve_xmit_br(struct gve_tx_ring *tx) break; } + drbr_advance(ifp, tx->br); + BPF_MTAP(ifp, mbuf); + bus_dmamap_sync(tx->desc_ring_mem.tag, tx->desc_ring_mem.map, BUS_DMASYNC_PREWRITE); gve_db_bar_write_4(priv, tx->com.db_offset, tx->req); - - drbr_advance(ifp, tx->br); - BPF_MTAP(ifp, mbuf); } } From nobody Fri Aug 18 23:18:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqt1Hhyz4fs0b; Fri, 18 Aug 2023 23:18: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 4RSHqs3xbWz4nNr; Fri, 18 Aug 2023 23:18:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400729; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XuO75da1Yroy7TYuvmRHpe7XRJqVlIqW1PxJkKPfWFE=; b=Tg65g4ILqHJ/Mc/HgZEVEJdiylTXXH6mWfR6PsOxheFdXtY2B7RdyIexi7wVBOWOJ3YN/W TaNxScpiTn1MGaxK342EUyp03zL45l+cSha+TnCraON6sYjciBfuEjvCHDRdLRZeY8bhIC EO6TF5andVpNYGXodOzesxMAOkqgXX5ftsM5pnuNIzezIXFNDfJxUWYYRdRu6ScoflQ8Ul VFI44987nsHjaXWyENQ69qb3gRTAnkX8Yg+SWHceHkTj6kduubHn0pbqy6ERdIGaZ2I5gZ c6HMxeWloLxzMlMU7Qj5kHjNNsIHd3LvH2Wgfwg4B0ZT+eiRcwNwHMCG3WuvGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692400729; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XuO75da1Yroy7TYuvmRHpe7XRJqVlIqW1PxJkKPfWFE=; b=PRWQi+DdAw7WIOPqvEecAeGERm0cMVx2veOQ7R3e3kpcJmGijw7ml2lva5iv0DhXoqzT+x Rm8RKl9AFtA8RuHPDeedx3n4FU1pbAOpj3fzzPTdzpFCUry+rUis1/b+IHAANseHzf35xw ovgdfH1SuSbjWsfqRweCc5E8+GYC3YyaIfAzYvHw2VHrAFUUQBpF4QHxFjdZ1QNvCRKDSz PXaRJcO49lcoUDjsMhALkGsJZQ93YdtfgeK9lqiBkRxDSjr2U6y+aX21+domoWD6wRtb2g XvNrgvC4m57z2zyhc+dapTZQFS733KAfTbYuRNsKg1FLuQeyXlMLuFPfJsh8SQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400729; a=rsa-sha256; cv=none; b=N2mtFv4udi2Fvz6bBng1SmxsTBlbI1fSqnPvASePprA+XaTkqEI3GeK9cSTVaWwxJo6Gn6 vMnoN7p7Z65UoUkWzqw6UyFHLzAeZTgRBJdhnyFTBsQPfNfdaOq3tul8pX7XsuM+OAygYE blqASoTq9UbrMV+V6KVxIsAi4wXqS6AiWbRik+BB4UonZiPpB20oGegowVIB22HqPyn63v Qt4Sus+WwG7tmClIJZg0ocNeQOdUvxBscd3k13ZHIsn1QkSTGnk97NraqOQKfDbAGt2Ak0 jijAE140VNopstlTJXiNn2V1mAMxW5NT6rlGd12qfKxs/E306IclAS4OxS6Nzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSHqs32Czzb6R; Fri, 18 Aug 2023 23:18:49 +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 37INInEQ018773; Fri, 18 Aug 2023 23:18:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INInfw018770; Fri, 18 Aug 2023 23:18:49 GMT (envelope-from git) Date: Fri, 18 Aug 2023 23:18:49 GMT Message-Id: <202308182318.37INInfw018770@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI <delphij@FreeBSD.org> Subject: git: d3ca462c94b2 - stable/13 - gve: Simplify tx loop over buffer ring List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: d3ca462c94b268cfa04cb66101fa41a3c752651d Auto-Submitted: auto-generated The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=d3ca462c94b268cfa04cb66101fa41a3c752651d commit d3ca462c94b268cfa04cb66101fa41a3c752651d Author: Shailend Chand <shailend@google.com> AuthorDate: 2023-08-12 07:59:26 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2023-08-18 23:18:16 +0000 gve: Simplify tx loop over buffer ring Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D41281 (cherry picked from commit 543cf924bcdcf064fed417ec3d66000ef66194d2) --- sys/dev/gve/gve_tx.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/dev/gve/gve_tx.c b/sys/dev/gve/gve_tx.c index db3f7415f412..1e62e1226be1 100644 --- a/sys/dev/gve/gve_tx.c +++ b/sys/dev/gve/gve_tx.c @@ -696,10 +696,9 @@ gve_xmit_br(struct gve_tx_ring *tx) struct ifnet *ifp = priv->ifp; struct mbuf *mbuf; - while (!drbr_empty(ifp, tx->br) && - (if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { + while ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0 && + (mbuf = drbr_peek(ifp, tx->br)) != NULL) { - mbuf = drbr_peek(ifp, tx->br); if (__predict_false(gve_xmit(tx, mbuf) != 0)) { drbr_putback(ifp, tx->br, mbuf); taskqueue_enqueue(tx->xmit_tq, &tx->xmit_task); From nobody Sat Aug 19 00:35:56 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSKXr37ynz4fy4S; Sat, 19 Aug 2023 00:35: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 4RSKXr2Xlfz3FnD; Sat, 19 Aug 2023 00:35:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692405356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CQgOiI+buD1Hy8d/y+2vO+Ri1JRzwWaqfZiwXL8rYsI=; b=YAtsmL2TZ3Ibdl9lmDlZVvqCNqs9iV6/qNAHqAfgthY7Qnmv6NUUK1iP6a0lm7RqSz4d52 bq0rGPuyEh70InvOvJ83PyAHLZInL/kbk7nxKpxr1qWEZbHsKZGqWKxpi/WkBETUo2W4yy EGOr/aLaKsXFpV8ZlKRVS4qNyeA1IL2SsHWqUh8ft0dsXiIfEq1pie1zr1eWhh7Y9PBFqU UiXAOMLL0jRXOAd2VWEFHWqp1qRISYBZngpjPkrDTkso9kkl3LvoGMOti8e3Xbf5yZIwhw XNX3ZlTaz0RVE5it5Cbxc2OvUksKEmxacl2kcS2z7TbDcfvJarHcvMspYY5ZwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692405356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CQgOiI+buD1Hy8d/y+2vO+Ri1JRzwWaqfZiwXL8rYsI=; b=aMcCOYpRRZ8sivpJWo9fsiuLel5iRLC4GLyjFT+ZHICtpqA2aFSOUI8NxcjdIVHXN2CTe4 Oj1zZYmJcw4K7xX0JkXfCS1wef8XYOUeHdULQWiblsxIG1nO2DIZY3eTwgziKKmEEpymY4 TsprsPU5U/k++BCM4+UGIHYCKuml0uTiAQR0MtAKZUVr2zYIAHyztH9+18Gt79LjfXetc+ cp8lhajoZefPaPLVDW1QimdHgkcnFfZH/HAs33usolOaYKL4l1rEi4fP6YmmUz99eu3Xd5 tEhPI4/dzzKTC5c3p8VxUxHF/yLHOlynwntxcvbWSKqbGDC0KUurh5Qqs8XlwQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692405356; a=rsa-sha256; cv=none; b=BuZIHIAZ1B44Ve52SW0FwsCgxgVp4TNOb6t/HSXMk/GPMya40j25FrkgObe8hHd3VyT9kV V3RNzshfxVQZ+N8zs/73kEkxpg6xMa6pR9Z+rk/KJdzMYA9VG8mne4Im5toAJDXKLsXVkE jnlUwdnPVp5GtjbgjGJHNdHAVVtGeA9e4IElQIrVv8nYPjbOpmcW2lkQCyDGoXlh/8MJ1V H7LbJ3DJ84hobTKT+FF879TP1qX9yjfmetutazGtzxTcxfu2P0vvxM+2e7j0nw5WSdVHTd VH00qz0HsJn4PkqDRXxYCWcjR6g2OQNbGYoeCYizz9o04+6ldv2vWKXBNXBaCw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSKXr1bL9zd6K; Sat, 19 Aug 2023 00:35: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 37J0ZuWb050582; Sat, 19 Aug 2023 00:35:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J0ZuLn050579; Sat, 19 Aug 2023 00:35:56 GMT (envelope-from git) Date: Sat, 19 Aug 2023 00:35:56 GMT Message-Id: <202308190035.37J0ZuLn050579@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: 3b6a41e84994 - stable/13 - libc vdso time functions: correctly convert errors into errnos List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3b6a41e84994350767335a3e008f1a02a628689f Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=3b6a41e84994350767335a3e008f1a02a628689f commit 3b6a41e84994350767335a3e008f1a02a628689f Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-08-12 15:45:43 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-19 00:35:29 +0000 libc vdso time functions: correctly convert errors into errnos (cherry picked from commit 41acfee690da6289d570338e6365c1d7ef61dad5) --- lib/libc/sys/clock_gettime.c | 6 +++++- lib/libc/sys/gettimeofday.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/libc/sys/clock_gettime.c b/lib/libc/sys/clock_gettime.c index ec8ec13a754d..b2a414455245 100644 --- a/lib/libc/sys/clock_gettime.c +++ b/lib/libc/sys/clock_gettime.c @@ -48,7 +48,11 @@ __clock_gettime(clockid_t clock_id, struct timespec *ts) error = __vdso_clock_gettime(clock_id, ts); else error = ENOSYS; - if (error == ENOSYS) + if (error == ENOSYS) { error = __sys_clock_gettime(clock_id, ts); + } else if (error != 0) { + errno = error; + error = -1; + } return (error); } diff --git a/lib/libc/sys/gettimeofday.c b/lib/libc/sys/gettimeofday.c index 22177b15a5c7..d955aaa907e2 100644 --- a/lib/libc/sys/gettimeofday.c +++ b/lib/libc/sys/gettimeofday.c @@ -44,7 +44,11 @@ __gettimeofday(struct timeval *tv, struct timezone *tz) int error; error = __vdso_gettimeofday(tv, tz); - if (error == ENOSYS) + if (error == ENOSYS) { error = __sys_gettimeofday(tv, tz); + } else if (error != 0) { + errno = error; + error = -1; + } return (error); } From nobody Sat Aug 19 00:35:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSKXs453Rz4fyRL; Sat, 19 Aug 2023 00:35: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 4RSKXs3S6wz3FYv; Sat, 19 Aug 2023 00:35:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692405357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=khTtSBBXFiSZkarHKC03AIy5mDMtW0T8yGezViVivfs=; b=EWgZEfVt+LfPgN6Tnp8zXHHJYGBU7yOi/pZV8aDWCSJ/OwXzfCywD/F+Zc1aGt3G8N40vo JXEFRCfLNYMfedYwPMQhmMHeOmTVl6IM+wFkZPGs3K7JbU/EQCePwlTJczxALPb0A4cdYo n3qndVew8adQxCiuEii1HTBzR6Ec4m9FzzfgTOe3e8n3ixbApzYGG4p11oefT41hOFfoLX AyZZeyjNmdX/xVbGRdh/78vxs5b5HaQeNbTHf2qN7apzSuK8xH0+m00L3Iiu4UQ102BJ7J 47eG2LzcAak6zb7JGDu9pkAQFUldVWwo7ldkmlACLP290VFYcau0D0TMbfjT8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692405357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=khTtSBBXFiSZkarHKC03AIy5mDMtW0T8yGezViVivfs=; b=tZdeeWfgQtcuK9hbvcDOBTrZ/8T3lLT82FdQZu5UfyuUMvG2ULi0oroBH/xU/Qd249tpii +SEWGv31QV95qos3nU6TL7PrwwIB01uaQpWflrkiXrlv//XqkvJ1av8IYWs4oyuR0i6Vcq Cqr4CMnGGiAZ5GtuOrRCNcE38HNAEa4uob7FZa/r8hYutrgG5vg84m4WAlpr/2VjL00qsn RLoHQXBUFc8RJEOOAan9BDts4DV3SpBd57ky0gagJ5nnelaYswr61HFGMPPMaPw0uUyR0e 2uD8Awl+rMcAXH59ja7efA4RiH8E0ySKGYPMV8tPHOdTzyVmSMDaOgNuhIYX/Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692405357; a=rsa-sha256; cv=none; b=RXOlf92Iy82UA7aiaArQ5ACp3H2p7HQJSqkKbigvu7nGGRM0cBUU3VZtHfaO980n5GEnfj +qSNmmBQQ9TfnJKZTba9UiKSanr/z+lI+sNrzzYq3DDN1AJqeYgZn/wHP4lt9IZ5RulFGe pzKqLWM0FtECFN/vE9DHnFkQpPjuD7MO6zWHiJFNR2r85nP2rd4WDcQsPeP6sSglxMFLhJ rxodVCbjV/9cK1ZTEHZ0OpSwzjWWnKd00uobvLSSkCKr061XONTT1sqcqYFGN2CFQ+7Mq2 Wn7af/uP4tbLBiMPHsyYJ+SDp1ys85aqPt6t5KSNcZgRl/iQAneNW8bhWJXLJw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSKXs2HcXzd0C; Sat, 19 Aug 2023 00:35: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 37J0ZvjE050615; Sat, 19 Aug 2023 00:35:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J0Zv3B050612; Sat, 19 Aug 2023 00:35:57 GMT (envelope-from git) Date: Sat, 19 Aug 2023 00:35:57 GMT Message-Id: <202308190035.37J0Zv3B050612@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov <kib@FreeBSD.org> Subject: git: 8fe73008036b - stable/13 - tc_fill_vdso_timehands32(): fix List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 8fe73008036b0770e3d0a5b41e9b845feb46bdf1 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8fe73008036b0770e3d0a5b41e9b845feb46bdf1 commit 8fe73008036b0770e3d0a5b41e9b845feb46bdf1 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-08-12 19:51:37 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-19 00:35:29 +0000 tc_fill_vdso_timehands32(): fix PR: 273085 (cherry picked from commit 93626d54370292b09cd0ca604b144737109e9071) --- sys/dev/acpica/acpi_hpet.c | 3 ++- sys/x86/include/vdso.h | 7 ++++++- sys/x86/x86/pvclock.c | 2 +- sys/x86/x86/tsc.c | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/sys/dev/acpica/acpi_hpet.c b/sys/dev/acpica/acpi_hpet.c index e35e3808a980..e6f83512feed 100644 --- a/sys/dev/acpica/acpi_hpet.c +++ b/sys/dev/acpica/acpi_hpet.c @@ -173,7 +173,8 @@ hpet_vdso_timehands32(struct vdso_timehands32 *vdso_th32, vdso_th32->th_algo = VDSO_TH_ALGO_X86_HPET; vdso_th32->th_x86_shift = 0; vdso_th32->th_x86_hpet_idx = device_get_unit(sc->dev); - vdso_th32->th_x86_pvc_last_systime = 0; + vdso_th32->th_x86_pvc_last_systime[0] = 0; + vdso_th32->th_x86_pvc_last_systime[1] = 0; vdso_th32->th_x86_pvc_stable_mask = 0; bzero(vdso_th32->th_res, sizeof(vdso_th32->th_res)); return (sc->mmap_allow != 0); diff --git a/sys/x86/include/vdso.h b/sys/x86/include/vdso.h index 546a92a47301..be90e26702f7 100644 --- a/sys/x86/include/vdso.h +++ b/sys/x86/include/vdso.h @@ -49,7 +49,12 @@ #ifdef _KERNEL #ifdef COMPAT_FREEBSD32 -#define VDSO_TIMEHANDS_MD32 VDSO_TIMEHANDS_MD +#define VDSO_TIMEHANDS_MD32 \ + uint32_t th_x86_shift; \ + uint32_t th_x86_hpet_idx; \ + uint32_t th_x86_pvc_last_systime[2];\ + uint8_t th_x86_pvc_stable_mask; \ + uint8_t th_res[15]; #endif #endif diff --git a/sys/x86/x86/pvclock.c b/sys/x86/x86/pvclock.c index 3da3373bb2ee..9d8ac99f5a8a 100644 --- a/sys/x86/x86/pvclock.c +++ b/sys/x86/x86/pvclock.c @@ -253,7 +253,7 @@ pvclock_tc_vdso_timehands32(struct vdso_timehands32 *vdso_th, vdso_th->th_algo = VDSO_TH_ALGO_X86_PVCLK; vdso_th->th_x86_shift = 0; vdso_th->th_x86_hpet_idx = 0; - vdso_th->th_x86_pvc_last_systime = + *(uint64_t *)&vdso_th->th_x86_pvc_last_systime[0] = atomic_load_acq_64(&pvclock_last_systime); vdso_th->th_x86_pvc_stable_mask = !pvc->vdso_force_unstable && pvc->stable_flag_supported ? PVCLOCK_FLAG_TSC_STABLE : 0; diff --git a/sys/x86/x86/tsc.c b/sys/x86/x86/tsc.c index 94305dfdc82f..4eab4dc1692b 100644 --- a/sys/x86/x86/tsc.c +++ b/sys/x86/x86/tsc.c @@ -967,7 +967,8 @@ x86_tsc_vdso_timehands32(struct vdso_timehands32 *vdso_th32, vdso_th32->th_algo = VDSO_TH_ALGO_X86_TSC; vdso_th32->th_x86_shift = (int)(intptr_t)tc->tc_priv; vdso_th32->th_x86_hpet_idx = 0xffffffff; - vdso_th32->th_x86_pvc_last_systime = 0; + vdso_th32->th_x86_pvc_last_systime[0] = 0; + vdso_th32->th_x86_pvc_last_systime[1] = 0; vdso_th32->th_x86_pvc_stable_mask = 0; bzero(vdso_th32->th_res, sizeof(vdso_th32->th_res)); return (1); From nobody Sat Aug 19 06:37:55 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSTZW5nVPz4qHmD; Sat, 19 Aug 2023 06:37: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 4RSTZW5Bccz4QG4; Sat, 19 Aug 2023 06:37:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692427075; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WNlmUoMwgv2uk/OaWj1um+YRgk6vn1hxqNjgAuhJVSg=; b=xH0bJJwys9xp8fchjmGWJhMbf665eiwoiTdT6us4hid51BMFgkj5noxf9A1TN0x741ZcC+ xqNUam8rPkONIduXTLlxUWfWuWu0Q1keI2ib+y0///VVsaGpQ/a6CXAj5TfzEIXg7QY/jU MOHfpzeGcs89ofY1vf+IPC5fCAE3gcWOmt2Gg3vuo7aA6vLbweVI8PTkjUUqnN6wDLsffQ kH+Z49xHHAOzq1devKsAiEPxtpDLVO+UxpbryAkZFYzvMP1SgXhc6BuRkbqQhLrKJFfOuf DVmB9bYe2kMqfMt+0QKNJoRpqb3tkUm6qx2nuIGEJE3Ytq01bkzJ4WJ3Uni7Vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692427075; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WNlmUoMwgv2uk/OaWj1um+YRgk6vn1hxqNjgAuhJVSg=; b=Rs8VsmUaKWu6JPov+0G6UqOSYELKZ7ZUkc/L0k+wHg6uPOjcqkEd53xQmxgbcrFhu93L6F aMCP0p38PJW13IQ2NvoD1Mm/xwRvaYWm91VvZVZOtQhgBSLgYZxWgjy/FSKx+EZYbEPmaq mlPvDjIJtQKDyCq80sSVeqBEDLoquavy/Jl10ebCqRNkSfCgX+XPrpCbA07VYh4jjucNqo TYGVJqv9X8OH+GftytXOx4QM2PFvojhimnvXqoDExyvmmuNr2ayWJ49JENWozmokV+m9yQ 1f/51QwTpTaqVHip4aP++qfaam+S+AF97Y+RnoCNfobQKlCikTtyhdzIwQaSmw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692427075; a=rsa-sha256; cv=none; b=M3dRSJpS2ftdcN3EZjvR5V12PKBllBs+QYX61IbFqs3p9sp45Hi8DaOOfUoM2RvghxwaiI Oy/clnZAHBPcP9A8m43FHY0Z/uyg+gV/FZn9DayD0g5Q5PwyszTnGBc6FuPAEHP4PuRewP 0a2CXpEIGK19rEMNeJDmNm1BQqVvV0WVeTXbZa4Su/LoGYxM0bCbz91ug5K9PRzCoEK1aI BBxmNL5ES9kmxMTbR29X2srschUjszm81f5JT7BQz5EczH7FZI3Nt24fwj1O+Z9AVbqsz+ 3DjBlRRl8FqxbjIVR4YJI0Gi+bcAdMAdWG2eYaCuuuScsj9SYGfc9khTDVJp/w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSTZW3wQ4znj2; Sat, 19 Aug 2023 06:37: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 37J6btq5052137; Sat, 19 Aug 2023 06:37:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J6bt8P052134; Sat, 19 Aug 2023 06:37:55 GMT (envelope-from git) Date: Sat, 19 Aug 2023 06:37:55 GMT Message-Id: <202308190637.37J6bt8P052134@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein <eugen@FreeBSD.org> Subject: git: b71dde1aeba2 - stable/13 - tftpd: introduce new option -S List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b71dde1aeba2972522a6742bbae77c2c6497eb01 Auto-Submitted: auto-generated The branch stable/13 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=b71dde1aeba2972522a6742bbae77c2c6497eb01 commit b71dde1aeba2972522a6742bbae77c2c6497eb01 Author: Eugene Grosbein <eugen@FreeBSD.org> AuthorDate: 2023-07-20 20:11:33 +0000 Commit: Eugene Grosbein <eugen@FreeBSD.org> CommitDate: 2023-08-19 06:35:58 +0000 tftpd: introduce new option -S Historically, tftpd disallowed write requests to existing files that are not publicly writable. Such requirement is questionable at least. Let us make it possible to run tftpd in chrooted environment keeping files non-world writable. New option -S enables write requests to existing files for chrooted run according to generic file permissions. It is ignored unless tftpd runs chrooted. Requested by: marck Differential: https://reviews.freebsd.org/D41090 (based on) (cherry picked from commit 273a307d0b80743fb08e23237b3f74dc94a8fa2a) (cherry picked from commit 03c2616dc530e5b23f06f9aa421012154590e578) --- libexec/tftpd/tftpd.8 | 22 ++++++++++++++++++---- libexec/tftpd/tftpd.c | 14 +++++++++++--- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/libexec/tftpd/tftpd.8 b/libexec/tftpd/tftpd.8 index e4f5ab94a2fe..a984cdc32c94 100644 --- a/libexec/tftpd/tftpd.8 +++ b/libexec/tftpd/tftpd.8 @@ -28,7 +28,7 @@ .\" @(#)tftpd.8 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd March 2, 2020 +.Dd July 20, 2023 .Dt TFTPD 8 .Os .Sh NAME @@ -72,7 +72,11 @@ Files containing the string or starting with .Dq Li "../" are not allowed. -Files may be written only if they already exist and are publicly writable. +Files may be written only if they already exist (unless the +.Fl w +option is used) and are publicly writable (unless chrooted and the +.Fl S +option is used). Note that this extends the concept of .Dq public to include @@ -191,6 +195,12 @@ to change its root directory to After doing that but before accepting commands, .Nm will switch credentials to an unprivileged user. +.It Fl S +If +.Nm +runs chrooted, the option allows write requests according to generic +file permissions, skipping requirement for files to be publicly writable. +The option is ignored for non-chrooted run. .It Fl u Ar user Switch credentials to .Ar user @@ -275,12 +285,16 @@ the .Fl c option was introduced in .Fx 4.3 , -and the +the .Fl F and .Fl W options were introduced in -.Fx 7.4 . +.Fx 7.4 , +and the +.Fl S +option was introduced in +.Fx 13.3 . .Pp Support for Timeout Interval and Transfer Size Options (RFC2349) was introduced in diff --git a/libexec/tftpd/tftpd.c b/libexec/tftpd/tftpd.c index 02fbaaf0d371..3b08fab33dca 100644 --- a/libexec/tftpd/tftpd.c +++ b/libexec/tftpd/tftpd.c @@ -98,6 +98,7 @@ static struct dirlist { static int suppress_naks; static int logging; static int ipchroot; +static int check_woth = 1; static int create_new = 0; static const char *newfile_format = "%Y%m%d"; static int increase_name = 0; @@ -138,7 +139,7 @@ main(int argc, char *argv[]) acting_as_client = 0; tftp_openlog("tftpd", LOG_PID | LOG_NDELAY, LOG_FTP); - while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:u:U:wW")) != -1) { + while ((ch = getopt(argc, argv, "cCd::F:lnoOp:s:Su:U:wW")) != -1) { switch (ch) { case 'c': ipchroot = 1; @@ -176,6 +177,9 @@ main(int argc, char *argv[]) case 's': chroot_dir = optarg; break; + case 'S': + check_woth = -1; + break; case 'u': chuser = optarg; break; @@ -385,7 +389,11 @@ main(int argc, char *argv[]) tftp_log(LOG_ERR, "setuid failed"); exit(1); } + if (check_woth == -1) + check_woth = 0; } + if (check_woth == -1) + check_woth = 1; len = sizeof(me_sock); if (getsockname(0, (struct sockaddr *)&me_sock, &len) == 0) { @@ -727,7 +735,7 @@ validate_access(int peer, char **filep, int mode) if ((stbuf.st_mode & S_IROTH) == 0) return (EACCESS); } else { - if ((stbuf.st_mode & S_IWOTH) == 0) + if (check_woth && ((stbuf.st_mode & S_IWOTH) == 0)) return (EACCESS); } } else { @@ -757,7 +765,7 @@ validate_access(int peer, char **filep, int mode) if ((stbuf.st_mode & S_IROTH) != 0) break; } else { - if ((stbuf.st_mode & S_IWOTH) != 0) + if (!check_woth || ((stbuf.st_mode & S_IWOTH) != 0)) break; } err = EACCESS; From nobody Sat Aug 19 06:44:59 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSTkg4gmbz4qJ9J; Sat, 19 Aug 2023 06:44: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 4RSTkg49nKz4Qrg; Sat, 19 Aug 2023 06:44:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692427499; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oD71L/JyLiRE6Ar8hhmV1IWCNo6EUKzUAZ2M3XRYGmo=; b=rtHT33mNFF2hsHWOxK47ydTDqsL5jRMMpxY8Qp4kYbxLtH4xSgINjFdpJ1LtofJWoV/Psg zxBrzrCniktroXmYiRO9LH3MZdnUwV7n70HftuGWvXKnBu4lC+ZKFcV+82SvKZvnx6L059 /8xWTIJ0Ff5txSOxPkxPadyNYKeBKgX8SZ7jCZWXdKxGCzDDObFSrOJOtJjUp7aPDdy3aJ HC0NbA8pDBf9bXsSPa+Z5fIZ7yvY8WI61r88f6yExz9B0O8No92NnPWo8EXr1Vk0ZjIPBz XVJwrMTheiYKLk+tDNDrb0Pk80yCE2kUSUhlJKRSRdgepDJAdLP2g75IK6HRLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692427499; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oD71L/JyLiRE6Ar8hhmV1IWCNo6EUKzUAZ2M3XRYGmo=; b=DDQkPXqbNcPiIItqZ0i35DYkm4Alo8zQ5am5QzOf+IWn6Nm3AVXBI0AojR2FpH3EEhJUWG H3q/EF5iM59zxwdrlsdr1YTk8RII8SCg5ys6rkj9ZsSWcOg0SYQKPa5LVG6L3C6z5QOJLp Kst1hQgeFdxgN42EcKR+3bFqI+omXc/tRqROsyL0dzJDe5EHofc5qYjcS0S60nbshgSrt2 zpNQH2UpZNInxWE/7SybE74ofUoCVjkwU1nf63irz/qoTN+CuykrLT0AIUQOqPWrBV6Cky WbQBVHkGBMfPPeeDA4/WVQCHM57fjbpSix/tmIZUbBk2dBgxvHa2G9t9IIBq7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692427499; a=rsa-sha256; cv=none; b=cPppeiVyzWHOh3z7ReDuaKZ6Bjq8fPVSdbu7H9W1V/O5bBxN6pATQ2R4afv+whqaU7s0iz EE/sshwVWiZUGpvGvimypETg/Cc/+enC+rWzmIP4R6Ga0QnWYOfJzH4lJw/Xe4HL3PblLS cHSDAVg39kz/g+3a4K3yYWlBROy5sEEr1t18PjbovSua0FCGECFNqlf4F1eRbFpQloMF6U GpWa0dBA+7yoopB+gW0i8Dhut3ph7tYnd5T75L79xSnfghZtNQ0Fp4eHX287naFlfUB0Xy vZHO6ty8uqpe1P2MpJj9KE1qardiYHIp5u8fRFXSZr+B192tikNp3u509sPajQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSTkg31QgznnF; Sat, 19 Aug 2023 06:44: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 37J6ixPn068375; Sat, 19 Aug 2023 06:44:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J6ixSK068372; Sat, 19 Aug 2023 06:44:59 GMT (envelope-from git) Date: Sat, 19 Aug 2023 06:44:59 GMT Message-Id: <202308190644.37J6ixSK068372@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein <eugen@FreeBSD.org> Subject: git: 9397112d89df - stable/13 - tftpd: fix wrong conflict resolution List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9397112d89df25a9e1ab8d84e8fc88fe789e1324 Auto-Submitted: auto-generated The branch stable/13 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=9397112d89df25a9e1ab8d84e8fc88fe789e1324 commit 9397112d89df25a9e1ab8d84e8fc88fe789e1324 Author: Eugene Grosbein <eugen@FreeBSD.org> AuthorDate: 2023-08-19 06:43:08 +0000 Commit: Eugene Grosbein <eugen@FreeBSD.org> CommitDate: 2023-08-19 06:43:08 +0000 tftpd: fix wrong conflict resolution This is direct commit to stable/13 after wrong previous one. Fixes: b71dde1aeba2972522a6742bbae77c2c6497eb01 --- libexec/tftpd/tftpd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/tftpd/tftpd.c b/libexec/tftpd/tftpd.c index 3b08fab33dca..ed030b23da30 100644 --- a/libexec/tftpd/tftpd.c +++ b/libexec/tftpd/tftpd.c @@ -139,7 +139,7 @@ main(int argc, char *argv[]) acting_as_client = 0; tftp_openlog("tftpd", LOG_PID | LOG_NDELAY, LOG_FTP); - while ((ch = getopt(argc, argv, "cCd::F:lnoOp:s:Su:U:wW")) != -1) { + while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:Su:U:wW")) != -1) { switch (ch) { case 'c': ipchroot = 1; From nobody Sat Aug 19 06:58:01 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSV1j6mHpz4qJt0; Sat, 19 Aug 2023 06:58: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 4RSV1j5Rkyz4RGd; Sat, 19 Aug 2023 06:58:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692428281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gn9pfMJd52n0P7pqUzuVWgueAhilAhdY20lCpVtLs78=; b=YQmCbdD3kOzXJd2FbviLB0fpgV2BcgGYfxovrDBWr5CvpdVY5NRXM5OQ8X3w3q+z4C5tG1 1PQYGHNXRVZ1Kfw1oM9jWHazGLByPx248APz+4TXpQa2+qRsiyB83QpjqNKhqvvdlzWwwY Rihiczv96+yQO1qQo7Y3jgHmtdHmHkIQlZqGp7KC2sxu7nHMCSDBdMv4vN6IZNwnUJUqPD XRmOUeHR3hJ2X4XJyyHxpl1XLa5XvNNK2eLZ/6JF1DKw+mR5LcXBhdLiP5nytDTUPleztn HZy0kxVzFg/HzOvtwDxTt8bkrQW5tGJNHwF+/5Vk+5yfB6UvIwdmHkOD1X/Uyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692428281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gn9pfMJd52n0P7pqUzuVWgueAhilAhdY20lCpVtLs78=; b=jYb9AC299huytczGPY4xvlZsIde/jNi1D6CUGXfgXj9MtqnEtkLHAPeZ0uwRuLlYKYPlHF BYacd7dsk67wbCn5tJG7mw6BDyOzouVH/Rey9OKCsXGWQ/lz+jKEhCu0zCE92xMene7AvV w+FZ29v4QqskvLB//0MZOzN5b3P5SE0x3te2mcOyobRBd0bXLN0EVAiUg8Pq1C5ypyZsW0 czfLDZevzvF6o93SHXUM1yZt36NCNIgBNqAdr3tLuHPzEWgnezB5UyDnxYTdLMjW7Hq1Cm mjijLanjXxRXcuZdUMRpmF+sXOpDtoDdUC5M0KUTh3RCkoEUpxjjWlW+3Xi3wg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692428281; a=rsa-sha256; cv=none; b=wKuwERhzpG8N5lWc8S+jb8hJ1BLqiKJLu3fGLpXzHboPjkLbUhrYfOEQrnVtQTDcsUdzS2 VMim+d+KBiZMtiNDcs8P7zDEC0sEw6a93/hCg7n3V+yvcj29FYCUtUfanYyqDymO9NwztP R/T5ATEVCN5JGoHDkXejPajRCKVdUq4AoaZlmBejjZL07mQgBjzhx7C0iBSx0gzeo+cT3O FILmWFmka5rTHhCYt/94DamNwaUNwFfBVjM0HWuqX3kIgi6idXyy0cfSuvJZD2I4xnkiBG BtIrMeX5ZMsWYHQe4UmvOcggysJYst4MuWssar2cmqfyvWWZbywjp7/S3+lbxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSV1j45mLzp82; Sat, 19 Aug 2023 06:58: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 37J6w1bQ085864; Sat, 19 Aug 2023 06:58:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J6w1MR085861; Sat, 19 Aug 2023 06:58:01 GMT (envelope-from git) Date: Sat, 19 Aug 2023 06:58:01 GMT Message-Id: <202308190658.37J6w1MR085861@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein <eugen@FreeBSD.org> Subject: git: a99bf9966590 - stable/12 - tftpd: introduce new option -S List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: a99bf9966590859d21d28ec63798820dc07e0ba8 Auto-Submitted: auto-generated The branch stable/12 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=a99bf9966590859d21d28ec63798820dc07e0ba8 commit a99bf9966590859d21d28ec63798820dc07e0ba8 Author: Eugene Grosbein <eugen@FreeBSD.org> AuthorDate: 2023-07-20 20:11:33 +0000 Commit: Eugene Grosbein <eugen@FreeBSD.org> CommitDate: 2023-08-19 06:53:28 +0000 tftpd: introduce new option -S Historically, tftpd disallowed write requests to existing files that are not publicly writable. Such requirement is questionable at least. Let us make it possible to run tftpd in chrooted environment keeping files non-world writable. New option -S enables write requests to existing files for chrooted run according to generic file permissions. It is ignored unless tftpd runs chrooted. Requested by: marck Differential: https://reviews.freebsd.org/D41090 (based on) (cherry picked from commit 273a307d0b80743fb08e23237b3f74dc94a8fa2a) (cherry picked from commit 03c2616dc530e5b23f06f9aa421012154590e578) --- libexec/tftpd/tftpd.8 | 22 ++++++++++++++++++---- libexec/tftpd/tftpd.c | 15 ++++++++++++--- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/libexec/tftpd/tftpd.8 b/libexec/tftpd/tftpd.8 index e4f5ab94a2fe..a984cdc32c94 100644 --- a/libexec/tftpd/tftpd.8 +++ b/libexec/tftpd/tftpd.8 @@ -28,7 +28,7 @@ .\" @(#)tftpd.8 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd March 2, 2020 +.Dd July 20, 2023 .Dt TFTPD 8 .Os .Sh NAME @@ -72,7 +72,11 @@ Files containing the string or starting with .Dq Li "../" are not allowed. -Files may be written only if they already exist and are publicly writable. +Files may be written only if they already exist (unless the +.Fl w +option is used) and are publicly writable (unless chrooted and the +.Fl S +option is used). Note that this extends the concept of .Dq public to include @@ -191,6 +195,12 @@ to change its root directory to After doing that but before accepting commands, .Nm will switch credentials to an unprivileged user. +.It Fl S +If +.Nm +runs chrooted, the option allows write requests according to generic +file permissions, skipping requirement for files to be publicly writable. +The option is ignored for non-chrooted run. .It Fl u Ar user Switch credentials to .Ar user @@ -275,12 +285,16 @@ the .Fl c option was introduced in .Fx 4.3 , -and the +the .Fl F and .Fl W options were introduced in -.Fx 7.4 . +.Fx 7.4 , +and the +.Fl S +option was introduced in +.Fx 13.3 . .Pp Support for Timeout Interval and Transfer Size Options (RFC2349) was introduced in diff --git a/libexec/tftpd/tftpd.c b/libexec/tftpd/tftpd.c index 02fbaaf0d371..56b97d4791bc 100644 --- a/libexec/tftpd/tftpd.c +++ b/libexec/tftpd/tftpd.c @@ -98,6 +98,7 @@ static struct dirlist { static int suppress_naks; static int logging; static int ipchroot; +static int check_woth = 1; static int create_new = 0; static const char *newfile_format = "%Y%m%d"; static int increase_name = 0; @@ -138,7 +139,8 @@ main(int argc, char *argv[]) acting_as_client = 0; tftp_openlog("tftpd", LOG_PID | LOG_NDELAY, LOG_FTP); - while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:u:U:wW")) != -1) { + while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:Su:U:wW")) != -1) { +>>>>>>> 273a307d0b80 (tftpd: introduce new option -S) switch (ch) { case 'c': ipchroot = 1; @@ -176,6 +178,9 @@ main(int argc, char *argv[]) case 's': chroot_dir = optarg; break; + case 'S': + check_woth = -1; + break; case 'u': chuser = optarg; break; @@ -385,7 +390,11 @@ main(int argc, char *argv[]) tftp_log(LOG_ERR, "setuid failed"); exit(1); } + if (check_woth == -1) + check_woth = 0; } + if (check_woth == -1) + check_woth = 1; len = sizeof(me_sock); if (getsockname(0, (struct sockaddr *)&me_sock, &len) == 0) { @@ -727,7 +736,7 @@ validate_access(int peer, char **filep, int mode) if ((stbuf.st_mode & S_IROTH) == 0) return (EACCESS); } else { - if ((stbuf.st_mode & S_IWOTH) == 0) + if (check_woth && ((stbuf.st_mode & S_IWOTH) == 0)) return (EACCESS); } } else { @@ -757,7 +766,7 @@ validate_access(int peer, char **filep, int mode) if ((stbuf.st_mode & S_IROTH) != 0) break; } else { - if ((stbuf.st_mode & S_IWOTH) != 0) + if (!check_woth || ((stbuf.st_mode & S_IWOTH) != 0)) break; } err = EACCESS; From nobody Sat Aug 19 19:29:50 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSpjC28LBz4mNJq; Sat, 19 Aug 2023 19:29: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 4RSpjC1KHtz4gC6; Sat, 19 Aug 2023 19:29:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692473391; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O6yBMmjoopWzLMWNXYV+Jpb+bj/jqkIuffedB70kYTU=; b=HsJJaC6GMwURnpykqtQqi/6uBrzrGOxqCDngCfqdgORk5Bh2ypvmAL3i9YNYGv4zWcPBvI g6JlStpFTJA7L3w52j5Z1pesVfx0vljEyKNNn2UDK5Pwe97GGZBJ4Yj6tQtkSUJpyd+Hdc BzUEn8YUmdHlP0h/ScLn7RfrULKly2HCRPXzcnTNBhXfKb2gHNv+1aHAng720zaT9bwIlF wfdeW3gitLE9kW59dgKYNWGRnxVK3I2N1nQohNOIQx2Yhw/GFLBFepq4NM6lC8tkmPVOzj QqJ+QpqJFK3m2vhDLiTffeiz7LiZPBL2rOpIA9J4Pe3yg5NPjn8YpEvl5LoqNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1692473391; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O6yBMmjoopWzLMWNXYV+Jpb+bj/jqkIuffedB70kYTU=; b=MqRbyJGuTyuN4jmIN5Z4CeeFeLDYP3ZpkeetjuHlBLdxjORCITznJ1gD9t15bjc5XjOhmq GVA6VVc5QSfPVBMdE3VBhpXrNg4u37DCefhvEoKBWf6QeoXFZ6bFgT+SwoXqotClpF6i/H 8K14zKFDFZ5njcsDrj+QWAn4SsQI3BcaPB/IjONZ5H4Jq4fAXEsIM5CEo4xEsMQ5q0+8jt E9kHUCPGQHNETpjQAYxfogg3WdWhBMCWYL7zKdhdNKREArftgyov7p93pgaaOMGwZg5kfC RbLv4X7VFHuOzWL8NjFsBTgHCh3K9OYupzJpNONmKF2yP/RZ/bKlbl4c43znKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692473391; a=rsa-sha256; cv=none; b=Uxa7PHFdkxuZwjeZNbgAvPQdPv/Jf2WqS0Mr0c0cDC7MyWcGNsViMlt8bS5rfEx44RmKH6 Dxoy6uEtnK055LFJHF7mF4pJ9u7h9uqydHjC3DxHGHzGnLgwvkYMVEwrVxBCDzo04rvqUQ WRtZTrJSQz6DKnPwZqzmG7qzDV6kTLY0cMJ23TxZxG8XCZmkEEjVsBYpD8O86bgYpX6p6d KW5uh3YvcQhI1O5i1Esr/VQCqBT/IOj9q5Vbm2YdUI+tgBqTrM3hE6DjZp8DAKk6o5AEQ/ O/REhwcnMm4lHOjvKzySsTBrFrwXqtDGvCAN4R+ahGmbGwY4XFfeLlkPCE2iOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4RSpjC0Nr5z186q; Sat, 19 Aug 2023 19:29: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 37JJTonA035167; Sat, 19 Aug 2023 19:29:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37JJTokk035164; Sat, 19 Aug 2023 19:29:50 GMT (envelope-from git) Date: Sat, 19 Aug 2023 19:29:50 GMT Message-Id: <202308191929.37JJTokk035164@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein <eugen@FreeBSD.org> Subject: git: c6dc07c6f1a8 - stable/12 - tftpd: cleanup after conflict resolution List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: <mailto:dev-commits-src-branches+help@freebsd.org> List-Post: <mailto:dev-commits-src-branches@freebsd.org> List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org> Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: c6dc07c6f1a82ab8d97446f01eb0ec4832e92f0e Auto-Submitted: auto-generated The branch stable/12 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=c6dc07c6f1a82ab8d97446f01eb0ec4832e92f0e commit c6dc07c6f1a82ab8d97446f01eb0ec4832e92f0e Author: Eugene Grosbein <eugen@FreeBSD.org> AuthorDate: 2023-08-19 19:28:49 +0000 Commit: Eugene Grosbein <eugen@FreeBSD.org> CommitDate: 2023-08-19 19:28:49 +0000 tftpd: cleanup after conflict resolution Fixes: a99bf9966590859d21d28ec63798820dc07e0ba8 --- libexec/tftpd/tftpd.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libexec/tftpd/tftpd.c b/libexec/tftpd/tftpd.c index 56b97d4791bc..ed030b23da30 100644 --- a/libexec/tftpd/tftpd.c +++ b/libexec/tftpd/tftpd.c @@ -140,7 +140,6 @@ main(int argc, char *argv[]) tftp_openlog("tftpd", LOG_PID | LOG_NDELAY, LOG_FTP); while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:Su:U:wW")) != -1) { ->>>>>>> 273a307d0b80 (tftpd: introduce new option -S) switch (ch) { case 'c': ipchroot = 1;