[PATCH v7 0/7] x86: memcpy() / memset() (non-)ERMS flavors plus fallout

Jan Beulich posted 7 patches 5 months, 2 weeks ago
Failed in applying to current master (apply log)
[PATCH v7 0/7] x86: memcpy() / memset() (non-)ERMS flavors plus fallout
Posted by Jan Beulich 5 months, 2 weeks ago
While the performance varies quite a bit on older (pre-ERMS) and newer
(ERMS) hardware, so far we've been going with just a single flavor of
these two functions, and oddly enough with ones not consistent with one
another. Using plain memcpy() / memset() on MMIO (video frame buffer)
is generally okay, but the ERMS variant of memcpy() turned out to
regress (boot) performance in a way easily visible to the human eye
(meanwhile addressed by using ioremap_wc() there).

1: x86: suppress ERMS for internal use when MISC_ENABLE.FAST_STRING is clear
2: x86/alternatives: serialize after (self-)modifying code
3: x86: re-work memset()
4: x86: re-work memcpy()
5: x86: control memset() and memcpy() inlining
6: x86: introduce "hot" and "cold" page clearing functions
7: mm: allow page scrubbing routine(s) to be arch controlled

Jan
Re: [PATCH v7 0/7] x86: memcpy() / memset() (non-)ERMS flavors plus fallout
Posted by Jan Beulich 5 months ago
On 02.07.2025 14:10, Jan Beulich wrote:
> While the performance varies quite a bit on older (pre-ERMS) and newer
> (ERMS) hardware, so far we've been going with just a single flavor of
> these two functions, and oddly enough with ones not consistent with one
> another. Using plain memcpy() / memset() on MMIO (video frame buffer)
> is generally okay, but the ERMS variant of memcpy() turned out to
> regress (boot) performance in a way easily visible to the human eye
> (meanwhile addressed by using ioremap_wc() there).
> 
> 1: x86: suppress ERMS for internal use when MISC_ENABLE.FAST_STRING is clear
> 2: x86/alternatives: serialize after (self-)modifying code
> 3: x86: re-work memset()
> 4: x86: re-work memcpy()
> 5: x86: control memset() and memcpy() inlining
> 6: x86: introduce "hot" and "cold" page clearing functions
> 7: mm: allow page scrubbing routine(s) to be arch controlled

This series now again having all necessary R-b (Jason - thanks!), I'm
intending to commit it early next week unless I hear substantial arguments
to the contrary.

Jan