linux_dsm_epyc7002/arch
Fenghua Yu 33823f4d63 x86/cpufeatures: Enumerate MOVDIRI instruction
MOVDIRI moves doubleword or quadword from register to memory through
direct store which is implemented by using write combining (WC) for
writing data directly into memory without caching the data.

Programmable agents can handle streaming offload (e.g. high speed packet
processing in network). Hardware implements a doorbell (tail pointer)
register that is updated by software when adding new work-elements to
the streaming offload work-queue.

MOVDIRI can be used as the doorbell write which is a 4-byte or 8-byte
uncachable write to MMIO. MOVDIRI has lower overhead than other ways
to write the doorbell.

Availability of the MOVDIRI instruction is indicated by the presence of
the CPUID feature flag MOVDIRI(CPUID.0x07.0x0:ECX[bit 27]).

Please check the latest Intel Architecture Instruction Set Extensions
and Future Features Programming Reference for more details on the CPUID
feature MOVDIRI flag.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Ashok Raj <ashok.raj@intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ravi V Shankar <ravi.v.shankar@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1540418237-125817-2-git-send-email-fenghua.yu@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-10-25 07:42:48 +02:00
..
alpha Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2018-08-24 09:25:39 -07:00
arc First batch of dma-mapping changes for 4.20: 2018-10-22 18:16:03 +01:00
arm Merge branch 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 17:54:58 +01:00
arm64 Merge branch 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 17:54:58 +01:00
c6x dma-mapping: merge direct and noncoherent ops 2018-09-20 09:01:15 +02:00
h8300 Kbuild updates for v4.19 (2nd) 2018-08-25 13:40:38 -07:00
hexagon First batch of dma-mapping changes for 4.20: 2018-10-22 18:16:03 +01:00
ia64 Miscellaneous ia64 fixes from Christoph 2018-10-23 11:06:43 +01:00
m68k First batch of dma-mapping changes for 4.20: 2018-10-22 18:16:03 +01:00
microblaze dma-mapping: consolidate the dma mmap implementations 2018-09-20 09:01:16 +02:00
mips This is the bulk of GPIO changes for the v4.20 series: 2018-10-23 08:45:05 +01:00
nds32 dma-mapping: merge direct and noncoherent ops 2018-09-20 09:01:15 +02:00
nios2 dma-mapping: merge direct and noncoherent ops 2018-09-20 09:01:15 +02:00
openrisc dma-mapping: merge direct and noncoherent ops 2018-09-20 09:01:15 +02:00
parisc First batch of dma-mapping changes for 4.20: 2018-10-22 18:16:03 +01:00
powerpc libnvdimm/dax 4.19-rc8 2018-10-14 08:34:31 +02:00
riscv RISCV: Fix end PFN for low memory 2018-10-02 12:50:01 -07:00
s390 Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 13:08:53 +01:00
sh regulator: Regulator updates for next release 2018-10-23 01:54:44 +01:00
sparc First batch of dma-mapping changes for 4.20: 2018-10-22 18:16:03 +01:00
um ubd: remove use of blk_rq_map_sg 2018-10-18 15:13:12 -06:00
unicore32 unicore32: remove swiotlb support 2018-09-30 16:07:35 -07:00
x86 x86/cpufeatures: Enumerate MOVDIRI instruction 2018-10-25 07:42:48 +02:00
xtensa Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 13:08:53 +01:00
.gitignore
Kconfig jump_label: Implement generic support for relative references 2018-09-27 17:56:47 +02:00