linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@steeleye.com>
To: Andi Kleen <ak@suse.de>
Cc: Jens Axboe <axboe@suse.de>,
	Grant Grundler <grundler@parisc-linux.org>,
	davem@redhat.com, suparna@in.ibm.com,
	Linux Kernel <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: 01 Jul 2003 14:56:49 -0500	[thread overview]
Message-ID: <1057089411.1775.104.camel@mulgrave> (raw)
In-Reply-To: <20030701194241.368a6a9c.ak@suse.de>

On Tue, 2003-07-01 at 12:42, Andi Kleen wrote:
> K8 doesn't have a real IOMMU. Instead it extended the AGP aperture to work
> for PCI devices too.  The AGP aperture is a hole in memory configured 
> at boot, normally mapped directly below 4GB, but it can be elsewhere
> (it's actually an BIOS option on machines without AGP chip and when 
> the BIOS option is off Linux allocates some memory and puts the hole
> on top of it. This allocated hole can be anywhere in the first 4GB) 
> Inside the AGP aperture memory is always remapped, you get a bus abort
> when you access an area in there that is not mapped.
> 
> In short to detect it it needs to test against an address range, 
> a mask is not enough.

It sounds like basically anything not physically in the window is
bypassable, so you just set BIO_VMERGE_BYPASS_MASK to 1.  Thus, any
segment within the device's dma_mask gets bypassed, and anything that's
not has to be remapped within the window.

I don't see where you need to put extra information into the virtual
merging process.

> > I'm a bit reluctant to put a function like this in because the block
> > layer does a very good job of being separate from the dma layer. 
> > Maintaining this separation is one of the reasons I added a dma_mask to
> > the request_queue, not a generic device pointer.
> 
> Not sure I understand why you want to do this in the block layer.
> It's a generic extension of the PCI DMA API. The block devices/layer itself
> has no business knowing such intimate details about the pci dma 
> implementation, it should just ask.

Virtual merging is already part of the block layer.  It actually
interferes with the ability to bypass the IOMMU because you can't merge
virtually if you want to do a bypass.

James



  parent reply	other threads:[~2003-07-01 19:42 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
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 [this message]
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=1057089411.1775.104.camel@mulgrave \
    --to=james.bottomley@steeleye.com \
    --cc=ak@suse.de \
    --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).