opnsense-src/sys/amd64
Alexander Motin 6210ac95a1 amd64: Stop using REP MOVSB for backward memmove()s.
Enhanced REP MOVSB feature of CPUs starting from Ivy Bridge makes
REP MOVSB the fastest way to copy memory in most of cases. However
Intel Optimization Reference Manual says: "setting the DF to force
REP MOVSB to copy bytes from high towards low addresses will expe-
rience significant performance degradation". Measurements on Intel
Cascade Lake and Alder Lake, same as on AMD Zen3 show that it can
drop throughput to as low as 2.5-3.5GB/s, comparing to ~10-30GB/s
of REP MOVSQ or hand-rolled loop, used for non-ERMS CPUs.

This patch keeps ERMS use for forward ordered memory copies, but
removes it for backward overlapped moves where it does not work.

Reviewed by:	mjg
MFC after:	2 weeks
2022-06-16 13:46:34 -04:00
..
acpica amd64: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-06 15:46:59 -07:00
amd64 amd64: Stop using REP MOVSB for backward memmove()s. 2022-06-16 13:46:34 -04:00
conf ktls: Remove the KERN_TLS option from the i386 and amd64 LINT-NOIP kernel configurations. 2022-06-11 21:31:28 +02:00
ia32 x86: Add a NT_X86_SEGBASES register set. 2022-03-24 11:36:19 -07:00
include kasan: Create a shadow for the bootstack prior to hammer_time() 2022-06-15 11:39:10 -04:00
linux linux(4): Properly build argument list for the signal handler 2022-05-30 19:53:12 +03:00
linux32 linux(4): Properly restore the thread signal mask after signal delivery on i386 2022-05-30 20:03:49 +03:00
pci pci_cfgreg.c: Use io port config access for early boot time. 2019-04-09 18:07:17 +00:00
sgx sgx: Remove unused variable. 2022-04-07 17:01:28 -07:00
vmm vmm: move bumping VMEXIT_USERSPACE stat to the right place 2022-06-09 08:57:25 -04:00
Makefile Bring the tags and links entries for amd64 up to date. 2021-09-27 20:04:51 -07:00