From: "David S. Miller" <davem@redhat.com>
To: kevin.vanmaren@unisys.com
Cc: gibbs@scsiguy.com, linux-kernel@vger.kernel.org
Subject: Re: With Daniel Phillips Patch
Date: Wed, 22 Aug 2001 18:31:09 -0700 (PDT) [thread overview]
Message-ID: <20010822.183109.34763266.davem@redhat.com> (raw)
In-Reply-To: <245F259ABD41D511A07000D0B71C4CBA289F2E@us-slc-exch-3.slc.unisys.com>
In-Reply-To: <245F259ABD41D511A07000D0B71C4CBA289F2E@us-slc-exch-3.slc.unisys.com>
From: "Van Maren, Kevin" <kevin.vanmaren@unisys.com>
Date: Wed, 22 Aug 2001 20:06:21 -0500
There had better not be any. It is a violation of the PCI specification
to generate a DAC if the address fits in 32 bits.
Then sym53c8xx with Gerard's current scripts code is in violation of
the PCI specification when the chip is told to use DAC :-)
DAC is a LOT faster and more efficient than a copy (except perhaps for the
very smallest of transfers, which are already very inefficient).
SAC with IOMMU is faster on some platforms.
Separate 32-bit and 64-bit DMA routines adds unnecessary complication.
As far as I can tell, the only reason to have separate APIs is so
that 32bit machines with 64 bit DMA addresses (PAE on ia32) can
avoid copying around an "extra" 32bits of address for the drivers
that don't support 64-bit DMA.
Welcome to the complicated real world.
There are several other reasons. (Man, people check the archives, I
feel like I've typed this in like 5 times in linux-kernel postings
already) Let me list one of them, suppose you have a device for which
some transfers can happily use DAC addresses, but some others strictly
need to work with SAC addresses.
pci64_*() would mean "DAC address would be OK".
I think it makes more sense to just make the dma_addr_t 64 bits on
ia32 if using PAE and deal with the insignificant "waste" -- you
have > 4GB RAM :-)
I think for SAC-only devices, it is just dumb wasted space in the
driver image.
I do not want to even go into the abuse I took in my email when I
added the original APIs because people had to keep track of the
damn mappings at all! These people would strangle me if they learnt
that in HIGHMEM kernels twice as much space was needed to do this
DMA address tracking.
I at least comfort myself that those who maintain drivers on several
platforms, and have an open mind, such as Gerard, for the most part
support the API I have designed.
Later,
David S. Miller
davem@redhat.com
next prev parent reply other threads:[~2001-08-23 1:31 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-23 1:06 With Daniel Phillips Patch Van Maren, Kevin
2001-08-23 1:31 ` David S. Miller [this message]
2001-08-23 1:40 ` Justin T. Gibbs
2001-08-23 1:45 ` David S. Miller
-- strict thread matches above, loose matches on Subject: below --
2001-08-23 2:22 Van Maren, Kevin
2001-08-23 2:26 ` David S. Miller
2001-08-22 6:46 With Daniel Phillips Patch (was: aic7xxx with 2.4.9 on 7899P) Jens Axboe
2001-08-22 13:24 ` Justin T. Gibbs
2001-08-22 15:05 ` With Daniel Phillips Patch David S. Miller
2001-08-22 18:21 ` Gérard Roudier
2001-08-22 18:32 ` David S. Miller
2001-08-22 18:32 ` Justin T. Gibbs
2001-08-22 18:46 ` David S. Miller
2001-08-22 19:41 ` Justin T. Gibbs
2001-08-22 20:19 ` David S. Miller
2001-08-22 21:07 ` Gérard Roudier
2001-08-22 21:14 ` David S. Miller
2001-08-22 21:14 ` David S. Miller
2001-08-22 21:40 ` Justin T. Gibbs
2001-08-22 23:09 ` David S. Miller
2001-08-23 0:01 ` Justin T. Gibbs
2001-08-23 0:40 ` David S. Miller
2001-08-23 0:55 ` Justin T. Gibbs
2001-08-23 1:03 ` Matthew Jacob
2001-08-23 1:08 ` David S. Miller
2001-08-23 1:32 ` Justin T. Gibbs
2001-08-23 1:39 ` David S. Miller
2001-08-23 1:49 ` Justin T. Gibbs
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=20010822.183109.34763266.davem@redhat.com \
--to=davem@redhat.com \
--cc=gibbs@scsiguy.com \
--cc=kevin.vanmaren@unisys.com \
--cc=linux-kernel@vger.kernel.org \
/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