From: Magnus Lindholm <linmag7@gmail.com>
To: davem@davemloft.net, andreas@gaisler.com
Cc: sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org,
linmag7@gmail.com
Subject: [PATCH 0/9] sparc32: repair cache hooks, mappings and TLB tracking
Date: Sun, 8 Nov 2026 23:34:10 +0100 [thread overview]
Message-ID: <20261108223516.1125534-1-linmag7@gmail.com> (raw)
I am submitting nine fixes for SPARC32 cache geometry, user-page copying,
folio and anonymous-page maintenance, kmap PTEs and CPU-mask tracking.
They apply to linux-sparc for-next at the base commit recorded below and
apply independently of my separately posted bit-lock fix.
Since summer 2026, I have been working on getting Linux to boot and run
reliably on an SMP HyperSPARC SPARCstation 20, with native GDB builds as
my main workload. That work exposed problems in both the HyperSPARC
backends and the common SPARC32 cache and memory-management code.
I am submitting the common SPARC32 fixes first because they address
architecture-wide hooks and bookkeeping rather than HyperSPARC-specific
backends. Some symptoms were exposed by HyperSPARC's cache behaviour,
but the affected paths are shared with other SPARC32 processors. I plan
to submit the HyperSPARC-specific fixes separately on top of this series.
The SuperSPARC demap serialization change is a separate companion. Both
application orders produce the same source tree; neither change narrows
mm_cpumask. HyperSPARC-specific fixes and optimizations are not included.
I completed a native GDB 18.1 build on a dual-CPU HyperSPARC RT626
SPARCstation 20 with 512 MB RAM, using a native SPARC32 SMP kernel with
the combined fixes, optimizations and separate platform prerequisites.
I observed no core dumps, livelock or new kernel messages. This was
integration testing before this context-only rebase, not isolated testing
of these nine patches. Individual patch test details are retained.
For this rebase, SMP and UP builds and QEMU SS-20 fork/COW smoke tests
passed both with and without the Viking companion. Validation builds
included the separate PIL and IPI fixes, which are not in this series.
Codex assisted with the rebase, review, validation and cover-letter
preparation.
Magnus Lindholm (9):
sparc32: inspect every PROM CPU cache geometry
sparc32: flush the source user alias in copy_user_highpage()
sparc32: do not flush a NULL address in flush_dcache_folio
sparc32: flush the cache when a kmap_local mapping is installed
sparc32: preset modified and referenced bits in kmap PTEs
sparc32: colour-align private file mappings
sparc32: implement flush_anon_page
sparc32: retain mm_cpumask across TLB shootdowns
sparc32: enroll and order CPUs before switching address spaces
arch/sparc/include/asm/cacheflush_32.h | 6 +++
arch/sparc/include/asm/highmem.h | 21 +++++++---
arch/sparc/include/asm/page_32.h | 6 +++
arch/sparc/include/asm/switch_to_32.h | 1 -
arch/sparc/kernel/sys_sparc_32.c | 17 +++++++-
arch/sparc/mm/init_32.c | 44 ++++++++++++++++++++
arch/sparc/mm/srmmu.c | 56 ++++++++++++++++++++------
7 files changed, 130 insertions(+), 21 deletions(-)
base-commit: a9e88d617a25306fa7e532b0b8be08df778872cc
--
2.43.0
next reply other threads:[~2026-11-08 22:35 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-08 22:34 Magnus Lindholm [this message]
2026-11-08 22:34 ` [PATCH 1/9] sparc32: inspect every PROM CPU cache geometry Magnus Lindholm
2026-11-08 22:34 ` [PATCH 2/9] sparc32: flush the source user alias in copy_user_highpage() Magnus Lindholm
2026-11-08 22:34 ` [PATCH 3/9] sparc32: do not flush a NULL address in flush_dcache_folio Magnus Lindholm
2026-11-08 22:34 ` [PATCH 4/9] sparc32: flush the cache when a kmap_local mapping is installed Magnus Lindholm
2026-11-08 22:34 ` [PATCH 5/9] sparc32: preset modified and referenced bits in kmap PTEs Magnus Lindholm
2026-11-08 22:34 ` [PATCH 6/9] sparc32: colour-align private file mappings Magnus Lindholm
2026-11-08 22:34 ` [PATCH 7/9] sparc32: implement flush_anon_page Magnus Lindholm
2026-11-08 22:34 ` [PATCH 8/9] sparc32: retain mm_cpumask across TLB shootdowns Magnus Lindholm
2026-11-08 22:34 ` [PATCH 9/9] sparc32: enroll and order CPUs before switching address spaces Magnus Lindholm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261108223516.1125534-1-linmag7@gmail.com \
--to=linmag7@gmail.com \
--cc=andreas@gaisler.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=sparclinux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®