[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 7/7] mm: allow page scrubbing routine(s) to be arch controlled
- To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Jason Andryuk <jason.andryuk@xxxxxxx>
- Date: Wed, 25 Jun 2025 09:19:47 -0400
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gNtbdsYLSFUeeiPyzWY36IScq6lgYjc2TQMbGxRaukg=; b=ee1/OiKN6a+qyaqUEOOyoFqiWmEIx4YheNp5ASWKmeEeQOQXJZBLG7SnHemErp8QqtNms/z/OKVW1SxpqJSXVTQmVqz4oPCp6DpI2as8j6Hl6KTzoXYVTfDRXDLmlk/2P2gJUeopfXgiXECpFgncQqtQ1Ju9MezYhsLL/esxCcJrdj7wcUo++F4P+mY61WG1W9wb0DSdE+M+FTwuN1RL58aAVYgVJYpfx/TIoGFNlB53eoDX0eydqDLsLYMMkL3wiLJyJyTfwOz45ilLxHOb9kVVACQ0ac7fHnGMvAuV+h/+8RVeK05RLL6e7dOmYYvvi/7jMHuQ4m4TXF4TOYp5hQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H+8qn4k01HRV7gla74GZD4VyrYhS1Qtw0aoWd2LBj6rtledNX2GBE/7r6n1umCf3scwnQd6GBSQckBwRt84NKh8SO7WOz7ISLZs9+5oqsgphIVVPU4sXtYEUbRbvFSHn4hkZbpLIKj8MN0jILxS7Zb6k03sI7wPow6rC7fL2bLZVvJ96svkFrgxpFJB7+IUtFEXcJ5R6FJ+VgyUd2UjUjBR0ekqdtC8pMHCtc1Y31Ky3i+b7ba2096vrT7iPqjg39u5MYbkpqUuMlZpJDz5Egwe85bAu+SXq5tgfdYKF/sDcaGt+rDp6DrOc6GZVrF2Ixtkk+24CHrA0pKEnKz0dNg==
- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Volodymyr Babchuk <volodymyr_babchuk@xxxxxxxx>, Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>, Shawn Anastasio <sanastasio@xxxxxxxxxxxxxxxxxxxxx>
- Delivery-date: Wed, 25 Jun 2025 13:20:05 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 2025-06-25 06:27, Jan Beulich wrote:
On 16.06.2025 15:02, Jan Beulich wrote:
--- /dev/null
+++ b/xen/arch/x86/scrub_page.S
@@ -0,0 +1,39 @@
+ .file __FILE__
+
+#include <asm/asm_defns.h>
+#include <xen/page-size.h>
+#include <xen/scrub.h>
+
+FUNC(scrub_page_cold)
+ mov $PAGE_SIZE/32, %ecx
+ mov $SCRUB_PATTERN, %rax
+
+0: movnti %rax, (%rdi)
+ movnti %rax, 8(%rdi)
+ movnti %rax, 16(%rdi)
+ movnti %rax, 24(%rdi)
+ add $32, %rdi
+ sub $1, %ecx
+ jnz 0b
+
+ sfence
+ ret
+END(scrub_page_cold)
+
+ .macro scrub_page_stosb
+ mov $PAGE_SIZE, %ecx
+ mov $SCRUB_BYTE_PATTERN, %eax
+ rep stosb
+ ret
+ .endm
+
+ .macro scrub_page_stosq
+ mov $PAGE_SIZE/8, %ecx
+ mov $SCRUB_PATTERN, %rax
+ rep stosq
+ ret
+ .endm
+
+FUNC(scrub_page_hot)
+ ALTERNATIVE scrub_page_stosq, scrub_page_stosb, X86_FEATURE_ERMS
+END(scrub_page_hot)
Bah, I've noticed only now that I failed to do the ret -> RET conversion here
during the most recent re-basing.
Good job catching that. My R-b still applies with the RET fixup.
Regards,
Jason
|