From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 44CD7FA372A for ; Wed, 16 Oct 2019 18:48:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 246C62053B for ; Wed, 16 Oct 2019 18:48:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2394416AbfJPSsv convert rfc822-to-8bit (ORCPT ); Wed, 16 Oct 2019 14:48:51 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:51324 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731889AbfJPSsv (ORCPT ); Wed, 16 Oct 2019 14:48:51 -0400 Received: from bigeasy by Galois.linutronix.de with local (Exim 4.80) (envelope-from ) id 1iKoLi-0002ek-GR; Wed, 16 Oct 2019 20:48:42 +0200 Date: Wed, 16 Oct 2019 20:48:42 +0200 From: Sebastian Andrzej Siewior To: Cong Wang Cc: Sergei Shtylyov , Linux Kernel Network Developers , Jamal Hadi Salim , Jiri Pirko , Eric Dumazet , Thomas Gleixner , Marc Kleine-Budde , Peter Zijlstra , "David S. Miller" Subject: Re: [PATCH net-next v2] net: sched: Avoid using yield() in a busy waiting loop Message-ID: <20191016184842.v2f54epxautxbtig@linutronix.de> References: <20191011171526.fon5npsxnarpn3qp@linutronix.de> <8c3fad79-369a-403d-89fd-e54ab1b03643@cogentembedded.com> <20191016082833.u4jxbiqg3oo6lyue@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8BIT In-Reply-To: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On 2019-10-16 10:28:04 [-0700], Cong Wang wrote: > > Link: https://lkml.kernel.org/r/1393976987-23555-1-git-send-email-mkl@pengutronix.de > > BTW, this link doesn't work, 404 is returned. here it returns 200: |$ wget https://lkml.kernel.org/r/1393976987-23555-1-git-send-email-mkl@pengutronix.de |--2019-10-16 20:37:05-- https://lkml.kernel.org/r/1393976987-23555-1-git-send-email-mkl@pengutronix.de |Resolving lkml.kernel.org (lkml.kernel.org)... 54.69.74.255, 54.71.250.162 |Connecting to lkml.kernel.org (lkml.kernel.org)|54.69.74.255|:443... connected. |HTTP request sent, awaiting response... 302 Found |Location: https://lore.kernel.org/linux-rt-users/1393976987-23555-1-git-send-email-mkl@pengutronix.de/ [following] |--2019-10-16 20:37:06-- https://lore.kernel.org/linux-rt-users/1393976987-23555-1-git-send-email-mkl@pengutronix.de/ |Resolving lore.kernel.org (lore.kernel.org)... 54.71.250.162, 54.69.74.255 |Connecting to lore.kernel.org (lore.kernel.org)|54.71.250.162|:443... connected. |HTTP request sent, awaiting response... 200 OK |Length: 10044 (9,8K) [text/html] |Saving to: ‘1393976987-23555-1-git-send-email-mkl@pengutronix.de’ > > --- a/net/sched/sch_generic.c > > +++ b/net/sched/sch_generic.c > > @@ -1217,8 +1217,13 @@ void dev_deactivate_many(struct list_head *head) > > > > /* Wait for outstanding qdisc_run calls. */ > > list_for_each_entry(dev, head, close_list) { > > - while (some_qdisc_is_busy(dev)) > > - yield(); > > + while (some_qdisc_is_busy(dev)) { > > + /* wait_event() would avoid this sleep-loop but would > > + * require expensive checks in the fast paths of packet > > + * processing which isn't worth it. > > + */ > > + schedule_timeout_uninterruptible(1); > > I am curious why this is uninterruptible? You don't want a signal to wake it too early. It has to chill for a jiffy. > Thanks. Sebastian