Re: INVARIANTS (was Re: RELENG_4 - 5 - 6: significant performance regression)

2006-05-16 Thread Dmitry Pryanishnikov


Hello!

On Sat, 13 May 2006, Matthew D. Fuller wrote:

On Sat, May 13, 2006 at 11:58:26AM -0400 I heard the voice of
Kris Kennaway, and lo! it spake thus:


FYI, INVARIANTS adds checks but does not (is not supposed to) divert
code paths.


It does at least in UMA; it does a lot of bzero()/NULL'ing out of
memory, which might hide later uninitialized-use bugs that could bite
you without it (and, of course, probably burns a fair chunk of CPU to
do it ;).  I know I've heard other cases over the past 5 years or so;
that's the only one I've heard recently or can check, but I wouldn't
be too surprised if there were others.


  This is exactly the point of my suggestion: use separate option (e.g.,
INVARIANTS_EXTENDED) for this additional bzero()/NULL'ing and other
performance-expensive checks, and leave only simple asserts under
basic INVARIANTS options. IMHO this will encourage (or, at least,
not discourage) use of INVARIANTS-enabled kernels in production
conditions which for sure will help to analyze latent, heavy load-specific,
bugs.


Matthew Fuller (MF4839)   |  [EMAIL PROTECTED]
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
  On the Internet, nobody can hear you scream.


Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail:  [EMAIL PROTECTED]
nic-hdl: LYNX-RIPE
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-15 Thread Dmitry Pryanishnikov


Hello!

On Sat, 13 May 2006, Jonathan Noack wrote:

Have you tried putting I586_CPU in there?  See
http://lists.freebsd.org/pipermail/freebsd-stable/2005-December/020696.html.


 Thanks for suggestion. I've just tried it, performance difference is
indistinguishable.


Also, use the link0 option with your fxp cards if they support it.  See
the fxp(4) man page for more info.  Here is an example /etc/rc.conf entry:
ifconfig_fxp0=inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx link0


 Well, I'm aware of this feature. I'm just evaluating performance of RELENG_6 
systems on uniprocessor i386 system, and (for now) it's significantly worse

than under RELENG_4. So I've used fxp just for comparison (and to rule out
possible specific regression in rl NIC driver), not for anything more
serious.


Jonathan Noack | [EMAIL PROTECTED] | OpenPGP: 0x991D8195


Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail:  [EMAIL PROTECTED]
nic-hdl: LYNX-RIPE
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: INVARIANTS (was Re: RELENG_4 - 5 - 6: significant performance regression)

2006-05-14 Thread Ulrich Spoerlein
Matthew D. Fuller wrote:
 On Sat, May 13, 2006 at 11:58:26AM -0400 I heard the voice of
 Kris Kennaway, and lo! it spake thus:
  
  FYI, INVARIANTS adds checks but does not (is not supposed to) divert
  code paths.
 
 It does at least in UMA; it does a lot of bzero()/NULL'ing out of
 memory, which might hide later uninitialized-use bugs that could bite
 you without it

Shouldn't it write something like 0xdeadc0de or 0x0d0d0d0d to memory
-- like user-land memory debugging tools do -- to catch read-before-write
bugs?

Ulrich Spoerlein
-- 
 PGP Key ID: 20FEE9DD   Encrypted mail welcome!
Fingerprint: AEC9 AF5E 01AC 4EE1 8F70  6CBD E76E 2227 20FE E9DD
Which is worse: ignorance or apathy?
Don't know. Don't care.


pgpC9DTZhM4QV.pgp
Description: PGP signature


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-13 Thread Dmitry Pryanishnikov


Hello!

On Fri, 12 May 2006, Kris Kennaway wrote:

   %Sys   %Intr   %Idl
RELENG_6 + rl0  45  40 15
RELENG_6 + fxp0 45  35 20



 %Sys   %Intr   %Idl  time md5 -t wall clock time
RELENG_6 + rl0  34  24 42   1:43
RELENG_6 + fxp0 30  20 50   1:40


is caused by just these:

options INVARIANTS
options INVARIANT_SUPPORT


So what is the overall status?  I am not clear what your results are.


 Results for RELENG_6+rl0 are

%Sys   %Intr   %Idl
34  24 42

without INVARIANTS, and

%Sys   %Intr   %Idl
45  40 15

with them. Other options like QUOTA and makeoptions
CONF_CFLAGS=-fno-builtin make almost no difference. So, under my test
conditions, the best % of idle CPU time under RELENG_6 is 42%, while under 
RELENG_4 we had


%Sys   %Intr   %Idl
14  14 72

