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