From: nacc@linux.vnet.ibm.com (Nishanth Aravamudan)
Subject: [PATCH 1/5 v2] dma-mapping: add generic dma_get_page_shift API
Date: Thu, 15 Oct 2015 15:52:19 -0700 [thread overview]
Message-ID: <20151015225219.GD30179@linux.vnet.ibm.com> (raw)
In-Reply-To: <20151014154251.GA7271@infradead.org>
On 14.10.2015 [08:42:51 -0700], Christoph Hellwig wrote:
> Hi Nishanth,
>
> sorry for the late reply.
>
> > > On Power, since it's technically variable, we'd need a function. So are
> > > you suggesting define'ing it to a function just on Power and leaving it
> > > a constant elsewhere?
> > >
> > > I noticed that sparc has a IOMMU_PAGE_SHIFT already, fwiw.
> >
> > Sorry, I should have been more specific -- I'm ready to spin out a v3,
> > with a sparc-specific function.
> >
> > Are you ok with leaving it a function for now (the only caller is in
> > NVMe obviously).
>
>
> I guess we do indeed need a function then. I'll take a look at your
> patch, but as long you found a way to avoid adding too much boilerplate
> code it should be fine.
Ok, so I've got the moved function (include/linux/dma-mapping.h instead
of dma-mapping-common.h) ready to go, which should only involve changing
the first patch in the series. But I'm really mystified by what to do
for sparc, which defines IOMMU_PAGE_SHIFT and IO_PAGE_SHIFT in
arch/sparc/kernel/iommu_common.h.
1) Which constant reflects the value we mean for this function on sparc?
I assume it should be IOMMU_PAGE_SHIFT, but they are the same value and
I want to make sure I get the semantics right.
2) Where would I put sparc's definition of dma_get_page_shift()? Should
it be in a asm/dma-mapping.h? Should we move some of the constants from
arch/sparc/kernel/iommu_common.h to
arch/sparc/include/asm/iommu_common.h and then #include that in
asm/dma-mapping.h?
Dave M., any opinions/insights? Essentially, this helper function
assists the NVMe driver in determining what page size it should use to
satisfy both the device and IOMMU's requirements. Maybe I misunderstand
the constants on sparc and PAGE_SHIFT is fine there too?
-Nish
WARNING: multiple messages have this Message-ID (diff)
From: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Matthew Wilcox <willy@linux.intel.com>,
Keith Busch <keith.busch@intel.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Alexey Kardashevskiy <aik@ozlabs.ru>,
David Gibson <david@gibson.dropbear.id.au>,
linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org,
"David S. Miller" <davem@davemloft.net>,
sparclinux@vger.kernel.org
Subject: Re: [PATCH 1/5 v2] dma-mapping: add generic dma_get_page_shift API
Date: Thu, 15 Oct 2015 15:52:19 -0700 [thread overview]
Message-ID: <20151015225219.GD30179@linux.vnet.ibm.com> (raw)
In-Reply-To: <20151014154251.GA7271@infradead.org>
On 14.10.2015 [08:42:51 -0700], Christoph Hellwig wrote:
> Hi Nishanth,
>
> sorry for the late reply.
>
> > > On Power, since it's technically variable, we'd need a function. So are
> > > you suggesting define'ing it to a function just on Power and leaving it
> > > a constant elsewhere?
> > >
> > > I noticed that sparc has a IOMMU_PAGE_SHIFT already, fwiw.
> >
> > Sorry, I should have been more specific -- I'm ready to spin out a v3,
> > with a sparc-specific function.
> >
> > Are you ok with leaving it a function for now (the only caller is in
> > NVMe obviously).
>
>
> I guess we do indeed need a function then. I'll take a look at your
> patch, but as long you found a way to avoid adding too much boilerplate
> code it should be fine.
Ok, so I've got the moved function (include/linux/dma-mapping.h instead
of dma-mapping-common.h) ready to go, which should only involve changing
the first patch in the series. But I'm really mystified by what to do
for sparc, which defines IOMMU_PAGE_SHIFT and IO_PAGE_SHIFT in
arch/sparc/kernel/iommu_common.h.
1) Which constant reflects the value we mean for this function on sparc?
I assume it should be IOMMU_PAGE_SHIFT, but they are the same value and
I want to make sure I get the semantics right.
2) Where would I put sparc's definition of dma_get_page_shift()? Should
it be in a asm/dma-mapping.h? Should we move some of the constants from
arch/sparc/kernel/iommu_common.h to
arch/sparc/include/asm/iommu_common.h and then #include that in
asm/dma-mapping.h?
Dave M., any opinions/insights? Essentially, this helper function
assists the NVMe driver in determining what page size it should use to
satisfy both the device and IOMMU's requirements. Maybe I misunderstand
the constants on sparc and PAGE_SHIFT is fine there too?
-Nish
WARNING: multiple messages have this Message-ID (diff)
From: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
To: sparclinux@vger.kernel.org
Subject: Re: [PATCH 1/5 v2] dma-mapping: add generic dma_get_page_shift API
Date: Thu, 15 Oct 2015 22:52:19 +0000 [thread overview]
Message-ID: <20151015225219.GD30179@linux.vnet.ibm.com> (raw)
In-Reply-To: <20151014154251.GA7271@infradead.org>
On 14.10.2015 [08:42:51 -0700], Christoph Hellwig wrote:
> Hi Nishanth,
>
> sorry for the late reply.
>
> > > On Power, since it's technically variable, we'd need a function. So are
> > > you suggesting define'ing it to a function just on Power and leaving it
> > > a constant elsewhere?
> > >
> > > I noticed that sparc has a IOMMU_PAGE_SHIFT already, fwiw.
> >
> > Sorry, I should have been more specific -- I'm ready to spin out a v3,
> > with a sparc-specific function.
> >
> > Are you ok with leaving it a function for now (the only caller is in
> > NVMe obviously).
>
>
> I guess we do indeed need a function then. I'll take a look at your
> patch, but as long you found a way to avoid adding too much boilerplate
> code it should be fine.
Ok, so I've got the moved function (include/linux/dma-mapping.h instead
of dma-mapping-common.h) ready to go, which should only involve changing
the first patch in the series. But I'm really mystified by what to do
for sparc, which defines IOMMU_PAGE_SHIFT and IO_PAGE_SHIFT in
arch/sparc/kernel/iommu_common.h.
1) Which constant reflects the value we mean for this function on sparc?
I assume it should be IOMMU_PAGE_SHIFT, but they are the same value and
I want to make sure I get the semantics right.
2) Where would I put sparc's definition of dma_get_page_shift()? Should
it be in a asm/dma-mapping.h? Should we move some of the constants from
arch/sparc/kernel/iommu_common.h to
arch/sparc/include/asm/iommu_common.h and then #include that in
asm/dma-mapping.h?
Dave M., any opinions/insights? Essentially, this helper function
assists the NVMe driver in determining what page size it should use to
satisfy both the device and IOMMU's requirements. Maybe I misunderstand
the constants on sparc and PAGE_SHIFT is fine there too?
-Nish
next prev parent reply other threads:[~2015-10-15 22:52 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-02 17:16 [PATCH 0/2] Fix NVMe driver support on Power with 32-bit DMA Nishanth Aravamudan
2015-10-02 17:16 ` Nishanth Aravamudan
2015-10-02 17:18 ` [PATCH 1/2] powerpc/iommu: expose IOMMU page shift Nishanth Aravamudan
2015-10-02 17:18 ` Nishanth Aravamudan
2015-10-02 17:23 ` [PATCH 2/2] drivers/nvme: default to the IOMMU page size on Power Nishanth Aravamudan
2015-10-02 17:23 ` Nishanth Aravamudan
2015-10-02 17:25 ` Christoph Hellwig
2015-10-02 17:25 ` Christoph Hellwig
2015-10-02 17:39 ` Nishanth Aravamudan
2015-10-02 17:39 ` Nishanth Aravamudan
2015-10-02 17:41 ` Christoph Hellwig
2015-10-02 17:41 ` Christoph Hellwig
2015-10-02 18:57 ` kbuild test robot
2015-10-02 18:57 ` kbuild test robot
2015-10-06 3:19 ` [PATCH 1/2] powerpc/iommu: expose IOMMU page shift David Gibson
2015-10-06 3:19 ` David Gibson
2015-10-12 16:03 ` Nishanth Aravamudan
2015-10-12 16:03 ` Nishanth Aravamudan
2015-10-12 21:10 ` Nishanth Aravamudan
2015-10-12 21:10 ` Nishanth Aravamudan
2015-10-02 20:09 ` [PATCH 0/5 v2] Fix NVMe driver support on Power with 32-bit DMA Nishanth Aravamudan
2015-10-02 20:09 ` Nishanth Aravamudan
2015-10-02 20:11 ` [PATCH 1/5 v2] dma-mapping: add generic dma_get_page_shift API Nishanth Aravamudan
2015-10-02 20:11 ` Nishanth Aravamudan
2015-10-02 20:16 ` [PATCH 2/5 v2] powerpc/dma-mapping: override dma_get_page_shift Nishanth Aravamudan
2015-10-02 20:16 ` Nishanth Aravamudan
2015-10-02 20:19 ` [PATCH 3/5 v2] powerpc/dma: implement per-platform dma_get_page_shift Nishanth Aravamudan
2015-10-02 20:19 ` Nishanth Aravamudan
2015-10-02 20:21 ` [PATCH 4/5 v2] pseries/iommu: implement DDW-aware dma_get_page_shift Nishanth Aravamudan
2015-10-02 20:21 ` Nishanth Aravamudan
2015-10-02 20:30 ` [PATCH 5/5 v2] drivers/nvme: default to the IOMMU page size Nishanth Aravamudan
2015-10-02 20:30 ` Nishanth Aravamudan
2015-10-02 20:43 ` kbuild test robot
2015-10-02 20:43 ` kbuild test robot
2015-10-02 20:33 ` [PATCH 4/5 v2] pseries/iommu: implement DDW-aware dma_get_page_shift kbuild test robot
2015-10-02 20:33 ` kbuild test robot
2015-10-06 3:39 ` Michael Ellerman
2015-10-06 3:39 ` Michael Ellerman
2015-10-07 13:56 ` [kbuild-all] " Fengguang Wu
2015-10-07 13:56 ` Fengguang Wu
2015-10-08 0:11 ` Michael Ellerman
2015-10-08 0:11 ` Michael Ellerman
2015-10-08 1:06 ` Fengguang Wu
2015-10-08 1:06 ` Fengguang Wu
2015-10-08 1:16 ` Fengguang Wu
2015-10-08 1:16 ` Fengguang Wu
2015-10-08 4:06 ` Michael Ellerman
2015-10-08 4:06 ` Michael Ellerman
2015-10-11 14:22 ` Fengguang Wu
2015-10-11 14:22 ` Fengguang Wu
2015-10-12 2:51 ` Michael Ellerman
2015-10-12 2:51 ` Michael Ellerman
2015-10-08 7:46 ` Christoph Hellwig
2015-10-08 7:46 ` Christoph Hellwig
2015-10-11 14:19 ` testing email patches Fengguang Wu
2015-10-11 14:19 ` Fengguang Wu
2015-10-06 3:43 ` [PATCH 1/5 v2] dma-mapping: add generic dma_get_page_shift API Michael Ellerman
2015-10-06 3:43 ` Michael Ellerman
2015-10-06 9:51 ` Christoph Hellwig
2015-10-06 9:51 ` Christoph Hellwig
2015-10-12 16:04 ` Nishanth Aravamudan
2015-10-12 16:04 ` Nishanth Aravamudan
2015-10-12 21:06 ` Nishanth Aravamudan
2015-10-12 21:06 ` Nishanth Aravamudan
2015-10-14 15:39 ` Nishanth Aravamudan
2015-10-14 15:39 ` Nishanth Aravamudan
2015-10-14 15:42 ` Christoph Hellwig
2015-10-14 15:42 ` Christoph Hellwig
2015-10-15 22:52 ` Nishanth Aravamudan [this message]
2015-10-15 22:52 ` Nishanth Aravamudan
2015-10-15 22:52 ` Nishanth Aravamudan
2015-10-19 17:56 ` Nishanth Aravamudan
2015-10-19 17:56 ` Nishanth Aravamudan
2015-10-19 17:56 ` Nishanth Aravamudan
2015-10-02 20:51 ` [PATCH 0/5 v2] Fix NVMe driver support on Power with 32-bit DMA Benjamin Herrenschmidt
2015-10-02 20:51 ` Benjamin Herrenschmidt
2015-10-02 21:04 ` Nishanth Aravamudan
2015-10-02 21:04 ` Nishanth Aravamudan
2015-10-02 21:35 ` Benjamin Herrenschmidt
2015-10-02 21:35 ` Benjamin Herrenschmidt
2015-10-02 21:48 ` Nishanth Aravamudan
2015-10-02 21:48 ` Nishanth Aravamudan
2015-10-03 8:19 ` Christoph Hellwig
2015-10-03 8:19 ` Christoph Hellwig
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=20151015225219.GD30179@linux.vnet.ibm.com \
--to=nacc@linux.vnet.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.