From: Jeff Garzik <jeff@garzik.org>
To: IDE/ATA development list <linux-ide@vger.kernel.org>
Cc: Tejun Heo <tj@kernel.org>, Jens Axboe <jens.axboe@oracle.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: request to revert libata-convert-to-block-tagging patches
Date: Mon, 10 Nov 2008 17:55:16 -0500 [thread overview]
Message-ID: <4918BBD4.3060306@garzik.org> (raw)
In-Reply-To: <4917C449.2080504@kernel.org>
Tejun Heo wrote:
> Hello, all.
>
> I went through libata-convert-to-block-tagging today and found several
> issues.
>
> 1. libata internal data structure for command context (qc) allocation is
> bound to tag allocation, which means that block layer tagging should be
> enabled for all controllers which have can_queue > 1.
>
> 2. blk-tag offsets allocation for non-sync requests. I'm not confident
> this is safe. Till now, if there was only single command in flight for
> the port, it was guaranteed that the qc gets tag zero whether the device
> is NCQ capable or not. qc allocation is tied tightly with hardware
> command slot allocation and I don't think it's wise to change this
> assumption.
>
> #1 is easy to fix but #2 requires either adding a spinlock or two atomic
> variables to struct blk_queue_tag to keep the current behavior while
> guaranteeing that tags are used in order. Also, there's delay between
> libata marks a request complete and the request actually gets completed
> and the tag is freed. If another request gets issued inbetween, the tag
> number can't be guaranteed. This can be worked around by re-mapping tag
> number in libata depending on command type but, well then, it's worse
> than the original implementation.
>
> So, please revert the following commits.
>
> 43a49cbdf31e812c0d8f553d433b09b421f5d52c
> e013e13bf605b9e6b702adffbe2853cfc60e7806
> 2fca5ccf97d2c28bcfce44f5b07d85e74e3cd18e
A bit late, since they're already in, but, ACK. (I'm on East Coast
Vampire time, apparently)
Now that this is resolved, please allow me a bit of grumbling. I always
thought the original course -- 2.6.29 -- was best for these patches. I
had even queued them for 2.6.29, when they found their way into 2.6.28
anyway. Without /any/ testing by libata maintainers or linux-next.
Without even being tested on non-NCQ setups, apparently.
The process broke down completely with this patchset :(
I still want to see this stuff in 2.6.29 though; it is the right way to
go: following the theme of using block rather than SCSI bits in libata
generic code [when those bits are, themselves, generic rather than
SCSI-specific].
Jeff
next prev parent reply other threads:[~2008-11-10 22:55 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-10 5:19 request to revert libata-convert-to-block-tagging patches Tejun Heo
2008-11-10 5:19 ` Tejun Heo
2008-11-10 5:30 ` Tejun Heo
2008-11-10 5:30 ` Tejun Heo
2008-11-10 5:48 ` [PATCH] libata: revert convert-to-block-tagging patches Tejun Heo
2008-11-10 5:48 ` Tejun Heo
2008-11-10 12:05 ` request to revert libata-convert-to-block-tagging patches Jens Axboe
2008-11-10 12:09 ` Jens Axboe
2008-11-10 16:00 ` Linus Torvalds
2008-11-10 17:10 ` Jens Axboe
2008-11-10 13:24 ` Tejun Heo
2008-11-10 16:03 ` Linus Torvalds
2008-11-10 22:55 ` Jeff Garzik [this message]
2008-11-12 1:11 ` Linus Torvalds
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=4918BBD4.3060306@garzik.org \
--to=jeff@garzik.org \
--cc=jens.axboe@oracle.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.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.