under the same conditions (and with INVARIANTS!) ;(


available for application under RELENG_5/6 than under RELENG_4 (under
identical load pattern). I ran time md5 -t several (3-5 times) just to
confirm my assumptions, and results didn't vary more than 3%. So I suppose
that ministat isn't necessary in my tests.


Perhaps not when the difference is large, but you need to be very
careful when differences are below ~10%, because it's easy to make
incorrect conclusions.


 I agree with you. I would make more measurements if my aim was to determine
which branch between RELENG_5 and _6 to use. But as these results are close
enough, and RELENG_6 is superiour regarding new features (and often 
stability), IMHO there's no point in using RELENG_5 at all. I'm just trying
to understand why performance of RELENG_6 is worse than in RELENG_4 _that 
much_, and whether this sad situation can be improved somehow.



Kris


Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail:  [EMAIL PROTECTED]
nic-hdl: LYNX-RIPE
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-13 Thread Dmitry Pryanishnikov


Hello!

On Fri, 12 May 2006, Kris Kennaway wrote:

 So maybe it's time to add, say,

options  INVARIANTS_EXTENDED

for these new and expensive checks, and leave only basic and cheap (yet
effective for bug hunting) asserts enabled when only

options  INVARIANTS

is defined?


No, they are all effective for bug hunting.  You just need to be aware
that it is incompatible with performance.


 But, you know, many bugs can be hunted only under long-term production 
conditions, while incompatibility between INVARIANTS and performance

effectively prevents successful bug hunting under these conditions,
because performance is often critical in production.


Kris


Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail:  [EMAIL PROTECTED]
nic-hdl: LYNX-RIPE
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-13 Thread Jonathan Noack
On 05/13/06 01:59, Dmitry Pryanishnikov wrote:
 On Fri, 12 May 2006, Kris Kennaway wrote:
%Sys   %Intr   %Idl
 RELENG_6 + rl0  45  40 15
 RELENG_6 + fxp0 45  35 20

  %Sys   %Intr   %Idl  time md5 -t wall clock time
 RELENG_6 + rl0  34  24 42   1:43
 RELENG_6 + fxp0 30  20 50   1:40

 is caused by just these:

 options INVARIANTS
 options INVARIANT_SUPPORT

 So what is the overall status?  I am not clear what your results are.
 
  Results for RELENG_6+rl0 are
 
 %Sys   %Intr   %Idl
 34  24 42
 
 without INVARIANTS, and
 
 %Sys   %Intr   %Idl
 45  40 15
 
 with them. Other options like QUOTA and makeoptions
 CONF_CFLAGS=-fno-builtin make almost no difference. So, under my test
 conditions, the best % of idle CPU time under RELENG_6 is 42%, while
 under RELENG_4 we had
 
 %Sys   %Intr   %Idl
 14  14 72
 
 under the same conditions (and with INVARIANTS!) ;(
 
 available for application under RELENG_5/6 than under RELENG_4 (under
 identical load pattern). I ran time md5 -t several (3-5 times) just to
 confirm my assumptions, and results didn't vary more than 3%. So I
 suppose
 that ministat isn't necessary in my tests.

 Perhaps not when the difference is large, but you need to be very
 careful when differences are below ~10%, because it's easy to make
 incorrect conclusions.
 
  I agree with you. I would make more measurements if my aim was to
 determine
 which branch between RELENG_5 and _6 to use. But as these results are close
 enough, and RELENG_6 is superiour regarding new features (and often
 stability), IMHO there's no point in using RELENG_5 at all. I'm just trying
 to understand why performance of RELENG_6 is worse than in RELENG_4
 _that much_, and whether this sad situation can be improved somehow.

Have you tried putting I586_CPU in there?  See
http://lists.freebsd.org/pipermail/freebsd-stable/2005-December/020696.html.

Also, use the link0 option with your fxp cards if they support it.  See
the fxp(4) man page for more info.  Here is an example /etc/rc.conf entry:
ifconfig_fxp0=inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx link0

-- 
Jonathan Noack | [EMAIL PROTECTED] | OpenPGP: 0x991D8195



signature.asc
Description: OpenPGP digital signature


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-13 Thread Matthew D. Fuller
On Sat, May 13, 2006 at 03:01:18AM -0400 I heard the voice of
Jonathan Noack, and lo! it spake thus:
 
 Have you tried putting I586_CPU in there?  See
 http://lists.freebsd.org/pipermail/freebsd-stable/2005-December/020696.html.

As Peter Jeremy mentioned in
http://lists.freebsd.org/pipermail/freebsd-stable/2005-December/020731.html,
the primary suspect (optimized copy/zero routines) would never happen
except on a real 586 CPU, and is totally disabled anyway.  See
sys/i386/isa/npx.c line 424-437 (line numbers from rev 1.163, salt to
taste):

#ifdef I586_CPU_XXX
if (cpu_class == CPUCLASS_586  npx_ex16  npx_exists 
[...]

The #ifdef will never match, and even if it did, the if() would never
kick in unless the CPU was actually a 586.  The #ifdef has been
disabled since rev 1.95 (2001/04/13).


(This isn't to say that there isn't something else hiding somewhere
that I686_CPU doesn't enable that it should, but just nipping another
round of the copy routine discussion in the bud...)


-- 
Matthew Fuller (MF4839)   |  [EMAIL PROTECTED]
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
   On the Internet, nobody can hear you scream.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-13 Thread Mark Linimon
On Sat, May 13, 2006 at 08:59:01AM +0300, Dmitry Pryanishnikov wrote:
 I'm just trying to understand why performance of RELENG_6 is worse than
 in RELENG_4 _that much_, and whether this sad situation can be improved
 somehow.

The architecture of the system substantially changed in the 5.X timeframe
to correctly support SMP.  There was not time enough during its lifetime
to correct all the problems.  The goal (AFAIK) of 6.X is to consolidate
those changes and work on bugfixes and performance.  (Already 6.X is
substantially faster in disk access).

There is a great deal of work being done behind-the-scenes (and being
discussed here at BSDCan) about performance.  Expect to some some dramatic
improvements in the 6.2 timeframe, if the hallways discussions are correct :-)

mcl
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


INVARIANTS (was Re: RELENG_4 - 5 - 6: significant performance regression)

2006-05-13 Thread Matthew D. Fuller
On Sat, May 13, 2006 at 10:37:40AM -0400 I heard the voice of
Kris Kennaway, and lo! it spake thus:
 
 With respect to INVARIANTS, you just need to get used to the fact
 that running thousands of checks for bugs is incompatible with
 running at optimal speed.

(I'm not sure what the point of saying this is, really, but I'll say
it anyway.)

I've run all my systems with INVARIANTS for at least as long as I've
known it was there.  While more performance is always good, hardly any
of my systems are so constrained as to need every bit of suds all the
time; trading off a bit of performance for a better chance of catching
a problem before it really screws something up is just a no-brainer.

Additionally (and especially on -CURRENT), I run it because I think
more people run it than don't, and while theoretically it should just
add checks, I know there are places where it changes code paths much
more than that.  So, the !(INVARIANTS) code paths don't get exercised
as much, and I worry about bugs hiding there that don't get found (I
think I recall a case or three over the years of just that happening).
Like everyone, I'm sure, I'm all for ferreting out bugs and getting
them fixed, but I'd rather not have to bust my virtual face on the
virtual concrete to do it;)

