[ovs-dev] [PATCH v2 2/5] netdev-dpdk: Set current timestamp when flushing TX queue.
Daniele Di Proietto
ddiproietto at vmware.com
Mon Jun 30 16:56:01 UTC 2014
I was happier with the previous approach, i.e. setting the timestamp on the first queued packet.
Maybe there are issues I don’t see, can you elaborate a little?
Thanks,
Daniele
On Jun 26, 2014, at 6:16 PM, Ryan Wilson <wryan at nicira.com> wrote:
> The current timestamp should be set every time the queue is flushed.
> Thus, if DRAIN_TSC timer cycles have passed since the last timestamp,
> the send queue should be flushed again.
>
> Signed-off-by: Ryan Wilson <wryan at nicira.com>
> ---
> lib/netdev-dpdk.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index 084e8cd..6e1d293 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -581,6 +581,7 @@ dpdk_queue_flush__(struct netdev_dpdk *dev, int qid)
> (txq->count - nb_tx));
> }
> txq->count = 0;
> + txq->tsc = rte_get_timer_cycles();
> }
>
> static void
> @@ -626,7 +627,6 @@ dpdk_queue_pkts(struct netdev_dpdk *dev, int qid,
> {
> struct dpdk_tx_queue *txq = &dev->tx_q[qid];
> uint64_t diff_tsc;
> - uint64_t cur_tsc;
>
> int i = 0;
>
> @@ -644,11 +644,7 @@ dpdk_queue_pkts(struct netdev_dpdk *dev, int qid,
> if (txq->count == MAX_TX_QUEUE_LEN) {
> dpdk_queue_flush__(dev, qid);
> }
> - cur_tsc = rte_get_timer_cycles();
> - if (txq->count == 1) {
> - txq->tsc = cur_tsc;
> - }
> - diff_tsc = cur_tsc - txq->tsc;
> + diff_tsc = rte_get_timer_cycles() - txq->tsc;
> if (diff_tsc >= DRAIN_TSC) {
> dpdk_queue_flush__(dev, qid);
> }
> --
> 1.7.9.5
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=MV9BdLjtFIdhBDBaw5z%2BU6SSA2gAfY4L%2F1HCy3VjlKU%3D%0A&m=CtFeOvayf%2FFdGR8E3K%2Bq8k57QZOfY3azsWO1qjDWcTE%3D%0A&s=253d27d2e4572741659f572d3ed31b1e8b5bd9fad9bbc54cab525d6df48ed413
More information about the dev
mailing list