DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] (no subject)
@ 2014-12-08 17:51 
  0 siblings, 0 replies; 11+ messages in thread
From:  @ 2014-12-08 17:51 UTC (permalink / raw)


>From stephen@networkplumber.org Mon Dec  8 09:46:51 2014
Message-Id: <20141208174651.282719331@networkplumber.org>
User-Agent: quilt/0.63-1
Date: Mon, 08 Dec 2014 09:45:59 -0800
From: Stephen Hemminger <stephen@networkplumber.org>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org,
 Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH 5/6] rte_sched: dont clear statistics when read
References: <20141208174554.889069531@networkplumber.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Disposition: inline; filename=qos-no-clear.patch

Make rte_sched statistics API work like the ethernet statistics API.
Don't auto-clear statistics when read.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

--- a/lib/librte_sched/rte_sched.c	2014-12-08 09:29:49.014821607 -0800
+++ b/lib/librte_sched/rte_sched.c	2014-12-08 09:35:45.568568267 -0800
@@ -924,9 +924,8 @@ rte_sched_subport_read_stats(struct rte_
 	}
 	s = port->subport + subport_id;
 
-	/* Copy subport stats and clear */
-	memcpy(stats, &s->stats, sizeof(struct rte_sched_subport_stats));
-	memset(&s->stats, 0, sizeof(struct rte_sched_subport_stats));
+	/* Copy subport stats */
+	*stats = s->stats;
 
 	/* Subport TC ovesubscription status */
 	*tc_ov = s->tc_ov;
@@ -935,6 +934,21 @@ rte_sched_subport_read_stats(struct rte_
 }
 
 int