It's totally worth wasting 2% of the system on adding that security.
Heck, maybe even 5%.  But 10%?  25%?  I wonder.  It's been a long time
since I had a system fall over from a KASSERT, but due to the code
path issues, I'm not sure that really means I'm safe without it.


Yeah, I was right, there wasn't really much point in there.  But I
typed it, so y'all have to read it now:p


-- 
Matthew Fuller (MF4839)   |  [EMAIL PROTECTED]
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
   On the Internet, nobody can hear you scream.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: INVARIANTS (was Re: RELENG_4 - 5 - 6: significant performance regression)

2006-05-13 Thread Kris Kennaway
On Sat, May 13, 2006 at 10:52:32AM -0500, Matthew D. Fuller wrote:
 On Sat, May 13, 2006 at 10:37:40AM -0400 I heard the voice of
 Kris Kennaway, and lo! it spake thus:
  
  With respect to INVARIANTS, you just need to get used to the fact
  that running thousands of checks for bugs is incompatible with
  running at optimal speed.
 
 (I'm not sure what the point of saying this is, really, but I'll say
 it anyway.)
 
 I've run all my systems with INVARIANTS for at least as long as I've
 known it was there.  While more performance is always good, hardly any
 of my systems are so constrained as to need every bit of suds all the
 time; trading off a bit of performance for a better chance of catching
 a problem before it really screws something up is just a no-brainer.
 
 Additionally (and especially on -CURRENT), I run it because I think
 more people run it than don't, and while theoretically it should just
 add checks, I know there are places where it changes code paths much
 more than that.  So, the !(INVARIANTS) code paths don't get exercised
 as much, and I worry about bugs hiding there that don't get found (I
 think I recall a case or three over the years of just that happening).
 Like everyone, I'm sure, I'm all for ferreting out bugs and getting
 them fixed, but I'd rather not have to bust my virtual face on the
 virtual concrete to do it;)

FYI, INVARIANTS adds checks but does not (is not supposed to) divert
code paths.

Kris


pgp2ibCdGtDyO.pgp
Description: PGP signature


Re: INVARIANTS (was Re: RELENG_4 - 5 - 6: significant performance regression)

2006-05-13 Thread Matthew D. Fuller
On Sat, May 13, 2006 at 11:58:26AM -0400 I heard the voice of
Kris Kennaway, and lo! it spake thus:
 
 FYI, INVARIANTS adds checks but does not (is not supposed to) divert
 code paths.

It does at least in UMA; it does a lot of bzero()/NULL'ing out of
memory, which might hide later uninitialized-use bugs that could bite
you without it (and, of course, probably burns a fair chunk of CPU to
do it ;).  I know I've heard other cases over the past 5 years or so;
that's the only one I've heard recently or can check, but I wouldn't
be too surprised if there were others.


-- 
Matthew Fuller (MF4839)   |  [EMAIL PROTECTED]
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
   On the Internet, nobody can hear you scream.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-12 Thread Dmitry Pryanishnikov


Hello!

On Fri, 28 Apr 2006, Kris Kennaway wrote:

makeoptions CONF_CFLAGS=-fno-builtin

I don't know, it needs to be tested in your particular case.


 I've built another kernel, adding back

makeoptions  CONF_CFLAGS=-fno-builtin
options  QUOTA

Results are almost the same as w/o these 2 options. So the following overhead 
difference:



%Sys   %Intr   %Idl
RELENG_6 + rl0  45  40 15
RELENG_6 + fxp0 45  35 20



  %Sys   %Intr   %Idl  time md5 -t wall clock time
RELENG_6 + rl0  34  24 42   1:43
RELENG_6 + fxp0 30  20 50   1:40


is caused by just these:

options INVARIANTS
options INVARIANT_SUPPORT


