15 Aug, 2012

1 commit

  • This reverts commit bacef661acdb634170a8faddbc1cf28e8f8b9eee.

    This commit has been found to cause serious regressions on a number of
    ASUS machines at the least. We probably need to provide a 1:1 map in
    addition to the EFI virtual memory map in order for this to work.

    Signed-off-by: H. Peter Anvin
    Reported-and-bisected-by: Jérôme Carretero
    Cc: Jan Beulich
    Cc: Matt Fleming
    Cc: Matthew Garrett
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20120805172903.5f8bb24c@zougloub.eu

    H. Peter Anvin
     

01 Aug, 2012

3 commits

  • When hotadd_new_pgdat() is called to create new pgdat for a new node, a
    fallback zonelist should be created for the new node. There's code to try
    to achieve that in hotadd_new_pgdat() as below:

    /*
    * The node we allocated has no zone fallback lists. For avoiding
    * to access not-initialized zonelist, build here.
    */
    mutex_lock(&zonelists_mutex);
    build_all_zonelists(pgdat, NULL);
    mutex_unlock(&zonelists_mutex);

    But it doesn't work as expected. When hotadd_new_pgdat() is called, the
    new node is still in offline state because node_set_online(nid) hasn't
    been called yet. And build_all_zonelists() only builds zonelists for
    online nodes as:

    for_each_online_node(nid) {
    pg_data_t *pgdat = NODE_DATA(nid);

    build_zonelists(pgdat);
    build_zonelist_cache(pgdat);
    }

    Though we hope to create zonelist for the new pgdat, but it doesn't. So
    add a new parameter "pgdat" the build_all_zonelists() to build pgdat for
    the new pgdat too.

    Signed-off-by: Jiang Liu
    Signed-off-by: Xishi Qiu
    Cc: Mel Gorman
    Cc: Michal Hocko
    Cc: Minchan Kim
    Cc: Rusty Russell
    Cc: Yinghai Lu
    Cc: Tony Luck
    Cc: KAMEZAWA Hiroyuki
    Cc: KOSAKI Motohiro
    Cc: David Rientjes
    Cc: Keping Chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Sanity:

    CONFIG_CGROUP_MEM_RES_CTLR -> CONFIG_MEMCG
    CONFIG_CGROUP_MEM_RES_CTLR_SWAP -> CONFIG_MEMCG_SWAP
    CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED -> CONFIG_MEMCG_SWAP_ENABLED
    CONFIG_CGROUP_MEM_RES_CTLR_KMEM -> CONFIG_MEMCG_KMEM

    [mhocko@suse.cz: fix missed bits]
    Cc: Glauber Costa
    Acked-by: Michal Hocko
    Cc: Johannes Weiner
    Cc: KAMEZAWA Hiroyuki
    Cc: Hugh Dickins
    Cc: Tejun Heo
    Cc: Aneesh Kumar K.V
    Cc: David Rientjes
    Cc: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Implement a new controller that allows us to control HugeTLB allocations.
    The extension allows to limit the HugeTLB usage per control group and
    enforces the controller limit during page fault. Since HugeTLB doesn't
    support page reclaim, enforcing the limit at page fault time implies that,
    the application will get SIGBUS signal if it tries to access HugeTLB pages
    beyond its limit. This requires the application to know beforehand how
    much HugeTLB pages it would require for its use.

    The charge/uncharge calls will be added to HugeTLB code in later patch.
    Support for cgroup removal will be added in later patches.

    [akpm@linux-foundation.org: s/CONFIG_CGROUP_HUGETLB_RES_CTLR/CONFIG_MEMCG_HUGETLB/g]
    [akpm@linux-foundation.org: s/CONFIG_MEMCG_HUGETLB/CONFIG_CGROUP_HUGETLB/g]
    Reviewed-by: KAMEZAWA Hiroyuki
    Signed-off-by: Aneesh Kumar K.V
    Cc: David Rientjes
    Cc: Hillf Danton
    Reviewed-by: Michal Hocko
    Cc: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Aneesh Kumar K.V
     

28 Jul, 2012

