From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD688C4361B for ; Wed, 9 Dec 2020 12:23:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AB8FB23BE5 for ; Wed, 9 Dec 2020 12:23:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731581AbgLIMXN (ORCPT ); Wed, 9 Dec 2020 07:23:13 -0500 Received: from mx2.suse.de ([195.135.220.15]:53306 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730948AbgLIMXM (ORCPT ); Wed, 9 Dec 2020 07:23:12 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1607516545; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=d6BLSrmEsvAmBCGh/lx0C5ZfrqtSEHsMuHBG2XnZ/Ro=; b=ncPpEGPcbHUJafnkDYQ/1H+ADDcCm5mL63ULlOfqMBhAnbc4yg/Gky2O5504x9o/tZrBrw DP7jhSJhM4Fpz8OxbijA5E0XwoPASgyWTUDdc+ATpiMeMmSQpO0kHNOkr8o9+l+8OPlFsh ixuwSO3VZGgWks6WWKL58SRm0h4vXUU= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 2AE30ACEB; Wed, 9 Dec 2020 12:22:25 +0000 (UTC) To: Borislav Petkov Cc: xen-devel@lists.xenproject.org, x86@kernel.org, linux-kernel@vger.kernel.org, peterz@infradead.org, luto@kernel.org, Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" References: <20201120114630.13552-1-jgross@suse.com> <20201120114630.13552-8-jgross@suse.com> <20201208184315.GE27920@zn.tnic> <2510752e-5d3d-f71c-8a4c-a5d2aae0075e@suse.com> <20201209120307.GB18203@zn.tnic> From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= Subject: Re: [PATCH v2 07/12] x86: add new features for paravirt patching Message-ID: <9e989b07-84e8-b07b-ba6e-c2a3ed19d7b1@suse.com> Date: Wed, 9 Dec 2020 13:22:24 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <20201209120307.GB18203@zn.tnic> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="qobO3V9L9yPkUmsoDuHQESsEkFOc5p2K2" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --qobO3V9L9yPkUmsoDuHQESsEkFOc5p2K2 Content-Type: multipart/mixed; boundary="j7y3yD5DTlqLcvANFz2bK4alg1dWK3UG5"; protected-headers="v1" From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= To: Borislav Petkov Cc: xen-devel@lists.xenproject.org, x86@kernel.org, linux-kernel@vger.kernel.org, peterz@infradead.org, luto@kernel.org, Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" Message-ID: <9e989b07-84e8-b07b-ba6e-c2a3ed19d7b1@suse.com> Subject: Re: [PATCH v2 07/12] x86: add new features for paravirt patching References: <20201120114630.13552-1-jgross@suse.com> <20201120114630.13552-8-jgross@suse.com> <20201208184315.GE27920@zn.tnic> <2510752e-5d3d-f71c-8a4c-a5d2aae0075e@suse.com> <20201209120307.GB18203@zn.tnic> In-Reply-To: <20201209120307.GB18203@zn.tnic> --j7y3yD5DTlqLcvANFz2bK4alg1dWK3UG5 Content-Type: multipart/mixed; boundary="------------CA72DA38978A6BC0090784A9" Content-Language: en-US This is a multi-part message in MIME format. --------------CA72DA38978A6BC0090784A9 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable On 09.12.20 13:03, Borislav Petkov wrote: > On Wed, Dec 09, 2020 at 08:30:53AM +0100, J=C3=BCrgen Gro=C3=9F wrote: >> Hey, I already suggested to use ~FEATURE for that purpose (see >> https://lore.kernel.org/lkml/f105a63d-6b51-3afb-83e0-e899ea40813e@suse= =2Ecom/ >=20 > Great minds think alike! >=20 > :-P >=20 >> I'd rather make the syntax: >> >> ALTERNATIVE_TERNARY >> = >> >> as this ... >=20 > Sure, that is ok too. >=20 >> ... would match perfectly to this interpretation. >=20 > Yap. >=20 >> Hmm, using flags is an alternative (pun intended :-) ). >=20 > LOL! >=20 > Btw, pls do check how much the vmlinux size of an allyesconfig grows > with this as we will be adding a byte per patch site. Not that it would= > matter too much - the flags are a long way a comin'. :-) >=20 >> No, this is needed for non-Xen cases, too (especially pv spinlocks). >=20 > I see. >=20 >>> Can you give an example here pls why the paravirt patching needs to r= un >>> first? >> >> Okay. >=20 > I meant an example for me to have a look at. :) >=20 > If possible pls. Ah, okay. Lets take the spin_unlock() case. With patch 11 of the series this is PVOP_ALT_VCALLEE1(lock.queued_spin_unlock, lock, "movb $0, (%%" _ASM_ARG1 ");", X86_FEATURE_NO_PVUNLOCK); which boils down to ALTERNATIVE "call *lock.queued_spin_unlock" "movb $0,(%rdi)" X86_FEATURE_NO_PVUNLOCK= The initial (paravirt) code is an indirect call in order to allow spin_unlock() before paravirt/alternative patching takes place. Paravirt patching will then replace the indirect call with a direct call to the correct unlock function. Then alternative patching might replace the direct call to the bare metal unlock with a plain "movb $0,(%rdi)" in case pvlocks are not enabled. In case alternative patching would occur first, the indirect call might be replaced with the "movb ...", and then paravirt patching would clobber that with the direct call, resulting in the bare metal optimization being removed again. Juergen --------------CA72DA38978A6BC0090784A9 Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc" -----BEGIN PGP PUBLIC KEY BLOCK----- xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOBy= cWx w3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJvedYm8O= f8Z d621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y= 9bf IhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xq= G7/ 377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR= 3Jv c3MgPGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDA= QIe AQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4FUGNQH2lvWAUy+dnyT= hpw dtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3TyevpB0CA3dbBQp0OW0fgCetToGIQrg0= MbD 1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbv= oPH Z8SlM4KWm8rG+lIkGurqqu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v= 5QL +qHI3EIPtyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVyZ= 2Vu IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJCAcDAgEGFQgCC= QoL BBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4RF7HoZhPVPogNVbC4YA6lW7Dr= Wf0 teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz78X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC= /nu AFVGy+67q2DH8As3KPu0344TBDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0Lh= ITT d9jLzdDad1pQSToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLm= XBK 7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkMnQfvUewRz= 80h SnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMBAgAjBQJTjHDXAhsDBwsJC= AcD AgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJn= FOX gMLdBQgBlVPO3/D9R8LtF9DBAFPNhlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1= jnD kfJZr6jrbjgyoZHiw/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0= N51 N5JfVRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwPOoE+l= otu fe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK/1xMI3/+8jbO0tsn1= tqS EUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuZGU+wsB5BBMBAgAjBQJTjHDrA= hsD BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3= g3O ZUEBmDHVVbqMtzwlmNC4k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5= dM7 wRqzgJpJwK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu5= D+j LRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzBTNh30FVKK1Evm= V2x AKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37IoN1EblHI//x/e2AaIHpzK5h88N= Eaw QsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpW= nHI s98ndPUDpnoxWQugJ6MpMncr0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZR= wgn BC5mVM6JjQ5xDk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNV= bVF LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mmwe0icXKLk= pEd IXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0Iv3OOImwTEe4co3c1mwARA= QAB wsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMvQ/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEw= Tbe 8YFsw2V/Buv6Z4Mysln3nQK5ZadD534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1= vJz Q1fOU8lYFpZXTXIHb+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8= VGi wXvTyJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqcsuylW= svi uGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5BjR/i1DG86lem3iBDX= zXs ZDn8R38=3D =3D2wuH -----END PGP PUBLIC KEY BLOCK----- --------------CA72DA38978A6BC0090784A9-- --j7y3yD5DTlqLcvANFz2bK4alg1dWK3UG5-- --qobO3V9L9yPkUmsoDuHQESsEkFOc5p2K2 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAl/QwYAFAwAAAAAACgkQsN6d1ii/Ey8C rwgAjKCTh8rwB+MLx5PuBMufLtRi8vf4GP26O85xV8wEvfWhch7/qy70h5Gw5A6BOCCxQLWZSINQ ufDERwJjYhLC6lWo60Twwu3XlwUy3XC3/OC2xMrCeFGb6aoPL7Cis1jgNN+Rv3sBDx5y5doXRQZI uQTYdLfiUnFW8Gow9yS0sofiHJjgcpzkF/kgft19MRGadRYH/AIJhLUko8bHBptLLkwSbqzZWKBP pXOdsFjwYHLJkCog8GqKVx4pTgBmJGuDHh9stdFY7co9u3nLz4jISxEgEoPrl/cRD+JKeTkSkiPm mVjAzQ02EJP47h09rTGf0nTohZHBTjzJVqDg/yeeLw== =MeHc -----END PGP SIGNATURE----- --qobO3V9L9yPkUmsoDuHQESsEkFOc5p2K2--