Re: RFC: prepare for struct scatterlist entries without page backing
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
- Subject: Re: RFC: prepare for struct scatterlist entries without page backing
- From: Grant Grundler <grantgrundler@xxxxxxxxx>
- Date: Wed, 12 Aug 2015 10:56:26 -0700
- Cc: Christoph Hellwig <hch@xxxxxx>, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>, axboe@xxxxxxxxx, dan.j.williams@xxxxxxxxx, vgupta@xxxxxxxxxxxx, hskinnemoen@xxxxxxxxx, egtvedt@xxxxxxxxxxxx, realmz6@xxxxxxxxx, dhowells@xxxxxxxxxx, monstr@xxxxxxxxx, x86@xxxxxxxxxx, David Woodhouse <dwmw2@xxxxxxxxxxxxx>, alex.williamson@xxxxxxxxxx, Grant Grundler <grundler@xxxxxxxxxxxxxxxx>, open list <linux-kernel@xxxxxxxxxxxxxxx>, linux-arch@xxxxxxxxxxxxxxx, linux-alpha@xxxxxxxxxxxxxxx, linux-ia64@xxxxxxxxxxxxxxx, linux-metag@xxxxxxxxxxxxxxx, linux-mips@xxxxxxxxxxxxxx, linux-parisc <linux-parisc@xxxxxxxxxxxxxxx>, linuxppc-dev@xxxxxxxxxxxxxxxx, linux-s390@xxxxxxxxxxxxxxx, sparclinux@xxxxxxxxxxxxxxx, linux-xtensa@xxxxxxxxxxxxxxxx, linux-nvdimm@xxxxxxxxxxx, linux-media@xxxxxxxxxxxxxxx
- In-reply-to: <1439398807.2825.51.camel@HansenPartnership.com>
- List-id: <linux-ia64.vger.kernel.org>
- References: <1439363150-8661-1-git-send-email-hch@lst.de> <1439398807.2825.51.camel@HansenPartnership.com>
On Wed, Aug 12, 2015 at 10:00 AM, James Bottomley
<James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote:
> On Wed, 2015-08-12 at 09:05 +0200, Christoph Hellwig wrote:
...
>> However the ccio (parisc) and sba_iommu (parisc & ia64) IOMMUs seem
>> to be operate mostly on virtual addresses. It's a fairly odd concept
>> that I don't fully grasp, so I'll need some help with those if we want
>> to bring this forward.
James explained the primary function of IOMMUs on parisc (DMA-Cache
coherency) much better than I ever could.
Three more observations:
1) the IOMMU can be bypassed by 64-bit DMA devices on IA64.
2) IOMMU enables 32-bit DMA devices to reach > 32-bit physical memory
and thus avoiding bounce buffers. parisc and older IA-64 have some
32-bit PCI devices - e.g. IDE boot HDD.
3) IOMMU acts as a proxy for IO devices by fetching cachelines of data
for PA-RISC systems whose memory controllers ONLY serve cacheline
sized transactions. ie. 32-bit DMA results in the IOMMU fetching the
cacheline and updating just the 32-bits in a DMA cache coherent
fashion.
Bonus thought:
4) IOMMU can improve DMA performance in some cases using "hints"
provided by the OS (e.g. prefetching DMA data or using READ_CURRENT
bus transactions instead of normal memory fetches.)
cheers,
grant
--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Index of Archives]
[Linux Kernel]
[Sparc Linux]
[DCCP]
[Linux ARM]
[Yosemite News]
[Linux SCSI]
[Linux x86_64]
[Linux for Ham Radio]