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=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 32A52C4360F for ; Wed, 27 Mar 2019 16:56:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 04FA9206C0 for ; Wed, 27 Mar 2019 16:56:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727938AbfC0Q4i (ORCPT ); Wed, 27 Mar 2019 12:56:38 -0400 Received: from metis.ext.pengutronix.de ([85.220.165.71]:43721 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727391AbfC0Q4h (ORCPT ); Wed, 27 Mar 2019 12:56:37 -0400 Received: from dude02.hi.pengutronix.de ([2001:67c:670:100:1d::28] helo=dude02.lab.pengutronix.de) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1h9Bqt-0005On-F5; Wed, 27 Mar 2019 17:56:35 +0100 Received: from mkl by dude02.lab.pengutronix.de with local (Exim 4.89) (envelope-from ) id 1h9Bqr-0000AM-N8; Wed, 27 Mar 2019 17:56:33 +0100 From: Marc Kleine-Budde To: netdev@vger.kernel.org Cc: davem@davemloft.net, linux-can@vger.kernel.org, kernel@pengutronix.de, Dave Taht , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Marc Kleine-Budde Subject: [PATCH 2/2] can: dev: let all CAN devices use pfifo_fast as default scheduler Date: Wed, 27 Mar 2019 17:56:32 +0100 Message-Id: <20190327165632.10711-3-mkl@pengutronix.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190327165632.10711-1-mkl@pengutronix.de> References: <20190327165632.10711-1-mkl@pengutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::28 X-SA-Exim-Mail-From: mkl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: netdev@vger.kernel.org Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When using fq_codel and sending raw frames over CAN, which is the common use case, the user space thinks the package has been sent without problems, because send() returned without an error. pfifo_fast will drop skbs, if the queue length exceeds the maximum. But with this scheduler the skbs at the tail are dropped, an error (-ENOBUFS) is propagated to user space. So that the user space can slow down the package generation. On distributions, where fq_codel is made default via CONFIG_DEFAULT_NET_SCH during compile time, or set default during runtime with sysctl net.core.default_qdisc (see [1]), we get a bad user experience. In my test case with pfifo_fast, I can transfer thousands of million CAN frames without a frame drop. On the other hand with fq_codel there is more then one lost CAN frame per thousand frames. This patch sets the flag IFF_FIFO_QUEUE on all CAN devices. Cc: Dave Taht Signed-off-by: Marc Kleine-Budde --- drivers/net/can/dev.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c index c05e4d50d43d..34bcabc35127 100644 --- a/drivers/net/can/dev.c +++ b/drivers/net/can/dev.c @@ -646,6 +646,7 @@ static void can_setup(struct net_device *dev) /* New-style flags. */ dev->flags = IFF_NOARP; + dev->priv_flags = IFF_FIFO_QUEUE; dev->features = NETIF_F_HW_CSUM; } -- 2.20.1