1. 16 9月, 2009 1 次提交
  2. 31 8月, 2009 10 次提交
  3. 23 2月, 2009 1 次提交
    • I
      x86: refactor x86_quirks support · 8e6dafd6
      Ingo Molnar 提交于
      Impact: cleanup
      
      Make x86_quirks support more transparent. The highlevel
      methods are now named:
      
        extern void x86_quirk_pre_intr_init(void);
        extern void x86_quirk_intr_init(void);
      
        extern void x86_quirk_trap_init(void);
      
        extern void x86_quirk_pre_time_init(void);
        extern void x86_quirk_time_init(void);
      
      This makes it clear that if some platform extension has to
      do something here that it is considered ... weird, and is
      discouraged.
      
      Also remove arch_hooks.h and move it into setup.h (and other
      header files where appropriate).
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8e6dafd6
  4. 29 1月, 2009 1 次提交
  5. 04 1月, 2009 1 次提交
  6. 17 12月, 2008 1 次提交
  7. 13 10月, 2008 4 次提交
  8. 22 7月, 2008 1 次提交
  9. 20 7月, 2008 1 次提交
  10. 09 7月, 2008 1 次提交
  11. 08 7月, 2008 1 次提交
    • M
      x86: I/O APIC: AEOI timer acknowledgement clean-ups · d11d5794
      Maciej W. Rozycki 提交于
      The code that used to be in do_slow_gettimeoffset() that relied on the
      IRR bit of the master 8259A PIC for IRQ0 to check the state of the output
      timer 0 of the PIT is no longer there.  As a result, there is no need to
      use the POLL command to acknowledge the timer interrupt in the "8259A
      Virtual Wire", except for the NMI watchdog when the i82489DX APIC is used
      (this is because this particular APIC treats NMIs as level-triggered and
      keeping the input asserted would keep motherboard NMI sources held off for
      too long).  Remove the unneeded bits and adjust comments accordingly.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d11d5794
  12. 29 4月, 2008 1 次提交
  13. 30 1月, 2008 3 次提交
  14. 14 10月, 2007 1 次提交
    • D
      Delete filenames in comments. · 835c34a1
      Dave Jones 提交于
      Since the x86 merge, lots of files that referenced their own filenames
      are no longer correct.  Rather than keep them up to date, just delete
      them, as they add no real value.
      
      Additionally:
      - fix up comment formatting in scx200_32.c
      - Remove a credit from myself in setup_64.c from a time when we had no SCM
      - remove longwinded history from tsc_32.c which can be figured out from
        git.
      Signed-off-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      835c34a1
  15. 13 10月, 2007 1 次提交
    • T
      x86: Fix irq0 / local apic timer accounting · 3c9aea47
      Thomas Gleixner 提交于
      The clock events merge introduced a change to the nmi watchdog code to
      handle the not longer increasing local apic timer count in the
      broadcast mode. This is fine for UP, but on SMP it pampers over a
      stuck CPU which is not handling the broadcast interrupt due to the
      unconditional sum up of local apic timer count and irq0 count.
      
      To cover all cases we need to keep track on which CPU irq0 is
      handled. In theory this is CPU#0 due to the explicit disabling of irq
      balancing for irq0, but there are systems which ignore this on the
      hardware level. The per cpu irq0 accounting allows us to remove the
      irq0 to CPU0 binding as well.
      
      Add a per cpu counter for irq0 and evaluate this instead of the global
      irq0 count in the nmi watchdog code.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      3c9aea47
  16. 11 10月, 2007 2 次提交
  17. 22 7月, 2007 1 次提交
  18. 03 5月, 2007 1 次提交
    • T
      [PATCH] i386: pit_latch_buggy has no effect · f5e88615
      takada 提交于
      Eliminated the arch/i386/kernel/timers in 2.6.18, use clocksoures instead.
      pit_latch_buggy was referred in timers/timer_tsc.c, and currently removed.
      Therefore nobody refer it.
      
      Until 2.6.17, MediaGX's TSC works correctly.  after 2.6.18, warned "TSC
      appears to be running slowly.  Marking it as unstable".  So marked unstable
      TSC when CS55x0.
      
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      f5e88615
  19. 05 3月, 2007 2 次提交
    • J
      [PATCH] clocksource init adjustments (fix bug #7426) · 6bb74df4
      john stultz 提交于
      This patch resolves the issue found here:
      http://bugme.osdl.org/show_bug.cgi?id=7426
      
      The basic summary is:
      Currently we register most of i386/x86_64 clocksources at module_init
      time. Then we enable clocksource selection at late_initcall time. This
      causes some problems for drivers that use gettimeofday for init
      calibration routines (specifically the es1968 driver in this case),
      where durring module_init, the only clocksource available is the low-res
      jiffies clocksource. This may cause slight calibration errors, due to
      the small sampling time used.
      
      It should be noted that drivers that require fine grained time may not
      function on architectures that do not have better then jiffies
      resolution timekeeping (there are a few). However, this does not
      discount the reasonable need for such fine-grained timekeeping at init
      time.
      
      Thus the solution here is to register clocksources earlier (ideally when
      the hardware is being initialized), and then we enable clocksource
      selection at fs_initcall (before device_initcall).
      
      This patch should probably get some testing time in -mm, since
      clocksource selection is one of the most important issues for correct
      timekeeping, and I've only been able to test this on a few of my own
      boxes.
      Signed-off-by: NJohn Stultz <johnstul@us.ibm.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6bb74df4
    • Z
      [PATCH] vmi: pit override · e30fab3a
      Zachary Amsden 提交于
      The time_init_hook in paravirt-ops no longer functions in the correct manner
      after the integration of the hrtimers code.  The problem is that now the call
      path for time initialization is:
      
        time_init :
             late_time_init = hpet_time_init;
      
        late_time_init -> hpet_time_init:
             setup_pit_timer (BAD)
             do_time_init --> (via paravirt.h)
                time_init_hook --> (via arch_hooks.h)
                    time_init_hook (in SUBARCH/setup.c)
      
      If this isn't confusing enough, the paravirt case goes through an indirect
      function pointer in the paravirt-ops table.  The problem is, by the time the
      paravirt hook is called, the pit timer is already enabled.
      
      But paravirt guests have their own timer, and don't want to use the PIT.
      Rather than intensify the struggle for power going on here, just make it all
      nice and simple and just unconditionally do all timer setup in the
      late_time_init hook.  This also has the advantage of enabling timers in the
      same place in all code paths, so everyone has the same bugs and we don't have
      outliers who break other code because they turn on timer too early or too
      late.
      
      So the paravirt-ops time init function is now by default hpet_time_init, which
      is the time init function used for native hardware.  Paravirt guests have the
      chance to override this when they setup the paravirt-ops table, and should
      need no change.
      Signed-off-by: NZachary Amsden <zach@vmware.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e30fab3a
  20. 17 2月, 2007 2 次提交
  21. 13 2月, 2007 2 次提交
    • Z
      [PATCH] i386: Profile pc badness · 7b355202
      Zachary Amsden 提交于
      Profile_pc was broken when using paravirtualization because the
      assumption the kernel was running at CPL 0 was violated, causing
      bad logic to read a random value off the stack.
      
      The only way to be in kernel lock functions is to be in kernel
      code, so validate that assumption explicitly by checking the CS
      value.  We don't want to be fooled by BIOS / APM segments and
      try to read those stacks, so only match KERNEL_CS.
      
      I moved some stuff in segment.h to make it prettier.
      Signed-off-by: NZachary Amsden <zach@vmware.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      7b355202
    • Z
      [PATCH] i386: vMI timer patches · bbab4f3b
      Zachary Amsden 提交于
      VMI timer code.  It works by taking over the local APIC clock when APIC is
      configured, which requires a couple hooks into the APIC code.  The backend
      timer code could be commonized into the timer infrastructure, but there are
      some pieces missing (stolen time, in particular), and the exact semantics of
      when to do accounting for NO_IDLE need to be shared between different
      hypervisors as well.  So for now, VMI timer is a separate module.
      
      [Adrian Bunk: cleanups]
      
      Subject: VMI timer patches
      Signed-off-by: NZachary Amsden <zach@vmware.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Chris Wright <chrisw@sous-sol.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      bbab4f3b
  22. 07 12月, 2006 1 次提交
    • R
      [PATCH] paravirt: header and stubs for paravirtualisation · d3561b7f
      Rusty Russell 提交于
      Create a paravirt.h header for all the critical operations which need to be
      replaced with hypervisor calls, and include that instead of defining native
      operations, when CONFIG_PARAVIRT.
      
      This patch does the dumbest possible replacement of paravirtualized
      instructions: calls through a "paravirt_ops" structure.  Currently these are
      function implementations of native hardware: hypervisors will override the ops
      structure with their own variants.
      
      All the pv-ops functions are declared "fastcall" so that a specific
      register-based ABI is used, to make inlining assember easier.
      
      And:
      
      +From: Andy Whitcroft <apw@shadowen.org>
      
      The paravirt ops introduce a 'weak' attribute onto memory_setup().
      Code ordering leads to the following warnings on x86:
      
          arch/i386/kernel/setup.c:651: warning: weak declaration of
                      `memory_setup' after first use results in unspecified behavior
      
      Move memory_setup() to avoid this.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NChris Wright <chrisw@sous-sol.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Zachary Amsden <zach@vmware.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NAndy Whitcroft <apw@shadowen.org>
      d3561b7f