Victor Kaplansky
2015-Aug-19 11:54 UTC
[PATCH v2 1/2] virtio-net: rephrase devconf fields description
On Mon, Aug 17, 2015 at 10:43:46AM +0800, Jason Wang wrote:> > > On 08/16/2015 09:42 PM, Victor Kaplansky wrote: > > Clarify general description of the mac, status and > > max_virtqueue_pairs fields. Specifically, the old description is > > vague about configuration layout and fields offsets when some of > > the fields are non valid. > > > > Also clarify that validity of two status bits depends on two > > different feature flags. > > > > Signed-off-by: Victor Kaplansky <victork at redhat.com> > > --- > > + > > +\item [\field{max_virtqueue_pairs}] tells the driver the maximum > > + number of each of virtqueues (receiveq1\ldots receiveqN and > > + transmitq1\ldots transmitqN respectively) that can be configured > > + on the device once VIRTIO_NET_F_MQ is negotiated. > > + \field{max_virtqueue_pairs} is valid only if VIRTIO_NET_F_MQ is > > + set and can be read by the driver. > > + > > > I don't get the point that adding "can be read by the driver". Looks > like it's hard for hypervisor to detect this?AFAIU, if the device sets VIRTIO_NET_F_MQ, the device also sets the value of 'max_virtqueue_pairs' even before driver negotiated VIRTIO_NET_F_MQ. If so, the driver can read the value of 'max_virtqueue_pairs' during negotiation and potentially this value can even affect negotiation decision of the driver. If above is correct, I'll change the description to make this point more clear. Thanks, -- Victor
Jason Wang
2015-Aug-20 02:46 UTC
[PATCH v2 1/2] virtio-net: rephrase devconf fields description
On 08/19/2015 07:54 PM, Victor Kaplansky wrote:> On Mon, Aug 17, 2015 at 10:43:46AM +0800, Jason Wang wrote: >> >> On 08/16/2015 09:42 PM, Victor Kaplansky wrote: >>> Clarify general description of the mac, status and >>> max_virtqueue_pairs fields. Specifically, the old description is >>> vague about configuration layout and fields offsets when some of >>> the fields are non valid. >>> >>> Also clarify that validity of two status bits depends on two >>> different feature flags. >>> >>> Signed-off-by: Victor Kaplansky <victork at redhat.com> >>> --- >>> + >>> +\item [\field{max_virtqueue_pairs}] tells the driver the maximum >>> + number of each of virtqueues (receiveq1\ldots receiveqN and >>> + transmitq1\ldots transmitqN respectively) that can be configured >>> + on the device once VIRTIO_NET_F_MQ is negotiated. >>> + \field{max_virtqueue_pairs} is valid only if VIRTIO_NET_F_MQ is >>> + set and can be read by the driver. >>> + >> >> I don't get the point that adding "can be read by the driver". Looks >> like it's hard for hypervisor to detect this? > AFAIU, if the device sets VIRTIO_NET_F_MQ, the device also sets > the value of 'max_virtqueue_pairs' even before driver negotiated > VIRTIO_NET_F_MQ. If so, the driver can read the value of > 'max_virtqueue_pairs' during negotiation and potentially this > value can even affect negotiation decision of the driver.Looks not, it's legal to negotiate VIRTIO_NET_F_MQ with max_virtqueue_pairs = 1.> > If above is correct, I'll change the description to make this > point more clear. > > Thanks, > -- VictorDriver also sets 'mac' before driver negotiated VIRTIO_NET_F_MAC, so I'm not sure this is really needed. Thanks
Possibly Parallel Threads
- [PATCH v2 1/2] virtio-net: rephrase devconf fields description
- [PATCH v2 1/2] virtio-net: rephrase devconf fields description
- [PATCH v2 1/2] virtio-net: rephrase devconf fields description
- [PATCH v2 1/2] virtio-net: rephrase devconf fields description
- [PATCH v2 0/2] virtio-net: default_mtu - new conf. field