From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753403AbdBJSyT (ORCPT ); Fri, 10 Feb 2017 13:54:19 -0500 Received: from mail-eopbgr20125.outbound.protection.outlook.com ([40.107.2.125]:29307 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751802AbdBJSyA (ORCPT ); Fri, 10 Feb 2017 13:54:00 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=dsafonov@virtuozzo.com; Subject: Re: [PATCH] x86/selftests: add clobbers for int80 on x86_64 To: Andy Lutomirski References: <20170210115239.29256-1-dsafonov@virtuozzo.com> CC: "linux-kernel@vger.kernel.org" , "Dmitry Safonov" <0x7f454c46@gmail.com>, Shuah Khan , "Thomas Gleixner" , Ingo Molnar , "H. Peter Anvin" , Andy Lutomirski , Borislav Petkov , X86 ML , "open list:KERNEL SELFTEST FRAMEWORK" From: Dmitry Safonov Message-ID: Date: Fri, 10 Feb 2017 20:11:46 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM4PR0501CA0027.eurprd05.prod.outlook.com (10.167.83.165) To AM5PR0801MB1729.eurprd08.prod.outlook.com (10.169.247.7) X-MS-Office365-Filtering-Correlation-Id: 43d5f111-3800-4998-0db0-08d451d86ae6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:AM5PR0801MB1729; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1729;3:L5GLn3TSfeVUJSLNow8ajz8Yqbvvh26QGs3KfBUeKERViRVirhWYuxK6w2fvHo6Ye5K6llEYdm+1ID3p5hI5XGbz059fqqCLa48ZYcKhVfh3xw0l01UXfErJ2i1ed6KQr2pLSttZOsrXb0rQ2JrKuxxfdYL1irMOPvworOItL6TP1AkBG9R89xN+egP6a1ix/7taS5YMsbncnbI48lVYmSsUidWWcWCmsQD1Rr7ghMNsvygRcjJn5tst93nxDbzFttLbhyuRLmRaj+DBnf7s8Q==;25:S85/ztUpHTROYA21T7RACVnyw/KNZ4wz5KLQq+vPBNjimYlbFCjCX0gcPS9rblk7CAyvWATNuGHg2b8ODmCAS+pxJWJDtCBllIQcEg1yMjIP8hbVLC488xJIQbNtuGw+rwWakJL6jc2QUssd6Q00QCktqMN+d3OQgzEQM6QTv3Z3jfH4uGa0/tGdrs3dX78y92i6EIC7ZCxMhtzTCPPUnNhdQPOn44Hj634XpM7T+3fAXH+aWFtJ5lJkZJatpEIvcFk8YE5DwbeGLewK7OhEK9bu5MZiwLY4/A1pVXKw2BwyCSXIcAi+4E9TZh1t7PboPJiklOD8R+eLfSP208N48Ys+L6Da1dPgGV1KK3iH6tJa0g8Cc0dCfBP+bLKlqvm1+yVZaBwMBHqf1MgcV6iCIsXmHJ6JvPn2Fvm7hwkKiYZG+p3u5VijDCxazNZ9g/OlNsQdRgcQK7XF9V+X1JLz7g== X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1729;31:YdZp+JnT1+x0A6t47+N/qF+YXaElgkgTcBqJmzhjYXxdz/GPK1UK2xSRxpd0d4wbhLUaVMDqlZJyYsUgReH26pzauy0Cfvx34Eo+iLpbvE+RYx54tqZhulLG1s8L8TVNSQT1fn4gvGVGMmhGct9lPlZH7A36pNQzlucStO61uw0c0aItXlnpHw+deuZxKN7wSaFKnXA4qaJqFLYeN2GEm26s2LSGydlAlXbi2jxAFmk=;20:0mbtTm9BgtXIIGXACzG7Jf8GAUUqA1QAAT8GVjDZdOQRMQ3rW8MSACOSzVbfm1iDOMWt0K9CCE51B9kNe75g/1xDldS+cO5sGRA0yXzGNBX65NTpEA2n6CsSIKKAMfmLjI2QtII9DqvE/lZYX8kc8WdTpRoJDpN4Dyiw23zGW1k7pmrd/VgecoQlAL6vWGBCqW8z3DRfB2jTiACR6n8Se/mRXMNMy1m2ZAWGMA7YYFrzUR4uQ2AUzKSCqeakH4UAiezs+5hLs1YgU8rsCsd0XEx3k10zu1enBt9qMUo5BMjlW+gIJL04MwfIX14i2dmINK4ntmMZ2uMszl8DO1E44+gR/9icXNhnJoyABuAozdFXHLcN7/ixCpSsNwD4Qe6NurYlgr9FW+P9A9tnkNUh0udsI8CwX3VR4qptB8mfCts= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123562025)(20161123555025)(20161123558025)(20161123564025)(20161123560025)(6072148);SRVR:AM5PR0801MB1729;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1729; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1729;4:MVQhhj/u8VlGvYDoSAYhd0mzCQC4ECBbhIk64uH+Fx5sRXT7nnQdhph983eZyqg+aMtpxfh/asaIjLF64SHkSoq7fijhZTcWMWZbVLo0ZWRC9u0Upv8d1lh2MsLmiUgXO0E9Ol/GMySnDZTMpjzXKYeHgVzQYJrxs/KnLtZIUm7Z6EAxjcApGyLxHNhZHbotp+4LH3LXzPywxVVN02iBJ9Vz9/JRLQ8ucUxj7g3bAS8Z1TH1JSR7D+7V2Gv/0SgWnK1desp3gAlCAN6g53In14FZPKCj6uFmZv44PcT5/2bQ49f7G8D5MUu6/2la3XZfFivCt7fiklHYG1thqBFsgNsiCuzGpGwUNMvFbMwGEl4sKnNvkSdiN/GcGvAinvr/BKHS2PnMYwUvYME03pFE4zsrGWySR0i2RKhxCuXluEB5Chzrr9UOdH2GUYLWoA9OygR9JHrdGYD1no/pumiU5A8WJmClGGTntUwZmuiePEdQjBn+bEOLLpHSSSmgvAUeZwjN9gfDOrd8R5kuGjPUzOIXEkohNzlQLR07oiO/ETUOGNW2RMBim30EaVQEJxcqAO8eQRQG2t89cmemGlezJ0CXwy7kh/FzgGxc8o1BtK4Jy57oF+t4cU3ShIoJGC4nypLcHo7TTLD3kwzctSAhqA== X-Forefront-PRVS: 0214EB3F68 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39450400003)(199003)(24454002)(189002)(377454003)(38730400002)(36756003)(110136004)(7736002)(53546003)(53936002)(305945005)(92566002)(83506001)(47776003)(64126003)(2906002)(229853002)(65956001)(68736007)(65806001)(66066001)(39060400001)(23676002)(6916009)(76176999)(6246003)(101416001)(54356999)(50986999)(33646002)(42186005)(93886004)(50466002)(81166006)(6306002)(90366009)(4326007)(8676002)(77096006)(3846002)(54906002)(81156014)(230700001)(25786008)(31686004)(6116002)(7416002)(6666003)(2950100002)(5660300001)(105586002)(97736004)(31696002)(4001350100001)(106356001)(6486002)(189998001)(86362001)(65826007);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0801MB1729;H:[172.16.25.13];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjA4MDFNQjE3Mjk7MjM6V0k3TmhaR2VKRjljbkt3TkxDR3pJQjlQ?= =?utf-8?B?azcwQWpsNFd6NjlEcHc5R1dBZEtUTnFhU0hnSmNqNktpWDBvcURGNkR2QTRX?= =?utf-8?B?M0tKWHhSRlo5MmhvcmlvblRhM3c3L0Z6MmtINGNreVRjU0FxQzZ3NG9KMFow?= =?utf-8?B?dEsrWVR0VFZlbG9yVW11Ty8wT1cvUkd3U0wxV05FdUV5ZlBUdkxlZU1PcEFz?= =?utf-8?B?L05QNkdvNUNUMFd4S2dnbEYvTDI1R1dKSUZ6OEpVTGdsakxIRlBoNXpOMTl4?= =?utf-8?B?YXVWVVJZRUY0THZLbnBMUEQ4STA4eTdLTHRsOWpOUE5UN2hSckhhRi80ODJp?= =?utf-8?B?cmdOQm90aUY5UU4rNktTOVJmVDNMVDBUMWpLY2xRSDRsZ2NGWVVzRkwvcEtz?= =?utf-8?B?MjZIRkE4OExvQVFDcXNPSVRmRmsxL0xXVkVrVUQ0RmRGY2JRZW1pbWxmK0lX?= =?utf-8?B?Tm1zRS94WXdGRVdkU1U0Ti9oNDQ0TXNzdTFCdTNpc1JnM3VEaTF0UUVBQkFu?= =?utf-8?B?K2hVY3Qzbm1UcEZSYlA5UENZb2hVQ2xPSG0wRmNCdkpsRGdIOFIwWHFNS1NR?= =?utf-8?B?WFBXUHFUejlGYnVPSHBzb0N3bEhVWFhpcktZeVdBdDAwcm5ESDFjclR2Ylk3?= =?utf-8?B?VEhiWHpPQ2x0dXI3aFMzM3RkTDlTUzVWQys2bVFkZDl6eU1wbXRxWE9XemtW?= =?utf-8?B?ODZTMFJvQkQxNE5OQTZRV3o3Q0lTU2lCK0NnRXdodVNrekRCWGRKNXowNWNw?= =?utf-8?B?dkMwTmhhQTFhVUxxcXliL2tHdDVQNGRMVnJPL3Z4L2dkamZ6cVhDUHhKai9R?= =?utf-8?B?R3FySFE3WkJGVjZ4Nmdta2NYemszRUdWZDZVdFRXck1INGdEQVpERmxDeU9S?= =?utf-8?B?emFFRDFCR3EyRVBlcG5ER25pUHJ4MFhJQWFURWdJdFFXM3lLZnYzaDcva0dP?= =?utf-8?B?V3ZCTWx6SE0vNGdzbUtyNDdtR2pHVU1PalZybG1qSU11OGI2UTBpRFlBbXJP?= =?utf-8?B?NUFlTGpvckNldW9vdWNMd1A3KzFJQWV2dnpYT1VudDJHc0c5bXhOcGpTb0N0?= =?utf-8?B?WFV2Z2djaVZQOEhHcTdvR1MySmZVcVI5cnRlajBtQmpuT004WHhEbVMzTnJZ?= =?utf-8?B?Smo2MTFjc1hoaVo0dGlLSitsaGROWHo1eU5YWHNzNzd2OE9GU29WNjZpV0h6?= =?utf-8?B?cGVFQUJBMitXcW82bm1IMTM1YlR0ZmNvV0RDNEdCMU9nKzBCVjBHeWZHV2R2?= =?utf-8?B?Rzd0RDNWUStDQi9lY2JoTFZucGU3K1J6M3hua3ZQeDBRTDdpeE1SMjdJd3d2?= =?utf-8?B?ZGNTU25yak1Eb2U5ZTkyOGlNOW00OUgzLzZJaWdQeVR5cnB5MXdvcnVKVmpz?= =?utf-8?B?VlpqOThDN2JicytpR3dqTjBVZTNGbVZSWGdqUTUvdVZUbHRWOUtLN3ZzRWVJ?= =?utf-8?B?bDc4ejNCUUJiRXhma0FIY2VFbnFzeEhFRHh0Z2dCTmJMRWh0ZGVQYVNQK2ZY?= =?utf-8?B?eHdrdjFxQmtacDBxY2ZmbFBlTDVndkMvN2dzdEk1MHVkYzhwOXFuUW9JRVhT?= =?utf-8?B?Y1I3cmZmdG53aVduaEpBcGpVY2Nid3BFVFduenVuYWs3ejFham00d3dpZGhx?= =?utf-8?B?Mk1PaXhRSHhsZUx0eDhqT1hYbkdQTlhkdEFVUzdka252TGgwb1VsM1BmUzFT?= =?utf-8?B?cmtMZlJIZE1US0Yzc245UmpqaXhNR3BRSzhYNU02aC8zSk5zUEo5SHFPdVBQ?= =?utf-8?B?b1prZUxsQUFWNFZsOFp0Vm1mTGNJVmg4VkpDNW1ESGlhMDJ3dzFaQlFzODE3?= =?utf-8?B?SktHdmxOdDFzRU5YV05RTUFRMyszUHVLblBIc1p2U0xJZW41cVFlbkFQTlQ1?= =?utf-8?B?Y2l2NkhJdElpbXVTMEc0U3E3WHBMS0JSOFdNazVLZFNaY3hSdk5MV1JBZHJj?= =?utf-8?B?T1VsTTd2dWFlUmhGZG5nb2JGWkFKbkhEM0VwejNQWlN4R3Z1RnN4eVR1TURH?= =?utf-8?B?Yy9XeC91SG5ud21mK1lmUTBiMnN3ZVBzRFFJdHR3N3ZnWDZHcldHLzVYMk5L?= =?utf-8?Q?CGYMJM=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1729;6:UAvQ54Yn6deZR7rsS4kRCpM9V+T1Uo5obN6B3B0wlqY+N6e92lOR1ahMssYeon8YjpXS4TOy9Zoh8Vp7/gT1Lp8mKRlUKH+ouO1JhdBQmLpvF7nN2WnmyejsF5tcFD09Lx7Y5UAJsTtZ74GVULGAMlnJkgW5X53ZuBQcPvBbnfQ3I5otlXBK7n79NGEfcSKHymXI3sSaRuQNiBNt5Y07Fp/NaLXeTCjBkI0Lkp3dXMLDieQi26ZlnSPgDmV704VYyXpYaVvaXfHw7X2qFfA9Z9b7xKKnPjnr3ieFJqhpLPbZfJHs2A6T2A/vVvp3SXC3ajRNQ7R0ob4ssdc+scoc/CHMchEPXnlrXBQizneMvudOmJoYLmU/i3DUbi3bMInJIULFnjsuWHhNGefnIcRGHA==;5:khba0B21TORd0kIFEVBxVT/gtyVdzuYGbYGCxOepBjgD1CVMWT1QJBEexJsR+7jVGgWZaHrPtWs0M5DkQ6ZghitVpT1NUKWqe3OpMElT1AviXk3sw4HIZifat8Ai9zZOIMREiP8VRYe9RPPpfeYgXg==;24:nYX9R1KINDCQbK97DsfFM+kjj80/Yy/ztfffIta9HyCd6tEkwlL6ueZ1982g2B1EMbl6cFQmFDjDmJ8zihSbiBnX9lOK6JDuw3K27axdK8I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1729;7:M9fsws4W/MgsDQh0ZbHFpE5RMry4uK4QmT8TvvDK+1ETJoq+9kwPbwc1KXy+AX2qaNOtBGIMR52NFREJAi09qDQHBud9CSRrKg7sraR0kYJ/rWR81CMbiAdp/1c3pE4zKtdO6wcKRHaWkR1vK01bI1Nr6IYTYl+m0YTdBY0G/NEinoQzskhH/foaNdn2zXtiEBsjYD8ZeeRSw3VMc3NMRuIqMXo6ArFWqnPqCg1uvcwfaBKvNK4i7GylR7eIt7CrggiaIoyIijqwy24o6kI/dhSHZTMThhGrGd7dY2Yf7KH/pG0tkUSU10kGlTmxIpt2E0QB2HRDlShM3vTvIb7VP9F9p5SXAGSb5+yyHfBoxO1ht/nkmUEUz3i4e+lwz7Mq+Jim4W3ce/87+h4W+OW+M6Jn5L6zcI2Qg9YaKNnxXs/NGZ00XCgIfOW9PmotKXOVWwTh+dHN3AUxe2lQ7bRpGYXioZdG0UrXI5gaU6h2ncwMxku7k9wzLxFs6hnpTFYq/PdDSCDhjKo+NU8EHOgp3A==;20:hKTzTomOmNWG/TK5hXZx2xe++2/nVfK8LoEPbUdPGmedQtmVOSobwiOlabC1rGEv/jgsGO7ImedDV9IaNPT7DNPdKqg2XPng53F8vla0+iKlAd///DAU4CzCG2oUu39j8tetVYxeDIwBMShuMCp8DLLg7lXyEFbnooQJ6EYsIOf1ua1Qho3nFhSCWugp7Dyb/6R7QkxZwiDrdSSngEinf5MEMSjMWOYvGa+kV4a+VO8Ic1x3rTg0m7r4Qas27FBj X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2017 17:15:30.7424 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1729 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/10/2017 07:45 PM, Andy Lutomirski wrote: > On Fri, Feb 10, 2017 at 8:28 AM, Dmitry Safonov wrote: >> On 02/10/2017 07:13 PM, Andy Lutomirski wrote: >>> >>> On Fri, Feb 10, 2017 at 3:52 AM, Dmitry Safonov >>> wrote: >>>> >>>> Kernel erases R8..R11 registers prior returning to userspace >>>> from int80: https://lkml.org/lkml/2009/10/1/164 >>>> >>>> GCC can reuse this registers and doesn't expect them to change >>>> during syscall invocation. I met this kind of bug in CRIU once >>>> gcc 6.1 and clang stored local variables in those registers >>>> and the kernel zerofied them during syscall: >>>> >>>> https://github.com/xemul/criu/commit/990d33f1a1cdd17bca6c2eb059ab3be2564f7fa2 >>>> >>>> By that reason I suggest to add those registers to clobbers >>>> in selftests. >>> >>> >>> Seems reasonable, but presumably INT80_CLOBBERS should be defined the >>> same way in all the tests. IOW, if the "flags" clobber is actually >>> needed, it should be "flags", INT80_CLOBBERS (possibly without the >>> comma if it's problematic). >>> >> >> Well, that was my initial attempt: I've defined it as: >> +# define INT80_CLOBBERS , "r8", "r9", "r10", "r11" >> >> But that hanging comma looks awful, so I added "flags" there. >> And if I do define it without coma and leave it in asm statement, >> 32-bit version would be unhappy. >> So, I found that it's easier to define it with flags included. >> > > Woudl the right answer be to get rid of "flags" in the test where it > appears? I'm not sure it's needed in the first place. > I think it can live without it. But I didn't want to change it in the same patch and wasn't sure if I fail to see the reason for it. So, I'll resend with flags removing, thanks. -- Dmitry