On Tue, Jul 24, 2018 at 07:37:28PM -0700, Cannon Matthews wrote: > diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S > index 88acd349911b..81a39804ac72 100644 > --- a/arch/x86/lib/clear_page_64.S > +++ b/arch/x86/lib/clear_page_64.S > @@ -49,3 +49,23 @@ ENTRY(clear_page_erms) > ret > ENDPROC(clear_page_erms) > EXPORT_SYMBOL_GPL(clear_page_erms) > + > +/* > + * Zero memory using non temporal stores, bypassing the cache. > + * Requires an `sfence` (wmb()) afterwards. > + * %rdi - destination. > + * %rsi - page size. Must be 64 bit aligned. > +*/ > +ENTRY(__clear_page_nt) > + leaq (%rdi,%rsi), %rdx > + xorl %eax, %eax > + .p2align 4,,10 > + .p2align 3 > +.L2: > + movnti %rax, (%rdi) > + addq $8, %rdi > + cmpq %rdx, %rdi > + jne .L2 > + ret > +ENDPROC(__clear_page_nt) > +EXPORT_SYMBOL(__clear_page_nt) EXPORT_SYMBOL_GPL like the other functions in that file. -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. --