Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 84781
b: refs/heads/master
c: bdc8078
h: refs/heads/master
i:
  84779: fa08630
v: v3
  • Loading branch information
H. Peter Anvin authored and Linus Torvalds committed Feb 8, 2008
1 parent 2d6c92d commit cfdb912
Show file tree
Hide file tree
Showing 30 changed files with 487 additions and 69 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7ef3d2fd17c377ef64a2aa19677d17576606c3b4
refs/heads/master: bdc807871d58285737d50dc6163d0feb72cb0dc2
5 changes: 5 additions & 0 deletions trunk/arch/alpha/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -615,6 +615,11 @@ config VERBOSE_MCHECK_ON

Take the default (1) unless you want more control or more info.

config HZ
int
default 1200 if ALPHA_RAWHIDE
default 1024

source "drivers/pci/Kconfig"
source "drivers/eisa/Kconfig"

Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/cris/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ config CRIS
bool
default y

config HZ
int
default 100

source "init/Kconfig"

menu "General setup"
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/frv/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ config ARCH_HAS_ILOG2_U64
bool
default y

config HZ
int
default 1000

mainmenu "Fujitsu FR-V Kernel Configuration"

source "init/Kconfig"
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/h8300/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ config PCI
bool
default n

config HZ
int
default 100

source "init/Kconfig"

source "arch/h8300/Kconfig.cpu"
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/m32r/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ config NO_DMA
config ARCH_SUPPORTS_AOUT
def_bool y

config HZ
int
default 100

source "init/Kconfig"


Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/m68k/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ config NO_DMA
config ARCH_SUPPORTS_AOUT
def_bool y

config HZ
int
default 100

mainmenu "Linux/68k Kernel Configuration"

source "init/Kconfig"
Expand Down
5 changes: 5 additions & 0 deletions trunk/arch/m68knommu/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -525,6 +525,11 @@ config 4KSTACKS
running more threads on a system and also reduces the pressure
on the VM subsystem for higher order allocations.

config HZ
int
default 1000 if CLEOPATRA
default 100

comment "RAM configuration"

config RAMBASE
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/sparc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ config OF
config ARCH_SUPPORTS_AOUT
def_bool y

config HZ
int
default 100

source "init/Kconfig"

menu "General machine setup"
Expand Down
7 changes: 7 additions & 0 deletions trunk/arch/v850/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,13 @@ menu "Processor type and features"
bool
default !V850E_CACHE && !V850E2_CACHE

# HZ depends on the platform
config HZ
int
default 24 if V850E_SIM || V850E2_SIM85E2
default 122 if V850E2_FPGA85E2C
default 100

#### Misc config

config ROM_KERNEL
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/xtensa/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@ config ARCH_HAS_ILOG2_U64
config NO_IOPORT
def_bool y

config HZ
int
default 100

source "init/Kconfig"

menu "Processor type and features"
Expand Down
10 changes: 1 addition & 9 deletions trunk/include/asm-alpha/param.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,7 @@
hardware ignores reprogramming. We also need userland buy-in to the
change in HZ, since this is visible in the wait4 resources etc. */


#ifndef HZ
# ifndef CONFIG_ALPHA_RAWHIDE
# define HZ 1024
# else
# define HZ 1200
# endif
#endif

#define HZ CONFIG_HZ
#define USER_HZ HZ

#define EXEC_PAGESIZE 8192
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/asm-cris/param.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

/* Currently we assume that HZ=100 is good for CRIS. */
#ifdef __KERNEL__
# define HZ 100 /* Internal kernel timer frequency */
# 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() */
#endif
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/asm-frv/param.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#define _ASM_PARAM_H

#ifdef __KERNEL__
#define HZ 1000 /* Internal kernel timer frequency */
#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() */
#endif
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/asm-h8300/param.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@


#ifndef HZ
#define HZ 100
#define HZ CONFIG_HZ
#endif

#ifdef __KERNEL__
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/asm-m32r/param.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#define _ASM_M32R_PARAM_H

#ifdef __KERNEL__
# define HZ 100 /* Internal kernel timer frequency */
# 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() */
#endif
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/asm-m68k/param.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#define _M68K_PARAM_H

#ifdef __KERNEL__
# define HZ 100 /* Internal kernel timer frequency */
# 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() */
#endif
Expand Down
8 changes: 1 addition & 7 deletions trunk/include/asm-m68knommu/param.h
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
#ifndef _M68KNOMMU_PARAM_H
#define _M68KNOMMU_PARAM_H


