Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/979763/?format=api
{ "id": 979763, "url": "http://patchwork.ozlabs.org/api/patches/979763/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20181005163356.23996-2-jacob.e.keller@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": "<20181005163356.23996-2-jacob.e.keller@intel.com>", "list_archive_url": null, "date": "2018-10-05T16:33:56", "name": "[net-next,2/2] intel-ethernet: software timestamp skbs as late as possible", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "e7e758fae5f21e39a6f72500b93d3143f0f97548", "submitter": { "id": 9784, "url": "http://patchwork.ozlabs.org/api/people/9784/?format=api", "name": "Jacob Keller", "email": "jacob.e.keller@intel.com" }, "delegate": { "id": 68, "url": "http://patchwork.ozlabs.org/api/users/68/?format=api", "username": "jtkirshe", "first_name": "Jeff", "last_name": "Kirsher", "email": "jeffrey.t.kirsher@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20181005163356.23996-2-jacob.e.keller@intel.com/mbox/", "series": [ { "id": 69310, "url": "http://patchwork.ozlabs.org/api/series/69310/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=69310", "date": "2018-10-05T16:33:56", "name": "[net-next,1/2] ixgbevf: add support for software timestamps", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/69310/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/979763/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/979763/checks/", "tags": {}, "related": [], "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.137; helo=fraxinus.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 fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\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 42RglZ3kpHz9s3Z\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 6 Oct 2018 06:07:22 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id DBDA8865B5;\n\tFri, 5 Oct 2018 20:07:20 +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 X84lRbnPOfXc; Fri, 5 Oct 2018 20:07:18 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id DBB33866CB;\n\tFri, 5 Oct 2018 20:07:16 +0000 (UTC)", "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 10C931C335A\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 5 Oct 2018 20:06:01 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id CC02F84E36\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 5 Oct 2018 16:39:24 +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 4eszXHlyKBmY for <intel-wired-lan@lists.osuosl.org>;\n\tFri, 5 Oct 2018 16:39:24 +0000 (UTC)", "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 34DB984E3E\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 5 Oct 2018 16:39:24 +0000 (UTC)", "from orsmga001.jf.intel.com ([10.7.209.18])\n\tby orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t05 Oct 2018 09:39:22 -0700", "from jekeller-desk.amr.corp.intel.com ([134.134.177.161])\n\tby orsmga001.jf.intel.com with ESMTP; 05 Oct 2018 09:33:58 -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.54,345,1534834800\"; d=\"scan'208\";a=\"96796829\"", "From": "Jacob Keller <jacob.e.keller@intel.com>", "To": "Intel Wired LAN <intel-wired-lan@lists.osuosl.org>", "Date": "Fri, 5 Oct 2018 09:33:56 -0700", "Message-Id": "<20181005163356.23996-2-jacob.e.keller@intel.com>", "X-Mailer": "git-send-email 2.18.0.219.gaf81d287a9da", "In-Reply-To": "<20181005163356.23996-1-jacob.e.keller@intel.com>", "References": "<20181005163356.23996-1-jacob.e.keller@intel.com>", "Subject": "[Intel-wired-lan] [net-next 2/2] intel-ethernet: software timestamp\n\tskbs as late as possible", "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>", "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": "Many of the Intel Ethernet drivers call skb_tx_timestamp() earlier than\nnecessary. Move the calls to this function to the latest point possible,\njust prior to notifying hardware of the new Tx packet when we bump the\ntail register.\n\nThis affects i40e, iavf, igb, igc, and ixgbe.\n\nThe e100, e1000, e1000e, fm10k, and ice drivers already call the\nskb_tx_timestamp() function just prior to indicating the Tx packet to\nhardware, so they do not need to be changed.\n\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\n---\n drivers/net/ethernet/intel/i40e/i40e_txrx.c | 4 ++--\n drivers/net/ethernet/intel/iavf/iavf_txrx.c | 4 ++--\n drivers/net/ethernet/intel/igb/igb_main.c | 4 ++--\n drivers/net/ethernet/intel/igc/igc_main.c | 4 ++--\n drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++--\n 5 files changed, 10 insertions(+), 10 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\nindex 740ea58ba938..159a79e45196 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n@@ -3474,6 +3474,8 @@ static inline int i40e_tx_map(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \ttx_desc->cmd_type_offset_bsz =\n \t\t\tbuild_ctob(td_cmd, td_offset, size, td_tag);\n \n+\tskb_tx_timestamp(skb);\n+\n \t/* Force memory writes to complete before letting h/w know there\n \t * are new descriptors to fetch.\n \t *\n@@ -3653,8 +3655,6 @@ static netdev_tx_t i40e_xmit_frame_ring(struct sk_buff *skb,\n \tif (tsyn)\n \t\ttx_flags |= I40E_TX_FLAGS_TSYN;\n \n-\tskb_tx_timestamp(skb);\n-\n \t/* always enable CRC insertion offload */\n \ttd_cmd |= I40E_TX_DESC_CMD_ICRC;\n \ndiff --git a/drivers/net/ethernet/intel/iavf/iavf_txrx.c b/drivers/net/ethernet/intel/iavf/iavf_txrx.c\nindex edc349f49748..7ec0c6fcfa89 100644\n--- a/drivers/net/ethernet/intel/iavf/iavf_txrx.c\n+++ b/drivers/net/ethernet/intel/iavf/iavf_txrx.c\n@@ -2344,6 +2344,8 @@ static inline void iavf_tx_map(struct iavf_ring *tx_ring, struct sk_buff *skb,\n \ttx_desc->cmd_type_offset_bsz =\n \t\t\tbuild_ctob(td_cmd, td_offset, size, td_tag);\n \n+\tskb_tx_timestamp(skb);\n+\n \t/* Force memory writes to complete before letting h/w know there\n \t * are new descriptors to fetch.\n \t *\n@@ -2462,8 +2464,6 @@ static netdev_tx_t iavf_xmit_frame_ring(struct sk_buff *skb,\n \tif (tso < 0)\n \t\tgoto out_drop;\n \n-\tskb_tx_timestamp(skb);\n-\n \t/* always enable CRC insertion offload */\n \ttd_cmd |= IAVF_TX_DESC_CMD_ICRC;\n \ndiff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c\nindex 5aa73199420a..151444d472f3 100644\n--- a/drivers/net/ethernet/intel/igb/igb_main.c\n+++ b/drivers/net/ethernet/intel/igb/igb_main.c\n@@ -6019,6 +6019,8 @@ static int igb_tx_map(struct igb_ring *tx_ring,\n \t/* set the timestamp */\n \tfirst->time_stamp = jiffies;\n \n+\tskb_tx_timestamp(skb);\n+\n \t/* Force memory writes to complete before letting h/w know there\n \t * are new descriptors to fetch. (Only applicable for weak-ordered\n \t * memory model archs, such as IA-64).\n@@ -6147,8 +6149,6 @@ netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb,\n \telse if (!tso)\n \t\tigb_tx_csum(tx_ring, first);\n \n-\tskb_tx_timestamp(skb);\n-\n \tif (igb_tx_map(tx_ring, first, hdr_len))\n \t\tgoto cleanup_tx_tstamp;\n \ndiff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c\nindex 37c4bd91c4ca..376fa7d0622c 100644\n--- a/drivers/net/ethernet/intel/igc/igc_main.c\n+++ b/drivers/net/ethernet/intel/igc/igc_main.c\n@@ -895,6 +895,8 @@ static int igc_tx_map(struct igc_ring *tx_ring,\n \t/* set the timestamp */\n \tfirst->time_stamp = jiffies;\n \n+\tskb_tx_timestamp(skb);\n+\n \t/* Force memory writes to complete before letting h/w know there\n \t * are new descriptors to fetch. (Only applicable for weak-ordered\n \t * memory model archs, such as IA-64).\n@@ -989,8 +991,6 @@ static netdev_tx_t igc_xmit_frame_ring(struct sk_buff *skb,\n \tfirst->bytecount = skb->len;\n \tfirst->gso_segs = 1;\n \n-\tskb_tx_timestamp(skb);\n-\n \t/* record initial flags and protocol */\n \tfirst->tx_flags = tx_flags;\n \tfirst->protocol = protocol;\ndiff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\nindex 0f2b0264eb27..65558316ab48 100644\n--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\n+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\n@@ -8268,6 +8268,8 @@ static int ixgbe_tx_map(struct ixgbe_ring *tx_ring,\n \t/* set the timestamp */\n \tfirst->time_stamp = jiffies;\n \n+\tskb_tx_timestamp(skb);\n+\n \t/*\n \t * Force memory writes to complete before letting h/w know there\n \t * are new descriptors to fetch. (Only applicable for weak-ordered\n@@ -8645,8 +8647,6 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb,\n \t\t}\n \t}\n \n-\tskb_tx_timestamp(skb);\n-\n #ifdef CONFIG_PCI_IOV\n \t/*\n \t * Use the l2switch_enable flag - would be false if the DMA\n", "prefixes": [ "net-next", "2/2" ] }