Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: wm(4) faster than vioif(4) in some cases



On Fri, 23 Oct 2015 15:24:23 +0000 (UTC)
Michael van Elst <mlelstv%serpens.de@localhost> wrote:

> tnn%NetBSD.org@localhost (Tobias Nygren) writes:
> 
> >I suspect this may be because there is no TX completion notification
> >which NFS needs for good performance.
> 
> Not sure what you mean with 'completition notification' here.

NFS has a hook (nfs_writerpc_extfree) that usually gets called when
intr_txeof frees the mbuf. This signals "nfsmblk" and it looks like if
the callback does not happen, then writes can potentially block for a
long time. This is only a theory, there may be other causes for the
slowness but it is very noticable.

> >Does anyone know what needs to be done to enable tx interrupt?
> 
> In vioif_attach() you find:
> 
>         virtio_start_vq_intr(vsc, &sc->sc_vq[0]);
>         virtio_stop_vq_intr(vsc, &sc->sc_vq[1]); /* not urgent; do it later */
> ...
>                         virtio_start_vq_intr(vsc, &sc->sc_vq[2]);
> 
> sc_vq[0] = receive queue
> sc_vq[1] = transmit queue
> sc_vq[2] = control queue
> 
> The interrupt handler should already be in place. You just need to
> start instead of stop.

Thank you, I will test this and report back with my findings.

-Tobias


Home | Main Index | Thread Index | Old Index