aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-06-12 22:42:15 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-12 22:42:15 -0400
commitb2e09f633a3994ee97fa6bc734b533d9c8e6ea0f (patch)
tree8f398d3f7ac19a4f4d64862086597f335d977203 /include
parent3737a12761636ebde0f09ef49daebb8eed18cc8a (diff)
parent535560d841b2d54f31280e05e9c6ffd19da0c4e7 (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.h2
-rw-r--r--include/linux/sched.h14
-rw-r--r--include/trace/events/sched.h20
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
587void kvm_vcpu_block(struct kvm_vcpu *vcpu); 587void kvm_vcpu_block(struct kvm_vcpu *vcpu);
588void kvm_vcpu_kick(struct kvm_vcpu *vcpu); 588void kvm_vcpu_kick(struct kvm_vcpu *vcpu);
589bool kvm_vcpu_yield_to(struct kvm_vcpu *target); 589int kvm_vcpu_yield_to(struct kvm_vcpu *target);
590void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu); 590void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu);
591void kvm_load_guest_fpu(struct kvm_vcpu *vcpu); 591void kvm_load_guest_fpu(struct kvm_vcpu *vcpu);
592void kvm_put_guest_fpu(struct kvm_vcpu *vcpu); 592void 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
875static inline const int cpu_smt_flags(void) 875static 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);
1006struct sd_data { 1006struct 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
1012struct sched_domain_topology_level { 1012struct sched_domain_topology_level {
@@ -2173,7 +2173,7 @@ static inline void sched_autogroup_fork(struct signal_struct *sig) { }
2173static inline void sched_autogroup_exit(struct signal_struct *sig) { } 2173static inline void sched_autogroup_exit(struct signal_struct *sig) { }
2174#endif 2174#endif
2175 2175
2176extern bool yield_to(struct task_struct *p, bool preempt); 2176extern int yield_to(struct task_struct *p, bool preempt);
2177extern void set_user_nice(struct task_struct *p, long nice); 2177extern void set_user_nice(struct task_struct *p, long nice);
2178extern int task_prio(const struct task_struct *p); 2178extern 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 */
537TRACE_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 */