31 Aug, 2007

1 commit

  • Alexey Dobriyan reports that maxcpus=1 is still broken in 2.6.23-rc4:
    if CONFIG_HOTPLUG_CPU is not set, x86_64 bootup oopses in show_stat() -
    for_each_possible_cpu accesses a per-cpu area which was never set up.

    Alexey identified commit 61ec7567db103d537329b0db9a887db570431ff4
    (ACPI: boot correctly with "nosmp" or "maxcpus=0") as the origin;
    but it's not really to blame, just exposes a bug in 2.6.23-rc1's commit
    8b3b295502444340dd0701855ac422fbf32e161d (Especially when !CONFIG_HOTPLUG_CPU,
    avoid needlessy allocating resources for CPUs that can never become available).

    rc1's test for max_cpus < 2 in start_kernel() wasn't working because
    max_cpus was still NR_CPUS at that point: until rc4 moved the maxcpus
    parsing earlier. Now it sets cpu_possible_map to 1 before allocating
    all possible per-cpu areas; then smp_init() expands cpu_possible_map
    to cpu_present_map (0xf in my case) later on.

    rc1's commit has good intentions, but expects cpu_present_map to be
    limited by maxcpus, which is only the case on i386. cpus_and(possible,
    possible,present) might be good, but needs an audit of cpu_present_map
    uses - there may well be assumptions that any cpu present is possible.

    So stay safe for now and just revert those #ifndef CONFIG_HOTPLUG_CPU
    optimizations in rc1's commit.

    Signed-off-by: Hugh Dickins
    Cc: Alexey Dobriyan
    Cc: Len Brown
    Cc: Andrew Morton
    Cc: Jan Beulich
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     

28 Aug, 2007

