Applied to master, thanks 2016-07-25 8:14 GMT-07:00 William Tu <u9012...@gmail.com>:
> Instead of looping into each packet and check whether to truncate, the > patch moves it out of the loop and uses batch API. If truncation is > not set, checking 'trunc' in 'struct dp_packet_batch' at per-batch basis > can skip the per-packet checking overhead. > > Signed-off-by: William Tu <u9012...@gmail.com> > --- > lib/netdev-dpdk.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c > index 7fb6457..22d547f 100644 > --- a/lib/netdev-dpdk.c > +++ b/lib/netdev-dpdk.c > @@ -1411,6 +1411,8 @@ dpdk_do_tx_copy(struct netdev *netdev, int qid, > struct dp_packet_batch *batch) > ovs_mutex_lock(&nonpmd_mempool_mutex); > } > > + dp_packet_batch_apply_cutlen(batch); > + > for (i = 0; i < batch->count; i++) { > int size = dp_packet_size(batch->packets[i]); > > @@ -1429,10 +1431,6 @@ dpdk_do_tx_copy(struct netdev *netdev, int qid, > struct dp_packet_batch *batch) > break; > } > > - /* Cut the size so only the truncated size is copied. */ > - size -= dp_packet_get_cutlen(batch->packets[i]); > - dp_packet_reset_cutlen(batch->packets[i]); > - > /* We have to do a copy for now */ > memcpy(rte_pktmbuf_mtod(mbufs[newcnt], void *), > dp_packet_data(batch->packets[i]), size); > @@ -1506,12 +1504,11 @@ netdev_dpdk_send__(struct netdev_dpdk *dev, int > qid, > unsigned int temp_cnt = 0; > int cnt = batch->count; > > + dp_packet_batch_apply_cutlen(batch); > + > for (int i = 0; i < cnt; i++) { > int size = dp_packet_size(batch->packets[i]); > > - size -= dp_packet_get_cutlen(batch->packets[i]); > - dp_packet_set_size(batch->packets[i], size); > - > if (OVS_UNLIKELY(size > dev->max_packet_len)) { > if (next_tx_idx != i) { > temp_cnt = i - next_tx_idx; > -- > 2.5.0 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev