From: Robert Hancock <hancockr@shaw.ca>
To: Kuan Luo <kluo@nvidia.com>
Cc: Tejun Heo <htejun@gmail.com>, Mark Lord <liml@rtr.ca>,
Jeff Garzik <jeff@garzik.org>,
IDE/ATA development list <linux-ide@vger.kernel.org>,
Allen Martin <AMartin@nvidia.com>, Peer Chen <pchen@nvidia.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
David Milburn <dmilburn@redhat.com>
Subject: Re: fixed a bug of adma in rhel4u5 with HDS7250SASUN500G.
Date: Sun, 13 Jan 2008 23:20:13 -0600 [thread overview]
Message-ID: <478AF10D.5080805@shaw.ca> (raw)
In-Reply-To: <15F501D1A78BD343BE8F4D8DB854566B1BFE2AC0@hkemmail01.nvidia.com>
Kuan Luo wrote:
> Robert hancock wrote:
>> What problem does this resolve? I tested it against the cache
>> flush/NCQ
>> write switching problem we've been trying to solve, and it
>> doesn't look
>> like it fixes that one - if I apply this patch and then remove the
>> udelay(20) in sata_nv.c that I added which prevented me from
>> seeing this
>> problem before, it shows up.
>>
>
> First thank davide to help to send the attachment.
>
> Robert,
> The patch is to solve the error message "ata1: CPB flags CMD err,
> flags=0x11" when testing HDS7250SASUN500G in rhel4u5.
> I tested this hd in 2.6.24-rc7 which needed to remove the mask in
> blacklist to run the ncq and the same error also showed up.
>
> I traced the bug and found that the interrupt finished a command (for
> example, tag=0) when the driver got that adma status is
> NV_ADMA_STAT_DONE and cpb->resp_flags is NV_CPB_RESP_DONE.
> However, For this hd, the drive maybe didn't clear bit 0 at this moment.
> It meaned the hardware had not completely finished the command.
> If at the same time the driver freed the command(tag 0) and sended
> another command (tag 0), the error happened.
>
> The notifier register is 32-bit register containing notifier value.
> Value is bit vector containing one bit per tag number (0-31) in
> corresponding bit positions (bit 0 is for tag 0, etc). When bit is set
> then ADMA indicates that command with corresponding tag number completed
> execution.
>
> So i added the check notifier code. Sometimes i saw that the notifier
> reg set some bits , but the adma status set NV_ADMA_STAT_CMD_COMPLETE
> ,not NV_ADMA_STAT_DONE. So i added the NV_ADMA_STAT_CMD_COMPLETE check
> code.
That looks like a good fix then. (Though a possible optimization would
be to and the check_commands value with the notifier clear value rather
than testing against the notifier on each loop. That's fairly minor though.)
As I mentioned, this doesn't seem to resolve the problem we're seeing
with rapidly intermixed NCQ commands and cache flushes (at least, if I
take out the arbitrary 20usec delay from the driver and add this patch,
the problem still shows up). It could be a similar problem, though, of
commands being issued before the controller is really ready for them. If
you or others at NVIDIA could assist in tracking down that problem it
would be appreciated..
next prev parent reply other threads:[~2008-01-14 5:20 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-07 9:25 disabling sata_nv ADMA for 2.6.24 Tejun Heo
2008-01-07 15:15 ` Mark Lord
2008-01-07 15:35 ` [PATCH #upstream-fixes] sata_nv: disable ADMA mode by default Tejun Heo
2008-01-10 5:58 ` Jeff Garzik
2008-01-10 6:29 ` Tejun Heo
2008-01-07 23:35 ` disabling sata_nv ADMA for 2.6.24 Robert Hancock
2008-01-07 23:56 ` Tejun Heo
2008-01-08 0:12 ` Robert Hancock
2008-01-08 1:01 ` Tejun Heo
2008-01-08 1:16 ` Tejun Heo
2008-01-08 2:29 ` Robert Hancock
2008-01-08 2:53 ` Tejun Heo
2008-01-08 2:55 ` Tejun Heo
2008-01-08 3:01 ` Robert Hancock
2008-01-08 3:08 ` Tejun Heo
2008-01-08 9:58 ` Tejun Heo
2008-01-08 14:40 ` Robert Hancock
2008-01-09 1:58 ` Tejun Heo
2008-01-09 2:00 ` Tejun Heo
2008-01-09 3:50 ` Robert Hancock
2008-01-09 5:09 ` Tejun Heo
2008-01-10 0:33 ` Robert Hancock
2008-01-10 6:59 ` Tejun Heo
2008-01-11 7:54 ` fixed a bug of adma in rhel4u5 with HDS7250SASUN500G Kuan Luo
2008-01-11 14:29 ` Robert Hancock
2008-01-11 21:57 ` David Milburn
2008-01-12 1:07 ` Robert Hancock
2008-01-14 3:08 ` Kuan Luo
2008-01-14 5:20 ` Robert Hancock [this message]
2008-01-14 6:23 ` Kuan Luo
2008-01-23 9:32 ` sata_nv and 2.6.24 (was Re: fixed a bug of adma in rhel4u5 with HDS7250SASUN500G.) Jeff Garzik
2008-01-23 14:44 ` Robert Hancock
2008-01-24 1:42 ` Jeff Garzik
2008-01-24 1:53 ` Robert Hancock
2008-01-24 0:43 ` fixed a bug of adma in rhel4u5 with HDS7250SASUN500G Robert Hancock
2008-01-24 3:20 ` Kuan Luo
2008-01-28 23:50 ` Robert Hancock
2008-01-29 2:48 ` Kuan Luo
2008-01-29 4:59 ` Kuan Luo
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=478AF10D.5080805@shaw.ca \
--to=hancockr@shaw.ca \
--cc=AMartin@nvidia.com \
--cc=dmilburn@redhat.com \
--cc=htejun@gmail.com \
--cc=jeff@garzik.org \
--cc=kluo@nvidia.com \
--cc=liml@rtr.ca \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pchen@nvidia.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;
as well as URLs for NNTP newsgroup(s).