(I'll try to find out which one of these takes which % of overhead when I
get free time), but still much worse then under RELENG_4, where this
particular (I'd say quote common) usage pattern takes 24-28% of CPU time,
while under RELENG_5 / 6 it takes = 50% ;(


Thanks.  Silly question: the data transfer rate is the same on both
4.x and 6.x, right?  i.e. the data transfer itself takes the same
time?


 Yes. I'm transferring a large file (ISO image) from another (much faster,
lightly loaded) machine over 10Mbit/s Ethernet link, so the transfer itself
is limited only by the wire speed (actual transfer rate is very close to 1000
KBytes/sec according to ftp client and 'systat -vm 1' disk transfer rate in 
every measurement).



The next step is for you to run some profiling tests to see
where the kernel is spending time, e.g. with hwpmc.


 I have to get myself familiar with this new (for me) feature first... Also, 
hwpmc doesn't exist in RELENG_4, so it'll be impossible to compare results

with RELENG_4. It's a pity, because my tests clearly show that main loss
of performance (growth of overhead) occured during RELENG_4 - 5 transition.
And last, but not least: my test system (Transcend TS-ABX31A
motherboard based on Intel BX chipset) does not provide APIC, will hwpmc
be useful in this situation?


Also, when you are trying to quantify performance differences, you
need to run many copies of the test (at least 10) under identical
conditions to account for possible variations.  The ministat tool
(/usr/src/tools/tools/ministat) is good for performing statistically
meaningful comparisons of data sets when you have them.


 As my transfer takes much time (say 10 minutes) I've observed % of time
used many times during the transfer - they don't vary more than +/- several
(2-3) % during the main transfer phase (when transfer speed is stable).
My time md5 -t runs was used only as a confirmation that systat's numbers
are trustworthy - they simply confirm that there are _much_ less CPU cycles
available for application under RELENG_5/6 than under RELENG_4 (under 
identical load pattern). I ran time md5 -t several (3-5 times) just to

confirm my assumptions, and results didn't vary more than 3%. So I suppose
that ministat isn't necessary in my tests.


Kris


Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail:  [EMAIL PROTECTED]
nic-hdl: LYNX-RIPE
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-12 Thread Dmitry Pryanishnikov


Hello!

On Tue, 2 May 2006, Robert Watson wrote:

options INVARIANTS
options INVARIANT_SUPPORT


In FreeBSD 5.x and FreeBSD 6.x, the INVARIANTS option has been significantly 
expanded to test a much larger set of invariants, and also incorporate kernel 
use-after-free checking, which involves memory scrubbing.  This is great for 
catching bugs, but it will have a significant performance impact, especially 
for kernel-intensive loads.


 So maybe it's time to add, say,

options  INVARIANTS_EXTENDED

for these new and expensive checks, and leave only basic and cheap (yet
effective for bug hunting) asserts enabled when only

options  INVARIANTS

is defined?


Robert N M Watson


Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail:  [EMAIL PROTECTED]
nic-hdl: LYNX-RIPE
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-12 Thread Kris Kennaway
On Fri, May 12, 2006 at 11:32:44PM +0300, Dmitry Pryanishnikov wrote:
 
 Hello!
 
 On Tue, 2 May 2006, Robert Watson wrote:
 options INVARIANTS
 options INVARIANT_SUPPORT
 
 In FreeBSD 5.x and FreeBSD 6.x, the INVARIANTS option has been 
 significantly expanded to test a much larger set of invariants, and also 
 incorporate kernel use-after-free checking, which involves memory 
 scrubbing.  This is great for catching bugs, but it will have a 
 significant performance impact, especially for kernel-intensive loads.
 
  So maybe it's time to add, say,
 
 options  INVARIANTS_EXTENDED
 
 for these new and expensive checks, and leave only basic and cheap (yet
 effective for bug hunting) asserts enabled when only
 
 options  INVARIANTS
 
 is defined?

No, they are all effective for bug hunting.  You just need to be aware
that it is incompatible with performance.

Kris


pgpBtm7Pv8jt2.pgp
Description: PGP signature


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-12 Thread Kris Kennaway
On Fri, May 12, 2006 at 11:25:58PM +0300, Dmitry Pryanishnikov wrote:
 
 Hello!
 
 On Fri, 28 Apr 2006, Kris Kennaway wrote:
 makeoptions   CONF_CFLAGS=-fno-builtin
 I don't know, it needs to be tested in your particular case.
 
  I've built another kernel, adding back
 
 makeoptions  CONF_CFLAGS=-fno-builtin
 options  QUOTA
 
 Results are almost the same as w/o these 2 options. So the following 
 overhead difference:
 
 %Sys   %Intr   %Idl
 RELENG_6 + rl0  45  40 15
 RELENG_6 + fxp0 45  35 20
 
   %Sys   %Intr   %Idl  time md5 -t wall clock time
 RELENG_6 + rl0  34  24 42   1:43
 RELENG_6 + fxp0 30  20 50   1:40
 
 is caused by just these:
 
 options   INVARIANTS
 options   INVARIANT_SUPPORT

So what is the overall status?  I am not clear what your results are.

  As my transfer takes much time (say 10 minutes) I've observed % of time
 used many times during the transfer - they don't vary more than +/- several
 (2-3) % during the main transfer phase (when transfer speed is stable).
 My time md5 -t runs was used only as a confirmation that systat's numbers
 are trustworthy - they simply confirm that there are _much_ less CPU cycles
 available for application under RELENG_5/6 than under RELENG_4 (under 
 identical load pattern). I ran time md5 -t several (3-5 times) just to
 confirm my assumptions, and results didn't vary more than 3%. So I suppose
 that ministat isn't necessary in my tests.

Perhaps not when the difference is large, but you need to be very
careful when differences are below ~10%, because it's easy to make
incorrect conclusions.

Kris


pgpPzVBJ50JAm.pgp
Description: PGP signature


Re: RELENG_4 - 5 - 6: significant performance regression

2006-05-02 Thread Robert Watson


On Thu, 27 Apr 2006, Dmitry Pryanishnikov wrote:


options INVARIANTS
options INVARIANT_SUPPORT


In FreeBSD 5.x and FreeBSD 6.x, the INVARIANTS option has been significantly 
expanded to test a much larger set of invariants, and also incorporate kernel 
use-after-free checking, which involves memory scrubbing.  This is great for 
catching bugs, but it will have a significant performance impact, especially 
for kernel-intensive loads.


Robert N M Watson
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-30 Thread Chris

On 28/04/06, Kris Kennaway [EMAIL PROTECTED] wrote:

On Fri, Apr 28, 2006 at 03:31:17PM +0300, Dmitry Pryanishnikov wrote:

 Hello!

 On Thu, 27 Apr 2006, Kris Kennaway wrote:

  Thanks for your suggestions, they've made a difference (though not as big
 as one could hope).

 On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:
 
 makeoptions CONF_CFLAGS=-fno-builtin
 
 Non-default option; this may conceivably affect performance.

  The reason why I've initially included this option is the following
 comment (NOTES from RELENG_6):

 #
 # CONF_CFLAGS gives some extra compiler flags that are added to ${CFLAGS}
 # after most other flags.  Here we use it to inhibit use of non-optimal
 # gcc builtin functions (e.g., memcmp).
 #

 I've read this: using CONF_CFLAGS=-fno-builtin inhibits use of non-optimal
 gcc builtin functions, so this option may be useful for getting max.
 performance. Are this comment and my interpretation still correct now?

