diff options
| author | Linus Torvalds <[email protected]> | 2008-02-02 08:27:00 +1100 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2008-02-02 08:27:00 +1100 |
| commit | 45f37e86f1ef95f002386d8a0ab508407cec9bf3 (patch) | |
| tree | aeae54129b9a440b2d1d80a80d84070a91e83c9c /include/linux | |
| parent | e30ec4525d4731d828a754823a83a3d6b50bb230 (diff) | |
| parent | aa7d93506cc26378be6964692cd0dd34cffaee25 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched
* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:
latencytop: Change Kconfig dependency.
futex: Add bitset conditional wait/wakeup functionality
futex: Remove warn on in return fixup path
x86: replace LOCK_PREFIX in futex.h
tick-sched: add more debug information
timekeeping: update xtime_cache when time(zone) changes
hrtimer: fix hrtimer_init_sleeper() users
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/futex.h | 10 | ||||
| -rw-r--r-- | include/linux/thread_info.h | 1 | ||||
| -rw-r--r-- | include/linux/tick.h | 4 | ||||
| -rw-r--r-- | include/linux/time.h | 1 |
4 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/futex.h b/include/linux/futex.h index 1a15f8e237a7..90048fb28a38 100644 --- a/include/linux/futex.h +++ b/include/linux/futex.h @@ -21,6 +21,8 @@ union ktime; #define FUTEX_LOCK_PI 6 #define FUTEX_UNLOCK_PI 7 #define FUTEX_TRYLOCK_PI 8 +#define FUTEX_WAIT_BITSET 9 +#define FUTEX_WAKE_BITSET 10 #define FUTEX_PRIVATE_FLAG 128 #define FUTEX_CMD_MASK ~FUTEX_PRIVATE_FLAG @@ -33,6 +35,8 @@ union ktime; #define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG) #define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG) #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG) +#define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITS | FUTEX_PRIVATE_FLAG) +#define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITS | FUTEX_PRIVATE_FLAG) /* * Support for robust futexes: the kernel cleans up held futexes at @@ -111,6 +115,12 @@ struct robust_list_head { */ #define ROBUST_LIST_LIMIT 2048 +/* + * bitset with all bits set for the FUTEX_xxx_BITSET OPs to request a + * match of any bit. + */ +#define FUTEX_BITSET_MATCH_ANY 0xffffffff + #ifdef __KERNEL__ long do_futex(u32 __user *uaddr, int op, u32 val, union ktime *timeout, u32 __user *uaddr2, u32 val2, u32 val3); diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h index dfbdfb9836f4..421323e5a2d6 100644 --- a/include/linux/thread_info.h +++ b/include/linux/thread_info.h @@ -23,6 +23,7 @@ struct restart_block { u32 *uaddr; u32 val; u32 flags; + u32 bitset; u64 time; } futex; }; diff --git a/include/linux/tick.h b/include/linux/tick.h index 0fadf95debe1..a881c652f7e9 100644 --- a/include/linux/tick.h +++ b/include/linux/tick.h @@ -39,6 +39,8 @@ enum tick_nohz_mode { * @idle_calls: Total number of idle calls * @idle_sleeps: Number of idle calls, where the sched tick was stopped * @idle_entrytime: Time when the idle call was entered + * @idle_waketime: Time when the idle was interrupted + * @idle_exittime: Time when the idle state was left * @idle_sleeptime: Sum of the time slept in idle with sched tick stopped * @sleep_length: Duration of the current idle sleep */ @@ -53,6 +55,8 @@ struct tick_sched { unsigned long idle_sleeps; int idle_active; ktime_t idle_entrytime; + ktime_t idle_waketime; + ktime_t idle_exittime; ktime_t idle_sleeptime; ktime_t idle_lastupdate; ktime_t sleep_length; diff --git a/include/linux/time.h b/include/linux/time.h index b04136d60a2f..ceaab9fff155 100644 --- a/include/linux/time.h +++ b/include/linux/time.h @@ -122,6 +122,7 @@ extern void monotonic_to_bootbased(struct timespec *ts); extern struct timespec timespec_trunc(struct timespec t, unsigned gran); extern int timekeeping_is_continuous(void); extern void update_wall_time(void); +extern void update_xtime_cache(u64 nsec); /** * timespec_to_ns - Convert timespec to nanoseconds |