linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: James Bottomley <James.Bottomley@steeleye.com>
Cc: axboe@suse.de, grundler@parisc-linux.org, davem@redhat.com,
	suparna@in.ibm.com, linux-kernel@vger.kernel.org,
	alex_williamson@hp.com, bjorn_helgaas@hp.com
Subject: Re: [RFC] block layer support for DMA IOMMU bypass mode
Date: Tue, 1 Jul 2003 19:09:38 +0200	[thread overview]
Message-ID: <20030701190938.2332f0a8.ak@suse.de> (raw)
In-Reply-To: <1057077975.2135.54.camel@mulgrave>

On 01 Jul 2003 11:46:12 -0500
James Bottomley <James.Bottomley@steeleye.com> wrote:

> 
> Some IOMMUs come with a "bypass" mode, where the IOMMU won't try to
> translate the physical address coming from the device but will instead
> place it directly on the memory bus. For some machines (ia-64, and
> possibly x86_64) any address not programmed into the IOMMU for

That's the case on x86_64 yes.


> The Problem:
> 
> At the moment, the block layer assumes segments may be virtually
> mergeable (i.e. two phsically discondiguous pages may be treated as a
> single SG entity for DMA because the IOMMU will patch up the
> discontinuity) if an IOMMU is present in the system.  This effectively
> stymies using bypass mode, because segments may not be virtually merged
> in a bypass operation.

I assume on 2.5 has this problem, not 2.4, right?

> 
> The Solution:
> 
> Is to teach the block layer not to virtually merge segments if either
> segment may be bypassed.  To that end, the block layer has to know what
> the physical dma mask is (not the bounce limit, which is different) and
> it must also know the address bits that must be asserted in bypass
> mode.  To that end, I've introduced a new #define for asm/io.h
> 
> BIO_VMERGE_BYPASS_MASK

But a mask is not good for AMD64 because there is no guarantee 
that the bypass/iommu address is checkable using a mask
(K8 uses an memory hole for IOMMU purposes and for various
reasons the hole can be anywhere in the address space)

This means x86_64 needs an function. Also the name is quite weird and 
the issue is not really BIO  specific. How about just calling it
iommu_address() ?


-Andi

  reply	other threads:[~2003-07-01 16:55 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-01 16:46 [RFC] block layer support for DMA IOMMU bypass mode James Bottomley
2003-07-01 17:09 ` Andi Kleen [this message]
2003-07-01 17:28   ` James Bottomley
2003-07-01 17:42     ` Andi Kleen
2003-07-01 19:22       ` Grant Grundler
2003-07-01 19:56       ` James Bottomley
2003-07-01 17:54     ` H. Peter Anvin
2003-07-01 19:19 ` Grant Grundler
2003-07-01 19:59   ` Alex Williamson
2003-07-01 20:11     ` James Bottomley
2003-07-01 20:03   ` James Bottomley
2003-07-01 23:01     ` Grant Grundler
2003-07-02 15:52       ` James Bottomley
2003-07-01 22:51 ` David S. Miller
2003-07-01 23:57 ` [RFC] block layer support for DMA IOMMU bypass mode II Andi Kleen
2003-07-02  0:03   ` David S. Miller
2003-07-02  0:22     ` Andi Kleen
2003-07-02  0:21       ` David S. Miller
2003-07-02 16:53       ` Grant Grundler
2003-07-02 17:19         ` Andi Kleen
2003-07-02 16:55   ` Grant Grundler
2003-07-02 17:20     ` Andi Kleen
2003-07-02 17:37       ` Grant Grundler
2003-07-02 21:16     ` Alan Cox
2003-07-02 23:56       ` Andi Kleen
2003-07-03 20:26         ` Alan Cox
2003-07-03 21:24           ` Andi Kleen
2003-07-03 22:19             ` Grant Grundler
2003-07-08  2:14             ` David S. Miller
2003-07-08 19:34               ` Andi Kleen
2003-07-08 19:47                 ` Jeff Garzik
2003-07-08 20:10                   ` Andi Kleen
2003-07-08 20:11                   ` Grant Grundler
2003-07-08 22:04                 ` David S. Miller
2003-07-08 22:25                   ` Grant Grundler
2003-07-08 22:23                     ` David S. Miller
2003-07-09 18:55                       ` Andi Kleen
2003-07-23 11:40                       ` Grant Grundler
2003-07-28 11:15                         ` Andi Kleen
2003-07-28 14:59                           ` Grant Grundler
2003-07-30  2:31                           ` Grant Grundler
2003-08-01 21:51                             ` Cliff White
2003-08-01 23:18                               ` reaim now available as osdl-aim-7 - " Cliff White
2003-07-30  4:42                           ` Grant Grundler
2003-07-30  4:51                             ` David S. Miller
2003-07-30 13:06                               ` Grant Grundler
2003-07-30 16:02                               ` Grant Grundler
2003-07-30 16:36                                 ` Andi Kleen
2003-07-30 17:18                                   ` James Bottomley
2003-07-30 14:20                             ` James Bottomley
2003-07-23 13:20                       ` Grant Grundler
2003-07-23 15:30                         ` Jens Axboe

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=20030701190938.2332f0a8.ak@suse.de \
    --to=ak@suse.de \
    --cc=James.Bottomley@steeleye.com \
    --cc=alex_williamson@hp.com \
    --cc=axboe@suse.de \
    --cc=bjorn_helgaas@hp.com \
    --cc=davem@redhat.com \
    --cc=grundler@parisc-linux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=suparna@in.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 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).