1 commit

  • Commit 61ec7567db103d537329b0db9a887db570431ff4 ('ACPI: boot correctly
    with "nosmp" or "maxcpus=0"') broke 'maxcpus=' handling on x86[-64].

    maxcpus=N is now having no effect on x86_64, and freezing bootup on i386
    (because of inconsistency with the separate maxcpus parsing down in
    arch/i386, I guess). That's because early_param parsing is a little
    different from __setup parsing, and needs the "=" omitted: then it seems
    to work as the original commit intended (no mention of IO-APIC in
    /proc/interrupts when maxcpus=0).

    Signed-off-by: Hugh Dickins
    Cc: Andrew Morton
    Cc: Len Brown
    Cc: Andi Kleen
    Cc: Rusty Russell
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     

21 Aug, 2007

1 commit

  • In MPS mode, "nosmp" and "maxcpus=0" boot a UP kernel with IOAPIC disabled.
    However, in ACPI mode, these parameters didn't completely disable
    the IO APIC initialization code and boot failed.

    init/main.c:
    Disable the IO_APIC if "nosmp" or "maxcpus=0"
    undefine disable_ioapic_setup() when it doesn't apply.

    i386:
    delete ioapic_setup(), it was a duplicate of parse_noapic()
    delete undefinition of disable_ioapic_setup()

    x86_64:
    rename disable_ioapic_setup() to parse_noapic() to match i386
    define disable_ioapic_setup() in header to match i386

    http://bugzilla.kernel.org/show_bug.cgi?id=1641

    Acked-by: Andi Kleen
    Signed-off-by: Len Brown

    Len Brown
     

17 Jul, 2007

3 commits

  • Especially when !CONFIG_HOTPLUG_CPU, avoid needlessy allocating resources for
    CPUs that can never become available.

    Signed-off-by: Jan Beulich
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Beulich
     
  • It's useful sometimes to disable the softlockup checker at boottime.
    Especially if it triggers during a distro install.

    Signed-off-by: Dave Jones
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • Beacuse SERIAL_PORT_DFNS is removed from include/asm-i386/serial.h and
    include/asm-x86_64/serial.h. the serial8250_ports need to be probed late in
    serial initializing stage. the console_init=>serial8250_console_init=>
    register_console=>serial8250_console_setup will return -ENDEV, and console
    ttyS0 can not be enabled at that time. need to wait till uart_add_one_port in
    drivers/serial/serial_core.c to call register_console to get console ttyS0.
    that is too late.

    Make early_uart to use early_param, so uart console can be used earlier. Make
    it to be bootconsole with CON_BOOT flag, so can use console handover feature.
    and it will switch to corresponding normal serial console automatically.

    new command line will be:
    console=uart8250,io,0x3f8,9600n8
    console=uart8250,mmio,0xff5e0000,115200n8
    or
    earlycon=uart8250,io,0x3f8,9600n8
    earlycon=uart8250,mmio,0xff5e0000,115200n8

    it will print in very early stage:
    Early serial console at I/O port 0x3f8 (options '9600n8')
    console [uart0] enabled
    later for console it will print:
    console handover: boot [uart0] -> real [ttyS0]

    Signed-off-by:
    Cc: Andi Kleen
    Cc: Bjorn Helgaas
    Cc: Russell King
    Cc: Gerd Hoffmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     

10 Jul, 2007

1 commit


19 May, 2007

1 commit


11 May, 2007

1 commit


10 May, 2007

1 commit

  • Currently there is a circular reference between work queue initialization
    and kthread initialization. This prevents the kthread infrastructure from
    initializing until after work queues have been initialized.

    We want the properties of tasks created with kthread_create to be as close
    as possible to the init_task and to not be contaminated by user processes.
    The later we start our kthreadd that creates these tasks the harder it is
    to avoid contamination from user processes and the more of a mess we have
    to clean up because the defaults have changed on us.

    So this patch modifies the kthread support to not use work queues but to
    instead use a simple list of structures, and to have kthreadd start from
    init_task immediately after our kernel thread that execs /sbin/init.

    By being a true child of init_task we only have to change those process
    settings that we want to have different from init_task, such as our process
    name, the cpus that are allowed, blocking all signals and setting SIGCHLD
    to SIG_IGN so that all of our children are reaped automatically.

    By being a true child of init_task we also naturally get our ppid set to 0
    and do not wind up as a child of PID == 1. Ensuring that tasks generated
    by kthread_create will not slow down the functioning of the wait family of
    functions.

    [akpm@linux-foundation.org: use interruptible sleeps]
    Signed-off-by: Eric W. Biederman
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     

09 May, 2007

2 commits


08 May, 2007

1 commit

  • The nr_cpu_ids value is currently only calculated in smp_init. However, it
    may be needed before (SLUB needs it on kmem_cache_init!) and other kernel
    components may also want to allocate dynamically sized per cpu array before
    smp_init. So move the determination of possible cpus into sched_init()
    where we already loop over all possible cpus early in boot.

    Also initialize both nr_node_ids and nr_cpu_ids with the highest value they
    could take. If we have accidental users before these values are determined
    then the current valud of 0 may cause too small per cpu and per node arrays
    to be allocated. If it is set to the maximum possible then we only waste
    some memory for early boot users.

    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

07 May, 2007

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (38 commits)
    kconfig: fix mconf segmentation fault
    kbuild: enable use of code from a different dir
    kconfig: error out if recursive dependencies are found
    kbuild: scripts/basic/fixdep segfault on pathological string-o-death
    kconfig: correct minor typo in Kconfig warning message.
    kconfig: fix path to modules.txt in Kconfig help
    usr/Kconfig: fix typo
    kernel-doc: alphabetically-sorted entries in index.html of 'htmldocs'
    kbuild: be more explicit on missing .config file
    kbuild: clarify the creation of the LOCALVERSION_AUTO string.
    kbuild: propagate errors from find in scripts/gen_initramfs_list.sh
    kconfig: refer to qt3 if we cannot find qt libraries
    kbuild: handle compressed cpio initramfs-es
    kbuild: ignore section mismatch warning for references from .paravirtprobe to .init.text
    kbuild: remove stale comment in modpost.c
    kbuild/mkuboot.sh: allow spaces in CROSS_COMPILE
    kbuild: fix make mrproper for Documentation/DocBook/man
    kbuild: remove kconfig binaries during make mrproper
    kconfig/menuconfig: do not hardcode '.config'
    kbuild: override build timestamp & version
    ...

    Linus Torvalds
     

03 May, 2007

2 commits

  • In init/main.c we have a reference from rest_init() to .init.text
    which is intentional.
    Rename the function 'init' to 'kernel_init' to make it a
    kernel wide unique symbol and whitelist the reference.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Let's allow page-alignment in general for per-cpu data (wanted by Xen, and
    Ingo suggested KVM as well).

    Because larger alignments can use more room, we increase the max per-cpu
    memory to 64k rather than 32k: it's getting a little tight.

    Signed-off-by: Rusty Russell
    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Andi Kleen
    Acked-by: Ingo Molnar
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton

    Jeremy Fitzhardinge
     

