From: Ross Zwisler <ross.zwisler@linux.intel.com>
To: linux-kernel@vger.kernel.org
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>,
H Peter Anvin <h.peter.anvin@intel.com>,
Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
David Airlie <airlied@linux.ie>,
dri-devel@lists.freedesktop.org, x86@kernel.org
Subject: [PATCH 0/6] add support for new persistent memory instructions
Date: Tue, 11 Nov 2014 11:43:10 -0700 [thread overview]
Message-ID: <1415731396-19364-1-git-send-email-ross.zwisler@linux.intel.com> (raw)
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.18-rc4.
Here are some things of note:
- As with the clflushopt patches before this, I'm assuming that the addressing
mode generated by the original clflush instruction will match the new
clflush instruction with the 0x66 prefix for clflushopt, and for the
xsaveopt instruction with the 0x66 prefix for clwb. For all the test cases
that I've come up with and for the new clwb code generated by this patch
series, this has proven to be true on my test machine.
- According to the SDM, xsaveopt has a form where it has a REX.W prefix. I
believe that this prefix will not be generated by gcc in x86_64 kernel code.
Based on this, I don't believe I need to account for this extra prefix when
dealing with the assembly language created for clwb. Please correct me if
I'm wrong.
- The last three patches in this series update existing uses of clflushopt to
use clwb instead. The assertion is that clwb is preferable to clflushopt in
these cases because after a clwb the cache line will be clean and ready for
eviction, but that there is a possibility that it might be referenced again
in the future while it is still in the CPU cache, giving us a performance
boost.
Cc: H Peter Anvin <h.peter.anvin@intel.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel@lists.freedesktop.org
Cc: x86@kernel.org
Ross Zwisler (6):
x86: Add support for the pcommit instruction
x86/alternative: Add alternative_io_2
x86: Add support for the clwb instruction
x86: Use clwb in clflush_cache_range
x86: Use clwb in drm_clflush_page
x86: Use clwb in drm_clflush_virt_range
arch/x86/include/asm/alternative.h | 14 ++++++++++++++
arch/x86/include/asm/cpufeature.h | 2 ++
arch/x86/include/asm/special_insns.h | 16 ++++++++++++++++
arch/x86/mm/pageattr.c | 8 ++++----
drivers/gpu/drm/drm_cache.c | 12 ++++++------
5 files changed, 42 insertions(+), 10 deletions(-)
--
1.9.3
next reply other threads:[~2014-11-11 18:43 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-11 18:43 Ross Zwisler [this message]
2014-11-11 18:43 ` [PATCH 1/6] x86: Add support for the pcommit instruction Ross Zwisler
2014-11-13 3:25 ` Andy Lutomirski
2014-11-14 21:07 ` Ross Zwisler
2014-11-14 21:09 ` Andy Lutomirski
2014-11-11 18:43 ` [PATCH 2/6] x86/alternative: Add alternative_io_2 Ross Zwisler
2014-11-11 18:43 ` [PATCH 3/6] x86: Add support for the clwb instruction Ross Zwisler
2014-11-11 19:12 ` Borislav Petkov
2014-11-11 19:19 ` Borislav Petkov
2014-11-11 19:19 ` Borislav Petkov
2014-11-11 19:40 ` Ross Zwisler
2014-11-11 19:46 ` Borislav Petkov
2014-11-11 19:46 ` Borislav Petkov
2014-11-11 19:54 ` Ross Zwisler
2014-11-11 19:48 ` Ross Zwisler
2014-11-11 19:54 ` Borislav Petkov
2014-11-11 19:54 ` Borislav Petkov
2014-11-12 12:39 ` Borislav Petkov
2014-11-12 12:39 ` Borislav Petkov
2014-11-12 13:38 ` Anvin, H Peter
2014-11-12 14:12 ` Borislav Petkov
2014-11-12 14:12 ` Borislav Petkov
2014-11-13 17:47 ` Ross Zwisler
2014-11-11 18:43 ` [PATCH 4/6] x86: Use clwb in clflush_cache_range Ross Zwisler
2014-11-11 18:43 ` [PATCH 5/6] x86: Use clwb in drm_clflush_page Ross Zwisler
2014-11-11 18:43 ` [PATCH 6/6] x86: Use clwb in drm_clflush_virt_range Ross Zwisler
2014-11-13 3:14 ` Andy Lutomirski
2014-11-13 11:20 ` Borislav Petkov
2014-11-13 11:20 ` Borislav Petkov
2014-11-13 16:38 ` Andy Lutomirski
2014-11-13 17:11 ` Borislav Petkov
2014-11-13 17:11 ` Borislav Petkov
2014-11-13 17:33 ` Ville Syrjälä
2014-11-13 17:47 ` Borislav Petkov
2014-11-13 17:47 ` Borislav Petkov
2014-11-13 18:14 ` Ville Syrjälä
2014-11-13 18:14 ` Ville Syrjälä
2014-11-13 18:43 ` Ville Syrjälä
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1415731396-19364-1-git-send-email-ross.zwisler@linux.intel.com \
--to=ross.zwisler@linux.intel.com \
--cc=airlied@linux.ie \
--cc=dri-devel@lists.freedesktop.org \
--cc=h.peter.anvin@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.