From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73] helo=mx1.redhat.com) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1f8hAU-0004tR-RJ for speck@linutronix.de; Wed, 18 Apr 2018 09:06:15 +0200 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E77678DC2E for ; Wed, 18 Apr 2018 07:06:06 +0000 (UTC) Received: from washington.bos.jonmasters.org (ovpn-125-161.rdu2.redhat.com [10.10.125.161]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A715A20BC8C7 for ; Wed, 18 Apr 2018 07:06:06 +0000 (UTC) Subject: [MODERATED] Re: GPZv4 From: Jon Masters References: <20180417193105.GD3890@pd.tnic> <476c3e0b-dde6-6e6b-2054-6e71fa2c396b@redhat.com> <20180417203717.GF3890@pd.tnic> <47b619bf-8d07-c465-9017-583cf5ac80ee@redhat.com> <67ef414c-f57c-0300-973b-f8898ee4d3b1@redhat.com> <20180418024816.GA6450@localhost.localdomain> Message-ID: <7c8ea99e-b054-da53-952a-bd4e7a28d247@redhat.com> Date: Wed, 18 Apr 2018 03:06:05 -0400 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="pGix3EEjDLBpMptAaiMi0W8fk9OuUNQ30"; protected-headers="v1" To: speck@linutronix.de List-ID: This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156) --pGix3EEjDLBpMptAaiMi0W8fk9OuUNQ30 Content-Type: multipart/mixed; boundary="------------C80805459C7C58E3EE39CA74" Content-Language: en-US This is a multi-part message in MIME format. --------------C80805459C7C58E3EE39CA74 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 04/17/2018 11:44 PM, Jon Masters wrote: > On 04/17/2018 10:48 PM, speck for Konrad Rzeszutek Wilk wrote: >> 2). SBB vs MDD vs SBBD. >> >> MDD =3D Memory Disambiguation Disable >> SBB =3D Speculative Store Bypass >> SBBD =3D Speculative Store Bypass Disable >> >> Thomas likes 'MDD', Jon likes 'SBB', but he is also fine with 'SBBD'. >=20 > I'm refactoring your patches to recognize either "mdd" or "ssbd" (doubl= e > s, not sbb :) ) on x86 and then other arches can target the latter one.= Attached the refactored set with all of my suggestions incorporated. Lightly tested so far on a Coffeelake with updated microcode. Confirmed that the settings are correct using rdmsr from userspace, etc. Will do further testing (including some VMs) later today. Do whatever you think is best Konrad and I'll followup to your next official posting now that I'm on the list with any further feedback. Jon. --=20 Computer Architect | Sent from my Fedora powered laptop --------------C80805459C7C58E3EE39CA74 Content-Type: application/x-compressed-tar; name="mdd.v1.4.0.tgz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="mdd.v1.4.0.tgz" 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 --------------C80805459C7C58E3EE39CA74-- --pGix3EEjDLBpMptAaiMi0W8fk9OuUNQ30--