linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Loic PALLARDY <loic.pallardy@st.com>
To: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: "ohad@wizery.com" <ohad@wizery.com>,
	"linux-remoteproc@vger.kernel.org"
	<linux-remoteproc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Arnaud POULIQUEN <arnaud.pouliquen@st.com>,
	"benjamin.gaignard@linaro.org" <benjamin.gaignard@linaro.org>
Subject: RE: [PATCH v3 11/13] remoteproc: create vdev subdevice with specific dma memory pool
Date: Mon, 14 May 2018 15:57:08 +0000	[thread overview]
Message-ID: <1964b4422c324eb9a7d712ad1d278b55@SFHDAG7NODE2.st.com> (raw)
In-Reply-To: <20180510010601.GJ29093@builder>



> -----Original Message-----
> From: Bjorn Andersson [mailto:bjorn.andersson@linaro.org]
> Sent: Thursday, May 10, 2018 3:06 AM
> To: Loic PALLARDY <loic.pallardy@st.com>
> Cc: ohad@wizery.com; linux-remoteproc@vger.kernel.org; linux-
> kernel@vger.kernel.org; Arnaud POULIQUEN <arnaud.pouliquen@st.com>;
> benjamin.gaignard@linaro.org
> Subject: Re: [PATCH v3 11/13] remoteproc: create vdev subdevice with
> specific dma memory pool
> 
> On Thu 01 Mar 08:23 PST 2018, Loic Pallardy wrote:
> > @@ -479,6 +481,41 @@ static int rproc_handle_vdev(struct rproc *rproc,
> struct fw_rsc_vdev *rsc,
> >  			goto unwind_vring_allocations;
> >  	}
> >
> > +	/* Initialise vdev subdevice */
> > +	snprintf(name, sizeof(name), "vdev%dbuffer", rvdev->index);
> > +	rvdev->dev.parent = rproc->dev.parent;
> > +	dev_set_name(&rvdev->dev, "%s#%s", dev_name(rvdev-
> >dev.parent), name);
> > +	dev_set_drvdata(&rvdev->dev, rvdev);
> > +	dma_set_coherent_mask(&rvdev->dev, DMA_BIT_MASK(32));
> > +
> > +	ret = device_register(&rvdev->dev);
> > +	if (ret)
> > +		goto unwind_vring_allocations;
> > +
> > +	/* Try to find dedicated vdev buffer carveout */
> > +	carveout = rproc_find_carveout_by_name(rproc, name);
> > +
> > +	if (carveout) {
> > +		phys_addr_t pa;
> > +
> > +		if (carveout->va) {
> > +			dev_warn(dev, "vdev %d buffer carveout already
> mapped\n",
> > +				 rvdev->index);
> > +			pa = rproc_va_to_pa(carveout->va);
> > +		} else {
> > +			/* Use dma address as carveout no memmapped yet
> */
> > +			pa = (phys_addr_t)carveout->dma;
> > +		}
> > +
> > +		/* Associate vdev buffer memory pool to vdev subdevice */
> > +		ret = dmam_declare_coherent_memory(&rvdev->dev, pa,
> > +						   carveout->da,
> > +						   carveout->len,
> > +
> DMA_MEMORY_EXCLUSIVE);
> > +		if (ret < 0)
> > +			goto unregister_device;
> > +	}
> > +
> 
> So with this there will be one more device between rproc->dev and the
> virtio dev, for the sake of memory management. So e.g. a rpmsg device
> will still need to allocate memory from dev->parent->parent; which now
> possibly has a specific dma_mem.

Yes it is a new sub device between virtio dev and rproc dev, but this device owns memory region dedicated to this vdev
So, rpmsg device will allocate from dev->parent, not from dev->parent->parent.

> 
> Is it not possible to assign the memory to the vdev->dev and allow the
> virtio devices can allocate memory from their parent device?
No sure to catch your point.
Who should be the parent device? Rproc dev itself? Doesn't fit well if you want to handle 2 different vdev with specific memory region for each of them.

Regards,
Loic
> 
> Regards,
> Bjorn

  reply	other threads:[~2018-05-14 15:57 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-01 16:23 [PATCH v3 00/13] remoteproc: add fixed memory region support Loic Pallardy
2018-03-01 16:23 ` [PATCH v3 01/13] remoteproc: configure IOMMU only if device address requested Loic Pallardy
2018-03-01 16:23 ` [PATCH v3 02/13] remoteproc: add rproc_va_to_pa function Loic Pallardy
2018-05-10  0:11   ` Bjorn Andersson
2018-03-01 16:23 ` [PATCH v3 03/13] remoteproc: add release ops in rproc_mem_entry struct Loic Pallardy
2018-05-10  0:53   ` Bjorn Andersson
2018-03-01 16:23 ` [PATCH v3 04/13] remoteproc: add name " Loic Pallardy
2018-05-10  0:12   ` Bjorn Andersson
2018-03-01 16:23 ` [PATCH v3 05/13] remoteproc: add helper function to allocate and init " Loic Pallardy
2018-03-01 16:23 ` [PATCH v3 06/13] remoteproc: introduce rproc_add_carveout function Loic Pallardy
2018-05-10  0:56   ` Bjorn Andersson
2018-03-01 16:23 ` [PATCH v3 07/13] remoteproc: introduce rproc_find_carveout_by_name function Loic Pallardy
2018-05-10  0:19   ` Bjorn Andersson
2018-05-14 14:40     ` Loic PALLARDY
2018-03-01 16:23 ` [PATCH v3 08/13] remoteproc: add prepare and unprepare ops Loic Pallardy
2018-05-10  0:52   ` Bjorn Andersson
2018-05-14 15:03     ` Loic PALLARDY
2018-10-24  3:12       ` Suman Anna
2018-03-01 16:23 ` [PATCH v3 09/13] remoteproc: modify rproc_handle_carveout to support pre-registered region Loic Pallardy
2018-05-10  0:42   ` Bjorn Andersson
2018-05-14 14:52     ` Loic PALLARDY
2018-03-01 16:23 ` [PATCH v3 10/13] remoteproc: modify vring allocation " Loic Pallardy
2018-05-10  0:59   ` Bjorn Andersson
2018-05-14 15:43     ` Loic PALLARDY
2018-03-01 16:23 ` [PATCH v3 11/13] remoteproc: create vdev subdevice with specific dma memory pool Loic Pallardy
2018-05-10  1:06   ` Bjorn Andersson
2018-05-14 15:57     ` Loic PALLARDY [this message]
2018-03-01 16:23 ` [PATCH v3 12/13] rpmsg: virtio: allocate buffer from parent Loic Pallardy
2018-03-01 16:24 ` [PATCH v3 13/13] remoteproc: st: add reserved memory support Loic Pallardy
2018-04-03 12:04 ` [PATCH v3 00/13] remoteproc: add fixed memory region support Loic PALLARDY
2018-06-25  3:23 ` Anup Patel
2018-06-26  8:17   ` Loic PALLARDY

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1964b4422c324eb9a7d712ad1d278b55@SFHDAG7NODE2.st.com \
    --to=loic.pallardy@st.com \
    --cc=arnaud.pouliquen@st.com \
    --cc=benjamin.gaignard@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=ohad@wizery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).