-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'timers/nohz-v3' of git://git.kernel.org/pub/scm/linux/k…
…ernel/git/frederic/linux-dynticks into timers/nohz Pull nohz improvements from Frederic Weisbecker: " It mostly contains fixes and full dynticks off-case optimizations. I believe that distros want to enable this feature so it seems important to optimize the case where the "nohz_full=" parameter is empty. ie: I'm trying to remove any performance regression that comes with NO_HZ_FULL=y when the feature is not used. This patchset improves the current situation a lot (off-case appears to be around 11% faster with hackbench, although I guess it may vary depending on the configuration but it should be significantly faster in any case) now there is still some work to do: I can still observe a remaining loss of 1.6% throughput seen with hackbench compared to CONFIG_NO_HZ_FULL=n. " Signed-off-by: Ingo Molnar <mingo@kernel.org>
- Loading branch information
Showing
22 changed files
with
544 additions
and
328 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,3 +3,4 @@ generic-y += clkdev.h | |
generic-y += exec.h | ||
generic-y += kvm_para.h | ||
generic-y += trace_clock.h | ||
generic-y += vtime.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,4 @@ | |
generic-y += clkdev.h | ||
generic-y += rwsem.h | ||
generic-y += trace_clock.h | ||
generic-y += vtime.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#ifndef _S390_VTIME_H | ||
#define _S390_VTIME_H | ||
|
||
#define __ARCH_HAS_VTIME_ACCOUNT | ||
#define __ARCH_HAS_VTIME_TASK_SWITCH | ||
|
||
#endif /* _S390_VTIME_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
#ifndef _LINUX_CONTEXT_TRACKING_STATE_H | ||
#define _LINUX_CONTEXT_TRACKING_STATE_H | ||
|
||
#include <linux/percpu.h> | ||
#include <linux/static_key.h> | ||
|
||
struct context_tracking { | ||
/* | ||
* When active is false, probes are unset in order | ||
* to minimize overhead: TIF flags are cleared | ||
* and calls to user_enter/exit are ignored. This | ||
* may be further optimized using static keys. | ||
*/ | ||
bool active; | ||
enum ctx_state { | ||
IN_KERNEL = 0, | ||
IN_USER, | ||
} state; | ||
}; | ||
|
||
#ifdef CONFIG_CONTEXT_TRACKING | ||
extern struct static_key context_tracking_enabled; | ||
DECLARE_PER_CPU(struct context_tracking, context_tracking); | ||
|
||
static inline bool context_tracking_in_user(void) | ||
{ | ||
return __this_cpu_read(context_tracking.state) == IN_USER; | ||
} | ||
|
||
static inline bool context_tracking_active(void) | ||
{ | ||
return __this_cpu_read(context_tracking.active); | ||
} | ||
#else | ||
static inline bool context_tracking_in_user(void) { return false; } | ||
static inline bool context_tracking_active(void) { return false; } | ||
#endif /* CONFIG_CONTEXT_TRACKING */ | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.