Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 53884
b: refs/heads/master
c: e0bb864
h: refs/heads/master
v: v3
  • Loading branch information
Zachary Amsden authored and Andi Kleen committed May 2, 2007
1 parent b3db17e commit 5395cc4
Show file tree
Hide file tree
Showing 7 changed files with 328 additions and 525 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: eeef9c68aae2f4f21ab810d0339e0f22d30b0cd8
refs/heads/master: e0bb8643974397a8d36670e06e6a54bb84f3289f
2 changes: 1 addition & 1 deletion trunk/arch/i386/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-$(CONFIG_HPET_TIMER) += hpet.o
obj-$(CONFIG_K8_NB) += k8.o

obj-$(CONFIG_VMI) += vmi.o vmitime.o
obj-$(CONFIG_VMI) += vmi.o vmiclock.o
obj-$(CONFIG_PARAVIRT) += paravirt.o
obj-y += pcspeaker.o

Expand Down
5 changes: 0 additions & 5 deletions trunk/arch/i386/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -637,11 +637,6 @@ ENDPROC(name)
/* The include is where all of the SMP etc. interrupts come from */
#include "entry_arch.h"

/* This alternate entry is needed because we hijack the apic LVTT */
#if defined(CONFIG_VMI) && defined(CONFIG_X86_LOCAL_APIC)
BUILD_INTERRUPT(apic_vmi_timer_interrupt,LOCAL_TIMER_VECTOR)
#endif

KPROBE_ENTRY(page_fault)
RING0_EC_FRAME
pushl $do_page_fault
Expand Down
26 changes: 6 additions & 20 deletions trunk/arch/i386/kernel/vmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ static struct {
extern struct paravirt_patch __start_parainstructions[],
__stop_parainstructions[];

/* Cached VMI operations */
struct vmi_timer_ops vmi_timer_ops;

/*
* VMI patching routines.
*/
Expand Down Expand Up @@ -235,18 +238,6 @@ static void vmi_nop(void)
{
}

/* For NO_IDLE_HZ, we stop the clock when halting the kernel */
static fastcall void vmi_safe_halt(void)
{
int idle = vmi_stop_hz_timer();
vmi_ops.halt();
if (idle) {
local_irq_disable();
vmi_account_time_restart_hz_timer();
local_irq_enable();
}
}

#ifdef CONFIG_DEBUG_PAGE_TYPE

#ifdef CONFIG_X86_PAE
Expand Down Expand Up @@ -722,7 +713,6 @@ do { \
} \
} while (0)


/*
* Activate the VMI interface and switch into paravirtualized mode
*/
Expand Down Expand Up @@ -901,8 +891,8 @@ static inline int __init activate_vmi(void)
paravirt_ops.get_wallclock = vmi_get_wallclock;
paravirt_ops.set_wallclock = vmi_set_wallclock;
#ifdef CONFIG_X86_LOCAL_APIC
paravirt_ops.setup_boot_clock = vmi_timer_setup_boot_alarm;
paravirt_ops.setup_secondary_clock = vmi_timer_setup_secondary_alarm;
paravirt_ops.setup_boot_clock = vmi_time_bsp_init;
paravirt_ops.setup_secondary_clock = vmi_time_ap_init;
#endif
paravirt_ops.get_scheduled_cycles = vmi_get_sched_cycles;
paravirt_ops.get_cpu_khz = vmi_cpu_khz;
Expand All @@ -914,11 +904,7 @@ static inline int __init activate_vmi(void)
disable_vmi_timer = 1;
}

/* No idle HZ mode only works if VMI timer and no idle is enabled */
if (disable_noidle || disable_vmi_timer)
para_fill(safe_halt, Halt);
else
para_wrap(safe_halt, vmi_safe_halt, halt, Halt);
para_fill(safe_halt, Halt);

/*
* Alternative instruction rewriting doesn't happen soon enough
Expand Down
Loading

0 comments on commit 5395cc4

Please sign in to comment.