[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4113cd5f-5c13-e9c7-bc5e-dcf0b60e7054@arm.com>
Date: Fri, 14 Jun 2019 16:05:33 +0100
From: Robin Murphy <robin.murphy@....com>
To: 'Christoph Hellwig' <hch@....de>,
David Laight <David.Laight@...LAB.COM>
Cc: Maxime Ripard <maxime.ripard@...tlin.com>,
Joonas Lahtinen <joonas.lahtinen@...ux.intel.com>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
"devel@...verdev.osuosl.org" <devel@...verdev.osuosl.org>,
"linux-s390@...r.kernel.org" <linux-s390@...r.kernel.org>,
"linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
David Airlie <airlied@...ux.ie>,
"linux-media@...r.kernel.org" <linux-media@...r.kernel.org>,
Intel Linux Wireless <linuxwifi@...el.com>,
"intel-gfx@...ts.freedesktop.org" <intel-gfx@...ts.freedesktop.org>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Jani Nikula <jani.nikula@...ux.intel.com>,
Ian Abbott <abbotti@....co.uk>,
Rodrigo Vivi <rodrigo.vivi@...el.com>,
Sean Paul <sean@...rly.run>,
"moderated list:ARM PORT" <linux-arm-kernel@...ts.infradead.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-wireless@...r.kernel.org" <linux-wireless@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
H Hartley Sweeten <hsweeten@...ionengravers.com>,
"iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
Daniel Vetter <daniel@...ll.ch>
Subject: Re: [PATCH 16/16] dma-mapping: use exact allocation in
dma_alloc_contiguous
On 14/06/2019 15:50, 'Christoph Hellwig' wrote:
> On Fri, Jun 14, 2019 at 02:15:44PM +0000, David Laight wrote:
>> Does this still guarantee that requests for 16k will not cross a 16k boundary?
>> It looks like you are losing the alignment parameter.
>
> The DMA API never gave you alignment guarantees to start with,
> and you can get not naturally aligned memory from many of our
> current implementations.
Well, apart from the bit in DMA-API-HOWTO which has said this since
forever (well, before Git history, at least):
"The CPU virtual address and the DMA address are both
guaranteed to be aligned to the smallest PAGE_SIZE order which
is greater than or equal to the requested size. This invariant
exists (for example) to guarantee that if you allocate a chunk
which is smaller than or equal to 64 kilobytes, the extent of the
buffer you receive will not cross a 64K boundary."
That said, I don't believe this particular patch should make any
appreciable difference - alloc_pages_exact() is still going to give back
the same base address as the rounded up over-allocation would, and
PAGE_ALIGN()ing the size passed to get_order() already seemed to be
pointless.
Robin.
Powered by blists - more mailing lists