1 commit

  • Pull ARM updates from Russell King:
    "First ARM push of this merge window, post me coming back from holiday.
    This is what has been in linux-next for the last few weeks. Not much
    to say which isn't described by the commit summaries."

    * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (32 commits)
    ARM: 7463/1: topology: Update cpu_power according to DT information
    ARM: 7462/1: topology: factorize the update of sibling masks
    ARM: 7461/1: topology: Add arch_scale_freq_power function
    ARM: 7456/1: ptrace: provide separate functions for tracing syscall {entry,exit}
    ARM: 7455/1: audit: move syscall auditing until after ptrace SIGTRAP handling
    ARM: 7454/1: entry: don't bother with syscall tracing on ret_from_fork path
    ARM: 7453/1: audit: only allow syscall auditing for pure EABI userspace
    ARM: 7452/1: delay: allow timer-based delay implementation to be selected
    ARM: 7451/1: arch timer: implement read_current_timer and get_cycles
    ARM: 7450/1: dcache: select DCACHE_WORD_ACCESS for little-endian ARMv6+ CPUs
    ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions
    ARM: 7448/1: perf: remove arm_perf_pmu_ids global enumeration
    ARM: 7447/1: rwlocks: remove unused branch labels from trylock routines
    ARM: 7446/1: spinlock: use ticket algorithm for ARMv6+ locking implementation
    ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process
    ARM: 7444/1: kernel: add arch-timer C3STOP feature
    ARM: 7460/1: remove asm/locks.h
    ARM: 7439/1: head.S: simplify initial page table mapping
    ARM: 7437/1: zImage: Allow DTB command line concatenation with ATAG_CMDLINE
    ARM: 7436/1: Do not map the vectors page as write-through on UP systems
    ...

    Linus Torvalds
     

27 Jul, 2012

3 commits

  • …usty/linux-2.6-for-linus

    Pull cpumask changes from Rusty Russell:
    "Trivial comment changes to cpumask code. I guess it's getting boring."

    Boring is good.

    * tag 'cpumask-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    cpumask: cpulist_parse() comments correction
    init: add comments to keep initcall-names in sync with initcall levels
    cpumask: add a few comments of cpumask functions

    Linus Torvalds
     
  • main.c has initcall_level_names[] for parse_args to print in debug messages,
    add comments to keep them in sync with initcalls defined in init.h.

    Also add "loadable" into comment re not using *_initcall macros in
    modules, to disambiguate from kernel/params.c and other builtins.

    Signed-off-by: Jim Cromie
    Acked-by: Borislav Petkov
    Signed-off-by: Rusty Russell

    Jim Cromie
     
  • Pul x86/efi changes from Ingo Molnar:
    "This tree adds an EFI bootloader handover protocol, which, once
    supported on the bootloader side, will make bootup faster and might
    result in simpler bootloaders.

    The other change activates the EFI wall clock time accessors on x86-64
    as well, instead of the legacy RTC readout."

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, efi: Handover Protocol
    x86-64/efi: Use EFI to deal with platform wall clock

    Linus Torvalds
     

23 Jul, 2012

1 commit

  • ... and schedule_work() for interrupt/kernel_thread callers
    (and yes, now it *is* OK to call from interrupt).

    We are guaranteed that __fput() will be done before we return
    to userland (or exit). Note that for fput() from a kernel
    thread we get an async behaviour; it's almost always OK, but
    sometimes you might need to have __fput() completed before
    you do anything else. There are two mechanisms for that -
    a general barrier (flush_delayed_fput()) and explicit
    __fput_sync(). Both should be used with care (as was the
    case for fput() from kernel threads all along). See comments
    in fs/file_table.c for details.

    Signed-off-by: Al Viro

    Al Viro
     

10 Jul, 2012

1 commit


08 Jun, 2012

