public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [kvm-unit-tests PATCH v1 1/1] s390x: edat: test 2G large page spanning end of memory
@ 2024-10-01 11:36 Claudio Imbrenda
  2024-10-02 14:25 ` Nico Boehr
  2024-10-02 15:27 ` Nico Boehr
  0 siblings, 2 replies; 5+ messages in thread
From: Claudio Imbrenda @ 2024-10-01 11:36 UTC (permalink / raw)
  To: kvm; +Cc: nrb, frankja, borntraeger, david, thuth, linux-s390

Create a region 3 table with fc=1 (i.e. a 2G large page) mapping across the
end of memory.

Check that the part of the large page before the end of memory is accessible,
and the part that is after the end of memory is not.

Also fix a typo in the existing edat2 test.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
---
 s390x/edat.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/s390x/edat.c b/s390x/edat.c
index 16138397..1f582efc 100644
--- a/s390x/edat.c
+++ b/s390x/edat.c
@@ -196,6 +196,8 @@ static void test_edat1(void)
 
 static void test_edat2(void)
 {
+	uint64_t mem_end, i;
+
 	report_prefix_push("edat2");
 	p[0] = 42;
 
@@ -206,7 +208,21 @@ static void test_edat2(void)
 	/* Prefixing should not work with huge pages, just like large pages */
 	report(!memcmp(0, VIRT(prefix_buf), LC_SIZE) &&
 		!memcmp(prefix_buf, VIRT(0), LC_SIZE),
-		"pmd, large, prefixing");
+		"pud, large, prefixing");
+
+	mem_end = get_ram_size();
+	if (mem_end >= BIT_ULL(REGION3_SHIFT)) {
+		report_skip("pud spanning end of memory");
+	} else {
+		for (i = 0; i < mem_end; i += PAGE_SIZE)
+			READ_ONCE(*(uint64_t *)VIRT(i));
+		for (i = mem_end; i < BIT_ULL(REGION3_SHIFT); i += PAGE_SIZE) {
+			expect_pgm_int();
+			READ_ONCE(*(uint64_t *)VIRT(i));
+			assert(clear_pgm_int() == PGM_INT_CODE_ADDRESSING);
+		}
+		report_pass("pud spanning end of memory");
+	}
 
 	report_prefix_pop();
 }
-- 
2.46.2


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

end of thread, other threads:[~2024-10-02 15:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-01 11:36 [kvm-unit-tests PATCH v1 1/1] s390x: edat: test 2G large page spanning end of memory Claudio Imbrenda
2024-10-02 14:25 ` Nico Boehr
2024-10-02 14:31   ` Claudio Imbrenda
2024-10-02 14:51     ` Nico Boehr
2024-10-02 15:27 ` Nico Boehr

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