diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-12 22:42:15 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-12 22:42:15 -0400 |
| commit | b2e09f633a3994ee97fa6bc734b533d9c8e6ea0f (patch) | |
| tree | 8f398d3f7ac19a4f4d64862086597f335d977203 /include | |
| parent | 3737a12761636ebde0f09ef49daebb8eed18cc8a (diff) | |
| parent | 535560d841b2d54f31280e05e9c6ffd19da0c4e7 (diff) | |
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull more scheduler updates from Ingo Molnar:
"Second round of scheduler changes:
- try-to-wakeup and IPI reduction speedups, from Andy Lutomirski
- continued power scheduling cleanups and refactorings, from Nicolas
Pitre
- misc fixes and enhancements"
* 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched/deadline: Delete extraneous extern for to_ratio()
sched/idle: Optimize try-to-wake-up IPI
sched/idle: Simplify wake_up_idle_cpu()
sched/idle: Clear polling before descheduling the idle thread
sched, trace: Add a tracepoint for IPI-less remote wakeups
cpuidle: Set polling in poll_idle
sched: Remove redundant assignment to "rt_rq" in update_curr_rt(...)
sched: Rename capacity related flags
sched: Final power vs. capacity cleanups
sched: Remove remaining dubious usage of "power"
sched: Let 'struct sched_group_power' care about CPU capacity
sched/fair: Disambiguate existing/remaining "capacity" usage
sched/fair: Change "has_capacity" to "has_free_capacity"
sched/fair: Remove "power" from 'struct numa_stats'
sched: Fix signedness bug in yield_to()
sched/fair: Use time_after() in record_wakee()
sched/balancing: Reduce the rate of needless idle load balancing
sched/fair: Fix unlocked reads of some cfs_b->quota/period
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/kvm_host.h | 2 | ||||
| -rw-r--r-- | include/linux/sched.h | 14 | ||||
| -rw-r--r-- | include/trace/events/sched.h | 20 |
3 files changed, 28 insertions, 8 deletions
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 970c68197c69..ec4e3bd83d47 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
| @@ -586,7 +586,7 @@ void mark_page_dirty(struct kvm *kvm, gfn_t gfn); | |||
| 586 | 586 | ||
| 587 | void kvm_vcpu_block(struct kvm_vcpu *vcpu); | 587 | void kvm_vcpu_block(struct kvm_vcpu *vcpu); |
| 588 | void kvm_vcpu_kick(struct kvm_vcpu *vcpu); | 588 | void kvm_vcpu_kick(struct kvm_vcpu *vcpu); |
| 589 | bool kvm_vcpu_yield_to(struct kvm_vcpu *target); | 589 | int kvm_vcpu_yield_to(struct kvm_vcpu *target); |
| 590 | void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu); | 590 | void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu); |
| 591 | void kvm_load_guest_fpu(struct kvm_vcpu *vcpu); | 591 | void kvm_load_guest_fpu(struct kvm_vcpu *vcpu); |
| 592 | void kvm_put_guest_fpu(struct kvm_vcpu *vcpu); | 592 | void kvm_put_guest_fpu(struct kvm_vcpu *vcpu); |
diff --git a/include/linux/sched.h b/include/linux/sched.h index b8a98427f964..306f4f0c987a 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -847,10 +847,10 @@ enum cpu_idle_type { | |||
| 847 | }; | 847 | }; |
| 848 | 848 | ||
| 849 | /* | 849 | /* |
| 850 | * Increase resolution of cpu_power calculations | 850 | * Increase resolution of cpu_capacity calculations |
| 851 | */ | 851 | */ |
| 852 | #define SCHED_POWER_SHIFT 10 | 852 | #define SCHED_CAPACITY_SHIFT 10 |
| 853 | #define SCHED_POWER_SCALE (1L << SCHED_POWER_SHIFT) | 853 | #define SCHED_CAPACITY_SCALE (1L << SCHED_CAPACITY_SHIFT) |
| 854 | 854 | ||
| 855 | /* | 855 | /* |
| 856 | * sched-domains (multiprocessor balancing) declarations: | 856 | * sched-domains (multiprocessor balancing) declarations: |
| @@ -862,7 +862,7 @@ enum cpu_idle_type { | |||
| 862 | #define SD_BALANCE_FORK 0x0008 /* Balance on fork, clone */ | 862 | #define SD_BALANCE_FORK 0x0008 /* Balance on fork, clone */ |
| 863 | #define SD_BALANCE_WAKE 0x0010 /* Balance on wakeup */ | 863 | #define SD_BALANCE_WAKE 0x0010 /* Balance on wakeup */ |
| 864 | #define SD_WAKE_AFFINE 0x0020 /* Wake task to waking CPU */ | 864 | #define SD_WAKE_AFFINE 0x0020 /* Wake task to waking CPU */ |
| 865 | #define SD_SHARE_CPUPOWER 0x0080 /* Domain members share cpu power */ | 865 | #define SD_SHARE_CPUCAPACITY 0x0080 /* Domain members share cpu power */ |
| 866 | #define SD_SHARE_POWERDOMAIN 0x0100 /* Domain members share power domain */ | 866 | #define SD_SHARE_POWERDOMAIN 0x0100 /* Domain members share power domain */ |
| 867 | #define SD_SHARE_PKG_RESOURCES 0x0200 /* Domain members share cpu pkg resources */ | 867 | #define SD_SHARE_PKG_RESOURCES 0x0200 /* Domain members share cpu pkg resources */ |
| 868 | #define SD_SERIALIZE 0x0400 /* Only a single load balancing instance */ | 868 | #define SD_SERIALIZE 0x0400 /* Only a single load balancing instance */ |
| @@ -874,7 +874,7 @@ enum cpu_idle_type { | |||
| 874 | #ifdef CONFIG_SCHED_SMT | 874 | #ifdef CONFIG_SCHED_SMT |
| 875 | static inline const int cpu_smt_flags(void) | 875 | static inline const int cpu_smt_flags(void) |
| 876 | { | 876 | { |
| 877 | return SD_SHARE_CPUPOWER | SD_SHARE_PKG_RESOURCES; | 877 | return SD_SHARE_CPUCAPACITY | SD_SHARE_PKG_RESOURCES; |
| 878 | } | 878 | } |
| 879 | #endif | 879 | #endif |
| 880 | 880 | ||
| @@ -1006,7 +1006,7 @@ typedef const int (*sched_domain_flags_f)(void); | |||
| 1006 | struct sd_data { | 1006 | struct sd_data { |
| 1007 | struct sched_domain **__percpu sd; | 1007 | struct sched_domain **__percpu sd; |
| 1008 | struct sched_group **__percpu sg; | 1008 | struct sched_group **__percpu sg; |
| 1009 | struct sched_group_power **__percpu sgp; | 1009 | struct sched_group_capacity **__percpu sgc; |
| 1010 | }; | 1010 | }; |
| 1011 | 1011 | ||
| 1012 | struct sched_domain_topology_level { | 1012 | struct sched_domain_topology_level { |
| @@ -2173,7 +2173,7 @@ static inline void sched_autogroup_fork(struct signal_struct *sig) { } | |||
| 2173 | static inline void sched_autogroup_exit(struct signal_struct *sig) { } | 2173 | static inline void sched_autogroup_exit(struct signal_struct *sig) { } |
| 2174 | #endif | 2174 | #endif |
| 2175 | 2175 | ||
| 2176 | extern bool yield_to(struct task_struct *p, bool preempt); | 2176 | extern int yield_to(struct task_struct *p, bool preempt); |
| 2177 | extern void set_user_nice(struct task_struct *p, long nice); | 2177 | extern void set_user_nice(struct task_struct *p, long nice); |
| 2178 | extern int task_prio(const struct task_struct *p); | 2178 | extern int task_prio(const struct task_struct *p); |
| 2179 | /** | 2179 | /** |
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 67e1bbf83695..0a68d5ae584e 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
| @@ -530,6 +530,26 @@ TRACE_EVENT(sched_swap_numa, | |||
| 530 | __entry->dst_pid, __entry->dst_tgid, __entry->dst_ngid, | 530 | __entry->dst_pid, __entry->dst_tgid, __entry->dst_ngid, |
| 531 | __entry->dst_cpu, __entry->dst_nid) | 531 | __entry->dst_cpu, __entry->dst_nid) |
| 532 | ); | 532 | ); |
| 533 | |||
| 534 | /* | ||
| 535 | * Tracepoint for waking a polling cpu without an IPI. | ||
| 536 | */ | ||
| 537 | TRACE_EVENT(sched_wake_idle_without_ipi, | ||
| 538 | |||
| 539 | TP_PROTO(int cpu), | ||
| 540 | |||
| 541 | TP_ARGS(cpu), | ||
| 542 | |||
| 543 | TP_STRUCT__entry( | ||
| 544 | __field( int, cpu ) | ||
| 545 | ), | ||
| 546 | |||
| 547 | TP_fast_assign( | ||
| 548 | __entry->cpu = cpu; | ||
| 549 | ), | ||
| 550 | |||
| 551 | TP_printk("cpu=%d", __entry->cpu) | ||
| 552 | ); | ||
| 533 | #endif /* _TRACE_SCHED_H */ | 553 | #endif /* _TRACE_SCHED_H */ |
| 534 | 554 | ||
| 535 | /* This part must be outside protection */ | 555 | /* This part must be outside protection */ |
