Re: Scheduler + IPC performance on FreeBSD 7.4, 8.2, 9.0 and -CURRENT

From: Arnaud Lacombe <lacombar_at_gmail.com>
Date: Fri, 6 Apr 2012 13:54:03 -0400
Hi,

On Fri, Apr 6, 2012 at 10:58 AM, Attilio Rao <attilio_at_freebsd.org> wrote:
> Il 05 aprile 2012 19:03, Arnaud Lacombe <lacombar_at_gmail.com> ha scritto:
>> Hi folks,
>>
>> Over the past months, I ran on a couple of unused box the
>> `hackbench'[HACKBENCH] benchmark used by the Linux folks for tracking
>> down various kind of regression/improvement. `hackbench' is a
>> scheduler + IPC test (socket xor pipe). It creates producers/consumers
>> groups and let a variable quantity of small messages flow happily.
>> Producers and consumers are either processes xor threads.
>>
>> Tested platforms were
>>  - Atom D510, Intel, (incomplete)
>>  - Core 2 Quad Q9560, Intel
>>  - Soekris net5501, AMD (incomplete)
>>  - Xeon E5645, Intel (incomplete)
>>  - Xeon E5620 (dual package), Intel
>>  - Xeon E5-1650 (pending completion)
>>  - Vortex86, DMP
>>
>> Tested kernel were:
>>  - FreeBSD 7.4-RELEASE
>>  - FreeBSD 8.2-RELEASE
>>  - FreeBSD 9.0-RC3 and FreeBSD 9.0-RELEASE
>>  - FreeBSD 10-CURRENT as of r231573
>
> Which means you run 10-CURRENT with all the kernel debugging options
> on and MALLOC_DEBUG on?
>
I already answered that question. Namely:

<<
note: rule [I] is alleviated for -CURRENT kernels, which were built
with the same alteration made to GENERIC during the CURRENT->RELEASE
transition (ie. WITNESS and a couple of other option disabled).
>>

this translates into the following patch (for amd64):

diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
index 8db8e27..9d61f25 100644
--- a/sys/amd64/conf/GENERIC
+++ b/sys/amd64/conf/GENERIC
_at__at_ -67,20 +67,6 _at__at_ options      MAC                     # TrustedBSD
MAC Framework
 #options       KDTRACE_HOOKS           # Kernel DTrace hooks
 options        INCLUDE_CONFIG_FILE     # Include this file in kernel

-# Debugging support.  Always need this:
-options        KDB                     # Enable kernel debugger support.
-# For minimum debugger support (stable branch) use:
-#options       KDB_TRACE               # Print a stack trace for a panic.
-# For full debugger support use this instead:
-options        DDB                     # Support DDB.
-options        GDB                     # Support remote GDB.
-options        DEADLKRES               # Enable the deadlock resolver
-options        INVARIANTS              # Enable calls of extra sanity checking
-options        INVARIANT_SUPPORT       # Extra sanity checks of
internal structures, required by INVARIANTS
-options        WITNESS                 # Enable checks to detect
deadlocks and cycles
-options        WITNESS_SKIPSPIN        # Don't run witness on
spinlocks for speed
-options        MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones

 - Arnaud

> Attilio
>
>
> --
> Peace can only be achieved by understanding - A. Einstein
Received on Fri Apr 06 2012 - 15:54:05 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:25 UTC