search for: virtio_transport_get_credit

Displaying 20 results from an estimated 92 matches for "virtio_transport_get_credit".

2023 Mar 21
0
[RFC PATCH v2] virtio/vsock: allocate multiple skbuffs on tx
..._sock *vsk, >>> >>> ????vvs = vsk->trans; >>> >>> -??? /* we can send less than pkt_len bytes */ >>> -??? if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) >>> -??????? pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; >>> - >>> ????/* virtio_transport_get_credit might return less than pkt_len credit */ >>> ????pkt_len = virtio_transport_get_credit(vvs, pkt_len); >>> >>> @@ -227,17 +224,45 @@ static int virtio_transport_send_pkt_info(struct vsock_sock *vsk, >>> ????if (pkt_len == 0 && info->op == VIRTIO_VSOCK_O...
2019 Apr 04
1
[PATCH RFC 3/4] vsock/virtio: change the maximum packet size allowed
..._info(struct vsock_sock *vsk, vvs = vsk->trans; /* we can send less than pkt_len bytes */ - if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) - pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; + if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) + pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; /* virtio_transport_get_credit might return less than pkt_len credit */ pkt_len = virtio_transport_get_credit(vvs, pkt_len); -- 2.20.1
2019 Aug 01
2
[PATCH v4 1/5] vsock/virtio: limit the memory used per-socket
...RTIO_VSOCK_DEFAULT_RX_BUF_SIZE (4K): static int virtio_transport_send_pkt_info(struct vsock_sock *vsk, struct virtio_vsock_pkt_info *info) { ... /* we can send less than pkt_len bytes */ if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; /* virtio_transport_get_credit might return less than pkt_len credit */ pkt_len = virtio_transport_get_credit(vvs, pkt_len); /* Do not send zero length OP_RW pkt */ if (pkt_len == 0 && info->op == VIRTIO_VSOCK_OP_RW) return pkt_len; ... } then it queues the packet for the TX worker calling .send_pkt() [vhost_t...
2019 Aug 01
2
[PATCH v4 1/5] vsock/virtio: limit the memory used per-socket
...RTIO_VSOCK_DEFAULT_RX_BUF_SIZE (4K): static int virtio_transport_send_pkt_info(struct vsock_sock *vsk, struct virtio_vsock_pkt_info *info) { ... /* we can send less than pkt_len bytes */ if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; /* virtio_transport_get_credit might return less than pkt_len credit */ pkt_len = virtio_transport_get_credit(vvs, pkt_len); /* Do not send zero length OP_RW pkt */ if (pkt_len == 0 && info->op == VIRTIO_VSOCK_OP_RW) return pkt_len; ... } then it queues the packet for the TX worker calling .send_pkt() [vhost_t...
2019 Apr 05
2
[PATCH RFC 3/4] vsock/virtio: change the maximum packet size allowed
...t_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > > - pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > > + if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) > > + pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; > > The next line limits pkt_len based on available credits: > > /* virtio_transport_get_credit might return less than pkt_len credit */ > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > > I think drivers/vhost/vsock.c:vhost_transport_do_send_pkt() now works > correctly even with pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE. Correct. > > The other ->send_pkt()...
2019 Apr 05
2
[PATCH RFC 3/4] vsock/virtio: change the maximum packet size allowed
...t_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > > - pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > > + if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) > > + pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; > > The next line limits pkt_len based on available credits: > > /* virtio_transport_get_credit might return less than pkt_len credit */ > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > > I think drivers/vhost/vsock.c:vhost_transport_do_send_pkt() now works > correctly even with pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE. Correct. > > The other ->send_pkt()...
2019 Aug 01
2
[PATCH v4 1/5] vsock/virtio: limit the memory used per-socket
...struct vsock_sock *vsk, > > struct virtio_vsock_pkt_info *info) > > { > > ... > > /* we can send less than pkt_len bytes */ > > if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > > pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > > > > /* virtio_transport_get_credit might return less than pkt_len credit */ > > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > > > > /* Do not send zero length OP_RW pkt */ > > if (pkt_len == 0 && info->op == VIRTIO_VSOCK_OP_RW) > > return pkt_len; > > ... > > } &gt...
2019 Aug 01
2
[PATCH v4 1/5] vsock/virtio: limit the memory used per-socket
...struct vsock_sock *vsk, > > struct virtio_vsock_pkt_info *info) > > { > > ... > > /* we can send less than pkt_len bytes */ > > if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > > pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > > > > /* virtio_transport_get_credit might return less than pkt_len credit */ > > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > > > > /* Do not send zero length OP_RW pkt */ > > if (pkt_len == 0 && info->op == VIRTIO_VSOCK_OP_RW) > > return pkt_len; > > ... > > } &gt...
2019 Sep 01
3
[PATCH v4 1/5] vsock/virtio: limit the memory used per-socket
...*info) > > > > { > > > > ... > > > > /* we can send less than pkt_len bytes */ > > > > if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > > > > pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > > > > > > > > /* virtio_transport_get_credit might return less than pkt_len credit */ > > > > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > > > > > > > > /* Do not send zero length OP_RW pkt */ > > > > if (pkt_len == 0 && info->op == VIRTIO_VSOCK_OP_RW) > > > &gt...
2019 Sep 01
3
[PATCH v4 1/5] vsock/virtio: limit the memory used per-socket
...*info) > > > > { > > > > ... > > > > /* we can send less than pkt_len bytes */ > > > > if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > > > > pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > > > > > > > > /* virtio_transport_get_credit might return less than pkt_len credit */ > > > > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > > > > > > > > /* Do not send zero length OP_RW pkt */ > > > > if (pkt_len == 0 && info->op == VIRTIO_VSOCK_OP_RW) > > > &gt...
2023 Mar 22
0
[RFC PATCH v4] virtio/vsock: allocate multiple skbuffs on tx
...; > >@@ -216,10 +217,6 @@ static int virtio_transport_send_pkt_info(struct vsock_sock *vsk, > > vvs = vsk->trans; > >- /* we can send less than pkt_len bytes */ >- if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) >- pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; >- > /* virtio_transport_get_credit might return less than pkt_len credit */ > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > >@@ -227,17 +224,51 @@ static int virtio_transport_send_pkt_info(struct vsock_sock *vsk, > if (pkt_len == 0 && info->op == VIRTIO_VSOCK_OP_RW) > return pkt_len; > >-...
2019 Apr 05
0
[PATCH RFC 3/4] vsock/virtio: change the maximum packet size allowed
...than pkt_len bytes */ > - if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > - pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > + if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) > + pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; The next line limits pkt_len based on available credits: /* virtio_transport_get_credit might return less than pkt_len credit */ pkt_len = virtio_transport_get_credit(vvs, pkt_len); I think drivers/vhost/vsock.c:vhost_transport_do_send_pkt() now works correctly even with pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE. The other ->send_pkt() callback is net/vmw_vsock/virtio_transpor...
2019 Jul 17
0
[PATCH v4 5/5] vsock/virtio: change the maximum packet size allowed
..._info(struct vsock_sock *vsk, vvs = vsk->trans; /* we can send less than pkt_len bytes */ - if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) - pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; + if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) + pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; /* virtio_transport_get_credit might return less than pkt_len credit */ pkt_len = virtio_transport_get_credit(vvs, pkt_len); -- 2.20.1
2023 Mar 23
0
[RFC PATCH v5 2/2] virtio/vsock: check argument to avoid no effect call
...zare at redhat.com> > >diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c >index 9e87c7d4d7cf..312658c176bd 100644 >--- a/net/vmw_vsock/virtio_transport_common.c >+++ b/net/vmw_vsock/virtio_transport_common.c >@@ -302,6 +302,9 @@ u32 virtio_transport_get_credit(struct virtio_vsock_sock *vvs, u32 credit) > { > u32 ret; > >+ if (!credit) >+ return 0; >+ > spin_lock_bh(&vvs->tx_lock); > ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt); > if (ret > credit) >@@ -315,6 +318,9 @@ EXPORT_SYMBOL_GP...
2019 Aug 01
0
[PATCH v4 1/5] vsock/virtio: limit the memory used per-socket
...atic int virtio_transport_send_pkt_info(struct vsock_sock *vsk, > struct virtio_vsock_pkt_info *info) > { > ... > /* we can send less than pkt_len bytes */ > if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > > /* virtio_transport_get_credit might return less than pkt_len credit */ > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > > /* Do not send zero length OP_RW pkt */ > if (pkt_len == 0 && info->op == VIRTIO_VSOCK_OP_RW) > return pkt_len; > ... > } > > then it queues the packet f...
2019 Jul 17
2
[PATCH v4 5/5] vsock/virtio: change the maximum packet size allowed
...k->trans; > > /* we can send less than pkt_len bytes */ > - if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > - pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > + if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) > + pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; > > /* virtio_transport_get_credit might return less than pkt_len credit */ > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > -- > 2.20.1
2019 Jul 17
2
[PATCH v4 5/5] vsock/virtio: change the maximum packet size allowed
...k->trans; > > /* we can send less than pkt_len bytes */ > - if (pkt_len > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE) > - pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > + if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) > + pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; > > /* virtio_transport_get_credit might return less than pkt_len credit */ > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > -- > 2.20.1
2019 Apr 08
0
[PATCH RFC 3/4] vsock/virtio: change the maximum packet size allowed
...BUF_SIZE) > > > - pkt_len = VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE; > > > + if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) > > > + pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; > > > > The next line limits pkt_len based on available credits: > > > > /* virtio_transport_get_credit might return less than pkt_len credit */ > > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > > > > I think drivers/vhost/vsock.c:vhost_transport_do_send_pkt() now works > > correctly even with pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE. > > Correct. > &g...
2023 Mar 21
0
[RFC PATCH v3] virtio/vsock: allocate multiple skbuffs on tx
...; > >@@ -216,10 +217,6 @@ static int virtio_transport_send_pkt_info(struct vsock_sock *vsk, > > vvs = vsk->trans; > >- /* we can send less than pkt_len bytes */ >- if (pkt_len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) >- pkt_len = VIRTIO_VSOCK_MAX_PKT_BUF_SIZE; >- > /* virtio_transport_get_credit might return less than pkt_len credit */ > pkt_len = virtio_transport_get_credit(vvs, pkt_len); > >@@ -227,17 +224,51 @@ static int virtio_transport_send_pkt_info(struct vsock_sock *vsk, > if (pkt_len == 0 && info->op == VIRTIO_VSOCK_OP_RW) > return pkt_len; > >-...
2019 Jul 30
2
[PATCH v4 1/5] vsock/virtio: limit the memory used per-socket
...er consumes the packets) and the > > "buf_alloc" (the max memory allowed) to the other peer. > > It makes a difference between a local counter (increased when the > > packets are sent) and the remote counter to calculate the credit available: > > > > u32 virtio_transport_get_credit(struct virtio_vsock_sock *vvs, u32 credit) > > { > > u32 ret; > > > > spin_lock_bh(&vvs->tx_lock); > > ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt); > > if (ret > credit) > > ret = credit; &...