Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] memblock tests: fix BUILD=32 address conversions and warnings
@ 2026-09-23  2:31 Tianyi Chen
  2026-09-23  2:31 ` [PATCH v2 1/4] memblock tests: use physical addresses for region removal Tianyi Chen
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Tianyi Chen @ 2026-09-23  2:31 UTC (permalink / raw)
  To: Mike Rapoport; +Cc: linux-mm, linux-kernel

Fix the BUILD=32 physical-address truncation and sign-extension failures,
and address the remaining GCC warnings reported during review.

Changes in v2:
- Use memblock_phys_free() for all synthetic physical ranges in the basic
  API tests, not only the maximum-address check.
- Keep the dummy-memory address conversion fix unchanged.
- Use __pa() in tools virt_to_phys() to avoid a pointer-size warning and
  sign extension of 32-bit pointers with their top bit set.
- Initialize end_rgn to avoid GCC's maybe-uninitialized warning.

Clang BUILD=32 without NUMA also passes on v1 (189 checks). The earlier
cover letter only mentioned the NUMA-enabled configuration tested then.

Validated v2 with GCC 13.3.0 and Clang 18.1.3, retaining the default ASan
and UBSan flags and adding -Werror. Both compilers build without warnings
and pass ./main -v and ./main -m -v in each configuration:
- Default and NUMA=1.
- BUILD=32, with and without NUMA=1.
- 32BIT_PHYS_ADDR_T=1, with and without NUMA=1.
- BUILD=32 NUMA=1 MEMBLOCK_DEBUG=1.

Each run passes 189 checks without NUMA or 272 with NUMA, including both
allocation directions. A separate virt_to_phys() boundary check passes
with both compilers in 32- and 64-bit builds; GCC BUILD=32 failed it on
v1 for 0x80000000 due to sign extension.

v1: https://lore.kernel.org/r/20260916161105.2548281-1-hi@tychen.cc

Tianyi Chen (4):
  memblock tests: use physical addresses for region removal
  memblock tests: zero-extend simulated memory addresses
  tools: use __pa() in virt_to_phys()
  memblock: initialize the region merge end index

 mm/memblock.c                            |  2 +-
 tools/include/linux/mm.h                 |  2 +-
 tools/testing/memblock/tests/basic_api.c | 20 ++++++++++----------
 tools/testing/memblock/tests/common.c    |  6 +++---
 4 files changed, 15 insertions(+), 15 deletions(-)


base-commit: 5728d3523f12826a2b180c1c5738f74e33197e14
-- 
2.55.0



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-09-24  7:59 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-23  2:31 [PATCH v2 0/4] memblock tests: fix BUILD=32 address conversions and warnings Tianyi Chen
2026-09-23  2:31 ` [PATCH v2 1/4] memblock tests: use physical addresses for region removal Tianyi Chen
2026-09-23  2:31 ` [PATCH v2 2/4] memblock tests: zero-extend simulated memory addresses Tianyi Chen
2026-09-23  2:31 ` [PATCH v2 3/4] tools: use __pa() in virt_to_phys() Tianyi Chen
2026-09-23  2:31 ` [PATCH v2 4/4] memblock: initialize the region merge end index Tianyi Chen
2026-09-24  7:57 ` [PATCH v2 0/4] memblock tests: fix BUILD=32 address conversions and warnings Mike Rapoport

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox