Re: Who does determine the number of requests that can be servingsimultaneously in a storage?

From: Yuehai Xu
Date: Fri Jan 07 2011 - 11:45:51 EST


> You don't need those values. btt can just look at dispatch and
> completion events to get an exact queue depth number at any point in
> time.

Cool tool, I need to learn it further.

> I would double check that NCQ really is active, not just supported. For
> instance, the controller needs to support it too. If you look at dmesg
> from when it detects your drive, it should print the queue depth used.
> Or you can check queue_depth in the sysfs scsi_device directory. It
> should be 31 (32 in total, but one has to be reserved for error
> handling) for NCQ enabled, or 1 if if isn't.
>

You are right, info from dmesg:
[ 1.476660] ata4.00: 156301488 sectors, multi 16: LBA48 NCQ (depth 0/32)

and queue_depth is 1.

It proves that the NCQ of SSD is not actually activated. Error
message(bash: /sys/block/sdb/device/queue_depth: Permission denied) is
got when I "echo 31 > /sys/block/sdb/device/queue_depth" even though I
am already with the privilege of root.

Anyway, one thing is certain, it is because the NCQ of SSD is not
activated, that the number of requests in flight is 1.

I really appreciate your help, thanks very much!

Yuehai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/