By popular demand, here is release -v22 of the CFS scheduler. It is a
full backport of the latest & greatest sched-devel.git code to
v2.6.23-rc8, v2.6.22.8, v2.6.21.7 and v2.6.20.20. The patches can be
downloaded from the usual place:http://people.redhat.com/mingo/cfs-scheduler/
This is the first time the development version of the scheduler has been
fed back into the stable backport series, so there's many changes since
v20.5:15 files changed, 1103 insertions(+), 840 deletions(-)
Even if CFS v20.5 worked well for you, please try this release too, with
a good focus on interactivity testing - because, unless some major
showstopper is found, this codebase is intended for a v2.6.24 upstream
merge.( Even a quick, subjective report of: "checked this patch, it didnt
crash and it feels like v20.5" or "laggier than v20.5" or "feels
better than v20.5" is useful to us and enables us to judge the general
direction of interactivity. )The changes in v22 consist of lots of mostly small enhancements,
speedups, interactivity improvements, debug enhancements and tidy-ups -
many of which can be user-visible. (These enhancements have been
contributed by many people - see the changelog below and the git tree
for detailed credits.)The biggest individual new feature is per UID group scheduling, written
by Srivatsa Vaddagiri, which can be enabled via the
CONFIG_FAIR_USER_SCHED=y .config option. With this feature enabled, each
user gets a fair share of the CPU time, regardless of how many tasks
each user is running.For example, it took me 0.1 seconds to log in over ssh as root on a
testbox that was running a kernel with per UID group scheduling enabled:$ time ssh root@testbox /bin/true
real 0m0.125s
user 0m0.013s
sys 0m0.011sWhich testbox had a system load of 1000.17 at this time, due to a rogue
runaway workload of one thousand (!) non-reniced infinite loops:top - 14:34:05 up 30 min, 3 users, load average: 1000.17...
Better late than never...
Hi Ingo & cie.,
I tested CFS v22 on a 2.6.20.10 and it is working like a charm. I used to have a few lags once in a while with v20.5 on a 2.6.20.6 kernel but they simply vanished with the v22 (although I'm currenctly mostly testing on etch with xorg 7.1 instead of sarge with xfree 4.3 so this might also have an effect...)
It seems stable enough to put it in operation by next week on all our workstations.
This is great work, thx to all CFS contributors.
- vin
-
El Wed, 26 Sep 2007 13:13:57 +0200
I feel it better than 20.5 but the later is more stable. Let me explain.
I patched a 2.6.22.9 kernel with both versions 22 and 20.5[1]. With the 22
version if i lock the screen (run screensaver) or i try to run a wine program
i experience a hard lock up no keyboard or mouse and i have to reboot the
machine (i can not try to access it via ssh because i do not have a second
machine).
I run with the nvidia kernel module so I know my report is useless but just
for the record...
Here it is my config:[1] Hand edited the Makefile hunk no other rejects
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22.9-cfs-v20.5
# Fri Sep 28 16:12:07 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15
# CONFIG_CPUSETS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
# CONFIG_UID16 is not set
# CONFIG_SYSCTL_SYSCALL is not set
# CONFIG_KALLS...
hm. There are no similar reports so far. Could you try to run the wine
program from a VGA text console (first do 'xhost +' in an xterm under X
and then 'export DISPLAY=:0' in the text console) and see whether
anything gets output to that console? Also enable nmi_watchdog=2 - which
could print a backtrace of the point of the hard lockup.but in general there's nothing scheduler-specific about screensavers or
wine - but it could be related to 3D mode of the chip (hence related to
the nvidia module) - do you get a similar lockup if you try to run
'glxgears'?Ingo
-
El Sun, 30 Sep 2007 17:26:22 +0200
Ignore the last mail there was no need to use pictures this no an oops on
boot ;)This is the back trace
Oct 2 17:37:13 localhost kernel: [ 886.216868] BUG: unable to handle kernel NULL pointer dereference at virtual address 0000012c
Oct 2 17:37:13 localhost kernel: [ 886.216874] printing eip:
Oct 2 17:37:13 localhost kernel: [ 886.216876] f9374d0c
Oct 2 17:37:13 localhost kernel: [ 886.216877] *pde = 00000000
Oct 2 17:37:13 localhost kernel: [ 886.216880] Oops: 0002 [#1]
Oct 2 17:37:13 localhost kernel: [ 886.216881] PREEMPT SMP
Oct 2 17:37:13 localhost kernel: [ 886.216884] Modules linked in: nls_cp850 isofs udf nls_utf8 ntfs binfmt_misc rfcomm l2cap bluetooth ipt_ULOG x_tables jfs ipv6 dm_crypt af_packet kvm_amd kvm fuse w83627ehf hwmon_vid i2c_dev lp snd_mpu401 snd_mpu401_uart snd_hda_intel snd_pcm_oss snd_mixer_oss snd_seq_dummy snd_pcm snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer nvidia(P) snd_seq_device usbhid i2c_ali15x3 i2c_ali1535 8250_pnp usblp ff_memless uli526x snd i2c_core 8250 serial_core button ali_agp parport_pc parport k8temp hwmon pcspkr evdev rtc snd_page_alloc rt2500 soundcore sg floppy sr_mod raid10 cdrom sd_mod ehci_hcd ohci_hcd ata_generic usbcore raid456 async_xor async_memcpy async_tx xor raid1 raid0 multipath linear md_mod thermal processor fan unix dm_mod
Oct 2 17:37:13 localhost kernel: [ 886.216933] CPU: 0
Oct 2 17:37:13 localhost kernel: [ 886.216934] EIP: 0060:[<f9374d0c>] Tainted: P VLI
Oct 2 17:37:13 localhost kernel: [ 886.216935] EFLAGS: 00010246 (2.6.23-rc9-cfs-v22-dirty #82)
Oct 2 17:37:13 localhost kernel: [ 886.217129] EIP is at os_set_mlock_capability+0xc/0x30 [nvidia]
Oct 2 17:37:13 localhost kernel: [ 886.217131] eax: 00000000 ebx: 00000000 ecx: 00000050 edx: 00000202
Oct 2 17:37:13 localhost kernel: [ 886.217134] esi: f74c3000 edi: f749cc00 ebp: df4b3ff0 esp: d319bed4
Oct 2 17:37:13 localhost kernel: [ 886.217136] ds: ...
I have seen that twice with v20.5 under 2.6.22.7/.8. Didn't see it yet with
v22. xterm would get pissed if I tried to "secure keyboard", so something
stole the keyboard focus and wouldn't give it back to xorg. Maybe a locking
bug in xorg somewhere?Anyway, my kernel is NOT tainted, so rest assured that at least this one is
not nVidia's fault.BTW, v20.5 in 2.6.21.7 would sometimes cause dmcrypt to oops when first
mounting a LUKS volume if there was some non-extra-light disk activity going
on. Probably something missing in the backport to 2.6.21...Sorry, days down here have been very busy, so I didn't have time to send a
proper bug report.--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
-
El Fri, 28 Sep 2007 23:20:13 -0300
I can add another data point 2.6.23-rc8-cfs-v22-g1bef7dc0-dirty does not have
any problem with wine or xscreensaver is working fine. Again i use nvidia and
a 3 party gpl driver for my wifi rt2500 which have compiled fine with the new
kernel (surprise surprise!)
If you need any more info just ask.Thanks
P.S: I use ubuntu feisty fwiw
--
Nunca discutas con un idiota. Al final te hacen rebajarte a su nivel y entonces
te acaban ganando debido a su mayor experiencia.-
Compilation [against 2.6.20.20] fails with
buildfarm linux-2.6.20 # make
CHK include/linux/version.h
CHK include/linux/utsrelease.h
CHK include/linux/compile.h
CC kernel/sched.o
In file included from kernel/sched.c:850:
kernel/sched_fair.c:49: error: sysctl_sched_nr_latency causes a section type
conflict
make[1]: *** [kernel/sched.o] Error 1
make: *** [kernel] Error 2@kernel/sched_fair.c
-const_debug unsigned int sysctl_sched_nr_latency __read_mostly = 20;
+const_debug unsigned int sysctl_sched_nr_latency = 20;seems solve that issue but i'm not sure this is the right thing to do or
not :)Cheers
--
S.Çağlar Onur <caglar@pardus.org.tr>
http://cekirdek.pardus.org.tr/~caglar/Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
-
oops, indeed! This happens with certain .config combinations only and it
your fix is the right one - and i've updated the patches with this small
fix. Anyone who hits this issue should re-download the same patch once
more, or should apply the small patch below.Ingo
Index: linux/kernel/sched_fair.c
===================================================================
--- linux.orig/kernel/sched_fair.c
+++ linux/kernel/sched_fair.c
@@ -46,7 +46,7 @@ const_debug unsigned int sysctl_sched_ch
* Minimal preemption granularity for CPU-bound tasks:
* (default: 2 msec, units: nanoseconds)
*/
-const_debug unsigned int sysctl_sched_nr_latency __read_mostly = 20;
+const_debug unsigned int sysctl_sched_nr_latency = 20;/*
* sys_sched_yield() compat mode
-
| Greg KH | Re: Announce: Linux-next (Or Andrew's dream :-)) |
| Greg KH | [patch 26/73] NET: Correct two mistaken skb_reset_mac_header() conversions. |
| Greg Kroah-Hartman | [PATCH 007/196] Chinese: add translation of stable_kernel_rules.txt |
| Alan Cox | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
git: | |
| Alexey Dobriyan | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Andrew Morton | Re: [BUG] New Kernel Bugs |
