Cover Letter Detail
Show a cover letter.
GET /api/covers/1122370/?format=api
{ "id": 1122370, "url": "http://patchwork.ozlabs.org/api/covers/1122370/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/cover/1561500439-30276-1-git-send-email-vedang.patel@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1561500439-30276-1-git-send-email-vedang.patel@intel.com>", "list_archive_url": null, "date": "2019-06-25T22:07:11", "name": "[net-next,v6,0/8] net/sched: Add txtime-assist support for taprio.", "submitter": { "id": 76208, "url": "http://patchwork.ozlabs.org/api/people/76208/?format=api", "name": "Vedang Patel", "email": "vedang.patel@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/cover/1561500439-30276-1-git-send-email-vedang.patel@intel.com/mbox/", "series": [ { "id": 116115, "url": "http://patchwork.ozlabs.org/api/series/116115/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=116115", "date": "2019-06-25T22:07:11", "name": "net/sched: Add txtime-assist support for taprio.", "version": 6, "mbox": "http://patchwork.ozlabs.org/series/116115/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/1122370/comments/", "headers": { "Return-Path": "<intel-wired-lan-bounces@osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=osuosl.org\n\t(client-ip=140.211.166.138; helo=whitealder.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdmarc=fail (p=none dis=none) header.from=intel.com" ], "Received": [ "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 45YLfF33Jbz9s4V\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 26 Jun 2019 08:38:12 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 5D6FF866A3;\n\tTue, 25 Jun 2019 22:38:11 +0000 (UTC)", "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id NvNtk3AG7Z53; Tue, 25 Jun 2019 22:38:09 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 6FC308651F;\n\tTue, 25 Jun 2019 22:38:09 +0000 (UTC)", "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 079D71BF38E\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 25 Jun 2019 22:07:26 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 0321D85F53\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 25 Jun 2019 22:07:26 +0000 (UTC)", "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 57cCK2TaByb0 for <intel-wired-lan@lists.osuosl.org>;\n\tTue, 25 Jun 2019 22:07:25 +0000 (UTC)", "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 2956185F4C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 25 Jun 2019 22:07:25 +0000 (UTC)", "from orsmga002.jf.intel.com ([10.7.209.21])\n\tby orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t25 Jun 2019 15:07:24 -0700", "from vpatel-desk.jf.intel.com (HELO localhost.localdomain)\n\t([10.7.159.52])\n\tby orsmga002.jf.intel.com with ESMTP; 25 Jun 2019 15:07:24 -0700" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.63,417,1557212400\"; d=\"scan'208\";a=\"172511920\"", "From": "Vedang Patel <vedang.patel@intel.com>", "To": "netdev@vger.kernel.org", "Date": "Tue, 25 Jun 2019 15:07:11 -0700", "Message-Id": "<1561500439-30276-1-git-send-email-vedang.patel@intel.com>", "X-Mailer": "git-send-email 2.7.3", "X-Mailman-Approved-At": "Tue, 25 Jun 2019 22:38:08 +0000", "Subject": "[Intel-wired-lan] [PATCH net-next v6 0/8] net/sched: Add\n\ttxtime-assist support for taprio.", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>", "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>", "Cc": "jiri@resnulli.us, l@dorileo.org, sergei.shtylyov@cogentembedded.com,\n\tjakub.kicinski@netronome.com, jhs@mojatatu.com, m-karicheri2@ti.com, \n\tintel-wired-lan@lists.osuosl.org, xiyou.wangcong@gmail.com,\n\teric.dumazet@gmail.com, davem@davemloft.net", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "Changes in v6:\n- Use _BITUL() instead of BIT() in UAPI for etf. (patch #1)\n- Fix a bug reported by kbuild test bot in length_to_duration(). (patch #6)\n- Remove an unused function (get_cycle_start()). (Patch #6)\n\nChanges in v5:\n- Commit message improved for the igb patch (patch #1).\n- Fixed typo in commit message for etf patch (patch #2).\n\nChanges in v4:\n- Remove inline directive from functions in foo.c.\n- Fix spacing in pkt_sched.h (for etf patch).\n\nChanges in v3:\n- Simplify implementation for taprio flags. \n- txtime_delay can only be set if txtime-assist mode is enabled.\n- txtime_delay and flags will only be visible in tc output if set by user.\n- Minor changes in error reporting.\n\nChanges in v2:\n- Txtime-offload has now been renamed to txtime-assist mode.\n- Renamed the offload parameter to flags.\n- Removed the code which introduced the hardware offloading functionality.\n\nOriginal Cover letter (with above changes included)\n--------------------------------------------------\n\nCurrently, we are seeing packets being transmitted outside their\ntimeslices. We can confirm that the packets are being dequeued at the right\ntime. So, the delay is induced after the packet is dequeued, because\ntaprio, without any offloading, has no control of when a packet is actually\ntransmitted.\n\nIn order to solve this, we are making use of the txtime feature provided by\nETF qdisc. Hardware offloading needs to be supported by the ETF qdisc in\norder to take advantage of this feature. The taprio qdisc will assign\ntxtime (in skb->tstamp) for all the packets which do not have the txtime\nallocated via the SO_TXTIME socket option. For the packets which already\nhave SO_TXTIME set, taprio will validate whether the packet will be\ntransmitted in the correct interval.\n\nIn order to support this, the following parameters have been added:\n- flags (taprio): This is added in order to support different offloading\n modes which will be added in the future.\n- txtime-delay (taprio): This indicates the minimum time it will take for\n the packet to hit the wire after it reaches taprio_enqueue(). This is\n useful in determining whether we can transmit the packet in the remaining\n time if the gate corresponding to the packet is currently open.\n- skip_skb_check (ETF): ETF currently drops any packet which does not have\n the SO_TXTIME socket option set. This check can be skipped by specifying\n this option.\n\nFollowing is an example configuration:\n\ntc qdisc replace dev $IFACE parent root handle 100 taprio \\\\\n num_tc 3 \\\\\n map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 \\\\\n queues 1@0 1@0 1@0 \\\\\n base-time $BASE_TIME \\\\\n sched-entry S 01 300000 \\\\\n sched-entry S 02 300000 \\\\\n sched-entry S 04 400000 \\\\\n flags 0x1 \\\\\n txtime-delay 200000 \\\\\n clockid CLOCK_TAI\n\ntc qdisc replace dev $IFACE parent 100:1 etf \\\\\n offload delta 200000 clockid CLOCK_TAI skip_skb_check\n\nHere, the \"flags\" parameter is indicating that the txtime-assist mode is\nenabled. Also, all the traffic classes have been assigned the same queue.\nThis is to prevent the traffic classes in the lower priority queues from\ngetting starved. Note that this configuration is specific to the i210\nethernet card. Other network cards where the hardware queues are given the\nsame priority, might be able to utilize more than one queue.\n\nFollowing are some of the other highlights of the series:\n- Fix a bug where hardware timestamping and SO_TXTIME options cannot be\n used together. (Patch 1)\n- Introduces the skip_skb_check option. (Patch 2)\n- Make TxTime assist mode work with TCP packets (Patch 7).\n\nThe following changes are recommended to be done in order to get the best\nperformance from taprio in this mode:\n# TSN in general does not allow Jumbo frames.\nip link set dev enp1s0 mtu 1514\n# Disable segmentation offload. This is to prevent NIC from sending packets\n# after the gate for a traffic class has closed.\nethtool -K eth0 gso off \nethtool -K eth0 tso off\n# Disable energy efficient ethernet to make sure there are no latency\n# spikes when NIC is trying to wake up when the packet is supposed to be\n# sent.\nethtool --set-eee eth0 eee off\n\nThanks,\nVedang Patel\n\nVedang Patel (8):\n igb: clear out skb->tstamp after reading the txtime\n etf: Don't use BIT() in UAPI headers.\n etf: Add skip_sock_check\n taprio: calculate cycle_time when schedule is installed\n taprio: Remove inline directive\n taprio: Add support for txtime-assist mode\n taprio: make clock reference conversions easier\n taprio: Adjust timestamps for TCP packets\n\n drivers/net/ethernet/intel/igb/igb_main.c | 1 +\n include/uapi/linux/pkt_sched.h | 9 +-\n net/sched/sch_etf.c | 10 +\n net/sched/sch_taprio.c | 421 +++++++++++++++++++++++++++---\n 4 files changed, 405 insertions(+), 36 deletions(-)" }