All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: Mark Lord <liml@rtr.ca>
Cc: Jens Axboe <axboe@suse.de>,
	IDE/ATA development list <linux-ide@vger.kernel.org>
Subject: Re: libata+SGIO:  is .dma_boundary respected?
Date: Mon, 20 Mar 2006 20:18:02 -0500	[thread overview]
Message-ID: <441F544A.6080301@pobox.com> (raw)
In-Reply-To: <441DD300.9050702@rtr.ca>

Mark Lord wrote:
> Mark Lord wrote:
> 
>> Jeff Garzik wrote:
>>
>>> The idiot IOMMU layer may merge too aggressively, which is the reason 
>>> for this code and similar code in ata_fill_sg().  The IOMMU stuff 
>>> always happens at pci_map_sg() time, after the block layer gets out 
>>> of the way.
>>
>>
>> Ahh.. then how does the low-level driver know what to use for 
>> ".sg_tablesize"?
>>
>> It cannot use the real hardware/driver value, because it may need to do
>> request splitting.  I wonder what the worst case number of splits 
>> required
>> is, for each sg[] entry?
> 
> 
> Mmmm.  I suppose the answer is that the block layer guarantees
> no more than .sg_tablesize entries, and the IOMMU layer may reduce
> the segment count, but never increase it.
> 
> So the low-level driver should be able to safely use it's own internal
> hardware/driver limit when registering .sg_tablesize.

The IOMMU layer can merge across 64k boundaries, yet still produce a 
worst case s/g entry count.  Thus, you wind up with sg_tablesize 
entries, and splits still to be done.

That's why drivers that worry about 64k boundary have to give a false 
sg_tablesize to the SCSI layer: to reserve sufficient "true" s/g entries 
for the worst case IOMMU split.

	Jeff



  reply	other threads:[~2006-03-21  1:18 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-19 20:48 libata+SGIO: is .dma_boundary respected? Mark Lord
2006-03-19 21:14 ` Jeff Garzik
2006-03-19 21:19   ` Mark Lord
2006-03-19 21:38     ` Jeff Garzik
2006-03-19 21:45       ` Mark Lord
2006-03-19 21:54         ` Mark Lord
2006-03-21  1:18           ` Jeff Garzik [this message]
2006-03-21  4:43             ` Mark Lord
2006-03-21  6:14               ` Jeff Garzik
2006-03-21 13:59                 ` Mark Lord
2006-03-21 18:42                   ` Jens Axboe
2006-03-21 19:18                     ` Mark Lord
2006-03-21 19:29                       ` Jeff Garzik
2006-03-21 19:31                         ` Mark Lord
2006-03-21 19:33                           ` Mark Lord
2006-03-21 19:35                             ` Jens Axboe
2006-03-21 19:38                               ` Jeff Garzik
2006-03-21 19:42                                 ` Jens Axboe
2006-03-21 19:43                                 ` James Bottomley
2006-03-21 19:46                                   ` Jens Axboe
2006-03-21 20:44                                     ` James Bottomley
2006-03-21 21:54                                       ` Benjamin Herrenschmidt
2006-03-21 19:31                       ` Jens Axboe
2006-03-21 19:36                         ` Mark Lord
2006-03-21 19:43                           ` Jeff Garzik
2006-03-21 20:51                             ` Mark Lord
2006-03-22 11:25                       ` Tejun Heo
2006-03-22 14:52                         ` Mark Lord
2006-03-21  1:15         ` Jeff Garzik

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=441F544A.6080301@pobox.com \
    --to=jgarzik@pobox.com \
    --cc=axboe@suse.de \
    --cc=liml@rtr.ca \
    --cc=linux-ide@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.