#if defined(CONFIG_CLEOPATRA)
#define HZ 1000
#endif
#ifndef HZ
#define HZ 100
#endif
#define HZ CONFIG_HZ

#ifdef __KERNEL__
#define USER_HZ HZ
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/asm-sparc/param.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#define _ASMSPARC_PARAM_H

#ifdef __KERNEL__
# define HZ 100 /* Internal kernel timer frequency */
# define HZ CONFIG_HZ /* Internal kernel timer frequency */
# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
# define CLOCKS_PER_SEC (USER_HZ)
#endif
Expand Down
6 changes: 0 additions & 6 deletions trunk/include/asm-v850/anna.h
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,4 @@ extern void anna_uart_pre_configure (unsigned chan,
#define V850E_TIMER_D_TMCD_CS_MIN 1 /* min 2^1 divider */


/* For <asm/param.h> */
#ifndef HZ
#define HZ 100
#endif


#endif /* __V850_ANNA_H__ */
6 changes: 0 additions & 6 deletions trunk/include/asm-v850/as85ep1.h
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,4 @@ extern void as85ep1_uart_pre_configure (unsigned chan,
#define V850E_TIMER_D_TMCD_CS_MIN 2 /* min 2^2 divider */


/* For <asm/param.h> */
#ifndef HZ
#define HZ 100
#endif


#endif /* __V850_AS85EP1_H__ */
6 changes: 0 additions & 6 deletions trunk/include/asm-v850/fpga85e2c.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,4 @@ extern char _r0_ram;
#endif


/* For <asm/param.h> */
#ifndef HZ
#define HZ 122 /* actually, 8.192ms ticks =~ 122.07 */
#endif


#endif /* __V850_FPGA85E2C_H__ */
3 changes: 1 addition & 2 deletions trunk/include/asm-v850/param.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
#define MAXHOSTNAMELEN 64 /* max length of hostname */

#ifdef __KERNEL__
#include <asm/machdep.h> /* For HZ */

# define HZ CONFIG_HZ
# define USER_HZ 100
# define CLOCKS_PER_SEC USER_HZ
#endif
Expand Down
6 changes: 0 additions & 6 deletions trunk/include/asm-v850/rte_cb.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,6 @@
#endif /* CONFIG_RTE_MB_A_PCI */


/* For <asm/param.h> */
#ifndef HZ
#define HZ 100
#endif


#ifndef __ASSEMBLY__
extern void rte_cb_early_init (void);
extern void rte_cb_init_irqs (void);
Expand Down
5 changes: 0 additions & 5 deletions trunk/include/asm-v850/sim.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,6 @@
#define R0_RAM_ADDR 0xFFFFF000


/* For <asm/param.h> */
#ifndef HZ
#define HZ 24 /* Minimum supported frequency. */
#endif

/* For <asm/irq.h> */
#define NUM_CPU_IRQS 6

Expand Down
6 changes: 0 additions & 6 deletions trunk/include/asm-v850/sim85e2.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,4 @@
#define R0_RAM_ADDR 0xFFFFE000


/* For <asm/param.h> */
#ifndef HZ
#define HZ 24 /* Minimum supported frequency. */
#endif


#endif /* __V850_SIM85E2_H__ */
2 changes: 1 addition & 1 deletion trunk/include/asm-xtensa/param.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#define _XTENSA_PARAM_H

#ifdef __KERNEL__
# define HZ 100 /* internal timer frequency */
# define HZ CONFIG_HZ /* internal timer frequency */
# define USER_HZ 100 /* for user interfaces in "ticks" */
# define CLOCKS_PER_SEC (USER_HZ) /* frequnzy at which times() counts */
#endif
Expand Down
8 changes: 8 additions & 0 deletions trunk/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,11 @@ quiet_cmd_ikconfiggz = IKCFG $@
targets += config_data.h
$(obj)/config_data.h: $(obj)/config_data.gz FORCE
$(call if_changed,ikconfiggz)

$(obj)/time.o: $(obj)/timeconst.h

quiet_cmd_timeconst = TIMEC $@
cmd_timeconst = $(PERL) $< $(CONFIG_HZ) > $@
targets += timeconst.h
$(obj)/timeconst.h: $(src)/timeconst.pl FORCE
$(call if_changed,timeconst)
29 changes: 21 additions & 8 deletions trunk/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
#include <asm/uaccess.h>
#include <asm/unistd.h>

#include "timeconst.h"

/*
* The timezone where the local system is located. Used as a default by some
* programs who obtain this value by using gettimeofday.
Expand Down Expand Up @@ -93,7 +95,8 @@ asmlinkage long sys_stime(time_t __user *tptr)

#endif /* __ARCH_WANT_SYS_TIME */

asmlinkage long sys_gettimeofday(struct timeval __user *tv, struct timezone __user *tz)
asmlinkage long sys_gettimeofday(struct timeval __user *tv,
struct timezone __user *tz)
{
if (likely(tv != NULL)) {
struct timeval ktv;
Expand All @@ -118,7 +121,7 @@ asmlinkage long sys_gettimeofday(struct timeval __user *tv, struct timezone __us
* hard to make the program warp the clock precisely n hours) or
* compile in the timezone information into the kernel. Bad, bad....
*
* - TYT, 1992-01-01
* - TYT, 1992-01-01
*
* The best thing to do is to keep the CMOS clock in universal time (UTC)
* as real UNIX machines always do it. This avoids all headaches about
Expand Down Expand Up @@ -240,7 +243,11 @@ unsigned int inline jiffies_to_msecs(const unsigned long j)
#elif HZ > MSEC_PER_SEC && !(HZ % MSEC_PER_SEC)
return (j + (HZ / MSEC_PER_SEC) - 1)/(HZ / MSEC_PER_SEC);
#else
return (j * MSEC_PER_SEC) / HZ;
# if BITS_PER_LONG == 32
return ((u64)HZ_TO_MSEC_MUL32 * j) >> HZ_TO_MSEC_SHR32;
# else
return (j * HZ_TO_MSEC_NUM) / HZ_TO_MSEC_DEN;
# endif
#endif
}
EXPORT_SYMBOL(jiffies_to_msecs);
Expand All @@ -252,7 +259,11 @@ unsigned int inline jiffies_to_usecs(const unsigned long j)
#elif HZ > USEC_PER_SEC && !(HZ % USEC_PER_SEC)
return (j + (HZ / USEC_PER_SEC) - 1)/(HZ / USEC_PER_SEC);
#else
return (j * USEC_PER_SEC) / HZ;
# if BITS_PER_LONG == 32
return ((u64)HZ_TO_USEC_MUL32 * j) >> HZ_TO_USEC_SHR32;
# else
return (j * HZ_TO_USEC_NUM) / HZ_TO_USEC_DEN;
# endif
#endif
}
EXPORT_SYMBOL(jiffies_to_usecs);
Expand Down Expand Up @@ -352,7 +363,7 @@ EXPORT_SYMBOL(mktime);
* normalize to the timespec storage format
*
* Note: The tv_nsec part is always in the range of
* 0 <= tv_nsec < NSEC_PER_SEC
* 0 <= tv_nsec < NSEC_PER_SEC
* For negative values only the tv_sec field is negative !
*/
void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec)
Expand Down Expand Up @@ -453,12 +464,13 @@ unsigned long msecs_to_jiffies(const unsigned int m)
/*
* Generic case - multiply, round and divide. But first
* check that if we are doing a net multiplication, that
* we wouldnt overflow:
* we wouldn't overflow:
*/
if (HZ > MSEC_PER_SEC && m > jiffies_to_msecs(MAX_JIFFY_OFFSET))
return MAX_JIFFY_OFFSET;

return (m * HZ + MSEC_PER_SEC - 1) / MSEC_PER_SEC;
return ((u64)MSEC_TO_HZ_MUL32 * m + MSEC_TO_HZ_ADJ32)
>> MSEC_TO_HZ_SHR32;
#endif
}
EXPORT_SYMBOL(msecs_to_jiffies);
Expand All @@ -472,7 +484,8 @@ unsigned long usecs_to_jiffies(const unsigned int u)
#elif HZ > USEC_PER_SEC && !(HZ % USEC_PER_SEC)
return u * (HZ / USEC_PER_SEC);
#else
return (u * HZ + USEC_PER_SEC - 1) / USEC_PER_SEC;
return ((u64)USEC_TO_HZ_MUL32 * u + USEC_TO_HZ_ADJ32)
>> USEC_TO_HZ_SHR32;
#endif
}
EXPORT_SYMBOL(usecs_to_jiffies);
Expand Down
Loading

0 comments on commit cfdb912

Please sign in to comment.