On Mon, Aug 09, 2021 at 07:44:50PM +0900, Chanho Park wrote:
From: Will Deacon will@kernel.org
commit 77ec462536a13d4b428a1eead725c4818a49f0b1 upstream. (The upstream patch was not marked as fixed but this can fix Fixes: 28b1a824a4f4 ("arm64: vdso: Substitute gettimeofday() with C implementation") sysbench memory comparison:
- Before: 3072.00 MB transferred (2601.11 MB/sec)
- After: 3072.00 MB transferred (3217.86 MB/sec)
)
We can avoid the expensive ISB instruction after reading the counter in the vDSO gettime functions by creating a fake address hazard against a dummy stack read, just like we do inside the kernel.
Fixes: 28b1a824a4f4 ("arm64: vdso: Substitute gettimeofday() with C implementation") Signed-off-by: Will Deacon will@kernel.org Reviewed-by: Vincenzo Frascino vincenzo.frascino@arm.com Link: https://lore.kernel.org/r/20210318170738.7756-5-will@kernel.org Signed-off-by: Catalin Marinas catalin.marinas@arm.com CC: stable@vger.kernel.org Signed-off-by: Chanho Park chanho61.park@samsung.com
I found this regression while executing below sysbench benchmark command. It showed lower score compared with internal 4.19 version. The regression can be seen from 5.4/5.10 kernel version.
Now queued up, thanks.
greg k-h