Date: Sat, 5 Mar 2011 21:11:32 -0500 From: "illoai@gmail.com" <illoai@gmail.com> To: Jeremy Chadwick <freebsd@jdc.parodius.com> Cc: freebsd-stable@freebsd.org Subject: Re: Strange performance issue with grep -r -i as non-root user Message-ID: <AANLkTink9Fewbwrrx%2Be%2BWm6Wq8wfzU9=fcBS0c4_dc=s@mail.gmail.com> In-Reply-To: <20110306020546.GA37414@icarus.home.lan> References: <20110305234514.GA34594@icarus.home.lan> <20110306010140.GA90699@lava.net> <20110306014355.GA36763@icarus.home.lan> <AANLkTim1UVqh-5ByawpfJc209vad4hGToAebPubdeLKm@mail.gmail.com> <20110306020546.GA37414@icarus.home.lan>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5 March 2011 21:05, Jeremy Chadwick <freebsd@jdc.parodius.com> wrote: > On Sat, Mar 05, 2011 at 08:49:46PM -0500, illoai@gmail.com wrote: >> On 5 March 2011 20:43, Jeremy Chadwick <freebsd@jdc.parodius.com> wrote: >> > On Sat, Mar 05, 2011 at 03:01:40PM -1000, Clifton Royston wrote: >> >> On Sat, Mar 05, 2011 at 03:45:14PM -0800, Jeremy Chadwick wrote: >> >> > This is a strange one, and the more I started debugging it (startin= g >> >> > with truss, comparing fast vs. slow results, where all that appears >> >> > different is read() operations are taking a lot longer -- I haven't= had >> >> > time to check with ktrace yet), the more strange it got: that's whe= n I >> >> > found out the behaviour changes depending on if you're a user or ro= ot. >> >> > >> >> > Easy to reproduce: >> >> > >> >> > - grep -r string /usr/src, as non-root, is fast >> >> > - grep -r -i string /usr/src, as non-root, is 8x slower than withou= t -i >> >> >> >> =A0 From your results below, I think you mean *80* x slower! >> > >> > Oops; yes, typo on my part. =A0I was never any good at math either! = =A0;-) >> > >> >> > - grep -r string /usr/src, as root, is fast >> >> > - grep -r -i string /usr/src, as root, is fast >> >> >> >> =A0 I can not reproduce this on 7.3-RELEASE-p4; I get consistent resu= lts >> >> between root and non-root, with -i being only marginally slower (abou= t >> >> 15%) for each; results below. >> > >> > Your results look more or less like what I see on the 4th system (the >> > 7.0-STABLE one). =A0I believe the speed difference there (and on your >> > system) is justified, as I would imagine strcasecmp() a tiny bit slowe= r >> > than strcmp(). =A0But an 80x slowdown is completely unacceptable, >> > especially given the conditions. >> > >> > My first thought was "compiler optimisation bug?", which I suppose cou= ld >> > still be the case, but I don't know how root vs. non-root would change >> > that behaviour, not to mention only when -i was specified. >> > >> > Using 'truss -d' it looks like the slowdown is happening on read(2), >> > which makes me very concerned, as it could indicate something odd goin= g >> > on with CAM? =A0Sadly I cannot (for many reasons) get rid of ahci.ko o= n >> > any of those 3 systems, so I can't compare stock ata(4) to ahci.ko >> > easily on the same system. >> > >> >> On my 8.2-RELEASE system using ahci (built into the custom >> kernel) I don't notice your observed slowdown, so unless ahci >> is radically different on -STABLE I doubt it's the cause. > > There are two versions of AHCI available in FreeBSD: ahci.ko (which is > AHCI<->CAM) and ataahci.ko (which is AHCI support under ata(4) natively > and does not use CAM). =A0Which of the two are you using? I have device ahci in my kernel, ataahci, not. > sysctl -a | grep ahci dev.ahci.0.%desc: ATI IXP600 AHCI SATA controller dev.ahci.0.%driver: ahci dev.ahci.0.%location: slot=3D18 function=3D0 handle=3D\_SB_.PCI0.SATA dev.ahci.0.%pnpinfo: vendor=3D0x1002 device=3D0x4380 subvendor=3D0x1179 subdevice=3D0xff68 class=3D0x01018f dev.ahci.0.%parent: pci0 dev.ahcich.0.%desc: AHCI channel dev.ahcich.0.%driver: ahcich dev.ahcich.0.%location: channel=3D0 dev.ahcich.0.%parent: ahci0 dev.ahcich.1.%desc: AHCI channel dev.ahcich.1.%driver: ahcich dev.ahcich.1.%location: channel=3D1 dev.ahcich.1.%parent: ahci0 dev.ahcich.2.%desc: AHCI channel dev.ahcich.2.%driver: ahcich dev.ahcich.2.%location: channel=3D2 dev.ahcich.2.%parent: ahci0 dev.ahcich.3.%desc: AHCI channel dev.ahcich.3.%driver: ahcich dev.ahcich.3.%location: channel=3D3 dev.ahcich.3.%parent: ahci0 HTH --=20 --
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTink9Fewbwrrx%2Be%2BWm6Wq8wfzU9=fcBS0c4_dc=s>