Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1822/?format=api
http://patchwork.dpdk.org/api/patches/1822/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20141208193630.7F7A18049@dpdk.org/", "project": { "id": 1, "url": "http://patchwork.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20141208193630.7F7A18049@dpdk.org>", "list_archive_url": "https://inbox.dpdk.org/dev/20141208193630.7F7A18049@dpdk.org", "date": "2014-12-08T19:36:30", "name": "[dpdk-dev] (no subject)", "commit_ref": null, "pull_url": null, "state": "not-applicable", "archived": true, "hash": "cfab13a637b925f31e3a656f088988941078764f", "submitter": { "id": 131, "url": "http://patchwork.dpdk.org/api/people/131/?format=api", "name": null, "email": "dev-bounces@dpdk.org" }, "delegate": null, "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20141208193630.7F7A18049@dpdk.org/mbox/", "series": [], "comments": "http://patchwork.dpdk.org/api/patches/1822/comments/", "check": "pending", "checks": "http://patchwork.dpdk.org/api/patches/1822/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 7F7A18049;\n\tMon, 8 Dec 2014 20:36:30 +0100 (CET)", "from mail-pd0-f171.google.com (mail-pd0-f171.google.com\n\t[209.85.192.171]) by dpdk.org (Postfix) with ESMTP id 62453CE7\n\tfor <dev@dpdk.org>; Mon, 8 Dec 2014 18:51:39 +0100 (CET)", "by mail-pd0-f171.google.com with SMTP id y13so5591981pdi.2\n\tfor <dev@dpdk.org>; Mon, 08 Dec 2014 09:51:38 -0800 (PST)", "from localhost (static-50-53-82-155.bvtn.or.frontiernet.net.\n\t[50.53.82.155]) by mx.google.com with ESMTPSA id\n\tof9sm36879682pbc.6.2014.12.08.09.51.36 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tMon, 08 Dec 2014 09:51:38 -0800 (PST)" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:message-id:user-agent:date:from:to:cc:subject\n\t:references:mime-version:content-type:content-disposition;\n\tbh=7I3ObgHGlN8+8o6zsibKqpUxfLDjhcVi3Eb7wlb1JMc=;\n\tb=m2uZxiMshh2PUuXaYpzjswRccMw8hAUw7aeK/z03tUsYyP9KvBNxnMjKcEpaABpssY\n\t8HfdVlCy6a3Lx4zkJ2Zu35L0ZWPGxWRYtbTQIgMj73DY8453KtRpWD/Fo+CYXn4v6B7J\n\tU9n9MpujwRZe32hf0PEichG6U9RUuYtoaJhtVoNKO+SQiGvsbFHAIm83Ft6Wxt1fPboW\n\tRieHhBtFBAU5q8BXimExyfSRN7V9NeMQFkEJ9WjsFpZp82/N3e2vt6vuj2rU7cqFTrxX\n\ty6/vwn3oHVGETkWl1w/pF6xquUSmGassUSHpwlRxP4RiLxqRDTltWQRf7tPNd1De7YQ0\n\twqpQ==", "X-Gm-Message-State": "ALoCoQmWv+MthFuGtjG3Jk1p/f3whkfFxB9hDp6ZlprJjsfi3G6TYmDYyV/EPGz5e95yjGfvyz9X", "X-Received": "by 10.68.224.6 with SMTP id qy6mr63610302pbc.35.1418061098782;\n\tMon, 08 Dec 2014 09:51:38 -0800 (PST)", "X-Mailman-Approved-At": "Mon, 08 Dec 2014 20:36:25 +0100", "Subject": "[dpdk-dev] (no subject)", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "patches and discussions about DPDK <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>", "Message-Id": "<20141208193630.7F7A18049@dpdk.org>", "Date": "Mon, 8 Dec 2014 20:36:30 +0100 (CET)", "From": "dev-bounces@dpdk.org" }, "content": "From stephen@networkplumber.org Mon Dec 8 09:46:51 2014\nMessage-Id: <20141208174651.232055974@networkplumber.org>\nUser-Agent: quilt/0.63-1\nDate: Mon, 08 Dec 2014 09:45:58 -0800\nFrom: Stephen Hemminger <stephen@networkplumber.org>\nTo: Thomas Monjalon <thomas.monjalon@6wind.com>\nCc: dev@dpdk.org,\n Stephen Hemminger <stephen@networkplumber.org>\nSubject: [PATCH 4/6] rte_sched: keep track of RED drops\nReferences: <20141208174554.889069531@networkplumber.org>\nMIME-Version: 1.0\nContent-Type: text/plain; charset=ISO-8859-15\nContent-Disposition: inline; filename=red-stats.patch\n\nAdd new statistic to keep track of drops due to RED.\n\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>", "diff": "--- a/lib/librte_sched/rte_sched.c\t2014-12-08 09:28:37.810590895 -0800\n+++ b/lib/librte_sched/rte_sched.c\t2014-12-08 09:28:37.810590895 -0800\n@@ -1028,7 +1028,9 @@ rte_sched_port_update_subport_stats(stru\n }\n \n static inline void\n-rte_sched_port_update_subport_stats_on_drop(struct rte_sched_port *port, uint32_t qindex, struct rte_mbuf *pkt)\n+rte_sched_port_update_subport_stats_on_drop(struct rte_sched_port *port,\n+\t\t\t\t\t uint32_t qindex,\n+\t\t\t\t\t struct rte_mbuf *pkt, uint32_t red)\n {\n \tstruct rte_sched_subport *s = port->subport + (qindex / rte_sched_port_queues_per_subport(port));\n \tuint32_t tc_index = (qindex >> 2) & 0x3;\n@@ -1036,6 +1038,9 @@ rte_sched_port_update_subport_stats_on_d\n \n \ts->stats.n_pkts_tc_dropped[tc_index] += 1;\n \ts->stats.n_bytes_tc_dropped[tc_index] += pkt_len;\n+#ifdef RTE_SCHED_RED\n+\ts->stats.n_pkts_red_dropped[tc_index] += red;\n+#endif\n }\n \n static inline void\n@@ -1206,12 +1211,20 @@ rte_sched_port_enqueue_qwa(struct rte_sc\n \tqlen = q->qw - q->qr;\n \n \t/* Drop the packet (and update drop stats) when queue is full */\n-\tif (unlikely(rte_sched_port_red_drop(port, pkt, qindex, qlen) || (qlen >= qsize))) {\n+\tif (unlikely(rte_sched_port_red_drop(port, pkt, qindex, qlen))) {\n+#ifdef RTE_SCHED_COLLECT_STATS\n+\t\trte_sched_port_update_subport_stats_on_drop(port, qindex, pkt, 1);\n+\t\trte_sched_port_update_queue_stats_on_drop(port, qindex, pkt, 1);\n+#endif\n \t\trte_pktmbuf_free(pkt);\n+\t}\n+\n+\tif (qlen >= qsize) {\n #ifdef RTE_SCHED_COLLECT_STATS\n-\t\trte_sched_port_update_subport_stats_on_drop(port, qindex, pkt);\n-\t\trte_sched_port_update_queue_stats_on_drop(port, qindex, pkt);\n+\t\trte_sched_port_update_subport_stats_on_drop(port, qindex, pkt, 0);\n+\t\trte_sched_port_update_queue_stats_on_drop(port, qindex, pkt, 0);\n #endif\n+\t\trte_pktmbuf_free(pkt);\n \t\treturn 0;\n \t}\n \n--- a/lib/librte_sched/rte_sched.h\t2014-12-08 09:28:37.810590895 -0800\n+++ b/lib/librte_sched/rte_sched.h\t2014-12-08 09:29:11.402692026 -0800\n@@ -140,6 +140,9 @@ struct rte_sched_subport_stats {\n \t subport for each traffic class*/\n \tuint32_t n_bytes_tc_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE]; /**< Number of bytes dropped by the current\n subport for each traffic class due to subport queues being full or congested */\n+#ifdef RTE_SCHED_RED\n+\tuint32_t n_pkts_red_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE]; /**< Number of packets dropped by red */\n+#endif\n };\n \n /** Pipe configuration parameters. The period and credits_per_period parameters are measured\n@@ -168,7 +171,9 @@ struct rte_sched_queue_stats {\n \t/* Packets */\n \tuint32_t n_pkts; /**< Number of packets successfully written to current queue */\n \tuint32_t n_pkts_dropped; /**< Number of packets dropped due to current queue being full or congested */\n-\n+#ifdef RTE_SCHED_RED\n+\tuint32_t n_pkts_red_dropped;\n+#endif\n \t/* Bytes */\n \tuint32_t n_bytes; /**< Number of bytes successfully written to current queue */\n \tuint32_t n_bytes_dropped; /**< Number of bytes dropped due to current queue being full or congested */\n", "prefixes": [ "dpdk-dev" ] }{ "id": 1822, "url": "