v.maffione_gmail.com added a comment.

  Yes, but I think the story is more complex than that. Guests can publish 
single-descriptor chains or multi-descriptor chains, depending on feature 
negotiation and driver implementation. With mergeable buffers enabled, or TSO 
features disabled, guests will normally submit single-descriptor chains 
(because it makes sense), but this is not mandatory. With TSO enabled and 
mergeable buffers disabled, guests will normally pass in multi-descriptor 
chains, each one describing 64K or 32K buffers.
  It makes sense to add more vq methods to handle the mergeable rx bufs case, 
but  think they should be moved to usr.sbin/bhyve/virtio.c, so that they can be 
reused.

INLINE COMMENTS

> pci_virtio_net.c:525
> +
> +     if (ndesc < minavail)
> +             return (0);

why this check? if there are not enough descriptors to cover 'len' bytes the 
function will return 0 anyway.

> pci_virtio_net.c:526
> +     if (ndesc < minavail)
> +             return (0);
> +

You are mixing declarations and code here. Is it allowed?

> pci_virtio_net.c:670
>  
> -     /* Interrupt if needed, including for NOTIFY_ON_EMPTY. */
> +     vq_inc_used_idx_and_last_avail(vq, used);
>       vq_endchains(vq, 1);

I think you should call vq_inc_used_idx_and_last_avail() after each packet, 
otherwise you are introducing artificial latency. As a side effect, this allows 
you to remove the "start" argument ("used" local variable) and the used local 
variable.

> pci_virtio_net.c:673
> +
> +     return;
>  }

why this return?

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