From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751905AbdBBUTL (ORCPT ); Thu, 2 Feb 2017 15:19:11 -0500 Received: from mail-cys01nam02on0042.outbound.protection.outlook.com ([104.47.37.42]:3093 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751845AbdBBUTI (ORCPT ); Thu, 2 Feb 2017 15:19:08 -0500 Authentication-Results: spf=temperror (sender IP is 204.128.141.23) smtp.mailfrom=infinera.com; kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=temperror action=none header.from=infinera.com; From: Joakim Tjernlund To: "mingo@kernel.org" , "yu-cheng.yu@intel.com" CC: "linux-kernel@vger.kernel.org" , "bp@suse.de" , "tglx@linutronix.de" , "dave.hansen@linux.intel.com" , "fenghua.yu@intel.com" , "x86@kernel.org" , "hpa@zytor.com" , "mingo@redhat.com" , "luto@kernel.org" , "ravi.v.shankar@intel.com" , "haokexin@gmail.com" Subject: Re: [PATCH] x86/fpu/xstate: Fix xcomp_bv in XSAVES header Thread-Topic: [PATCH] x86/fpu/xstate: Fix xcomp_bv in XSAVES header Thread-Index: AQHSdcx9dYs40bGva0CPjwUOpLjitqFHzQOAgA7wp4A= Date: Thu, 2 Feb 2017 20:18:56 +0000 Message-ID: <1486066735.25199.12.camel@infinera.com> References: <1485212084-4418-1-git-send-email-yu-cheng.yu@intel.com> <20170124080957.GB11694@gmail.com> In-Reply-To: <20170124080957.GB11694@gmail.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.100.99.93] Content-Type: text/plain; charset="iso-8859-15" Content-ID: MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:204.128.141.23;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(39840400002)(39450400003)(39410400002)(2980300002)(24454002)(377424004)(199003)(189002)(5660300001)(38730400001)(86362001)(4326007)(39060400001)(8676002)(626004)(2906002)(229853002)(54906002)(6306002)(2950100002)(2501003)(23756003)(106466001)(6246003)(92566002)(36756003)(5001770100001)(50466002)(3846002)(6116002)(102836003)(106116001)(8936002)(356003)(305945005)(7416002)(103116003)(31430400001)(189998001)(33646002)(53416004)(47776003)(2900100001)(7736002)(7636002)(77096006)(8746002)(50986999)(246002)(76176999)(54356999);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR1001MB2377;H:owa.infinera.com;FPR:;SPF:TempError;PTR:outgoingmail1.infinera.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CO1NAM03FT023;1:jZ/MmVki579gCsTQSakERJyJYvEAEW9QhCJo7SR5L6ki1uxbqeLVcFPPBitKDvgTlXjuVXAbDHiqMFzfZVou3qA3bVnUlCuUtM7fm0sosYFLKQkuN+BMJ2403JyRHLK//Hsk1Do6I+exnmR+XE821RgNJ/Srg5vJN4Mt3phcA9lqCkD5vpIpuoUYD6hmTQY1K9qoJBmDrCeUm8KDiVp9DX91146dqbiu8CpPlIziws0LmVrrieU0g6W5ZVtldShS99O4JRPTc7SmKcTLvkRDtUaI7JC0aECs3qD3ZbTFhSvR+z4LM821uYpbBGorBSvILslhFfLo5Vcslu2xqbPMj/oCrqsQwaHsMjrck76ZAww1rLkoq/NX8u+bBu0NVx3SCODO2ytORTW1KXH/B/09MqSkMPA1vT7tsyd3rY3ZPOzkdz2hLcnUR8dyHLLhxAssBnBYi8jWHIDvr/03d6hqw9RRa3Cqeze20dcUMxIgPshASGQZ1pTzCLbxZFdTYRh38WtKEnTOCW+aYbosiak92UQOazI+aCob2UdR3njHkWn8+3W4AVPMHN8oO6iMcMwD X-MS-Office365-Filtering-Correlation-Id: 11f2ad2a-c604-4023-3652-08d44ba8b81e X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DM5PR1001MB2377; X-Microsoft-Exchange-Diagnostics: 1;DM5PR1001MB2377;3:bSoN/Paw/SIiZAsiHh/dhkL7U6FuFEF8zOjx3oDDxEJJbWWUUggsRU03IwBPlZMxJgAJ5ZNSbFixgMTsbb09T/kialEi4Pi0ZClJThyYmYW+nSriLG2zc7h/I74OS82N7wwPhFlTropecRzYaSijwlaJ201CC/CfhEY0syz/oax+soZoAThCBLDM6umI9dkxJ4BndUpCLOMCMSOAqlSo1cqjo72Lsbp2Zfvhp5fAHAgsh1RH+0OtWGXh71X24yUNZfWDM9uCuAm9tj55wDyTB5SdXa2gwq7THrqGyIk5P+LDKXEzczbOz7Cxw1CHdDhp+cfyLSPNFln6rgq+jOmivSJRfLGAnkYEUezsukTSH/5VfNghtkl5j4mKAvIzbvlI;25:NncYWtJCoLqn4NXZtcf5lc3OTe8Iw8agaO1P3U9Khnmy1WwiPyes+24yEMvr6dxJKv0lX7uTkpzRoKfZF8hE9g/dk2K3acJFeUR4kWGd+IZGR1Ii95cbB8vcaUdClYcLWJ2eeGGzDEs+op5lAWKVOLsjor+/01Cc6STG+gt8iWHxPluWxDI+crIblYXKH1G7fei+jnVFQS94RG7yUiO2SrQZTKywqg55M9yyq3rJOQRi18CSCetbQkX+KsYjtfycFssBic3XXW08+Ffi/MM+kMA/YyrktfWwWIwwn1lyynonnKyVPMsRU1YmFt5Rb9aaqdwA1L48QDJk59Z61c0pVvFKviUECx8zSI97snVxi9mYOVCayTAbtYcfXTLvoyDCTDI2METB5zAS/6jDqIXo1qUrNMO2bYDqtbklu029Y85VWDPsDiWgf/Hyjfao5gtsoCbRJwIU+FRkRSExC4HjBA== X-Microsoft-Exchange-Diagnostics: 1;DM5PR1001MB2377;31:AjWaYddOsWBeUC5mtW5h3rEjGuJepyNXAcrNERkBMFdcoC4EIFKBVW4MVSXIJV8Qbv77kwsvO0OoF4PPvoLWJf4vGzgT9QOCC0m+wWeqmmVxCWktOkuA826kdOCExomD0xh7S4mv4r0dL7bm7N4W5wfPlF5oPbKXyGrow9VitdO+R/a2x0hdwSORhsqu6RDP2nxDEqjpLxHp/JPBFgwsvKyEvvo68En7TKvZBHPG90hkiwPLmZZCt6Gcyhtc1MzfE/N023rGk3Q/8gif5MjgjQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(13018025)(13017025)(13015025)(13024025)(13023025)(3002001)(10201501046)(6041248)(20161123560025)(20161123555025)(20161123558025)(20161123562025)(20161123564025)(6072148);SRVR:DM5PR1001MB2377;BCL:0;PCL:0;RULEID:;SRVR:DM5PR1001MB2377; X-Microsoft-Exchange-Diagnostics: 1;DM5PR1001MB2377;4:7CXNhRK+FZLR7bSedgr5KALidnamSAZxpLjjwrWnAE/LeKzQby9dCX0JHtGGgCRr7fkU3llRlWDoDlAT+UcaPxedhDDCrEwFfNwVT43eobtjqQSi622z5zOXqJnp7x2oiANQ5XIdpXrmD5C2d823TjvWEsHtIdfrc8sOIbovM1RJObKSCYlB+n/dB/6kWTGoryOusPrlbQI4Zhm0bKcsWmRW339nhx4DAfMjR+aVTH0R4TUd1WE7Me/tdBIn0xqhbN+QTfDr5a5plVW7ixKh44DwH62gImZFcLhnd6kQb6dCIxtSLCeZVTroeRhsizGrJp+tIDFv2xGQgXe8UOHL+nNDS+gnexXvXzADerXMILpKo4xkZ7zKRPeUOWx7fDjR18tDyQx9S48iCLSzmXoqKRZSaiUJoeQw2ib05E4In3NcSZFiZjvMhwf9vMyCISbxy05qdZz7ztzx2u4BWzASJpG477ndHHgY2SYye/dfyruYVoVd6R1XZBVIp4W97sgmsIZfvUgSoxgvu/7cFiI4SsWdADyfKfRs0A06ICjTzdUeBowygUrCsKRAWmf/UZldgHzJfI67JsdEBE2nlTQlLWTk1TwuMBov9digUOmVhccvT0wtk5ZYXk9MSseDrPWQExt62NTVSP6m2ETdcbR5HTDFodN4MFHGAX/Hzltg4yEvG/PNQ9erp3J+/hvCvXKl2EdDtIqy7LVqPcq4ch+1czwPBKIQJ6MaicoYluriVlczJEx/GgI3juzwpy74q+ZT X-Forefront-PRVS: 02065A9E77 X-Microsoft-Exchange-Diagnostics: =?iso-8859-15?Q?1;DM5PR1001MB2377;23:M+n94we3nHUBLqwOOkJNDMBQBCixW90i6V66?= =?iso-8859-15?Q?KVN9wySnWpeGEtJKHb0tsaTIKU4M8hQ7l3yiRXR/Pzda8O7o0PpMxlRgF?= =?iso-8859-15?Q?3nP1uqllgT2EdqPuGUXb/g7Zajh4tMw95B4rAhRsEOWol8OD/rzhP/TeV?= =?iso-8859-15?Q?AxsHOoYKF8KV2fisyOE5ZkTc4UDU7sKT1kAC+rs270DTu3WjZRxBqiERN?= =?iso-8859-15?Q?GGm41nNGz2RhTNdmt0tzddp9AXP7fYXORUFcyXL4nJ8azr551yzVd2pvE?= =?iso-8859-15?Q?tY8ct6/Pq5qfB83rqGnSujkvurliX0CUJ9rJjLjYEFFtP5/PaiDZcCeLy?= =?iso-8859-15?Q?gWrkVBTNupN2LAWYFPd4m9CxsAnKqzTSLper5bDgQFfjS8H9pwdotJk+v?= =?iso-8859-15?Q?RoHMoL+ho9iTZ4tVEwtFkM6aH5kWGoYzVwFDYVmjyMnqA35zIuGZV27+o?= =?iso-8859-15?Q?NA0QuIQHYJ3n0rgNVjngOajJbBDGv2ImZMKVc2xLfk/z/i+QevFQZRsIo?= =?iso-8859-15?Q?rMpnMq46V0hodATIGjUjYXJbAtp7etGx8bVqmMyjq0Wlz8yudojhnvHE6?= =?iso-8859-15?Q?b5ZXQXNiPnAropdgUZ3ASvtKHjUGR1Ueuans5C2f/d4pRWyeMwTuOXBA+?= =?iso-8859-15?Q?2l69r+YwsBUh2dB8+ja50hiGwXCPKvUMEyYzu9Z45C5aSjt0ulk4ABAis?= =?iso-8859-15?Q?RmuCAeQuztLpXTQeE3z14VE/zr92waI6U9WJ+pnJJHh1U3c8JbdlZCGGa?= =?iso-8859-15?Q?p0wIdi4Dm+pGWs7ASTXbVdT5DjzWiBxEYd0o/Vx5aCnhi+jyK9hAlsdE1?= =?iso-8859-15?Q?VX4Bhxo3HnL8hgRIhX4WAufyB8KVR8DmEsY/DWtsjpqYxRYkdJ/VQxx/N?= =?iso-8859-15?Q?KcrPTcNAOJmLboJYpdA9yMbP+TkPKw1LOlLBjTVkjq0CNsRFNY0tv0aWK?= =?iso-8859-15?Q?D+cSkj/UPMjP+g8995ivIuw2edHmDBy71IaHOfT3NfRdDds9hef6ksQC/?= =?iso-8859-15?Q?uzDogs+yEl19vEkcnuJAVK9/9ye8l7JTl99viy/GVjKg0lQpGXJCz7f7K?= =?iso-8859-15?Q?uXszm9eYKNb0qPJKeV2HJuFO/+88j3npfnnY/QeUiXkwBPK33aGqiresr?= =?iso-8859-15?Q?vbhSGkVtsftG0//Tiid7sQaDNyGckLg85Aufbk1xjc+P3BssVLd4znZyW?= =?iso-8859-15?Q?JBrnsPE+JTtB1qha3QQkMbD0o3nmZDLHJ8hUvetcLtYuxbGl6HRnYEHvT?= =?iso-8859-15?Q?NzVxJTDcVUgH6TuaKdVfGyXx8bXBPTph6e/EiytYe4oaLSM34PO0T4Pxb?= =?iso-8859-15?Q?PynWmlj4q/ieRnOXExm7NN/P6aaNT/ztGnZJxlaAxEEw0Ym?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR1001MB2377;6:+lC26qY5ysGJYCROFRiIO6KwnTXVPd4+6OS5qfw03fUwqr5E+HBFzMIaAmqXxuc3pQL0vmELdKmqmaBFBaTwfMsPgS1npYMsyHQweydqhVv+YqnvIBMV3VR3KQ3ZMHyDruJfpOQOhW7DFqS47smbH9xPSrB0mZldoqpHGbXam8ZFxuqq+aDu2sIcU1JICYd4S6HbwN+ESTIR6i+4LMnUPUIVF4CTYhvv/0EuF/vgxB7E8p+Fyn+5dRH66qghziXD3KfVGsqd4eh229mZ0DxJh4Evp4P0Dtuw5YgkNGf9zJuvWV3CoL0Nw+ZkfJHvmrkOAoI7W1V/YcF51FTOr3fXth1mBzDSBKVBKqpakDJ2Na727s8qyeHEnrWVirHLUKpjRUC1ve3Y8uVuR1p3DrTmQY9ArtDSz25AvIb6fd+8Y2o=;5:U1KczbppheeJQJdUGQ99Cc7Mc3la+13djQdAvMH6IJwbnlgUUSJU5c+hHjkGpiCx0G1H/BDaSsldlRWEyjGVTedd5PW0jNYkuaPL1LLAfD7NtXFvYYbsV+8BrLxhR2Kw7k+u6KCToNk52E9Krg/HOw==;24:etLVDXtbZIIarJdiCFyTKJ6Kgx3+8roeH5o7cd8GHooAoy8x2hPUnNbrazx0w2+tgBPFZZSGZ1v0xFkYJKByaKC7ek2Ez7ZmQdzJQlKA4f8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR1001MB2377;7:wU34hF3BqpBHxEmaZrG/ODlJhuHdYGSyZBDN0TgHiuT6q1OkypsGCM7RVHjJN23hFVBwLFItVWlNyCsNgvLliLI0XK72BChZmAQtdNnAW1I/6pIfiwu+vlWf1LlWK28RgR7f8mTzuqvws8VtAci9WvIeto0aLVkPJI5lYztO/z8SddIPk/DkNQYh6nZxfSov8MwQQwrlOqVPxS2dvvXxQeOxtc+hKJ/m2PeMeYlK+BqGgf0sdNrdkfufVRyMkwu+1zNO2cKqJxW5xVKQDllRrsi8VEf//AlvcbqzVwRNJvasvmJnjG0tOtKoBamFJaPatoF/cEyoVtTN/wN9W5tfGdMSaROQH4dDtS6SR9ysgzAxFgqVrGBiw9iRHGHG7to9nK2H4knhyzr+FViwlQ8zl6T8QmjjfaricyU8i9otG1QKzcZt50FLz/UYcbq1VLAlrO/DmVWY59nYbrLATTHcY5biRHqbEz5Hcth2wobB9b61CvYIyREKh4CCLvOVUtxkPs3/WZ1UM6a964TMFpVUddmddFEx5Ve6s2QUYJyzpjD7rfsALMkcAl2O9Y1aaqeB X-OriginatorOrg: infinera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2017 20:18:57.7283 (UTC) X-MS-Exchange-CrossTenant-Id: 285643de-5f5b-4b03-a153-0ae2dc8aaf77 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=285643de-5f5b-4b03-a153-0ae2dc8aaf77;Ip=[204.128.141.23];Helo=[owa.infinera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1001MB2377 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v12KJF8B011019 On Tue, 2017-01-24 at 09:09 +0100, Ingo Molnar wrote: > * Yu-cheng Yu wrote: This needs to go to stable too, 4.8 and 4.9 Jocke > > > The compacted-format XSAVES area is determined at boot time and > > never changed after. The field xsave.header.xcomp_bv indicates > > which components are in the fixed XSAVES format. > > > > In fpstate_init() we did not set xcomp_bv to reflect the XSAVES > > format since at the time there is no valid data. > > > > However, after we do copy_init_fpstate_to_fpregs() in fpu__clear(), > > as in commit: b22cbe404a9cc3c7949e380fa1861e31934c8978, and when > > __fpu_restore_sig() does fpu__restore() for a COMPAT-mode app, > > a #GP occurs. This can be easily triggered by doing valgrind on > > a COMPAT-mode "Hello World," as reported by Joakim Tjernlund and > > others: > > > > https://bugzilla.kernel.org/show_bug.cgi?id=190061 > > > > Fix it by setting xcomp_bv correctly. > > > > Signed-off-by: Yu-cheng Yu > > Reported-by: Joakim Tjernlund > > --- > > arch/x86/kernel/fpu/core.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c > > index c289e2f..e540dc1 100644 > > --- a/arch/x86/kernel/fpu/core.c > > +++ b/arch/x86/kernel/fpu/core.c > > @@ -9,6 +9,7 @@ > > #include > > #include > > #include > > +#include > > #include > > > > #include > > @@ -235,7 +236,8 @@ void fpstate_init(union fpregs_state *state) > > * it will #GP. Make sure it is replaced after the memset(). > > */ > > if (static_cpu_has(X86_FEATURE_XSAVES)) > > - state->xsave.header.xcomp_bv = XCOMP_BV_COMPACTED_FORMAT; > > + state->xsave.header.xcomp_bv = XCOMP_BV_COMPACTED_FORMAT | > > + xfeatures_mask; > > Ok, I have applied this - but it would be cleaner to go one step further and add a > fpstate_init_xstate() method that does this in xstate.c and hides the details from > arch/x86/kernel/fpu/core.c. > > Similar to how the FX-state initialization is done today: > > > if (static_cpu_has(X86_FEATURE_FXSR)) > > fpstate_init_fxstate(&state->fxsave); > > Thanks, > > Ingo