From nobody Thu May 18 20:11:20 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMh203xlXz4ByRb; Thu, 18 May 2023 20:11:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMh202NsJz3sHh; Thu, 18 May 2023 20:11:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684440680; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nwFjaF3DDQPrPcxrcxoDKNqhHtZVianvj9BIbVVBY1c=; b=sO7Zw9MXJlLkDOMwn8zR3je9InrU+m6QBfL9BDtq23bugleRjAf2TPb97h8fapGkTfcFVm tceIEBL7WBRm3zFBjt+0JFiClEGVQqvFiedHmXcEFb4XyetxO/OByrVXMcSeIu/eGRyLgX WKTlraBEa07St8+6hzXfJOulXA6EYdSuUntsw/q+BEpLbsOgJEqdJLXhhqT7IGmDqruKvN 0JzKsmETfba1ZkBkrI5vNx80Xt8Uqv2ACfJN/OKbgmj9jvPMncWFn7sikFV2DqBIy41enK IVLCak7gxoV/cZcs92lafMeU6PheMvGDbVVF0yX29vpmi5Ip5P5sBlKdcCub9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684440680; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nwFjaF3DDQPrPcxrcxoDKNqhHtZVianvj9BIbVVBY1c=; b=iy3th0iyMPGYs/42bJW9KDa6vFNp9gSqRIquyG/cZDhl6B8yDD1ki29cX5FXkCi8GXylJ3 f5M+Qy5Yl/Wxcl2zJVCGj4NLwPke/QInrHrfS6ydyl++7a94+gcBhSJT3450UnIe3htW1C I8Zetd+dY3MekoiPxSQT0SvVsAeNln4LKDPM4kDDHAu/ZHOgTYlwSkKQAIzXkl77WU3MiE Ldsrd2S2wTOKNjOmCf5cssQXdtLS/uj10oiTfHD1PeVBp+wIZ+ZxA0qVf5s5TFbZd6JY1q fCEc4JSyqdGzhKQcJlaGUXP0TZtQyBqKJc4qkqy5BnXAOJdVud1X+w4DD6uyyw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684440680; a=rsa-sha256; cv=none; b=HprkD4wLI5eAF4jWtLcWMvCJ37X3GAgFkwCnCDeeDqeUTSUfZPijtUz+NJvv2izHV/CSVR fLJEraqZJaGTb8Tay2GpJRNhWlIYO25VP0P/DNYHjWltPKtpHmyWxFAF3Bh+eRMWs79zPz 2EZhsUvXtdZ6mCOCV96d5+0gNl+xVoGJfZsGMxOy8zsooAPq2lx7G7V/VG0IIasV5EZgKD xSkJZgpRlGJoxEpIm7+cAjuXYpC4YJj+/6RO5RYy2W72oH5bG9TI3a5/kd1P6NPheQz3M6 os4KKMr4tSUUBsgEhJQXwePKpmqZCc0KPEqNjLEug2Rrc1V2+lcP7WqT69tpwQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QMh201Bjcz10DK; Thu, 18 May 2023 20:11:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34IKBKsC028737; Thu, 18 May 2023 20:11:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34IKBKOf028736; Thu, 18 May 2023 20:11:20 GMT (envelope-from git) Date: Thu, 18 May 2023 20:11:20 GMT Message-Id: <202305182011.34IKBKOf028736@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik Subject: git: 9a19595cad92 - main - proc: s/short/int lock-related counters List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9a19595cad9247902fbdadbb2b8fe61bb3a1dab1 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=9a19595cad9247902fbdadbb2b8fe61bb3a1dab1 commit 9a19595cad9247902fbdadbb2b8fe61bb3a1dab1 Author: Mateusz Guzik AuthorDate: 2023-05-18 19:45:33 +0000 Commit: Mateusz Guzik CommitDate: 2023-05-18 19:57:38 +0000 proc: s/short/int lock-related counters short is small enough that it can overflow in practice for certain cases and then trigger wrong asserts. One known example is vfs namecache resize which grabs all locks at once. Reported by: gallatin Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/kern/kern_thread.c | 6 +++--- sys/sys/proc.h | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/kern/kern_thread.c b/sys/kern/kern_thread.c index 283606bf4a8b..b62bfafa58be 100644 --- a/sys/kern/kern_thread.c +++ b/sys/kern/kern_thread.c @@ -89,7 +89,7 @@ _Static_assert(offsetof(struct thread, td_flags) == 0x108, "struct thread KBI td_flags"); _Static_assert(offsetof(struct thread, td_pflags) == 0x114, "struct thread KBI td_pflags"); -_Static_assert(offsetof(struct thread, td_frame) == 0x4b0, +_Static_assert(offsetof(struct thread, td_frame) == 0x4b8, "struct thread KBI td_frame"); _Static_assert(offsetof(struct thread, td_emuldata) == 0x6c0, "struct thread KBI td_emuldata"); @@ -109,9 +109,9 @@ _Static_assert(offsetof(struct thread, td_flags) == 0x9c, "struct thread KBI td_flags"); _Static_assert(offsetof(struct thread, td_pflags) == 0xa8, "struct thread KBI td_pflags"); -_Static_assert(offsetof(struct thread, td_frame) == 0x30c, +_Static_assert(offsetof(struct thread, td_frame) == 0x314, "struct thread KBI td_frame"); -_Static_assert(offsetof(struct thread, td_emuldata) == 0x350, +_Static_assert(offsetof(struct thread, td_emuldata) == 0x358, "struct thread KBI td_emuldata"); _Static_assert(offsetof(struct proc, p_flag) == 0x6c, "struct proc KBI p_flag"); diff --git a/sys/sys/proc.h b/sys/sys/proc.h index 54d586b06525..6af221db056f 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -272,10 +272,10 @@ struct thread { volatile u_char td_owepreempt; /* (k*) Preempt on last critical_exit */ u_char td_tsqueue; /* (t) Turnstile queue blocked on. */ u_char td_stopsched; /* (k) Scheduler stopped. */ - short td_locks; /* (k) Debug: count of non-spin locks */ - short td_rw_rlocks; /* (k) Count of rwlock read locks. */ - short td_sx_slocks; /* (k) Count of sx shared locks. */ - short td_lk_slocks; /* (k) Count of lockmgr shared locks. */ + int td_locks; /* (k) Debug: count of non-spin locks */ + int td_rw_rlocks; /* (k) Count of rwlock read locks. */ + int td_sx_slocks; /* (k) Count of sx shared locks. */ + int td_lk_slocks; /* (k) Count of lockmgr shared locks. */ struct turnstile *td_blocked; /* (t) Lock thread is blocked on. */ const char *td_lockname; /* (t) Name of lock blocked on. */ LIST_HEAD(, turnstile) td_contested; /* (q) Contested locks. */