You are not logged in.
This is very interesting.
How about some benchmarks from our own Archlinux users?
Offline
^^
there is some on the first page
Offline
After playing for a couple of hours last night, I did get that strange, unkillable process. No process in particular. Once it was firefox, once it was gcc while compiling.
Offline
i've been booted in bfs for two days now. its been really nice actually. core2quad 2.6; i was just recompiling the kernel as a test, all four cores at 100%, video playing in mplayer, mpd running, six or seven terms running the usual (mutt/ncmcpp/irssi), a few uzbls open, xcompmgr running, xmonad switching workspaces / moving windows, all this at once and not one stutter, glitch, or hiccup.
it was nice to see absolutely 0 lack of responsiveness with 100% usage on all four cores. and i haven't noticed any bugs either. i think i might just stay in this kernel for a while.
just my experience so far, YMMV.
//github/
Offline
I too have been using kernel26-bfs for a few days now... and although I never felt any stutters before the switch (except with audio when I was using Pulseaudio)... my system seems just as responsive as it was... so it definately not a regression... it perhaps could be faster but I can't tell much of a difference.
Offline
I tried this out for an hour or so - things might have been a bit snappier, but nothing drastic, and then I ended up with an unkillable firefox process and went back to the normal kernel.
Offline
just FTR, not one single problem (and in particular, no unkillable task) with 2.6.31-rc9-sched-bfs-210. using it on 2 machines (home+work), works great.
Offline
Perhaps I am missing something - but I tried patching my 2.6.31-rc9 source with the 2.6.31-rc9-sched-bfs-210.patch by doing this in my kernelbuild dir:
patch -p1 < ../2.6.31-rc9-sched-bfs-210.patch
But I can't select it from the menuconfig - is this normal?
Last edited by gonX (2009-09-08 16:29:18)
since 2009
Offline
Perhaps I am missing something - but I tried patching my 2.6.31-rc9 source with the 2.6.31-rc9-sched-bfs-210.patch by doing this in my kernelbuild dir:
patch -p1 < ../2.6.31-rc9-sched-bfs-210.patch
But I can't select it from the menuconfig - is this normal?
you don't have to select anything actually so yes, that's normal. IIRC, only zen-sources will let you chose between cfs and bfs.
Offline
Hm, anyone running this on x64 ? I get the boot hang on SCSI ..
also theres a fair chunk of discussion over at Zen Thread
Offline
Hm, anyone running this on x64 ? I get the boot hang on SCSI ..
running a 64bit kernel here (with 32bit userland but that shouldn't make any difference)
Offline
Yeah I ended up patching it without problems, but it randomly gets stuck on detecting my harddrives during boot. Also, adding "elevator=bfs" to the kernel line gives me "Scheduler 'bfs' does not exist" or something in the lines of that. I run mdadm on my root device if that makes any difference.
*EDIT*
I did some looking around and it seems that performance counters need to be disabled - these were on, and I'm in the process of recompiling my kernel now
Last edited by gonX (2009-09-08 17:47:41)
since 2009
Offline
Also, adding "elevator=bfs" to the kernel line gives me "Scheduler 'bfs' does not exist" or something in the lines of that.
this option is for IO schedulers, not CPU schedulers, you don't have to do anything expect patching the source and you'll be using bfs.
Offline
gonX wrote:Also, adding "elevator=bfs" to the kernel line gives me "Scheduler 'bfs' does not exist" or something in the lines of that.
this option is for IO schedulers, not CPU schedulers, you don't have to do anything expect patching the source and you'll be using bfs.
OH, haha! silly me.
Well I got it running, after forcing my system to use PATA, booting a livecd and remaking the initrd - so far I'm not getting any xruns at all in JACK while running BOINC in the background - at the same settings I'd be getting a few xruns on with the standard kernel.
since 2009
Offline
hehe... it's already there - although the comment is not encouraging.
Anyone that has this compiled for i686, can they post a MediaFire link or something. I tried to compile my own but got some errors and don't want to wait another 3 hours on this slow machine.
Offline
Perhaps I am missing something - but I tried patching my 2.6.31-rc9 source with the 2.6.31-rc9-sched-bfs-210.patch by doing this in my kernelbuild dir:
patch -p1 < ../2.6.31-rc9-sched-bfs-210.patch
But I can't select it from the menuconfig - is this normal?
If you look at the patch, you'll see Con happily tosses out almost all the scheduler stuff that is in the mainline tree. So no, it's not like you have any choice .
Check what it says at the start of the patch:
Documentation/sysctl/kernel.txt | 25
fs/pipe.c | 4
fs/proc/base.c | 2
include/linux/init_task.h | 15
include/linux/ioprio.h | 2
include/linux/sched.h | 193
init/Kconfig | 61
kernel/Makefile | 4
kernel/delayacct.c | 2
kernel/exit.c | 6
kernel/fork.c | 2
kernel/kthread.c | 4
kernel/posix-cpu-timers.c | 12
kernel/sched.c |10241 ----------------------------------------
kernel/sched_bfs.c | 5793 ++++++++++++++++++++++
kernel/sched_debug.c | 509 -
kernel/sched_fair.c | 1835 -------
kernel/sched_idletask.c | 128
kernel/sched_rt.c | 1771 ------
kernel/sysctl.c | 145
kernel/trace/trace.c | 4
kernel/workqueue.c | 2
mm/oom_kill.c | 2
23 files changed, 5896 insertions(+), 14866 deletions(-)
Got Leenucks? :: Arch: Power in simplicity :: Get Counted! Registered Linux User #392717 :: Blog thingy
Offline
Huh. The old patch just took out everything in CFS (sched.c) and moved it to sched_cfs.c, made a new sched.c and created sched_bfs.c as the BFS scheduler. In other words, a clean approach allowing you to choose between the schedulers. Looks like this approach got old to maintain.
Offline
i just built 2.6.31-rc9-git1 with the patch applied...gnome never got to load. stuck right after the wallpaper. everything else worked ok (i just went to a term and rebooted)..
any clues? PKGBUILD follows
# $Id: PKGBUILD 48125 2009-07-31 18:27:10Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Maintainer: Thomas Baechler <thomas@archlinux.org>
# pkgname=kernel26 # Build stock -ARCH kernel
pkgname=kernel26-bfs # Build kernel with a different name
_kernelname=${pkgname#kernel26}
_basekernel=2.6.30
pkgver=2.6.31
pkgrel=1
_patchname="patch-${pkgver}-rc9"
_gitver=1
pkgdesc="The Linux Kernel and modules"
arch=(i686 x86_64)
license=('GPL2')
groups=('base')
url="http://www.kernel.org"
backup=(etc/mkinitcpio.d/${pkgname}.preset)
depends=('coreutils' 'kernel26-firmware>=2.6.30' 'module-init-tools' 'mkinitcpio>=0.5.20')
# pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now
# nforce package support was abandoned by nvidia, kernel modules should cover everything now.
# kernel24 support is dropped since glibc24
replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
'alsa-driver' 'ieee80211' 'hostap-driver26'
'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs'
'gspcav1' 'atl2' 'wlan-ng26' 'aufs' 'rt2500')
install=kernel26.install
source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2
http://kernel.org/pub/linux/kernel/v2.6/testing/${_patchname}.bz2
http://kernel.org/pub/linux/kernel/v2.6/snapshots/${_patchname}-git${_gitver}.bz2
#patches i need
patch-logo-arch
2.6.31-rc9-sched-bfs-210.patch
quirks-h12y.patch
# the main kernel config files
config config.x86_64
# standard config files for mkinitcpio ramdisk
kernel26.preset)
optdepends=('crda: to set the correct wireless channels of your country')
build() {
KARCH=x86
cd ${srcdir}/linux-$_basekernel
# Add -ARCH patches
# See http://projects.archlinux.org/git/?p=linux-2.6-ARCH.git;a=summary
patch -Np1 -i ${srcdir}/${_patchname} || return 1
patch -Np1 -i ${srcdir}/${_patchname}-git${_gitver} || return 1
##BRAIN FUCK
patch -Np1 -i ${srcdir}/2.6.31-rc9-sched-bfs-210.patch
# patch -Np1 -i ${srcdir}/patch-logo-arch || return 1
patch -Np1 -i ${srcdir}/quirks-h12y.patch || return 1
if [ "$CARCH" = "x86_64" ]; then
cat ../config.x86_64 >./.config
else
cat ../config >./.config
fi
if [ "${_kernelname}" != "" ]; then
sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
fi
# get kernel version
make prepare
_kernver="$(make kernelrelease)"
# load configuration
# Configure the kernel. Replace the line below with one of your choice.
#make menuconfig # CLI menu for configuration
#make xconfig # X-based configuration
#make oldconfig # using old config from previous kernel version
# ... or manually edit .config
####################
# stop here
# this is useful to configure the kernel
#msg "Stopping build"
#return 1
####################
yes "" | make config
# build!
make bzImage modules || return 1
mkdir -p ${pkgdir}/{lib/modules,boot}
make INSTALL_MOD_PATH=${pkgdir} modules_install || return 1
cp System.map ${pkgdir}/boot/System.map26${_kernelname}
cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26${_kernelname}
install -D -m644 Makefile \
${pkgdir}/usr/src/linux-${_kernver}/Makefile
install -D -m644 kernel/Makefile \
${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile
install -D -m644 .config \
${pkgdir}/usr/src/linux-${_kernver}/.config
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include
for i in acpi asm-{generic,x86} config linux math-emu media net pcmcia scsi sound trace video; do
cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/
done
# copy arch includes for external modules
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
cp -a arch/x86/include ${pkgdir}/usr/src/linux-${_kernver}/arch/x86/
# copy files necessary for later builds, like nvidia and vmware
cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver}
cp -a scripts ${pkgdir}/usr/src/linux-${_kernver}
# fix permissions on scripts dir
chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts
#mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel
cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
if [ "$CARCH" = "i686" ]; then
cp arch/$KARCH/Makefile_32.cpu ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
fi
cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
# add headers for lirc package
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video
cp drivers/media/video/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/
for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo zc0301; do
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
done
# add docbook makefile
install -D -m644 Documentation/DocBook/Makefile \
${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile
# add dm headers
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
cp drivers/md/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
# add inotify.h
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux
cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/
# add wireless headers
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
# add dvb headers for external modules
# in reference to:
# http://bugs.archlinux.org/task/9912
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core
cp drivers/media/dvb/dvb-core/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/
# add dvb headers for external modules
# in reference to:
# http://bugs.archlinux.org/task/11194
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
# in reference to:
# http://bugs.archlinux.org/task/13146
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
cp drivers/media/dvb/frontends/lgdt330x.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
cp drivers/media/video/msp3400-driver.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
# add xfs and shmem for aufs building
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm
cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
# add headers vor virtualbox
# in reference to:
# http://bugs.archlinux.org/task/14568
cp -a include/drm $pkgdir/usr/src/linux-${_kernver}/include/
# add headers for broadcom wl
# in reference to:
# http://bugs.archlinux.org/task/14568
cp -a include/trace $pkgdir/usr/src/linux-${_kernver}/include/
# add vmlinux
cp vmlinux ${pkgdir}/usr/src/linux-${_kernver}
# copy in Kconfig files
for i in `find . -name "Kconfig*"`; do
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i
done
cd ${pkgdir}/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm
chown -R root.root ${pkgdir}/usr/src/linux-${_kernver}
find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
cd ${pkgdir}/lib/modules/${_kernver} && \
(rm -f source build; ln -sf ../../../usr/src/linux-${_kernver} build)
# install fallback mkinitcpio.conf file and preset file for kernel
install -m644 -D ${srcdir}/kernel26.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset || return 1
# set correct depmod command for install
sed \
-e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
-e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
-i $startdir/kernel26.install
sed \
-e "s|source .*|source /etc/mkinitcpio.d/kernel26${_kernelname}.kver|g" \
-e "s|default_image=.*|default_image=\"/boot/${pkgname}.img\"|g" \
-e "s|fallback_image=.*|fallback_image=\"/boot/${pkgname}-fallback.img\"|g" \
-i ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset
echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${startdir}/pkg/etc/mkinitcpio.d/${pkgname}.kver
# remove unneeded architectures
rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
# remove the firmware
rm -rf ${pkgdir}/lib/firmware
}
md5sums=('7a80058a6382e5108cdb5554d1609615'
'6bb612cbd006be9bdfaa6ff29ce090ea'
'157d7877a9425f5effbb4a150121ddd8'
'8ab65785c335b7cd8d7d5d829fc215c3'
'3f462de28e625ce858cca4514e235f6a'
'759ea1da1c1697c507a2c7c8779ca1c5'
'bac951d734bbfb9e4f57cf26d24fefbe'
'cdf9b2696a101d2d69bcb975ab805051'
'25584700a0a679542929c4bed31433b6')
Offline
CC kernel/sched_bfs.o
kernel/sched_bfs.c: In function 'init_numa_sched_groups_power':
kernel/sched_bfs.c:4844: error: implicit declaration of function 'group_first_cpu'
kernel/sched_bfs.c: At top level:
kernel/sched_bfs.c:4905: error: conflicting types for 'group_first_cpu'
kernel/sched_bfs.c:4844: note: previous implicit declaration of 'group_first_cpu' was here
make[1]: *** [kernel/sched_bfs.o] Error 1
make: *** [kernel] Error 2
Any one have any ideas what might be causing this?
Offline
could you please pastebin your kernel config?
Offline
Whoa, Ingo completely missed the point. His tests all benchmark performance attributes, throughput, computation, etc. BFS is not designed for performance.
That's like claiming my 93 Toyota Camry is useless because it lacks the acceleration of a Porsche. Despite it having better range, reliability, fuel economy, lower running costs, self servicable, cheaper parts, etc.
Last edited by iphitus (2009-09-09 03:11:22)
Offline
i *think* BFS was designed to spam the LKML
Offline
Very possible
Allan-Volunteer on the (topic being discussed) mailn lists. You never get the people who matters attention on the forums.
jasonwryan-Installing Arch is a measure of your literacy. Maintaining Arch is a measure of your diligence. Contributing to Arch is a measure of your competence.
Griemak-Bleeding edge, not bleeding flat. Edge denotes falls will occur from time to time. Bring your own parachute.
Offline
Testing it right now and it does seem to make a differnence here. Runnnig HD youtube videos + opening a few tabs in firefox is something that used to reliably produce stutter, with bfs it's perfectly smooth. Still, i'll have to think about some more standardized tests.
Offline