v.maffione_gmail.com added a comment.

  This looks better, but the problem is that I was refactoring this file to 
separate virtio specific code from the backends (netmap, tap), and add
  support for offloads (including TSO); this patch creates many conflicts with 
my pending work, and IMHO it should be rebased after my work to prevent a total 
mess.

INLINE COMMENTS

> pci_virtio_net.c:547
>       struct iovec iov[VTNET_MAXSEGS], *riov;
> +     struct virtio_used used[VTNET_MAXSEGS];
> +     struct virtio_net_rxhdr *vrxh;

Why are you using this temporary array instead of writing directly to the used 
ring?
Used entries are only exposed to the guest when vu_idx is incremented, so you 
would not have race conditions.
This would also greatly simplify your vq_relbufs_mrgrx below.

> virtio.c:412
> +
> +             iov_len = count_iov(&iov[i], n);
> +             i += n;

The name of 'iov_len' variable is really confusing, as struct iovec.iov_len 
refers to the length of a single slot, while your variable refers to the sum of 
the lengths of possibly many slots...
It's better to use something like 'chain_len'

CHANGES SINCE LAST ACTION
  https://reviews.freebsd.org/D20276/new/

REVISION DETAIL
  https://reviews.freebsd.org/D20276

EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: aleksandr.fedorov_itglobal.com, #bhyve, jhb, rgrimes, krion, 
v.maffione_gmail.com
Cc: mgrooms_shrew.net, mizhka_gmail.com, novel, olevole_olevole.ru, 
freebsd-virtualization-list, evgueni.gavrilov_itglobal.com, bcran
_______________________________________________
freebsd-virtualization@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
To unsubscribe, send any mail to 
"freebsd-virtualization-unsubscr...@freebsd.org"

Reply via email to