#include <linux/seq_file.h>
#include <linux/cache.h>
#include <linux/jiffies.h>
+#include <linux/profile.h>
#include <asm/head.h>
#include <asm/ptrace.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/oplib.h>
-#include <asm/hardirq.h>
#include <asm/uaccess.h>
#include <asm/timer.h>
#include <asm/starfire.h>
struct task_struct *p;
int timeout, ret, cpu_node;
- kernel_thread(NULL, NULL, CLONE_IDLETASK);
-
- p = prev_task(&init_task);
-
- init_idle(p, cpu);
-
- unhash_process(p);
-
+ p = fork_idle(cpu);
callin_flag = 0;
cpu_new_thread = p->thread_info;
cpu_set(cpu, cpu_callout_map);
smp_cross_call(&xcall_promstop, 0, 0, 0);
}
-extern void sparc64_do_profile(struct pt_regs *regs);
-
#define prof_multiplier(__cpu) cpu_data(__cpu).multiplier
#define prof_counter(__cpu) cpu_data(__cpu).counter
}
do {
- sparc64_do_profile(regs);
+ profile_tick(CPU_PROFILING, regs);
if (!--prof_counter(cpu)) {
irq_enter();