On Jun 30, 2014, at 11:08 AM, Pravin Shelar <pshe...@nicira.com> wrote:
> On Mon, Jun 30, 2014 at 9:56 AM, Daniele Di Proietto > <ddiproie...@vmware.com> wrote: >> 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? >> > > tsc is set conditionally when count is one, but the count might not > set to one in a loop due to batched packets. So I think this fixes a > bug. I pushed this patch. > But I think we can further improve this flush time-stamp. > You’re right, thanks for clarifying this. Of course, we can this improve later Thanks, Daniele > >> Thanks, >> >> Daniele >> >> On Jun 26, 2014, at 6:16 PM, Ryan Wilson <wr...@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 <wr...@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@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 >> >> _______________________________________________ >> dev mailing list >> dev@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=ooIVBrpCwxPNI%2BlZ1KT8%2FDRSv5KKtb1s3Fz73FX5X5c%3D%0A&s=11c7c3cc84a098e0aa95e7c6b3bb256f2d5d6fce376e45fa765bbb8988d4457a _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev