Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756941AbbGVOWI (ORCPT ); Wed, 22 Jul 2015 10:22:08 -0400 Received: from mail-ig0-f195.google.com ([209.85.213.195]:33814 "EHLO mail-ig0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755785AbbGVOWD (ORCPT ); Wed, 22 Jul 2015 10:22:03 -0400 MIME-Version: 1.0 In-Reply-To: <20150713095757.GW19282@twins.programming.kicks-ass.net> References: <20150709190916.GI1522@ret.masoncoding.com> <20150713095757.GW19282@twins.programming.kicks-ass.net> Date: Wed, 22 Jul 2015 22:22:02 +0800 X-Google-Sender-Auth: a7JQ_hI5PwYN-Wb1U768IW_7X0E Message-ID: Subject: Re: [Ksummit-discuss] [CORE TOPIC] lightweight per-cpu locks / restartable sequences From: Lai Jiangshan To: Peter Zijlstra Cc: Christoph Lameter , Chris Mason , Andy Lutomirski , "ksummit-discuss@lists.linuxfoundation.org" , "linux-kernel@vger.kernel.org" , Jens Axboe , Mathieu Desnoyers , Shaohua Li , "Paul E. McKenney" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2478 Lines: 52 On Mon, Jul 13, 2015 at 5:57 PM, Peter Zijlstra wrote: > On Fri, Jul 10, 2015 at 12:26:21PM -0500, Christoph Lameter wrote: >> On Thu, 9 Jul 2015, Chris Mason wrote: >> >> > I think the topic is really interesting and we'll be able to get numbers >> > from production workloads to help justify and compare different >> > approaches. >> >> Ok that would be important. I also think that the approach may be used >> in kernel to reduce the overhead of CONFIG_PREEMPT and also to implement >> fast versions of this_cpu_ops for non x86 architectures and maybe even > > > Also, I don't think we need a schedule check for the in-kernel usage, > pure interrupt should be good enough, nobody should (want to) call > schedule() while inside such a critical section, which leaves us with > involuntary preemption, and those are purely interrupt driven. > > Now the 'problem' is finding these special regions fast, the easy > solution is the same as the one proposed for userspace, one big section. > That way the interrupt only has to check if the IP is inside this > section which is minimal effort. > > The down side is that all percpu ops would then end up being full > function calls. Which on some archs is indeed faster than disabling > interrupts, but not by much I'm afraid. Anther down site is that all percpu ops can't call any function outside the section. Otherwise we would fail to detect whether it is a special region or be hard to detect it. If we disallow the percpu ops calling any function, I think we can insert some special instructions to the generated code along with a notation in a table (like exception table for copy_to_user()). So thus the interrupt only has to check the special instructions near the IP and confirm it by check it on the table. > >> optimize the x86 variants if interrupts also can detect critical sections >> and restart at defined points. > > I really don't see how we can beat %GS prefixes with any such scheme. > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/