[lkml]   [2006]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: support for sata7 Streaming Feature Set?
Jan Wagner wrote:
> Hi and thanks for your response,
> On Sun, 14 May 2006, Tejun Heo wrote:
>>> anyone know if the now already somewhat old Streaming Feature Set of
>>> ATA/ATAPI 7 is going to be implemented in the kernel ata functions?
>>> According to one web site that contains hdreg.h
>>> there's at least some kind of mention in that include file about streaming
>>> feature set, kernel 2.6.10. However in 2.6.16 it seems to be gone again.
>>> Any ideas if this will be implemented, or how to use it with e.g. hdparm
>>> right now?
>> I don't think streaming feature set is something to be supported at
>> kernel driver level. The usage model doesn't fit with block interface.
> I'm definitely not a kernel guru or into its internals, but IMHO ATA/ATAPI
> specifications should all also be supported in the kernel or kernel
> module, for compliance, or?

No, not really. If things can be done outside of kernel, we like to
keep them there. e.g. SMART is implemented in the userland and it fits
there. Kernel only has to provide mechanisms to enable such implementation.

> The block device's ioctl could have a "data reliability setting"
> extension, specifying either the error recovery time limits or for
> enabling continuous read/write control (used to return/use partially
> correct data) which are part of the ATA Streaming Feature Set.
> I.e. an adjustable minimum acceptable data reliability level for block
> devices, which can e.g. be relaxed down from a default 100%.

Streaming / relaxed reliablity is a very specialized feature requiring
very specialized software to drive it. I can't think of much use in the
generic vm/fs/block framework. So, I don't see it happening in the kernel.

>> If you want to use it, the best way would be issuing commands directly
>> using sg.
> Maybe yes, that, or hdparm, but it seems like a horrible hack :) And sg
> being for generic SCSI, I'm not sure how well ATA-7 fits in. At least,
> the current debian sg-tools, and commands like 'sg_opcodes /dev/sda'
> return "Fixed format, current; Sense key: Illegal Request", "Additional
> sense: Invalid command operation code" for those SATA disks I tried.
> Doesn't look good for sg useability, AFAICT.

No, it's not a horrible hack. Again, no one thinks smartd is a horrible
hack. Even core things like irqbalancing and CPU speeding down are
controlled from userland. Being in the userland is a good thing - it's
much safer & more convenient/flexible out there.

>> What are you gonna use it for?
> To record or play back real-time continuous streamed data that is not
> error-critical but delay critical, from/to a bidirectional data
> aquisition card at ~1Gbit/s over longer time spans.

One thing to think about before supporting streaming from/to harddisks
from userland is how to make data flow efficiently from userland to
kernel and back. But, no matter what, kernel <-> userland usually
involves one data copy, so I don't think making sg similarly efficient
would be too difficult (it might be already).

> Direct kernel device support for the feature set could also be very useful
> for linux projects like the Digital Video Recorder and Video Disk
> Recorder. And seek/stutter free video playback from DVD/ATAPI (scratched
> disks, for example) or video editing. Etc.

Why direct kernel device support necessary for such things? What kind
of interface are you proposing? I can't think of anything better than
libatastreaming (or whatever, just focus on the leading 'lib'), which
uses sg to issue commands and manage everything.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2006-05-18 04:36    [W:0.143 / U:19.908 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site