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...