Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3964806imu; Fri, 30 Nov 2018 08:43:37 -0800 (PST) X-Google-Smtp-Source: AFSGD/UzT7MBCGseWJN+UmrNJi4r1CI9hWkCDYxf3yYNkLyYqhJoL0qPM48HrlA+FWSxJF+Ga4/T X-Received: by 2002:a17:902:a70b:: with SMTP id w11mr6360514plq.84.1543596217678; Fri, 30 Nov 2018 08:43:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543596217; cv=none; d=google.com; s=arc-20160816; b=pwihpPOa+rW2dfejfSRwJeSLWwMPH4t3WvXSxQEpDEKjCjytDHrPNZNQj+OTFqjo17 enhY5S8Al28SP2m1FaDutD9fCnWZfdnQuHJm0rlq10lCUv1q+/ME5JXHjVaSLEy+MCWB 4qT5FFYben/rkfzlw5+vcCM8kEkzSK1lHDzcQZSP/bWDP9V23eenvLLjLd3KHNE7kZka EOZxZnIoiaa9POt73r3FMfBby+VLcee3xrz4sR+zcs4FYW8RFEpysCcNGR2ZXOX6jikK h2rNzKcexntJWJxpFcdTDd+lkIZhvnxFjgimeR0qg4cpHTLfaiSrGpoVSSLhvMmNIvPj 0/+Q== 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=jhUNdqkG0SYbK+JjT8zxlIYzgBLpghfbSk/trUICtcA=; b=IrwIcjBMAcTxqweQ05jt8lHB807J0OVbTAvpBelhxugPNziqR3whOQL88sQGeQ3zp/ F+2s7RAZFHtRg6R+RYmBsHTqYaOpxzx9wOHo1WtpsVUdJF69C5EDHsmPWfzIt9rhj72a E4UQzNrB5ufJv7NFIQsPz5iCAnuUIAySJ4rBwPHeiNKaf0UH295BRyFuxZGH6YzauLfG drgjgJi2vgNEeJ7vxBk2WUxOxFvdJIIt/ME7k0aEXHLx0ERIboZwjOmmJUP0Ga+h+oc4 lAOdla5d43TOioL1Y9jMQ5KcemSlbU2jRihGtrq7VGxSk6a2FzhedI98LV39Y2qSuExJ 7pDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1OOS1qGM; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g8si6426705pli.50.2018.11.30.08.43.17; Fri, 30 Nov 2018 08:43:37 -0800 (PST) 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=@kernel.org header.s=default header.b=1OOS1qGM; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727013AbeLADwf (ORCPT + 99 others); Fri, 30 Nov 2018 22:52:35 -0500 Received: from mail.kernel.org ([198.145.29.99]:38246 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726647AbeLADwf (ORCPT ); Fri, 30 Nov 2018 22:52:35 -0500 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E94D72147D for ; Fri, 30 Nov 2018 16:42:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1543596161; bh=Xdu8CSMMhpHTJYPKAGfZoFnMfbGtGPIK7wVSfna4YyE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=1OOS1qGMMLWYs35wxfIih4SkkhASbVuTDPGrLzp8wzEaYyWlgMIgP3gGS4VKp3crw e9A7Yj/TCgtWeXCS8o0JFTTFzgAsGiQ127VP2YB2RkL1pCuB4fYCsxMyAesF9NA20q Z2QjBDfcIi0yjZHQqss4VIf5yI/1QT/2IX4EzHpQ= Received: by mail-wr1-f53.google.com with SMTP id v13so5909491wrw.5 for ; Fri, 30 Nov 2018 08:42:40 -0800 (PST) X-Gm-Message-State: AA+aEWZv3OrKB2STSWnRPbf7Jf9iVb5QQXgjMCAudhNa5WcVfBffnJ9R xWBEBujt0zEOLg260tHI0EiIvf9gRggYm+iBW5Wj/w== X-Received: by 2002:adf:ea81:: with SMTP id s1mr5429175wrm.309.1543596159325; Fri, 30 Nov 2018 08:42:39 -0800 (PST) MIME-Version: 1.0 References: <20181129121307.12393c57@gandalf.local.home> <20181129124404.2fe55dd0@gandalf.local.home> <20181129125857.75c55b96@gandalf.local.home> <20181129134725.6d86ade6@gandalf.local.home> <20181129202452.56f4j2wdct6qbaqo@treble> In-Reply-To: <20181129202452.56f4j2wdct6qbaqo@treble> From: Andy Lutomirski Date: Fri, 30 Nov 2018 08:42:26 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 4/4] x86/static_call: Add inline static call implementation for x86-64 To: Josh Poimboeuf Cc: Andrew Lutomirski , Linus Torvalds , Steven Rostedt , Peter Zijlstra , X86 ML , LKML , Ard Biesheuvel , Ingo Molnar , Thomas Gleixner , Masami Hiramatsu , Jason Baron , Jiri Kosina , David Laight , Borislav Petkov , julia@ni.com, jeyu@kernel.org, "H. Peter Anvin" 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 Thu, Nov 29, 2018 at 12:24 PM Josh Poimboeuf wrote: > > > Alternatively, we could actually emulate call instructions like this: > > > > void __noreturn jump_to_kernel_pt_regs(struct pt_regs *regs, ...) > > { > > struct pt_regs ptregs_copy = *regs; > > barrier(); > > *(unsigned long *)(regs->sp - 8) = whatever; /* may clobber old > > regs, but so what? */ > > asm volatile ("jmp return_to_alternate_ptregs"); > > } > > > > where return_to_alternate_ptregs points rsp to the ptregs and goes > > through the normal return path. It's ugly, but we could have a test > > case for it, and it should work fine. > > Is that really any better than my patch to create a gap in the stack > (modified for kernel space #BP only)? > I tend to prefer a nice local hack like mine over a hack that further complicates the entry in general. This is not to say I'm thrilled by my idea either.