14 Apr, 2008

1 commit

  • The per node counters are used mainly for showing data through the sysfs API.
    If that API is not compiled in then there is no point in keeping track of this
    data. Disable counters for the number of slabs and the number of total slabs
    if !SLUB_DEBUG. Incrementing the per node counters is also accessing a
    potentially contended cacheline so this could actually be a performance
    benefit to embedded systems.

    SLABINFO support is also affected. It now must depends on SLUB_DEBUG (which
    is on by default).

    Patch also avoids a check for a NULL kmem_cache_node pointer in new_slab()
    if the system is not compiled with NUMA support.

    [penberg@cs.helsinki.fi: fix oops and move ->nr_slabs into CONFIG_SLUB_DEBUG]
    Signed-off-by: Christoph Lameter
    Signed-off-by: Pekka Enberg

    Christoph Lameter
     

16 Mar, 2008

1 commit

  • This essentially reverts commit 71fc47a9adf8ee89e5c96a47222915c5485ac437
    ("ACPI: basic initramfs DSDT override support"), because the code simply
    isn't ready.

    It did ugly things to the init sequence to populate the rootfs image
    early, but that just ended up showing other problems with the whole
    approach. The fact is, the VFS layer simply isn't initialized this
    early, and the relevant ACPI code should either run much later, or this
    shouldn't be done at all.

    For 2.6.25, we'll just pick the latter option. We can revisit this
    concept later if necessary.

    Cc: Dave Hansen
    Cc: Tilman Schmidt
    Cc: Andrew Morton
    Cc: Thomas Renninger
    Cc: Eric Piel
    Cc: Len Brown
    Cc: Christoph Hellwig
    Cc: Markus Gaugusch
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

11 Mar, 2008

1 commit

  • The original preemptible-RCU patch put the choice between classic and
    preemptible RCU into kernel/Kconfig.preempt, which resulted in build failures
    on machines not supporting CONFIG_PREEMPT. This choice was therefore moved to
    init/Kconfig, which worked, but placed the choice between classic and
    preemptible RCU at the top level, a very obtuse choice indeed.

    This patch changes from the Kconfig "choice" mechanism to a pair of booleans,
    only one of which (CONFIG_PREEMPT_RCU) is user-visible, and is located in
    kernel/Kconfig.preempt, where one would expect it to be. The other
    (CONFIG_CLASSIC_RCU) is in init/Kconfig so that it is available to all
    architectures, hopefully avoiding build breakage. Thanks to Roman Zippel for
    suggesting this approach.

    Signed-off-by: Paul E. McKenney
    Cc: Ingo Molnar
    Acked-by: Steven Rostedt
    Cc: Dipankar Sarma
    Cc: Josh Triplett
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: Roman Zippel
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul E. McKenney
     

05 Mar, 2008