21 Feb, 2007

1 commit

  • We frequently need the maximum number of possible processors in order to
    allocate arrays for all processors. So far this was done using
    highest_possible_processor_id(). However, we do need the number of
    processors not the highest id. Moreover the number was so far dynamically
    calculated on each invokation. The number of possible processors does not
    change when the system is running. We can therefore calculate that number
    once.

    Signed-off-by: Christoph Lameter
    Cc: Frederik Deweerdt
    Cc: Neil Brown
    Cc: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

20 Feb, 2007

1 commit

  • powerpc gets:

    init/main.c: In function `do_basic_setup':
    init/main.c:714: warning: implicit declaration of function `init_irq_proc'

    but we cannot include linux/irq.h in generic code.

    Fix it by moving the declaration into linux/interrupt.h instead.

    And make sure all code that defines init_irq_proc() is including
    linux/interrupt.h.

    And nuke an ifdef-in-C

    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

17 Feb, 2007

1 commit

  • With Ingo Molnar

    The tick-management code is the first user of the clockevents layer. It takes
    clock event devices from the clock events core and uses them to provide the
    periodic tick.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Cc: john stultz
    Cc: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     

15 Feb, 2007

3 commits

  • * 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6: (94 commits)
    [PATCH] x86-64: Remove mk_pte_phys()
    [PATCH] i386: Fix broken CONFIG_COMPAT_VDSO on i386
    [PATCH] i386: fix 32-bit ioctls on x64_32
    [PATCH] x86: Unify pcspeaker platform device code between i386/x86-64
    [PATCH] i386: Remove extern declaration from mm/discontig.c, put in header.
    [PATCH] i386: Rename cpu_gdt_descr and remove extern declaration from smpboot.c
    [PATCH] i386: Move mce_disabled to asm/mce.h
    [PATCH] i386: paravirt unhandled fallthrough
    [PATCH] x86_64: Wire up compat epoll_pwait
    [PATCH] x86: Don't require the vDSO for handling a.out signals
    [PATCH] i386: Fix Cyrix MediaGX detection
    [PATCH] i386: Fix warning in cpu initialization
    [PATCH] i386: Fix warning in microcode.c
    [PATCH] x86: Enable NMI watchdog for AMD Family 0x10 CPUs
    [PATCH] x86: Add new CPUID bits for AMD Family 10 CPUs in /proc/cpuinfo
    [PATCH] i386: Remove fastcall in paravirt.[ch]
    [PATCH] x86-64: Fix wrong gcc check in bitops.h
    [PATCH] x86-64: survive having no irq mapping for a vector
    [PATCH] i386: geode configuration fixes
    [PATCH] i386: add option to show more code in oops reports
    ...

    Linus Torvalds
     
  • With this change the sysctl inodes can be cached and nothing needs to be done
    when removing a sysctl table.

    For a cost of 2K code we will save about 4K of static tables (when we remove
    de from ctl_table) and 70K in proc_dir_entries that we will not allocate, or
    about half that on a 32bit arch.

    The speed feels about the same, even though we can now cache the sysctl
    dentries :(

    We get the core advantage that we don't need to have a 1 to 1 mapping between
    ctl table entries and proc files. Making it possible to have /proc/sys vary
    depending on the namespace you are in. The currently merged namespaces don't
    have an issue here but the network namespace under /proc/sys/net needs to have
    different directories depending on which network adapters are visible. By
    simply being a cache different directories being visible depending on who you
    are is trivial to implement.

    [akpm@osdl.org: fix uninitialised var]
    [akpm@osdl.org: fix ARM build]
    [bunk@stusta.de: make things static]
    Signed-off-by: Eric W. Biederman
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • Signed-off-by: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     

13 Feb, 2007

2 commits

  • o init() is a non __init function in .text section but it calls many
    functions which are in .init.text section. Hence MODPOST generates lots
    of cross reference warnings on i386 if compiled with CONFIG_RELOCATABLE=y

    WARNING: vmlinux - Section mismatch: reference to .init.text:smp_prepare_cpus from .text between 'init' (at offset 0xc0101049) and 'rest_init'
    WARNING: vmlinux - Section mismatch: reference to .init.text:migration_init from .text between 'init' (at offset 0xc010104e) and 'rest_init'
    WARNING: vmlinux - Section mismatch: reference to .init.text:spawn_ksoftirqd from .text between 'init' (at offset 0xc0101053) and 'rest_init'

    o This patch breaks down init() in two parts. One part which can go
    in .init.text section and can be freed and other part which has to
    be non __init(init_post()). Now init() calls init_post() and init_post()
    does not call any functions present in .init sections. Hence getting
    rid of warnings.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Andi Kleen

    Vivek Goyal
     
  • Current implementation stores a static command-line buffer allocated to
    COMMAND_LINE_SIZE size. Most architectures stores two copies of this buffer,
    one for future reference and one for parameter parsing.

    Current kernel command-line size for most architecture is much too small for
    module parameters, video settings, initramfs paramters and much more. The
    problem is that setting COMMAND_LINE_SIZE to a grater value, allocates static
    buffers.

    In order to allow a greater command-line size, these buffers should be
    dynamically allocated or marked as init disposable buffers, so unused memory
    can be released.

    This patch renames the static saved_command_line variable into
    boot_command_line adding __initdata attribute, so that it can be disposed
    after initialization. This rename is required so applications that use
    saved_command_line will not be affected by this change.

    It reintroduces saved_command_line as dynamically allocated buffer to match
    the data in boot_command_line.

    It also mark secondary command-line buffer as __initdata, and copies it to
    dynamically allocated static_command_line buffer components may hold reference
    to it after initialization.

    This patch is for linux-2.6.20-rc4-mm1 and is divided to target each
    architecture. I could not check this in any architecture so please forgive me
    if I got it wrong.

    The per-architecture modification is very simple, use boot_command_line in
    place of saved_command_line. The common code is the change into dynamic
    command-line.

    This patch:

    1. Rename saved_command_line into boot_command_line, mark as init
    disposable.

    2. Add dynamic allocated saved_command_line.

    3. Add dynamic allocated static_command_line.

    4. During startup copy: boot_command_line into saved_command_line. arch
    command_line into static_command_line.

    5. Parse static_command_line and not arch command_line, so arch
    command_line may be freed.

    Signed-off-by: Alon Bar-Lev
    Cc: Andi Kleen
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Russell King
    Cc: Ian Molton
    Cc: Mikael Starvik
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Hirokazu Takata
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Richard Curnow
    Cc: William Lee Irwin III
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Cc: Miles Bader
    Cc: Chris Zankel
    Cc: "Luck, Tony"
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Cc: Greg Ungerer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alon Bar-Lev
     

12 Feb, 2007

1 commit


11 Jan, 2007

2 commits

  • o Some functions which should have been in init sections as they are called
    only once. Put them in init sections. Otherwise MODPOST generates warning
    as these functions are placed in .text and they end up accessing something
    in init sections.

    WARNING: vmlinux - Section mismatch: reference to .init.text:migration_init
    from .text between 'do_pre_smp_initcalls' (at offset 0xc01000d1) and
    'run_init_process'

    Signed-off-by: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Andi Kleen

    Vivek Goyal
     
  • Revert previous attempts at messing with the linux banner string and
    simply use a separate format string for proc.

    Signed-off-by: Roman Zippel
    Acked-by: Olaf Hering
    Acked-by: Jean Delvare
    Cc: Andrey Borzenkov
    Cc: Andrew Morton
    Cc: Andy Whitcroft
    Cc: Herbert Poetzl
    Signed-off-by: Linus Torvalds

    Roman Zippel
     

06 Jan, 2007

1 commit

  • The calls made by parse_parms to other initialization code might enable
    interrupts again way too early.

    Having interrupts on this early can make systems PANIC when they initialize
    the IRQ controllers (which happens later in the code). This patch detects
    that irq's are enabled again, barfs about it and disables them again as a
    safety net.

    [akpm@osdl.org: cleanups]
    Signed-off-by: Ard van Breemen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ard van Breemen
     

21 Dec, 2006

1 commit


12 Dec, 2006

2 commits

  • We should not initialize rootfs before all the core initializers have
    run. So do it as a separate stage just before starting the regular
    driver initializers.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • As reported by Andy Whitcroft, at least the SLES9 initrd build process
    depends on getting the kernel version from the kernel binary. It does
    that by simply trawling the binary and looking for the signature of the
    "linux_banner" string (the string "Linux version " to be exact. Which
    is really broken in itself, but whatever..)

    That got broken when the string was changed to allow /proc/version to
    change the UTS release information dynamically, and "get_kernel_version"
    thus returned "%s" (see commit a2ee8649ba6d71416712e798276bf7c40b64e6e5:
    "[PATCH] Fix linux banner utsname information").

    This just restores "linux_banner" as a static string, which should fix
    the version finding. And /proc/version simply uses a different string.

    To avoid wasting even that miniscule amount of memory, the early boot
    string should really be marked __initdata, but that just causes the same
    bug in SLES9 to re-appear, since it will then find other occurrences of
    "Linux version " first.

    Cc: Andy Whitcroft
    Acked-by: Herbert Poetzl
    Cc: Andi Kleen
    Cc: Andrew Morton
    Cc: Steve Fox
    Acked-by: Olaf Hering
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

09 Dec, 2006

2 commits

  • Add a per pid_namespace child-reaper. This is needed so processes are reaped
    within the same pid space and do not spill over to the parent pid space. Its
    also needed so containers preserve existing semantic that pid == 1 would reap
    orphaned children.

    This is based on Eric Biederman's patch: http://lkml.org/lkml/2006/2/6/285

    Signed-off-by: Sukadev Bhattiprolu
    Signed-off-by: Cedric Le Goater
    Cc: Kirill Korotaev
    Cc: Eric W. Biederman
    Cc: Herbert Poetzl
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sukadev Bhattiprolu
     
  • utsname information is shown in the linux banner, which also is used for
    /proc/version (which can have different utsname values inside a uts
    namespaces). this patch makes the varying data arguments and changes the
    string to a format string, using those arguments.

    Signed-off-by: Herbert Poetzl
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Herbert Poetzl
     

08 Dec, 2006

2 commits

  • * 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6: (156 commits)
    [PATCH] x86-64: Export smp_call_function_single
    [PATCH] i386: Clean up smp_tune_scheduling()
    [PATCH] unwinder: move .eh_frame to RODATA
    [PATCH] unwinder: fully support linker generated .eh_frame_hdr section
    [PATCH] x86-64: don't use set_irq_regs()
    [PATCH] x86-64: check vector in setup_ioapic_dest to verify if need setup_IO_APIC_irq
    [PATCH] x86-64: Make ix86 default to HIGHMEM4G instead of NOHIGHMEM
    [PATCH] i386: replace kmalloc+memset with kzalloc
    [PATCH] x86-64: remove remaining pc98 code
    [PATCH] x86-64: remove unused variable
    [PATCH] x86-64: Fix constraints in atomic_add_return()
    [PATCH] x86-64: fix asm constraints in i386 atomic_add_return
    [PATCH] x86-64: Correct documentation for bzImage protocol v2.05
    [PATCH] x86-64: replace kmalloc+memset with kzalloc in MTRR code
    [PATCH] x86-64: Fix numaq build error
    [PATCH] x86-64: include/asm-x86_64/cpufeature.h isn't a userspace header
    [PATCH] unwinder: Add debugging output to the Dwarf2 unwinder
    [PATCH] x86-64: Clarify error message in GART code
    [PATCH] x86-64: Fix interrupt race in idle callback (3rd try)
    [PATCH] x86-64: Remove unwind stack pointer alignment forcing again
    ...

    Fixed conflict in include/linux/uaccess.h manually

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Keith says

    Compiling 2.6.19-rc6 with gcc version 4.1.0 (SUSE Linux), wait_hpet_tick is
    optimized away to a never ending loop and the kernel hangs on boot in timer
    setup.

    0000001a :
    1a: 55 push %ebp
    1b: 89 e5 mov %esp,%ebp
    1d: eb fe jmp 1d

    This is not a problem with gcc 3.3.5. Adding barrier() calls to
    wait_hpet_tick does not help, making the variables volatile does.

    And the consensus is that gcc-4.1.0 is busted. Suse went and shipped
    gcc-4.1.0 so we cannot ban it. Add a warning.

    Cc: Keith Owens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

07 Dec, 2006

1 commit

  • Both lhype and Xen want to call the core of the x86 cpu detect code before
    calling start_kernel.

    (extracted from larger patch)

    AK: folded in start_kernel header patch

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Rusty Russell
    Signed-off-by: Andi Kleen
    Cc: Jeremy Fitzhardinge
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton

    Rusty Russell
     

22 Oct, 2006

1 commit

  • This changes the dwarf2 unwinder to do a binary search for CIEs
    instead of a linear work. The linker is unfortunately not
    able to build a proper lookup table at link time, instead it creates
    one at runtime as soon as the bootmem allocator is usable (so you'll continue
    using the linear lookup for the first [hopefully] few calls).
    The code should be ready to utilize a build-time created table once
    a fixed linker becomes available.

    Signed-off-by: Jan Beulich
    Signed-off-by: Andi Kleen

    Jan Beulich
     

02 Oct, 2006

2 commits

  • There are a few places in the kernel where the init task is signaled. The
    ctrl+alt+del sequence is one them. It kills a task, usually init, using a
    cached pid (cad_pid).

    This patch replaces the pid_t by a struct pid to avoid pid wrap around
    problem. The struct pid is initialized at boot time in init() and can be
    modified through systctl with

    /proc/sys/kernel/cad_pid

    [ I haven't found any distro using it ? ]

    It also introduces a small helper routine kill_cad_pid() which is used
    where it seemed ok to use cad_pid instead of pid 1.

    [akpm@osdl.org: cleanups, build fix]
    Signed-off-by: Cedric Le Goater
    Cc: Eric W. Biederman
    Cc: Martin Schwidefsky
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cedric Le Goater
     
  • The use of execve() in the kernel is dubious, since it relies on the
    __KERNEL_SYSCALLS__ mechanism that stores the result in a global errno
    variable. As a first step of getting rid of this, change all users to a
    global kernel_execve function that returns a proper error code.

    This function is a terrible hack, and a later patch removes it again after the
    kernel syscalls are gone.

    Signed-off-by: Arnd Bergmann
    Cc: Andi Kleen
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Russell King
    Cc: Ian Molton
    Cc: Mikael Starvik
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: Hirokazu Takata
    Cc: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Richard Curnow
    Cc: William Lee Irwin III
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Cc: Miles Bader
    Cc: Chris Zankel
    Cc: "Luck, Tony"
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

27 Sep, 2006

1 commit

  • Resetting the devices during driver initialization can be a costly
    operation in terms of time (especially scsi devices). This option can be
    used by drivers to know that user forcibly wants the devices to be reset
    during initialization.

    This option can be useful while kernel is booting in unreliable
    environment. For ex. during kdump boot where devices are in unknown
    random state and BIOS execution has been skipped.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal