1. 03 10月, 2008 1 次提交
  2. 30 9月, 2008 1 次提交
  3. 14 9月, 2008 1 次提交
  4. 10 9月, 2008 2 次提交
  5. 09 9月, 2008 2 次提交
  6. 07 9月, 2008 1 次提交
  7. 25 8月, 2008 1 次提交
    • A
      xen: implement CPU hotplugging · d68d82af
      Alex Nixon 提交于
      Note the changes from 2.6.18-xen CPU hotplugging:
      
      A vcpu_down request from the remote admin via Xenbus both hotunplugs the
      CPU, and disables it by removing it from the cpu_present map, and removing
      its entry in /sys.
      
      A vcpu_up request from the remote admin only re-enables the CPU, and does
      not immediately bring the CPU up. A udev event is emitted, which can be
      caught by the user if he wishes to automatically re-up CPUs when available,
      or implement a more complex policy.
      Signed-off-by: NAlex Nixon <alex.nixon@citrix.com>
      Acked-by: NJeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d68d82af
  8. 22 8月, 2008 1 次提交
  9. 21 8月, 2008 4 次提交
  10. 20 8月, 2008 3 次提交
  11. 31 7月, 2008 3 次提交
  12. 28 7月, 2008 2 次提交
  13. 26 7月, 2008 1 次提交
  14. 24 7月, 2008 3 次提交
  15. 22 7月, 2008 2 次提交
  16. 18 7月, 2008 3 次提交
    • J
      xen: report hypervisor version · 95c7c23b
      Jeremy Fitzhardinge 提交于
      Various versions of the hypervisor have differences in what ABIs and
      features they support.  Print some details into the boot log to help
      with remote debugging.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      95c7c23b
    • M
      x86: APIC: remove apic_write_around(); use alternatives · 593f4a78
      Maciej W. Rozycki 提交于
      Use alternatives to select the workaround for the 11AP Pentium erratum
      for the affected steppings on the fly rather than build time.  Remove the
      X86_GOOD_APIC configuration option and replace all the calls to
      apic_write_around() with plain apic_write(), protecting accesses to the
      ESR as appropriate due to the 3AP Pentium erratum.  Remove
      apic_read_around() and all its invocations altogether as not needed.
      Remove apic_write_atomic() and all its implementing backends.  The use of
      ASM_OUTPUT2() is not strictly needed for input constraints, but I have
      used it for readability's sake.
      
      I had the feeling no one else was brave enough to do it, so I went ahead
      and here it is.  Verified by checking the generated assembly and tested
      with both a 32-bit and a 64-bit configuration, also with the 11AP
      "feature" forced on and verified with gdb on /proc/kcore to work as
      expected (as an 11AP machines are quite hard to get hands on these days).
      Some script complained about the use of "volatile", but apic_write() needs
      it for the same reason and is effectively a replacement for writel(), so I
      have disregarded it.
      
      I am not sure what the policy wrt defconfig files is, they are generated
      and there is risk of a conflict resulting from an unrelated change, so I
      have left changes to them out.  The option will get removed from them at
      the next run.
      
      Some testing with machines other than mine will be needed to avoid some
      stupid mistake, but despite its volume, the change is not really that
      intrusive, so I am fairly confident that because it works for me, it will
      everywhere.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      593f4a78
    • J
      x86, xen, power: fix up config dependencies on PM · 93a0886e
      Jeremy Fitzhardinge 提交于
      Xen save/restore needs bits of code enabled by PM_SLEEP, and PM_SLEEP
      depends on PM.  So make XEN_SAVE_RESTORE depend on PM and PM_SLEEP
      depend on XEN_SAVE_RESTORE.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Acked-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      93a0886e
  17. 16 7月, 2008 9 次提交
    • J
      xen: implement Xen-specific spinlocks · 2d9e1e2f
      Jeremy Fitzhardinge 提交于
      The standard ticket spinlocks are very expensive in a virtual
      environment, because their performance depends on Xen's scheduler
      giving vcpus time in the order that they're supposed to take the
      spinlock.
      
      This implements a Xen-specific spinlock, which should be much more
      efficient.
      
      The fast-path is essentially the old Linux-x86 locks, using a single
      lock byte.  The locker decrements the byte; if the result is 0, then
      they have the lock.  If the lock is negative, then locker must spin
      until the lock is positive again.
      
      When there's contention, the locker spin for 2^16[*] iterations waiting
      to get the lock.  If it fails to get the lock in that time, it adds
      itself to the contention count in the lock and blocks on a per-cpu
      event channel.
      
      When unlocking the spinlock, the locker looks to see if there's anyone
      blocked waiting for the lock by checking for a non-zero waiter count.
      If there's a waiter, it traverses the per-cpu "lock_spinners"
      variable, which contains which lock each CPU is waiting on.  It picks
      one CPU waiting on the lock and sends it an event to wake it up.
      
      This allows efficient fast-path spinlock operation, while allowing
      spinning vcpus to give up their processor time while waiting for a
      contended lock.
      
      [*] 2^16 iterations is threshold at which 98% locks have been taken
      according to Thomas Friebel's Xen Summit talk "Preventing Guests from
      Spinning Around".  Therefore, we'd expect the lock and unlock slow
      paths will only be entered 2% of the time.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Christoph Lameter <clameter@linux-foundation.org>
      Cc: Petr Tesarik <ptesarik@suse.cz>
      Cc: Virtualization <virtualization@lists.linux-foundation.org>
      Cc: Xen devel <xen-devel@lists.xensource.com>
      Cc: Thomas Friebel <thomas.friebel@amd.com>
      Cc: Nick Piggin <nickpiggin@yahoo.com.au>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2d9e1e2f
    • J
      xen: use lock-byte spinlock implementation · 56397f8d
      Jeremy Fitzhardinge 提交于
      Switch to using the lock-byte spinlock implementation, to avoid the
      worst of the performance hit from ticket locks.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Christoph Lameter <clameter@linux-foundation.org>
      Cc: Petr Tesarik <ptesarik@suse.cz>
      Cc: Virtualization <virtualization@lists.linux-foundation.org>
      Cc: Xen devel <xen-devel@lists.xensource.com>
      Cc: Thomas Friebel <thomas.friebel@amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      56397f8d
    • J
      x86: xen: no need to disable vdso32 · d5303b81
      Jeremy Fitzhardinge 提交于
      Now that the vdso32 code can cope with both syscall and sysenter
      missing for 32-bit compat processes, just disable the features without
      disabling vdso altogether.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      d5303b81
    • J
      x86_64: further cleanup of 32-bit compat syscall mechanisms · 6a52e4b1
      Jeremy Fitzhardinge 提交于
      AMD only supports "syscall" from 32-bit compat usermode.
      Intel and Centaur(?) only support "sysenter" from 32-bit compat usermode.
      
      Set the X86 feature bits accordingly, and set up the vdso in
      accordance with those bits.  On the offchance we run on in a 64-bit
      environment which supports neither syscall nor sysenter from 32-bit
      mode, then fall back to the int $0x80 vdso.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      6a52e4b1
    • I
      x86, xen, vdso: fix build error · 71415c6a
      Ingo Molnar 提交于
      fix:
      
         arch/x86/xen/built-in.o: In function `xen_enable_syscall':
         (.cpuinit.text+0xdb): undefined reference to `sysctl_vsyscall32'
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      71415c6a
    • J
      xen64: disable 32-bit syscall/sysenter if not supported. · 62541c37
      Jeremy Fitzhardinge 提交于
      Old versions of Xen (3.1 and before) don't support sysenter or syscall
      from 32-bit compat userspaces.  If we can't set the appropriate
      syscall callback, then disable the corresponding feature bit, which
      will cause the vdso32 setup to fall back appropriately.
      
      Linux assumes that syscall is always available to 32-bit userspace,
      and installs it by default if sysenter isn't available.  In that case,
      we just disable vdso altogether, forcing userspace libc to fall back
      to int $0x80.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      62541c37
    • I
      xen64: fix build error on 32-bit + !HIGHMEM · b3fe1243
      Ingo Molnar 提交于
      fix:
      
      arch/x86/xen/enlighten.c: In function 'xen_set_fixmap':
      arch/x86/xen/enlighten.c:1127: error: 'FIX_KMAP_BEGIN' undeclared (first use in this function)
      arch/x86/xen/enlighten.c:1127: error: (Each undeclared identifier is reported only once
      arch/x86/xen/enlighten.c:1127: error: for each function it appears in.)
      arch/x86/xen/enlighten.c:1127: error: 'FIX_KMAP_END' undeclared (first use in this function)
      make[1]: *** [arch/x86/xen/enlighten.o] Error 1
      make: *** [arch/x86/xen/enlighten.o] Error 2
      
      FIX_KMAP_BEGIN is only available on HIGHMEM.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b3fe1243
    • J
      xen: update Kconfig to allow 64-bit Xen · 51dd660a
      Jeremy Fitzhardinge 提交于
      Allow Xen to be enabled on 64-bit.
      
      Also extend domain size limit from 8 GB (on 32-bit) to 32 GB on 64-bit.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Stephen Tweedie <sct@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Mark McLoughlin <markmc@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      51dd660a
    • J
      xen: implement Xen write_msr operation · 1153968a
      Jeremy Fitzhardinge 提交于
      64-bit uses MSRs for important things like the base for fs and
      gs-prefixed addresses.  It's more efficient to use a hypercall to
      update these, rather than go via the trap and emulate path.
      
      Other MSR writes are just passed through; in an unprivileged domain
      they do nothing, but it might be useful later.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Stephen Tweedie <sct@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Mark McLoughlin <markmc@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1153968a