From nobody Mon Jul 6 21:24:22 2026 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 4gvHRp3vPRz6kF6F for ; Mon, 06 Jul 2026 21:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gvHRp3NMTz40xM for ; Mon, 06 Jul 2026 21:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783373062; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8KhsKipal4NeRVKx/R4wyEHvW3+QafWlOtsZbM8dm4g=; b=PuCYyiAzFDoT+TWuczTVxQeWYs76NRUxk3XYawFHsT5J9ibvEcv/jKSWU4CS9LSN3hyzCH zb5XrDFJGsHSFt4Vcg5K2Yyuo9swJurTo/lQpQ4LGR15/R4Touel7BeGl6iP4M/BjL4LY1 QRfCv85Pj3PUZTiSn4n259r0z/wFAi22WZLM7eoe2Ic0CpSrYYuDXNoF19cVT972LMO0Gi yJGxihRrt31fCKOjuzj+IhXj5v2BhzYW63RNZGXCOhjEGfZjkpuYv4jSGC79JqTUA7kxjX JpeK5vESyuHFShqLJy5eQu8y7o06bu//0RFwChDbsJW0peEhNDmtGSij3LYItQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1783373062; a=rsa-sha256; cv=none; b=CqKZhd7Ri4fmaMo9umXBnjj5Rw41JaeXwUVj4e7VYoaI9S4V45HpXEupA/5qBmZea0hSrf 8L82HlsmQx/bzVIFgLyXL0fI2uJdiQ/mhe3YqtjFL9EYkCHlMTRcmbKlc2i7n/cCbyrmqQ y/TXUepvUsKMjmGPra6LiRGkuNOrGGgWp+bXPBHztWmJ8mFR215mKePTNz/Lu6UwRib18b EFZ9XgySiD6DxYVZ7fWZDQrxy7DsYfVZthL3kKfOf8zPiubjzX8EvBn6cK6dWhjmToFOIu A3K8cjQUZcmTrQ4PnueUaXMUB3iTgcI1gYbS78VlIJwENtk158PwzNKEUXGemA== 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=1783373062; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8KhsKipal4NeRVKx/R4wyEHvW3+QafWlOtsZbM8dm4g=; b=sTjKPSGLXvDYWvWSYN1jg2hhnL6SOIoH9aBpSg/19PMMqaFspypb6mlZKaUZYyij8iv0C0 IYsjVy1Gt6IZJXmGcimUWO3oz9Lwm2L3/6POAv014RcFnkH8+IKGTX3dEFFY+ECyxn7mAU Y8tC2Qkr29ttYVrZmpxUA/Ymg+BYVEUwoa9XX8W8wSdkX/t/o0amSty7fnqUZ8HLMPIt47 G4z74qeo4nV88efSmgCFUScUZsnwBtavBBKGnW7HcDVfRjLwadAJvlnsHRvguLvkZKkgef xYTHpsvTVxPtFsNXSGU1KE+a8RVjsHlhDxC+gTfklp4n3Pq2qMPWWMfu6bh5rw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gvHRp2S7Pz1L5L for ; Mon, 06 Jul 2026 21:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c2de by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 06 Jul 2026 21:24:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: 4dd9e4ed9771 - main - powerpc/booke(pmap): Flash-invalidate TLB on TID rollover 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4dd9e4ed9771630388cdf49ba3bcd1a608b05c9c Auto-Submitted: auto-generated Date: Mon, 06 Jul 2026 21:24:22 +0000 Message-Id: <6a4c1d06.1c2de.52e0577e@gitrepo.freebsd.org> The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=4dd9e4ed9771630388cdf49ba3bcd1a608b05c9c commit 4dd9e4ed9771630388cdf49ba3bcd1a608b05c9c Author: Justin Hibbits AuthorDate: 2026-07-05 23:05:13 +0000 Commit: Justin Hibbits CommitDate: 2026-07-06 21:23:55 +0000 powerpc/booke(pmap): Flash-invalidate TLB on TID rollover When the TID rolls over on a given CPU, simply flash-invalidate the TLB instead of walking the TLB to only invalidate the repurposed TID. Walking 256 entries is expensive, and we'll likely be inserting a bunch new ones anyway in the new environment, since 256 really only handles 1MB of storage, so the likelihood of other mappings continuing to exist in the TLB when their thread owner is scheduled again is very very small. --- sys/powerpc/booke/pmap_32.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/sys/powerpc/booke/pmap_32.c b/sys/powerpc/booke/pmap_32.c index 7d27d1fe407e..ef946194b649 100644 --- a/sys/powerpc/booke/pmap_32.c +++ b/sys/powerpc/booke/pmap_32.c @@ -939,8 +939,6 @@ static void tid_flush(tlbtid_t tid) { register_t msr; - uint32_t mas0, mas1, mas2; - int entry, way; /* Don't evict kernel translations */ if (tid == TID_KERNEL) @@ -963,26 +961,8 @@ tid_flush(tlbtid_t tid) __asm __volatile("wrtee %0" :: "r"(msr)); return; } + /* Flash invalidate TLB0 instead of walking the TLB to invalidate. */ + mtspr(SPR_MMUCSR0, MMUCSR0_L2TLB0_FI); - for (way = 0; way < TLB0_WAYS; way++) - for (entry = 0; entry < TLB0_ENTRIES_PER_WAY; entry++) { - mas0 = MAS0_TLBSEL(0) | MAS0_ESEL(way); - mtspr(SPR_MAS0, mas0); - - mas2 = entry << MAS2_TLB0_ENTRY_IDX_SHIFT; - mtspr(SPR_MAS2, mas2); - - __asm __volatile("isync; tlbre"); - - mas1 = mfspr(SPR_MAS1); - - if (!(mas1 & MAS1_VALID)) - continue; - if (((mas1 & MAS1_TID_MASK) >> MAS1_TID_SHIFT) != tid) - continue; - mas1 &= ~MAS1_VALID; - mtspr(SPR_MAS1, mas1); - __asm __volatile("isync; tlbwe; isync; msync"); - } __asm __volatile("wrtee %0" :: "r"(msr)); }