search for: skb_array_consume_batched_bh

Displaying 11 results from an estimated 11 matches for "skb_array_consume_batched_bh".

2017 Mar 29
2
[PATCH net-next 7/8] vhost_net: try batch dequing from skb array
On 2017?03?23? 13:34, Jason Wang wrote: > > >> >>> +{ >>> + if (rvq->rh != rvq->rt) >>> + goto out; >>> + >>> + rvq->rh = rvq->rt = 0; >>> + rvq->rt = skb_array_consume_batched_bh(rvq->rx_array, rvq->rxq, >>> + VHOST_RX_BATCH); >> A comment explaining why is is -bh would be helpful. > > Ok. > > Thanks Rethink about this. It looks like -bh is not needed in this case since no consumer run in bh. Thanks
2017 Mar 29
2
[PATCH net-next 7/8] vhost_net: try batch dequing from skb array
On 2017?03?23? 13:34, Jason Wang wrote: > > >> >>> +{ >>> + if (rvq->rh != rvq->rt) >>> + goto out; >>> + >>> + rvq->rh = rvq->rt = 0; >>> + rvq->rt = skb_array_consume_batched_bh(rvq->rx_array, rvq->rxq, >>> + VHOST_RX_BATCH); >> A comment explaining why is is -bh would be helpful. > > Ok. > > Thanks Rethink about this. It looks like -bh is not needed in this case since no consumer run in bh. Thanks
2017 Mar 29
1
[PATCH net-next 7/8] vhost_net: try batch dequing from skb array
...>> On 2017?03?23? 13:34, Jason Wang wrote: >>> >>>>> +{ >>>>> + if (rvq->rh != rvq->rt) >>>>> + goto out; >>>>> + >>>>> + rvq->rh = rvq->rt = 0; >>>>> + rvq->rt = skb_array_consume_batched_bh(rvq->rx_array, rvq->rxq, >>>>> + VHOST_RX_BATCH); >>>> A comment explaining why is is -bh would be helpful. >>> Ok. >>> >>> Thanks >> Rethink about this. It looks like -bh is not needed in this case since >&...
2017 Mar 29
1
[PATCH net-next 7/8] vhost_net: try batch dequing from skb array
...>> On 2017?03?23? 13:34, Jason Wang wrote: >>> >>>>> +{ >>>>> + if (rvq->rh != rvq->rt) >>>>> + goto out; >>>>> + >>>>> + rvq->rh = rvq->rt = 0; >>>>> + rvq->rt = skb_array_consume_batched_bh(rvq->rx_array, rvq->rxq, >>>>> + VHOST_RX_BATCH); >>>> A comment explaining why is is -bh would be helpful. >>> Ok. >>> >>> Thanks >> Rethink about this. It looks like -bh is not needed in this case since >&...
2017 Mar 22
2
[PATCH net-next 7/8] vhost_net: try batch dequing from skb array
...> -static int peek_head_len(struct sock *sk) > +static int peek_head_len_batched(struct vhost_net_virtqueue *rvq) Pls rename to say what it actually does: fetch skbs > +{ > + if (rvq->rh != rvq->rt) > + goto out; > + > + rvq->rh = rvq->rt = 0; > + rvq->rt = skb_array_consume_batched_bh(rvq->rx_array, rvq->rxq, > + VHOST_RX_BATCH); A comment explaining why is is -bh would be helpful. > + if (!rvq->rt) > + return 0; > +out: > + return __skb_array_len_with_tag(rvq->rxq[rvq->rh]); > +} > + > +static int peek_head_len(struct vhost_net_vir...
2017 Mar 22
2
[PATCH net-next 7/8] vhost_net: try batch dequing from skb array
...> -static int peek_head_len(struct sock *sk) > +static int peek_head_len_batched(struct vhost_net_virtqueue *rvq) Pls rename to say what it actually does: fetch skbs > +{ > + if (rvq->rh != rvq->rt) > + goto out; > + > + rvq->rh = rvq->rt = 0; > + rvq->rt = skb_array_consume_batched_bh(rvq->rx_array, rvq->rxq, > + VHOST_RX_BATCH); A comment explaining why is is -bh would be helpful. > + if (!rvq->rt) > + return 0; > +out: > + return __skb_array_len_with_tag(rvq->rxq[rvq->rh]); > +} > + > +static int peek_head_len(struct vhost_net_vir...
2017 Mar 23
0
[PATCH net-next 7/8] vhost_net: try batch dequing from skb array
...*sk) >> +static int peek_head_len_batched(struct vhost_net_virtqueue *rvq) > Pls rename to say what it actually does: fetch skbs Ok. > >> +{ >> + if (rvq->rh != rvq->rt) >> + goto out; >> + >> + rvq->rh = rvq->rt = 0; >> + rvq->rt = skb_array_consume_batched_bh(rvq->rx_array, rvq->rxq, >> + VHOST_RX_BATCH); > A comment explaining why is is -bh would be helpful. Ok. Thanks
2017 Mar 29
0
[PATCH net-next 7/8] vhost_net: try batch dequing from skb array
...> On 2017?03?23? 13:34, Jason Wang wrote: > > > > > >> > >>> +{ > >>> + if (rvq->rh != rvq->rt) > >>> + goto out; > >>> + > >>> + rvq->rh = rvq->rt = 0; > >>> + rvq->rt = skb_array_consume_batched_bh(rvq->rx_array, rvq->rxq, > >>> + VHOST_RX_BATCH); > >> A comment explaining why is is -bh would be helpful. > > > > Ok. > > > > Thanks > > Rethink about this. It looks like -bh is not needed in this case since > no...
2017 Mar 21
12
[PATCH net-next 0/8] vhost-net rx batching
Hi all: This series tries to implement rx batching for vhost-net. This is done by batching the dequeuing from skb_array which was exported by underlayer socket and pass the sbk back through msg_control to finish userspace copying. Tests shows at most 19% improvment on rx pps. Please review. Thanks Jason Wang (8): ptr_ring: introduce batch dequeuing skb_array: introduce batch dequeuing
2017 Mar 21
12
[PATCH net-next 0/8] vhost-net rx batching
Hi all: This series tries to implement rx batching for vhost-net. This is done by batching the dequeuing from skb_array which was exported by underlayer socket and pass the sbk back through msg_control to finish userspace copying. Tests shows at most 19% improvment on rx pps. Please review. Thanks Jason Wang (8): ptr_ring: introduce batch dequeuing skb_array: introduce batch dequeuing
2017 Mar 21
0
[PATCH net-next 7/8] vhost_net: try batch dequing from skb array
...12,30 @@ static void handle_tx(struct vhost_net *net) mutex_unlock(&vq->mutex); } -static int peek_head_len(struct sock *sk) +static int peek_head_len_batched(struct vhost_net_virtqueue *rvq) +{ + if (rvq->rh != rvq->rt) + goto out; + + rvq->rh = rvq->rt = 0; + rvq->rt = skb_array_consume_batched_bh(rvq->rx_array, rvq->rxq, + VHOST_RX_BATCH); + if (!rvq->rt) + return 0; +out: + return __skb_array_len_with_tag(rvq->rxq[rvq->rh]); +} + +static int peek_head_len(struct vhost_net_virtqueue *rvq, struct sock *sk) { struct socket *sock = sk->sk_socket; struct sk_buff *he...