5 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6:
    debugfs: fix sparse warnings
    Driver core: Fix cleanup when failing device_add().
    driver core: Remove dpm_sysfs_remove() from error path of device_add()
    PM: fix new mutex-locking bug in the PM core
    PM: Do not acquire device semaphores upfront during suspend
    kobject: properly initialize ksets
    sysfs: CONFIG_SYSFS_DEPRECATED fix
    driver core: fix up Kconfig text for CONFIG_SYSFS_DEPRECATED

    Linus Torvalds
     
  • Rename Memory Controller to Memory Resource Controller. Reflect the same
    changes in the CONFIG definition for the Memory Resource Controller. Group
    together the config options for Resource Counters and Memory Resource
    Controller.

    Signed-off-by: Balbir Singh
    Cc: Paul Menage
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Balbir Singh
     
  • Keith Mannthey said:

    The parameter hotadd_percent is setup right but there is a "Malformed
    early option 'numa'" message.

    Rusty Russell said:

    This happens when the function registered with early_param() returns
    non-zero. __setup() functions return 1 if OK, module_param() and
    early_param() return 0 or a -ve error code.

    For instance:

    Linux version 2.6.25-rc3-t (raa@steel) (gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #22 SMP PREEMPT Tue Feb 26
    BIOS-provided physical RAM map:
    BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
    BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
    BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)
    BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS)
    BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data)
    BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
    Malformed early option 'loglevel'
    127MB HIGHMEM available.
    896MB LOWMEM available.

    Command line:

    BOOT_IMAGE=2.6.25-t ro root=809 ro console=ttyS0,57600n8 console=tty0 loglevel=5

    Acked-by: Yinghai Lu
    Cc: Rusty Russell
    Cc: Keith Mannthey
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Riesen
     
  • CONFIG_SYSFS_DEPRECATED=y changed its meaning recently and causes
    regressions in working setups that had SYSFS_DEPRECATED disabled.

    so rename it to SYSFS_DEPRECATED_V2 so that testers pick up the new
    default via 'make oldconfig', even if their old .config's disabled
    CONFIG_SYSFS_DEPRECATED ...

    Signed-off-by: Ingo Molnar
    Cc: Kay Sievers
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Ingo Molnar
     
  • As things get moved into this config option, the hard date of 2006 does
    not work anymore, so update the text to be more descriptive.

    Cc: Kay Sievers
    Cc: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

24 Feb, 2008

1 commit

  • Document huge memory/cache overhead of memory controller in Kconfig

    I was a little surprised that 2.6.25-rc* increased struct page for the
    memory controller. At least on many x86-64 machines it will not fit into a
    single cache line now anymore and also costs considerable amounts of RAM.
    At earlier review I remembered asking for a external data structure for
    this.

    It's also quite unobvious that a innocent looking Kconfig option with a
    single line Kconfig description has such a negative effect.

    This patch attempts to document these disadvantages at least so that users
    configuring their kernel can make a informed decision.

    Signed-off-by: Andi Kleen
    Cc: Balbir Singh
    Acked-by: Paul Menage
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Kleen
     

15 Feb, 2008

1 commit


13 Feb, 2008

1 commit


12 Feb, 2008

1 commit

  • When make -s support were added to filechk to
    combination created with make V=1 were not
    covered.
    Fix it by explicitly cover this case too.

    Signed-off-by: Sam Ravnborg
    Cc: Mike Frysinger

    Sam Ravnborg
     

10 Feb, 2008

2 commits


09 Feb, 2008

