the correct link , to this is :
http://www.kernel.org/pub/linux/kernel/people/rml/variable-HZ/v2.4/

any future updates to variable hz will be found there.

Matt H.


On Thursday 16 October 2003 05:13 pm, [EMAIL PROTECTED] wrote:
> Here is the patch that I found. It was created by Rober Love... Here is
> the link to the article:
>
> http://www.geocrawler.com/mail/thread.php3?subject=%5BPATCH%5D+2.4%3A+varia
>ble+HZ&list=9215
>
>
>
> diff -urN linux-2.4.20-pre10-ac2/arch/i386/config.in
> linux/arch/i386/config.in
> --- linux-2.4.20-pre10-ac2/arch/i386/config.in        2002-10-14
> 01:43:05.000000000 -0400
> +++ linux/arch/i386/config.in 2002-10-15 02:41:39.000000000 -0400
> @@ -244,6 +244,7 @@
>  mainmenu_option next_comment
>  comment 'General setup'
>
> +int 'Timer frequency (HZ) (100)' CONFIG_HZ 100
>  bool 'Networking support' CONFIG_NET
>
>  # Visual Workstation support is utterly broken.
> diff -urN linux-2.4.20-pre10-ac2/Documentation/Configure.help
> linux/Documentation/Configure.help
> --- linux-2.4.20-pre10-ac2/Documentation/Configure.help       2002-10-14
> 01:43:06.000000000
> -0400
> +++ linux/Documentation/Configure.help        2002-10-15 02:41:40.000000000 -0400
> @@ -2411,6 +2411,18 @@
>    behaviour is platform-dependent, but normally the flash frequency is
>    a hyperbolic function of the 5-minute load average.
>
> +Timer frequency
> +CONFIG_HZ
> +  The frequency the system timer interrupt pops.  Higher tick values
> provide +  improved granularity of timers, improved select() and poll()
> performance, +  and lower scheduling latency.  Higher values, however,
> increase interrupt +  overhead and will allow jiffie wraparound sooner.
> For compatibility, the +  tick count is always exported as if HZ=100.
> +
> +  The default value, which was the value for all of eternity, is 100.  If
> +  you are looking to provide better timer granularity or increased desktop
> +  performance, try 500 or 1000.  In unsure, go with the default of 100.
> +
>  Networking support
>  CONFIG_NET
>    Unless you really know what you are doing, you should say Y here.
> diff -urN linux-2.4.20-pre10-ac2/fs/proc/array.c linux/fs/proc/array.c
> --- linux-2.4.20-pre10-ac2/fs/proc/array.c    2002-10-14 01:43:10.000000000
> -0400
> +++ linux/fs/proc/array.c     2002-10-14 18:24:48.000000000 -0400
> @@ -360,15 +360,15 @@
>               task->cmin_flt,
>               task->maj_flt,
>               task->cmaj_flt,
> -             task->times.tms_utime,
> -             task->times.tms_stime,
> -             task->times.tms_cutime,
> -             task->times.tms_cstime,
> +             jiffies_to_clock_t(task->times.tms_utime),
> +             jiffies_to_clock_t(task->times.tms_stime),
> +             jiffies_to_clock_t(task->times.tms_cutime),
> +             jiffies_to_clock_t(task->times.tms_cstime),
>               priority,
>               nice,
>               0UL /* removed */,
> -             task->it_real_value,
> -             task->start_time,
> +             jiffies_to_clock_t(task->it_real_value),
> +             jiffies_to_clock_t(task->start_time),
>               vsize,
>               mm ? mm->rss : 0, /* you might want to shift this left 3 */
>               task->rlim[RLIMIT_RSS].rlim_cur,
> @@ -686,14 +686,14 @@
>
>       len = sprintf(buffer,
>               "cpu  %lu %lu\n",
> -             task->times.tms_utime,
> -             task->times.tms_stime);
> +             jiffies_to_clock_t(task->times.tms_utime),
> +             jiffies_to_clock_t(task->times.tms_stime));
>
>       for (i = 0 ; i < smp_num_cpus; i++)
>               len += sprintf(buffer + len, "cpu%d %lu %lu\n",
>                       i,
> -                     task->per_cpu_utime[cpu_logical_map(i)],
> -                     task->per_cpu_stime[cpu_logical_map(i)]);
> +                     jiffies_to_clock_t(task->per_cpu_utime[cpu_logical_map(i)]),
> +                     jiffies_to_clock_t(task->per_cpu_stime[cpu_logical_map(i)]));
>
>       return len;
>  }
> diff -urN linux-2.4.20-pre10-ac2/fs/proc/proc_misc.c
> linux/fs/proc/proc_misc.c
> --- linux-2.4.20-pre10-ac2/fs/proc/proc_misc.c        2002-10-14
> 01:43:10.000000000 -0400
> +++ linux/fs/proc/proc_misc.c 2002-10-15 02:29:21.000000000 -0400
> @@ -317,16 +317,16 @@
>  {
>       int i, len = 0;
>       extern unsigned long total_forks;
> -     unsigned long jif = jiffies;
> +     unsigned long jif = jiffies_to_clock_t(jiffies);
>       unsigned int sum = 0, user = 0, nice = 0, system = 0;
>       int major, disk;
>
>       for (i = 0 ; i < smp_num_cpus; i++) {
>               int cpu = cpu_logical_map(i), j;
>
> -             user += kstat.per_cpu_user[cpu];
> -             nice += kstat.per_cpu_nice[cpu];
> -             system += kstat.per_cpu_system[cpu];
> +             user += jiffies_to_clock_t(kstat.per_cpu_user[cpu]);
> +             nice += jiffies_to_clock_t(kstat.per_cpu_nice[cpu]);
> +             system += jiffies_to_clock_t(kstat.per_cpu_system[cpu]);
>  #if !defined(CONFIG_ARCH_S390)
>               for (j = 0 ; j < NR_IRQS ; j++)
>                       sum += kstat.irqs[cpu][j];
> @@ -340,10 +340,10 @@
>               proc_sprintf(page, &off, &len,
>                       "cpu%d %u %u %u %lu\n",
>                       i,
> -                     kstat.per_cpu_user[cpu_logical_map(i)],
> -                     kstat.per_cpu_nice[cpu_logical_map(i)],
> -                     kstat.per_cpu_system[cpu_logical_map(i)],
> -                     jif - (  kstat.per_cpu_user[cpu_logical_map(i)] \
> +                     jiffies_to_clock_t(kstat.per_cpu_user[cpu_logical_map(i)]),
> +                     jiffies_to_clock_t(kstat.per_cpu_nice[cpu_logical_map(i)]),
> +                     jiffies_to_clock_t(kstat.per_cpu_system[cpu_logical_map(i)]),
> +                     jif - 
> jiffies_to_clock_t(kstat.per_cpu_user[cpu_logical_map(i)] \
>                                  + kstat.per_cpu_nice[cpu_logical_map(i)] \
>                                  + kstat.per_cpu_system[cpu_logical_map(i)]));
>       proc_sprintf(page, &off, &len,
> diff -urN linux-2.4.20-pre10-ac2/include/asm-i386/param.h
> linux/include/asm-i386/param.h
> --- linux-2.4.20-pre10-ac2/include/asm-i386/param.h   2002-10-14
> 01:33:16.000000000 -0400
> +++ linux/include/asm-i386/param.h    2002-10-14 18:46:32.000000000 -0400
> @@ -1,8 +1,17 @@
>  #ifndef _ASMi386_PARAM_H
>  #define _ASMi386_PARAM_H
>
> +#include <linux/config.h>
> +
> +#ifdef __KERNEL__
> +# define HZ          CONFIG_HZ       /* internal kernel timer frequency */
> +# define USER_HZ     100             /* some user interfaces are in ticks */
> +# define CLOCKS_PER_SEC      (USER_HZ)       /* like times() */
> +# define jiffies_to_clock_t(x)       ((x) / ((HZ) / (USER_HZ)))
> +#endif
> +
>  #ifndef HZ
> -#define HZ 100
> +#define HZ 100                               /* if userspace cheats, give them 100 
> */
>  #endif
>
>  #define EXEC_PAGESIZE        4096
> @@ -17,8 +26,4 @@
>
>  #define MAXHOSTNAMELEN       64      /* max length of hostname */
>
> -#ifdef __KERNEL__
> -# define CLOCKS_PER_SEC      100     /* frequency at which times() counts */
> -#endif
> -
>  #endif
> diff -urN linux-2.4.20-pre10-ac2/kernel/signal.c linux/kernel/signal.c
> --- linux-2.4.20-pre10-ac2/kernel/signal.c    2002-10-14 01:43:11.000000000
> -0400
> +++ linux/kernel/signal.c     2002-10-14 18:24:49.000000000 -0400
> @@ -13,7 +13,7 @@
>  #include <linux/smp_lock.h>
>  #include <linux/init.h>
>  #include <linux/sched.h>
> -
> +#include <asm/param.h>
>  #include <asm/uaccess.h>
>
>  /*
> @@ -775,8 +775,8 @@
>       info.si_uid = tsk->uid;
>
>       /* FIXME: find out whether or not this is supposed to be c*time. */
> -     info.si_utime = tsk->times.tms_utime;
> -     info.si_stime = tsk->times.tms_stime;
> +     info.si_utime = jiffies_to_clock_t(tsk->times.tms_utime);
> +     info.si_stime = jiffies_to_clock_t(tsk->times.tms_stime);
>
>       status = tsk->exit_code & 0x7f;
>       why = SI_KERNEL;        /* shouldn't happen */
> diff -urN linux-2.4.20-pre10-ac2/kernel/sys.c linux/kernel/sys.c
> --- linux-2.4.20-pre10-ac2/kernel/sys.c       2002-10-14 01:43:11.000000000 -0400
> +++ linux/kernel/sys.c        2002-10-14 18:24:49.000000000 -0400
> @@ -15,7 +15,7 @@
>  #include <linux/prctl.h>
>  #include <linux/init.h>
>  #include <linux/highuid.h>
> -
> +#include <asm/param.h>
>  #include <asm/uaccess.h>
>  #include <asm/io.h>
>
> @@ -792,16 +792,23 @@
>
>  asmlinkage long sys_times(struct tms * tbuf)
>  {
> +     struct tms temp;
> +
>       /*
>        *      In the SMP world we might just be unlucky and have one of
>        *      the times increment as we use it. Since the value is an
>        *      atomically safe type this is just fine. Conceptually its
>        *      as if the syscall took an instant longer to occur.
>        */
> -     if (tbuf)
> -             if (copy_to_user(tbuf, �t->times, sizeof(struct tms)))
> +     if (tbuf) {
> +             temp.tms_utime = jiffies_to_clock_t(current->times.tms_utime);
> +             temp.tms_stime = jiffies_to_clock_t(current->times.tms_stime);
> +             temp.tms_cutime = jiffies_to_clock_t(current->times.tms_cutime);
> +             temp.tms_cstime = jiffies_to_clock_t(current->times.tms_cstime);
> +             if (copy_to_user(tbuf, &temp, sizeof(struct tms)))
>                       return -EFAULT;
> -     return jiffies;
> +     }
> +     return jiffies_to_clock_t(jiffies);
>  }
>
>  /*
>
> > to do it correctly, and not have it screw other aspects up, you need to
> > find
> > a hz .patch file
> >
> > kev
> >
> > ->-----Original Message-----
> > ->From: [EMAIL PROTECTED]
> > ->[mailto:[EMAIL PROTECTED] Behalf Of
> > ->[EMAIL PROTECTED]
> > ->Sent: Thursday, October 16, 2003 4:35 PM
> > ->To: [EMAIL PROTECTED]
> > ->Subject: [hlds_linux] Hz Value?
> > ->
> > ->
> > ->Hmm I forgot where do I put the HZ line again? I forgot which
> > ->file :( to make it 1000HZ :)
> > ->
> > ->Any help will be cool
> > ->
> > ->Thanks!
> > ->Jackson
> > ->
> > ->_______________________________________________
> > ->To unsubscribe, edit your list preferences, or view the list
> > ->archives, please visit:
> > ->http://list.valvesoftware.com/mailman/listinfo/hlds_linux
> >
> >
> > _______________________________________________
> > To unsubscribe, edit your list preferences, or view the list archives,
> > please visit:
> > http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit: http://list.valvesoftware.com/mailman/listinfo/hlds_linux

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to