CAM disk I/O starvation

Jerry Toung jrytoung at
Thu Apr 5 15:55:39 UTC 2012

On Wed, Apr 4, 2012 at 8:22 PM, Alexander Leidinger <Alexander at
> wrote:

> This looks fair if all your disks are working at the same time (e.g.
> RAID only setup), but if you have a setup where you have multiple
> disks and only one is doing something, you limit the amount of tags
> which can be used. No idea what kind of performance impact this would
> have.
> I haven't seen any performance impact. da1, the one the used to stall
consistenly get over 600MB/s.

> What about the case where you have more disks than tags?
This part of the patch takes care of that scenario:

@@ -998,6 +1003,24 @@ xpt_add_periph(struct cam_periph *periph
+       if (device != NULL && device->sim->dev_count > 1 &&
+            (device->sim->max_dev_openings > device->sim->dev_count)) {
otherwise, we don't split the tags and the original behavior remains.

> I also noticed that you do a strncmp for "da". What about
> "ada" (available in 9 and 10), I would assume it suffers from the same
> problem.

I am running FreeBSD 8.1, no "ada". Me presenting a patch is just a way to
attention on a problem and it improves things on my setup. There is
certainly a way to make it more general/inclusive.


More information about the freebsd-hackers mailing list