From: Tejun Heo <htejun@gmail.com>
To: jeff@garzik.org, linux-ide@vger.kernel.org,
alan@lxorguk.ukuu.org.uk, liml@rtr.ca, albertl@mail.com,
jens.axboe@oracle.com
Subject: [PATCHSET] libata: improve ATAPI data transfer handling
Date: Wed, 28 Nov 2007 00:13:46 +0900 [thread overview]
Message-ID: <11961764391983-git-send-email-htejun@gmail.com> (raw)
Hello guys,
This patchset improves ATAPI PIO/DMA data transfer handling and
contains the following thirteen patches.
0001-libata-update-atapi_eh_request_sense-such-that-lb.patch
0002-cdrom-add-more-GPCMD_-constants.patch
0003-libata-rename-ATA_PROT_ATAPI_-to-ATAPI_PROT_.patch
0004-libata-add-ATAPI_-cmd-types-and-implement-atapi_cm.patch
0005-libata-improve-ATAPI-draining.patch
0006-libata-make-atapi_request_sense-use-sg.patch
0007-libata-kill-non-sg-DMA-interface.patch
0008-libata-change-ATA_QCFLAG_DMAMAP-semantics.patch
0009-libata-convert-to-chained-sg.patch
0010-libata-add-qc-dma_nbytes.patch
0011-libata-implement-ATAPI-drain-buffer.patch
0012-libata-implement-ATAPI-per-command-type-DMA-horkage.patch
0013-libata-use-PIO-for-misc-ATAPI-commands.patch
0001-0004 are miscellaneous preparation patches.
0005 improves PIO draining. This should fix regressions introduced by
setting transfer chunk size to allocation size. I'll post simplified
version for #upstream-fixes.
0006-0008 kills non-sg DMA paths and clean up ATA_QCFLAG_DMAMAP
semantics.
0009 makes libata use chained sg instead of libata's private sg
iteration mechanism. This is a clean up and will help implementing
DMA and PIO-over-DMA draining.
0010 adds qc->dma_nbytes which represents actual length of buffer
visible to host controller.
0011 implements DMA and PIO-over-DMA draining for misc ATAPI commands.
With this change, all of my ten ATAPI devcies can cope well with
shorter, matching and longer buffers.
0012 implements per-command type ATAPI DMA horkages. These horkages
kick in on the first failure and don't interfere with other types of
operations. This should allow libata to go on even when ATAPI DMA
support is flaky.
0013 makes libata always use PIO for misc ATAPI commands. Yeah, even
with all the previous patches, I think it's much better to
unconditionally use PIO for misc ATAPI commands. There isn't much to
lose by using PIO and IMHO it's wiser to concentrate our effort into
perfecting PIO support for misc commands and DMA support for bulk data
transfers. Even if this one gets NACKed now it's definitely something
to think about.
This patchset is against
#upstream (51a7ee37eaa85b8c35fe6090618e34ed4ce1d316)
+ improve-speed-down patchset, take #3 [1]
+ improve-timing-cod-and-fix-pata_amd, take #2 [2]
This patchset is also available as the following git tree.
master.kernel.org:/pub/scm/linux/kernel/git/tj/libata-dev.git improve-ATAPI-data-transfer
Thanks.
--
tejun
[1] http://thread.gmane.org/gmane.linux.ide/25406
[2] http://thread.gmane.org/gmane.linux.ide/25416
next reply other threads:[~2007-11-27 15:14 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-27 15:13 Tejun Heo [this message]
2007-11-27 15:13 ` [PATCH 01/13] libata: update atapi_eh_request_sense() such that lbam/lbah contains buffer size Tejun Heo
2007-11-27 15:13 ` [PATCH 02/13] cdrom: add more GPCMD_* constants Tejun Heo
2007-11-27 15:13 ` [PATCH 03/13] libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* Tejun Heo
2007-11-27 15:13 ` [PATCH 04/13] libata: add ATAPI_* cmd types and implement atapi_cmd_type() Tejun Heo
2007-11-27 15:13 ` [PATCH 05/13] libata: improve ATAPI draining Tejun Heo
2007-11-29 6:28 ` Albert Lee
2007-11-29 7:26 ` Tejun Heo
2007-11-29 14:34 ` Tejun Heo
2007-11-27 15:13 ` [PATCH 06/13] libata: make atapi_request_sense() use sg Tejun Heo
2007-11-27 15:13 ` [PATCH 07/13] libata: kill non-sg DMA interface Tejun Heo
2007-11-27 15:13 ` [PATCH 08/13] libata: change ATA_QCFLAG_DMAMAP semantics Tejun Heo
2007-11-27 15:13 ` [PATCH 09/13] libata: convert to chained sg Tejun Heo
2007-11-27 15:13 ` [PATCH 10/13] libata: add qc->dma_nbytes Tejun Heo
2007-11-27 17:20 ` Alan Cox
2007-11-27 15:13 ` [PATCH 11/13] libata: implement ATAPI drain buffer Tejun Heo
2007-11-27 15:13 ` [PATCH 12/13] libata: implement ATAPI per-command-type DMA horkages Tejun Heo
2007-11-27 15:13 ` [PATCH 13/13] libata: use PIO for misc ATAPI commands Tejun Heo
2007-11-27 16:56 ` Alan Cox
2007-11-27 23:01 ` Tejun Heo
2007-11-27 23:31 ` Mark Lord
2007-11-27 23:34 ` Mark Lord
2007-11-27 23:37 ` 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=11961764391983-git-send-email-htejun@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 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).