[PATCH v2 0/2] add support for new persistent memory instructions

From: Ross Zwisler
Date: Fri Jan 23 2015 - 15:40:56 EST


This patch set adds support for two new persistent memory instructions, pcommit
and clwb. These instructions were announced in the document "Intel
Architecture Instruction Set Extensions Programming Reference" with reference
number 319433-022.

https://software.intel.com/sites/default/files/managed/0d/53/319433-022.pdf

These patches apply cleanly to v3.19-rc5.

Changes from v1:

- This series no longer updates the DRM code or clflush_cache_range to use
clwb instead of clflushopt, as there was concern over whether clflushopt was
used in some cases to explicitly evict lines from the processor cache. I'll
leave it up to the owners of this code to decide how they want to use clwb.

- Reworked the clwb patch so that it doesn't use xsaveopt, as xsaveopt wasn't
included in all GCC versions that the kernel needs to support. The assembly
is now sort of complex because we need to hard code the clwb instruction to
use a known register, but we also need to pull in the parameter as a memory
constraint so that gcc doesn't reorder this instruction around other
accesses to the same memory location. Many thanks to hpa and Boris Petkov
for their help on getting this right.

Cc: H Peter Anvin <h.peter.anvin@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>

Ross Zwisler (2):
x86: Add support for the pcommit instruction
x86: Add support for the clwb instruction

arch/x86/include/asm/cpufeature.h | 2 ++
arch/x86/include/asm/special_insns.h | 20 ++++++++++++++++++++
2 files changed, 22 insertions(+)

--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/