|
@@ -250,6 +250,8 @@ void print_rt_rq(struct seq_file *m, int cpu, struct rt_rq *rt_rq)
|
|
#undef P
|
|
#undef P
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+extern __read_mostly int sched_clock_running;
|
|
|
|
+
|
|
static void print_cpu(struct seq_file *m, int cpu)
|
|
static void print_cpu(struct seq_file *m, int cpu)
|
|
{
|
|
{
|
|
struct rq *rq = cpu_rq(cpu);
|
|
struct rq *rq = cpu_rq(cpu);
|
|
@@ -321,21 +323,42 @@ static const char *sched_tunable_scaling_names[] = {
|
|
|
|
|
|
static int sched_debug_show(struct seq_file *m, void *v)
|
|
static int sched_debug_show(struct seq_file *m, void *v)
|
|
{
|
|
{
|
|
- u64 now = ktime_to_ns(ktime_get());
|
|
|
|
|
|
+ u64 ktime, sched_clk, cpu_clk;
|
|
|
|
+ unsigned long flags;
|
|
int cpu;
|
|
int cpu;
|
|
|
|
|
|
- SEQ_printf(m, "Sched Debug Version: v0.09, %s %.*s\n",
|
|
|
|
|
|
+ local_irq_save(flags);
|
|
|
|
+ ktime = ktime_to_ns(ktime_get());
|
|
|
|
+ sched_clk = sched_clock();
|
|
|
|
+ cpu_clk = local_clock();
|
|
|
|
+ local_irq_restore(flags);
|
|
|
|
+
|
|
|
|
+ SEQ_printf(m, "Sched Debug Version: v0.10, %s %.*s\n",
|
|
init_utsname()->release,
|
|
init_utsname()->release,
|
|
(int)strcspn(init_utsname()->version, " "),
|
|
(int)strcspn(init_utsname()->version, " "),
|
|
init_utsname()->version);
|
|
init_utsname()->version);
|
|
|
|
|
|
- SEQ_printf(m, "now at %Lu.%06ld msecs\n", SPLIT_NS(now));
|
|
|
|
|
|
+#define P(x) \
|
|
|
|
+ SEQ_printf(m, "%-40s: %Ld\n", #x, (long long)(x))
|
|
|
|
+#define PN(x) \
|
|
|
|
+ SEQ_printf(m, "%-40s: %Ld.%06ld\n", #x, SPLIT_NS(x))
|
|
|
|
+ PN(ktime);
|
|
|
|
+ PN(sched_clk);
|
|
|
|
+ PN(cpu_clk);
|
|
|
|
+ P(jiffies);
|
|
|
|
+#ifdef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
|
|
|
|
+ P(sched_clock_stable);
|
|
|
|
+#endif
|
|
|
|
+#undef PN
|
|
|
|
+#undef P
|
|
|
|
+
|
|
|
|
+ SEQ_printf(m, "\n");
|
|
|
|
+ SEQ_printf(m, "sysctl_sched\n");
|
|
|
|
|
|
#define P(x) \
|
|
#define P(x) \
|
|
SEQ_printf(m, " .%-40s: %Ld\n", #x, (long long)(x))
|
|
SEQ_printf(m, " .%-40s: %Ld\n", #x, (long long)(x))
|
|
#define PN(x) \
|
|
#define PN(x) \
|
|
SEQ_printf(m, " .%-40s: %Ld.%06ld\n", #x, SPLIT_NS(x))
|
|
SEQ_printf(m, " .%-40s: %Ld.%06ld\n", #x, SPLIT_NS(x))
|
|
- P(jiffies);
|
|
|
|
PN(sysctl_sched_latency);
|
|
PN(sysctl_sched_latency);
|
|
PN(sysctl_sched_min_granularity);
|
|
PN(sysctl_sched_min_granularity);
|
|
PN(sysctl_sched_wakeup_granularity);
|
|
PN(sysctl_sched_wakeup_granularity);
|