23 Jul, 2007

13 commits

  • Previously lock was unconditionally used, but shouldn't be needed on
    UP systems.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • I got an oops while booting a 32bit kernel on KVM because it doesn't
    implement performance counters used by the NMI watchdog. Handle this
    case.

    Cc: Avi Kivity
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • Due to index register access ordering problems, when using macros a line
    like this fails (and does nothing):

    setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x88);

    With inlined functions this line will work as expected.

    Note about a side effect: Seems on Geode GX1 based systems the
    "suspend on halt power saving feature" was never enabled due to this
    wrong macro expansion. With inlined functions it will be enabled, but
    this will stop the TSC when the CPU runs into a HLT instruction.
    Kernel output something like this:
    Clocksource tsc unstable (delta = -472746897 ns)

    This is the 3rd version of this patch.

    - Adding missed arch/i386/kernel/cpu/mtrr/state.c
    Thanks to Andres Salomon
    - Adding some big fat comments into the new header file
    Suggested by Andi Kleen

    AK: fixed x86-64 compilation

    Signed-off-by: Juergen Beisert
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Juergen Beisert
     
  • local_cmpxchg() should not use any LOCK prefix. This change probably
    got lost in the move to cmpxchg.h.

    Signed-off-by: Mathieu Desnoyers
    Acked-by: Christoph Lameter
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     
  • kstat_irqs(0) includes the count of interrupt 0 from all cpus, not just
    the current cpu. The updated interrupt 0 on other cpus can stop the
    nmi_watchdog from tripping, so only include the current cpu's int 0.

    Signed-off-by: Keith Owens
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Keith Owens
     
  • This mainly changes the nops for alternative, so not very revolutionary.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • Previously this flag was only used on 32bit, but some shared code can use
    it now.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • Fix

    WARNING: arch/i386/kernel/built-in.o(.text+0xdd0d): Section mismatch: reference to .init.data:cpu_llc_id (between 'set_cpu_sibling_map' and 'initialize_secondary')
    WARNING: arch/i386/kernel/built-in.o(.text+0xdd1b): Section mismatch: reference to .init.data:cpu_llc_id (between 'set_cpu_sibling_map' and 'initialize_secondary')

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • When a machine check or NMI occurs while multiple byte code is patched
    the CPU could theoretically see an inconsistent instruction and crash.
    Prevent this by temporarily disabling MCEs and returning early in the
    NMI handler.

    Based on discussion with Mathieu Desnoyers.

    Cc: Mathieu Desnoyers
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • Reenable kprobes and alternative patching when the kernel text is write
    protected by DEBUG_RODATA

    Add a general utility function to change write protected text. The new
    function remaps the code using vmap to write it and takes care of CPU
    synchronization. It also does CLFLUSH to make icache recovery faster.

    There are some limitations on when the function can be used, see the
    comment.

    This is a newer version that also changes the paravirt_ops code.
    text_poke also supports multi byte patching now.

    Contains bug fixes from Zach Amsden and suggestions from Mathieu
    Desnoyers.

    Cc: Jan Beulich
    Cc: Jeremy Fitzhardinge
    Cc: Mathieu Desnoyers
    Cc: Zach Amsden
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • This patch uses the read and write functions provided at system.h
    for control registers instead of writting raw assembly over and
    over again in .c files. Functions to manipulate cr2 and cr8 were
    provided, as they were lacking.

    Also, removed some extra space after closing brackets

    Signed-off-by: Glauber de Oliveira Costa
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Glauber de Oliveira Costa
     
  • This patch makes the i386 behave the same way that x86_64 does when a
    segfault happens. A line gets printed to the kernel log so that tools
    that need to check for failures can behave more uniformly between
    debug.show_unhandled_signals sysctl variable to 0 (or by doing echo 0 >
    /proc/sys/debug/exception-trace)

    Also, all of the lines being printed are now using printk_ratelimit() to
    deny the ability of DoS from a local user with a program like the
    following:

    main()
    {
    while (1)
    if (!fork()) *(int *)0 = 0;
    }

    This new revision also includes the fix that Andrew did which got rid of
    new sysctl that was added to the system in earlier versions of this.
    Also, 'show-unhandled-signals' sysctl has been renamed back to the old
    'exception-trace' to avoid breakage of people's scripts.

    AK: Enabling by default for i386 will be likely controversal, but let's see what happens
    AK: Really folks, before complaining just fix your segfaults
    AK: I bet this will find a lot of silent issues

    Signed-off-by: Masoud Sharbiani
    Signed-off-by: Andi Kleen
    [ Personally, I've found the complaints useful on x86-64, so I'm all for
    this. That said, I wonder if we could do it more prettily.. -Linus ]
    Signed-off-by: Linus Torvalds

    Masoud Asgharifard Sharbiani
     
  • Fix a mismerge in commit 8b6f50ef1d5cc86b278eb42bc91630fad455fb10:
    "spufs: make signal-notification files readonly for NOSCHED contexts",
    where structs got duplicated.

    Signed-off-by: Al Viro
    Acked-by: Jeremy Kerr
    Signed-off-by: Linus Torvalds

    Al Viro
     

22 Jul, 2007

27 commits