Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp1143050ybx; Thu, 7 Nov 2019 07:54:55 -0800 (PST) X-Google-Smtp-Source: APXvYqy2W+sD+d61xYv+7puv9Fo+74M32beRbSNvnoPmoKIGIPf11tMs8vr+Ufi+uEjzqCK8cdd6 X-Received: by 2002:a17:906:d793:: with SMTP id pj19mr3685974ejb.303.1573142095552; Thu, 07 Nov 2019 07:54:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573142095; cv=none; d=google.com; s=arc-20160816; b=hQBZkw9YU8jppDdMVG3GGWAOn+KZqOtONKtuoT5VbGcyiNwB418Jsc6cs6JTBR865H RMultTAF3Wpsh3C19gA5EAuwm8bsWeyNU8XTpD6/1BCrwJmlGw0Srbdqk6QgNUwiVeJt +YACJGZRBMF1xyTWOGgv4R158DR4Mci+qR/fnSCkFztn2jNv/IHw5v/O7LgCERh4FW0e +wCgHqx6NpdmLavF+xOeyR8RM4EjUgt8Dd8zZsRIUWW8lrpvV9ceNXTFOUPf2NbCEqkK 5HVI4NKQYjP67o1iFPI+CFAH0hSO5154ugbIMs6HeiCmzeG6qZe/UaYZQTjcst3HUUJj aRfg== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=BvpQiTzoSNOLl/q1KU0h21/2mu2JWepc5UyAI5hYXdI=; b=O4b5IYSMDNkL/6BLoz3S/nPn1MYhSC+gaYOoo2Fcf0H20osWH/PK8sAuuv3jQ7qhQ8 RiQXyVPB9FpHl4oC2B/4A+U918FiVsA5mR8DtjWdnRNxZuBuD0G9ZSGW3XgsWeL2+YXP nb2QT+zCZiQpTHf++7eMAqSXIYQEpvDr3K0lz8xg/WKlAlX98DXUGa4DRwbjjzyu6834 jiuh53kY/HLeavVuZeN2OfqS5mmDe6aUlDA2wyQaE/Sa4Njkbq33zbOT6+NSl51/dyMA MHQ+dIu0SLFaeqGnUZK2h3LoJeHR0FU6tFsCfE0J0WN+wt3gjhmDmq/UwAuCK0S13zpK MIaQ== 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=virtuozzo.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s46si1780348edd.336.2019.11.07.07.54.31; Thu, 07 Nov 2019 07:54:55 -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=virtuozzo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730114AbfKGPxW (ORCPT + 99 others); Thu, 7 Nov 2019 10:53:22 -0500 Received: from relay.sw.ru ([185.231.240.75]:39214 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726231AbfKGPxW (ORCPT ); Thu, 7 Nov 2019 10:53:22 -0500 Received: from [172.16.24.104] by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1iSk5o-0006bI-G0; Thu, 07 Nov 2019 18:53:04 +0300 Subject: Re: NULL pointer dereference in pick_next_task_fair To: Peter Zijlstra Cc: Quentin Perret , linux-kernel@vger.kernel.org, aaron.lwe@gmail.com, valentin.schneider@arm.com, mingo@kernel.org, pauld@redhat.com, jdesfossez@digitalocean.com, naravamudan@digitalocean.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, juri.lelli@redhat.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, kernel-team@android.com, john.stultz@linaro.org References: <20191028174603.GA246917@google.com> <20191106120525.GX4131@hirez.programming.kicks-ass.net> <33643a5b-1b83-8605-2347-acd1aea04f93@virtuozzo.com> <20191106165437.GX4114@hirez.programming.kicks-ass.net> <20191106172737.GM5671@hirez.programming.kicks-ass.net> <831c2cd4-40a4-31b2-c0aa-b5f579e770d6@virtuozzo.com> <20191107132628.GZ4114@hirez.programming.kicks-ass.net> <79ecf426-8728-f36b-57ad-5948e5633ffb@virtuozzo.com> <20191107154239.GE4114@hirez.programming.kicks-ass.net> From: Kirill Tkhai Message-ID: Date: Thu, 7 Nov 2019 18:53:02 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20191107154239.GE4114@hirez.programming.kicks-ass.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07.11.2019 18:42, Peter Zijlstra wrote: > On Thu, Nov 07, 2019 at 06:12:07PM +0300, Kirill Tkhai wrote: >> On 07.11.2019 16:26, Peter Zijlstra wrote: > >>> Urgh... throttling. > >> One more thing about current code in git. After rq->lock became able to >> be unlocked after put_prev_task() is commited, we got a new corner case. >> We usually had the same order for running task: >> >> dequeue_task() >> put_prev_task() >> >> Now the order may be reversed (this is also in case of throttling): >> >> put_prev_task() (called from pick_next_task()) >> dequeue_task() (called from another cpu) >> >> This is more theoretically, since I don't see a problem here. But there are >> too many statistics and counters in sched_class methods, that it is impossible >> to be sure all of them work as expected. > > Hmm,.. where does throttling happen on a remote CPU? I through both > cfs-bandwidth and dl throttle locally. > > Or are you talking about NO_HZ_FULL's sched_remote_tick() ? I mean ordinary path: local throttling -> resched_curr -> schedule(). Then rq->nr_running == 0, but task is on rq. We call put_prev_task() and newidle_balance(). On another cpu someone calls set_user_nice() and it makes dequeue_task() in the middle of local cpu's newidle_balance(). Thus, we first made put_prev_task() and second dequeue_task().