1. 11 2月, 2015 4 次提交
  2. 16 12月, 2014 1 次提交
    • J
      x86: Avoid building unused IRQ entry stubs · 2414e021
      Jan Beulich 提交于
      When X86_LOCAL_APIC (i.e. unconditionally on x86-64),
      first_system_vector will never end up being higher than
      LOCAL_TIMER_VECTOR (0xef), and hence building stubs for vectors
      0xef...0xff is pointlessly reducing code density. Deal with this at
      build time already.
      
      Taking into consideration that X86_64 implies X86_LOCAL_APIC, also
      simplify (and hence make easier to read and more consistent with the
      change done here) some #if-s in arch/x86/kernel/irqinit.c.
      
      While we could further improve the packing of the IRQ entry stubs (the
      four ones now left in the last set could be fit into the four padding
      bytes each of the final four sets have) this doesn't seem to provide
      any real benefit: Both irq_entries_start and common_interrupt getting
      cache line aligned, eliminating the 30th set would just produce 32
      bytes of padding between the 29th and common_interrupt.
      
      [ tglx: Folded lguest fix from Dan Carpenter ]
      Signed-off-by: NJan Beulich <jbeulich@suse.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: lguest@lists.ozlabs.org
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Link: http://lkml.kernel.org/r/54574D5F0200007800044389@mail.emea.novell.com
      Link: http://lkml.kernel.org/r/20141115185718.GB6530@mwandaSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      2414e021
  3. 06 5月, 2014 1 次提交
  4. 30 1月, 2014 1 次提交
  5. 06 9月, 2013 1 次提交
    • R
      lguest: fix GPF in guest when using gdb. · aa96a3c6
      Rusty Russell 提交于
      Since the Guest is in ring 1, it can't read the debug registers: doing
      so gives a number of nasty messages:
      
      (gdb) run
      Starting program: /bin/sleep
      [   31.170230] general protection fault: 0000 [#1] SMP
      [   31.170230] Modules linked in:
      [   31.170230] CPU: 0 PID: 2678 Comm: sleep Not tainted 3.11.0+ #64
      [   31.170230] task: cc5c09b0 ti: cc79c000 task.ti: cc79c000
      [   31.170230] EIP: 0061:[<c01333d8>] EFLAGS: 00000097 CPU: 0
      [   31.170230] EIP is at native_get_debugreg+0x58/0x70
      [   31.170230] EAX: 00000006 EBX: cc79dfb4 ECX: b7fff918 EDX: 00000000
      [   31.170230] ESI: cc5c09b0 EDI: 00000000 EBP: cc79df84 ESP: cc79df84
      [   31.170230]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0069
      [   31.170230] CR0: 00000008 CR2: 081ba69a CR3: 0e2f2000 CR4: 00000000
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      aa96a3c6
  6. 15 7月, 2013 1 次提交
  7. 07 6月, 2013 1 次提交
  8. 29 5月, 2013 1 次提交
    • D
      x86: Increase precision of x86_platform.get/set_wallclock() · 3565184e
      David Vrabel 提交于
      All the virtualized platforms (KVM, lguest and Xen) have persistent
      wallclocks that have more than one second of precision.
      
      read_persistent_wallclock() and update_persistent_wallclock() allow
      for nanosecond precision but their implementation on x86 with
      x86_platform.get/set_wallclock() only allows for one second precision.
      This means guests may see a wallclock time that is off by up to 1
      second.
      
      Make set_wallclock() and get_wallclock() take a struct timespec
      parameter (which allows for nanosecond precision) so KVM and Xen
      guests may start with a more accurate wallclock time and a Xen dom0
      can maintain a more accurate wallclock for guests.
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      3565184e
  9. 11 4月, 2013 1 次提交
  10. 17 11月, 2012 1 次提交
  11. 26 10月, 2012 1 次提交
  12. 12 1月, 2012 1 次提交
  13. 01 11月, 2011 1 次提交
  14. 27 10月, 2011 1 次提交
  15. 22 7月, 2011 4 次提交
  16. 30 5月, 2011 1 次提交
  17. 07 5月, 2011 1 次提交
  18. 18 3月, 2011 1 次提交
  19. 12 3月, 2011 1 次提交
  20. 22 2月, 2011 1 次提交
    • J
      x86: Convert remaining x86 clocksources to clocksource_register_hz/khz · b01cc1b0
      John Stultz 提交于
      This converts the remaining x86 clocksources to use
      clocksource_register_hz/khz.
      
      CC: jacob.jun.pan@intel.com
      CC: Glauber Costa <glommer@redhat.com>
      CC: Dimitri Sivanich <sivanich@sgi.com>
      CC: Rusty Russell <rusty@rustcorp.com.au>
      CC: Jeremy Fitzhardinge <jeremy@xensource.com>
      CC: Chris McDermott <lcm@us.ibm.com>
      CC: Thomas Gleixner <tglx@linutronix.de>
      Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> [xen]
      Signed-off-by: NJohn Stultz <johnstul@us.ibm.com>
      b01cc1b0
  21. 20 1月, 2011 2 次提交
    • R
      lguest: compile fixes · ced05dd7
      Rusty Russell 提交于
      arch/x86/lguest/boot.c: In function ‘lguest_init_IRQ’:
      arch/x86/lguest/boot.c:824: error: macro "__this_cpu_write" requires 2 arguments, but only 1 given
      arch/x86/lguest/boot.c:824: error: ‘__this_cpu_write’ undeclared (first use in this function)
      arch/x86/lguest/boot.c:824: error: (Each undeclared identifier is reported only once
      arch/x86/lguest/boot.c:824: error: for each function it appears in.)
      
      drivers/lguest/x86/core.c: In function ‘copy_in_guest_info’:
      drivers/lguest/x86/core.c:94: error: lvalue required as left operand of assignment
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      ced05dd7
    • C
      lguest: Use this_cpu_ops · c9f29549
      Christoph Lameter 提交于
      Use this_cpu_ops in a couple of places in lguest.
      Signed-off-by: NChristoph Lameter <cl@linux.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      c9f29549
  22. 16 12月, 2010 3 次提交
    • R
      lguest: populate initial_page_table · da32dac1
      Rusty Russell 提交于
      Two x86 patches broke lguest:
      1) v2.6.35-492-g72d7c3b3, which changed x86 to use the memblock allocator.
      
      In lguest, the host places linear page tables at the top of mem, which
      used to be enough to get us up to the swapper_pg_dir page tables.  With
      the first patch, the direct mapping tables used that memory:
      
      Before: kernel direct mapping tables up to 4000000 @ 7000-1a000
      After: kernel direct mapping tables up to 4000000 @ 3fed000-4000000
      
      I initially fixed this by lying about the amount of memory we had, so
      the kernel wouldn't blatt the lguest boot pagetables (yuk!), but then...
      
      2) v2.6.36-rc8-54-gb40827fa, which made x86 boot use initial_page_table.
      
      This was initialized in a part of head_32.S which isn't executed by
      lguest; it is then copied into swapper_pg_dir.  So we have to initialize
      it; and anyway we switch to it before we blatt the old tables, so that
      fixes the previous damage as well.
      
      For the moment, I cut & pasted the code into lguest's boot code, but
      next merge window I will merge them.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      To: x86@kernel.org
      da32dac1
    • R
      lguest: restore boot speed · bb4093de
      Rusty Russell 提交于
      lguest is dumb and drops *all* the pagetables for set_pte (which is
      only used for kernel mapping manipulation, so it's OK without highmem).
      
      But it's used a lot in boot, too.  As a guest optimization, we
      suppressed this flushing until the first page switch.  Now we have
      initial_page_table, that happens much earlier, so extend the heuristic
      to wait until we switch to something other than the swapper_pg_dir or
      initial_page_table.
      
      As measured on my laptop under kvm, this dropped the time-to-mount-root
      from 48 seconds to 4.3 seconds.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      bb4093de
    • R
      lguest: fix crash lguest_time_init · bb6f1d9a
      Rusty Russell 提交于
      fe25c7fc "x86: lguest: Convert to new irq chip functions" converted
      enable_lguest_irq() to take a struct irq_data *, but didn't fix the one
      internal caller.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      To: x86@kernel.org
      bb6f1d9a
  23. 12 10月, 2010 2 次提交
  24. 21 9月, 2010 1 次提交
  25. 14 4月, 2010 1 次提交
    • R
      lguest: stop using KVM hypercall mechanism · 091ebf07
      Rusty Russell 提交于
      This is a partial revert of 4cd8b5e2 "lguest: use KVM hypercalls";
      we revert to using (just as questionable but more reliable) int $15 for
      hypercalls.  I didn't revert the register mapping, so we still use the
      same calling convention as kvm.
      
      KVM in more recent incarnations stopped injecting a fault when a guest
      tried to use the VMCALL instruction from ring 1, so lguest under kvm
      fails to make hypercalls.  It was nice to share code with our KVM
      cousins, but this was overreach.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Matias Zabaljauregui <zabaljauregui@gmail.com>
      Cc: Avi Kivity <avi@redhat.com>
      091ebf07
  26. 15 3月, 2010 1 次提交
    • L
      ACPI: delete the "acpi=ht" boot option · 68ca4069
      Len Brown 提交于
      acpi=ht was important in 2003 -- before ACPI was
      universally deployed and enabled by default in
      the major Linux distributions.
      
      At that time, there were a fair number of people who
      or chose to, or needed to, run with acpi=off,
      yet also wanted access to Hyper-threading.
      
      Today we find that many invocations of "acpi=ht"
      are accidental, and thus is it possible that it
      is doing more harm than good.
      
      In 2.6.34, we warn on invocation of acpi=ht.
      In 2.6.35, we delete the boot option.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      68ca4069
  27. 23 9月, 2009 1 次提交
  28. 16 9月, 2009 1 次提交
  29. 31 8月, 2009 2 次提交
    • T
      x86: Move tsc_calibration to x86_init_ops · 2d826404
      Thomas Gleixner 提交于
      TSC calibration is modified by the vmware hypervisor and paravirt by
      separate means. Moorestown wants to add its own calibration routine as
      well. So make calibrate_tsc a proper x86_init_ops function and
      override it by paravirt or by the early setup of the vmware
      hypervisor.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      2d826404
    • T
      x86: Add timer_init to x86_init_ops · 845b3944
      Thomas Gleixner 提交于
      The timer init code is convoluted with several quirks and the paravirt
      timer chooser. Figuring out which code path is actually taken is not
      for the faint hearted.
      
      Move the numaq TSC quirk to tsc_pre_init x86_init_ops function and
      replace the paravirt time chooser and the remaining x86 quirk with a
      simple x86_init_ops function.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      845b3944