Skip site navigation (1)Skip section navigation (2)
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>