Date: Thu, 5 Apr 2012 08:55:37 -0700 From: Jerry Toung <jrytoung@gmail.com> To: Alexander Leidinger <Alexander@leidinger.net> Cc: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: Re: CAM disk I/O starvation Message-ID: <CADC0LV=5BbAhSYj%2BTyf%2BQQ_yFR9YRiA94WnUMNyLZXbetsdgRg@mail.gmail.com> In-Reply-To: <20120405052246.00002c53@unknown> References: <CADC0LV=-e%2B7PshRQdc69e2-Vktf6XFpVrqiMpx=QL4m_%2B9hSnw@mail.gmail.com> <20120403193124.46ad9de9@ernst.jennejohn.org> <CADC0LVm1HY2Dz%2BVk_GK35szRS6ySviLhMiL1TSRBOnPwQnBwRg@mail.gmail.com> <20120405052246.00002c53@unknown>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 4, 2012 at 8:22 PM, Alexander Leidinger <Alexander@leidinger.net
> 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
mtx_lock(&xsoftc.xpt_topo_lock);
xsoftc.xpt_generation++;
+
+ 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
draw
attention on a problem and it improves things on my setup. There is
certainly a way to make it more general/inclusive.
Jerry
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADC0LV=5BbAhSYj%2BTyf%2BQQ_yFR9YRiA94WnUMNyLZXbetsdgRg>
