From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753520AbdBJQvI (ORCPT ); Fri, 10 Feb 2017 11:51:08 -0500 Received: from mail-eopbgr20138.outbound.protection.outlook.com ([40.107.2.138]:61984 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751866AbdBJQvE (ORCPT ); Fri, 10 Feb 2017 11:51:04 -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 19:28:59 +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: VI1P194CA0010.EURP194.PROD.OUTLOOK.COM (10.175.178.20) To DB6PR0801MB1735.eurprd08.prod.outlook.com (10.169.226.150) X-MS-Office365-Filtering-Correlation-Id: 3110fcdc-b476-4d5a-bace-08d451d2719c X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DB6PR0801MB1735; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;3:J5HCLMDaFOMbA+SOQHVOjw+/PqF8ylnECMWJ4dEq1Ov8jyrgKUNnXNeXF3fs071gbjPLVZ1W1him5je0gZcEPT1HM3GtVqyLV5p+1OK/Lzs/tfr7yEIxgxqnXEoIGR7hJFRSk+0LIjuMBNikzLxHWJINnoHhx8oLKjIPZKxWc0gEvICh/VfKOkrkDp2ZORb6d35ISW6axqIy5OKQAwfvm28KEvxUXUIQa5FQU9I/CAsB186T/lAF5Ah638nSQk82H4yYrxZ1DJKDEwbCGqFi9Q==;25:CUQNa2dPjL2p+qT4oA/LpBK7hwFM+jvBJI1gzudk8hfdIkdOA0kI2BZLmdoB8q/rRhU5XqZB9ohDn5rQXUb1vr7R33VocgmwlLOacPDht12HfTJYZydBJJLam2E2JOnb/pKVrW70ZxwwxXmk1Wf7apvQvud6hYK2laD/+zZZRw8wSYSpoNWDt1Z0SMvd+yFTFY6UmsaHpgdaf07FY1GoKO+4e3XTRqVlCOa1PlsnURzgTZu3Pq5uBVx7Qv71fQyqhMKev2dQBzWjPBgVda+RzB7A1JwTqcnlpu1SttojP38NsLecqMyogN8hOpkxIin3wgqQOGJRsheKf6u7FLyd9PdssfEP+dWvTQyQGFcvStUKVfrcSZ5U2p/mlv2p2zi5KJ+itvca5QABqk0pw7IEW5gweuycRiunzTvtKrUHxCIoLhF0Ibh2zQe8EOgU1XiX5YXoBuu/CX9d5QqRWZIOQQ== X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;31:QY2jztiE37pklvJ/WzvO63tWBuYgGLZ6RlPtGtQH9gc0D2AsxSbpNKtRUbX3jy3J8zKfWO9chRqyIHAZTRFB2b102JcnhOkvTu2cjOJZG12bimKklXEF9MZX9PWcepByu32R4va7d9GSJ9Dleye6aFyhKTafOGj0++nBuFK1wVjyQQtbQf1VyR0N3BPbUvfQ/eS9OlegUss3dh4caoGExPF+4NeY2tV8eGPBxE/90L0=;20:uggrcurvRlf2M5oywMJKwp9lHtzQMbErwJlsZLV83VUKaoKhLrqNby88oSlej6y7Ocup4v+fW7Z0L6hW6RdS2YOx79UtcD9OLDoeFxZsE7weupZL82MIsaH7Te9htMxMryNObuom3svEsTKEzs7CIhQxwdXZqHf2lfoVzq71jJMFB9hH3Eb63bZSxlDm3AcNH8jSPgpjAD+A8VVMf77B+gmzMMFzshV3C7RgHm7QMOxCqn1OGzp3Z4fS/6I7zZ5vBKIoo6VQEM0a715LPQEQ6Xjit807rH7/bBLueITkx+QgIA0h2iiXZ/buBBSrtG8SMO0mIfU1DxirNuOhnriiTB2YYHhZ3XGwRzq1a3m5Uz4Zdi3FyYylzhfucTK9t1YtyFOepDHLO4WtiLnd4xcBWkNxOvGy+fx9jD8cTNwxEko= 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)(3002001)(10201501046)(6041248)(20161123558025)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(6072148);SRVR:DB6PR0801MB1735;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1735; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;4:L06qqvnLWipxeRK6XKi6KmzJWOyhT+wyGhMLsqAVBDDusrjdRE/gRmjp0YHKWIQMrKkbEN5sgCgrfjw7hm+2CDyN4iQvbLhpGGx08szymx7yozM9NEbxRPc+mLXp845a1s80IuaO5OqwEhiYKSCQWYPxxvTJ/OB4J9UOMy0eIYC5QUkK3Y0Rupo8yYDOI/0wnQaUDA02rGz/F3wO/+k0cQhZgxoEXsMlmj2RtXURk168DfWSPBsmn8Y4Jf6SITrMDwJWUytYLGAvYNYcDAP/sQn3juPn3uonVjPPY2jYAByrf94rhy5kWOqmO53s2n0S4cex+/RTL19VzApwvrMkAHQfnArxwcbrFQasWotS9xNYNMLqxFqaYxIEAM2gj+l0Id2zuCj9brWkVbz5wnNIs7cMat5iaMpWw2pdSNT/spGZJTBpGBvg7VRkSYn3v44Cr0xo3x8tsHGfSLbsgeAzvnm8jMzY6nRQ+ghXECStbpOmVva79zCXTY3aamIz5BJ55ARnHfM978EYTwEbOm3OPjdtMpgf+Sceqo9TpaJoDfkb3g5UOq+4ik1nDKFbP3ZzzqzASNy6YBU070h9duH/cFkJLUcS6+oknNyAUvbHUSWw5mMYamG82Q6NKGIJKKimGaFhwspHMn+198HUaa8Kig== X-Forefront-PRVS: 0214EB3F68 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39450400003)(199003)(189002)(24454002)(377454003)(101416001)(5660300001)(6666003)(7416002)(4326007)(65826007)(2950100002)(6916009)(2906002)(76176999)(54356999)(50986999)(106356001)(92566002)(105586002)(53936002)(6246003)(36756003)(53546003)(39060400001)(6116002)(3846002)(90366009)(77096006)(6306002)(42186005)(6486002)(229853002)(54906002)(31686004)(97736004)(64126003)(189998001)(23676002)(50466002)(25786008)(33646002)(4001350100001)(47776003)(66066001)(31696002)(65806001)(65956001)(38730400002)(86362001)(81156014)(7736002)(110136004)(8676002)(68736007)(305945005)(81166006)(83506001)(230700001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1735;H:[172.16.25.13];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjA4MDFNQjE3MzU7MjM6SkxhZGhIT1FDOUZtMUMzN2FNVkV2Z2d6?= =?utf-8?B?RDZyTDBWQzJ1UGRCNGp6dC9GdFBJR3kxYi9pdFJlWGRUeWtNRDhvQk43bGNU?= =?utf-8?B?T2pVUE1TV0hBYkp3M2VVd2JpT2lYYThsKzdMUlQxQit2Z1VqeFZvMlR3LzZI?= =?utf-8?B?bEJZeXBPbTVsU3lXdjgrSFU0cU1JTTRrVkMycFk4UjhWSVlFTTN3WWNQM0oz?= =?utf-8?B?NnVKSEVhdm5mZzNaa2wzZGdHbXlsK1MrMERIaHN3cDZCZG9GK3k2VFVRbys3?= =?utf-8?B?V20wYU9BaEw3WEw4VzRnZXNoaU56UUpnN2FxcjJ5OGVnU294VTFoUTM3cW44?= =?utf-8?B?dUVtbEVzV2NkYjkrYkVsUnBaMHExZGNKbXMyc2ZjK0MxTWVxcjE4SG0ydVdl?= =?utf-8?B?S3dHOFJTUVgwNzNoWHpFVmdWZ0g0L2RHYzlNVkJwLzJhOWpPN0J1N04vL0xZ?= =?utf-8?B?RTdMWUtiZnBicVNBamd6ZDVxbGZUc3VjVjdNSGxLTW9vM25Ra0Y0cVlOMTN5?= =?utf-8?B?YnRNWk8wQjZJbXU1RWZwYjlCMTJTdHhLYmdrem5pNjFTMlBvK1FwU2svTytS?= =?utf-8?B?ZnZ1SkZzMVM4ZGlBdGZuOVlseGFWakJzeFo3SXpkZy81MmRDQWR2enhtcks0?= =?utf-8?B?N2lVN3ZIQ3NUQ0xpWHlKbE8rM3pTY2NyMnlDdEJFNzNGenhhZzE2R0U2alJN?= =?utf-8?B?cU95NHdTeTdCODVjNUJvSGRIbm1TYmtHTFo3UlZSaDhzeVlIRkhqbERVQ2dz?= =?utf-8?B?YTlKcTFqRmlrbjhVUTJWd29rVjlIK2p2T1lhdlNPeWk1L0VlTXZFYnArYWlG?= =?utf-8?B?T3UrR1FEcHdCMllUL2ovVTBwa2I1QktpT3JuZFJrUEZSbHJRb1hNYU1ZVEZv?= =?utf-8?B?S0hZLzVFSFIzTHZqb0pNamRBTkVtNVBBRkpxbnRUTE1Fem9sb0tTTDN6eWl2?= =?utf-8?B?Y3hVekNPUXdDY3EwRE95MEJZVXp0S3lTek02aGc0clg1bExaTTEwVm02Yktz?= =?utf-8?B?NkkrdTNwWncvdlNEcTNiY0FvTzJTaThpajlHa01UQXE1U3RjbEEwdXQ2QWxD?= =?utf-8?B?RWdYU2JtTUdyNGRja2hpN2pxQ3RRK2JzcFE2eUcrOGdoamt5dERDRVhpcEFn?= =?utf-8?B?RGtpbEJhaWYyOUF2UnFWRTRVRHNqTURuejVRWFJVMVl1NUFrcTBaQUFESmdZ?= =?utf-8?B?NVdsL085dGtEY0xvZTZtS2NqeU03ZllwMlE2cnNOOGtLSzlhUHFPamMrNmVR?= =?utf-8?B?MWhoK0xVRnVvVzBidkdBMFVZSCt2VzBSeU1VSHB0UjhzcS9JQnZRcldwVEVz?= =?utf-8?B?cDRnTE8xN0pmeXlqVHpnRzNIU0pOM3NuVndUZmRiUUdWMjBwa3pEQVpRZlpm?= =?utf-8?B?MFF4ZllYdHphQnhObDBCNHJzZFAwTFU0c09udHlyRHZxdkpVUHhya2N3UytG?= =?utf-8?B?Ky9XZHoyM0R6RUZKOHFPb29wYVpOa2Z0RnN3N0xXQlozOWQzNDVNQzFTRkMy?= =?utf-8?B?bDU1VU93SVg4REdMQTB4eFJnZU50cjVxQWZXK3lrQ2phZmJTVzhkNFRWOURB?= =?utf-8?B?dy9vU2FTQVNaNjgwWVZZYkRPRlh5YUoxWEZHMmR1alRyaG9hc2d6WkhBZjNI?= =?utf-8?B?blRHRGZRd1BCdGNYWTRCOVZmZHBpdk5hdlRBMTNidThaTkJQVlMwZGo3dldr?= =?utf-8?B?T0w5c3J2VUp4Wnl3ZHFpYWMxZ0pkbUl3UXYzOGl4N3FlWEtWM01YaHY1aERN?= =?utf-8?B?SHVFendEUmd5SzNnWCtEUVRSQ3p5UkE0ZVhMV3p5enB5RjcyV08wZHZjRmpY?= =?utf-8?B?aFhVSUNwNEtGYjVweCtQSm8xNk54dCt4NU5oU09NUU9GdVNrWWE3WU1kU3dk?= =?utf-8?B?WWt0RTdqUUVDdXMzYjc4dnkrbUZRdGpTZmVCdHhLc2FydXI0aytQYkxvbUty?= =?utf-8?B?WFY0TzBJN0pJdjQ5SmpNbEVTc2hEaC9qOGJuekR4MlRUVDhGK3ZTUVc2eGl6?= =?utf-8?B?amVFazd4UnorU3lrWkhXdUhKWmhKUGc1SlhKUWx3PT0=?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;6:hzdYzJD0VA6F7Gwr7WeQU8Kt01aaWl4BVe6Q/CTrhM2gq6xUOJOetqxiOcfgrjJ/VZX6y+3qXYzUBLtknKM8FYQF+QFmuTF65T6wgleb2yJsXNFP7WTsFHZPNJUe45G/B03hjCOhiH7uQvQsBCAlzartPlb+bQN5GWS0fVji995e727Yvv1tq7AE5GnoFrfHzijk0Vw47e+IZEaJY5YePL6fXdrKqVKboOUzxQS/6YmHsVEr797lghSbVxQuLWAOk6W698CrAhFJ2F6Y0ggSsyiYpddDeZV82AndlFK6ShfW+j4gbDc/rDSeQu6xQ7Z886a8qB5ZSpxthByaHkUtzYX7m4BbwtG7DPCPIpdnTmGgXzOIjHuhtzPLMz27EMgxOJPjYOTPadJP3nnopiPoqw==;5:U4DGBRFvtWGusDgN0dYZrV0g4OAPEw1my0ChtS6TC1psSPvLQ548KlF4/uInHDODy6CaXn3tVKH0TDVFq6I5rlQdgFLpYjIelgoro1G5vnKvQRvISz7DUfy0ZgrapAieCLDLlagChN6ehp6uxed1yg==;24:A4wAtWhHw0GeEAMwR3iVrDtGdxcwcR2URJJ2McBYYBHVe9iC3i3sDr/4zy5EtDxSpoX0MYdm9sbjUGYL8128xzu0mcuLRC8rTAAfOom5SFo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;7:FH+49YL95qIrkFTm8j9eQkvFWDuvmQQS2GvCCmhGpSJVfW8iz8P551lKZHYSoxk+Tw1hXWunVNaZkslwHBPoCv3K7g2ObVMC/6RMdsaAtiwQ80GDZ6PbBwwrXYjxZsUN36EcInSgmrLVsj9nov968khzFCpVvH71VZEvWfwDdhJIv8JWrKFvttbG/jJFR2I7bKoiRgnt/5CyxfZtSRqtZz6Os9RwqPqiQNrmAc8xJDBUyKHuPvwApg9Ir6Qhdq+bup9/db4OqURvGabPlfrMCErnmDNueVAglasDJijpCY2fwcrv0EfkWvoYmFkZ6hhV3Dp3H+O1ojMb47i95wEqyclbvG8T+u/A3nMuSfHNOsKeFJN/FnTw0HEkvZ7F2Q7YqbVRlUBj0JJ+Y4FAAZhGamCOTt0H6at2+2BHvpqM3Aphou5oP6KWPWOrVl7/jVr5m4+NaHm2HAfRub/hpIqcOhEn44nj0SzdRY41wJhqJ7Apnb/t7Vk58FYQ+D4FWOc8guXnG6wN9RkljviwMiWdhw==;20:X5VaRVze7L17qLUfCPGkezhhNlNmoycHTRhvHerMpnXEWiiv/08lTEVyM/t4yQN5cQzXpcu6JqY85kzTmCWv16QdRTLmvhCeCz1RnkwObrnizW8Eg3EhdfdZbxRILLqdwn9BGPu2uk/yijgw0qC95a5sgnIL6fvA6m63SPFezhf9BrKog1Qi4S1lElqHxU5z4LdSQ1cuOBXQsfcvyhhmRadCbm4tSx8IysDRDGhBl6kwURz1mg2i7eovc+aI95xH X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2017 16:32:44.3640 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1735 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. -- Dmitry