Announcement

Collapse
No announcement yet.

Benchmarking The Linux 2.6.24 Through 2.6.29 Kernels

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by edgan View Post
    Was the kernel configuration identical between the kernel releases?
    Thank you, was just about to ask about this. If you're testing kernels, you really should be building them from source and documenting the configuration changes between them.

    Comment


    • #17
      Configuration differences

      I have confirmed there are configuration differences between Ubuntu mainline ppa kernels. I compared x86_64 versions of 2.6.28 and 2.6.29 with the first command below. I then reduced it down to a more basic form with the second command.

      Some of the new options enabled seem to be debugging options.

      diff -uN /boot/config-2.6.28-020628-generic /boot/config=2.6.29-020629-generic > config.diff

      grep -v "^ " config.diff | grep -v @@ | grep -v '\-\-\-' | grep -v '+++' | grep -v '\#'

      -CONFIG_ACPI_SYSTEM=y
      +CONFIG_ACPI_TOSHIBA=m
      +CONFIG_ARCH_WANT_FRAME_POINTERS=y
      -CONFIG_AT24=m
      -CONFIG_BACKLIGHT_CORGI=m
      +CONFIG_BACKLIGHT_GENERIC=y
      +CONFIG_CHELSIO_T3_DEPENDS=y
      +CONFIG_COMPAT_NET_DEV_OPS=y
      +CONFIG_DIRECT_GBPAGES=y
      +CONFIG_DVB_STB0899=m
      +CONFIG_DVB_STB6100=m
      +CONFIG_DVB_TDA8261=m
      +CONFIG_DVB_TUNER_CX24113=m
      -CONFIG_EEPRO100=m
      -CONFIG_FUSE_FS=m
      +CONFIG_FUSE_FS=y
      +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
      +CONFIG_GENERIC_FIND_LAST_BIT=y
      +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
      +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
      +CONFIG_HAVE_HW_BRANCH_TRACER=y
      +CONFIG_HAVE_MMIOTRACE_SUPPORT=y
      +CONFIG_HERMES_CACHE_FW_ON_INIT=y
      -CONFIG_HID_BRIGHT=m
      -CONFIG_HID_DELL=m
      +CONFIG_HID_NTRIG=m
      +CONFIG_HID_TOPSEED=m
      -CONFIG_IEEE80211=m
      -CONFIG_IEEE80211_CRYPT_CCMP=m
      -CONFIG_IEEE80211_CRYPT_TKIP=m
      -CONFIG_IEEE80211_CRYPT_WEP=m
      +CONFIG_IOMMU_API=y
      -CONFIG_IP_DCCP_ACKVEC=y
      -CONFIG_IP_DCCP_CCID2=m
      -CONFIG_IP_DCCP_CCID3=m
      +CONFIG_IP_DCCP_CCID3=y
      -CONFIG_IP_DCCP_TFRC_LIB=m
      +CONFIG_IP_DCCP_TFRC_LIB=y
      -CONFIG_KMOD=y
      -CONFIG_LEDS_HP_DISK=m
      +CONFIG_LIB80211=m
      +CONFIG_LIB80211_CRYPT_CCMP=m
      +CONFIG_LIB80211_CRYPT_TKIP=m
      +CONFIG_LIB80211_CRYPT_WEP=m
      +CONFIG_LIBIPW=m
      -CONFIG_MAC80211_RC_DEFAULT="pid"
      -CONFIG_MAC80211_RC_DEFAULT_PID=y
      +CONFIG_MAC80211_RC_DEFAULT="minstrel"
      +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
      -CONFIG_MAC80211_RC_PID=y
      +CONFIG_MFD_CORE=m
      +CONFIG_MISC_FILESYSTEMS=y
      -CONFIG_MTD_PHYSMAP_BANKWIDTH=2
      -CONFIG_MTD_PHYSMAP_LEN=0x4000000
      -CONFIG_MTD_PHYSMAP_START=0x8000000
      +CONFIG_QUOTA_TREE=m
      -CONFIG_RESOURCES_64BIT=y
      +CONFIG_SCHED_OMIT_FRAME_POINTER=y
      -CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
      +CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
      -CONFIG_SENSORS_EEPROM=m
      +CONFIG_SFC_MTD=y
      +CONFIG_SND_HDA_CODEC_INTELHDMI=y
      +CONFIG_SND_HDA_ELD=y
      +CONFIG_SND_JACK=y
      +CONFIG_SND_SOC_I2C_AND_SPI=m
      +CONFIG_SND_SOC_L3=m
      +CONFIG_SND_SOC_PCM3008=m
      +CONFIG_SND_SOC_UDA134X=m
      +CONFIG_SND_SOC_WM8350=m
      +CONFIG_SND_SOC_WM8728=m
      -CONFIG_SPI_AT25=m
      +CONFIG_SQUASHFS=m
      +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
      +CONFIG_TOUCHSCREEN_DA9034=y
      -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
      +CONFIG_UEVENT_HELPER_PATH=""
      +CONFIG_USB_DUMMY_HCD=m
      -CONFIG_USB_EHCI_HCD=m
      +CONFIG_USB_EHCI_HCD=y
      +CONFIG_USB_GADGET_DUMMY_HCD=y
      -CONFIG_USB_GADGET_NET2280=y
      -CONFIG_USB_KBD=m
      -CONFIG_USB_MOUSE=m
      -CONFIG_USB_NET2280=m
      -CONFIG_USB_OHCI_HCD=m
      +CONFIG_USB_OHCI_HCD=y
      -CONFIG_USB_STORAGE_DPCM=y
      -CONFIG_USB_UHCI_HCD=m
      +CONFIG_USB_UHCI_HCD=y
      +CONFIG_USER_STACKTRACE_SUPPORT=y
      -CONFIG_VIDEOBUF_DMA_CONTIG=m
      +CONFIG_VIDEO_BT866=m
      +CONFIG_VIDEO_CX88_MPEG=m
      -CONFIG_VIDEO_SH_MOBILE_CEU=m
      -CONFIG_WIRELESS_OLD_REGULATORY=y
      -CONFIG_X86_ACPI_CPUFREQ=m
      +CONFIG_X86_ACPI_CPUFREQ=y
      +CONFIG_X86_DS=y
      +CONFIG_X86_PLATFORM_DEVICES=y
      -CONFIG_X86_POWERNOW_K8=m
      +CONFIG_X86_POWERNOW_K8=y
      +CONFIG_X86_PTRACE_BTS=y
      -CONFIG_X86_SPEEDSTEP_CENTRINO=m
      +CONFIG_X86_SPEEDSTEP_CENTRINO=y
      +CONFIG_XENFS=y
      +CONFIG_XEN_COMPAT_XENFS=y

      Comment


      • #18
        The new U kernel have got speedstep active by default even without manageing tool, but thats not really problematic, you could disable EIST in bios or you can use a gui tool (or echo to set the system to performance mode for benchmarking. The rest is not important. Saidly mainline kernels do not provide aufs or squashfs modules (2.6.29 has at least a not backwards compatible squashfs 4.0), so basically you would need squashfs 4 for all older kernels + aufs for all to combine em into a multi kernel live image for better testing.

        Comment


        • #19
          Originally posted by Kano View Post
          The new U kernel have got speedstep active by default even without manageing tool, but thats not really problematic, you could disable EIST in bios
          On all Phoronix desktop test machines, EIST is disabled from the BIOS.
          Michael Larabel
          http://www.michaellarabel.com/

          Comment


          • #20
            From the GraphicsMagick maintainer:

            ###


            As far as Linux kernel improvements go, there is no telling what the cause of the boost is, but the most obvious improvements would be to make best use of the caches by carefully managing thread affinity, and by minimizing unnecessary cache thrashing during synchronization. Other improvements could be related to scheduling floating point operations.

            Most open source applications are traditional single threaded. People in research labs may develop multi-thread programs but they are not broadly available or easy to use. Applications like GraphicsMagick make OpenMP generally available to test with and easy to use. It is a good test case for Linux kernel developers. Recently the valgrind author was using GraphicsMagick as a test case (GraphicsMagick did good).

            It shouldn't be surprising that OpenMP performance improves in recent kernels.
            Michael Larabel
            http://www.michaellarabel.com/

            Comment


            • #21
              I only tested OpenSSL, because i know of the extreme diffs between 32+64 bit. But in your article you stated that you used 64 bit for all. Then those values are extra low.

              Comment


              • #22
                I would be very interested to know if the current applications (graphmagik ffmpeg, etc.) were compiled with the compiler in use at the time the kernel was created.

                I understand, that Intel has an optimising C compiler that produces substantially faster code then does gcc. Since the bulk of installations are on Intel / AMD platforms, it would be interesting to have a comparison of the last kernel and one compiled with Intel's C compiler.

                Comment


                • #23
                  Originally posted by lsatenstein View Post
                  I understand, that Intel has an optimising C compiler that produces substantially faster code then does gcc.
                  I think you'd be surprised at the performance difference between GCC 4.x and ICPC 10.x compiled code. It's not as huge as you might expect - in mixed workloads, I've typically seen anything from GCC being a couple of percent faster to 5-6% slower. I'm certain that there are cases where icpc does outperform GCC by a larger margin but I've not seen it on large projects. GCC has come a long way towards smarter and more extensive optimisation in the 4.x series.

                  Comment


                  • #24
                    So last live test i made was using 2.6.29 - 32 bit, but even that was only 35.2. High values only possible with 64 bit, but so low values that you have got for OpenSSL are more or less impossible for a 64 bit system.

                    Comment


                    • #25
                      Originally posted by Nexus6 View Post
                      I'm certain that there are cases where icc does outperform GCC by a larger margin but I've not seen it on large projects.
                      Large projects like FFmpeg?

                      Comment


                      • #26
                        Originally posted by Wyatt View Post
                        Large projects like FFmpeg?
                        That test had icc compiling to the 686 target and gcc targeting 486 (i think) so it's not exactly a fair test. Although it wouldn't surprise me if it did still win by a big margin.

                        Comment


                        • #27
                          Originally posted by smitty3268 View Post
                          That test had icc compiling to the 686 target and gcc targeting 486 (i think) so it's not exactly a fair test. Although it wouldn't surprise me if it did still win by a big margin.
                          Turns out Mike noticed that, too. Seems my bookmark is obseleted by this third post; looks like if you feel like running in the danger zone, there's some improvements in line for GCC. But I don't know many people that commonly run trunk code for their compiler.... :/

                          Comment

                          Working...
                          X