On Thu, Aug 4, 2022 at 1:57 PM Eugenio Perez Martin <epere...@redhat.com> wrote: > > On Thu, Aug 4, 2022 at 5:01 AM Jason Wang <jasow...@redhat.com> wrote: > > > > > > 在 2022/8/3 01:57, Eugenio Pérez 写道: > > > Since we're going to allow SVQ to add elements without the guest's > > > knowledge and without its own VirtQueueElement, it's easier to check if > > > an element is a valid head checking a different thing than the > > > VirtQueueElement. > > > > > > Signed-off-by: Eugenio Pérez <epere...@redhat.com> > > > --- > > > > > > Patch looks good to me. But I spot several other issues: > > > > 1) vhost_svq_add() use size_t for in_num and out_num, is this intended? > > Would you prefer them to be unsigned? To me size_t fits better, but > VirtQueueElement uses unsigned anyway.
Yes, the problem I ask is because the in_num were from VirtQueueElement which is unsigned and cast to size_t and then cast back to unsigned. > > > 2) do we need to fail vhost_svq_add() if in_num + out_num == 0? > > > > We can recover from it, but it's a failure of qemu code. > - In the case of loading the state to the destination device, we > already know the layout (it's always 1 out, 1 in). > - In the case of forwarding buffers, there is no way to get a > VirtQueueElement with 0 out and 0 in descriptors, due to the virtqueue > way of working. So I think it's better to fail the svq_add in this case. Thanks > > Would you prefer to return success in this case? > > Thanks! >