All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: jeff@garzik.org, linux-ide@vger.kernel.org, liml@rtr.ca,
	albertl@mail.com, jens.axboe@oracle.com
Subject: Re: [PATCH 05/14] libata: make ->data_xfer return the number of consumed bytes
Date: Fri, 30 Nov 2007 03:00:56 +0900	[thread overview]
Message-ID: <474EFE58.701@gmail.com> (raw)
In-Reply-To: <20071129174259.6a1edc88@the-village.bc.nu>

Alan Cox wrote:
>> It's for draining.  Let's say drive says it wanna transfer 18 bytes but
>> the buffer is only 13 bytes long.  If the transfer method consumes 2
>> bytes per read, it would consume 14 bytes.  If the transfer method
>> consumes 4 bytes per read, it would consume 16 bytes.  If we drain too
>> much, we risk hanging the machine.
> 
> Do we have any actual cases where trying to drain beyond the controller
> granuality is a problem ?
> 
> Might be cleaner to sort this (and the DMA assumption of 2 byte
> alignment, and possibly 16 byte for some devices/controllers) with 
> 
> 	dev->pio_io_size;
> 	dev->dma_io_size;
> 

That could be cleaner although slightly less flexible.  For example, a
driver may do 32bit IOs normally but choose to do smaller size IO at the
end for whatever reason.

DMA alignment is host restriction so I think it belongs to ata_host if
we ever need it.  Do you know of any controller which require such
thing?  No need to add complexity when it's not necessary.

Thanks.

-- 
tejun

  reply	other threads:[~2007-11-29 18:01 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-29 14:33 [PATCHSET] libata: improve ATAPI data transfer handling, take #2 Tejun Heo
2007-11-29 14:33 ` [PATCH 01/14] libata: update atapi_eh_request_sense() such that lbam/lbah contains buffer size Tejun Heo
2007-11-29 15:51   ` Alan Cox
2007-12-04 19:27   ` Jeff Garzik
2007-12-05  0:47     ` Tejun Heo
2007-11-29 14:33 ` [PATCH 02/14] cdrom: add more GPCMD_* constants Tejun Heo
2007-11-29 14:33 ` [PATCH 03/14] libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* Tejun Heo
2007-11-29 15:52   ` Alan Cox
2007-11-29 14:33 ` [PATCH 04/14] libata: add ATAPI_* cmd types and implement atapi_cmd_type() Tejun Heo
2007-11-29 14:33 ` [PATCH 05/14] libata: make ->data_xfer return the number of consumed bytes Tejun Heo
2007-11-29 15:55   ` Alan Cox
2007-11-29 16:06     ` Tejun Heo
2007-11-29 17:42       ` Alan Cox
2007-11-29 18:00         ` Tejun Heo [this message]
2007-11-29 18:24           ` Alan Cox
2007-11-29 18:57             ` Mark Lord
2007-11-29 19:37               ` Jeff Garzik
2007-11-29 19:36             ` Jeff Garzik
2007-11-29 21:22               ` Alan Cox
2007-12-04 19:30   ` Jeff Garzik
2007-12-05  0:49     ` Tejun Heo
2007-12-05  1:05       ` Jeff Garzik
2007-11-29 14:33 ` [PATCH 06/14] libata: improve ATAPI draining Tejun Heo
2007-11-29 15:59   ` Alan Cox
2007-11-29 16:09     ` Tejun Heo
2007-11-29 16:42     ` Tejun Heo
2007-11-29 17:40       ` Alan Cox
2007-11-29 18:11         ` Tejun Heo
2007-11-29 18:19           ` Alan Cox
2007-12-04 10:06   ` Albert Lee
2007-12-05  1:00     ` Tejun Heo
2007-11-29 14:33 ` [PATCH 07/14] libata: make atapi_request_sense() use sg Tejun Heo
2007-11-29 14:33 ` [PATCH 08/14] libata: kill non-sg DMA interface Tejun Heo
2007-11-29 16:00   ` Alan Cox
2007-12-04 19:31   ` Jeff Garzik
2007-12-05  1:02     ` Tejun Heo
2007-11-29 14:33 ` [PATCH 09/14] libata: change ATA_QCFLAG_DMAMAP semantics Tejun Heo
2007-11-29 14:33 ` [PATCH 10/14] libata: convert to chained sg Tejun Heo
2007-11-29 14:33 ` [PATCH 11/14] libata: add qc->dma_nbytes Tejun Heo
2007-11-29 16:02   ` Alan Cox
2007-12-04 19:33   ` Jeff Garzik
2007-12-05  1:02     ` Tejun Heo
2007-11-29 14:33 ` [PATCH 12/14] libata: implement ATAPI drain buffer Tejun Heo
2007-11-29 14:33 ` [PATCH 13/14] libata: implement ATAPI per-command-type DMA horkages Tejun Heo
2007-11-29 16:04   ` Alan Cox
2007-11-29 16:10     ` Tejun Heo
2007-11-29 14:33 ` [PATCH 14/14] libata: use PIO for misc ATAPI commands Tejun Heo
2007-11-29 16:05   ` Alan Cox
2007-11-29 16:14     ` Tejun Heo
2007-11-29 16:16       ` Tejun Heo
2007-11-29 18:55         ` Mark Lord
2007-11-29 22:52           ` Tejun Heo
2007-11-30  1:03             ` Mark Lord
2007-11-30  1:34               ` Tejun Heo
2007-11-30  4:19                 ` Mark Lord
2007-11-30 13:40                 ` Alan Cox
2007-11-30 13:59                   ` Tejun Heo
2007-11-30 14:12                     ` Jeff Garzik
2007-11-30 15:36                     ` Alan Cox
2007-11-30 13:09             ` Alan Cox
2007-11-29 17:38       ` Alan Cox
2007-12-04 19:34   ` Jeff Garzik
2007-12-05  1:14     ` Tejun Heo
2007-12-05 12:47       ` Alan Cox
2007-12-05 13:03         ` Tejun Heo
2007-12-05 14:01           ` Alan Cox
2007-12-05 14:22             ` Tejun Heo
2007-12-05 14:46               ` Alan Cox
2007-12-05 15:13                 ` Tejun Heo
2007-12-05 18:52                   ` Jeff Garzik
2007-12-06 11:03                 ` Petr Vandrovec
2007-12-06 11:10                   ` Tejun Heo

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=474EFE58.701@gmail.com \
    --to=htejun@gmail.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=albertl@mail.com \
    --cc=jeff@garzik.org \
    --cc=jens.axboe@oracle.com \
    --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.