Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp11127901imu; Mon, 31 Dec 2018 13:47:31 -0800 (PST) X-Google-Smtp-Source: ALg8bN78hevEHthJ7OyB38RkVzm8/Qv+7HWgcY2wOsUrL2JpLY1lOTlaNQAMqfDGbdHGtIZeO6Oi X-Received: by 2002:a62:5658:: with SMTP id k85mr39020980pfb.231.1546292851262; Mon, 31 Dec 2018 13:47:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546292851; cv=none; d=google.com; s=arc-20160816; b=OihKtye7ROg61bItDbkIwfkTnwOuyk6G+XORituvw6DNopkrtm/pfmVjb7B2uHdrwK FcQGdvqZBQi8eJ+a1+1vAwCNEqR6S/ricw2VVrBddPMJiTtDj5zMLeb0cnWVwMwKWg0R xKDhkUJuHd26Sqr2v5uFOtn2KZHLJoxdXQ/q4G6iYtgZAhvq/cSFrUX+NpttTO5YXKDD 38lOtpaNnJGeYN7NRzeRu4KE8oBQssyoyGqpd2NXKBbqgW+/xPEpvrJ3BR8xvY2zBlAN 97JAbnTOE7nndzIgpsJduzSXhTDq0UQMew2nYSQ7aXyLgeE49XHpT0lFEd3DDtQD9kaM 9XZA== 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=PDmB2e2vJguCOyLeWKb8k1dpHxe/0u4hkQP+6l2KVMI=; b=JP2Glg0+QPK2WUNVMVwHyxhfCBTOgUzPdsNCiz7V3w4RSIPUq2rJkm4/+9uvUR6bJz VO7JX+VR+MhtOUt/6YKroCtYUwCXY7WbBPiOfD2AlIP2JWv5lMYfCYuFQmPk2GifQJQw FWXt8Vml/Alfss6PutLXcKDhMkT1MgekHL9uP7WBniILoh5cnT6NfgJbd92j+0amnoIm 9V04hee3USuah4/3z0A5tmHhYUEn9MasSWICDKIt6vbZdkP+wmxjMiyX2NM7CNHy7hrs qIz7xCC1rqbA8iz8l5M8RPXwSa81j1D6qTVMand9SfLyRAQyIF0dUTzh799gWA0fJhyC XFiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="t8E/OUAZ"; 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 z128si46426525pgb.372.2018.12.31.13.46.59; Mon, 31 Dec 2018 13:47:31 -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="t8E/OUAZ"; 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 S1727848AbeLaUIa (ORCPT + 99 others); Mon, 31 Dec 2018 15:08:30 -0500 Received: from mail.kernel.org ([198.145.29.99]:44148 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727715AbeLaUI3 (ORCPT ); Mon, 31 Dec 2018 15:08:29 -0500 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 93B4A21871 for ; Mon, 31 Dec 2018 20:08:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1546286908; bh=AHNh+5sV20Jm6n+Nt4JXs0G1nBTP2KvgJj/KDwFx3Xo=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=t8E/OUAZ9pm7wjTvnB2YVutHI0Rw3Gbb0YO0cMGykhc5FV2BkkLCL/hCadzZWMJKk mo7Kt0vV4yhwjj31stI6TVtmu6lHfxd9NPthIfo636R7SD0l/lUIn+MwQNZ7nndhB/ sGBTX8ftddyB24iA96xqOFczbeZQO4KcnEXyTIOQ= Received: by mail-wm1-f45.google.com with SMTP id d15so24003075wmb.3 for ; Mon, 31 Dec 2018 12:08:28 -0800 (PST) X-Gm-Message-State: AA+aEWbqWzY8TJgnpcg7bffiHerY/mjAQkLsQQTG3GDDctvqZrvo6ttD TKBXPMNEgFLbLtHxx6jpTGGt554E3jU98nxb9LT5UA== X-Received: by 2002:a1c:b1d5:: with SMTP id a204mr33304419wmf.32.1546286907085; Mon, 31 Dec 2018 12:08:27 -0800 (PST) MIME-Version: 1.0 References: <20181231072112.21051-1-namit@vmware.com> <20181231072112.21051-2-namit@vmware.com> In-Reply-To: <20181231072112.21051-2-namit@vmware.com> From: Andy Lutomirski Date: Mon, 31 Dec 2018 12:08:15 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC v2 1/6] x86: introduce kernel restartable sequence To: Nadav Amit Cc: Ingo Molnar , Andy Lutomirski , Peter Zijlstra , Josh Poimboeuf , Edward Cree , "H . Peter Anvin" , Thomas Gleixner , LKML , Nadav Amit , X86 ML , Paolo Abeni , Borislav Petkov , David Woodhouse 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 Sun, Dec 30, 2018 at 11:20 PM Nadav Amit wrote: > > It is sometimes beneficial to have a restartable sequence - very few > instructions which if they are preempted jump to a predefined point. > > To provide such functionality on x86-64, we use an empty REX-prefix > (opcode 0x40) as an indication for instruction in such a sequence. Before > calling the schedule IRQ routine, if the "magic" prefix is found, we > call a routine to adjust the instruction pointer. It is expected that > this opcode is not in common use. > > The following patch will make use of this function. Since there are no > other users (yet?), the patch does not bother to create a general > infrastructure and API that others can use for such sequences. Yet, it > should not be hard to make such extension later. The following patch does not use it. Can you update this? > +asmlinkage __visible void restart_kernel_rseq(struct pt_regs *regs) > +{ > + if (user_mode(regs) || *(u8 *)regs->ip != KERNEL_RESTARTABLE_PREFIX) > + return; else? I suspect something is missing here. Or I'm very confused. > +}