From patchwork Thu Mar 18 07:34:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kurt Kanzenbach X-Patchwork-Id: 12147511 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=-10.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 DD92EC433E6 for ; Thu, 18 Mar 2021 07:36:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9C8E164E2E for ; Thu, 18 Mar 2021 07:36:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229705AbhCRHfl (ORCPT ); Thu, 18 Mar 2021 03:35:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50046 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229600AbhCRHf0 (ORCPT ); Thu, 18 Mar 2021 03:35:26 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE040C06174A for ; Thu, 18 Mar 2021 00:35:25 -0700 (PDT) From: Kurt Kanzenbach DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1616052922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=fNpgBIfZj7cZtQhHFcbUOdV660Af3gyKNIhJMLqhBT4=; b=aMi+JuVjRFeJuBVAybnqr5WFwWLci2xl5Ztpjn7JHbvZwsbdowMD/oiW/jaxs48/2wjzWT ozMkNONMlmbQFhcqzgciD/RQGU//CuhJT15ydlCk2v4UM36BkxtHYYbLhU/IeF7GLNPms+ FZ/WjvfPdRRYQY7fjy6glvB4S1qttSiZXCCfvXM55SkjGEg7f/QlZP4HFo95xxFP03YQSu cu+0R+2o3ljgZTCQqaTYA6pJhnzv0u4LMbYoxGPkShbqshZ8tromrBzVxvO09Mr2H1WECd 0GQLw+Qlh0lkfx0FuRuVEbm7bbBReZC41qrbLeCVlHVQQPjzpbEJaKVrWuN/Xw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1616052922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=fNpgBIfZj7cZtQhHFcbUOdV660Af3gyKNIhJMLqhBT4=; b=2ie2EzwrhS45Pli4LMqsft1nTP6DE96hJl70nZf6gdfiqTVZwcL1MHrZOkr/Lo5qBgTtVi WVIfw2qp0FT6oRBw== To: Vinicius Costa Gomes Cc: Vladimir Oltean , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Jakub Kicinski , Sebastian Andrzej Siewior , netdev@vger.kernel.org, Kurt Kanzenbach Subject: [PATCH net-next 0/1] taprio: Handle short intervals and large packets Date: Thu, 18 Mar 2021 08:34:54 +0100 Message-Id: <20210318073455.17281-1-kurt@linutronix.de> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org Hi, there is a problem with the software implementation of TAPRIO and TCP communication. When using short intervals e.g. below one millisecond, large packets won't be transmitted. That's because the software implementation takes the packet length and calculates the transmission time. If the transmission time is larger than the configured interval, no packet will be transmitted. Fix that by segmenting the skb for the software implementation. Tested with software only and full hardware offloading applied using iperf3. Vinicius, do you mind testing as well? Changes since RFC: * Move segmentation, so that timestamps for tx assisted mode are calculated for the segments * Skip it for the full hardware offloading case Previous versions: * https://lkml.kernel.org/netdev/20210312092823.1429-1-kurt@linutronix.de/ Kurt Kanzenbach (1): taprio: Handle short intervals and large packets net/sched/sch_taprio.c | 64 +++++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 10 deletions(-)