linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Li Chen <me@linux.beauty>
To: "Arnd Bergmann" <arnd@arndb.de>
Cc: "Catalin Marinas" <catalin.marinas@arm.com>,
	"Will Deacon" <will@kernel.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Frank Rowand" <frowand.list@gmail.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Li Chen" <lchen@ambarella.com>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"DTML" <devicetree@vger.kernel.org>,
	"Linux-MM" <linux-mm@kvack.org>
Subject: Re: [PATCH 4/4] sample/reserved_mem: Introduce a sample of struct page and dio support to no-map rmem
Date: Tue, 12 Jul 2022 17:58:29 +0800	[thread overview]
Message-ID: <181f1d88b64.e2eb2601586551.453778983551010212@linux.beauty> (raw)
In-Reply-To: <CAK8P3a30o1RLifV1TMqDJ26vLhVdOzz3wP6yPrayLV2GPxUtwQ@mail.gmail.com>

Hi Arnd,
 ---- On Tue, 12 Jul 2022 15:50:46 +0800  Arnd Bergmann <arnd@arndb.de> wrote --- 
 > On Tue, Jul 12, 2022 at 2:26 AM Li Chen <me@linux.beauty> wrote:
 > >  ---- On Mon, 11 Jul 2022 21:28:10 +0800  Arnd Bergmann <arnd@arndb.de> wrote ---
 > >  > On Mon, Jul 11, 2022 at 2:24 PM Li Chen <me@linux.beauty> wrote:
 > >  > >
 > >  > > From: Li Chen <lchen@ambarella.com>
 > >  > >
 > >  > > This sample driver shows how to build struct pages support to no-map rmem.
 > >  > >
 > >  > > Signed-off-by: Li Chen <lchen@ambarella.com>
 > >  >
 > >  > Not sure what a sample driver helps here if there are no actual users in-tree.
 > >  >
 > >  > It would make more sense to merge the driver that wants to actually use this
 > >  > first, and then add the additional feature.
 > >
 > > Totally agree, but we plan to start rewriting our video driver in a long time, it
 > > has many legacy codes and I need to rewrite a lot of codes to migrate to v4l2.
 > > That's why I also submit a sample driver here: to make the review progress
 > > easier and don't need reviewers to read video driver codes.
 > 
 > The problem is that this patch may not be the right solution for your new
 > driver either.  As Christoph also commented, what you do here is rather
 > unusual, and without seeing the video driver first, we have no way of
 > knowing whether there is something the driver should be doing
 > differently to solve the original problem.

Ok, I will update the patch series after rewriting and upstreaming our video driver.

 > 
 > >  > > +/*
 > >  > > + * dts example
 > >  > > + * rmem: rmem@1 {
 > >  > > + *                     compatible = "shared-dma-pool";
 > >  > > + *                     no-map;
 > >  > > + *                     size = <0x0 0x20000000>;
 > >  > > + *             };
 > >  > > + * perf {
 > >  > > + *             compatible = "example,rmem";
 > >  > > + *             memory-region = <&rmem>;
 > >  > > + *     };
 > >  >
 > >  > The problem here is that the DT is meant to describe the platform in an OS
 > >  > independent way, so having a binding that just corresponds to a user space
 > >  > interface is not a good abstraction.
 > >
 > > Gotcha, but IMO dts + rmem is the only choice for our use case. In our real
 > > case, we use reg instead of size to specify the physical address, so
 > > memremap cannot be used.
 > 
 > Does your hardware require a fixed address for the buffer? If it can be
 > anywhere in memory (or at least within a certain range) but just has to
 > be physically contiguous, the normal way would be to use a CMA area
 > to allocate from, which gives you 'struct page' backed pages.

The limitation is our DSP can only access 32bit memory, but total dram is > 4G, so I cannot use
"size = <...>" in our real case (it might get memory above 4G). I'm not sure if other vendors' DSP also has
this limitation, if so, how do they deal with it if throughput matters.

Regards,
Li

  reply	other threads:[~2022-07-12  9:59 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-11 12:24 [PATCH 0/4] add struct page and Direct I/O support to reserved memory Li Chen
2022-07-11 12:24 ` [PATCH 1/4] of: add struct page support to rmem Li Chen
2022-07-11 13:36   ` Arnd Bergmann
2022-07-11 14:51     ` Li Chen
2022-07-11 15:06       ` Arnd Bergmann
2022-07-12  3:13         ` Li Chen
2022-07-16  0:38   ` kernel test robot
2022-07-18 13:21   ` Dan Carpenter
2022-07-11 12:24 ` [PATCH 2/4] mm/sparse: skip no-map memblock check when fill_subsection_map Li Chen
2022-07-11 14:53   ` David Hildenbrand
2022-07-12  4:23     ` Li Chen
2022-07-12  7:31       ` David Hildenbrand
2022-07-12  9:31         ` Li Chen
2022-07-14 18:45   ` kernel test robot
2022-07-11 12:24 ` [PATCH 3/4] arm64: mm: move memblock_clear_nomap after __add_pages Li Chen
2022-07-11 12:24 ` [PATCH 4/4] sample/reserved_mem: Introduce a sample of struct page and dio support to no-map rmem Li Chen
2022-07-11 13:28   ` Arnd Bergmann
2022-07-12  0:26     ` Li Chen
2022-07-12  7:50       ` Arnd Bergmann
2022-07-12  9:58         ` Li Chen [this message]
2022-07-12 10:08           ` Arnd Bergmann
2022-07-12 10:20             ` Arnd Bergmann
2022-07-12 10:55             ` Li Chen
2022-07-12 12:10               ` Arnd Bergmann
2022-08-04  7:17         ` Li Chen
2022-08-04  8:24           ` Arnd Bergmann
2022-08-04 10:07             ` Li Chen
2022-08-05 14:09               ` Arnd Bergmann
2022-08-05 15:28                 ` David Hildenbrand
2022-07-11 15:01 ` [PATCH 0/4] add struct page and Direct I/O support to reserved memory Christoph Hellwig
2022-07-11 16:05   ` Li Chen
2022-07-11 16:09     ` Christoph Hellwig
2022-07-12  0:14       ` Li Chen

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=181f1d88b64.e2eb2601586551.453778983551010212@linux.beauty \
    --to=me@linux.beauty \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=lchen@ambarella.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=robh+dt@kernel.org \
    --cc=will@kernel.org \
    /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).