On 10.01.2011 14:17, Christoph Hellwig wrote:
> On Mon, Jan 10, 2011 at 07:41:22PM +1100, Dave Chinner wrote:
> > On Mon, Jan 10, 2011 at 08:57:52AM +0100, Michael Monnerie wrote:
> > > On Montag, 10. Januar 2011 Dave Chinner wrote:
> > > > This patch uses 32-way threading which results in no noticable
> > > > slowdown on single SATA drives with NCQ, but results in ~10x
> > > > reduction in runtime on a 12 disk RAID-0 array.
> > >
> > > Is the fixed 32-way number reasonable, or shouldn't that be "number of
> > > available cpu cores"-way? Why threading when you have a single core cpu?
> > Sure, 32-way is reasonable on a single disk and CPU. Pretty much
> > every sata disk supports NCQ these days, and default to a depth of
> > 32, which means we can have 32 concurrent reads in progress at once.
> > Phase 2 is all synchronous IO, so the only way to hide the IO
> > latency is to queue work to multiple threads and switch between the
> > threadsto work on another queue when the current one blocks waiting
> > for IO.
> The default queue depth for ATA NCQ actually is 31, not 32 for some odd
AFAIR the original discussion it's because Depth 0 and 32 use the same
value. And the knowledge that (HDD-)firmware tends to be buggy, so it
was decided to stay on the safe side and not use "0/32".
Real Programmers consider "what you see is what you get" to be just as
bad a concept in Text Editors as it is in women. No, the Real Programmer
wants a "you asked for it, you got it" text editor -- complicated,
cryptic, powerful, unforgiving, dangerous.