From: Jeff Garzik <jgarzik@pobox.com>
To: dougg@torque.net
Cc: linux-scsi@vger.kernel.org, Tejun Heo <htejun@gmail.com>
Subject: Re: [PATCH] libata: write cache and read ahead
Date: Mon, 22 Aug 2005 01:34:26 -0400 [thread overview]
Message-ID: <430963E2.9010606@pobox.com> (raw)
In-Reply-To: <43095EB3.2020202@torque.net>
Douglas Gilbert wrote:
> With repect to my libata TEST UNIT READY patch there
> is a good chance that can be dropped. The feedback
> from the t10 reflector seems to indicate the current
> definition may be changed, unfortunately the proposed
> changes may require some SAT state information being
> held for each libata device (e.g. pseudo "STOPPED"
Keeping some state is not a big deal. If it grows beyond a single
struct member, though, I would probably be inclined to encapsulate the
state in a separate struct ata_scsi_xlat_state or somesuch.
> state to mimic SBC-2). It also seems some power up
> issues may need to involve the transport layer
> for resolution. For example, SSP's additional sense code
> of LOGICAL UNIT NOT READY, NOTIFY (ENABLE SPINUP)
> REQUIRED may also need to be issued by libata.
libata, in general, is pretty ignorant of PM issues :)
> Another potential issue that I didn't mention was support
> for the "IMMED" bit in commands like START STOP UNIT; i.e.
> issue the corresponding ATA command but return to the caller
> without waiting for the ATA command to finish.
No need to avoid the issue, I know all about it :)
No plans to support stuff such as IMMED; too much pain for little gain.
> Showing my aversion to writing something like:
> u8 page[sizeof(def_caching_mpage)];
>
> Using sizeof in an array declaration seems to be a grey area in C,
> but gcc accepts it so perhaps I shouldn't worry.
Your example (quoted) should be fine on all compilers we care about :)
>>>+/* FIXME: we may want to issue two SET FEATURES commands here */
>>>+ if (dra != !(ata_id_rahead_enabled(qc->dev->id))) {
>>
>>
>>bug: need one more '!' AFAICS
>
>
> More coffee needed (by you) IMO. The logical inversion is required
Whoops, indeed, sorry about that.
>>>+ case INQUIRY:
>>>+ if (((cmd[1] & 0x3) == 0x1) && (cmd[2] == 0x89)) {
>>
>>
>>what do these magic numbers indicate?
>
>
> Place holder for ATA Information VPD page [0x89]. Valid when
> CmdDt=0 and EVPD=1. That page is defined in sat-r05. I'm about to
> decode that page in sg_inq and sdparm. Its payload is the ATA
> IDENTIFY command's response and the ATA device's "signature"
> [whatever that is].
Let's not add such a placeholder. I'd rather just wait until the real
thing appears :)
Jeff
next prev parent reply other threads:[~2005-08-22 22:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-21 10:06 [PATCH] libata: write cache and read ahead Douglas Gilbert
2005-08-21 23:56 ` Jeff Garzik
2005-08-22 5:12 ` Douglas Gilbert
2005-08-22 5:34 ` Jeff Garzik [this message]
2005-08-23 23:22 ` Luben Tuikov
2005-08-24 9:16 ` Christoph Hellwig
2005-08-24 10:06 ` Jeff Garzik
2005-08-24 10:04 ` Jeff Garzik
2005-08-24 16:28 ` Luben Tuikov
2005-08-24 11:03 ` Douglas Gilbert
2005-08-24 16:41 ` Luben Tuikov
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=430963E2.9010606@pobox.com \
--to=jgarzik@pobox.com \
--cc=dougg@torque.net \
--cc=htejun@gmail.com \
--cc=linux-scsi@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.