Hello!
I note the following in the serial console:
if (is_rproc_serial(vdev)) {
/*
* Allocate DMA memory from ancestor. When a virtio
* device is created by remoteproc, the DMA memory is
* associated with the grandparent device:
* vdev => rproc => platform-dev.
*/
if (!vdev->dev.parent || !vdev->dev.parent->parent)
goto free_buf;
buf->dev = vdev->dev.parent->parent;
/* Increase device refcnt to avoid freeing it */
get_device(buf->dev);
buf->buf = dma_alloc_coherent(buf->dev, buf_size,
&buf->dma,
GFP_KERNEL);
}
Added here:
commit 1b6370463e88b0c1c317de16d7b962acc1dab4f2
Author: Sjur Br?ndeland <sjur.brandeland at stericsson.com>
Date: Fri Dec 14 14:40:51 2012 +1030
virtio_console: Add support for remoteproc serial
I am not familiar with rproc so I have a question:
why is it required to use coherent memory here,
and why through a grandparent device?
Would it work to instead change vring_use_dma_api
to whitelist rproc (like we do for xen)?
I can sent a patch for your testing.
Thanks!
--
MST
On Fri, Apr 20, 2018 at 10:23 PM, Michael S. Tsirkin <mst at redhat.com> wrote:> Hello! > I note the following in the serial console: > > if (is_rproc_serial(vdev)) { > /* > * Allocate DMA memory from ancestor. When a virtio > * device is created by remoteproc, the DMA memory is > * associated with the grandparent device: > * vdev => rproc => platform-dev. > */ > if (!vdev->dev.parent || !vdev->dev.parent->parent) > goto free_buf; > buf->dev = vdev->dev.parent->parent; > > /* Increase device refcnt to avoid freeing it */ > get_device(buf->dev); > buf->buf = dma_alloc_coherent(buf->dev, buf_size, &buf->dma, > GFP_KERNEL); > } > > Added here: > commit 1b6370463e88b0c1c317de16d7b962acc1dab4f2 > Author: Sjur Br?ndeland <sjur.brandeland at stericsson.com> > Date: Fri Dec 14 14:40:51 2012 +1030 > > virtio_console: Add support for remoteproc serial > > > I am not familiar with rproc so I have a question: > why is it required to use coherent memory here, > and why through a grandparent device?I faced similar issue when I tried VirtIO RPMSG bus over VirtIO MMIO transport. Here's my fix for VirtIO RPMSG bus driver: https://patchwork.kernel.org/patch/10155145/ Regards, Anup
> -----Original Message----- > From: linux-remoteproc-owner at vger.kernel.org [mailto:linux-remoteproc- > owner at vger.kernel.org] On Behalf Of Anup Patel > Sent: Sunday, April 22, 2018 6:08 AM > To: Michael S. Tsirkin <mst at redhat.com> > Cc: linux-remoteproc at vger.kernel.org; Ohad Ben-Cohen > <ohad at wizery.com>; Bjorn Andersson <bjorn.andersson at linaro.org>; > virtualization at lists.linux-foundation.org > Subject: Re: virtio remoteproc device > > On Fri, Apr 20, 2018 at 10:23 PM, Michael S. Tsirkin <mst at redhat.com> > wrote: > > Hello! > > I note the following in the serial console: > > > > if (is_rproc_serial(vdev)) { > > /* > > * Allocate DMA memory from ancestor. When a virtio > > * device is created by remoteproc, the DMA memory is > > * associated with the grandparent device: > > * vdev => rproc => platform-dev. > > */ > > if (!vdev->dev.parent || !vdev->dev.parent->parent) > > goto free_buf; > > buf->dev = vdev->dev.parent->parent; > > > > /* Increase device refcnt to avoid freeing it */ > > get_device(buf->dev); > > buf->buf = dma_alloc_coherent(buf->dev, buf_size, &buf->dma, > > GFP_KERNEL); > > } > > > > Added here: > > commit 1b6370463e88b0c1c317de16d7b962acc1dab4f2 > > Author: Sjur Br?ndeland <sjur.brandeland at stericsson.com> > > Date: Fri Dec 14 14:40:51 2012 +1030 > > > > virtio_console: Add support for remoteproc serial > > > > > > I am not familiar with rproc so I have a question: > > why is it required to use coherent memory here, > > and why through a grandparent device? > > I faced similar issue when I tried VirtIO RPMSG bus over > VirtIO MMIO transport. > > Here's my fix for VirtIO RPMSG bus driver: > https://patchwork.kernel.org/patch/10155145/Hi Anup and Michael, I pushed a series to modify virtio device allocation in remoteproc. Please see [1]. It allows to remove allocation based on "grand-parent" device in the case of virtio device allocated by remoteproc. Virto_console patch missing, only virtio_rpmsg modification proposed. I can add it in next version. Regards, Loic [1] https://lkml.org/lkml/2018/3/1/644> > Regards, > Anup > -- > To unsubscribe from this list: send the line "unsubscribe linux-remoteproc" in > the body of a message to majordomo at vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html