2 commits

  • 9fb48c744ba6a ("params: add 3rd arg to option handler callback
    signature") added similar lines to dmesg:

    initlevel:0=early, 4 registered initcalls
    initlevel:1=core, 31 registered initcalls
    initlevel:2=postcore, 11 registered initcalls
    initlevel:3=arch, 7 registered initcalls
    initlevel:4=subsys, 40 registered initcalls
    initlevel:5=fs, 30 registered initcalls
    initlevel:6=device, 250 registered initcalls
    initlevel:7=late, 35 registered initcalls

    but they don't contain any info for the general user staring at dmesg.
    I'm very doubtful the count of initcalls registered per level helps
    anyone so drop that output completely.

    Cc: Jim Cromie
    Cc: Rusty Russell
    Cc: Jason Baron
    Signed-off-by: Borislav Petkov
    Signed-off-by: Rusty Russell

    Borislav Petkov
     
  • Commit 026cee0086fe1df4cf74691cf273062cc769617d "params:
    _initcall-like kernel parameters" set old-style module
    parameters to level 0. And we call those level 0 calls where we used
    to, early in start_kernel().

    We also loop through the initcall levels and call the levelled
    module_params before the corresponding initcall. Unfortunately level
    0 is early_init(), so we call the standard module_param calls twice.

    (Turns out most things don't care, but at least ubi.mtd does).

    Change the level to -1 for standard module_param calls.

    Reported-by: Benoît Thébaudeau
    Signed-off-by: Rusty Russell
    Cc: stable@kernel.org

    Rusty Russell
     

06 Jun, 2012

1 commit

  • Other than ix86, x86-64 on EFI so far didn't set the
    {g,s}et_wallclock accessors to the EFI routines, thus
    incorrectly using raw RTC accesses instead.

    Simply removing the #ifdef around the respective code isn't
    enough, however: While so far early get-time calls were done in
    physical mode, this doesn't work properly for x86-64, as virtual
    addresses would still need to be set up for all runtime regions
    (which wasn't the case on the system I have access to), so
    instead the patch moves the call to efi_enter_virtual_mode()
    ahead (which in turn allows to drop all code related to calling
    efi-get-time in physical mode).

    Additionally the earlier calling of efi_set_executable()
    requires the CPA code to cope, i.e. during early boot it must be
    avoided to call cpa_flush_array(), as the first thing this
    function does is a BUG_ON(irqs_disabled()).

    Also make the two EFI functions in question here static -
    they're not being referenced elsewhere.

    Signed-off-by: Jan Beulich
    Tested-by: Matt Fleming
    Acked-by: Matthew Garrett
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/4FBFBF5F020000780008637F@nat28.tlf.novell.com
    Signed-off-by: Ingo Molnar

    Jan Beulich
     

01 Jun, 2012

3 commits

  • Merge misc patches from Andrew Morton:

    - the "misc" tree - stuff from all over the map

    - checkpatch updates

    - fatfs

    - kmod changes

    - procfs

    - cpumask

    - UML

    - kexec

    - mqueue

    - rapidio

    - pidns

    - some checkpoint-restore feature work. Reluctantly. Most of it
    delayed a release. I'm still rather worried that we don't have a
    clear roadmap to completion for this work.

    * emailed from Andrew Morton : (78 patches)
    kconfig: update compression algorithm info
    c/r: prctl: add ability to set new mm_struct::exe_file
    c/r: prctl: extend PR_SET_MM to set up more mm_struct entries
    c/r: procfs: add arg_start/end, env_start/end and exit_code members to /proc/$pid/stat
    syscalls, x86: add __NR_kcmp syscall
    fs, proc: introduce /proc//task//children entry
    sysctl: make kernel.ns_last_pid control dependent on CHECKPOINT_RESTORE
    aio/vfs: cleanup of rw_copy_check_uvector() and compat_rw_copy_check_uvector()
    eventfd: change int to __u64 in eventfd_signal()
    fs/nls: add Apple NLS
    pidns: make killed children autoreap
    pidns: use task_active_pid_ns in do_notify_parent
    rapidio/tsi721: add DMA engine support
    rapidio: add DMA engine support for RIO data transfers
    ipc/mqueue: add rbtree node caching support
    tools/selftests: add mq_perf_tests
    ipc/mqueue: strengthen checks on mqueue creation
    ipc/mqueue: correct mq_attr_ok test
    ipc/mqueue: improve performance of send/recv
    selftests: add mq_open_tests
    ...

    Linus Torvalds
     
  • There have been new compression algorithms added without updating nearby
    relevant descriptive text that refers to (a) the number of compression
    algorithms and (b) the most recent one. Fix these inconsistencies.

    Signed-off-by: Randy Dunlap
    Reported-by:
    Cc: Lasse Collin
    Cc: "H. Peter Anvin"
    Cc: Markus Trippelsdorf
    Cc: Alain Knaff
    Cc: Albin Tonnerre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • The init/mount.o source files produce a number of sparse warnings of the
    type:

    warning: incorrect type in argument 1 (different address spaces)
    expected char [noderef] *dev_name
    got char *name

    This is due to the syscalls expecting some of the arguments to be user
    pointers but they are being passed as kernel pointers. This is harmless
    but adds a lot of noise to a sparse build.

    To limit the noise just disable the sparse checking in the relevant source
    files, but still display a warning so that the user knows this has been
    done.

    Since the sparse checking has been disabled we can also remove the __user
    __force casts that are scattered thru the source.

    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H Hartley Sweeten
     

30 May, 2012

1 commit

  • Merge block/IO core bits from Jens Axboe:
    "This is a bit bigger on the core side than usual, but that is purely
    because we decided to hold off on parts of Tejun's submission on 3.4
    to give it a bit more time to simmer. As a consequence, it's seen a
    long cycle in for-next.

    It contains:

    - Bug fix from Dan, wrong locking type.
    - Relax splice gifting restriction from Eric.
    - A ton of updates from Tejun, primarily for blkcg. This improves
    the code a lot, making the API nicer and cleaner, and also includes
    fixes for how we handle and tie policies and re-activate on
    switches. The changes also include generic bug fixes.
    - A simple fix from Vivek, along with a fix for doing proper delayed
    allocation of the blkcg stats."

    Fix up annoying conflict just due to different merge resolution in
    Documentation/feature-removal-schedule.txt

    * 'for-3.5/core' of git://git.kernel.dk/linux-block: (92 commits)
    blkcg: tg_stats_alloc_lock is an irq lock
    vmsplice: relax alignement requirements for SPLICE_F_GIFT
    blkcg: use radix tree to index blkgs from blkcg
    blkcg: fix blkcg->css ref leak in __blkg_lookup_create()
    block: fix elvpriv allocation failure handling
    block: collapse blk_alloc_request() into get_request()
    blkcg: collapse blkcg_policy_ops into blkcg_policy
    blkcg: embed struct blkg_policy_data in policy specific data
    blkcg: mass rename of blkcg API
    blkcg: style cleanups for blk-cgroup.h
    blkcg: remove blkio_group->path[]
    blkcg: blkg_rwstat_read() was missing inline
    blkcg: shoot down blkgs if all policies are deactivated
    blkcg: drop stuff unused after per-queue policy activation update
    blkcg: implement per-queue policy activation
    blkcg: add request_queue->root_blkg
    blkcg: make request_queue bypassing on allocation
    blkcg: make sure blkg_lookup() returns %NULL if @q is bypassing
    blkcg: make blkg_conf_prep() take @pol and return with queue lock held
    blkcg: remove static policy ID enums
    ...

    Linus Torvalds
     

25 May, 2012

1 commit

  • Pull timer updates from Thomas Gleixner.

    Various trivial conflict fixups in arch Kconfig due to addition of
    unrelated entries nearby. And one slightly more subtle one for sparc32
    (new user of GENERIC_CLOCKEVENTS), fixed up as per Thomas.

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
    timekeeping: Fix a few minor newline issues.
    time: remove obsolete declaration
    ntp: Fix a stale comment and a few stray newlines.
    ntp: Correct TAI offset during leap second
    timers: Fixup the Kconfig consolidation fallout
    x86: Use generic time config
    unicore32: Use generic time config
    um: Use generic time config
    tile: Use generic time config
    sparc: Use: generic time config
    sh: Use generic time config
    score: Use generic time config
    s390: Use generic time config
    openrisc: Use generic time config
    powerpc: Use generic time config
    mn10300: Use generic time config
    mips: Use generic time config
    microblaze: Use generic time config
    m68k: Use generic time config
    m32r: Use generic time config
    ...

    Linus Torvalds
     

24 May, 2012

2 commits

  • Pull user namespace enhancements from Eric Biederman:
    "This is a course correction for the user namespace, so that we can
    reach an inexpensive, maintainable, and reasonably complete
    implementation.

    Highlights:
    - Config guards make it impossible to enable the user namespace and
    code that has not been converted to be user namespace safe.

    - Use of the new kuid_t type ensures the if you somehow get past the
    config guards the kernel will encounter type errors if you enable
    user namespaces and attempt to compile in code whose permission
    checks have not been updated to be user namespace safe.

    - All uids from child user namespaces are mapped into the initial
    user namespace before they are processed. Removing the need to add
    an additional check to see if the user namespace of the compared
    uids remains the same.

    - With the user namespaces compiled out the performance is as good or
    better than it is today.

    - For most operations absolutely nothing changes performance or
    operationally with the user namespace enabled.

    - The worst case performance I could come up with was timing 1
    billion cache cold stat operations with the user namespace code
    enabled. This went from 156s to 164s on my laptop (or 156ns to
    164ns per stat operation).

    - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.
    Most uid/gid setting system calls treat these value specially
    anyway so attempting to use -1 as a uid would likely cause
    entertaining failures in userspace.

    - If setuid is called with a uid that can not be mapped setuid fails.
    I have looked at sendmail, login, ssh and every other program I
    could think of that would call setuid and they all check for and
    handle the case where setuid fails.

    - If stat or a similar system call is called from a context in which
    we can not map a uid we lie and return overflowuid. The LFS
    experience suggests not lying and returning an error code might be
    better, but the historical precedent with uids is different and I
    can not think of anything that would break by lying about a uid we
    can't map.

    - Capabilities are localized to the current user namespace making it
    safe to give the initial user in a user namespace all capabilities.

    My git tree covers all of the modifications needed to convert the core
    kernel and enough changes to make a system bootable to runlevel 1."

    Fix up trivial conflicts due to nearby independent changes in fs/stat.c

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)
    userns: Silence silly gcc warning.
    cred: use correct cred accessor with regards to rcu read lock
    userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq
    userns: Convert cgroup permission checks to use uid_eq
    userns: Convert tmpfs to use kuid and kgid where appropriate
    userns: Convert sysfs to use kgid/kuid where appropriate
    userns: Convert sysctl permission checks to use kuid and kgids.
    userns: Convert proc to use kuid/kgid where appropriate
    userns: Convert ext4 to user kuid/kgid where appropriate
    userns: Convert ext3 to use kuid/kgid where appropriate
    userns: Convert ext2 to use kuid/kgid where appropriate.
    userns: Convert devpts to use kuid/kgid where appropriate
    userns: Convert binary formats to use kuid/kgid where appropriate
    userns: Add negative depends on entries to avoid building code that is userns unsafe
    userns: signal remove unnecessary map_cred_ns
    userns: Teach inode_capable to understand inodes whose uids map to other namespaces.
    userns: Fail exec for suid and sgid binaries with ids outside our user namespace.
    userns: Convert stat to return values mapped from kuids and kgids
    userns: Convert user specfied uids and gids in chown into kuids and kgid
    userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs
    ...

    Linus Torvalds
     
  • Pull exception table generation updates from Ingo Molnar:
    "The biggest change here is to allow the build-time sorting of the
    exception table, to speed up booting. This is achieved by the
    architecture enabling BUILDTIME_EXTABLE_SORT. This option is enabled
    for x86 and MIPS currently.

    On x86 a number of fixes and changes were needed to allow build-time
    sorting of the exception table, in particular a relocation invariant
    exception table format was needed. This required the abstracting out
    of exception table protocol and the removal of 20 years of accumulated
    assumptions about the x86 exception table format.

    While at it, this tree also cleans up various other aspects of
    exception handling, such as early(er) exception handling for
    rdmsr_safe() et al.

    All in one, as the result of these changes the x86 exception code is
    now pretty nice and modern. As an added bonus any regressions in this
    code will be early and violent crashes, so if you see any of those,
    you'll know whom to blame!"

    Fix up trivial conflicts in arch/{mips,x86}/Kconfig files due to nearby
    modifications of other core architecture options.

    * 'x86-extable-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (35 commits)
    Revert "x86, extable: Disable presorted exception table for now"
    scripts/sortextable: Handle relative entries, and other cleanups
    x86, extable: Switch to relative exception table entries
    x86, extable: Disable presorted exception table for now
    x86, extable: Add _ASM_EXTABLE_EX() macro
    x86, extable: Remove open-coded exception table entries in arch/x86/ia32/ia32entry.S
    x86, extable: Remove open-coded exception table entries in arch/x86/include/asm/xsave.h
    x86, extable: Remove open-coded exception table entries in arch/x86/include/asm/kvm_host.h
    x86, extable: Remove the now-unused __ASM_EX_SEC macros
    x86, extable: Remove open-coded exception table entries in arch/x86/xen/xen-asm_32.S
    x86, extable: Remove open-coded exception table entries in arch/x86/um/checksum_32.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/usercopy_32.c
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/putuser.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/getuser.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/csum-copy_64.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/copy_user_nocache_64.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/copy_user_64.S
    x86, extable: Remove open-coded exception table entries in arch/x86/lib/checksum_32.S
    x86, extable: Remove open-coded exception table entries in arch/x86/kernel/test_rodata.c
    x86, extable: Remove open-coded exception table entries in arch/x86/kernel/entry_64.S
    ...

    Linus Torvalds
     

23 May, 2012

2 commits

  • Pull perf changes from Ingo Molnar:
    "Lots of changes:

    - (much) improved assembly annotation support in perf report, with
    jump visualization, searching, navigation, visual output
    improvements and more.

    - kernel support for AMD IBS PMU hardware features. Notably 'perf
    record -e cycles:p' and 'perf top -e cycles:p' should work without
    skid now, like PEBS does on the Intel side, because it takes
    advantage of IBS transparently.

    - the libtracevents library: it is the first step towards unifying
    tracing tooling and perf, and it also gives a tracing library for
    external tools like powertop to rely on.

    - infrastructure: various improvements and refactoring of the UI
    modules and related code

    - infrastructure: cleanup and simplification of the profiling
    targets code (--uid, --pid, --tid, --cpu, --all-cpus, etc.)

    - tons of robustness fixes all around

    - various ftrace updates: speedups, cleanups, robustness
    improvements.

    - typing 'make' in tools/ will now give you a menu of projects to
    build and a short help text to explain what each does.

    - ... and lots of other changes I forgot to list.

    The perf record make bzImage + perf report regression you reported
    should be fixed."

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (166 commits)
    tracing: Remove kernel_lock annotations
    tracing: Fix initial buffer_size_kb state
    ring-buffer: Merge separate resize loops
    perf evsel: Create events initially disabled -- again
    perf tools: Split term type into value type and term type
    perf hists: Fix callchain ip printf format
    perf target: Add uses_mmap field
    ftrace: Remove selecting FRAME_POINTER with FUNCTION_TRACER
    ftrace/x86: Have x86 ftrace use the ftrace_modify_all_code()
    ftrace: Make ftrace_modify_all_code() global for archs to use
    ftrace: Return record ip addr for ftrace_location()
    ftrace: Consolidate ftrace_location() and ftrace_text_reserved()
    ftrace: Speed up search by skipping pages by address
    ftrace: Remove extra helper functions
    ftrace: Sort all function addresses, not just per page
    tracing: change CPU ring buffer state from tracing_cpumask
    tracing: Check return value of tracing_dentry_percpu()
    ring-buffer: Reset head page before running self test
    ring-buffer: Add integrity check at end of iter read
    ring-buffer: Make addition of pages in ring buffer atomic
    ...

    Linus Torvalds
     
  • Pull driver core updates from Greg Kroah-Hartman:
    "Here's the driver core, and other driver subsystems, pull request for
    the 3.5-rc1 merge window.

    Outside of a few minor driver core changes, we ended up with the
    following different subsystem and core changes as well, due to
    interdependancies on the driver core:
    - hyperv driver updates
    - drivers/memory being created and some drivers moved into it
    - extcon driver subsystem created out of the old Android staging
    switch driver code
    - dynamic debug updates
    - printk rework, and /dev/kmsg changes

    All of this has been tested in the linux-next releases for a few weeks
    with no reported problems.

    Signed-off-by: Greg Kroah-Hartman "

    Fix up conflicts in drivers/extcon/extcon-max8997.c where git noticed
    that a patch to the deleted drivers/misc/max8997-muic.c driver needs to
    be applied to this one.

    * tag 'driver-core-3.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (90 commits)
    uio_pdrv_genirq: get irq through platform resource if not set otherwise
    memory: tegra{20,30}-mc: Remove empty *_remove()
    printk() - isolate KERN_CONT users from ordinary complete lines
    sysfs: get rid of some lockdep false positives
    Drivers: hv: util: Properly handle version negotiations.
    Drivers: hv: Get rid of an unnecessary check in vmbus_prep_negotiate_resp()
    memory: tegra{20,30}-mc: Use dev_err_ratelimited()
    driver core: Add dev_*_ratelimited() family
    Driver Core: don't oops with unregistered driver in driver_find_device()
    printk() - restore prefix/timestamp printing for multi-newline strings
    printk: add stub for prepend_timestamp()
    ARM: tegra30: Make MC optional in Kconfig
    ARM: tegra20: Make MC optional in Kconfig
    ARM: tegra30: MC: Remove unnecessary BUG*()
    ARM: tegra20: MC: Remove unnecessary BUG*()
    printk: correctly align __log_buf
    ARM: tegra30: Add Tegra Memory Controller(MC) driver
    ARM: tegra20: Add Tegra Memory Controller(MC) driver
    printk() - restore timestamp printing at console output
    printk() - do not merge continuation lines of different threads
    ...

    Linus Torvalds
     

22 May, 2012

4 commits

  • Pull smp hotplug cleanups from Thomas Gleixner:
    "This series is merily a cleanup of code copied around in arch/* and
    not changing any of the real cpu hotplug horrors yet. I wish I'd had
    something more substantial for 3.5, but I underestimated the lurking
    horror..."

    Fix up trivial conflicts in arch/{arm,sparc,x86}/Kconfig and
    arch/sparc/include/asm/thread_info_32.h

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits)
    um: Remove leftover declaration of alloc_task_struct_node()
    task_allocator: Use config switches instead of magic defines
    sparc: Use common threadinfo allocator
    score: Use common threadinfo allocator
    sh-use-common-threadinfo-allocator
    mn10300: Use common threadinfo allocator
    powerpc: Use common threadinfo allocator
    mips: Use common threadinfo allocator
    hexagon: Use common threadinfo allocator
    m32r: Use common threadinfo allocator
    frv: Use common threadinfo allocator
    cris: Use common threadinfo allocator
    x86: Use common threadinfo allocator
    c6x: Use common threadinfo allocator
    fork: Provide kmemcache based thread_info allocator
    tile: Use common threadinfo allocator
    fork: Provide weak arch_release_[task_struct|thread_info] functions
    fork: Move thread info gfp flags to header
    fork: Remove the weak insanity
    sh: Remove cpu_idle_wait()
    ...

    Linus Torvalds
     
  • Pull RCU changes from Ingo Molnar:
    "This is the v3.5 RCU tree from Paul E. McKenney:

    1) A set of improvements and fixes to the RCU_FAST_NO_HZ feature (with
    more on the way for 3.6). Posted to LKML:
    https://lkml.org/lkml/2012/4/23/324 (commits 1-3 and 5),
    https://lkml.org/lkml/2012/4/16/611 (commit 4),
    https://lkml.org/lkml/2012/4/30/390 (commit 6), and
    https://lkml.org/lkml/2012/5/4/410 (commit 7, combined with
    the other commits for the convenience of the tester).

    2) Changes to make rcu_barrier() avoid disrupting execution of CPUs
    that have no RCU callbacks. Posted to LKML:
    https://lkml.org/lkml/2012/4/23/322.

    3) A couple of commits that improve the efficiency of the interaction
    between preemptible RCU and the scheduler, these two being all that
    survived an abortive attempt to allow preemptible RCU's
    __rcu_read_lock() to be inlined. The full set was posted to LKML at
    https://lkml.org/lkml/2012/4/14/143, and the first and third patches
    of that set remain.

    4) Lai Jiangshan's algorithmic implementation of SRCU, which includes
    call_srcu() and srcu_barrier(). A major feature of this new
    implementation is that synchronize_srcu() no longer disturbs the
    execution of other CPUs. This work is based on earlier
    implementations by Peter Zijlstra and Paul E. McKenney. Posted to
    LKML: https://lkml.org/lkml/2012/2/22/82.

    5) A number of miscellaneous bug fixes and improvements which were
    posted to LKML at: https://lkml.org/lkml/2012/4/23/353 with
    subsequent updates posted to LKML."

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
    rcu: Make rcu_barrier() less disruptive
    rcu: Explicitly initialize RCU_FAST_NO_HZ per-CPU variables
    rcu: Make RCU_FAST_NO_HZ handle timer migration
    rcu: Update RCU maintainership
    rcu: Make exit_rcu() more precise and consolidate
    rcu: Move PREEMPT_RCU preemption to switch_to() invocation
    rcu: Ensure that RCU_FAST_NO_HZ timers expire on correct CPU
    rcu: Add rcutorture test for call_srcu()
    rcu: Implement per-domain single-threaded call_srcu() state machine
    rcu: Use single value to handle expedited SRCU grace periods
    rcu: Improve srcu_readers_active_idx()'s cache locality
    rcu: Remove unused srcu_barrier()
    rcu: Implement a variant of Peter's SRCU algorithm
    rcu: Improve SRCU's wait_idx() comments
    rcu: Flip ->completed only once per SRCU grace period
    rcu: Increment upper bit only for srcu_read_lock()
    rcu: Remove fast check path from __synchronize_srcu()
    rcu: Direct algorithmic SRCU implementation
    rcu: Introduce rcutorture testing for rcu_barrier()
    timer: Fix mod_timer_pinned() header comment
    ...

    Linus Torvalds
     
  • Sigh, I missed to check which architecture Kconfig files actually
    include the core Kconfig file. There are a few which did not. So we
    broke them.

    Instead of adding the includes to those, we are better off to move the
    include to init/Kconfig like we did already with irqs and others.

    This does not change anything for the architectures using the old
    style periodic timer mode. It just solves the build wreckage there.

    For those architectures which use the clock events infrastructure it
    moves the include of the core Kconfig file to "General setup" which is
    a way more logical place than having it at random locations specified
    by the architecture specific Kconfigs.

    Reported-by: Ingo Molnar
    Cc: Anna-Maria Gleixner
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • During early boot, when the scheduler hasn't really been fully set up,
    we really can't do blocking allocations because with certain (dubious)
    configurations the "might_resched()" calls can actually result in
    scheduling events.

    We could just make such users always use GFP_ATOMIC, but quite often the
    code that does the allocation isn't really aware of the fact that the
    scheduler isn't up yet, and forcing that kind of random knowledge on the
    initialization code is just annoying and not good for anybody.

    And we actually have a the 'gfp_allowed_mask' exactly for this reason:
    it's just that the kernel init sequence happens to set it to allow
    blocking allocations much too early.

    So move the 'gfp_allowed_mask' initialization from 'start_kernel()'
    (which is some of the earliest init code, and runs with preemption
    disabled for good reasons) into 'kernel_init()'. kernel_init() is run
    in the newly created thread that will become the 'init' process, as
    opposed to the early startup code that runs within the context of what
    will be the first idle thread.

    So by the time we reach 'kernel_init()', we know that the scheduler must
    be at least limping along, because we've already scheduled from the idle
    thread into the init thread.

    Reported-by: Steven Rostedt
    Cc: David Rientjes
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

