Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp270559imu; Thu, 3 Jan 2019 19:28:02 -0800 (PST) X-Google-Smtp-Source: AFSGD/W558yIzwvxC2pvw8XHfDtLvvIjzGn2eqqug77CkvOplKRGxhJw7qtoIml38L35O75DI3v+ X-Received: by 2002:a62:1a44:: with SMTP id a65mr51650556pfa.30.1546572482305; Thu, 03 Jan 2019 19:28:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546572482; cv=none; d=google.com; s=arc-20160816; b=hwiDRwEP3SvKtJid1SlkmYUsIyqKOeRt9zsNqFgcSzp+vsAcjwJadLQV4sRqOMRnvF wISiRkWoa6QxyOCrHQbSgBdEbCAujE/WB7C1PtMeBSoahf+lJ1C7kGHWbTLNw1lfDgFY +bovPVpn1kHXzYGXnYhBmoEdfcbR8doKmJZDgU/ncEmjnGye/Zr13gY2KUYS1SZw914q GGjpFrdTeDI+b9ZnC9CgJ2flZnfKBkGZztVFjU2gzekt7sRamYyjmYtO404EjRWgFr3N o9uBP7ReA2hx3fZTHkg9+ny/H9vkboL4OQlG3up7yXAhE0gu26n+wJvbUZVKcS80NtC9 0/Dw== 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:message-id :in-reply-to:date:references:subject:cc:to:from; bh=+RO9kQMDgx946q3sq/89q+L3suub4vBfNaskPPrQClU=; b=hLHSbVFAMtBtmmmd0QUPxIgDwZTn1gOIYiWJUpOUyMlNsSuGkujQaATOx7xlpJR93T JIVQfPfVQQmqwVQ+ADm/nmyedXdPf2OYEScbGzH1WSKlyKSgyK8e7uL689LKAh9OzbPL sqhRTJvUr7WUhkd4i3LXt6WW38vmOdaHQ8jEn/aRpDHUHuQu+eFJsOjbbhN8E99Yn7mF 83i9jtXTwZ1mu4otwDThUnvE2yQi5eExCp6CKZXdNFv2rz/fEAKHu0p4RwhbgX9Iz3qX XPenFxyAnQIEy4EWbCXxHtXIYS83gssN7Z1SJ7gzLiHinIyy4ezpv/OVLKD1LHhxsdwm nzqg== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c15si52396732pgg.446.2019.01.03.19.27.47; Thu, 03 Jan 2019 19:28:02 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728477AbfACWVj (ORCPT + 99 others); Thu, 3 Jan 2019 17:21:39 -0500 Received: from mga02.intel.com ([134.134.136.20]:54250 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727196AbfACWVj (ORCPT ); Thu, 3 Jan 2019 17:21:39 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Jan 2019 14:21:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,436,1539673200"; d="scan'208";a="123132905" Received: from tassilo.jf.intel.com (HELO tassilo.localdomain) ([10.7.201.137]) by FMSMGA003.fm.intel.com with ESMTP; 03 Jan 2019 14:21:37 -0800 Received: by tassilo.localdomain (Postfix, from userid 1000) id A0D8D301B2E; Thu, 3 Jan 2019 14:21:37 -0800 (PST) From: Andi Kleen 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 Subject: Re: [RFC v2 1/6] x86: introduce kernel restartable sequence References: <20181231072112.21051-1-namit@vmware.com> <20181231072112.21051-2-namit@vmware.com> Date: Thu, 03 Jan 2019 14:21:37 -0800 In-Reply-To: <20181231072112.21051-2-namit@vmware.com> (Nadav Amit's message of "Sun, 30 Dec 2018 23:21:07 -0800") Message-ID: <87va35e61a.fsf@linux.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Nadav Amit writes: I see another poor man's attempt to reinvent TSX. > 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. You cannot just assume something like that. x86 is a constantly evolving architecture. The prefix might well have meaning at some point. Before doing something like that you would need to ask the CPU vendors to reserve the sequence you're using for software use. You're doing the equivalent of patching a private system call into your own kernel without working with upstream, don't do that. Better to find some other solution to do the restart. How about simply using a per cpu variable? That should be cheaper anyways. -Andi