From nobody Fri Jan 14 20:39:33 2022 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 04181195E993; Fri, 14 Jan 2022 20:39: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 4JbCpF6WGxz3CqF; Fri, 14 Jan 2022 20:39:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1642192774; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+fNxiitGWADHTrVHzsP3EA6aVU9lWXvh90f31n1t/K8=; b=iryzck/mtxO8LEDLd6HJKPyYKY5m28v9o7jIcxNxzrWQcmUCawHpPj8iRbemth/9Ar3sfq Y1MbMqsOF3/eZakDLYiud7qJTIa2GgQtWkAvj0ZpsmgcDCXMH+Nn30JaOS4juexumbdWfe 45uPygw9KS9Di8fG8aB+P6RAVzss422XOhEp+HBxNcjR3Nh3kz49M63RWsZ52DedTI0cTV VYKQAhv/rfm9vbYg0f5/+1Y4TEF+3nzklSHpgjo2QdFSJXl6WeRUoN8sHYB/afquRHyV0g S8C+3TqUixXWfQkaM7pE6c9uFomeVk9HMZ83P9FStX+fz7pSbrUy3WEaI+7INg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8F51D1A6DF; Fri, 14 Jan 2022 20:39:33 +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 20EKdXeT087558; Fri, 14 Jan 2022 20:39:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 20EKdXD8087557; Fri, 14 Jan 2022 20:39:33 GMT (envelope-from git) Date: Fri, 14 Jan 2022 20:39:33 GMT Message-Id: <202201142039.20EKdXD8087557@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: a04ce833f9ba - main - uma: Avoid polling for an invalid SMR sequence number 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a04ce833f9ba058ec3e04f686bd56fa0691bfcf0 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1642192774; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+fNxiitGWADHTrVHzsP3EA6aVU9lWXvh90f31n1t/K8=; b=ijs4y29o1ccXfGlffkqIDAZs3sGrdRnRu7io267Gekw5dvUzHX/er9mTrJzq9em/85X56+ Zy0ycJA2/E/lg1ypXn/Qj+E5etL0+xvenwSZK+OdLEWholbSCBwN22Ht30XozVvxDKvZdG +cnHUGvbHkOUk4oE0CzDimz+qh+IQE9ubggo0IVlYzZB+AZpJ9PgmLEyLH7SpwV5qX6zFS Qdedxop0k0Jkt4dRD2gVagwXiUhO9Wx1UCi1LM4xDYc1/bus6K0pvXJ/7cwfaJz0GXn7Do MitHuclFUdK45wGt4Obs7PjA6U/0vvoCsTYIuC4FT54FMENK/pZ3cysMt0I69w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1642192774; a=rsa-sha256; cv=none; b=ywOrhQxZrhGkhAFc3MfSmadZrEZmoKYREOiuKdRKLDnhAqc269zlFDkRECm0QW2i/3HgIY 1gTbk3Wivu1Spa+0Ex5e75OBNeVoMdWDOiUA6RgX71fATN8RVrz9t0AiKMWeFgrgCjAsrV SLw3vL/ehvFGxaK7CVqjpujdHSPps4jr42LM5BmUfaF1X9kENc3Grr393PdaNd151ShQe7 dWCkvB9LXTEr4JJJwGwe5aSv+tvXnruBaNDFZEIBo7E9LkvMZ1oYj1MnUJt+h3F2+Dn46w NV7Fc9jLs7nsOKcsmq3ZVEjEIw8px7N2RFzcXAoEHqtat3ObMdRIwRHyiKCf/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=a04ce833f9ba058ec3e04f686bd56fa0691bfcf0 commit a04ce833f9ba058ec3e04f686bd56fa0691bfcf0 Author: Mark Johnston AuthorDate: 2022-01-14 20:06:48 +0000 Commit: Mark Johnston CommitDate: 2022-01-14 20:38:02 +0000 uma: Avoid polling for an invalid SMR sequence number Buckets in an SMR-enabled zone can legitimately be tagged with SMR_SEQ_INVALID. This effectively means that the zone destructor (if any) was invoked on all items in the bucket, and the contained memory is safe to reuse. If the first bucket in the full bucket list was tagged this way, UMA would unnecessarily poll per-CPU state before attempting to fetch a full bucket from the list. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation --- sys/vm/uma_core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index e114e43184bd..f6f7b083133a 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -1051,6 +1051,7 @@ cache_fetch_bucket(uma_zone_t zone, uma_cache_t cache, int domain) { uma_zone_domain_t zdom; uma_bucket_t bucket; + smr_seq_t seq; /* * Avoid the lock if possible. @@ -1060,7 +1061,8 @@ cache_fetch_bucket(uma_zone_t zone, uma_cache_t cache, int domain) return (NULL); if ((cache_uz_flags(cache) & UMA_ZONE_SMR) != 0 && - !smr_poll(zone->uz_smr, zdom->uzd_seq, false)) + (seq = atomic_load_32(&zdom->uzd_seq)) != SMR_SEQ_INVALID && + !smr_poll(zone->uz_smr, seq, false)) return (NULL); /*