+rte_sched_subport_stats_reset(struct rte_sched_port *port,
+			      uint32_t subport_id)
+{
+	struct rte_sched_subport *s;
+
+	/* Check user parameters */
+	if (port == NULL || subport_id >= port->n_subports_per_port)
+		return -1;
+
+	s = port->subport + subport_id;
+	memset(&s->stats, 0, sizeof(struct rte_sched_subport_stats));
+	return 0;
+}
+
+int
 rte_sched_queue_read_stats(struct rte_sched_port *port,
 	uint32_t queue_id,
 	struct rte_sched_queue_stats *stats,
@@ -953,9 +967,8 @@ rte_sched_queue_read_stats(struct rte_sc
 	q = port->queue + queue_id;
 	qe = port->queue_extra + queue_id;
 
-	/* Copy queue stats and clear */
-	memcpy(stats, &qe->stats, sizeof(struct rte_sched_queue_stats));
-	memset(&qe->stats, 0, sizeof(struct rte_sched_queue_stats));
+	/* Copy queue stats */
+	*stats = qe->stats;
 
 	/* Queue length */
 	*qlen = q->qw - q->qr;
@@ -963,6 +976,21 @@ rte_sched_queue_read_stats(struct rte_sc
 	return 0;
 }
 
+int
+rte_sched_queue_stats_reset(struct rte_sched_port *port,
+			    uint32_t queue_id)
+{
+	struct rte_sched_queue_extra *qe;
+
+	/* Check user parameters */
+	if (port == NULL || queue_id >= rte_sched_port_queues_per_port(port))
+		return -1;
+
+	qe = port->queue_extra + queue_id;
+	memset(&qe->stats, 0, sizeof(struct rte_sched_queue_stats));
+	return 0;
+}
+
 static inline uint32_t
 rte_sched_port_qindex(struct rte_sched_port *port, uint32_t subport, uint32_t pipe, uint32_t traffic_class, uint32_t queue)
 {
--- a/lib/librte_sched/rte_sched.h	2014-12-08 09:29:49.014821607 -0800
+++ b/lib/librte_sched/rte_sched.h	2014-12-08 09:30:29.426977482 -0800
@@ -312,6 +312,21 @@ rte_sched_subport_read_stats(struct rte_
 	struct rte_sched_subport_stats *stats,
 	uint32_t *tc_ov);
 
+
+/**
+ * Hierarchical scheduler subport statistics reset
+ *
+ * @param port
+ *   Handle to port scheduler instance
+ * @param subport_id
+ *   Subport ID
+ * @return
+ *   0 upon success, error code otherwise
+ */
+int
+rte_sched_subport_stats_reset(struct rte_sched_port *port,
+			      uint32_t subport_id);
+
 /**
  * Hierarchical scheduler queue statistics read
  *
@@ -333,6 +348,20 @@ rte_sched_queue_read_stats(struct rte_sc
 	struct rte_sched_queue_stats *stats,
 	uint16_t *qlen);
 
+/**
+ * Hierarchical scheduler queue statistics reset
+ *
+ * @param port
+ *   Handle to port scheduler instance
+ * @param queue_id
+ *   Queue ID within port scheduler
+ * @return
+ *   0 upon success, error code otherwise
+ */
+int
+rte_sched_queue_stats_reset(struct rte_sched_port *port,
+			    uint32_t queue_id);
+
 /*
  * Run-time
  *

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2019-08-08  2:30 Tiwei Bie
  0 siblings, 0 replies; 11+ messages in thread
From: Tiwei Bie @ 2019-08-08  2:30 UTC (permalink / raw)
  To: dev



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2019-07-09  2:09 dev-bounces
  0 siblings, 0 replies; 11+ messages in thread
From: dev-bounces @ 2019-07-09  2:09 UTC (permalink / raw)
  To: dev
  Cc: Thomas Monjalon, harini.ramakrishnan, bruce.richardson,
	cathal.ohare, pallavi.kadam, Haseeb.Gani, talshn

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 6800 bytes --]

 Eilon Greenstein "<eilong@mellanox.com>;" Yohad Tor "<yohadt@mellanox.com>;"
 Raslan "rasland@mellanox.com;" Jeff "jeffrey.tippet@microsoft.com;" Omar
 Cardona "<ocardona@microsoft.com>;" Khoa "khot@microsoft.com;" Shahed Shaikh
 "shshaikh@marvell.com;" Nareshkumar "nareshkumar.pbs@broadcom.com;" Satish
 "satishr@chelsio.com;" Indranil "indranil@chelsio.com;" Ravi Anand
 "ravianan@cisco.com;" Anan Saif "<anans@mellanox.com>;Tal" Shnaiderman
 "<talshn@mellanox.com;" Rani Sharoni "<ranish@mellanox.com>;" Adham Masarwah
 <adham@mellanox.com>
From: Ranjit Menon <ranjit.menon@intel.com>
Subject: DPDK Windows Community call - 26 June 2019
Message-ID: <16959a6d-1d75-049e-7854-e8e7d3a6d053@intel.com>
Date: Mon, 8 Jul 2019 19:09:33 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit

Attendees: (present)
---------
Cathal <cathal.ohare@intel.com>
Pallavi <pallavi.kadam@intel.com>
Ranjit <ranjit.menon@intel.com>
Harini <harini.ramakrishnan@microsoft.com>
Haseeb <Haseeb.Gani@cavium.com>
Thomas <thomas@monjalon.net>

Absent/apologies:
----------------
Eilon Greenstein <eilong@mellanox.com>
Yohad Tor <yohadt@mellanox.com>
Raslan rasland@mellanox.com
Bruce <bruce.richardson@intel.com>
Jeff jeffrey.tippet@microsoft.com;
Omar Cardona <ocardona@microsoft.com>;
Harini harini.ramakrishnan@microsoft.com;
Khoa khot@microsoft.com;
Shahed Shaikh shshaikh@marvell.com;
Nareshkumar nareshkumar.pbs@broadcom.com;
Satish satishr@chelsio.com
Indranil indranil@chelsio.com
Ravi Anand  ravianan@cisco.com
Anan Saif <anans@mellanox.com>;
Tal Shnaiderman <talshn@mellanox.com
Rani Sharoni <ranish@mellanox.com>;
Adham Masarwah <adham@mellanox.com>

Agenda/Notes:
1. Add everyone as cc. when sending out notes to the mailing list.
    New meeting cycle sent out. [Done. Starting with these minutes]

2. Tal (Mellanox) logged bug, requesting the addition of windows testing 
to the Community Lab. https://bugs.dpdk.org/show_bug.cgi?id=286
    Update pending

3. Public editable page (overview on Windows Development progress)
    Thomas created a page to collect info to 
(https://annuel.framapad.org/p/dpdk-windows). After the page is online 
and has detail (Need name for the windows page), Thomas to send request 
to LF for a link to dpdk.org.
    Pallavi will help collect info for the page, what is being 
implemented, summary on where the project is, progress etc.
    Also need update to dpdk.org. Is windows called out as supported?
    Publish on dpdk.org that windows is supported, also add to roadmap, 
links to a windows page, add link to draft repo,
    Advice on the bi-weekly call, process to add patches to the repo etc.


4. Updated list of directories, files or functions which we need to 
check to make basic DPDK work on Windows.
    If something is missing, please update.
    May need to create repo processes in the future.
    At the moment, we’re using the common dpdk release processes for 
review & merge activities.

buildtools/pmdinfogen  - not ported to Windows usertools
/dpdk-devbind.py       - not ported to Windows drivers
/bus/vdev              - not ported to Windows drivers
/bus/pci               - ported to Windows in 18.08** repo (clang-cl)
lib/librte_pci         - ported to Windows in 18.08** repo (clang-cl)
lib/librte_cmdline     - ported to Windows in 18.08** repo (clang-cl)
lib/librte_kvargs      - ported to Windows in 18.08** repo (clang-cl)
lib/librte_ring        - ported to Windows in 18.08** repo (clang-cl)
lib/librte_mempool     - ported to Windows in 18.08** repo (clang-cl)
lib/librte_mbuf        - ported to Windows in 18.08** repo (clang-cl)
lib/librte_net         - ported to Windows in 18.08** repo (clang-cl)
lib/librte_eal/common/include/eal_log.c - (Pallavi working on this file)
lib/librte_eal/common/include/rte_errno.h
lib/librte_eal/common/include/rte_string_fns.h
lib/librte_eal/common/include/rte_lcore.h
lib/librte_eal/common/arch/x86/rte_cpuflags.c - (Tal working on this)
lib/librte_eal/common/arch/x86/rte_cycles.c   - (Tal working on this)
lib/librte_eal/common/eal_common_options.c    - (Pallavi working this)
lib/librte_eal/common/eal_common_proc.c
lib/librte_eal/windows/eal/eal_common_bus.c   - (Pallavi working this)
lib/librte_eal/windows/eal/eal_common_class.c - (Pallavi working this)
lib/librte_eal/windows/eal/eal_common_devargs.c	- (Pallavi working this)
lib/librte_eal/windows/eal/eal_common_options.c - (Pallavi working this)
lib/librte_eal/windows/eal/eal_common_thread.c	- (Pallavi working this)
lib/librte_eal/windows/eal/rte_option.c 	- (Pallavi working this)
lib/librte_eal/windows/eal/eal.c                                       - 
(part of file port available in "Helloworld" patch)
lib/librte_eal/windows/eal/eal_alarm.c     - ported to Windows in 
18.08** repo (clang-cl)
lib/librte_eal/windows/eal/eal_cpuflags.c - not ported to Windows
lib/librte_eal/windows/eal/eal_debug.c    - part of file port available 
in "Helloworld" patch
lib/librte_eal/windows/eal/eal_dev.c      - not ported to Windows
lib/librte_eal/windows/eal/eal_interrupts.c - ported to Windows in 
18.08** repo (clang-cl)
lib/librte_eal/windows/eal/eal_lcore.c   - part of file port available 
in "Helloworld" patch
lib/librte_eal/windows/eal/eal_log.c    - ported to Windows in 18.08** 
repo (clang-cl)
lib/librte_eal/windows/eal/eal_memory.c - ported to Windows in 18.08** 
repo (clang-cl)
lib/librte_eal/windows/eal/eal_thread.c - part of file port available in 
"Helloworld" patch
lib/librte_eal/windows/eal/eal_timer.c  - ported to Windows in 18.08** 
repo (clang-cl)

5. Haseeb, Marvell: in the process of supporting Marvell FastlinQ cards 
on the 18.08 draft branch.
    The changes are done in netuio, pci and qede modules.
    We’re completing internal review and will be able to send the 
changes for review soon.
    Haseeb to send details offline.

6. Ranjit, Intel: Is lib_bsd a possible source of header files with 
correct licensing?
    Thomas: Link to the files as dependencies rather than including in 
DPDK. Is that a possibility?
    Ranjit: Some files have copyright owner e-mail. Alternative is to 
contact the file owner ans ask for re-licensing permission.
    These files required for full EAL functionality.
    The community will give guidance on acceptability of proposed 
changes/next steps

7. Ranjit, Intel: Output from ninja will get passed to CI reporting to 
display on patch status. It's all working now!

8. Harini, Microsoft: Working with Broadcom on uio driver changes.
   Harini will share the latest patches with Haseeb/Pallavi/Broadcom

9. Harini is in contact with Cisco team, hopefully they will join future 
calls.







^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2017-02-21 14:58 anders
  0 siblings, 0 replies; 11+ messages in thread
From: anders @ 2017-02-21 14:58 UTC (permalink / raw)
  To: dev



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2017-02-09 11:53 anders
  0 siblings, 0 replies; 11+ messages in thread
From: anders @ 2017-02-09 11:53 UTC (permalink / raw)
  To: dev



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2014-12-08 17:51 
  0 siblings, 0 replies; 11+ messages in thread
From:  @ 2014-12-08 17:51 UTC (permalink / raw)


>From stephen@networkplumber.org Mon Dec  8 09:46:51 2014
Message-Id: <20141208174651.333788346@networkplumber.org>
User-Agent: quilt/0.63-1
Date: Mon, 08 Dec 2014 09:46:00 -0800
From: Stephen Hemminger <stephen@networkplumber.org>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org,
 Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH 6/6] rte_sched: dont put tabs in log messages
References: <20141208174554.889069531@networkplumber.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Disposition: inline; filename=rte-sched-no-tab.patch

syslog does not like tabs in log messages; tab gets translated to #011

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>


--- a/lib/librte_sched/rte_sched.c	2014-12-08 09:37:08.741006405 -0800
+++ b/lib/librte_sched/rte_sched.c	2014-12-08 09:37:56.641264631 -0800
@@ -495,10 +495,10 @@ rte_sched_port_log_pipe_profile(struct r
 	struct rte_sched_pipe_profile *p = port->pipe_profiles + i;
 
 	RTE_LOG(INFO, SCHED, "Low level config for pipe profile %u:\n"
-		"\tToken bucket: period = %u, credits per period = %u, size = %u\n"
-		"\tTraffic classes: period = %u, credits per period = [%u, %u, %u, %u]\n"
-		"\tTraffic class 3 oversubscription: weight = %hhu\n"
-		"\tWRR cost: [%hhu, %hhu, %hhu, %hhu], [%hhu, %hhu, %hhu, %hhu], [%hhu, %hhu, %hhu, %hhu], [%hhu, %hhu, %hhu, %hhu]\n",
+		"    Token bucket: period = %u, credits per period = %u, size = %u\n"
+		"    Traffic classes: period = %u, credits per period = [%u, %u, %u, %u]\n"
+		"    Traffic class 3 oversubscription: weight = %hhu\n"
+		"    WRR cost: [%hhu, %hhu, %hhu, %hhu], [%hhu, %hhu, %hhu, %hhu], [%hhu, %hhu, %hhu, %hhu], [%hhu, %hhu, %hhu, %hhu]\n",
 		i,
 
 		/* Token bucket */
@@ -716,9 +716,9 @@ rte_sched_port_log_subport_config(struct
 	struct rte_sched_subport *s = port->subport + i;
 
 	RTE_LOG(INFO, SCHED, "Low level config for subport %u:\n"
-		"\tToken bucket: period = %u, credits per period = %u, size = %u\n"
-		"\tTraffic classes: period = %u, credits per period = [%u, %u, %u, %u]\n"
-		"\tTraffic class 3 oversubscription: wm min = %u, wm max = %u\n",
+		"    Token bucket: period = %u, credits per period = %u, size = %u\n"
+		"    Traffic classes: period = %u, credits per period = [%u, %u, %u, %u]\n"
+		"    Traffic class 3 oversubscription: wm min = %u, wm max = %u\n",
 		i,
 
 		/* Token bucket */

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2014-12-08 17:51 
  0 siblings, 0 replies; 11+ messages in thread
From:  @ 2014-12-08 17:51 UTC (permalink / raw)


>From stephen@networkplumber.org Mon Dec  8 09:46:51 2014
Message-Id: <20141208174651.232055974@networkplumber.org>
User-Agent: quilt/0.63-1
Date: Mon, 08 Dec 2014 09:45:58 -0800
From: Stephen Hemminger <stephen@networkplumber.org>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org,
 Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH 4/6] rte_sched: keep track of RED drops
References: <20141208174554.889069531@networkplumber.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Disposition: inline; filename=red-stats.patch

Add new statistic to keep track of drops due to RED.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

--- a/lib/librte_sched/rte_sched.c	2014-12-08 09:28:37.810590895 -0800
+++ b/lib/librte_sched/rte_sched.c	2014-12-08 09:28:37.810590895 -0800
@@ -1028,7 +1028,9 @@ rte_sched_port_update_subport_stats(stru
 }
 
 static inline void
-rte_sched_port_update_subport_stats_on_drop(struct rte_sched_port *port, uint32_t qindex, struct rte_mbuf *pkt)
+rte_sched_port_update_subport_stats_on_drop(struct rte_sched_port *port,
+					    uint32_t qindex,
+					    struct rte_mbuf *pkt, uint32_t red)
 {
 	struct rte_sched_subport *s = port->subport + (qindex / rte_sched_port_queues_per_subport(port));
 	uint32_t tc_index = (qindex >> 2) & 0x3;
@@ -1036,6 +1038,9 @@ rte_sched_port_update_subport_stats_on_d
 
 	s->stats.n_pkts_tc_dropped[tc_index] += 1;
 	s->stats.n_bytes_tc_dropped[tc_index] += pkt_len;
+#ifdef RTE_SCHED_RED
+	s->stats.n_pkts_red_dropped[tc_index] += red;
+#endif
 }
 
 static inline void
@@ -1206,12 +1211,20 @@ rte_sched_port_enqueue_qwa(struct rte_sc
 	qlen = q->qw - q->qr;
 
 	/* Drop the packet (and update drop stats) when queue is full */
-	if (unlikely(rte_sched_port_red_drop(port, pkt, qindex, qlen) || (qlen >= qsize))) {
+	if (unlikely(rte_sched_port_red_drop(port, pkt, qindex, qlen))) {
+#ifdef RTE_SCHED_COLLECT_STATS
+		rte_sched_port_update_subport_stats_on_drop(port, qindex, pkt, 1);
+		rte_sched_port_update_queue_stats_on_drop(port, qindex, pkt, 1);
+#endif
 		rte_pktmbuf_free(pkt);
+	}
+
+	if (qlen >= qsize) {
 #ifdef RTE_SCHED_COLLECT_STATS
-		rte_sched_port_update_subport_stats_on_drop(port, qindex, pkt);
-		rte_sched_port_update_queue_stats_on_drop(port, qindex, pkt);
+		rte_sched_port_update_subport_stats_on_drop(port, qindex, pkt, 0);
+		rte_sched_port_update_queue_stats_on_drop(port, qindex, pkt, 0);
 #endif
+		rte_pktmbuf_free(pkt);
 		return 0;
 	}
 
--- a/lib/librte_sched/rte_sched.h	2014-12-08 09:28:37.810590895 -0800
+++ b/lib/librte_sched/rte_sched.h	2014-12-08 09:29:11.402692026 -0800
@@ -140,6 +140,9 @@ struct rte_sched_subport_stats {
 	                                      subport for each traffic class*/
 	uint32_t n_bytes_tc_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE]; /**< Number of bytes dropped by the current
                                           subport for each traffic class due to subport queues being full or congested */
+#ifdef RTE_SCHED_RED
+	uint32_t n_pkts_red_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE]; /**< Number of packets dropped by red */
+#endif
 };
 
 /** Pipe configuration parameters. The period and credits_per_period parameters are measured
@@ -168,7 +171,9 @@ struct rte_sched_queue_stats {
 	/* Packets */
 	uint32_t n_pkts;                 /**< Number of packets successfully written to current queue */
 	uint32_t n_pkts_dropped;         /**< Number of packets dropped due to current queue being full or congested */
-
+#ifdef RTE_SCHED_RED
+	uint32_t n_pkts_red_dropped;
+#endif
 	/* Bytes */
 	uint32_t n_bytes;                /**< Number of bytes successfully written to current queue */
 	uint32_t n_bytes_dropped;        /**< Number of bytes dropped due to current queue being full or congested */

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2014-12-08 17:51 
  0 siblings, 0 replies; 11+ messages in thread
From:  @ 2014-12-08 17:51 UTC (permalink / raw)


>From stephen@networkplumber.org Mon Dec  8 09:46:51 2014
Message-Id: <20141208174651.181685914@networkplumber.org>
User-Agent: quilt/0.63-1
Date: Mon, 08 Dec 2014 09:45:57 -0800
From: Stephen Hemminger <stephen@networkplumber.org>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org,
 Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH 3/6] qos: make RED optional
References: <20141208174554.889069531@networkplumber.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Disposition: inline; filename=qos-optional-red.patch

We want to be able to build with RTE_SCHED_RED enabled but
allow disabling RED on a per-queue basis at runtime. This is
handled by allowing RED min/max to be zero to indicate that
RED is not being used.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>


--- a/lib/librte_sched/rte_sched.c	2014-12-08 09:28:20.782545529 -0800
+++ b/lib/librte_sched/rte_sched.c	2014-12-08 09:28:20.782545529 -0800
@@ -636,6 +636,12 @@ rte_sched_port_config(struct rte_sched_p
 		uint32_t j;
 
 		for (j = 0; j < e_RTE_METER_COLORS; j++) {
+			/* if min/max are both zero, then RED is disabled */
+			if ((params->red_params[i][j].min_th |
+			     params->red_params[i][j].max_th) == 0) {
+				continue;
+			}
+
 			if (rte_red_config_init(&port->red_config[i][j],
 				params->red_params[i][j].wq_log2,
 				params->red_params[i][j].min_th,
@@ -1069,6 +1075,9 @@ rte_sched_port_red_drop(struct rte_sched
 	color = rte_sched_port_pkt_read_color(pkt);
 	red_cfg = &port->red_config[tc_index][color];
 
+	if ( (red_cfg->min_th | red_cfg->max_th) == 0)
+		return 0;
+
 	qe = port->queue_extra + qindex;
 	red = &qe->red;
 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2014-12-08 17:51 
  0 siblings, 0 replies; 11+ messages in thread
From:  @ 2014-12-08 17:51 UTC (permalink / raw)


>From stephen@networkplumber.org Mon Dec  8 09:46:51 2014
Message-Id: <20141208174651.130426937@networkplumber.org>
User-Agent: quilt/0.63-1
Date: Mon, 08 Dec 2014 09:45:56 -0800
From: Stephen Hemminger <stephen@networkplumber.org>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org,
 Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH 2/6] ixgbe: support X540 VF
References: <20141208174554.889069531@networkplumber.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Disposition: inline; filename=ixgbe-x540-vf.patch

Add missing setup for X540 MAC type when setting up VF.
Additional check exists in Linux driver but not in DPDK.

Signed-off-yb: Bill Hong <bhong@brocade.com> 
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c	2014-12-08 09:26:18.150170081 -0800
+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c	2014-12-08 09:26:18.150170081 -0800
@@ -1911,7 +1911,8 @@ ixgbe_dev_tx_queue_setup(struct rte_eth_
 	/*
 	 * Modification to set VFTDT for virtual function if vf is detected
 	 */
-	if (hw->mac.type == ixgbe_mac_82599_vf)
+	if (hw->mac.type == ixgbe_mac_82599_vf ||
+	    hw->mac.type == ixgbe_mac_X540_vf)
 		txq->tdt_reg_addr = IXGBE_PCI_REG_ADDR(hw, IXGBE_VFTDT(queue_idx));
 	else
 		txq->tdt_reg_addr = IXGBE_PCI_REG_ADDR(hw, IXGBE_TDT(txq->reg_idx));
@@ -2198,7 +2199,8 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_
 	/*
 	 * Modified to setup VFRDT for Virtual Function
 	 */
-	if (hw->mac.type == ixgbe_mac_82599_vf) {
+	if (hw->mac.type == ixgbe_mac_82599_vf ||
+	    hw->mac.type == ixgbe_mac_X540_vf) {
 		rxq->rdt_reg_addr =
 			IXGBE_PCI_REG_ADDR(hw, IXGBE_VFRDT(queue_idx));
 		rxq->rdh_reg_addr =

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2014-12-08 17:51 
  0 siblings, 0 replies; 11+ messages in thread
From:  @ 2014-12-08 17:51 UTC (permalink / raw)


>From stephen@networkplumber.org Mon Dec  8 09:46:51 2014
Message-Id: <20141208174651.064719116@networkplumber.org>
User-Agent: quilt/0.63-1
Date: Mon, 08 Dec 2014 09:45:55 -0800
From: Stephen Hemminger <stephen@networkplumber.org>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org,
 Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH 1/6] rte_log: remove unnecessary stubs
References: <20141208174554.889069531@networkplumber.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Disposition: inline; filename=rte-log-unneeded-funct.patch

The read/seek/close stub functions are unnecessary on the
log stream.  Per glibc fopencookie man page:

       cookie_read_function_t *read
              If *read is a null pointer, then reads from  the  custom  stream
              always return end of file.

       cookie_seek_function_t *seek
              If *seek is a null pointer, then it is not possible  to  perform
              seek operations on the stream.

       cookie_close_function_t *close
              If  *close is NULL, then no special action is performed when the
              stream is closed.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>


--- a/lib/librte_eal/linuxapp/eal/eal_log.c	2014-12-08 09:25:23.725812125 -0800
+++ b/lib/librte_eal/linuxapp/eal/eal_log.c	2014-12-08 09:25:23.661811703 -0800
@@ -83,33 +83,8 @@ console_log_write(__attribute__((unused)
 	return ret;
 }
 
-static ssize_t
-console_log_read(__attribute__((unused)) void *c,
-		 __attribute__((unused)) char *buf,
-		 __attribute__((unused)) size_t size)
-{
-	return 0;
-}
-
-static int
-console_log_seek(__attribute__((unused)) void *c,
-		 __attribute__((unused)) off64_t *offset,
-		 __attribute__((unused)) int whence)
-{
-	return -1;
-}
-
-static int
-console_log_close(__attribute__((unused)) void *c)
-{
-	return 0;
-}
-
 static cookie_io_functions_t console_log_func = {
-	.read  = console_log_read,
 	.write = console_log_write,
-	.seek  = console_log_seek,
-	.close = console_log_close
 };
 
 /*
@@ -150,33 +125,8 @@ early_log_write(__attribute__((unused))
 	return ret;
 }
 
-static ssize_t
-early_log_read(__attribute__((unused)) void *c,
-	       __attribute__((unused)) char *buf,
-	       __attribute__((unused)) size_t size)
-{
-	return 0;
-}
-
-static int
-early_log_seek(__attribute__((unused)) void *c,
-	       __attribute__((unused)) off64_t *offset,
-	       __attribute__((unused)) int whence)
-{
-	return -1;
-}
-
-static int
-early_log_close(__attribute__((unused)) void *c)
-{
-	return 0;
-}
-
 static cookie_io_functions_t early_log_func = {
-	.read  = early_log_read,
 	.write = early_log_write,
-	.seek  = early_log_seek,
-	.close = early_log_close
 };
 static FILE *early_log_stream;
 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] (no subject)
@ 2014-12-08 17:51 
  0 siblings, 0 replies; 11+ messages in thread
From:  @ 2014-12-08 17:51 UTC (permalink / raw)


>From stephen@networkplumber.org Mon Dec  8 09:46:51 2014
Message-Id: <20141208174554.889069531@networkplumber.org>
User-Agent: quilt/0.63-1
Date: Mon, 08 Dec 2014 09:45:54 -0800
From: Stephen Hemminger <stephen@networkplumber.org>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org
Subject: [PATCH 0/6] Misc patches for DPDK 1.8

Doing a scan of our current release product to see which
patches still need to be sent upstream.  These are the ones
that don't fit into specific niches.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-08-08  2:32 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-08 17:51 [dpdk-dev] (no subject) 
  -- strict thread matches above, loose matches on Subject: below --
2019-08-08  2:30 Tiwei Bie
2019-07-09  2:09 dev-bounces
2017-02-21 14:58 anders
2017-02-09 11:53 anders
2014-12-08 17:51 
2014-12-08 17:51 
2014-12-08 17:51 
2014-12-08 17:51 
2014-12-08 17:51 
2014-12-08 17:51 

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git