1. 09 Aug, 2013 10 commits
    • Tejun Heo's avatar
      cgroup: pin cgroup_subsys_state when opening a cgroupfs file · f7d58818
      Tejun Heo authored
      Previously, each file read/write operation relied on the inode
      reference count pinning the cgroup and simply checked whether the
      cgroup was marked dead before proceeding to invoke the per-subsystem
      callback.  This was rather silly as it didn't have any synchronization
      or css pinning around the check and the cgroup may be removed and all
      css refs drained between the DEAD check and actual method invocation.
      
      This patch pins the css between open() and release() so that it is
      guaranteed to be alive for all file operations and remove the silly
      DEAD checks from cgroup_file_read/write().
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      f7d58818
    • Tejun Heo's avatar
      cgroup: add subsys backlink pointer to cftype · 2bb566cb
      Tejun Heo authored
      cgroup is transitioning to using css (cgroup_subsys_state) instead of
      cgroup as the primary subsystem handle.  The cgroupfs file interface
      will be converted to use css's which requires finding out the
      subsystem from cftype so that the matching css can be determined from
      the cgroup.
      
      This patch adds cftype->ss which points to the subsystem the file
      belongs to.  The field is initialized while a cftype is being
      registered.  This makes it unnecessary to explicitly specify the
      subsystem for other cftype handling functions.  @ss argument dropped
      from various cftype handling functions.
      
      This patch shouldn't introduce any behavior differences.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      2bb566cb
    • Tejun Heo's avatar
      cgroup: pass around cgroup_subsys_state instead of cgroup in subsystem methods · eb95419b
      Tejun Heo authored
      cgroup is currently in the process of transitioning to using struct
      cgroup_subsys_state * as the primary handle instead of struct cgroup *
      in subsystem implementations for the following reasons.
      
      * With unified hierarchy, subsystems will be dynamically bound and
        unbound from cgroups and thus css's (cgroup_subsys_state) may be
        created and destroyed dynamically over the lifetime of a cgroup,
        which is different from the current state where all css's are
        allocated and destroyed together with the associated cgroup.  This
        in turn means that cgroup_css() should be synchronized and may
        return NULL, making it more cumbersome to use.
      
      * Differing levels of per-subsystem granularity in the unified
        hierarchy means that the task and descendant iterators should behave
        differently depending on the specific subsystem the iteration is
        being performed for.
      
      * In majority of the cases, subsystems only care about its part in the
        cgroup hierarchy - ie. the hierarchy of css's.  Subsystem methods
        often obtain the matching css pointer from the cgroup and don't
        bother with the cgroup pointer itself.  Passing around css fits
        much better.
      
      This patch converts all cgroup_subsys methods to take @css instead of
      @cgroup.  The conversions are mostly straight-forward.  A few
      noteworthy changes are
      
      * ->css_alloc() now takes css of the parent cgroup rather than the
        pointer to the new cgroup as the css for the new cgroup doesn't
        exist yet.  Knowing the parent css is enough for all the existing
        subsystems.
      
      * In kernel/cgroup.c::offline_css(), unnecessary open coded css
        dereference is replaced with local variable access.
      
      This patch shouldn't cause any behavior differences.
      
      v2: Unnecessary explicit cgrp->subsys[] deref in css_online() replaced
          with local variable @css as suggested by Li Zefan.
      
          Rebased on top of new for-3.12 which includes for-3.11-fixes so
          that ->css_free() invocation added by da0a12ca ("cgroup: fix a
          leak when percpu_ref_init() fails") is converted too.  Suggested
          by Li Zefan.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.cz>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Acked-by: default avatarAristeu Rozanski <aris@redhat.com>
      Acked-by: default avatarDaniel Wagner <daniel.wagner@bmw-carit.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Balbir Singh <bsingharora@gmail.com>
      Cc: Matt Helsley <matthltc@us.ibm.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      eb95419b
    • Tejun Heo's avatar
      cgroup: add css_parent() · 63876986
      Tejun Heo authored
      Currently, controllers have to explicitly follow the cgroup hierarchy
      to find the parent of a given css.  cgroup is moving towards using
      cgroup_subsys_state as the main controller interface construct, so
      let's provide a way to climb the hierarchy using just csses.
      
      This patch implements css_parent() which, given a css, returns its
      parent.  The function is guarnateed to valid non-NULL parent css as
      long as the target css is not at the top of the hierarchy.
      
      freezer, cpuset, cpu, cpuacct, hugetlb, memory, net_cls and devices
      are converted to use css_parent() instead of accessing cgroup->parent
      directly.
      
      * __parent_ca() is dropped from cpuacct and its usage is replaced with
        parent_ca().  The only difference between the two was NULL test on
        cgroup->parent which is now embedded in css_parent() making the
        distinction moot.  Note that eventually a css->parent field will be
        added to css and the NULL check in css_parent() will go away.
      
      This patch shouldn't cause any behavior differences.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      63876986
    • Tejun Heo's avatar
      cgroup: add/update accessors which obtain subsys specific data from css · a7c6d554
      Tejun Heo authored
      css (cgroup_subsys_state) is usually embedded in a subsys specific
      data structure.  Subsystems either use container_of() directly to cast
      from css to such data structure or has an accessor function wrapping
      such cast.  As cgroup as whole is moving towards using css as the main
      interface handle, add and update such accessors to ease dealing with
      css's.
      
      All accessors explicitly handle NULL input and return NULL in those
      cases.  While this looks like an extra branch in the code, as all
      controllers specific data structures have css as the first field, the
      casting doesn't involve any offsetting and the compiler can trivially
      optimize out the branch.
      
      * blkio, freezer, cpuset, cpu, cpuacct and net_cls didn't have such
        accessor.  Added.
      
      * memory, hugetlb and devices already had one but didn't explicitly
        handle NULL input.  Updated.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      a7c6d554
    • Tejun Heo's avatar
      cgroup: add subsystem pointer to cgroup_subsys_state · 72c97e54
      Tejun Heo authored
      Currently, given a cgroup_subsys_state, there's no way to find out
      which subsystem the css is for, which we'll need to convert the cgroup
      controller API to primarily use @css instead of @cgroup.  This patch
      adds cgroup_subsys_state->ss which points to the subsystem the @css
      belongs to.
      
      While at it, remove the comment about accessing @css->cgroup to
      determine the hierarchy.  cgroup core will provide API to traverse
      hierarchy of css'es and we don't want subsystems to directly walk
      cgroup hierarchies anymore.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      72c97e54
    • Tejun Heo's avatar
      hugetlb_cgroup: pass around @hugetlb_cgroup instead of @cgroup · 3f798518
      Tejun Heo authored
      cgroup controller API will be converted to primarily use struct
      cgroup_subsys_state instead of struct cgroup.  In preparation, make
      hugetlb_cgroup functions pass around struct hugetlb_cgroup instead of
      struct cgroup.
      
      This patch shouldn't cause any behavior differences.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      Reviewed-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Reviewed-by: default avatarMichal Hocko <mhocko@suse.cz>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      3f798518
    • Tejun Heo's avatar
      netprio_cgroup: pass around @css instead of @cgroup and kill struct cgroup_netprio_state · 6d37b974
      Tejun Heo authored
      cgroup controller API will be converted to primarily use struct
      cgroup_subsys_state instead of struct cgroup.  In preparation, make
      the internal functions of netprio_cgroup pass around @css instead of
      @cgrp.
      
      While at it, kill struct cgroup_netprio_state which only contained
      struct cgroup_subsys_state without serving any purpose.  All functions
      are converted to deal with @css directly.
      
      This patch shouldn't cause any behavior differences.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      6d37b974
    • Tejun Heo's avatar
      cpuset: drop "const" qualifiers from struct cpuset instances · c9710d80
      Tejun Heo authored
      cpuset uses "const" qualifiers on struct cpuset in some functions;
      however, it doesn't work well when a value derived from returned const
      pointer has to be passed to an accessor.  It's C after all.
      
      Drop the "const" qualifiers except for the trivially leaf ones.  This
      patch doesn't make any functional changes.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      c9710d80
    • Tejun Heo's avatar
      cgroup: s/cgroup_subsys_state/cgroup_css/ s/task_subsys_state/task_css/ · 8af01f56
      Tejun Heo authored
      The names of the two struct cgroup_subsys_state accessors -
      cgroup_subsys_state() and task_subsys_state() - are somewhat awkward.
      The former clashes with the type name and the latter doesn't even
      indicate it's somehow related to cgroup.
      
      We're about to revamp large portion of cgroup API, so, let's rename
      them so that they're less awkward.  Most per-controller usages of the
      accessors are localized in accessor wrappers and given the amount of
      scheduled changes, this isn't gonna add any noticeable headache.
      
      Rename cgroup_subsys_state() to cgroup_css() and task_subsys_state()
      to task_css().  This patch is pure rename.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      8af01f56
  2. 02 Aug, 2013 1 commit
  3. 01 Aug, 2013 2 commits
  4. 31 Jul, 2013 7 commits
  5. 29 Jul, 2013 2 commits
  6. 16 Jul, 2013 2 commits
    • Tejun Heo's avatar
      cgroup: remove gratuituous BUG_ON()s from rebind_subsystems() · a698b448
      Tejun Heo authored
      rebind_subsystems() performs santiy checks even on subsystems which
      aren't specified to be added or removed and the checks aren't all that
      useful given that these are in a very cold path while the violations
      they check would trip up in much hotter paths.
      
      Let's remove these from rebind_subsystems().
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      a698b448
    • Tejun Heo's avatar
      cgroup: move module ref handling into rebind_subsystems() · 1d5be6b2
      Tejun Heo authored
      Module ref handling in cgroup is rather weird.
      parse_cgroupfs_options() grabs all the modules for the specified
      subsystems.  A module ref is kept if the specified subsystem is newly
      bound to the hierarchy.  If not, or the operation fails, the refs are
      dropped.  This scatters module ref handling across multiple functions
      making it difficult to track.  It also make the function nasty to use
      for dynamic subsystem binding which is necessary for the planned
      unified hierarchy.
      
      There's nothing which requires the subsystem modules to be pinned
      between parse_cgroupfs_options() and rebind_subsystems() in both mount
      and remount paths.  parse_cgroupfs_options() can just parse and
      rebind_subsystems() can handle pinning the subsystems that it wants to
      bind, which is a natural part of its task - binding - anyway.
      
      Move module ref handling into rebind_subsystems() which makes the code
      a lot simpler - modules are gotten iff it's gonna be bound and put iff
      unbound or binding fails.
      
      v2: Li pointed out that if a controller module is unloaded between
          parsing and binding, rebind_subsystems() won't notice the missing
          controller as it only iterates through existing controllers.  Fix
          it by updating rebind_subsystems() to compare @added_mask to
          @pinned and fail with -ENOENT if they don't match.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      1d5be6b2
  7. 12 Jul, 2013 9 commits
    • Tejun Heo's avatar
      cgroup: replace task_cgroup_path_from_hierarchy() with task_cgroup_path() · 913ffdb5
      Tejun Heo authored
      task_cgroup_path_from_hierarchy() was added for the planned new users
      and none of the currently planned users wants to know about multiple
      hierarchies.  This patch drops the multiple hierarchy part and makes
      it always return the path in the first non-dummy hierarchy.
      
      As unified hierarchy will always have id 1, this is guaranteed to
      return the path for the unified hierarchy if mounted; otherwise, it
      will return the path from the hierarchy which happens to occupy the
      lowest hierarchy id, which will usually be the first hierarchy mounted
      after boot.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      Cc: Lennart Poettering <lennart@poettering.net>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Jan Kaluža <jkaluza@redhat.com>
      913ffdb5
    • Tejun Heo's avatar
      cgroup: move number_of_cgroups test out of rebind_subsystems() into cgroup_remount() · f172e67c
      Tejun Heo authored
      rebind_subsystems() currently fails if the hierarchy has any !root
      cgroups; however, on the planned unified hierarchy,
      rebind_subsystems() will be used while populated.  Move the test to
      cgroup_remount(), which is the only place the test is necessary
      anyway.
      
      As it's impossible for the other two callers of rebind_subsystems() to
      have populated hierarchy, this doesn't make any behavior changes.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      f172e67c
    • Tejun Heo's avatar
      cgroup: make rebind_subsystems() handle file additions and removals with proper error handling · 3126121f
      Tejun Heo authored
      Currently, creating and removing cgroup files in the root directory
      are handled separately from the actual subsystem binding and unbinding
      which happens in rebind_subsystems().  Also, rebind_subsystems() users
      aren't handling file creation errors properly.  Let's integrate
      top_cgroup file handling into rebind_subsystems() so that it's simpler
      to use and everyone handles file creation errors correctly.
      
      * On a successful return, rebind_subsystems() is guaranteed to have
        created all files of the new subsystems and deleted the ones
        belonging to the removed subsystems.  After a failure, no file is
        created or removed.
      
      * cgroup_remount() no longer needs to make explicit populate/clear
        calls as it's all handled by rebind_subsystems(), and it gets proper
        error handling automatically.
      
      * cgroup_mount() has been updated such that the root dentry and cgroup
        are linked before rebind_subsystems().  Also, the init_cred dancing
        and base file handling are moved right above rebind_subsystems()
        call and proper error handling for the base files is added.  While
        at it, add a comment explaining what's going on with the cred thing.
      
      * cgroup_kill_sb() calls rebind_subsystems() to unbind all subsystems
        which now implies removing all subsystem files which requires the
        directory's i_mutex.  Grab it.  This means that files on the root
        cgroup are removed earlier - they used to be deleted from generic
        super_block cleanup from vfs.  This doesn't lead to any functional
        difference and it's cleaner to do the clean up explicitly for all
        files.
      
      Combined with the previous changes, this makes all cgroup file
      creation errors handled correctly.
      
      v2: Added comment on init_cred.
      
      v3: Li spotted that cgroup_mount() wasn't freeing tmp_links after base
          file addition failure.  Fix it by adding free_tmp_links error
          handling label.
      
      v4: v3 introduced build bugs which got noticed by Fengguang's awesome
          kbuild test robot.  Fixed, and shame on me.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      Cc: Fengguang Wu <fengguang.wu@intel.com>
      3126121f
    • Tejun Heo's avatar
      cgroup: use for_each_subsys() instead of for_each_root_subsys() in cgroup_populate/clear_dir() · b420ba7d
      Tejun Heo authored
      rebind_subsystems() will be updated to handle file creations and
      removals with proper error handling and to do that will need to
      perform file operations before actually adding the subsystem to the
      hierarchy.
      
      To enable such usage, update cgroup_populate/clear_dir() to use
      for_each_subsys() instead of for_each_root_subsys() so that they
      operate on all subsystems specified by @subsys_mask whether that
      subsystem is currently bound to the hierarchy or not.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      b420ba7d
    • Tejun Heo's avatar
      cgroup: update error handling in cgroup_populate_dir() · bee55099
      Tejun Heo authored
      cgroup_populate_dir() didn't use to check whether the actual file
      creations were successful and could return success with only subset of
      the requested files created, which is nasty.
      
      This patch udpates cgroup_populate_dir() so that it either succeeds
      with all files or fails with no file.
      
      v2: The original patch also converted for_each_root_subsys() usages to
          for_each_subsys() without explaining why.  That part has been
          moved to a separate patch.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      bee55099
    • Tejun Heo's avatar
      cgroup: separate out cgroup_base_files[] handling out of cgroup_populate/clear_dir() · 628f7cd4
      Tejun Heo authored
      cgroup_populate/clear_dir() currently take @base_files and adds and
      removes, respectively, cgroup_base_files[] to the directory.  File
      additions and removals are being reorganized for proper error handling
      and more dynamic handling for the unified hierarchy, and mixing base
      and subsys file handling into the same functions gets a bit confusing.
      
      This patch moves base file handling out of cgroup_populate/clear_dir()
      into their users - cgroup_mount(), cgroup_create() and
      cgroup_destroy_locked().
      
      Note that this changes the behavior of base file removal.  If
      @base_files is %true, cgroup_clear_dir() used to delete files
      regardless of cftype until there's no files left.  Now, only files
      with matching cfts are removed.  As files can only be created by the
      base or registered cftypes, this shouldn't result in any behavior
      difference.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      628f7cd4
    • Tejun Heo's avatar
      cgroup: fix cgroup_add_cftypes() error handling · 9ccece80
      Tejun Heo authored
      cgroup_add_cftypes() uses cgroup_cfts_commit() to actually create the
      files; however, both functions ignore actual file creation errors and
      just assume success.  This can lead to, for example, blkio hierarchy
      with some of the cgroups with only subset of interface files populated
      after cfq-iosched is loaded under heavy memory pressure, which is
      nasty.
      
      This patch updates cgroup_cfts_commit() and cgroup_add_cftypes() to
      guarantee that all files are created on success and no file is created
      on failure.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      9ccece80
    • Tejun Heo's avatar
      cgroup: fix error path of cgroup_addrm_files() · b1f28d31
      Tejun Heo authored
      cgroup_addrm_files() mishandled error return value from
      cgroup_add_file() and returns error iff the last file fails to create.
      As we're in the process of cleaning up file add/rm error handling and
      will reliably propagate file creation failures, there's no point in
      keeping adding files after a failure.
      
      Replace the broken error collection logic with immediate error return.
      While at it, add lockdep assertions and function comment.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      b1f28d31
    • Tejun Heo's avatar
      cgroup: minor updates around cgroup_clear_directory() · 8f89140a
      Tejun Heo authored
      * Rename it to cgroup_clear_dir() and make it take the pointer to the
        target cgroup instead of the the dentry.  This makes the function
        consistent with its counterpart - cgroup_populate_dir().
      
      * Move cgroup_clear_directory() invocation from cgroup_d_remove_dir()
        to cgroup_remount() so that the function doesn't have to determine
        the cgroup pointer back from the dentry.  cgroup_d_remove_dir() now
        only deals with vfs, which is slightly cleaner.
      
      This patch doesn't introduce any functional differences.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarLi Zefan <lizefan@huawei.com>
      8f89140a
  8. 11 Jul, 2013 7 commits
    • Linus Torvalds's avatar
      Merge tag 'dm-3.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm · 9903883f
      Linus Torvalds authored
      Pull device-mapper changes from Alasdair G Kergon:
       "Add a device-mapper target called dm-switch to provide a multipath
        framework for storage arrays that dynamically reconfigure their
        preferred paths for different device regions.
      
        Fix a bug in the verity target that prevented its use with some
        specific sizes of devices.
      
        Improve some locking mechanisms in the device-mapper core and bufio.
      
        Add Mike Snitzer as a device-mapper maintainer.
      
        A few more clean-ups and fixes"
      
      * tag 'dm-3.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
        dm: add switch target
        dm: update maintainers
        dm: optimize reorder structure
        dm: optimize use SRCU and RCU
        dm bufio: submit writes outside lock
        dm cache: fix arm link errors with inline
        dm verity: use __ffs and __fls
        dm flakey: correct ctr alloc failure mesg
        dm verity: remove pointless comparison
        dm: use __GFP_HIGHMEM in __vmalloc
        dm verity: fix inability to use a few specific devices sizes
        dm ioctl: set noio flag to avoid __vmalloc deadlock
        dm mpath: fix ioctl deadlock when no paths
      9903883f
    • Linus Torvalds's avatar
      Merge branch 'for-3.11/core' of git://git.kernel.dk/linux-block · 36805aae
      Linus Torvalds authored
      Pull core block IO updates from Jens Axboe:
       "Here are the core IO block bits for 3.11. It contains:
      
         - A tweak to the reserved tag logic from Jan, for weirdo devices with
           just 3 free tags.  But for those it improves things substantially
           for random writes.
      
         - Periodic writeback fix from Jan.  Marked for stable as well.
      
         - Fix for a race condition in IO scheduler switching from Jianpeng.
      
         - The hierarchical blk-cgroup support from Tejun.  This is the grunt
           of the series.
      
         - blk-throttle fix from Vivek.
      
        Just a note that I'm in the middle of a relocation, whole family is
        flying out tomorrow.  Hence I will be awal the remainder of this week,
        but back at work again on Monday the 15th.  CC'ing Tejun, since any
        potential "surprises" will most likely be from the blk-cgroup work.
        But it's been brewing for a while and sitting in my tree and
        linux-next for a long time, so should be solid."
      
      * 'for-3.11/core' of git://git.kernel.dk/linux-block: (36 commits)
        elevator: Fix a race in elevator switching
        block: Reserve only one queue tag for sync IO if only 3 tags are available
        writeback: Fix periodic writeback after fs mount
        blk-throttle: implement proper hierarchy support
        blk-throttle: implement throtl_grp->has_rules[]
        blk-throttle: Account for child group's start time in parent while bio climbs up
        blk-throttle: add throtl_qnode for dispatch fairness
        blk-throttle: make throtl_pending_timer_fn() ready for hierarchy
        blk-throttle: make tg_dispatch_one_bio() ready for hierarchy
        blk-throttle: make blk_throtl_bio() ready for hierarchy
        blk-throttle: make blk_throtl_drain() ready for hierarchy
        blk-throttle: dispatch from throtl_pending_timer_fn()
        blk-throttle: implement dispatch looping
        blk-throttle: separate out throtl_service_queue->pending_timer from throtl_data->dispatch_work
        blk-throttle: set REQ_THROTTLED from throtl_charge_bio() and gate stats update with it
        blk-throttle: implement sq_to_tg(), sq_to_td() and throtl_log()
        blk-throttle: add throtl_service_queue->parent_sq
        blk-throttle: generalize update_disptime optimization in blk_throtl_bio()
        blk-throttle: dispatch to throtl_data->service_queue.bio_lists[]
        blk-throttle: move bio_lists[] and friends to throtl_service_queue
        ...
      36805aae
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 6d2fa9e1
      Linus Torvalds authored
      Pull SCSI target updates from Nicholas Bellinger:
       "Lots of activity this round on performance improvements in target-core
        while benchmarking the prototype scsi-mq initiator code with
        vhost-scsi fabric ports, along with a number of iscsi/iser-target
        improvements and hardening fixes for exception path cases post v3.10
        merge.
      
        The highlights include:
      
         - Make persistent reservations APTPL buffer allocated on-demand, and
           drop per t10_reservation buffer.  (grover)
         - Make virtual LUN=0 a NULLIO device, and skip allocation of NULLIO
           device pages (grover)
         - Add transport_cmd_check_stop write_pending bit to avoid extra
           access of ->t_state_lock is WRITE I/O submission fast-path.  (nab)
         - Drop unnecessary CMD_T_DEV_ACTIVE check from
           transport_lun_remove_cmd to avoid extra access of ->t_state_lock in
           release fast-path.  (nab)
         - Avoid extra t_state_lock access in __target_execute_cmd fast-path
           (nab)
         - Drop unnecessary vhost-scsi wait_for_tasks=true usage +
           ->t_state_lock access in release fast-path.  (nab)
         - Convert vhost-scsi to use modern se_cmd->cmd_kref
           TARGET_SCF_ACK_KREF usage (nab)
         - Add tracepoints for SCSI commands being processed (roland)
         - Refactoring of iscsi-target handling of ISCSI_OP_NOOP +
           ISCSI_OP_TEXT to be transport independent (nab)
         - Add iscsi-target SendTargets=$IQN support for in-band discovery
           (nab)
         - Add iser-target support for in-band discovery (nab + Or)
         - Add iscsi-target demo-mode TPG authentication context support (nab)
         - Fix isert_put_reject payload buffer post (nab)
         - Fix iscsit_add_reject* usage for iser (nab)
         - Fix iscsit_sequence_cmd reject handling for iser (nab)
         - Fix ISCSI_OP_SCSI_TMFUNC handling for iser (nab)
         - Fix session reset bug with RDMA_CM_EVENT_DISCONNECTED (nab)
      
        The last five iscsi/iser-target items are CC'ed to stable, as they do
        address issues present in v3.10 code.  They are certainly larger than
        I'd like for stable patch set, but are important to ensure proper
        REJECT exception handling in iser-target for 3.10.y"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (51 commits)
        iser-target: Ignore non TEXT + LOGOUT opcodes for discovery
        target: make queue_tm_rsp() return void
        target: remove unused codes from enum tcm_tmrsp_table
        iscsi-target: kstrtou* configfs attribute parameter cleanups
        iscsi-target: Fix tfc_tpg_auth_cit configfs length overflow
        iscsi-target: Fix tfc_tpg_nacl_auth_cit configfs length overflow
        iser-target: Add support for ISCSI_OP_TEXT opcode + payload handling
        iser-target: Rename sense_buf_[dma,len] to pdu_[dma,len]
        iser-target: Add vendor_err debug output
        target: Add (obsolete) checking for PMI/LBA fields in READ CAPACITY(10)
        target: Return correct sense data for IO past the end of a device
        target: Add tracepoints for SCSI commands being processed
        iser-target: Fix session reset bug with RDMA_CM_EVENT_DISCONNECTED
        iscsi-target: Fix ISCSI_OP_SCSI_TMFUNC handling for iser
        iscsi-target: Fix iscsit_sequence_cmd reject handling for iser
        iscsi-target: Fix iscsit_add_reject* usage for iser
        iser-target: Fix isert_put_reject payload buffer post
        iscsi-target: missing kfree() on error path
        iscsi-target: Drop left-over iscsi_conn->bad_hdr
        target: Make core_scsi3_update_and_write_aptpl return sense_reason_t
        ...
      6d2fa9e1
    • Linus Torvalds's avatar
      Merge tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 0fb3767b
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A few small fixes (and cleanups) for HD-audio, USB-audio and ASoC"
      
      * tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: usb-audio: fix regression for fixed stream quirk
        ALSA: hda - Keep halting ALC5505 DSP
        ASoC: wm8962: fix NULL pdata pointer
        ASoC: imx-sgtl5000: return E_PROBE_DEFER if ssi/codec not found
        ASoC: Samsung: Remove redundant comment
        ALSA: hda - Fix EAPD vmaster hook for AD1884 & co
        ASoC: samsung: Remove obsolete GPIO based DT pinmuxing
        ASoC: mxs: register saif mclk to clock framework
      0fb3767b
    • Linus Torvalds's avatar
      Merge tag 'remoteproc-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc · 0edcd16a
      Linus Torvalds authored
      Pull remoteproc fixes from Ohad Ben-Cohen:
       "Trivial remoteproc fixes by Suman Anna, Wei Yongjun and Thomas Meyer"
      
      * tag 'remoteproc-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc:
        remoteproc: Cocci spatch "memdup.spatch"
        remoteproc: free carveout memories only after unmapping them
        remoteproc/omap: fix a sparse warning
        remoteproc: fix checkpatch errors in remoteproc code
        remoteproc: fix error return code in rproc_fw_boot()
      0edcd16a
    • Linus Torvalds's avatar
      Merge tag 'xtensa-next-20130710' of git://github.com/czankel/xtensa-linux · d4d1cda6
      Linus Torvalds authored
      Pull Xtensa updates from Chris Zankel.
      
      * tag 'xtensa-next-20130710' of git://github.com/czankel/xtensa-linux: (22 commits)
        xtensa: remove the second argument of __bio_kmap_atomic()
        xtensa: add static function tracer support
        xtensa: Flat DeviceTree copy not future-safe
        xtensa: check TLB sanity on return to userspace
        xtensa: adjust boot parameters address when INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX is selected
        xtensa: bootparams: fix typo
        xtensa: tell git to ignore generated .dtb files
        xtensa: ccount based sched_clock
        xtensa: ccount based clockevent implementation
        xtensa: consolidate ccount access routines
        xtensa: cleanup ccount frequency tracking
        xtensa: timex.h: remove unused symbols
        xtensa: tell git to ignore copied zlib source files
        xtensa: fix section mismatch in pcibios_fixup_bus
        xtensa: ISS: fix section mismatch in iss_net_setup
        arch: xtensa: include: asm: compiling issue, need cmpxchg64() defined.
        xtensa: xtfpga: fix section mismatch
        xtensa: remove unused platform_init_irq()
        xtensa: tell git to ignore generated files
        xtensa: flush TLB entries for pages of non-current mm correctly
        ...
      d4d1cda6
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.11-rc1-more' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7728f036
      Linus Torvalds authored
      Pull more power management and ACPI updates from Rafael Wysocki:
      
       - Fix for a recent cpufreq regression that caused WARN() to trigger
         overzealously in a couple of places and spam the kernel log with
         useless garbage as a result.  From Viresh Kumar.
      
       - ACPI dock fix removing a discrepancy between the definition of
         acpi_dock_init(), which says that the function returns int, and its
         header in the header file, which says that it is a void function.
         The function is now defined as void too.
      
       - ACPI PM fix for failures to update device power states as needed, for
         example, during resume from system suspend, because the old state was
         deeper than the new one, but the new one is not D0.
      
       - Fix for two debug messages in the ACPI power resources code that
         don't have a newline at the end and make the kernel log difficult to
         read.  From Mika Westerberg.
      
       - Two ACPI cleanups from Naresh Bhat and Haicheng Li.
      
       - cpupower updates from Thomas Renninger, including Intel Haswell
         support improvements and a new idle-set subcommand among other
         things.
      
      * tag 'pm+acpi-3.11-rc1-more' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / power: add missing newline to debug messages
        cpupower: Add Haswell family 0x45 specific idle monitor to show PC8,9,10 states
        cpupower: Haswell also supports the C-states introduced with SandyBridge
        cpupower: Introduce idle-set subcommand and C-state enabling/disabling
        cpupower: Implement disabling of cstate interface
        cpupower: Make idlestate usage unsigned
        ACPI / fan: Initialize acpi_state variable
        ACPI / scan: remove unused LIST_HEAD(acpi_device_list)
        ACPI / dock: Actually define acpi_dock_init() as void
        ACPI / PM: Fix corner case in acpi_bus_update_power()
        cpufreq: Fix serialization of frequency transitions
      7728f036