312df5f1a1
There are unfortunately more and more multi processor Opteron systems which don't have HPET timer support in the southbridge. This covers in particular Nvidia and VIA chipsets. They also don't guarantee that the TSCs are synchronized between CPUs; and especially with MP powernow the systems are nearly unusable because the time gets very inconsistent between CPUs. The timer code for x86-64 was originally written under the assumption that we could fall back to the HPET timer on such systems. But this doesn't work there. Another alternative is to use the ACPI PM timer as primary time source. This patch does that. The kernel only uses PM timer when there is no other choice because it has some disadvantages. Ported over from i386. It should be faster than the i386 version because I dropped the "read three times" workaround, but is still considerable slower than HPET and also does not work together with vsyscalls which have to be disabled. Cc: <mark.langsdorf@amd.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
47 lines
1.7 KiB
Makefile
47 lines
1.7 KiB
Makefile
#
|
|
# Makefile for the linux kernel.
|
|
#
|
|
|
|
extra-y := head.o head64.o init_task.o vmlinux.lds
|
|
EXTRA_AFLAGS := -traditional
|
|
obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \
|
|
ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_x86_64.o \
|
|
x8664_ksyms.o i387.o syscall.o vsyscall.o \
|
|
setup64.o bootflag.o e820.o reboot.o quirks.o
|
|
|
|
obj-$(CONFIG_X86_MCE) += mce.o
|
|
obj-$(CONFIG_X86_MCE_INTEL) += mce_intel.o
|
|
obj-$(CONFIG_MTRR) += ../../i386/kernel/cpu/mtrr/
|
|
obj-$(CONFIG_ACPI_BOOT) += acpi/
|
|
obj-$(CONFIG_X86_MSR) += msr.o
|
|
obj-$(CONFIG_MICROCODE) += microcode.o
|
|
obj-$(CONFIG_X86_CPUID) += cpuid.o
|
|
obj-$(CONFIG_SMP) += smp.o smpboot.o trampoline.o
|
|
obj-$(CONFIG_X86_LOCAL_APIC) += apic.o nmi.o
|
|
obj-$(CONFIG_X86_IO_APIC) += io_apic.o mpparse.o \
|
|
genapic.o genapic_cluster.o genapic_flat.o
|
|
obj-$(CONFIG_PM) += suspend.o
|
|
obj-$(CONFIG_SOFTWARE_SUSPEND) += suspend_asm.o
|
|
obj-$(CONFIG_CPU_FREQ) += cpufreq/
|
|
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
|
obj-$(CONFIG_GART_IOMMU) += pci-gart.o aperture.o
|
|
obj-$(CONFIG_DUMMY_IOMMU) += pci-nommu.o pci-dma.o
|
|
obj-$(CONFIG_SWIOTLB) += swiotlb.o
|
|
obj-$(CONFIG_KPROBES) += kprobes.o
|
|
obj-$(CONFIG_X86_PM_TIMER) += pmtimer.o
|
|
|
|
obj-$(CONFIG_MODULES) += module.o
|
|
|
|
obj-y += topology.o
|
|
obj-y += intel_cacheinfo.o
|
|
|
|
CFLAGS_vsyscall.o := $(PROFILING) -g0
|
|
|
|
bootflag-y += ../../i386/kernel/bootflag.o
|
|
cpuid-$(subst m,y,$(CONFIG_X86_CPUID)) += ../../i386/kernel/cpuid.o
|
|
topology-y += ../../i386/mach-default/topology.o
|
|
swiotlb-$(CONFIG_SWIOTLB) += ../../ia64/lib/swiotlb.o
|
|
microcode-$(subst m,y,$(CONFIG_MICROCODE)) += ../../i386/kernel/microcode.o
|
|
intel_cacheinfo-y += ../../i386/kernel/cpu/intel_cacheinfo.o
|
|
quirks-y += ../../i386/kernel/quirks.o
|