From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755392AbeAOOg6 (ORCPT + 1 other); Mon, 15 Jan 2018 09:36:58 -0500 Received: from mail-db5eur01on0106.outbound.protection.outlook.com ([104.47.2.106]:57216 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933353AbeAOOgy (ORCPT ); Mon, 15 Jan 2018 09:36:54 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [PATCH 4.9 84/96] x86/asm: Use register variable to get stack pointer value From: Andrey Ryabinin To: Greg Kroah-Hartman , linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, Josh Poimboeuf , Andy Lutomirski , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , David Woodhouse References: <20180115123404.270241256@linuxfoundation.org> <20180115123411.136933482@linuxfoundation.org> <18e66674-c884-b03e-f7fb-c3df111aaa0d@virtuozzo.com> Message-ID: <4c8e8e28-9802-fb8f-1b33-5247622233e0@virtuozzo.com> Date: Mon, 15 Jan 2018 17:37:02 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <18e66674-c884-b03e-f7fb-c3df111aaa0d@virtuozzo.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1P18901CA0001.EURP189.PROD.OUTLOOK.COM (2603:10a6:3:8b::11) To AM4PR08MB2820.eurprd08.prod.outlook.com (2603:10a6:205:d::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a8763137-ed48-469e-b387-08d55c256a47 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:AM4PR08MB2820; X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2820;3:xAAnpwXgFqRUcmMFFtpZgjgJXDVX5+ZZGUrjj0eeJ3x2rVlRm7/hrdSbZDX0LoZIUIO/SZ9c4yUwe63bGUgx8ul8kXAVPZ5GtHxuuW8LU8dbvZtMnuiHzBu9Eb/yo8fup3Krx2bjvk0l4KqhKcjUoNsF76EalNAi4Rbj2NRi3ZNooweIAxk7tKXA/S3e91ciZ7V1ID75EBbs5uasoitQtSaS4v0pL7eA34Y5pIxAwi+b04fzr4sTiTZeX73Kg1MO;25:eA/C+lFrKcBUHUzWDZ8X+O3UQcGKZyNkhBhqOD7a+pmLORKpnYfQ+St8J0xsk0p5E5lohruq9Kd1V4e0+2aivR74/dZYFJFb0jYib3UhTo9Ixiaa6Xh+rHTbxa+yPaVmGZudg2UbiqhljkFun0inLP+wwwJw0EonQUtdvjJsV9kJbV8x54z3JUHJBxXZOa/Xp17o1AfrGDGgpDq63EUciA7k1p6lfo0hhPv6kKB/mVhBYYQisRHNgoVZieojbqSl2fcITr9XOUA+1RbWdH9lG2hatjHzFDsQJZJnDlVA+hxghvvKFxxxtDhvbZOjapkcu8/zjjzn8mXxFZuJDsM+tQ==;31:bI5L7zdJZ/YqitGxM9Pi3/G9LPU0M649vK7JWIry598QveLq+kw2wYdrZH3qpEsVA2Z5cRcz1IP8d74hm0xQaEey8AOiOila2VpZFtnwwR9FFHXmzza0TN9b1bBztd2Yr06/oYxHFI9vpMr6ZU2KfpgJekK4QwKGIijGZ4/PIz9Won6CMi6hQqtsHWzVmxd5F/oyBwOKJg7oDaF9ZjTm8W036cIywOpdj3pnn7sJeI0= X-MS-TrafficTypeDiagnostic: AM4PR08MB2820: X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2820;20:YJx6L03ofN/bE8besyLFJDlBokiVTRZybkGIEL/HuXBHP9+bFJ4QArQiVg+ZZD82dBNWphr9dMLicTXo7J1czdtv8XamVOPOD1ATY2qJlxdmhQ3YYUPPmnLjIx0FTMAdD0XQpFDGLhjZeAUw/SE4YiRVBL1io0wIXVJEGtDuRKD2I5aDd78THlI1XMO88SXF/D9bwLC455D/2SiWwzkHErEHXLc2Tz4Tl1qUTtG2lceo0YA6hWXvuTeG7bg2Wa3Xkmr4i0cN8nYPfql3LqVbYLhqBW90JLpS9Nf526NOxfAm1AkZbD3DMhHhCPFsyXCM9NeAt6xcTAN9UAivXhlswrFPtDeLPn+bWwTQJfgoJfvo5J+f5xlZ08qHcsbm6bZS3iWIfPMbLMg+yvIzor2WCyTA5wP8WliOAyVs5smu+po=;4:HO7IYq0uvEQ3nnmZo16lMsTxZhHO1snn7ZjDXH5Wq9chZom/QrabfV9QqxBFFTsLP/6UZRWlk603gX/+1fGOJbuoSJkAOuZsH4p+jlOMpv45SStexVlQ42zemsJFpXpXR2SaxKqgaP5NAtrQI0YemXxESEKgcVc26OZ2U/cevbrbbdzIN1jiAZXtsjMchLrvg+NqXidW4xUPQG1eHfZ0XhVJ/4gK6gC+uyvOE9Pug7Y3SodDaxRfKas0DdZBOtWxonEQclR1VZmHBKCb8D6071jwMvSR6bvlrAF1RVzLppZxlwM5NsCHhI6CrwZ46ynSrJ3NgimfB4Es049ewBRZGCloeS4vQQowFT4uZfkGFu0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42068640409301)(146755900322472); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(8121501046)(5005006)(10201501046)(3231023)(944501161)(3002001)(93006095)(93001095)(6041268)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:AM4PR08MB2820;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:AM4PR08MB2820; X-Forefront-PRVS: 0553CBB77A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(366004)(346002)(376002)(396003)(39840400004)(39380400002)(189003)(199004)(24454002)(4326008)(966005)(6246003)(6306002)(8936002)(47776003)(66066001)(65806001)(50466002)(105586002)(77096006)(6486002)(81156014)(7416002)(8676002)(25786009)(6116002)(65956001)(81166006)(31686004)(68736007)(2906002)(3846002)(229853002)(7736002)(478600001)(386003)(316002)(106356001)(36756003)(59450400001)(86362001)(575784001)(53546011)(65826007)(58126008)(52146003)(2486003)(2950100002)(6666003)(54906003)(230700001)(52116002)(23676004)(76176011)(31696002)(5660300001)(16526018)(16576012)(97736004)(305945005)(53936002)(64126003)(83506002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM4PR08MB2820;H:[172.16.25.12];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA4TUIyODIwOzIzOm5KcmxGV1c0MW1jZDVEZ2hKTnJObmN2dEZ2?= =?utf-8?B?Vmp0TnBQRU8zMld2Ym5yQ21tTnlBVENHTmdZRW1tN2F3ZW84YU5oR0ZLdGk0?= =?utf-8?B?YkRZOXY2eVd5dTdFazhCbkJ0VUdmeENNNGIwV0ZpUEVNUDJCbmg0Qksyd29a?= =?utf-8?B?dEQ1Z1RxTUlqMGhvVFpBRjhnaXRjMlRIVjFsSmpxQTcwRG9EV29WdTI2T2VL?= =?utf-8?B?STl6TFFTaThFSWkrQ09sUDQzVEY2Q2g0QXYraGlqZjVJM1daMzgySFZZdHV6?= =?utf-8?B?S2VrNDVRQkNMc09kYXB4WjE3bTlpYnRBaHM4WU9TemFpRERFWWdTZUtrc2Rh?= =?utf-8?B?R1B6VWtmaDZBSVlRc2REaEk1RllKcXJSZkd0NXR4T3NJMlJrVnprWHZIcUpy?= =?utf-8?B?SkdFcCtkVkpkclNoOTVsdzlpbDVoMEJReWZyTk0vd0hWejEwTXhBTXlxamIw?= =?utf-8?B?b3N0ZlloUHRvSmZlZ1JyTzh2OUFrN2NaSVp6eVVFSUNzbFliaHR3bUZ3dHpR?= =?utf-8?B?ZEFGTGhkUWR6SWdzQlk4akZROEJ5LzU5VkptSDM1SVorcVRML3g2S0ttaEp6?= =?utf-8?B?cXg0d3dORmM4dW5ubGhvWk84Ylg3YXN0M29wUDFqeUdjY0p4TjJQck1UQWE0?= =?utf-8?B?NCttcy9tWXo1Wlg2MFVSWjd3VWhDdHVUcXJnQ2xNSEk0WlJIRm1sejJPTndy?= =?utf-8?B?ejRMdTZpSUtVZ0dvU0VLaDl4WTBXMUxtYlFVczBBNFJ4Ry9JdHAxeE8rL244?= =?utf-8?B?eUFjOUpnWmJVRDQ0a2cwMGVGYkl2NHlMRTNrdDJveXFlMjVqdm5aMjAwVVRy?= =?utf-8?B?NEpXVzRscFBCemViaXZtaVZVM0VZVzNyUXYxZ0UrZ0dVa0tMNFI4VUJ3R0hw?= =?utf-8?B?akJYZHo1NlhNQXEwTlpMSXFFc2o0d0svUDAybDdVRkdKb01QTEpBVkxIVTFF?= =?utf-8?B?NFZRTGF5TFlHN0xRRTNvcWphaThIK2tWVTg1QVJJeWZOb21hVkVLaGxvK3FR?= =?utf-8?B?RG5FZ3JKSEJlVE82eE9RenZJQkJLaUxta1kyMGV0RzdQL1JkazlCTW1VK080?= =?utf-8?B?eEdxb3BRNXBza3ZtdDRMNnB2azBYTFVYbVN6bWdZYnQrL0ZmUmRQWWJMMEdP?= =?utf-8?B?aXNwVGRmM21XVkhZd2s4REtCbFVXTmpMVFYzdXY1TDN6bkhRMk5NbXl6M01v?= =?utf-8?B?Vyt5T0UyNEN1RythTTloUlphSlc3bC9hNHduMlBYNFlEU0czMDV6NFgzazM1?= =?utf-8?B?OE94M2ZmR1VCRERrc1B6bzF5SGE4bUxoUWRKcnlpaXgvY0pmUEM5Ukp6cjlK?= =?utf-8?B?OU44TUlxQjczdWFyS1hmY1ZKaFQ1RFFRR29rWUN2bWtRVXJHZHVqS3puNWky?= =?utf-8?B?YUQrRTlkSkRNazdmcnBRM1huaDdLa1Jlc2Z5TEo4U3VSMlFMdngzY283dkxS?= =?utf-8?B?aEZxa0QvTC9Ld1lwTENvWFczcUY5RUU0aksxdTIvaFNFdFY3UGp0T3BkT3FG?= =?utf-8?B?RHBQcDRCc3hyY1ZyLzZxSCtNUDA2N21DUEJCVjNoNXVvZnJqUXJOZ2RzK3RZ?= =?utf-8?B?di9ueWRPNXlEMkIrTUozK0lFWlBVb1VJeGE2VTBzZnozRjhKalI0R2tyOUQr?= =?utf-8?B?cTJraFNSdndwY2FRRHBpSXBmT0s3RHhXVElpY2d1Snc3ZFVJdWJDbjRFUENM?= =?utf-8?B?VnIwNm5nODIzNVE1YUVOVjdvUXVPaUdDNXFUWjJ5MzljeWZJYnVmSVZzZmhH?= =?utf-8?B?SXAwc2hGc2doTWt6V0RZMXdxa3J2d2VDYlRSM1krejRtZDhab2FucGJwcmdq?= =?utf-8?B?RGVhbEVyMnFjdjFQUE9FVmhFdFM4Qm1heCtZVFNRMWx2RzVhMkVSZ2tXSlda?= =?utf-8?B?ZTVrZkl6OXB2MS9PbG9IZllBcWJnVURlb0xVQzBaaXpWREJOMjI2S3VGcVVw?= =?utf-8?B?bnlGNW5xU3UvSFdaNmEzd3NKR0pQUGg1NTFkKy8rR0FRMXYvVy9Db1FpdG13?= =?utf-8?Q?sErfvx?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2820;6:cTU2YpYey/zI/Tlm+K+vnissIlvcfNlp85Oj6fThAIM9chlGMJZQ8jD33wQPQ2nu9RBzHAn20ZJbtfqyNKZLjPNCK4RO3ORvE/+IOCjCL8WxwuiZOSMWHVOKi+VJC/Lo2AfGcuhYaxg3ovI4m/yv6cxmsPHYRINz1VtRIZJqJGvC7i6aFXm87EG9PtF+OvihGCqf3QTfXJgJ/IIF6AD9CFEzdbph2JDWL+/SzTJoqpqq6hyZemZyenx9YSYedC8PcA1CWD9gMt+Kt35t+u0MXdKVZGE1Sb+yq5Fx/lxM40jIOaApY3vnqMgrYaJmR+dUzNZRvywycpTMOBCk9FZgKWs2UI5uxwIPgB4EmnUox1M=;5:h0xVGw8L0UvNC0qm36liZ+EGIg3oNLaVSRrKR7wwCLcZFW3Dcw4PLYjHHNojbpSAB2EfTdOrB++TXAfkLQxF8KqS+SRCaPCCzAIQ4NDksugOioSqTibOSyxd+LNr7JvjXBMpqFLXTJGbeQeqUBl9Msy4RdVWKNtk8mAf6n1ezWQ=;24:ZmY4++LtNRr+CZP/i4K2nd6QU6JR/oo4PL+O9ssgRMvnOWh94DMM9fJZkxLkUjN1ojvY2O4xs/yEgORMu5JhFiG8v6G+XfK3z6ZmvR9HtC8=;7:Kj0mYPxYlXOFh5cxFEBGJC8pEPY14QQj0sMfBunQloN2CZSbRQfHys9oT7FXfeHclx20X0+WhT+aotPBrT9khaDE0TUL+RPvJK/lziJM7U17Lag178Z18w5mvFsz1IJcRQl70B8Ejm7gF6fKAfTuGjqjUkZ+M5mUi/CGxUztG5EesPkHsq9a6HBNtX6BP6gukhtJu6apem27L33E/D0sHBY4E/rPe6pvF/y038YAapCkFkeP/1p8Nn+sNB5CBsAO SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2820;20:obPYeyvI4UE7yaivgoOoBC0duxmdoGBWvCjfnn94PnY1I8x667T1lPArRfQ8Qp55IDG6NbOuEt7Tc6TsalgSE2+caSmBxxAolslGw32HKcUV1YL3mvP0cCWXQ11gf1ocIUkRjPHQfQMSqLvahrtMA8kIneYbjk130TlI5GMS0b0= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2018 14:36:49.9578 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a8763137-ed48-469e-b387-08d55c256a47 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2820 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: Resending with correct David's email s/dwmw@amazon.co.ku/dwmw@amazon.co.uk/ (it's incorrect in signed-off-by line) On 01/15/2018 05:31 PM, Andrey Ryabinin wrote: > > > On 01/15/2018 03:35 PM, Greg Kroah-Hartman wrote: >> 4.9-stable review patch. If anyone has any objections, please let me know. >> >> ------------------ >> >> From: Andrey Ryabinin >> >> commit 196bd485ee4f03ce4c690bfcf38138abfcd0a4bc upstream. >> >> Currently we use current_stack_pointer() function to get the value >> of the stack pointer register. Since commit: >> >> f5caf621ee35 ("x86/asm: Fix inline asm call constraints for Clang") >> >> ... we have a stack register variable declared. It can be used instead of >> current_stack_pointer() function which allows to optimize away some >> excessive "mov %rsp, %" instructions: >> >> -mov %rsp,%rdx >> -sub %rdx,%rax >> -cmp $0x3fff,%rax >> -ja ffffffff810722fd >> >> +sub %rsp,%rax >> +cmp $0x3fff,%rax >> +ja ffffffff810722fa >> >> Remove current_stack_pointer(), rename __asm_call_sp to current_stack_pointer >> and use it instead of the removed function. >> >> Signed-off-by: Andrey Ryabinin >> Reviewed-by: Josh Poimboeuf >> Cc: Andy Lutomirski >> Cc: Linus Torvalds >> Cc: Peter Zijlstra >> Cc: Thomas Gleixner >> Link: http://lkml.kernel.org/r/20170929141537.29167-1-aryabinin@virtuozzo.com >> Signed-off-by: Ingo Molnar >> [dwmw2: We want ASM_CALL_CONSTRAINT for retpoline] > > If we want ASM_CALL_CONSTRAINT it would be more correct to backport > f5caf621ee35 ("x86/asm: Fix inline asm call constraints for Clang") > and some fixes for it: > 520a13c530ae ("x86/asm: Fix inline asm call constraints for GCC 4.4") > ca26cffa4e4a ("x86/asm: Allow again using asm.h when building for the 'bpf' clang target") > > Because ASM_CALL_CONSTRAINT added in f5caf621ee35, not in this patch. > > The end result looks fine though. So it's ok to keep it that way. > > >> Signed-off-by: David Woodhouse >> Signed-off-by: Greg Kroah-Hartman >> --- >> arch/x86/include/asm/asm.h | 11 +++++++++++ >> arch/x86/include/asm/thread_info.h | 11 ----------- >> arch/x86/kernel/irq_32.c | 6 +++--- >> arch/x86/kernel/traps.c | 2 +- >> arch/x86/mm/tlb.c | 2 +- >> 5 files changed, 16 insertions(+), 16 deletions(-) >> >> --- a/arch/x86/include/asm/asm.h >> +++ b/arch/x86/include/asm/asm.h >> @@ -125,4 +125,15 @@ >> /* For C file, we already have NOKPROBE_SYMBOL macro */ >> #endif >> >> +#ifndef __ASSEMBLY__ >> +/* >> + * This output constraint should be used for any inline asm which has a "call" >> + * instruction. Otherwise the asm may be inserted before the frame pointer >> + * gets set up by the containing function. If you forget to do this, objtool >> + * may print a "call without frame pointer save/setup" warning. >> + */ >> +register unsigned long current_stack_pointer asm(_ASM_SP); >> +#define ASM_CALL_CONSTRAINT "+r" (current_stack_pointer) >> +#endif >> + >> #endif /* _ASM_X86_ASM_H */