From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932978AbbFWQhs (ORCPT ); Tue, 23 Jun 2015 12:37:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39399 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932323AbbFWQhk (ORCPT ); Tue, 23 Jun 2015 12:37:40 -0400 Date: Tue, 23 Jun 2015 18:36:24 +0200 From: Oleg Nesterov To: Peter Zijlstra Cc: paulmck@linux.vnet.ibm.com, tj@kernel.org, mingo@redhat.com, linux-kernel@vger.kernel.org, der.herr@hofr.at, dave@stgolabs.net, riel@redhat.com, viro@ZenIV.linux.org.uk, torvalds@linux-foundation.org Subject: Re: [RFC][PATCH 12/13] stop_machine: Remove lglock Message-ID: <20150623163624.GA24874@redhat.com> References: <20150622121623.291363374@infradead.org> <20150622122256.765619039@infradead.org> <20150622222152.GA4460@redhat.com> <20150623100932.GB3644@twins.programming.kicks-ass.net> <20150623105548.GE18673@twins.programming.kicks-ass.net> <20150623112041.GF18673@twins.programming.kicks-ass.net> <20150623130826.GG18673@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150623130826.GG18673@twins.programming.kicks-ass.net> User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/23, Peter Zijlstra wrote: > > void synchronize_sched_expedited(void) > { ... > - while (try_stop_cpus(cma ? cm : cpu_online_mask, > - synchronize_sched_expedited_cpu_stop, > - NULL) == -EAGAIN) { > - put_online_cpus(); > - atomic_long_inc(&rsp->expedited_tryfail); > - > - /* Check to see if someone else did our work for us. */ > - s = atomic_long_read(&rsp->expedited_done); > - if (ULONG_CMP_GE((ulong)s, (ulong)firstsnap)) { > - /* ensure test happens before caller kfree */ > - smp_mb__before_atomic(); /* ^^^ */ > - atomic_long_inc(&rsp->expedited_workdone1); > - free_cpumask_var(cm); > - return; > - } ... > + for_each_online_cpu(cpu) { > + struct rcu_dynticks *rdtp = &per_cpu(rcu_dynticks, cpu); ... > + stop_one_cpu(cpu, synchronize_sched_expedited_cpu_stop, NULL); I too thought about something like this change ;) Not sure I read this patch correctly, but it seems that then you can remove all rsp->expedited_* members/code ? Oleg.