LTT micro-benchmarks

From: Anil B. Somayaji (somaat_private)
Date: Tue Apr 17 2001 - 00:52:31 PDT

  • Next message: Crispin Cowan: "Re: Hooking into Linux using the Linux Trace Toolkit"

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1
    
    Well, since I've been harping on micro-benchmarks, I thought I'd go
    ahead and run a few.  The basic news is that the Linux Trace Toolkit
    does impose significant overhead on simple operations; however, the
    overhead is pretty much in the noise for anything real, at least on my
    system.  Each test seemed to indicate a 1 microsecond overhead for
    simple operations, roughly.  Of course, this affects fast operations
    more than slow ones.  A "null" call (getppid) was 60% slower, and
    minimal basic file operations (stat, open, close) were 11-12% slower -
    but the overhead was only around 2-3% for fork and execve.  There also
    seems to be some significant impact on local communication latency,
    but I only ran the fast versions of the tests, so that may need more
    work.
    
    Note that these results were for the LTT built-in to the kernel.  I
    wanted to test it as a module (both loaded and unloaded), but the
    unofficial 2.4.2 patch leaves unresolved symbols with my
    configuration.
    
    What does this mean for the LSM project?  I'm not sure.  Ideally, I
    think we should shoot for at most a 20% impact on null calls, but
    really that's a judgement call - maybe someone should check with the
    kernel gurus about what would be acceptable impact.  My main thought
    is that if some bit of code is going to be accepted, it should be
    minimal, and be thoroughly benchmarked.  I would hate to see a
    beautiful design and implementation get rejected because it was too
    expensive for people who didn't care about security.
    
      --Anil
    
    
    Details on test:
      Performed on a P2/266 w/ 288M RAM  (Intel 440LX, HP Pavilion 8260)
      Debian unstable, booted in single user mode
    
      2.4.2 vs. 2.4.2 w/ patch-ltt-linux-2.4.2-vanilla-010322
      (needed to make small change to arch/i386/boot/Makefile from 2.4.3
      to fix compile bug)
    
      identical kernel options, except LTT built in for latter
      (tried to modularize, but module had unresolved symbols)
    
      tracing was tested, but was not running during tests
    
      Ran 3 tests each in succession
    
      edited output from lmbench-2beta1, three runs each
      (removed hostname and clarified kernel version, deleted
      parts that didn't seem to indicate difference, or that weren't
      completely run)
    
      lmbench options: 196M memory, no disks, no ext. host, fast memory,
      no disk tests
    
    
     Processor, Processes - times in microseconds - smaller is better
     ----------------------------------------------------------------
                  Mhz null null      open selct sig  sig  fork exec sh  
     Kernel           call  I/O stat clos TCP   inst hndl proc proc proc
     ---------   ---- ---- ---- ---- ---- ----- ---- ---- ---- ---- ----
     2.4.2-LTT   267  1.71 2.44 7.37   10    78 3.86 7.05  553 2959  17K
     2.4.2-LTT   267  1.71 2.44 7.43   10    85 3.86 7.02  552 2989  17K
     2.4.2-LTT   267  1.71 2.48 7.56   10    90 3.85 7.06  557 3012  17K
     2.4.2       267  1.07 1.59 6.58 9.07    56 3.21 6.13  535 2851  17K
     2.4.2       267  1.07 1.59 6.64 9.04    63 3.21 6.13  537 2918  17K
     2.4.2       267  1.07 1.58 6.62 9.00    56 3.21 6.13  539 2924  17K
    
     *Local* Communication latencies in microseconds - smaller is better
     -------------------------------------------------------------------
                 2p/0K  Pipe AF     UDP  RPC/   TCP  RPC/ TCP
     Kernel      ctxsw       UNIX         UDP         TCP conn
     ---------   ----- ----- ---- ----- ----- ----- ----- ----
     2.4.2-LTT   2.440    16   28    85         124        389
     2.4.2-LTT   2.660    18   29    87         127        392
     2.4.2-LTT   1.980    18   29    86         127        399
     2.4.2       1.990    13   22    72         108        361
     2.4.2       2.350    13   22    77         112        376
     2.4.2       2.270    13   23    75         115        379
    
     *Local* Communication bandwidths in MB/s - bigger is better
     -----------------------------------------------------------
                 Pipe AF    TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
     Kernel           UNIX      reread reread (libc) (hand) read write
     ---------   ---- ---- ---- ------ ------ ------ ------ ---- -----
     2.4.2-LTT   143   80   59    107    223     97     83  223   122
     2.4.2-LTT   143   75   60    106    223     97     83  223   122
     2.4.2-LTT   141   85   57    106    223     97     83  223   122
     2.4.2       147   86   60    107    223     97     83  223   123
     2.4.2       146   85   57    107    223     97     83  223   123
     2.4.2       145   86   54    106    223     97     83  223   123
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.0.4 (GNU/Linux)
    
    iEYEARECAAYFAjrb8BcACgkQXOpXEmNZ3ScQhACfagLVqCbnEkPL1RmFcLZsy/XO
    K0oAnimpgckSM3/2HVXIPdQjRXz7R+Va
    =Vugf
    -----END PGP SIGNATURE-----
    
    _______________________________________________
    linux-security-module mailing list
    linux-security-moduleat_private
    http://mail.wirex.com/mailman/listinfo/linux-security-module
    



    This archive was generated by hypermail 2b30 : Tue Apr 17 2001 - 00:54:11 PDT