19 May, 2012

1 commit

  • Merge reason: We are going to queue up a dependent patch:

    "perf tools: Move parse event automated tests to separated object"

    That depends on:

    commit e7c72d8
    perf tools: Add 'G' and 'H' modifiers to event parsing

    Conflicts:
    tools/perf/builtin-stat.c

    Conflicted with the recent 'perf_target' patches when checking the
    result of perf_evsel open routines to see if a retry is needed to cope
    with older kernels where the exclude guest/host perf_event_attr bits
    were not used.

    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

16 May, 2012

12 commits


14 May, 2012

1 commit

  • …/linux-rcu into core/rcu

    Pull the v3.5 RCU tree from Paul E. McKenney:

    1) A set of improvements and fixes to the RCU_FAST_NO_HZ feature
    (with more on the way for 3.6). Posted to LKML:
    https://lkml.org/lkml/2012/4/23/324 (commits 1-3 and 5),
    https://lkml.org/lkml/2012/4/16/611 (commit 4),
    https://lkml.org/lkml/2012/4/30/390 (commit 6), and
    https://lkml.org/lkml/2012/5/4/410 (commit 7, combined with
    the other commits for the convenience of the tester).

    2) Changes to make rcu_barrier() avoid disrupting execution of CPUs
    that have no RCU callbacks. Posted to LKML:
    https://lkml.org/lkml/2012/4/23/322.

    3) A couple of commits that improve the efficiency of the interaction
    between preemptible RCU and the scheduler, these two being all
    that survived an abortive attempt to allow preemptible RCU's
    __rcu_read_lock() to be inlined. The full set was posted to
    LKML at https://lkml.org/lkml/2012/4/14/143, and the first and
    third patches of that set remain.

    4) Lai Jiangshan's algorithmic implementation of SRCU, which includes
    call_srcu() and srcu_barrier(). A major feature of this new
    implementation is that synchronize_srcu() no longer disturbs
    the execution of other CPUs. This work is based on earlier
    implementations by Peter Zijlstra and Paul E. McKenney. Posted to
    LKML: https://lkml.org/lkml/2012/2/22/82.

    5) A number of miscellaneous bug fixes and improvements which were
    posted to LKML at: https://lkml.org/lkml/2012/4/23/353 with
    subsequent updates posted to LKML.

    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar