Received: by 10.223.185.111 with SMTP id b44csp800547wrg; Fri, 9 Mar 2018 14:03:56 -0800 (PST) X-Google-Smtp-Source: AG47ELtDE0PawzVnOSfW9EvPH1hzdHt3myBBNI/ed8wdOO1CtuXaC3Q2koo7EQDNMSmDRGxr+wRp X-Received: by 2002:a17:902:5303:: with SMTP id b3-v6mr29616361pli.19.1520633036496; Fri, 09 Mar 2018 14:03:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520633036; cv=none; d=google.com; s=arc-20160816; b=SrOgUuHVJD9E49yA8IlDgcp/qDblDIK0KMBJdO8V8tNl8Ne4oIZo7G+arDNruLsuaW b6NfCScyIxLxCvZ0pwBAjIjiDVspb12ScnBoI9Am2R/8BJnaL2KjW7UrA1PIog/al+Dz oKO9pEP482xjh8NsvDw/RWna4DWs+cr3X+9ZUQ8qCEfcpl3j9vA39yineqdBXm/IEac3 0BVocUhEQAOSkPWGCD7gpHekX8Dt3DM7ZrVUuYdWMrv2HGSLosOlgIvtR5xbPezF8gt2 MT1D9s0pwnpKlo6ruUvueUb6iz6j1wz4EjCJLRS1JRQhWtD6f8WzfbdMsvBLZrWagSPZ 22UA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=4dLtrlR72qMw7iMzKa0OHE7/+1IXc1EhaaJZtzTuf+s=; b=JEPiIR4Gkn1wD7JT7Uwv2PNLJhGigyfhiAKxdkBKN8nqhJaY6PejGiMFLeqFJKCIAr TvZZtv7ODpEZrD/IVZpkvgEI0tq4yBnUm1D4PN8U8dOyjGSgU+IxBqitO0bsQkO6SBsk TV0m1nFn69vvOTGyU7Y6VmnR/T6s7I8XRuIrs+io7BLRIpMft18q0SwuAmkmwE9JVRlP XFkh/f8S7Gvt47DCSuSOYLcHikCNAFtp4MPa/tb3N973RWeBxIYoIK3xJfJhK0h1M2Jp gzRjhB3hYKdBgqyNdlsIpomfYNYNO3+x879d6Obq4MPGeXskSY9XLz/7IB/R61UTOJQr 4haA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mvista-com.20150623.gappssmtp.com header.s=20150623 header.b=XQKnpW4X; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y10si1319371pge.31.2018.03.09.14.03.41; Fri, 09 Mar 2018 14:03:56 -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; dkim=pass header.i=@mvista-com.20150623.gappssmtp.com header.s=20150623 header.b=XQKnpW4X; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932556AbeCIWCr (ORCPT + 99 others); Fri, 9 Mar 2018 17:02:47 -0500 Received: from mail-pg0-f50.google.com ([74.125.83.50]:39832 "EHLO mail-pg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932104AbeCIWCp (ORCPT ); Fri, 9 Mar 2018 17:02:45 -0500 Received: by mail-pg0-f50.google.com with SMTP id e3so4062068pga.6 for ; Fri, 09 Mar 2018 14:02:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mvista-com.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=4dLtrlR72qMw7iMzKa0OHE7/+1IXc1EhaaJZtzTuf+s=; b=XQKnpW4XCv13vDQ1OPsiOZGwVG/4zs5CDIQPKRpPVLfhY5N/OfOGfOYqSrku+08FxS SOLB0wCa1VbXFdiB2PQrfLZFaSxwsKeM2fmbCRHQeV4CfDFfxsSyRdZidvWA7ABK5mWu wpeUcXMYeY2Er+SkDRAfgUc30J/jRndqgZFx6KbZmQwjjWwnd6qezi/UGaO6CuR+UMXq UWNYvu5qfLM0wKlUMIKvRDMSwON5DFhukBhgRX0EZ6VrwkcEv/ULdCLS79w9a7Zr6DyZ y/EMAnMVgU2vqFMjTDB3oGDYiWb6xxFaCSLwsvCKwW8TK791QokDsq1XYf/U4+poXQ8U T2jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=4dLtrlR72qMw7iMzKa0OHE7/+1IXc1EhaaJZtzTuf+s=; b=SGE20Olr+T1Uas434M6Debje+wpZym7UqyTFFCIxlhrbjLMMXrP/9BESd9PwqjoKvi Eg48RcycnkimALMDCHDFoDHDBgMxAmSX8ZZg9thEkwwuR790w1UoF2Xnc/9xoC7JjI3F NxLYvCpc/vJ8nXIA6yMhkEm4DWicOrTO+xdheq9naDq5jhK0jhgtvwf1CK+WgyEkiHOv zif3cWOpdSuqroQYJ341tUIUSFxpYuSAg0l447PmDS5ZHyk7i40KDX4rDx+iEMGijCOA gNPYGgMY3bZmf7CjQ/DJ3hIgqdupk033580iFzYrYkAs4yDoRyG4GoNj1qMW3H+hR9MR tNgw== X-Gm-Message-State: APf1xPA154kI1dBC1AE0q6ZNRXkcj3QPgG2YHcvAzuAu7D43N+dzOSJ6 t8pWykk8cCfRpevyUFndpq6YmNiMHg0= X-Received: by 10.99.2.140 with SMTP id 134mr25939493pgc.117.1520632965084; Fri, 09 Mar 2018 14:02:45 -0800 (PST) Received: from [192.168.27.3] ([47.184.168.85]) by smtp.gmail.com with ESMTPSA id g5sm4220997pfh.6.2018.03.09.14.02.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Mar 2018 14:02:44 -0800 (PST) Subject: Re: Warning from swake_up_all in 4.14.15-rt13 non-RT To: Peter Zijlstra , Sebastian Andrzej Siewior Cc: Thomas Gleixner , Steven Rostedt , linux-rt-users , linux-kernel , Tejun Heo References: <20180306174604.nta5rcvfvrfdfftz@linutronix.de> <1704d817-8fb9-ce8f-1aa1-fe6e8b0c3919@mvista.com> <20180308174103.mduy5qq2ttlcvig3@linutronix.de> <20180309110418.lwtennjqwqcxh422@linutronix.de> <20180309174605.GC4064@hirez.programming.kicks-ass.net> From: Corey Minyard Message-ID: <40965186-bf28-3973-7602-3595e89b6180@mvista.com> Date: Fri, 9 Mar 2018 16:02:42 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180309174605.GC4064@hirez.programming.kicks-ass.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-GB Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/09/2018 11:46 AM, Peter Zijlstra wrote: > On Fri, Mar 09, 2018 at 12:04:18PM +0100, Sebastian Andrzej Siewior wrote: >> +void swake_add_all_wq(struct swait_queue_head *q, struct wake_q_head *wq) >> { >> struct swait_queue *curr; >> >> while (!list_empty(&q->task_list)) { >> >> curr = list_first_entry(&q->task_list, typeof(*curr), >> task_list); >> list_del_init(&curr->task_list); >> + wake_q_add(wq, curr->task); >> } >> } >> +EXPORT_SYMBOL(swake_add_all_wq); >> >> void swake_up(struct swait_queue_head *q) >> { >> @@ -66,25 +62,14 @@ EXPORT_SYMBOL(swake_up); >> */ >> void swake_up_all(struct swait_queue_head *q) >> { >> + unsigned long flags; >> + DEFINE_WAKE_Q(wq); >> >> + raw_spin_lock_irqsave(&q->lock, flags); >> + swake_add_all_wq(q, &wq); >> + raw_spin_unlock_irqrestore(&q->lock, flags); >> >> + wake_up_q(&wq); >> } >> EXPORT_SYMBOL(swake_up_all); > This is fundamentally wrong. The whole point of wake_up_all() is that > _all_ is unbounded and should not ever land in a single critical > section, be it IRQ or PREEMPT disabled. The above does both. It seems to me to be better than what was there, certainly more efficient. And if I understand this correctly it is unbounded when !RT, but it is bounded on RT. And I'm biased, because it should fix my problem :). > Yes, wake_up_all() is crap, it is also fundamentally incompatible with > in-*irq usage. Nothing to be done about that. > > So NAK on this. So what would you suggest?  At this point getting rid of all the users of wake_up_all() from interrupt context is not really an option, though as an eventual goal it would be good. -corey