9 commits

  • Signed-off-by: Mike Frysinger
    Signed-off-by: Sam Ravnborg

    Mike Frysinger
     
  • So we can use them for the early console like console=uart8250 or
    earlycon=uart8250 or early_printk

    Signed-off-by: Yinghai Lu
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     
  • As Eric pointed out, there is no problem with init starting with sid == pgid
    == 0, and this was historical linux behavior changed in 2.6.18.

    Remove kernel_init()->__set_special_pids(), this is unneeded and complicates
    the rules for sys_setsid().

    This change and the previous change in daemonize() mean that /sbin/init does
    not need the special "session != 1" hack in sys_setsid() any longer. We can't
    remove this check yet, we should cleanup copy_process(CLONE_NEWPID) first, so
    update the comment only.

    Signed-off-by: Oleg Nesterov
    Acked-by: "Eric W. Biederman"
    Cc: Pavel Emelyanov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Change set_special_pids() to work with struct pid, not pid_t from global name
    space. This again speedups and imho cleanups the code, also a preparation for
    the next patch.

    Signed-off-by: Oleg Nesterov
    Acked-by: "Eric W. Biederman"
    Acked-by: Pavel Emelyanov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Just like with the user namespaces, move the namespace management code into
    the separate .c file and mark the (already existing) PID_NS option as "depend
    on NAMESPACES"

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Pavel Emelyanov
    Acked-by: Serge Hallyn
    Cc: Cedric Le Goater
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Kirill Korotaev
    Cc: Sukadev Bhattiprolu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     
  • Make the user_namespace.o compilation depend on this option and move the
    init_user_ns into user.c file to make the kernel compile and work without the
    namespaces support. This make the user namespace code be organized similar to
    other namespaces'.

    Also mask the USER_NS option as "depend on NAMESPACES".

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Pavel Emelyanov
    Acked-by: Serge Hallyn
    Cc: Cedric Le Goater
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Kirill Korotaev
    Cc: Sukadev Bhattiprolu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     
  • Currently the IPC namespace management code is spread over the ipc/*.c files.
    I moved this code into ipc/namespace.c file which is compiled out when needed.

    The linux/ipc_namespace.h file is used to store the prototypes of the
    functions in namespace.c and the stubs for NAMESPACES=n case. This is done
    so, because the stub for copy_ipc_namespace requires the knowledge of the
    CLONE_NEWIPC flag, which is in sched.h. But the linux/ipc.h file itself in
    included into many many .c files via the sys.h->sem.h sequence so adding the
    sched.h into it will make all these .c depend on sched.h which is not that
    good. On the other hand the knowledge about the namespaces stuff is required
    in 4 .c files only.

    Besides, this patch compiles out some auxiliary functions from ipc/sem.c,
    msg.c and shm.c files. It turned out that moving these functions into
    namespaces.c is not that easy because they use many other calls and macros
    from the original file. Moving them would make this patch complicated. On
    the other hand all these functions can be consolidated, so I will send a
    separate patch doing this a bit later.

    Signed-off-by: Pavel Emelyanov
    Acked-by: Serge Hallyn
    Cc: Cedric Le Goater
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Kirill Korotaev
    Cc: Sukadev Bhattiprolu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     
  • Currently all the namespace management code is in the kernel/utsname.c file,
    so just compile it out and make stubs in the appropriate header.

    The init namespace itself is in init/version.c and is in the kernel all the
    time.

    Signed-off-by: Pavel Emelyanov
    Acked-by: Serge Hallyn
    Cc: Cedric Le Goater
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Kirill Korotaev
    Cc: Sukadev Bhattiprolu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     
  • The option is selectable if EMBEDDED is chosen only. When the EMBEDDED is off
    namespaces will be on.

    Signed-off-by: Pavel Emelyanov
    Acked-by: Serge Hallyn
    Cc: Cedric Le Goater
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Kirill Korotaev
    Cc: Sukadev Bhattiprolu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     

08 Feb, 2008

3 commits

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (112 commits)
    ACPI: fix build warning
    Revert "cpuidle: build fix for non-x86"
    ACPI: update intrd DSDT override console messages
    ACPI: update DSDT override documentation
    ACPI: Add "acpi_no_initrd_override" kernel parameter
    ACPI: its a directory not a folder....
    ACPI: misc cleanups
    ACPI: add missing prink prefix strings
    ACPI: cleanup acpi.h
    ACPICA: fix CONFIG_ACPI_DEBUG_FUNC_TRACE build
    ACPI: video: Ignore ACPI video devices that aren't present in hardware
    ACPI: video: reset brightness on resume
    ACPI: video: call ACPI notifier chain for ACPI video notifications
    ACPI: create notifier chain to get hotkey events to graphics driver
    ACPI: video: delete unused display switch on hotkey event code
    ACPI: video: create "brightness_switch_enabled" modparam
    cpuidle: Add a poll_idle method
    ACPI: cpuidle: Support C1 idle time accounting
    ACPI: enable MWAIT for C1 idle
    ACPI: idle: Fix acpi_safe_halt usages and interrupt enabling/disabling
    ...

    Linus Torvalds
     
  • Setup the memory cgroup and add basic hooks and controls to integrate
    and work with the cgroup.

    Signed-off-by: Balbir Singh
    Cc: Pavel Emelianov
    Cc: Paul Menage
    Cc: Peter Zijlstra
    Cc: "Eric W. Biederman"
    Cc: Nick Piggin
    Cc: Kirill Korotaev
    Cc: Herbert Poetzl
    Cc: David Rientjes
    Cc: Vaidyanathan Srinivasan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Balbir Singh
     
  • With fixes from David Rientjes

    Introduce generic structures and routines for resource accounting.

    Each resource accounting cgroup is supposed to aggregate it,
    cgroup_subsystem_state and its resource-specific members within.

    Signed-off-by: Pavel Emelianov
    Signed-off-by: Balbir Singh
    Cc: Paul Menage
    Cc: Peter Zijlstra
    Cc: "Eric W. Biederman"
    Cc: Nick Piggin
    Cc: Kirill Korotaev
    Cc: Herbert Poetzl
    Cc: Vaidyanathan Srinivasan
    Signed-off-by: David Rientjes
    Cc: Pavel Emelianov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelianov
     

07 Feb, 2008

8 commits

  • The basics of DSDT from initramfs. In case this option is selected,
    populate_rootfs() is called a bit earlier to have the initramfs content
    available during ACPI initialization.

    This is a very similar path to the one available at
    http://gaugusch.at/kernel.shtml but with some update in the
    documentation, default set to No and the change of populate_rootfs() the
    "Jeff Mahony way" (which avoids reading the initramfs twice).

    Signed-off-by: Thomas Renninger
    Signed-off-by: Eric Piel
    Signed-off-by: Len Brown

    Markus Gaugusch
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
    x86: fix deadlock, make pgd_lock irq-safe
    virtio: fix trivial build bug
    x86: fix mttr trimming
    x86: delay CPA self-test and repeat it
    x86: fix 64-bit sections
    generic: add __FINITDATA
    x86: remove suprious ifdefs from pageattr.c
    x86: mark the .rodata section also NX
    x86: fix iret exception recovery on 64-bit
    cpuidle: dubious one-bit signed bitfield in cpuidle.h
    x86: fix sparse warnings in powernow-k8.c
    x86: fix sparse error in traps_32.c
    x86: trivial sparse/checkpatch in quirks.c
    x86 ptrace: disallow null cs/ss
    MAINTAINERS: RDC R-321x SoC maintainer
    brk randomization: introduce CONFIG_COMPAT_BRK
    brk: check the lower bound properly
    x86: remove X2 workaround
    x86: make spurious fault handler aware of large mappings
    x86: make traps on entry code be debuggable in user space, 64-bit

    Linus Torvalds
     
  • based on similar patch from: Pavel Machek

    Introduce CONFIG_COMPAT_BRK. If disabled then the kernel is free
    (but not obliged to) randomize the brk area.

    Heap randomization breaks ancient binaries, so we keep COMPAT_BRK
    enabled by default.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • calibrate_delay() must be __cpuinit, not __{dev,}init.

    I've verified that this is correct for all users.

    While doing the latter, I also did the following cleanups:
    - remove pointless additional prototypes in C files
    - ensure all users #include

    This fixes the following section mismatches with CONFIG_HOTPLUG=n,
    CONFIG_HOTPLUG_CPU=y:

    WARNING: vmlinux.o(.text+0x1128d): Section mismatch: reference to .init.text.1:calibrate_delay (between 'check_cx686_slop' and 'set_cx86_reorder')
    WARNING: vmlinux.o(.text+0x25102): Section mismatch: reference to .init.text.1:calibrate_delay (between 'smp_callin' and 'cpu_coregroup_map')

    Signed-off-by: Adrian Bunk
    Cc: Ivan Kokshaysky
    Cc: Richard Henderson
    Cc: "Luck, Tony"
    Cc: Ralf Baechle
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: "David S. Miller"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Christian Zankel
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Given that init/Makefile includes initramfs.c in the build only if
    CONFIG_BLK_DEV_INITRD is defined, there seems to be no point checking for
    it yet again.

    Signed-off-by: Robert P. J. Day
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert P. J. Day
     
  • Ad a proper prototype for migration_init() in include/linux/fs.h

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Add a proper prototype for signals_init() in include/linux/signal.h

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • - All implementations can be __devinit

    - The function prototypes were in asm/timex.h but they all must be the same,
    so create a single declaration in linux/timex.h.

    - uninline the sparc64 version to match the other architectures

    - Don't bother #defining ARCH_HAS_READ_CURRENT_TIMER to a particular value.

    [ezk@cs.sunysb.edu: fix build]
    Cc: "David S. Miller"
    Cc: Haavard Skinnemoen
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

06 Feb, 2008

3 commits


03 Feb, 2008

2 commits

  • Move the instrumentation Kconfig to

    arch/Kconfig for architecture dependent options
    - oprofile
    - kprobes

    and

    init/Kconfig for architecture independent options
    - profiling
    - markers

    Remove the "Instrumentation Support" menu. Everything moves to "General setup".
    Delete the kernel/Kconfig.instrumentation file.

    Signed-off-by: Mathieu Desnoyers
    Cc: Linus Torvalds
    Cc:
    Signed-off-by: Sam Ravnborg

    Mathieu Desnoyers
     
  • Puts the content of arch/Kconfig in the "General setup" menu.

    Linus:

    > Should it come with a re-duplication of it's content into each
    > architecture, which was the case previously ? The oprofile and kprobes
    > menu entries were litteraly cut and pasted from one architecture to
    > another. Should we put its content in init/Kconfig then ?

    I don't think it's a good idea to go back to making it per-architecture,
    although that extensive "depends on " might
    indicate that there certainly is room for cleanup there.

    And I don't think it's wrong keeping it in kernel/Kconfig.xyz per se, I
    just think it's wrong to (a) lump the code together when it really doesn't
    necessarily need to and (b) show it to users as some kind of choice that
    is tied together (whether it then has common code or not).

    On the per-architecture side, I do think it would be better to *not* have
    internal architecture knowledge in a generic file, and as such a line like

    depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32

    really shouldn't exist in a file like kernel/Kconfig.instrumentation.

    It would be much better to do

    depends on ARCH_SUPPORTS_KPROBES

    in that generic file, and then architectures that do support it would just
    have a

    bool ARCH_SUPPORTS_KPROBES
    default y

    in *their* architecture files. That would seem to be much more logical,
    and is readable both for arch maintainers *and* for people who have no
    clue - and don't care - about which architecture is supposed to support
    which interface...

    Sam Ravnborg:

    Stuff it into a new file: arch/Kconfig
    We can then extend this file to include all the 'trailing'
    Kconfig things that are anyway equal for all ARCHs.

    But it should be kept clean - so if we introduce such a file
    then we should use ARCH_HAS_whatever in the arch specific Kconfig
    files to enable stuff that is not shared.

    [...]

    The above suggestion is actually not exactly the best way to do it...
    First the naming..
    A quick grep shows following usage today (in Kconfig files)
    ARCH_HAS 51
    ARCH_SUPPORTS 4
    HAVE_ARCH 7

    ARCH_HAS is the clear winner.

    In the common Kconfig file do:

    config FOO
    depends on ARCH_HAS_FOO
    bool "bla bla"

    config ARCH_HAS_FOO
    def_bool n

    In the arch specific Kconfig file in a suitable place do:

    config SUITABLE_OPTION
    select ARCH_HAS_FOO

    The naming of ARCH_HAS_ is fixed and shall be:
    ARCH_HAS_

    Only a single line added pr. architecture.
    And we will end up with a (maybe even commented) list of trivial selects.

    - Yet another update :

    Moving to HAVE_* now.

    Signed-off-by: Mathieu Desnoyers
    Cc: Jeff Dike
    Cc: David Howells
    Cc: Ananth N Mavinakayanahalli
    Signed-off-by: Sam Ravnborg

    Mathieu Desnoyers
     

01 Feb, 2008

1 commit