Message ID | 1701970793-6865-9-git-send-email-si-wei.liu@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vdpa-net: improve migration downtime through descriptor ASID and persistent IOTLB | expand |
On Thu, Dec 7, 2023 at 7:52 PM Si-Wei Liu <si-wei.liu@oracle.com> wrote: > > Previous commits had it removed. Now adding it back because > this function will be needed by next patches. > > Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com> > --- > net/vhost-vdpa.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > index dbfa192..c9bfc6f 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -287,6 +287,16 @@ static ssize_t vhost_vdpa_receive(NetClientState *nc, const uint8_t *buf, > return size; > } > > + Extra newline. > +/** From any vdpa net client, get the netclient of the first queue pair */ > +static VhostVDPAState *vhost_vdpa_net_first_nc_vdpa(VhostVDPAState *s) > +{ > + NICState *nic = qemu_get_nic(s->nc.peer); > + NetClientState *nc0 = qemu_get_peer(nic->ncs, 0); > + > + return DO_UPCAST(VhostVDPAState, nc, nc0); > +} > + > static void vhost_vdpa_net_log_global_enable(VhostVDPAState *s, bool enable) > { > struct vhost_vdpa *v = &s->vhost_vdpa; > @@ -566,7 +576,7 @@ dma_map_err: > > static int vhost_vdpa_net_cvq_start(NetClientState *nc) > { > - VhostVDPAState *s; > + VhostVDPAState *s, *s0; > struct vhost_vdpa *v; > int64_t cvq_group; > int r; > @@ -577,7 +587,8 @@ static int vhost_vdpa_net_cvq_start(NetClientState *nc) > s = DO_UPCAST(VhostVDPAState, nc, nc); > v = &s->vhost_vdpa; > > - v->shadow_vqs_enabled = v->shared->shadow_data; > + s0 = vhost_vdpa_net_first_nc_vdpa(s); > + v->shadow_vqs_enabled = s0->vhost_vdpa.shadow_vqs_enabled; > s->vhost_vdpa.address_space_id = VHOST_VDPA_GUEST_PA_ASID; I'm wondering if shared->shadow_data is more correct now. Either way: Reviewed-by: Eugenio Pérez <eperezma@redhat.com> Thanks! > > if (v->shared->shadow_data) { > -- > 1.8.3.1 > >
On Fri, Dec 8, 2023 at 2:52 AM Si-Wei Liu <si-wei.liu@oracle.com> wrote: > > Previous commits had it removed. Now adding it back because > this function will be needed by next patches. Need some description to explain why. Because it should not be needed as we have a "parent" structure now, anything that is common could be stored there? Thanks
diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index dbfa192..c9bfc6f 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -287,6 +287,16 @@ static ssize_t vhost_vdpa_receive(NetClientState *nc, const uint8_t *buf, return size; } + +/** From any vdpa net client, get the netclient of the first queue pair */ +static VhostVDPAState *vhost_vdpa_net_first_nc_vdpa(VhostVDPAState *s) +{ + NICState *nic = qemu_get_nic(s->nc.peer); + NetClientState *nc0 = qemu_get_peer(nic->ncs, 0); + + return DO_UPCAST(VhostVDPAState, nc, nc0); +} + static void vhost_vdpa_net_log_global_enable(VhostVDPAState *s, bool enable) { struct vhost_vdpa *v = &s->vhost_vdpa; @@ -566,7 +576,7 @@ dma_map_err: static int vhost_vdpa_net_cvq_start(NetClientState *nc) { - VhostVDPAState *s; + VhostVDPAState *s, *s0; struct vhost_vdpa *v; int64_t cvq_group; int r; @@ -577,7 +587,8 @@ static int vhost_vdpa_net_cvq_start(NetClientState *nc) s = DO_UPCAST(VhostVDPAState, nc, nc); v = &s->vhost_vdpa; - v->shadow_vqs_enabled = v->shared->shadow_data; + s0 = vhost_vdpa_net_first_nc_vdpa(s); + v->shadow_vqs_enabled = s0->vhost_vdpa.shadow_vqs_enabled; s->vhost_vdpa.address_space_id = VHOST_VDPA_GUEST_PA_ASID; if (v->shared->shadow_data) {
Previous commits had it removed. Now adding it back because this function will be needed by next patches. Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com> --- net/vhost-vdpa.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)