Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp8260175ybi; Tue, 9 Jul 2019 12:09:34 -0700 (PDT) X-Google-Smtp-Source: APXvYqwEyaDY4h4UN2U4qLbc6shETEbBwKJ0sKSYMhGeUfsJVclKMJm++vNMrkOQE3oR1Z/59CxN X-Received: by 2002:a17:90a:bb01:: with SMTP id u1mr1825558pjr.92.1562699374185; Tue, 09 Jul 2019 12:09:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562699374; cv=none; d=google.com; s=arc-20160816; b=w/YKt+DodonT333Uz00LnqNcBta8MYbdeHiNd5S4fg2Sn2uzwv2cwS/VmkBv/4HeD8 7nyK82tq9Dj0BaowpHBNSHfsp7zSRq8zgIwYWr2n2e/Fg6XV5dOcL+/2/62+i+2yJlKf PZybZwI4mCb7teRJfk+V6EviMcEWilBZrMLGAIuzxd0r6xw6RNU7a5DHEepu3x1N6R4F 75oynQsD5P8yFbg82dzzOL+/l64uTqiWG2aEztzUg979O4RFsYa5nHZbkFHruraw7txI r84LkjWlDeKBoXHjMvQsj++YhS2xWyCiuLWaGy1GVCZrL/BC8/I3NvMMtZ9wxBlobEF6 CzyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=eK+xewQIWx/F1jZ9xUWUB+xnJfY4b6YBYNbe+JCkf34=; b=hMZT8hQJg/lkzQFva74rxS0u5zLnBpQEGTF+L8c+ecH+wARj64TpOHcRPuHOIuM6NP n3AdhWIY2kTCdG8Twuhouy9xP0NmBtp4GSR3KvXx2AeNvpnXdhfQT470pHZtPWFEn9O4 wPCSo6xLivxQq3E7x+iASlJ0Ul2ABsAMJy+VQ2ssyAxicLOejHXWD+VNQFNhSSw/o9ii aeYErY5o04Be3Xgmsc0m0bI522dYO/SSIwyw8nLVJu1Isptrk1CowcaTWdUjkFuAsUI0 FLlT++TxP8V0yIqarpPw3CYZNJBWV9yH1FOyi5R6M0qWKxGO0MY4dccjyHULKvD+Wy9W WT8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=ZqpFQHXV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x203si15229922pgx.545.2019.07.09.12.09.18; Tue, 09 Jul 2019 12:09:34 -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; dkim=pass header.i=@chromium.org header.s=google header.b=ZqpFQHXV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729214AbfGISsD (ORCPT + 99 others); Tue, 9 Jul 2019 14:48:03 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:35929 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726133AbfGISsD (ORCPT ); Tue, 9 Jul 2019 14:48:03 -0400 Received: by mail-ed1-f66.google.com with SMTP id k21so18788187edq.3 for ; Tue, 09 Jul 2019 11:48:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=eK+xewQIWx/F1jZ9xUWUB+xnJfY4b6YBYNbe+JCkf34=; b=ZqpFQHXVR6K0FCwEd+vfPBI8Dcro2Z85YfwX6ySYtov0K4gBR+9zCFxbpcTJfV/80C MQfA+fm3xaDKEWqgtsv3ycOk9s0dLt1gp2ifffjhOCTa50oNpaKn7SgVWU/qzL+S3sMS W4To20natzJR9fhWCUrqpqv8kZ66fxDWaVoCI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=eK+xewQIWx/F1jZ9xUWUB+xnJfY4b6YBYNbe+JCkf34=; b=qMjxCw3K5iz9o+vmW8Dxi0dCvRg5gIcZYs7zJY2jTvc814ym+R3MJSC5m8htdfbBAC jw5D0HUDlzT5I8LS8ZxHsCJ1LvjXmy4vh8Ac2yEUst1d6GAgcNDpNXqak65QvJqBRDkC Ab6BtbYQMIM6yJCysgNsjkeVowKBfxZ2WefViomdNBOUFZwJdMhNhYFAsbRNv/xqRDUc Y1PjXHu5laPfjw66xT+A6dVIpk25AgR6D0lJvFPCU+aWAEMYgUTE3D098sGL30HfOScC hynmw/KPe4W87BciCLA5Yju/Ls8nONI4zBemLa5+ElasCOeKrtjNYiJZTkKu4bFad4zD iJqw== X-Gm-Message-State: APjAAAUDHwfJAgT7MOiY/pa7ISQ850Rb/ToXCzMgJeNNTv2Z7UHoqfoX xy5cLztLM8pcNJlx2ARhRZhKyzhppFU= X-Received: by 2002:a50:f4dd:: with SMTP id v29mr27022276edm.246.1562698081510; Tue, 09 Jul 2019 11:48:01 -0700 (PDT) Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com. [209.85.221.50]) by smtp.gmail.com with ESMTPSA id y22sm6439843edw.94.2019.07.09.11.48.00 for (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Tue, 09 Jul 2019 11:48:01 -0700 (PDT) Received: by mail-wr1-f50.google.com with SMTP id z1so17509287wru.13 for ; Tue, 09 Jul 2019 11:48:00 -0700 (PDT) X-Received: by 2002:a5d:5152:: with SMTP id u18mr17305021wrt.9.1562698080410; Tue, 09 Jul 2019 11:48:00 -0700 (PDT) MIME-Version: 1.0 References: <20190708190930.GA16215@avx2> <20190709183921.GA27282@avx2> In-Reply-To: <20190709183921.GA27282@avx2> From: Thomas Garnier Date: Tue, 9 Jul 2019 11:47:48 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v8 06/11] x86/CPU: Adapt assembly for PIE support To: Alexey Dobriyan Cc: LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 9, 2019 at 11:39 AM Alexey Dobriyan wrote: > > On Mon, Jul 08, 2019 at 12:35:13PM -0700, Thomas Garnier wrote: > > On Mon, Jul 8, 2019 at 12:09 PM Alexey Dobriyan wrote: > > > > > > Thomas Garnier wrote: > > > > - "pushq $1f\n\t" > > > > + "movabsq $1f, %q0\n\t" > > > > + "pushq %q0\n\t" > > > > "iretq\n\t" > > > > UNWIND_HINT_RESTORE > > > > "1:" > > > > > > Fake PIE. True PIE looks like this: > > > > I used movabsq in couple assembly changes where the memory context is > > unclear and relative reference might lead to issues. It happened on > > early boot and hibernation save/restore paths. Do you think a relative > > reference in this function will always be accurate? > > As long as iretq target is not too far it should be OK. > > I'm not really sure which issues can pop up. > > IRETQ is 64-bit only, RIP-relative addressing is 64-bit only. > Assembler (hopefully) will error compilation if target is too far. > > And it is shorter than movabsq. Agree, I will change it and run some tests for the next iteration. > > > > ffffffff81022d70 : > > > ffffffff81022d70: 8c d0 mov eax,ss > > > ffffffff81022d72: 50 push rax > > > ffffffff81022d73: 54 push rsp > > > ffffffff81022d74: 48 83 04 24 08 add QWORD PTR [rsp],0x8 > > > ffffffff81022d79: 9c pushf > > > ffffffff81022d7a: 8c c8 mov eax,cs > > > ffffffff81022d7c: 50 push rax > > > ffffffff81022d7d: ===> 48 8d 05 03 00 00 00 lea rax,[rip+0x3] # ffffffff81022d87 > > > ffffffff81022d84: 50 push rax > > > ffffffff81022d85: 48 cf iretq > > > ffffffff81022d87: c3 ret > > > > > > Signed-off-by: Alexey Dobriyan > > > > > > --- a/arch/x86/include/asm/processor.h > > > +++ b/arch/x86/include/asm/processor.h > > > @@ -710,7 +710,8 @@ static inline void sync_core(void) > > > "pushfq\n\t" > > > "mov %%cs, %0\n\t" > > > "pushq %q0\n\t" > > > - "pushq $1f\n\t" > > > + "leaq 1f(%%rip), %q0\n\t" > > > + "pushq %q0\n\t" > > > "iretq\n\t" > > > UNWIND_HINT_RESTORE > > > "1:"