Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758103AbcJYFbD (ORCPT ); Tue, 25 Oct 2016 01:31:03 -0400 Received: from mail-vk0-f68.google.com ([209.85.213.68]:36477 "EHLO mail-vk0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755591AbcJYFbA (ORCPT ); Tue, 25 Oct 2016 01:31:00 -0400 MIME-Version: 1.0 In-Reply-To: <20161019020333.3766-1-khuey@kylehuey.com> References: <20161019020333.3766-1-khuey@kylehuey.com> From: Kyle Huey Date: Mon, 24 Oct 2016 22:30:58 -0700 Message-ID: Subject: Re: [PATCH v7 0/6] x86/arch_prctl Add ARCH_[GET|SET]_CPUID for controlling the CPUID instruction To: "Robert O'Callahan" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" , Jeff Dike , Richard Weinberger , Andy Lutomirski , Borislav Petkov , Dmitry Safonov , Peter Zijlstra , Dave Hansen , Boris Ostrovsky , Alexander Viro , Shuah Khan , "Rafael J. Wysocki" , Len Brown Cc: open list , "open list:USER-MODE LINUX (UML)" , "open list:USER-MODE LINUX (UML)" , "open list:KERNEL SELFTEST FRAMEWORK" , Linux API Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1244 Lines: 34 On Tue, Oct 18, 2016 at 7:03 PM, Kyle Huey wrote: > rr (http://rr-project.org/), a userspace record-and-replay reverse- > execution debugger, would like to trap and emulate the CPUID instruction. > This would allow us to a) mask away certain hardware features that rr does > not support (e.g. RDRAND) and b) enable trace portability across machines > by providing constant results. > > Newer Intel CPUs (Ivy Bridge and later) can fault when CPUID is executed at > CPL > 0. Expose this capability to userspace as a new pair of arch_prctls, > ARCH_GET_CPUID and ARCH_SET_CPUID, with two values, ARCH_CPUID_ENABLE and > ARCH_CPUID_SIGSEGV. > > v6 did not get any feedback, so I included the changes since v5. > > Since v6: > - Rebased to 4.9-rc1 (primarily over the new VDSO arch_prctls and the new pkey > entries in the syscall table) > > Since v5: > > Patch 3: > - do_arch_prctl is again do_arch_prctl_common > > Patch 6: > - Added static qualifiers on get/set_cpuid_mode > - Braced ifs in disable/enable_cpuid > - Renamed arch_post_exec to arch_setup_new_exec > A friendly ping. Has anybody had an opportunity to look at this patch series again? Any feedback, positive or negative, would be greatly appreciated. - Kyle