[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#433793: marked as done (linux-image-2.6.18-5-vserver-amd64: Vserver sched_hard flag not working)



Your message dated Tue, 22 Jan 2008 18:01:56 +0100
with message-id <20080122170156.GA31555@wavehammer.waldi.eu.org>
and subject line Bug#433793: linux-image-2.6.18-5-vserver-amd64: Vserver sched_hard flag not working
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: linux-image-2.6.18-5-vserver-amd64
Version: 2.6.18.dfsg.1-13
Severity: important
Tags: patch

Adding the sched_hard option to a vserver's flags file and adding a
correct schedule file should limit the cpu ressources the vserver can
use. 

The fill-rate / interval ratio should define the percentage of cpu time
the vserver can use.

Setting a fill-rate / interval ratio of 10 / 100 does not limit the
vserver's cpu usage at all.

Setting a fill-rate / interval ratio of 50 / 100 halts the vserver
almost completely.

This might be an overflow issue as

cat /proc/virtual/2005/sched

quiet often shows large negative values for the 'Token:' value.

The attached patch applied to the debian kernel source fixed the issue
for me.

According to Herbert Poetzl this issue is limited to Debian kernels


-- System Information:
Debian Release: 4.0
  APT prefers proposed-updates
  APT policy: (500, 'proposed-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-minto
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages linux-image-2.6.18-5-vserver-amd64 depends on:
ii  coreutil 5.97-5.3                        The GNU core utilities
ii  debconf  1.5.11                          Debian configuration management sy
ii  e2fsprog 1.39+1.40-WIP-2006.11.14+dfsg-2 ext2 file system utilities and lib
ii  initramf 0.85h                           tools for generating an initramfs
ii  module-i 3.3-pre4-2                      tools for managing Linux kernel mo

Versions of packages linux-image-2.6.18-5-vserver-amd64 recommends:
ii  util-vserver                  0.30.212-1 user-space tools for Linux-VServer

-- debconf information:
  shared/kernel-image/really-run-bootloader: true
  linux-image-2.6.18-5-vserver-amd64/postinst/old-dir-initrd-link-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/postinst/bootloader-error-2.6.18-5-vserver-amd64:
  linux-image-2.6.18-5-vserver-amd64/postinst/depmod-error-2.6.18-5-vserver-amd64: false
  linux-image-2.6.18-5-vserver-amd64/postinst/bootloader-test-error-2.6.18-5-vserver-amd64:
  linux-image-2.6.18-5-vserver-amd64/postinst/old-initrd-link-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/postinst/create-kimage-link-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/preinst/overwriting-modules-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/postinst/kimage-is-a-directory:
  linux-image-2.6.18-5-vserver-amd64/preinst/already-running-this-2.6.18-5-vserver-amd64:
  linux-image-2.6.18-5-vserver-amd64/postinst/depmod-error-initrd-2.6.18-5-vserver-amd64: false
  linux-image-2.6.18-5-vserver-amd64/postinst/old-system-map-link-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/prerm/removing-running-kernel-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/preinst/abort-overwrite-2.6.18-5-vserver-amd64:
  linux-image-2.6.18-5-vserver-amd64/preinst/lilo-has-ramdisk:
  linux-image-2.6.18-5-vserver-amd64/prerm/would-invalidate-boot-loader-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/preinst/initrd-2.6.18-5-vserver-amd64:
  linux-image-2.6.18-5-vserver-amd64/preinst/lilo-initrd-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/preinst/elilo-initrd-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/preinst/bootloader-initrd-2.6.18-5-vserver-amd64: true
  linux-image-2.6.18-5-vserver-amd64/preinst/abort-install-2.6.18-5-vserver-amd64:
  linux-image-2.6.18-5-vserver-amd64/preinst/failed-to-move-modules-2.6.18-5-vserver-amd64:
diff -ruN linux-source-2.6.16.orig/include/linux/vserver/sched_def.h linux-source-2.6.16/include/linux/vserver/sched_def.h
--- linux-source-2.6.16.orig/include/linux/vserver/sched_def.h	2006-06-13 08:54:15.000000000 +0200
+++ linux-source-2.6.16/include/linux/vserver/sched_def.h	2006-06-13 08:56:54.000000000 +0200
@@ -21,10 +21,10 @@
 	atomic_t tokens;		/* number of CPU tokens */
 	spinlock_t tokens_lock;		/* lock for token bucket */
 
-	int fill_rate;			/* Fill rate: add X tokens... */
-	int interval;			/* Divisor:   per Y jiffies   */
-	int tokens_min;			/* Limit:     minimum for unhold */
-	int tokens_max;			/* Limit:     no more than N tokens */
+	uint32_t fill_rate;			/* Fill rate: add X tokens... */
+	uint32_t interval;			/* Divisor:   per Y jiffies   */
+	uint32_t tokens_min;			/* Limit:     minimum for unhold */
+	uint32_t tokens_max;			/* Limit:     no more than N tokens */
 	uint32_t jiffies;		/* last time accounted */
 
 	int priority_bias;		/* bias offset for priority */
diff -ruN linux-source-2.6.16.orig/kernel/vserver/sched.c linux-source-2.6.16/kernel/vserver/sched.c
--- linux-source-2.6.16.orig/kernel/vserver/sched.c	2006-06-13 08:54:18.000000000 +0200
+++ linux-source-2.6.16/kernel/vserver/sched.c	2006-06-13 08:57:40.000000000 +0200
@@ -29,7 +29,7 @@
  */
 int vx_tokens_recalc(struct vx_info *vxi)
 {
-	long delta, tokens = 0;
+	uint32_t delta, tokens = 0;
 
 	if (vx_info_flags(vxi, VXF_SCHED_PAUSE, 0))
 		/* we are paused */

--- End Message ---
--- Begin Message ---
On Thu, Jul 19, 2007 at 03:15:27PM +0200, Christoph Lukas wrote:
> Adding the sched_hard option to a vserver's flags file and adding a
> correct schedule file should limit the cpu ressources the vserver can
> use. 

The hardcpu scheduling is broken in this version and can't be fixed.

Bastian

-- 
You can't evaluate a man by logic alone.
		-- McCoy, "I, Mudd", stardate 4513.3


--- End Message ---

Reply to: