1. 30 Apr, 2013 40 commits
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ab86e974
      Linus Torvalds authored
      Pull core timer updates from Ingo Molnar:
       "The main changes in this cycle's merge are:
      
         - Implement shadow timekeeper to shorten in kernel reader side
           blocking, by Thomas Gleixner.
      
         - Posix timers enhancements by Pavel Emelyanov:
      
         - allocate timer ID per process, so that exact timer ID allocations
           can be re-created be checkpoint/restore code.
      
         - debuggability and tooling (/proc/PID/timers, etc.) improvements.
      
         - suspend/resume enhancements by Feng Tang: on certain new Intel Atom
           processors (Penwell and Cloverview), there is a feature that the
           TSC won't stop in S3 state, so the TSC value won't be reset to 0
           after resume.  This can be taken advantage of by the generic via
           the CLOCK_SOURCE_SUSPEND_NONSTOP flag: instead of using the RTC to
           recover/approximate sleep time, the main (and precise) clocksource
           can be used.
      
         - Fix /proc/timer_list for 4096 CPUs by Nathan Zimmer: on so many
           CPUs the file goes beyond 4MB of size and thus the current
           simplistic seqfile approach fails.  Convert /proc/timer_list to a
           proper seq_file with its own iterator.
      
         - Cleanups and refactorings of the core timekeeping code by John
           Stultz.
      
         - International Atomic Clock time is managed by the NTP code
           internally currently but not exposed externally.  Separate the TAI
           code out and add CLOCK_TAI support and TAI support to the hrtimer
           and posix-timer code, by John Stultz.
      
         - Add deep idle support enhacement to the broadcast clockevents core
           timer code, by Daniel Lezcano: add an opt-in CLOCK_EVT_FEAT_DYNIRQ
           clockevents feature (which will be utilized by future clockevents
           driver updates), which allows the use of IRQ affinities to avoid
           spurious wakeups of idle CPUs - the right CPU with an expiring
           timer will be woken.
      
         - Add new ARM bcm281xx clocksource driver, by Christian Daudt
      
         - ... various other fixes and cleanups"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits)
        clockevents: Set dummy handler on CPU_DEAD shutdown
        timekeeping: Update tk->cycle_last in resume
        posix-timers: Remove unused variable
        clockevents: Switch into oneshot mode even if broadcast registered late
        timer_list: Convert timer list to be a proper seq_file
        timer_list: Split timer_list_show_tickdevices
        posix-timers: Show sigevent info in proc file
        posix-timers: Introduce /proc/PID/timers file
        posix timers: Allocate timer id per process (v2)
        timekeeping: Make sure to notify hrtimers when TAI offset changes
        hrtimer: Fix ktime_add_ns() overflow on 32bit architectures
        hrtimer: Add expiry time overflow check in hrtimer_interrupt
        timekeeping: Shorten seq_count region
        timekeeping: Implement a shadow timekeeper
        timekeeping: Delay update of clock->cycle_last
        timekeeping: Store cycle_last value in timekeeper struct as well
        ntp: Remove ntp_lock, using the timekeeping locks to protect ntp state
        timekeeping: Simplify tai updating from do_adjtimex
        timekeeping: Hold timekeepering locks in do_adjtimex and hardpps
        timekeeping: Move ADJ_SETOFFSET to top level do_adjtimex()
        ...
      ab86e974
    • Linus Torvalds's avatar
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8700c95a
      Linus Torvalds authored
      Pull SMP/hotplug changes from Ingo Molnar:
       "This is a pretty large, multi-arch series unifying and generalizing
        the various disjunct pieces of idle routines that architectures have
        historically copied from each other and have grown in random, wildly
        inconsistent and sometimes buggy directions:
      
         101 files changed, 455 insertions(+), 1328 deletions(-)
      
        this went through a number of review and test iterations before it was
        committed, it was tested on various architectures, was exposed to
        linux-next for quite some time - nevertheless it might cause problems
        on architectures that don't read the mailing lists and don't regularly
        test linux-next.
      
        This cat herding excercise was motivated by the -rt kernel, and was
        brought to you by Thomas "the Whip" Gleixner."
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
        idle: Remove GENERIC_IDLE_LOOP config switch
        um: Use generic idle loop
        ia64: Make sure interrupts enabled when we "safe_halt()"
        sparc: Use generic idle loop
        idle: Remove unused ARCH_HAS_DEFAULT_IDLE
        bfin: Fix typo in arch_cpu_idle()
        xtensa: Use generic idle loop
        x86: Use generic idle loop
        unicore: Use generic idle loop
        tile: Use generic idle loop
        tile: Enter idle with preemption disabled
        sh: Use generic idle loop
        score: Use generic idle loop
        s390: Use generic idle loop
        powerpc: Use generic idle loop
        parisc: Use generic idle loop
        openrisc: Use generic idle loop
        mn10300: Use generic idle loop
        mips: Use generic idle loop
        microblaze: Use generic idle loop
        ...
      8700c95a
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 16fa94b5
      Linus Torvalds authored
      Pull scheduler changes from Ingo Molnar:
       "The main changes in this development cycle were:
      
         - full dynticks preparatory work by Frederic Weisbecker
      
         - factor out the cpu time accounting code better, by Li Zefan
      
         - multi-CPU load balancer cleanups and improvements by Joonsoo Kim
      
         - various smaller fixes and cleanups"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)
        sched: Fix init NOHZ_IDLE flag
        sched: Prevent to re-select dst-cpu in load_balance()
        sched: Rename load_balance_tmpmask to load_balance_mask
        sched: Move up affinity check to mitigate useless redoing overhead
        sched: Don't consider other cpus in our group in case of NEWLY_IDLE
        sched: Explicitly cpu_idle_type checking in rebalance_domains()
        sched: Change position of resched_cpu() in load_balance()
        sched: Fix wrong rq's runnable_avg update with rt tasks
        sched: Document task_struct::personality field
        sched/cpuacct/UML: Fix header file dependency bug on the UML build
        cgroup: Kill subsys.active flag
        sched/cpuacct: No need to check subsys active state
        sched/cpuacct: Initialize cpuacct subsystem earlier
        sched/cpuacct: Initialize root cpuacct earlier
        sched/cpuacct: Allocate per_cpu cpuusage for root cpuacct statically
        sched/cpuacct: Clean up cpuacct.h
        sched/cpuacct: Remove redundant NULL checks in cpuacct_acount_field()
        sched/cpuacct: Remove redundant NULL checks in cpuacct_charge()
        sched/cpuacct: Add cpuacct_acount_field()
        sched/cpuacct: Add cpuacct_init()
        ...
      16fa94b5
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e0972916
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "Features:
      
         - Add "uretprobes" - an optimization to uprobes, like kretprobes are
           an optimization to kprobes.  "perf probe -x file sym%return" now
           works like kretprobes.  By Oleg Nesterov.
      
         - Introduce per core aggregation in 'perf stat', from Stephane
           Eranian.
      
         - Add memory profiling via PEBS, from Stephane Eranian.
      
         - Event group view for 'annotate' in --stdio, --tui and --gtk, from
           Namhyung Kim.
      
         - Add support for AMD NB and L2I "uncore" counters, by Jacob Shin.
      
         - Add Ivy Bridge-EP uncore support, by Zheng Yan
      
         - IBM zEnterprise EC12 oprofile support patchlet from Robert Richter.
      
         - Add perf test entries for checking breakpoint overflow signal
           handler issues, from Jiri Olsa.
      
         - Add perf test entry for for checking number of EXIT events, from
           Namhyung Kim.
      
         - Add perf test entries for checking --cpu in record and stat, from
           Jiri Olsa.
      
         - Introduce perf stat --repeat forever, from Frederik Deweerdt.
      
         - Add --no-demangle to report/top, from Namhyung Kim.
      
         - PowerPC fixes plus a couple of cleanups/optimizations in uprobes
           and trace_uprobes, by Oleg Nesterov.
      
        Various fixes and refactorings:
      
         - Fix dependency of the python binding wrt libtraceevent, from
           Naohiro Aota.
      
         - Simplify some perf_evlist methods and to allow 'stat' to share code
           with 'record' and 'trace', by Arnaldo Carvalho de Melo.
      
         - Remove dead code in related to libtraceevent integration, from
           Namhyung Kim.
      
         - Revert "perf sched: Handle PERF_RECORD_EXIT events" to get 'perf
           sched lat' back working, by Arnaldo Carvalho de Melo
      
         - We don't use Newt anymore, just plain libslang, by Arnaldo Carvalho
           de Melo.
      
         - Kill a bunch of die() calls, from Namhyung Kim.
      
         - Fix build on non-glibc systems due to libio.h absence, from Cody P
           Schafer.
      
         - Remove some perf_session and tracing dead code, from David Ahern.
      
         - Honor parallel jobs, fix from Borislav Petkov
      
         - Introduce tools/lib/lk library, initially just removing duplication
           among tools/perf and tools/vm.  from Borislav Petkov
      
        ... and many more I missed to list, see the shortlog and git log for
        more details."
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (136 commits)
        perf/x86/intel/P4: Robistify P4 PMU types
        perf/x86/amd: Fix AMD NB and L2I "uncore" support
        perf/x86/amd: Remove old-style NB counter support from perf_event_amd.c
        perf/x86: Check all MSRs before passing hw check
        perf/x86/amd: Add support for AMD NB and L2I "uncore" counters
        perf/x86/intel: Add Ivy Bridge-EP uncore support
        perf/x86/intel: Fix SNB-EP CBO and PCU uncore PMU filter management
        perf/x86: Avoid kfree() in CPU_{STARTING,DYING}
        uprobes/perf: Avoid perf_trace_buf_prepare/submit if ->perf_events is empty
        uprobes/tracing: Don't pass addr=ip to perf_trace_buf_submit()
        uprobes/tracing: Change create_trace_uprobe() to support uretprobes
        uprobes/tracing: Make seq_printf() code uretprobe-friendly
        uprobes/tracing: Make register_uprobe_event() paths uretprobe-friendly
        uprobes/tracing: Make uprobe_{trace,perf}_print() uretprobe-friendly
        uprobes/tracing: Introduce is_ret_probe() and uretprobe_dispatcher()
        uprobes/tracing: Introduce uprobe_{trace,perf}_print() helpers
        uprobes/tracing: Generalize struct uprobe_trace_entry_head
        uprobes/tracing: Kill the pointless local_save_flags/preempt_count calls
        uprobes/tracing: Kill the pointless seq_print_ip_sym() call
        uprobes/tracing: Kill the pointless task_pt_regs() calls
        ...
      e0972916
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1f889ec6
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "The main changes in this cycle are mostly related to preparatory work
        for the full-dynticks work:
      
         - Remove restrictions on no-CBs CPUs, make RCU_FAST_NO_HZ take
           advantage of numbered callbacks, do callback accelerations based on
           numbered callbacks.  Posted to LKML at
              https://lkml.org/lkml/2013/3/18/960
      
         - RCU documentation updates.  Posted to LKML at
              https://lkml.org/lkml/2013/3/18/570
      
         - Miscellaneous fixes.  Posted to LKML at
              https://lkml.org/lkml/2013/3/18/594"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        rcu: Make rcu_accelerate_cbs() note need for future grace periods
        rcu: Abstract rcu_start_future_gp() from rcu_nocb_wait_gp()
        rcu: Rename n_nocb_gp_requests to need_future_gp
        rcu: Push lock release to rcu_start_gp()'s callers
        rcu: Repurpose no-CBs event tracing to future-GP events
        rcu: Rearrange locking in rcu_start_gp()
        rcu: Make RCU_FAST_NO_HZ take advantage of numbered callbacks
        rcu: Accelerate RCU callbacks at grace-period end
        rcu: Export RCU_FAST_NO_HZ parameters to sysfs
        rcu: Distinguish "rcuo" kthreads by RCU flavor
        rcu: Add event tracing for no-CBs CPUs' grace periods
        rcu: Add event tracing for no-CBs CPUs' callback registration
        rcu: Introduce proper blocking to no-CBs kthreads GP waits
        rcu: Provide compile-time control for no-CBs CPUs
        rcu: Tone down debugging during boot-up and shutdown.
        rcu: Add softirq-stall indications to stall-warning messages
        rcu: Documentation update
        rcu: Make bugginess of code sample more evident
        rcu: Fix hlist_bl_set_first_rcu() annotation
        rcu: Delete unused rcu_node "wakemask" field
        ...
      1f889ec6
    • Steven Rostedt's avatar
      tracing: Fix small merge bug · 6c24499f
      Steven Rostedt authored
      During the 3.10 merge, a conflict happened and the resolution was
      almost, but not quite, correct. An if statement was reversed.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      [ Duh. That was just silly of me  - Linus ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6c24499f
    • Linus Torvalds's avatar
      Merge tag 'localmodconfig-v3.10' of... · 500fcbc4
      Linus Torvalds authored
      Merge tag 'localmodconfig-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig
      
      Pull localmodconfig changes from Steven Rostedt:
       "A bug was recently found in the make localmodconfig where it would
        miss dependencies of config files are include in other config files
        inside an if statement.
      
        Also added a debug print that helped in solving this bug."
      
      * tag 'localmodconfig-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig:
        localmodconfig: Process source kconfig files as they are found
        localmodconfig: Add debug prints for dependencies of module configs
      500fcbc4
    • Linus Torvalds's avatar
      Merge branch 'akpm' (incoming from Andrew) · 56847d85
      Linus Torvalds authored
      Merge second batch of fixes from Andrew Morton:
      
       - various misc bits
      
       - some printk updates
      
       - a new "SRAM" driver.
      
       - MAINTAINERS updates
      
       - the backlight driver queue
      
       - checkpatch updates
      
       - a few init/ changes
      
       - a huge number of drivers/rtc changes
      
       - fatfs updates
      
       - some lib/idr.c work
      
       - some renaming of the random driver interfaces
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (285 commits)
        net: rename random32 to prandom
        net/core: remove duplicate statements by do-while loop
        net/core: rename random32() to prandom_u32()
        net/netfilter: rename random32() to prandom_u32()
        net/sched: rename random32() to prandom_u32()
        net/sunrpc: rename random32() to prandom_u32()
        scsi: rename random32() to prandom_u32()
        lguest: rename random32() to prandom_u32()
        uwb: rename random32() to prandom_u32()
        video/uvesafb: rename random32() to prandom_u32()
        mmc: rename random32() to prandom_u32()
        drbd: rename random32() to prandom_u32()
        kernel/: rename random32() to prandom_u32()
        mm/: rename random32() to prandom_u32()
        lib/: rename random32() to prandom_u32()
        x86: rename random32() to prandom_u32()
        x86: pageattr-test: remove srandom32 call
        uuid: use prandom_bytes()
        raid6test: use prandom_bytes()
        sctp: convert sctp_assoc_set_id() to use idr_alloc_cyclic()
        ...
      56847d85
    • Linus Torvalds's avatar
      Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 191a7120
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
      
       - Fixes and a lot of cleanups.  Locking cleanup is finally complete.
         cgroup_mutex is no longer exposed to individual controlelrs which
         used to cause nasty deadlock issues.  Li fixed and cleaned up quite a
         bit including long standing ones like racy cgroup_path().
      
       - device cgroup now supports proper hierarchy thanks to Aristeu.
      
       - perf_event cgroup now supports proper hierarchy.
      
       - A new mount option "__DEVEL__sane_behavior" is added.  As indicated
         by the name, this option is to be used for development only at this
         point and generates a warning message when used.  Unfortunately,
         cgroup interface currently has too many brekages and inconsistencies
         to implement a consistent and unified hierarchy on top.  The new flag
         is used to collect the behavior changes which are necessary to
         implement consistent unified hierarchy.  It's likely that this flag
         won't be used verbatim when it becomes ready but will be enabled
         implicitly along with unified hierarchy.
      
         The option currently disables some of broken behaviors in cgroup core
         and also .use_hierarchy switch in memcg (will be routed through -mm),
         which can be used to make very unusual hierarchy where nesting is
         partially honored.  It will also be used to implement hierarchy
         support for blk-throttle which would be impossible otherwise without
         introducing a full separate set of control knobs.
      
         This is essentially versioning of interface which isn't very nice but
         at this point I can't see any other options which would allow keeping
         the interface the same while moving towards hierarchy behavior which
         is at least somewhat sane.  The planned unified hierarchy is likely
         to require some level of adaptation from userland anyway, so I think
         it'd be best to take the chance and update the interface such that
         it's supportable in the long term.
      
         Maintaining the existing interface does complicate cgroup core but
         shouldn't put too much strain on individual controllers and I think
         it'd be manageable for the foreseeable future.  Maybe we'll be able
         to drop it in a decade.
      
      Fix up conflicts (including a semantic one adding a new #include to ppc
      that was uncovered by header the file changes) as per Tejun.
      
      * 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (45 commits)
        cpuset: fix compile warning when CONFIG_SMP=n
        cpuset: fix cpu hotplug vs rebuild_sched_domains() race
        cpuset: use rebuild_sched_domains() in cpuset_hotplug_workfn()
        cgroup: restore the call to eventfd->poll()
        cgroup: fix use-after-free when umounting cgroupfs
        cgroup: fix broken file xattrs
        devcg: remove parent_cgroup.
        memcg: force use_hierarchy if sane_behavior
        cgroup: remove cgrp->top_cgroup
        cgroup: introduce sane_behavior mount option
        move cgroupfs_root to include/linux/cgroup.h
        cgroup: convert cgroupfs_root flag bits to masks and add CGRP_ prefix
        cgroup: make cgroup_path() not print double slashes
        Revert "cgroup: remove bind() method from cgroup_subsys."
        perf: make perf_event cgroup hierarchical
        cgroup: implement cgroup_is_descendant()
        cgroup: make sure parent won't be destroyed before its children
        cgroup: remove bind() method from cgroup_subsys.
        devcg: remove broken_hierarchy tag
        cgroup: remove cgroup_lock_is_held()
        ...
      191a7120
    • Linus Torvalds's avatar
      Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 46d9be3e
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "A lot of activities on workqueue side this time.  The changes achieve
        the followings.
      
         - WQ_UNBOUND workqueues - the workqueues which are per-cpu - are
           updated to be able to interface with multiple backend worker pools.
           This involved a lot of churning but the end result seems actually
           neater as unbound workqueues are now a lot closer to per-cpu ones.
      
         - The ability to interface with multiple backend worker pools are
           used to implement unbound workqueues with custom attributes.
           Currently the supported attributes are the nice level and CPU
           affinity.  It may be expanded to include cgroup association in
           future.  The attributes can be specified either by calling
           apply_workqueue_attrs() or through /sys/bus/workqueue/WQ_NAME/* if
           the workqueue in question is exported through sysfs.
      
           The backend worker pools are keyed by the actual attributes and
           shared by any workqueues which share the same attributes.  When
           attributes of a workqueue are changed, the workqueue binds to the
           worker pool with the specified attributes while leaving the work
           items which are already executing in its previous worker pools
           alone.
      
           This allows converting custom worker pool implementations which
           want worker attribute tuning to use workqueues.  The writeback pool
           is already converted in block tree and there are a couple others
           are likely to follow including btrfs io workers.
      
         - WQ_UNBOUND's ability to bind to multiple worker pools is also used
           to make it NUMA-aware.  Because there's no association between work
           item issuer and the specific worker assigned to execute it, before
           this change, using unbound workqueue led to unnecessary cross-node
           bouncing and it couldn't be helped by autonuma as it requires tasks
           to have implicit node affinity and workers are assigned randomly.
      
           After these changes, an unbound workqueue now binds to multiple
           NUMA-affine worker pools so that queued work items are executed in
           the same node.  This is turned on by default but can be disabled
           system-wide or for individual workqueues.
      
           Crypto was requesting NUMA affinity as encrypting data across
           different nodes can contribute noticeable overhead and doing it
           per-cpu was too limiting for certain cases and IO throughput could
           be bottlenecked by one CPU being fully occupied while others have
           idle cycles.
      
        While the new features required a lot of changes including
        restructuring locking, it didn't complicate the execution paths much.
        The unbound workqueue handling is now closer to per-cpu ones and the
        new features are implemented by simply associating a workqueue with
        different sets of backend worker pools without changing queue,
        execution or flush paths.
      
        As such, even though the amount of change is very high, I feel
        relatively safe in that it isn't likely to cause subtle issues with
        basic correctness of work item execution and handling.  If something
        is wrong, it's likely to show up as being associated with worker pools
        with the wrong attributes or OOPS while workqueue attributes are being
        changed or during CPU hotplug.
      
        While this creates more backend worker pools, it doesn't add too many
        more workers unless, of course, there are many workqueues with unique
        combinations of attributes.  Assuming everything else is the same,
        NUMA awareness costs an extra worker pool per NUMA node with online
        CPUs.
      
        There are also a couple things which are being routed outside the
        workqueue tree.
      
         - block tree pulled in workqueue for-3.10 so that writeback worker
           pool can be converted to unbound workqueue with sysfs control
           exposed.  This simplifies the code, makes writeback workers
           NUMA-aware and allows tuning nice level and CPU affinity via sysfs.
      
         - The conversion to workqueue means that there's no 1:1 association
           between a specific worker, which makes writeback folks unhappy as
           they want to be able to tell which filesystem caused a problem from
           backtrace on systems with many filesystems mounted.  This is
           resolved by allowing work items to set debug info string which is
           printed when the task is dumped.  As this change involves unifying
           implementations of dump_stack() and friends in arch codes, it's
           being routed through Andrew's -mm tree."
      
      * 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (84 commits)
        workqueue: use kmem_cache_free() instead of kfree()
        workqueue: avoid false negative WARN_ON() in destroy_workqueue()
        workqueue: update sysfs interface to reflect NUMA awareness and a kernel param to disable NUMA affinity
        workqueue: implement NUMA affinity for unbound workqueues
        workqueue: introduce put_pwq_unlocked()
        workqueue: introduce numa_pwq_tbl_install()
        workqueue: use NUMA-aware allocation for pool_workqueues
        workqueue: break init_and_link_pwq() into two functions and introduce alloc_unbound_pwq()
        workqueue: map an unbound workqueues to multiple per-node pool_workqueues
        workqueue: move hot fields of workqueue_struct to the end
        workqueue: make workqueue->name[] fixed len
        workqueue: add workqueue->unbound_attrs
        workqueue: determine NUMA node of workers accourding to the allowed cpumask
        workqueue: drop 'H' from kworker names of unbound worker pools
        workqueue: add wq_numa_tbl_len and wq_numa_possible_cpumask[]
        workqueue: move pwq_pool_locking outside of get/put_unbound_pool()
        workqueue: fix memory leak in apply_workqueue_attrs()
        workqueue: fix unbound workqueue attrs hashing / comparison
        workqueue: fix race condition in unbound workqueue free path
        workqueue: remove pwq_lock which is no longer used
        ...
      46d9be3e
    • Linus Torvalds's avatar
      Merge branch 'for-3.10-async' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · ce8aa489
      Linus Torvalds authored
      Pull async update from Tejun Heo:
       "This contains three cleanup patches for async from Lai.  All three
        patches are essentially cosmetic."
      
      * 'for-3.10-async' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        async: rename and redefine async_func_ptr
        async: remove unused @node from struct async_domain
        async: simplify lowest_in_progress()
      ce8aa489
    • Linus Torvalds's avatar
      Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · b97db075
      Linus Torvalds authored
      Pull percpu patch from Tejun Heo:
       "A puny pull request for percpu.  We were expecting more cleanup
        patches but didn't happen this time, so just a single patch adding
        documentation from Christoph."
      
      * 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: add documentation on this_cpu operations
      b97db075
    • Akinobu Mita's avatar
      net: rename random32 to prandom · 8d564368
      Akinobu Mita authored
      Commit 496f2f93 ("random32: rename random32 to prandom") renamed
      random32() and srandom32() to prandom_u32() and prandom_seed()
      respectively.
      
      net_random() and net_srandom() need to be redefined with prandom_* in
      order to finish the naming transition.
      
      While I'm at it, enclose macro argument of net_srandom() with parenthesis.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8d564368
    • Akinobu Mita's avatar
      net/core: remove duplicate statements by do-while loop · 70e3ba72
      Akinobu Mita authored
      Remove duplicate statements by using do-while loop instead of while loop.
      
      - A;
      - while (e) {
      + do {
      	A;
      - }
      + } while (e);
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      70e3ba72
    • Akinobu Mita's avatar
      net/core: rename random32() to prandom_u32() · 33d7c5e5
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      33d7c5e5
    • Akinobu Mita's avatar
      net/netfilter: rename random32() to prandom_u32() · ca3d41a5
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: Patrick McHardy <kaber@trash.net>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ca3d41a5
    • Akinobu Mita's avatar
      net/sched: rename random32() to prandom_u32() · 5106f3bd
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Stephen Hemminger <shemminger@vyatta.com>
      Cc: Jamal Hadi Salim <jhs@mojatatu.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5106f3bd
    • Akinobu Mita's avatar
      net/sunrpc: rename random32() to prandom_u32() · c86d2dde
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: "J. Bruce Fields" <bfields@fieldses.org>
      Acked-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c86d2dde
    • Akinobu Mita's avatar
      scsi: rename random32() to prandom_u32() · 3b60a64f
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: "James E.J. Bottomley" <JBottomley@parallels.com>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: James Smart <james.smart@emulex.com>
      Cc: Andrew Vasquez <andrew.vasquez@qlogic.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3b60a64f
    • Akinobu Mita's avatar
      lguest: rename random32() to prandom_u32() · 10fdc141
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      10fdc141
    • Akinobu Mita's avatar
      uwb: rename random32() to prandom_u32() · 78782023
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      78782023
    • Akinobu Mita's avatar
      video/uvesafb: rename random32() to prandom_u32() · 314f8477
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Michal Januszewski <spock@gentoo.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      314f8477
    • Akinobu Mita's avatar
      mmc: rename random32() to prandom_u32() · 2e744fcb
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Chris Ball <cjb@laptop.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2e744fcb
    • Akinobu Mita's avatar
      drbd: rename random32() to prandom_u32() · 38b682b2
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      38b682b2
    • Akinobu Mita's avatar
      kernel/: rename random32() to prandom_u32() · 6d65df33
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6d65df33
    • Akinobu Mita's avatar
      mm/: rename random32() to prandom_u32() · d3d30417
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d3d30417
    • Akinobu Mita's avatar
      lib/: rename random32() to prandom_u32() · f39fee5f
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f39fee5f
    • Akinobu Mita's avatar
      x86: rename random32() to prandom_u32() · 56a1ba5f
      Akinobu Mita authored
      Use preferable function name which implies using a pseudo-random
      number generator.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Acked-by: default avatarH. Peter Anvin <hpa@zytor.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      56a1ba5f
    • Akinobu Mita's avatar
      x86: pageattr-test: remove srandom32 call · 4a7b4d23
      Akinobu Mita authored
      pageattr-test calls srandom32() once every test iteration.  But calling
      srandom32() after late_initcalls is not meaningfull.  Because the random
      states for random32() is mixed by good random numbers in late_initcall
      prandom_reseed().
      
      So this removes the call to srandom32().
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Acked-by: default avatarH. Peter Anvin <hpa@zytor.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4a7b4d23
    • Akinobu Mita's avatar
      uuid: use prandom_bytes() · cedddb00
      Akinobu Mita authored
      Use prandom_bytes() to generate 16 bytes of pseudo-random bytes.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Huang Ying <ying.huang@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cedddb00
    • Akinobu Mita's avatar
      raid6test: use prandom_bytes() · 3ec39abd
      Akinobu Mita authored
      Use prandom_bytes() to generate random bytes for test data.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Dan Williams <djbw@fb.com>
      Cc: Vinod Koul <vinod.koul@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3ec39abd
    • Jeff Layton's avatar
      sctp: convert sctp_assoc_set_id() to use idr_alloc_cyclic() · 713e00a3
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Cc: Sridhar Samudrala <sri@us.ibm.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      713e00a3
    • Jeff Layton's avatar
      inotify: convert inotify_add_to_idr() to use idr_alloc_cyclic() · a66c04b4
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Cc: John McCutchan <john@johnmccutchan.com>
      Cc: Robert Love <rlove@rlove.org>
      Cc: Eric Paris <eparis@parisplace.org>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a66c04b4
    • Jeff Layton's avatar
      398c33aa
    • Jeff Layton's avatar
      drivers/infiniband/hw/mlx4: convert to using idr_alloc_cyclic() · f2d9db87
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Jack Morgenstein <jackm@dev.mellanox.co.il>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Cc: Roland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f2d9db87
    • Jeff Layton's avatar
      drivers/infiniband/hw/amso1100: convert to using idr_alloc_cyclic · c027e446
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Reviewed-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Steve Wise <swise@opengridcomputing.com>
      Cc: Tom Tucker <tom@opengridcomputing.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c027e446
    • Jeff Layton's avatar
      idr: introduce idr_alloc_cyclic() · 3e6628c4
      Jeff Layton authored
      As Tejun points out, there are several users of the IDR facility that
      attempt to use it in a cyclic fashion.  These users are likely to see
      -ENOSPC errors after the counter wraps one or more times however.
      
      This patchset adds a new idr_alloc_cyclic routine and converts several
      of these users to it.  Many of these users are in obscure parts of the
      kernel, and I don't have a good way to test some of them.  The change is
      pretty straightforward though, so hopefully it won't be an issue.
      
      There is one other cyclic user of idr_alloc that I didn't touch in
      ipc/util.c.  That one is doing some strange stuff that I didn't quite
      understand, but it looks like it should probably be converted later
      somehow.
      
      This patch:
      
      Thus spake Tejun Heo:
      
          Ooh, BTW, the cyclic allocation is broken.  It's prone to -ENOSPC
          after the first wraparound.  There are several cyclic users in the
          kernel and I think it probably would be best to implement cyclic
          support in idr.
      
      This patch does that by adding new idr_alloc_cyclic function that such
      users in the kernel can use.  With this, there's no need for a caller to
      keep track of the last value used as that's now tracked internally.  This
      should prevent the ENOSPC problems that can hit when the "last allocated"
      counter exceeds INT_MAX.
      
      Later patches will convert existing cyclic users to the new interface.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Reviewed-by: default avatarTejun Heo <tj@kernel.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: "J. Bruce Fields" <bfields@fieldses.org>
      Cc: Eric Paris <eparis@parisplace.org>
      Cc: Jack Morgenstein <jackm@dev.mellanox.co.il>
      Cc: John McCutchan <john@johnmccutchan.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Cc: Robert Love <rlove@rlove.org>
      Cc: Roland Dreier <roland@purestorage.com>
      Cc: Sridhar Samudrala <sri@us.ibm.com>
      Cc: Steve Wise <swise@opengridcomputing.com>
      Cc: Tom Tucker <tom@opengridcomputing.com>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3e6628c4
    • Namjae Jeon's avatar
      Documentation: update nfs option in filesystem/vfat.txt · 27cf10e1
      Namjae Jeon authored
      Add descriptions about 'stale_rw' and 'nostale_ro' nfs options in
      filesystem/vfat.txt
      Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
      Signed-off-by: default avatarRavishankar N <ravi.n1@samsung.com>
      Signed-off-by: default avatarAmit Sahrawat <a.sahrawat@samsung.com>
      Acked-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Acked-by: default avatarRob Landley <rob@landley.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      27cf10e1
    • Namjae Jeon's avatar
      fat (exportfs): rebuild directory-inode if fat_dget() · f1e6fb0a
      Namjae Jeon authored
      This patch enables rebuilding of directory inodes which are not present in
      the cache.This is done by traversing the disk clusters to find the
      directory entry of the parent directory and using its i_pos to build the
      inode.
      
      The traversal is done by fat_scan_logstart() which is similar to
      fat_scan() but matches i_pos values instead of names.fat_scan_logstart()
      needs an inode parameter to work, for which a dummy inode is created by
      it's caller fat_rebuild_parent().  This dummy inode is destroyed after the
      traversal completes.
      
      All this is done  only if the nostale_ro nfs mount option is specified.
      Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
      Signed-off-by: default avatarRavishankar N <ravi.n1@samsung.com>
      Signed-off-by: default avatarAmit Sahrawat <a.sahrawat@samsung.com>
      Acked-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f1e6fb0a
    • Namjae Jeon's avatar
      fat (exportfs): rebuild inode if ilookup() fails · 8fceb4e0
      Namjae Jeon authored
      If the cache lookups fail,use the i_pos value to find the directory entry
      of the inode and rebuild the inode.Since this involves accessing the FAT
      media, do this only if the nostale_ro nfs mount option is specified.
      Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
      Signed-off-by: default avatarRavishankar N <ravi.n1@samsung.com>
      Signed-off-by: default avatarAmit Sahrawat <a.sahrawat@samsung.com>
      Acked-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8fceb4e0