Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1110699yba; Tue, 2 Apr 2019 02:29:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqwLx/Yz6ic+S2NVCIcnHL1EHEo/ldBMzIB39CnURcV2ONz0B8nGp/85Ig3z48wKzLTTQ2t9 X-Received: by 2002:a17:902:b286:: with SMTP id u6mr30980212plr.310.1554197378361; Tue, 02 Apr 2019 02:29:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554197378; cv=none; d=google.com; s=arc-20160816; b=Auhr+sXGTK2hNqNIxwNYPLoqOWUJddhxL+vXotbKV2ogYwGRCfrH28JUVFp5DT74Qn sWz6s9HlQXdjXsMhfsf/jztlEWK+VFw09UNoOK3WPGClBzDPcRwNoxRd94LlrSu8JF5w FHxWqCqV1rFT9ZvBamHDz0CmHkEc882cknvKpPtTzdknVTDI1vAx2SAz56r/YFNPcliy yBj5lUqjdsshYrQiOD4OyKiLPRmGednQ2EMCfUaWOgYdcIWZaSdS3/WECsvZ5QpTBS8b Y5SRRe+jhmhgmKV95Sr43SZQpUoL1VqFGhSINlLeYbX6myjzE4QqHBYX/j/n4yoT30TK jMHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date; bh=Ft4plZD09LRNE7wFVXEKmkfBLYgRAODnLfMVI6qd1XI=; b=Rc4W1PJJMx6RRqYpTHUyjlja0Su80evmM4zE40OZKtjLzvB70XRD13xDJLHc73Qpl2 no5qSeF/8Mbmf0GBz4SDlL86XpezVDIh9jTRi8RaBzllXHKHQqUSe6TtDQoPIVq7GGzE Of1HlswXWJxWPwIdo1FSxOQRcMMT+GjkZhgR5pwpky/HWgC9nLZzp8DAvmpaOV4NKxnR KCSDAQFiwDh6nSptS47BR8spoeH1CNyLI/Lkn9ckrVKO+h7mHjGF5TXTQwcUYMPshI3u DWK59F01N8p/jFMr/dMGHRpRbWk31PdqzS2JfDI6zL0NZq3QaozSGBW7wztW+9F9GFee +j7g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b189si10643339pfa.65.2019.04.02.02.29.19; Tue, 02 Apr 2019 02:29:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729623AbfDBIys (ORCPT + 99 others); Tue, 2 Apr 2019 04:54:48 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:34121 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729030AbfDBIys (ORCPT ); Tue, 2 Apr 2019 04:54:48 -0400 Received: from [5.158.153.52] (helo=nanos.tec.linutronix.de) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1hBFBp-00006F-AE; Tue, 02 Apr 2019 10:54:41 +0200 Date: Tue, 2 Apr 2019 10:54:40 +0200 (CEST) From: Thomas Gleixner To: Andi Kleen cc: Andi Kleen , x86@kernel.org, Andrew Morton , LKML , Josh Poimboeuf Subject: Re: [PATCH 02/17] x86, lto: Mark all top level asm statements as .text In-Reply-To: Message-ID: References: <20190326213803.GN18020@tassilo.jf.intel.com> <20190327005523.bbxxittqf4d5bdz5@two.firstfloor.org> <20190327145918.GU18020@tassilo.jf.intel.com> <20190327154522.GV18020@tassilo.jf.intel.com> <20190327204049.GW18020@tassilo.jf.intel.com> <20190327222914.GX18020@tassilo.jf.intel.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 27 Mar 2019, Thomas Gleixner wrote: > On Wed, 27 Mar 2019, Andi Kleen wrote: > > > > > I checked the code general and with the .globl in NATIVE_LABEL the > > > > > > With or without? I removed that as well. > > > > With. > > > > LTO would still need the .globls because the variable and the asm > > statement can end up in different assembler files, and resolution > > would rely on the linker. > > This really sucks. As this is a constant source of trouble, we might better > bite the bullet and get rid of this fancy macro completely. It's not that > we add these patch patterns every other day. > > So a good old: > > /* xor %eax %ex */ > static const unsigend char patch_qspinlock[] = { 0x31, 0xc0 }; > > and then in the patch code: > > return paravirt_patch_insns(ibuf, len, patch_qspinlock, > patch_qspinlock + ARRAY_SIZE(patch_qspinlock)); > > might be less trouble than dealing with that clever inline assembly > forever. Just for the record. GCC people have confirmed that all the constructs suck in one way or the other and are just working by chance. So the above is the sanest solution. Thanks, tglx