public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "David S. Miller" <davem@redhat.com>
To: gibbs@scsiguy.com
Cc: axboe@suse.de, skraw@ithnet.com, phillips@bonn-fries.net,
	linux-kernel@vger.kernel.org
Subject: Re: With Daniel Phillips Patch
Date: Wed, 22 Aug 2001 13:19:16 -0700 (PDT)	[thread overview]
Message-ID: <20010822.131916.83606270.davem@redhat.com> (raw)
In-Reply-To: <200108221941.f7MJfGY14365@aslan.scsiguy.com>
In-Reply-To: <20010822.114620.77339267.davem@redhat.com> <200108221941.f7MJfGY14365@aslan.scsiguy.com>

   From: "Justin T. Gibbs" <gibbs@scsiguy.com>
   Date: Wed, 22 Aug 2001 13:41:16 -0600

   >
   >Drivers for SAC only PCI devices shall not be bloated by 64-bit type,
   >not in any case whatsoever.
   
   Where's the bloat?  The driver's S/G list is in the driver's native format.

All the world is not a scsi driver.  Consider networking
and other types of drivers that need not make use of
scatter lists.

   >Either your device is 64-bit capable or not, what is so complicated?
   
   The complication arrises when there is a performance impact associated
   with 64bit support.  You may want to completely compile out 64bit support.
   If I can use the exact same API if the user decides to configure my
   device to not enable large address support, then my complaint is only
   that it seems supurfluous to have two different APIs and types.

You can indeed use the same API.  There are two situations.

1) The performance impact is "platform specific", so let the
   platform decide for you:

	Use pci64_foo() and set the DMA mask to what you can support.
	Ie. a normal DAC supporting driver.

2) The performance impact is "device specific", so only use
   the 32-bit API.   

   >What is the virtual address of physical address 0x100000000
   >on a 32-bit cpu system if the page is not currently kmap()'d?
   
   Why does the driver care?  The driver asked to have some virtual address
   mapped into a bus address.  Are you saying the system can't understand
   figure out what physical page this is and from that the necessary
   IOMMU magic to make it visible to the device?
   
It is the object that the block and networking systems work with
that is the issue.

Do you know how physical memory is mapped under Linux?  Everything
non-HIGHMEM is directly mapped.  Everything else must be temporarily
"kmap()'d" so that the kernel and perform loads and stores to that
page.

The only object representation that works for all kinds of pages,
HIGHMEM or not, is the "struct page *page; unsigned long offset;"
tuple.

If this wasn't a problem, Jens's would not be doing any of the
work he is doing right now :-)

   It seems to me that you are complaining that the "backend" implementation
   for IA64 sucked.  Okay.  Fine.  But the drivers were never exposed to
   that suckage.

No, I have in fact no problem with IA64's backend, I don't care how
any platform implements anything.  It is the front end that sucked
balls, and this part I care about because it is the APIs drivers have
to deal with.  Specifically, my gripes are:

1) It took virtual addresses.  Result: does not work on 32-bit
   platforms.

2) It did not take into consideration at all the issues surrounding
   DAC usage on some platforms, such as:

	a) transfers using DAC cycles might run slower than
	   those using SAC cycles
	b) DAC cycles may be preferred even in the presence of
	   slower transfers because the device is "DMA mapping
	   hungry" ala. compute cluster cards.

Let me ask you again: Have you tried to write a driver to the new
APIs at all?  I have for 6 totally different devices, on drivers
written by totally different people (including those I wrote myself)
and they all worked out beautifully.

Later,
David S. Miller
davem@redhat.com

  reply	other threads:[~2001-08-22 20:19 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-20  8:36 aic7xxx errors with 2.4.8-ac7 on 440gx mobo Yusuf Goolamabbas
2001-08-20  8:55 ` Cliff Albert
2001-08-20 10:37   ` Alan Cox
2001-08-20 10:56     ` Yusuf Goolamabbas
2001-08-20 10:56       ` Alan Cox
2001-08-20 11:13         ` Yusuf Goolamabbas
2001-08-20 11:09           ` Alan Cox
2001-08-20 16:43             ` Doug Ledford
2001-08-20 12:46     ` Stefan Fleiter
2001-08-20 15:19       ` Ville Herva
2001-08-20 20:33         ` Justin T. Gibbs
2001-08-20 16:45       ` Doug Ledford
2001-08-20 17:23         ` Stefan Fleiter
2001-08-20 20:28       ` Justin T. Gibbs
2001-08-21 20:24         ` Stefan Fleiter
2001-08-20 16:21     ` Cliff Albert
2001-08-20 17:23       ` Peter T. Breuer
2001-08-20 17:28         ` Cliff Albert
2001-08-20 20:27   ` Justin T. Gibbs
2001-08-20 20:45     ` Cliff Albert
2001-08-20 21:04       ` Cliff Albert
2001-08-20 21:09         ` Cliff Albert
2001-08-20 21:45           ` Justin T. Gibbs
2001-08-20 22:36             ` aic7xxx with 2.4.9 on 7899P Sven Heinicke
2001-08-21 14:42               ` With Daniel Phillips Patch (was: aic7xxx with 2.4.9 on 7899P) Sven Heinicke
2001-08-21 15:08                 ` Daniel Phillips
2001-08-21 16:48                   ` Sven Heinicke
2001-08-21 17:18                     ` Justin T. Gibbs
2001-08-21 22:49                       ` Sven Heinicke
2001-08-22 13:06                         ` Gérard Roudier
2001-08-21 17:26                     ` Daniel Phillips
2001-08-21 17:55                       ` Stephan von Krawczynski
2001-08-21 18:33                         ` Justin T. Gibbs
2001-08-22  6:46                           ` 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 [this message]
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
2001-08-21 22:44                       ` With Daniel Phillips Patch (was: aic7xxx with 2.4.9 on 7899P) Sven Heinicke
2001-08-22  0:58                         ` Daniel Phillips
2001-08-22 10:25                 ` Marcelo Tosatti
2001-08-22 16:09                   ` Sven Heinicke
2001-08-22 15:42                     ` Marcelo Tosatti
2001-08-22 20:25                       ` Sven Heinicke
2001-08-29  7:30                       ` Andrey Nekrasov
2001-09-03 14:58                         ` Marcelo Tosatti
2001-08-20 22:55             ` aic7xxx errors with 2.4.8-ac7 on 440gx mobo Cliff Albert
2001-08-21  0:36               ` Justin T. Gibbs
2001-08-21 15:34                 ` Gérard Roudier
2001-08-20 21:44         ` Justin T. Gibbs
2001-08-20 21:48           ` Cliff Albert
2001-08-25  7:15           ` Cliff Albert
  -- strict thread matches above, loose matches on Subject: below --
2001-08-23  1:06 With Daniel Phillips Patch Van Maren, Kevin
2001-08-23  1:31 ` David S. Miller
2001-08-23  1:40   ` Justin T. Gibbs
2001-08-23  1:45     ` David S. Miller
2001-08-23  2:22 Van Maren, Kevin
2001-08-23  2:26 ` David S. Miller

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.131916.83606270.davem@redhat.com \
    --to=davem@redhat.com \
    --cc=axboe@suse.de \
    --cc=gibbs@scsiguy.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=phillips@bonn-fries.net \
    --cc=skraw@ithnet.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