Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965014AbcKWOz1 (ORCPT ); Wed, 23 Nov 2016 09:55:27 -0500 Received: from mx2.suse.de ([195.135.220.15]:49162 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S938670AbcKWOxw (ORCPT ); Wed, 23 Nov 2016 09:53:52 -0500 Date: Wed, 23 Nov 2016 15:05:21 +0100 From: Borislav Petkov To: Henrique de Moraes Holschuh Cc: "Luck, Tony" , Andi Kleen , Ashok Raj , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] x86/mce: Include the PPIN in machine check records when it is available Message-ID: <20161123140521.gkjl7vnvaneef7hv@pd.tnic> References: <878tsg67r3.fsf@tassilo.jf.intel.com> <1479491316-11716-1-git-send-email-tony.luck@intel.com> <20161123114855.njguoaygp3qnbkia@pd.tnic> <20161123132951.GA9373@khazad-dum.debian.net> <20161123133723.vyi7bv46h3pulldc@pd.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20161123133723.vyi7bv46h3pulldc@pd.tnic> User-Agent: NeoMutt/20161014 (1.7.1) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1268 Lines: 42 On Wed, Nov 23, 2016 at 02:37:23PM +0100, Borislav Petkov wrote: > You can't reenable it: > > "LockOut (R/WO) > Set 1 to prevent further writes to MSR_PPIN_CTL. Writing 1 to > MSR_PPINCTL[bit 0] is permitted only if MSR_PPIN_CTL[bit 1] is > clear, Default is 0." Well, almost. "Enable_PPIN (R/W) If 1, enables MSR_PPIN to be accessible using RDMSR. Once set, attempt to write 1 to MSR_PPIN_CTL[bit 0] will cause #GP. If 0, an attempt to read MSR_PPIN will cause #GP. Default is 0." Frankly, I don't get what the deal behind that locking out is. And it says that BIOS should provide an opt-in so that agent can read the PPIN and then that agent should *disable* it again by writing 01b to the CTL MSR. But then the first paragraph above says that the write MSR_PPIN_CTL[0]=1b will #GP because MSR_PPIN_CTL[1] will be 1 for the agent to read out MSR_PPIN first. I guess we need to write a 00b first to disable PPIN and then write 01b to lock it out. So AFAIU, the steps will be: * BIOS writes 10b * agent reads MSR_PPIN * agent writes 00b to disable MSR_PPIN * agent writes 01b because bit 1 is clear now and it won't #GP. Meh... -- Regards/Gruss, Boris. SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) --