I don't know, it needs to be tested in your particular case.

  %Sys   %Intr   %Idl
 RELENG_4 + rl0  14  14 72
 RELENG_4 + fxp0 14  10 76
 RELENG_5 + rl0  40  30 30
 RELENG_5 + fxp0 35  25 40
 RELENG_6 + rl0  45  40 15
 RELENG_6 + fxp0 45  35 20

   %Sys   %Intr   %Idl  time md5 -t wall clock time
 RELENG_5 + rl0  33  23 44   1:41
 RELENG_5 + fxp0 30  20 50   1:36

 RELENG_6 + rl0  34  24 42   1:43
 RELENG_6 + fxp0 30  20 50   1:40

 So performance now is much better then before removal of

 makeoptions   CONF_CFLAGS=-fno-builtin
 options   INVARIANTS
 options   INVARIANT_SUPPORT
 options   QUOTA

 (I'll try to find out which one of these takes which % of overhead when I
 get free time), but still much worse then under RELENG_4, where this
 particular (I'd say quote common) usage pattern takes 24-28% of CPU time,
 while under RELENG_5 / 6 it takes = 50% ;(

Thanks.  Silly question: the data transfer rate is the same on both
4.x and 6.x, right?  i.e. the data transfer itself takes the same
time?

The next step is for you to run some profiling tests to see
where the kernel is spending time, e.g. with hwpmc.

Also, when you are trying to quantify performance differences, you
need to run many copies of the test (at least 10) under identical
conditions to account for possible variations.  The ministat tool
(/usr/src/tools/tools/ministat) is good for performing statistically
meaningful comparisons of data sets when you have them.

Kris


Does 'makeoptions DEBUG=-g' add any kind of performance hit or
overhead as I noticed it wasnt default in 5.4 but is in 6.0.

Thanks

Chris
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-30 Thread Peter Jeremy
On Sun, 2006-Apr-30 10:05:40 +0100, Chris wrote:
Does 'makeoptions DEBUG=-g' add any kind of performance hit or
overhead as I noticed it wasnt default in 5.4 but is in 6.0.

No.  It just means that a debug kernel is built in addition to the
normal kernel.  The major benefit is that if you do get a panic,
you can debug it without needing to rebuild the kernel.

-- 
Peter Jeremy
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-30 Thread Dominic Marks

Peter Jeremy wrote:

On Sun, 2006-Apr-30 10:05:40 +0100, Chris wrote:

Does 'makeoptions DEBUG=-g' add any kind of performance hit or
overhead as I noticed it wasnt default in 5.4 but is in 6.0.


No.  It just means that a debug kernel is built in addition to the
normal kernel.  The major benefit is that if you do get a panic,
you can debug it without needing to rebuild the kernel.



I've often thought that the default should be for this to be
on instead of off. Does anyone know why the current state is
so? I suppose it incurs a small amount of additional disc
space but the benefits are considerable for everyone involved.

Cheers,
Dominic


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-30 Thread Dominic Marks

Dominic Marks wrote:

Peter Jeremy wrote:

On Sun, 2006-Apr-30 10:05:40 +0100, Chris wrote:

Does 'makeoptions DEBUG=-g' add any kind of performance hit or
overhead as I noticed it wasnt default in 5.4 but is in 6.0.


No.  It just means that a debug kernel is built in addition to the
normal kernel.  The major benefit is that if you do get a panic,
you can debug it without needing to rebuild the kernel.



I've often thought that the default should be for this to be
on instead of off. Does anyone know why the current state is
so? I suppose it incurs a small amount of additional disc
space but the benefits are considerable for everyone involved.


Clarifying what I was getting at (it does default to on) I meant
that it has to be turned on with an option not turned off.


Cheers,
Dominic


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-30 Thread Kris Kennaway
On Sun, Apr 30, 2006 at 10:05:40AM +0100, Chris wrote:
 On 28/04/06, Kris Kennaway [EMAIL PROTECTED] wrote:
 On Fri, Apr 28, 2006 at 03:31:17PM +0300, Dmitry Pryanishnikov wrote:
 
  Hello!
 
  On Thu, 27 Apr 2006, Kris Kennaway wrote:
 
   Thanks for your suggestions, they've made a difference (though not as 
 big
  as one could hope).
 
  On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:
  
  makeoptions CONF_CFLAGS=-fno-builtin
  
  Non-default option; this may conceivably affect performance.
 
   The reason why I've initially included this option is the following
  comment (NOTES from RELENG_6):
 
  #
  # CONF_CFLAGS gives some extra compiler flags that are added to ${CFLAGS}
  # after most other flags.  Here we use it to inhibit use of non-optimal
  # gcc builtin functions (e.g., memcmp).
  #
 
  I've read this: using CONF_CFLAGS=-fno-builtin inhibits use of 
 non-optimal
  gcc builtin functions, so this option may be useful for getting max.
  performance. Are this comment and my interpretation still correct now?
 
 I don't know, it needs to be tested in your particular case.
 
   %Sys   %Intr   %Idl
  RELENG_4 + rl0  14  14 72
  RELENG_4 + fxp0 14  10 76
  RELENG_5 + rl0  40  30 30
  RELENG_5 + fxp0 35  25 40
  RELENG_6 + rl0  45  40 15
  RELENG_6 + fxp0 45  35 20
 
%Sys   %Intr   %Idl  time md5 -t wall clock time
  RELENG_5 + rl0  33  23 44   1:41
  RELENG_5 + fxp0 30  20 50   1:36
 
  RELENG_6 + rl0  34  24 42   1:43
  RELENG_6 + fxp0 30  20 50   1:40
 
  So performance now is much better then before removal of
 
  makeoptions   CONF_CFLAGS=-fno-builtin
  options   INVARIANTS
  options   INVARIANT_SUPPORT
  options   QUOTA
 
  (I'll try to find out which one of these takes which % of overhead when I
  get free time), but still much worse then under RELENG_4, where this
  particular (I'd say quote common) usage pattern takes 24-28% of CPU 
 time,
  while under RELENG_5 / 6 it takes = 50% ;(
 
 Thanks.  Silly question: the data transfer rate is the same on both
 4.x and 6.x, right?  i.e. the data transfer itself takes the same
 time?
 
 The next step is for you to run some profiling tests to see
 where the kernel is spending time, e.g. with hwpmc.
 
 Also, when you are trying to quantify performance differences, you
 need to run many copies of the test (at least 10) under identical
 conditions to account for possible variations.  The ministat tool
 (/usr/src/tools/tools/ministat) is good for performing statistically
 meaningful comparisons of data sets when you have them.
 
 Kris
 
 Does 'makeoptions DEBUG=-g' add any kind of performance hit or
 overhead as I noticed it wasnt default in 5.4 but is in 6.0.

No, the symbols are stripped from the install kernel.

Kris


pgpKLXFmxWWLJ.pgp
Description: PGP signature


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-28 Thread Dmitry Pryanishnikov


Hello!

On Thu, 27 Apr 2006, Kris Kennaway wrote:

 Thanks for your suggestions, they've made a difference (though not as big
as one could hope).


On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:


makeoptions CONF_CFLAGS=-fno-builtin


Non-default option; this may conceivably affect performance.


 The reason why I've initially included this option is the following
comment (NOTES from RELENG_6):

#
# CONF_CFLAGS gives some extra compiler flags that are added to ${CFLAGS}
# after most other flags.  Here we use it to inhibit use of non-optimal
# gcc builtin functions (e.g., memcmp).
#

I've read this: using CONF_CFLAGS=-fno-builtin inhibits use of non-optimal
gcc builtin functions, so this option may be useful for getting max. 
performance. Are this comment and my interpretation still correct now?



options INVARIANTS
options INVARIANT_SUPPORT


These definitely effect performance, much more in 5.x and 6.x (at the
10-20% level) than 4.x.


 It's a pity - those help to catch a lot of software bugs ;(


options QUOTA


This definitely effects performance on 6.x since it makes your
filesystem giant-locked, which may also interfere with your network
processing.


 It's also a pity.


 %Sys   %Intr   %Idl
RELENG_4 + rl0  14  14 72
RELENG_4 + fxp0 14  10 76
RELENG_5 + rl0  40  30 30
RELENG_5 + fxp0 35  25 40
RELENG_6 + rl0  45  40 15
RELENG_6 + fxp0 45  35 20


Please retry without.  Also make sure there are no other diagnostic
messages at boot time about e.g. mpsafenet being forced to 0.


I've removed all mentioned options and redone benchmarks. There are no
diagnostics about mpsafe* (last one I've seen due to IPSEC, and I've
replaced it with FAST_IPSEC+crypto before doing previous benchmarks).
New results are pretty close for RELENG_5 and RELENG_6:

  %Sys   %Intr   %Idl  time md5 -t wall clock time
RELENG_5 + rl0  33  23 44   1:41
RELENG_5 + fxp0 30  20 50   1:36

RELENG_6 + rl0  34  24 42   1:43
RELENG_6 + fxp0 30  20 50   1:40

So performance now is much better then before removal of

makeoptions CONF_CFLAGS=-fno-builtin
options INVARIANTS
options INVARIANT_SUPPORT
options QUOTA

(I'll try to find out which one of these takes which % of overhead when I
get free time), but still much worse then under RELENG_4, where this
particular (I'd say quote common) usage pattern takes 24-28% of CPU time, 
while under RELENG_5 / 6 it takes = 50% ;(



Kris


Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail:  [EMAIL PROTECTED]
nic-hdl: LYNX-RIPE
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-28 Thread Kris Kennaway
On Fri, Apr 28, 2006 at 03:31:17PM +0300, Dmitry Pryanishnikov wrote:
 
 Hello!
 
 On Thu, 27 Apr 2006, Kris Kennaway wrote:
 
  Thanks for your suggestions, they've made a difference (though not as big
 as one could hope).
 
 On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:
 
 makeoptions CONF_CFLAGS=-fno-builtin
 
 Non-default option; this may conceivably affect performance.
 
  The reason why I've initially included this option is the following
 comment (NOTES from RELENG_6):
 
 #
 # CONF_CFLAGS gives some extra compiler flags that are added to ${CFLAGS}
 # after most other flags.  Here we use it to inhibit use of non-optimal
 # gcc builtin functions (e.g., memcmp).
 #
 
 I've read this: using CONF_CFLAGS=-fno-builtin inhibits use of non-optimal
 gcc builtin functions, so this option may be useful for getting max. 
 performance. Are this comment and my interpretation still correct now?

I don't know, it needs to be tested in your particular case.

  %Sys   %Intr   %Idl
 RELENG_4 + rl0  14  14 72
 RELENG_4 + fxp0 14  10 76
 RELENG_5 + rl0  40  30 30
 RELENG_5 + fxp0 35  25 40
 RELENG_6 + rl0  45  40 15
 RELENG_6 + fxp0 45  35 20

   %Sys   %Intr   %Idl  time md5 -t wall clock time
 RELENG_5 + rl0  33  23 44   1:41
 RELENG_5 + fxp0 30  20 50   1:36
 
 RELENG_6 + rl0  34  24 42   1:43
 RELENG_6 + fxp0 30  20 50   1:40
 
 So performance now is much better then before removal of
 
 makeoptions   CONF_CFLAGS=-fno-builtin
 options   INVARIANTS
 options   INVARIANT_SUPPORT
 options   QUOTA
 
 (I'll try to find out which one of these takes which % of overhead when I
 get free time), but still much worse then under RELENG_4, where this
 particular (I'd say quote common) usage pattern takes 24-28% of CPU time, 
 while under RELENG_5 / 6 it takes = 50% ;(

Thanks.  Silly question: the data transfer rate is the same on both
4.x and 6.x, right?  i.e. the data transfer itself takes the same
time?

The next step is for you to run some profiling tests to see
where the kernel is spending time, e.g. with hwpmc.

Also, when you are trying to quantify performance differences, you
need to run many copies of the test (at least 10) under identical
conditions to account for possible variations.  The ministat tool
(/usr/src/tools/tools/ministat) is good for performing statistically
meaningful comparisons of data sets when you have them.

Kris


pgpB15jg08sOR.pgp
Description: PGP signature


RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Dmitry Pryanishnikov


Hello!

 I've done simple (yet, I hope, reality-reflecting) performance benchmarking
different STABLE branches (4 vs 5 vs 6) using the following hardware:

CPU: Pentium II/Pentium II Xeon/Celeron (334.09-MHz 686-class CPU)
  Origin = GenuineIntel  Id = 0x665  Stepping = 5
  Features=0x183f9ffFPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PA
T,PSE36,MMX,FXSR
real memory  = 134152192 (127 MB)
...
rl0: RealTek 8139 10/100BaseTX port 0xe800-0xe8ff mem 0xdc101000-0xdc1010ff
 irq 5 at device 20.0 on pci0
...
fxp0: Intel 82559 Pro/100 Ethernet port 0xe400-0xe43f mem
 0xdc10-0xdc100fff,0xdc00-0xdc0f irq 7 at device 19.0 on pci0
...
ad0: 76351MB SAMSUNG SP0802N TK100-24 at ata0-master UDMA33

and just restoring precompiled 4/5/6-STABLE to the same HDD partition. I've 
used the following kernel config for 4-STABLE:


ident   TEST
machine i386
maxusers32
makeoptions CONF_CFLAGS=-fno-builtin
makeoptions DEBUG=-g
options INCLUDE_CONFIG_FILE
cpu I686_CPU
options COMPAT_43
options USER_LDT
options SYSVSHM
options SYSVSEM
options SYSVMSG
options INVARIANTS
options INVARIANT_SUPPORT
options USERCONFIG
options INET
options FAST_IPSEC
options IPSEC_FILTERGIF
pseudo-device   ether
pseudo-device   vlan1
pseudo-device   loop
pseudo-device   bpf
pseudo-device   ppp 8
options PPP_BSDCOMP
options PPP_DEFLATE
options PPP_FILTER
options IPFIREWALL
options IPFW2
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
options IPSTEALTH
options ICMP_BANDLIM
options DUMMYNET
options FFS
options FFS_ROOT
options SOFTUPDATES
options QUOTA
options P1003_1B
options _KPOSIX_PRIORITY_SCHEDULING
options _KPOSIX_VERSION=199309L
pseudo-device   pty
pseudo-device   crypto
device  isa
device  atkbdc0 at isa? port IO_KBD
device  atkbd0  at atkbdc? irq 1
device  psm0at atkbdc? irq 12
device  vga0at isa?
pseudo-device   splash
device  sc0 at isa?
options SC_HISTORY_SIZE=1000
options SC_TWOBUTTON_MOUSE
device  npx0at nexus? port IO_NPX flags 0x0 irq 13
device  ata
device  atadisk
options ATA_STATIC_ID
device  fdc0at isa? port IO_FD1 irq 6 drq 2
device  fd0 at fdc0 drive 0
device  fd1 at fdc0 drive 1
device  sio0at isa? port IO_COM1 irq 4
device  sio1at isa? port IO_COM2 irq 3
device  pci

and slightly modified it for 5/6-STABLE, here is the diff ( = 4-only
option,  - 5/6-only):


options SCHED_4BSD


 optionsUSER_LDT
 optionsUSERCONFIG

 pseudo-device  ether
 pseudo-device  vlan1
 pseudo-device  loop
 pseudo-device  bpf
 pseudo-device  ppp 8

device  ether
device  loop
device  bpf


 optionsIPFW2

options IPFIREWALL_FORWARD_EXTENDED


 optionsICMP_BANDLIM
 optionsFFS_ROOT
 optionsP1003_1B
 options_KPOSIX_VERSION=199309L

 pseudo-device  pty
 pseudo-device  crypto

device  pty
device  crypto


 device atkbdc0 at isa? port IO_KBD
 device atkbd0  at atkbdc? irq 1
 device psm0at atkbdc? irq 12
 device vga0at isa?
 pseudo-device  splash
 device sc0 at isa?
---

device  atkbdc
device  atkbd
device  psm
options KBD_INSTALL_CDEV
device  vga
device  splash
device  sc


 device npx0at nexus? port IO_NPX flags 0x0 irq 13

device  npx


 device fdc0at isa? port IO_FD1 irq 6 drq 2
 device fd0 at fdc0 drive 0
 device fd1 at fdc0 drive 1
 device  sio0at isa? port IO_COM1 irq 4
 device  sio1at isa? port IO_COM2 irq 3

Also I've set kern.hz=100 in /boot/loader.conf for every system.
I've effectively excluded ipfw from the game by using
'add 1 pass all from any to any' rule. I hope, I've compared apples with 
apples this way.


  For every x-STABLE, I've received large ISO image via FTP in binary mode 
twice: using rl NIC and using fxp one, both in 10baseT mode (got approx. 1 
Mbyte/s transfer rate). I've noted CPU utilization which gave systat -vm 1 
once numbers have stabilized. Here are the results (average numbers, %User 
and %Nice are close to zero):


  %Sys   %Intr   %Idl

RELENG_4 + rl0  14  14 72
RELENG_4 + fxp0 14  10 76

RELENG_5 + rl0  40  30 30
RELENG_5 + fxp0 35  25 40

RELENG_6 + rl0  45  40 15
RELENG_6 + fxp0 45  35 20

I've tried to verify these numbers by running 'md5 -t' in parallel with
download and 

Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Kris Kennaway
On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:

 makeoptions   CONF_CFLAGS=-fno-builtin

Non-default option; this may conceivably affect performance.

 options   INVARIANTS
 options   INVARIANT_SUPPORT

These definitely effect performance, much more in 5.x and 6.x (at the
10-20% level) than 4.x.

 options   QUOTA

This definitely effects performance on 6.x since it makes your
filesystem giant-locked, which may also interfere with your network
processing.

Please retry without.  Also make sure there are no other diagnostic
messages at boot time about e.g. mpsafenet being forced to 0.

Kris

pgputya1DQiMW.pgp
Description: PGP signature


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread [EMAIL PROTECTED]

Kris Kennaway a écrit :

On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:



options QUOTA


This definitely effects performance on 6.x since it makes your
filesystem giant-locked, which may also interfere with your network
processing.


Why would QUOTA affect performance more on 6.x than 4.x ? I would like 
to understand because i think a system cannot be secure without QUOTA


R.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Kris Kennaway
On Thu, Apr 27, 2006 at 08:26:06PM +0200, [EMAIL PROTECTED] wrote:
 Kris Kennaway a ?crit :
 On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:
 
 
 options QUOTA
 
 This definitely effects performance on 6.x since it makes your
 filesystem giant-locked, which may also interfere with your network
 processing.
 
 Why would QUOTA affect performance more on 6.x than 4.x ? I would like 
 to understand because i think a system cannot be secure without QUOTA

It makes filesystem writes acquire Giant, which blocks other kernel
code that needs to also acquire Giant.  When the need to acquire Giant
was removed from the mainstream UFS code in 6.0 it was an enormous
performance improvement.

Kris


pgp7sJzhZlUWO.pgp
Description: PGP signature


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread [EMAIL PROTECTED]

Kris Kennaway a écrit :

On Thu, Apr 27, 2006 at 08:26:06PM +0200, [EMAIL PROTECTED] wrote:

Kris Kennaway a ?crit :

On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:



options QUOTA

This definitely effects performance on 6.x since it makes your
filesystem giant-locked, which may also interfere with your network
processing.
Why would QUOTA affect performance more on 6.x than 4.x ? I would like 
to understand because i think a system cannot be secure without QUOTA


It makes filesystem writes acquire Giant, which blocks other kernel
code that needs to also acquire Giant.  When the need to acquire Giant
was removed from the mainstream UFS code in 6.0 it was an enormous
performance improvement.


Thanks for your anwser, but i'm not sure i understand... You wrote that 
Giant is needed in 6.0 and now you write it has been removed.


So is it removed for 6-STABLE ? 6.1-rc ? Since i already use 6.x boxes, 
and i do have performance issues, i would upgrade to the right version 
immediatly


R.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Bartosz Fabianowski

You wrote that Giant is needed in 6.0 and now you write it has been
removed.


In 4.x, every UFS write requires the Giant lock. In 6.x, Giant is not 
normally required, making file system operations faster. When you enable 
QUOTA, you basically get back to the 4.x behavior where Giant is needed 
for each write. This is why in 6.x UFS will normally be faster but if 
you enable QUOTA, you lose the newly gained performance again.


- Bartosz
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Mike Jakubik

Bartosz Fabianowski wrote:

You wrote that Giant is needed in 6.0 and now you write it has been
removed.


In 4.x, every UFS write requires the Giant lock. In 6.x, Giant is not 
normally required, making file system operations faster. When you 
enable QUOTA, you basically get back to the 4.x behavior where Giant 
is needed for each write. This is why in 6.x UFS will normally be 
faster but if you enable QUOTA, you lose the newly gained performance 
again.


Why isn't QUOTA mpsafe then?

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Kris Kennaway
On Thu, Apr 27, 2006 at 03:47:37PM -0400, Mike Jakubik wrote:
 Bartosz Fabianowski wrote:
 You wrote that Giant is needed in 6.0 and now you write it has been
 removed.
 
 In 4.x, every UFS write requires the Giant lock. In 6.x, Giant is not 
 normally required, making file system operations faster. When you 
 enable QUOTA, you basically get back to the 4.x behavior where Giant 
 is needed for each write. This is why in 6.x UFS will normally be 
 faster but if you enable QUOTA, you lose the newly gained performance 
 again.
 
 Why isn't QUOTA mpsafe then?

Because code doesn't grow on trees.  There are uncommitted patches
though - perhaps you can test them and get back to the author with
your feedback.

Kris


pgpAdkWuWLHjT.pgp
Description: PGP signature


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Mike Jakubik

Kris Kennaway wrote:

On Thu, Apr 27, 2006 at 03:47:37PM -0400, Mike Jakubik wrote:
  

Why isn't QUOTA mpsafe then?



Because code doesn't grow on trees.  There are uncommitted patches
though - perhaps you can test them and get back to the author with
your feedback.
  


What? There is a beautiful PHP tree growing behind me :P If they apply 
to -CURRENT i will gladly test them, where can i find them?


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Kris Kennaway
On Thu, Apr 27, 2006 at 04:43:07PM -0400, Mike Jakubik wrote:
 Kris Kennaway wrote:
 On Thu, Apr 27, 2006 at 03:47:37PM -0400, Mike Jakubik wrote:
   
 Why isn't QUOTA mpsafe then?
 
 
 Because code doesn't grow on trees.  There are uncommitted patches
 though - perhaps you can test them and get back to the author with
 your feedback.
   
 
 What? There is a beautiful PHP tree growing behind me :P If they apply 
 to -CURRENT i will gladly test them, where can i find them?

I think they were posted to current@; check the archives.

Kris
 

pgppU2gm0dYIf.pgp
Description: PGP signature


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Doug Hardie


On Apr 27, 2006, at 11:12, Kris Kennaway wrote:


On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:


options QUOTA


This definitely effects performance on 6.x since it makes your
filesystem giant-locked, which may also interfere with your network
processing.


Any indications when this will be fixed?  I need quota for user's files.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: RELENG_4 - 5 - 6: significant performance regression

2006-04-27 Thread Kris Kennaway
On Thu, Apr 27, 2006 at 01:57:02PM -0700, Doug Hardie wrote:
 
 On Apr 27, 2006, at 11:12, Kris Kennaway wrote:
 
 On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:
 
 options QUOTA
 
 This definitely effects performance on 6.x since it makes your
 filesystem giant-locked, which may also interfere with your network
 processing.
 
 Any indications when this will be fixed?  I need quota for user's files.

Some time after users give enough feedback about the mpsafe quota patch.

Kris


pgpunoj4KhDOf.pgp
Description: PGP signature