13 Aug, 2011

1 commit

  • * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-tip:
    x86-64: Rework vsyscall emulation and add vsyscall= parameter
    x86-64: Wire up getcpu syscall
    x86: Remove unnecessary compile flag tweaks for vsyscall code
    x86-64: Add vsyscall:emulate_vsyscall trace event
    x86-64: Add user_64bit_mode paravirt op
    x86-64, xen: Enable the vvar mapping
    x86-64: Work around gold bug 13023
    x86-64: Move the "user" vsyscall segment out of the data segment.
    x86-64: Pad vDSO to a page boundary

    Linus Torvalds
     

05 Aug, 2011

1 commit

  • Three places in the kernel assume that the only long mode CPL 3
    selector is __USER_CS. This is not true on Xen -- Xen's sysretq
    changes cs to the magic value 0xe033.

    Two of the places are corner cases, but as of "x86-64: Improve
    vsyscall emulation CS and RIP handling"
    (c9712944b2a12373cb6ff8059afcfb7e826a6c54), vsyscalls will segfault
    if called with Xen's extra CS selector. This causes a panic when
    older init builds die.

    It seems impossible to make Xen use __USER_CS reliably without
    taking a performance hit on every system call, so this fixes the
    tests instead with a new paravirt op. It's a little ugly because
    ptrace.h can't include paravirt.h.

    Signed-off-by: Andy Lutomirski
    Link: http://lkml.kernel.org/r/f4fcb3947340d9e96ce1054a432f183f9da9db83.1312378163.git.luto@mit.edu
    Reported-by: Konrad Rzeszutek Wilk
    Signed-off-by: H. Peter Anvin

    Andy Lutomirski
     

14 Jul, 2011

1 commit

  • This patch adds a function pointer in one of the many paravirt_ops
    structs, to allow guests to register a steal time function. Besides
    a steal time function, we also declare two jump_labels. They will be
    used to allow the steal time code to be easily bypassed when not
    in use.

    Signed-off-by: Glauber Costa
    Acked-by: Rik van Riel
    Tested-by: Eric B Munson
    CC: Jeremy Fitzhardinge
    CC: Peter Zijlstra
    CC: Anthony Liguori
    Signed-off-by: Avi Kivity

    Glauber Costa
     

14 Jan, 2011

1 commit

  • Paravirt ops pmd_update/pmd_update_defer/pmd_set_at. Not all might be
    necessary (vmware needs pmd_update, Xen needs set_pmd_at, nobody needs
    pmd_update_defer), but this is to keep full simmetry with pte paravirt
    ops, which looks cleaner and simpler from a common code POV.

    Signed-off-by: Andrea Arcangeli
    Acked-by: Rik van Riel
    Acked-by: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrea Arcangeli
     

24 Aug, 2010

1 commit


28 Feb, 2010

1 commit

  • Now that both Xen and VMI disable allocations of PTE pages from high
    memory this paravirt op serves no further purpose.

    This effectively reverts ce6234b5 "add kmap_atomic_pte for mapping
    highpte pages".

    Signed-off-by: Ian Campbell
    LKML-Reference:
    Acked-by: Alok Kataria
    Cc: Jeremy Fitzhardinge
    Cc: Ingo Molnar
    Signed-off-by: H. Peter Anvin

    Ian Campbell
     

15 Dec, 2009

1 commit

  • The raw_spin* namespace was taken by lockdep for the architecture
    specific implementations. raw_spin_* would be the ideal name space for
    the spinlocks which are not converted to sleeping locks in preempt-rt.

    Linus suggested to convert the raw_ to arch_ locks and cleanup the
    name space instead of using an artifical name like core_spin,
    atomic_spin or whatever

    No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: David S. Miller
    Acked-by: Ingo Molnar
    Cc: linux-arch@vger.kernel.org

    Thomas Gleixner
     

13 Oct, 2009

1 commit

  • Bastian Blank reported a boot crash with stackprotector enabled,
    and debugged it back to edx register corruption.

    For historical reasons irq enable/disable/save/restore had special
    calling sequences to make them more efficient. With the more
    recent introduction of higher-level and more general optimisations
    this is no longer necessary so we can just use the normal PVOP_
    macros.

    This fixes some residual bugs in the old implementations which left
    edx liable to inadvertent clobbering. Also, fix some bugs in
    __PVOP_VCALLEESAVE which were revealed by actual use.

    Reported-by: Bastian Blank
    Signed-off-by: Jeremy Fitzhardinge
    Cc: Stable Kernel
    Cc: Xen-devel
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jeremy Fitzhardinge
     

19 Sep, 2009

1 commit

  • …el/git/tip/linux-2.6-tip

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (38 commits)
    x86: Move get/set_wallclock to x86_platform_ops
    x86: platform: Fix section annotations
    x86: apic namespace cleanup
    x86: Distangle ioapic and i8259
    x86: Add Moorestown early detection
    x86: Add hardware_subarch ID for Moorestown
    x86: Add early platform detection
    x86: Move tsc_init to late_time_init
    x86: Move tsc_calibration to x86_init_ops
    x86: Replace the now identical time_32/64.c by time.c
    x86: time_32/64.c unify profile_pc
    x86: Move calibrate_cpu to tsc.c
    x86: Make timer setup and global variables the same in time_32/64.c
    x86: Remove mca bus ifdef from timer interrupt
    x86: Simplify timer_ack magic in time_32.c
    x86: Prepare unification of time_32/64.c
    x86: Remove do_timer hook
    x86: Add timer_init to x86_init_ops
    x86: Move percpu clockevents setup to x86_init_ops
    x86: Move xen_post_allocator_init into xen_pagetable_setup_done
    ...

    Fix up conflicts in arch/x86/include/asm/io_apic.h

    Linus Torvalds
     

16 Sep, 2009

1 commit

  • get/set_wallclock() have already a set of platform dependent
    implementations (default, EFI, paravirt). MRST will add another
    variant.

    Moving them to platform ops simplifies the existing code and minimizes
    the effort to integrate new variants.

    Signed-off-by: Feng Tang
    LKML-Reference:
    Signed-off-by: Thomas Gleixner

    Feng Tang
     

01 Sep, 2009

1 commit


31 Aug, 2009

7 commits


27 Aug, 2009

1 commit

  • memory_setup is overridden by x86_quirks and by paravirts with weak
    functions and quirks. Unify the whole mess and make it an
    unconditional x86_init_ops function which defaults to the standard
    function and can be overridden by the early platform code.

    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

18 Jun, 2009

1 commit

  • Split the monolithic asm/paravirt.h into separate paravirt.h (inlines and other
    "active" definitions), and paravirt_types.h (types, constants and other "passive"
    definitions). This makes it easier to use the type/constant definitions without
    pulling in everything else and causing circular dependency problems.

    [ Impact: cleanup ]

    Signed-off-by: Jeremy Fitzhardinge

    Jeremy Fitzhardinge