14 Nov, 2006

1 commit

  • When another interrupt happens in exit_idle the exit idle notifier
    could be called an incorrect number of times.

    Add a test_and_clear_bit_pda and use it handle the bit
    atomically against interrupts to avoid this.

    Pointed out by Stephane Eranian

    Signed-off-by: Andi Kleen

    Andi Kleen
     

26 Sep, 2006

9 commits

  • Previously exit_idle would be called more often than enter_idle

    Now instead of using complicated tests just keep track of it
    using the per CPU variable as a flip flop. I moved the idle state into the
    PDA to make the access more efficient.

    Original bug report and an initial patch from Stephane Eranian,
    but redone by AK.

    Cc: Stephane Eranian

    Signed-off-by: Andi Kleen

    Andi Kleen
     
  • This quietens so warnings about uninitialized use of the return
    value of the pda read operations.
    Signed-off-by: Andi Kleen

    Andi Kleen
     
  • Reindent the macros in x86-64 pda.h, making them much more readable.
    Follows Jeremy's i386 version of this.

    No functional changes

    Signed-off-by: Andi Kleen

    Andi Kleen
     
  • I just added type checking for assignments the PDA in the i386 PDA code.
    Here's the x86-64 equivalent. (Obviously this doesn't contain the latest
    x86-64 PDA change.)

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Andi Kleen

    Jeremy Fitzhardinge
     
  • Apparently that is the more official way to get numbers without $ in inline
    assembly

    Signed-off-by: Andi Kleen

    Andi Kleen
     
  • This patch adds the per thread cookie field to the task struct and the PDA.
    Also it makes sure that the PDA value gets the new cookie value at context
    switch, and that a new task gets a new cookie at task creation time.

    Signed-off-by: Arjan van Ven
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andi Kleen
    CC: Andi Kleen

    Arjan van de Ven
     
  • Change the comments in the pda structure to make the first fields to have
    their offset documented and to have the comments aligned.
    The stack protector series needs a field at offset 40 (gcc ABI); annotate
    upto 40 for that reason.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andi Kleen
    CC: Andi Kleen

    Arjan van de Ven
     
  • Remove most of the special cases for the debug IST stack. This is a
    follow on clean up patch, it requires the bug fix patch that adds
    orig_ist.

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

    Keith Owens
     
  • Based on a idea by Jeremy Fitzhardinge:

    Replace the volatiles and memory clobbers in the PDA access with
    telling gcc about access to a proxy PDA structure that doesn't
    actually exist. But the dummy accesses give a defined ordering for
    read/write accesses.

    Also add some memory barriers to the early GS initialization to
    make sure no PDA access is moved before it.

    Advantage is some .text savings (probably most from better
    code for accessing "current"):

    text data bss dec hex filename
    4845647 1223688 615864 6685199 66020f vmlinux
    4837780 1223688 615864 6677332 65e354 vmlinux-pda

    1.2% smaller code

    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andi Kleen

    Andi Kleen
     

26 Mar, 2006

1 commit


12 Jan, 2006

3 commits

  • Patch uses a static PDA array early at boot and reallocates processor PDA
    with node local memory when kmalloc is ready, just before pda_init.
    The boot_cpu_pda is needed since the cpu_pda is used even before pda_init for
    that cpu is called (to set the static per-cpu areas offset table etc)

    Signed-off-by: Ravikiran Thirumalai
    Signed-off-by: Shai Fultheim
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Ravikiran G Thirumalai
     
  • Helper patch to change cpu_pda users to use macros to access cpu_pda
    instead of the cpu_pda[] array.

    Signed-off-by: Ravikiran Thirumalai
    Signed-off-by: Shai Fultheim
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Ravikiran G Thirumalai
     
  • This
    - switches the INT3 handler to run on an IST stack (to cope with
    breakpoints set by a kernel debugger on places where the kernel's
    %gs base hasn't been set up, yet); the IST stack used is shared with
    the INT1 handler's
    [AK: this also allows setting a kprobe on the interrupt/exception entry
    points]
    - allows nesting of INT1/INT3 handlers so that one can, with a kernel
    debugger, debug (at least) the user-mode portions of the INT1/INT3
    handling; the nesting isn't actively enabled here since a kernel-
    debugger-free kernel doesn't need it

    Signed-Off-By: Jan Beulich
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Jan Beulich
     

15 Nov, 2005

1 commit


13 Sep, 2005

2 commits


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds