Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1270357ybl; Fri, 23 Aug 2019 16:37:03 -0700 (PDT) X-Google-Smtp-Source: APXvYqx5VfO2wkscWHI50ePzO8lWiVw02JU8WDb2fRTQnnZt2R05Eb5uJDDS7bp3pVZGlxK7owGC X-Received: by 2002:a17:90a:c588:: with SMTP id l8mr7930426pjt.57.1566603423322; Fri, 23 Aug 2019 16:37:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566603423; cv=none; d=google.com; s=arc-20160816; b=P7tFlZy7tOo//eWNxL0kLsp6bKaH3le21sBjZSco4I4O2HN8l9y4gneFfAZbc/Gwsh UkYczXJ+jP5UALdeiJmtf71srfnjR87pZoHnJcECnv0E18bgdsqMIC1hrLXsRjPzOp+Y aKR6inB/PyuYpngBjbFvv9Y48fbJmFNEaO3dghAw0ByEEeX6wXtjm29C4V+lhgV7gWVB rG3VwzGy4L3J0oL2Hkwu7dXTffK/07uA8V9jbO2p90eGTOtMh6Ywst6evMhoi5rlQFC2 xT/lm6J6QFmQz42+msfoe8aJbSQFawBUz51c2B6e9+wwRsaUD1DpcgTiTR3Fo42novJp M1bw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:organization:references:in-reply-to:date:cc:to:from :subject:message-id; bh=YifcWigd/8dTEwqppbkr6AhcJ9wZ8BjPxpCOeDfrbYk=; b=gvBFZk+Er8UGQKBmwhseWa4blix98KaZS1T3nf8mjf9ZInpTrkoKE8erj4h11a0hlX lN2XyF/5K06NWpSxw6Qv2UBNtJYay33dj5htzd21cg/CGXKKEXqRqNKdnGLIkzxLvooM ZcBhol6MFwiQ8zfQINDAee6MaAq4bL2ScTOEjnBpPYSd40Cpkb2aKTzCjkx/SRC2KdsY SWIbrpQ9aEdeW/NSn3uQxIiiDqdkSvo/yNfX+ktNQEJ3rS0ClUEyseLtpXY/YA4H8k5O 7oRx5uFV2e2dYlVJcHXqcBu/dI+JxyxCzvpaxj4+gT3oR1H0BTfMVyygI6bxmG5PM52r f9zg== 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=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s18si2672751pfd.73.2019.08.23.16.36.47; Fri, 23 Aug 2019 16:37:03 -0700 (PDT) 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=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391584AbfHWT2w (ORCPT + 99 others); Fri, 23 Aug 2019 15:28:52 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40720 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728512AbfHWT2v (ORCPT ); Fri, 23 Aug 2019 15:28:51 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 225788AB25C; Fri, 23 Aug 2019 19:28:51 +0000 (UTC) Received: from ovpn-117-150.phx2.redhat.com (ovpn-117-150.phx2.redhat.com [10.3.117.150]) by smtp.corp.redhat.com (Postfix) with ESMTP id 82BF8600C1; Fri, 23 Aug 2019 19:28:47 +0000 (UTC) Message-ID: <433936e4c720e6b81f9b297fefaa592fd8a961ad.camel@redhat.com> Subject: Re: [PATCH RT v2 2/3] sched: migrate_enable: Use sleeping_lock to indicate involuntary sleep From: Scott Wood To: Sebastian Andrzej Siewior Cc: linux-rt-users@vger.kernel.org, linux-kernel@vger.kernel.org, "Paul E . McKenney" , Joel Fernandes , Thomas Gleixner , Peter Zijlstra , Juri Lelli , Clark Williams Date: Fri, 23 Aug 2019 14:28:46 -0500 In-Reply-To: <20190823162024.47t7br6ecfclzgkw@linutronix.de> References: <20190821231906.4224-1-swood@redhat.com> <20190821231906.4224-3-swood@redhat.com> <20190823162024.47t7br6ecfclzgkw@linutronix.de> Organization: Red Hat Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.30.5 (3.30.5-1.fc29) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.68]); Fri, 23 Aug 2019 19:28:51 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2019-08-23 at 18:20 +0200, Sebastian Andrzej Siewior wrote: > On 2019-08-21 18:19:05 [-0500], Scott Wood wrote: > > Without this, rcu_note_context_switch() will complain if an RCU read > > lock is held when migrate_enable() calls stop_one_cpu(). > > > > Signed-off-by: Scott Wood > > --- > > v2: Added comment. > > > > If my migrate disable changes aren't taken, then pin_current_cpu() > > will also need to use sleeping_lock_inc() because calling > > __read_rt_lock() bypasses the usual place it's done. > > > > include/linux/sched.h | 4 ++-- > > kernel/rcu/tree_plugin.h | 2 +- > > kernel/sched/core.c | 8 ++++++++ > > 3 files changed, 11 insertions(+), 3 deletions(-) > > > > --- a/kernel/sched/core.c > > +++ b/kernel/sched/core.c > > @@ -7405,7 +7405,15 @@ void migrate_enable(void) > > unpin_current_cpu(); > > preempt_lazy_enable(); > > preempt_enable(); > > + > > + /* > > + * sleeping_lock_inc suppresses a debug check for > > + * sleeping inside an RCU read side critical section > > + */ > > + sleeping_lock_inc(); > > stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg); > > + sleeping_lock_dec(); > > this looks like an ugly hack. This sleeping_lock_inc() is used where we > actually hold a sleeping lock and schedule() which is okay. But this > would mean we hold a RCU lock and schedule() anyway. Is that okay? Perhaps the name should be changed, but the concept is the same -- RT- specific sleeping which should be considered involuntary for the purpose of debug checks. Voluntary sleeping is not allowed in an RCU critical section because it will break the critical section on certain flavors of RCU, but that doesn't apply to the flavor used on RT. Sleeping for a long time in an RCU critical section would also be a bad thing, but that also doesn't apply here. -Scott