From nobody Sun Apr 21 12:29:25 2024 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VMnkZ1tggz5J792; Sun, 21 Apr 2024 12:29: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 4VMnkY6QDZz57Sg; Sun, 21 Apr 2024 12:29:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1713702565; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u6Ul8Ko3ZjZs9XYiECE9y+so8ZLLk88MI9i994o8Swk=; b=igG4wwZx6UFGWqhMqnypUp62FX6STS7i4UXBWvMCPBP9B1b4f8CdB77H/zs0HgPolA9x4m tYsEcy+cP1lqeNuz2oC8T3wlpocY6i2UlnhxzLu6tMMBRO0i+PXHPM4x6MUR4jDIW5DHDy EIGiMgD9NlKRXS0w5W6g/Sd2c702sOKE1/iz8plxFRXPZ3PSSM/v13AAuxVxtV81bpAwi6 sUeLUBJn6dhq48EF2+LP3j3vJfcT4nuVG4VpKtrHH8hgW4XW1YrPnbuEDQmwtBpuMiNgBP 4pcF1r1BrjtodQbTKCx1YQHsNA36XVts+lAmXJ6frJBBuEShD/FLuMimSKsOAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1713702565; a=rsa-sha256; cv=none; b=KtkAVP4wChg0slYDFyeGXuqhnCcQ+iMkTF2TGNIGYQtVHBYkHiKYFApyLSIypVsrtfTNow mZIn8HgOY2t+9POBGCRnEsIBtkM29J7COI1i3f8lW9zvv0Ryd4EEcjHvwrL/8cmkPvP0Z8 qI3haT4BE3aE2wcxvzuHIuTk0vF2Ms4Gh7bAquc9hbwi/EPhahPVUhx6aJD8JHlpI/6cmT 5VEEzxUEPmVLDEd1OvaNyabHBj+qDUaoi5tcvO/DaP5zQkeYbH9JL/Rn1odpIbHqJFRdxc 5LgcIDuekIF4cDUe8HiWIge8B3t4Fqgux3kRO5BeSZuprz1FFm0rriPyAeG+zw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1713702565; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u6Ul8Ko3ZjZs9XYiECE9y+so8ZLLk88MI9i994o8Swk=; b=FwuC9gfNv8QfxiwGMbv/jBypjzv/xt2WlABmedCLQKjGJBSbB/HVE6/vFEiRAhHGq1tt48 22bM3/9TxHNAbjPO6oH46lPoR/82GigkgJBEmIHheobu7tUxjkdSzAmfuZCqb5+/f4jObu DiB2ZqGuRJxi1PDw5GeOpKRrlih/YVMLVLLLthENQzLQfeHcQLpJYS9mtlJ2ydrNNo/uxH zKtBwokDA0oNf6oLqgsYVSYH/6+oENxiyLjVLhqwzOryE3WKluwG/Lbg5O+iv9ppJfjwHk mvEHKQeK6zND7qXcFtwVi6KRoJC/UeG1+jB3t4XogUhHuspRvc4iSaOV6r1XUw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4VMnkY4yDmz1K9V; Sun, 21 Apr 2024 12:29: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 43LCTP9h050407; Sun, 21 Apr 2024 12:29:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 43LCTPDP050404; Sun, 21 Apr 2024 12:29:25 GMT (envelope-from git) Date: Sun, 21 Apr 2024 12:29:25 GMT Message-Id: <202404211229.43LCTPDP050404@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andriy Gapon Subject: git: f12a50fed2df - stable/13 - Revert "dtrace: make 'ring' and 'fill' policies imply 'noswitch' flag" List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: avg X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: f12a50fed2df3994b05d7c8702f06bb117c156d6 Auto-Submitted: auto-generated The branch stable/13 has been updated by avg: URL: https://cgit.FreeBSD.org/src/commit/?id=f12a50fed2df3994b05d7c8702f06bb117c156d6 commit f12a50fed2df3994b05d7c8702f06bb117c156d6 Author: Andriy Gapon AuthorDate: 2024-04-21 10:07:36 +0000 Commit: Andriy Gapon CommitDate: 2024-04-21 12:28:59 +0000 Revert "dtrace: make 'ring' and 'fill' policies imply 'noswitch' flag" This reverts commit e92491d95ff3500e140eafa614e88ca84ffb0d26. It was cherry-picked as f0ed49921c2891733b7ee65679a8dcba5398e3b6. The general idea looked good to me. In particular, it allowed to save some memory and avoid memory allocation failures when a large buffer size was requested along with ring and fill policies. But I didn't take into account that the second, supposedly unused buffer, was actually used as the scratch buffer. The scratch buffer is used as a temporary space for DTrace subroutines like copyin, copyinstr, and alloca. I think that the change can be fixed by allocating a separate smaller buffer for the scratch buffer, but that fix would require more work than I am able to do now. Hence the revert. Reported by: Domagoj Stolfa Diagnosed by: Domagoj Stolfa, markj (cherry picked from commit b9827c007a7a39c7aeef73f8efc217b7b0099464) --- sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c index 17d9536b2428..6ae0322ebb0f 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c +++ b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c @@ -12055,6 +12055,7 @@ dtrace_buffer_switch(dtrace_buffer_t *buf) hrtime_t now; ASSERT(!(buf->dtb_flags & DTRACEBUF_NOSWITCH)); + ASSERT(!(buf->dtb_flags & DTRACEBUF_RING)); cookie = dtrace_interrupt_disable(); now = dtrace_gethrtime(); @@ -14862,10 +14863,10 @@ dtrace_state_buffer(dtrace_state_t *state, dtrace_buffer_t *buf, int which) if (which == DTRACEOPT_BUFSIZE) { if (opt[DTRACEOPT_BUFPOLICY] == DTRACEOPT_BUFPOLICY_RING) - flags |= DTRACEBUF_RING | DTRACEBUF_NOSWITCH; + flags |= DTRACEBUF_RING; if (opt[DTRACEOPT_BUFPOLICY] == DTRACEOPT_BUFPOLICY_FILL) - flags |= DTRACEBUF_FILL | DTRACEBUF_NOSWITCH; + flags |= DTRACEBUF_FILL; if (state != dtrace_anon.dta_state || state->dts_activity != DTRACE_ACTIVITY_ACTIVE)