Skip to content
This repository
branch: sched-dl-V9-re…

Nov 07, 2013

  1. Dario Faggioli

    sched: add sched_dl documentation.

    Add in Documentation/scheduler/ some hints about the design
    choices, the usage and the future possible developments of the
    sched_dl scheduling class and of the SCHED_DEADLINE policy.
    
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored April 11, 2012 jlelli committed November 07, 2013
  2. Juri Lelli

    sched: speed up -dl pushes with a push-heap.

    Data from tests confirmed that the original active load balancing
    logic didn't scale neither in the number of CPU nor in the number of
    tasks (as sched_rt does).
    
    Here we provide a global data structure to keep track of deadlines
    of the running tasks in the system. The structure is composed by
    a bitmask showing the free CPUs and a max-heap, needed when the system
    is heavily loaded.
    
    The implementation and concurrent access scheme are kept simple by
    design. However, our measurements show that we can compete with sched_rt
    on large multi-CPUs machines [1].
    
    Only the push path is addressed, the extension to use this structure
    also for pull decisions is straightforward. However, we are currently
    evaluating different (in order to decrease/avoid contention) data
    structures to solve possibly both problems. We are also going to re-run
    tests considering recent changes inside cpupri [2].
    
    [1] http://retis.sssup.it/~jlelli/papers/Ospert11Lelli.pdf
    [2] http://www.spinics.net/lists/linux-rt-users/msg06778.html
    
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013
  3. Juri Lelli

    sched: make dl_bw a sub-quota of rt_bw

    Change real-time bandwidth management as to make dl_bw a sub-quota
    of rt_bw. This patch leaves rt_bw at its default value and sets
    dl_bw at 40% of rt_bw. It also remove sched_dl_period_us control
    knob using sched_rt_period_us as common period for both rt_bw and
    dl_bw.
    
    Checks are made when the user tries to change dl_bw sub-quota as to
    not fall below what currently used. Since dl_bw now depends upon
    rt_bw, similar checks are performed when the users modifies rt_bw
    and dl_bw is changed accordingly. Setting rt_bw sysctl variable to
    -1 (actually disabling rt throttling) disables dl_bw checks as well.
    
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013
  4. Dario Faggioli

    sched: add bandwidth management for sched_dl.

    In order of -deadline scheduling to be effective and useful, it is
    important that some method of having the allocation of the available
    CPU bandwidth to tasks and task groups under control.
    This is usually called "admission control" and if it is not performed
    at all, no guarantee can be given on the actual scheduling of the
    -deadline tasks.
    
    Since when RT-throttling has been introduced each task group have a
    bandwidth associated to itself, calculated as a certain amount of
    runtime over a period. Moreover, to make it possible to manipulate
    such bandwidth, readable/writable controls have been added to both
    procfs (for system wide settings) and cgroupfs (for per-group
    settings).
    Therefore, the same interface is being used for controlling the
    bandwidth distrubution to -deadline tasks and task groups, i.e.,
    new controls but with similar names, equivalent meaning and with
    the same usage paradigm are added.
    
    However, more discussion is needed in order to figure out how
    we want to manage SCHED_DEADLINE bandwidth at the task group level.
    Therefore, this patch adds a less sophisticated, but actually
    very sensible, mechanism to ensure that a certain utilization
    cap is not overcome per each root_domain (the single rq for !SMP
    configurations).
    
    Another main difference between deadline bandwidth management and
    RT-throttling is that -deadline tasks have bandwidth on their own
    (while -rt ones doesn't!), and thus we don't need an higher level
    throttling mechanism to enforce the desired bandwidth.
    
    This patch, therefore:
     - adds system wide deadline bandwidth management by means of:
        * /proc/sys/kernel/sched_dl_runtime_us,
        * /proc/sys/kernel/sched_dl_period_us,
       that determine (i.e., runtime / period) the total bandwidth
       available on each CPU of each root_domain for -deadline tasks;
     - couples the RT and deadline bandwidth management, i.e., enforces
       that the sum of how much bandwidth is being devoted to -rt
       -deadline tasks to stay below 100%.
    
    This means that, for a root_domain comprising M CPUs, -deadline tasks
    can be created until the sum of their bandwidths stay below:
    
        M * (sched_dl_runtime_us / sched_dl_period_us)
    
    It is also possible to disable this bandwidth management logic, and
    be thus free of oversubscribing the system up to any arbitrary level.
    
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013 jlelli committed November 07, 2013
  5. Dario Faggioli

    sched: drafted deadline inheritance logic.

    Some method to deal with rt-mutexes and make sched_dl interact with
    the current PI-coded is needed, raising all but trivial issues, that
    needs (according to us) to be solved with some restructuring of
    the pi-code (i.e., going toward a proxy execution-ish implementation).
    
    This is under development, in the meanwhile, as a temporary solution,
    what this commits does is:
     - ensure a pi-lock owner with waiters is never throttled down. Instead,
       when it runs out of runtime, it immediately gets replenished and it's
       deadline is postponed;
     - the scheduling parameters (relative deadline and default runtime)
       used for that replenishments --during the whole period it holds the
       pi-lock-- are the ones of the waiting task with earliest deadline.
    
    Acting this way, we provide some kind of boosting to the lock-owner,
    still by using the existing (actually, slightly modified by the previous
    commit) pi-architecture.
    
    We would stress the fact that this is only a surely needed, all but
    clean solution to the problem. In the end it's only a way to re-start
    discussion within the community. So, as always, comments, ideas, rants,
    etc.. are welcome! :-)
    
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013 jlelli committed November 07, 2013
  6. rtmutex: turn the plist into an rb-tree.

    Turn the pi-chains from plist to rb-tree, in the rt_mutex code,
    and provide a proper comparison function for -deadline and
    -priority tasks.
    
    This is done mainly because:
     - classical prio field of the plist is just an int, which might
       not be enough for representing a deadline;
     - manipulating such a list would become O(nr_deadline_tasks),
       which might be to much, as the number of -deadline task increases.
    
    Therefore, an rb-tree is used, and tasks are queued in it according
    to the following logic:
     - among two -priority (i.e., SCHED_BATCH/OTHER/RR/FIFO) tasks, the
       one with the higher (lower, actually!) prio wins;
     - among a -priority and a -deadline task, the latter always wins;
     - among two -deadline tasks, the one with the earliest deadline
       wins.
    
    Queueing and dequeueing functions are changed accordingly, for both
    the list of a task's pi-waiters and the list of tasks blocked on
    a pi-lock.
    
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013 jlelli committed November 07, 2013
  7. Dario Faggioli

    sched: add latency tracing for -deadline tasks.

    It is very likely that systems that wants/needs to use the new
    SCHED_DEADLINE policy also want to have the scheduling latency of
    the -deadline tasks under control.
    
    For this reason a new version of the scheduling wakeup latency,
    called "wakeup_dl", is introduced.
    
    As a consequence of applying this patch there will be three wakeup
    latency tracer:
     * "wakeup", that deals with all tasks in the system;
     * "wakeup_rt", that deals with -rt and -deadline tasks only;
     * "wakeup_dl", that deals with -deadline tasks only.
    
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013 jlelli committed November 07, 2013
  8. Dario Faggioli

    sched: add schedstats for -deadline tasks.

    Add some typical sched-debug output to dl_rq(s) and some
    schedstats to -deadline tasks. This helps spotting problems
    with queue and dequeue operations (incorrect ordering) and
    gives hints about system status (one can have an idea if the
    system is overloaded, if tasks are missing their deadlines
    and the entity of such anomalies).
    
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013 jlelli committed November 07, 2013
  9. sched: add period support for -deadline tasks.

    Make it possible to specify a period (different or equal than deadline) for
    -deadline tasks. Relative deadlines (D_i) are used on task arrivals to generate
    new scheduling (absolute) deadlines as "d = t + D_i", and periods (P_i) to
    postpone the scheduling deadlines as "d = d + P_i" when the budget is zero.
    This is in general useful to model (and schedule) tasks that have slow
    activation rates (long periods), but have to be scheduled soon once activated
    (short deadlines).
    
    Signed-off-by: Harald Gustafsson <harald.gustafsson@ericsson.com>
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 22, 2012 jlelli committed November 07, 2013
  10. Dario Faggioli

    sched: SCHED_DEADLINE avg_update accounting.

    Make the core scheduler and load balancer aware of the load
    produced by -deadline tasks, by updating the moving average
    like for sched_rt.
    
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored April 11, 2012 jlelli committed November 07, 2013
  11. Juri Lelli

    sched: SCHED_DEADLINE SMP-related data structures & logic.

    Introduces data structures relevant for implementing dynamic
    migration of -deadline tasks and the logic for checking if
    runqueues are overloaded with -deadline tasks and for choosing
    where a task should migrate, when it is the case.
    
    Adds also dynamic migrations to SCHED_DEADLINE, so that tasks can
    be moved among CPUs when necessary. It is also possible to bind a
    task to a (set of) CPU(s), thus restricting its capability of
    migrating, or forbidding migrations at all.
    
    The very same approach used in sched_rt is utilised:
     - -deadline tasks are kept into CPU-specific runqueues,
     - -deadline tasks are migrated among runqueues to achieve the
       following:
        * on an M-CPU system the M earliest deadline ready tasks
          are always running;
        * affinity/cpusets settings of all the -deadline tasks is
          always respected.
    
    Therefore, this very special form of "load balancing" is done with
    an active method, i.e., the scheduler pushes or pulls tasks between
    runqueues when they are woken up and/or (de)scheduled.
    IOW, every time a preemption occurs, the descheduled task might be sent
    to some other CPU (depending on its deadline) to continue executing
    (push). On the other hand, every time a CPU becomes idle, it might pull
    the second earliest deadline ready task from some other CPU.
    
    To enforce this, a pull operation is always attempted before taking any
    scheduling decision (pre_schedule()), as well as a push one after each
    scheduling decision (post_schedule()). In addition, when a task arrives
    or wakes up, the best CPU where to resume it is selected taking into
    account its affinity mask, the system topology, but also its deadline.
    E.g., from the scheduling point of view, the best CPU where to wake
    up (and also where to push) a task is the one which is running the task
    with the latest deadline among the M executing ones.
    
    In order to facilitate these decisions, per-runqueue "caching" of the
    deadlines of the currently running and of the first ready task is used.
    Queued but not running tasks are also parked in another rb-tree to
    speed-up pushes.
    
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    authored May 20, 2013
  12. Dario Faggioli

    sched: SCHED_DEADLINE structures & implementation.

    Introduces the data structures, constants and symbols needed for
    SCHED_DEADLINE implementation.
    
    Core data structure of SCHED_DEADLINE are defined, along with their
    initializers. Hooks for checking if a task belong to the new policy
    are also added where they are needed.
    
    Adds a scheduling class, in sched/dl.c and a new policy called
    SCHED_DEADLINE. It is an implementation of the Earliest Deadline
    First (EDF) scheduling algorithm, augmented with a mechanism (called
    Constant Bandwidth Server, CBS) that makes it possible to isolate
    the behaviour of tasks between each other.
    
    The typical -deadline task will be made up of a computation phase
    (instance) which is activated on a periodic or sporadic fashion. The
    expected (maximum) duration of such computation is called the task's
    runtime; the time interval by which each instance need to be completed
    is called the task's relative deadline. The task's absolute deadline
    is dynamically calculated as the time instant a task (better, an
    instance) activates plus the relative deadline.
    
    The EDF algorithms selects the task with the smallest absolute
    deadline as the one to be executed first, while the CBS ensures each
    task to run for at most its runtime every (relative) deadline
    length time interval, avoiding any interference between different
    tasks (bandwidth isolation).
    Thanks to this feature, also tasks that do not strictly comply with
    the computational model sketched above can effectively use the new
    policy.
    
    To summarize, this patch:
     - introduces the data structures, constants and symbols needed;
     - implements the core logic of the scheduling algorithm in the new
       scheduling class file;
     - provides all the glue code between the new scheduling class and
       the core scheduler and refines the interactions between sched/dl
       and the other existing scheduling classes.
    
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
    Signed-off-by: Fabio Checconi <fchecconi@gmail.com>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013 jlelli committed November 07, 2013
  13. Dario Faggioli

    sched: add extended scheduling interface.

    Add the interface bits needed for supporting scheduling algorithms
    with extended parameters (e.g., SCHED_DEADLINE).
    
    In general, it makes possible to specify a periodic/sporadic task,
    that executes for a given amount of runtime at each instance, and is
    scheduled according to the urgency of their own timing constraints,
    i.e.:
     - a (maximum/typical) instance execution time,
     - a minimum interval between consecutive instances,
     - a time constraint by which each instance must be completed.
    
    Thus, both the data structure that holds the scheduling parameters of
    the tasks and the system calls dealing with it must be extended.
    Unfortunately, modifying the existing struct sched_param would break
    the ABI and result in potentially serious compatibility issues with
    legacy binaries.
    
    For these reasons, this patch:
     - defines the new struct sched_param2, containing all the fields
       that are necessary for specifying a task in the computational
       model described above;
     - defines and implements the new scheduling related syscalls that
       manipulate it, i.e., sched_setscheduler2(), sched_setparam2()
       and sched_getparam2().
    
    Syscalls are introduced for x86 (32 and 64 bits) and ARM only, as a
    proof of concept and for developing and testing purposes. Making them
    available on other architectures is straightforward.
    
    Since no "user" for these new parameters is introduced in this patch,
    the implementation of the new system calls is just identical to their
    already existing counterpart. Future patches that implement scheduling
    policies able to exploit the new data structure must also take care of
    modifying the *2() calls accordingly with their own purposes.
    
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013 jlelli committed November 07, 2013
  14. Dario Faggioli

    sched: add sched_class->task_dead.

    Add a new function to the scheduling class interface. It is called
    at the end of a context switch, if the prev task is in TASK_DEAD state.
    
    It might be useful for the scheduling classes that want to be notified
    when one of their task dies, e.g. to perform some cleanup actions.
    
    Signed-off-by: Dario Faggioli <raistlin@linux.it>
    Signed-off-by: Juri Lelli <juri.lelli@gmail.com>
    authored May 20, 2013 jlelli committed November 07, 2013
  15. Linus Torvalds

    Merge tag 'staging-3.13-rc1' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/gregkh/staging
    
    Pull staging driver update from Greg KH:
     "Here's the big drivers/staging/ update for 3.13-rc1.
    
      Nothing major here, just a _ton_ of fixes and cleanups, mostly driven
      by the new round of OPW applicants, but also there are lots of other
      people doing staging tree cleanups these days in order to help get the
      drivers into mergable shape.
    
      We also merge, and then revert, the ktap code, as Ingo and the other
      perf/ftrace developers feel it should go into the "real" part of the
      kernel with only a bit more work, so no need to put it in staging for
      now.
    
      All of this has been in linux-next for a while with no reported
      issues"
    
    * tag 'staging-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1045 commits)
      staging: drm/imx: fix return value check in ipu_add_subdevice_pdata()
      Staging: zram: Fix access of NULL pointer
      Staging: zram: Fix variable dereferenced before check
      Staging: rtl8187se: space prohibited before semicolon in r8185b_init.c
      Staging: rtl8187se: fix space prohibited after that open parenthesis '(' in r8185b_init.c
      Staging: rtl8187se: fix braces {} are not necessary for single statement blocks in r8185b_init.c
      Staging: rtl8187se: fix trailing whitespace in r8185b_init.c
      Staging: rtl8187se: fix please, no space before tabs in r8185b_init.c
      drivers/staging/nvec/Kconfig: remove trailing whitespace
      Staging: dwc2: Fix variable dereferenced before check
      Staging: xgifb: fix braces {} are not necessary for any arm of this statement
      staging: rtl8192e: remove unneeded semicolons
      staging: rtl8192e: use true and false for bool variables
      staging: ft1000: return values corrected in scram_start_dwnld
      staging: ft1000: change values of status return variable in write_dpram32_and_check
      staging: bcm: Remove unnecessary pointer casting
      imx-drm: ipuv3-crtc: Invert IPU DI0 clock polarity
      staging: r8188eu: Fix sparse warnings in rtl_p2p.c
      staging: r8188eu: Fix sparse warnings in rtw_mlme_ext.c
      staging: r8188eu: Fix sparse warnings in rtl8188e.cmd.c
      ...
    authored November 07, 2013
  16. Linus Torvalds

    Merge tag 'tty-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/tty
    
    Pull tty/serial driver updates from Greg KH:
     "Here's the big tty/serial driver update for 3.13-rc1.
    
      There's some more minor n_tty work here, but nothing like previous
      kernel releases.  Also some new driver ids, driver updates for new
      hardware, and other small things.
    
      All of this has been in linux-next for a while with no issues"
    
    * tag 'tty-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (84 commits)
      serial: omap: fix missing comma
      serial: sh-sci: Enable the driver on all ARM platforms
      serial: mfd: Staticize local symbols
      serial: omap: fix a few checkpatch warnings
      serial: omap: improve RS-485 performance
      mrst_max3110: fix unbalanced IRQ issue during resume
      serial: omap: Add support for optional wake-up
      serial: sirf: remove duplicate defines
      tty: xuartps: Fix build error when COMMON_CLK is not set
      tty: xuartps: Fix build error due to missing forward declaration
      tty: xuartps: Fix "may be used uninitialized" build warning
      serial: 8250_pci: add Pericom PCIe Serial board Support (12d8:7952/4/8) - Chip PI7C9X7952/4/8
      tty: xuartps: Update copyright information
      tty: xuartps: Implement suspend/resume callbacks
      tty: xuartps: Dynamically adjust to input frequency changes
      tty: xuartps: Updating set_baud_rate()
      tty: xuartps: Force enable the UART in xuartps_console_write
      tty: xuartps: support 64 byte FIFO size
      tty: xuartps: Add polled mode support for xuartps
      tty: xuartps: Implement BREAK detection, add SYSRQ support
      ...
    authored November 07, 2013
  17. Linus Torvalds

    Merge tag 'driver-core-3.13-rc1' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/gregkh/driver-core
    
    Pull driver core / sysfs patches from Greg KH:
     "Here's the big driver core / sysfs update for 3.13-rc1.
    
      There's lots of dev_groups updates for different subsystems, as they
      all get slowly migrated over to the safe versions of the attribute
      groups (removing userspace races with the creation of the sysfs
      files.) Also in here are some kobject updates, devres expansions, and
      the first round of Tejun's sysfs reworking to enable it to be used by
      other subsystems as a backend for an in-kernel filesystem.
    
      All of these have been in linux-next for a while with no reported
      issues"
    
    * tag 'driver-core-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (83 commits)
      sysfs: rename sysfs_assoc_lock and explain what it's about
      sysfs: use generic_file_llseek() for sysfs_file_operations
      sysfs: return correct error code on unimplemented mmap()
      mdio_bus: convert bus code to use dev_groups
      device: Make dev_WARN/dev_WARN_ONCE print device as well as driver name
      sysfs: separate out dup filename warning into a separate function
      sysfs: move sysfs_hash_and_remove() to fs/sysfs/dir.c
      sysfs: remove unused sysfs_get_dentry() prototype
      sysfs: honor bin_attr.attr.ignore_lockdep
      sysfs: merge sysfs_elem_bin_attr into sysfs_elem_attr
      devres: restore zeroing behavior of devres_alloc()
      sysfs: fix sysfs_write_file for bin file
      input: gameport: convert bus code to use dev_groups
      input: serio: remove bus usage of dev_attrs
      input: serio: use DEVICE_ATTR_RO()
      i2o: convert bus code to use dev_groups
      memstick: convert bus code to use dev_groups
      tifm: convert bus code to use dev_groups
      virtio: convert bus code to use dev_groups
      ipack: convert bus code to use dev_groups
      ...
    authored November 07, 2013
  18. Linus Torvalds

    Merge tag 'char-misc-3.13-rc1' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/gregkh/char-misc
    
    Pull char/misc patches from Greg KH:
     "Here's the big char/misc driver patchset for 3.13-rc1.
    
      Lots of stuff in here, including some new drivers for Intel's "MIC"
      co-processor devices, and a new eeprom driver.  Other things include
      the driver attribute cleanups, extcon driver updates, hyperv updates,
      and a raft of other miscellaneous driver fixes.
    
      All of these have been in linux-next for a while"
    
    * tag 'char-misc-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (121 commits)
      misc: mic: Fixes for randconfig build errors and warnings.
      tifm: fix error return code in tifm_7xx1_probe()
      w1-gpio: Use devm_* functions
      w1-gpio: Detect of_gpio_error for first gpio
      uio: Pass pointers to virt_to_page(), not integers
      uio: fix memory leak
      misc/at24: avoid infinite loop on write()
      misc/93xx46: avoid infinite loop on write()
      misc: atmel_pwm: add deferred-probing support
      mei: wd: host_init propagate error codes from called functions
      mei: replace stray pr_debug with dev_dbg
      mei: bus: propagate error code returned by mei_me_cl_by_id
      mei: mei_cl_link remove duplicated check for open_handle_count
      mei: print correct device state during unexpected reset
      mei: nfc: fix memory leak in error path
      lkdtm: add tests for additional page permissions
      lkdtm: adjust recursion size to avoid warnings
      lkdtm: isolate stack corruption test
      mei: move host_clients_map cleanup to device init
      mei: me: downgrade two errors to debug level
      ...
    authored November 07, 2013
  19. Linus Torvalds

    Merge tag 'usb-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/usb
    
    Pull USB driver update from Greg KH:
     "Here's the big USB driver update for 3.13-rc1.
    
      It includes the usual xhci changes, EHCI updates to get the scheduling
      of USB transactions working better, and a raft of gadget and musb
      updates as well.
    
      All of this has been in linux-next for a while with no reported
      issues"
    
    * tag 'usb-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (305 commits)
      USB: Maintainers change for usb serial drivers
      usb: usbtest: support container id descriptor test
      usb: usbtest: support superspeed device capbility descriptor test
      usb: usbtest: support usb2 extension descriptor test
      usb: chipidea: only get vbus regulator for non-peripheral mode
      USB: ehci-atmel: add usb_clk for transition to CCF
      usb: cdc-wdm: ignore speed change notifications
      USB: cdc-wdm: support back-to-back USB_CDC_NOTIFY_RESPONSE_AVAILABLE notifications
      usbatm: Fix dynamic_debug / ratelimited atm_dbg and atm_rldbg macros
      printk: pr_debug_ratelimited: check state first to reduce "callbacks suppressed" messages
      usb: usbtest: support bos descriptor test for usb 3.0
      USB: phy: samsung: Support multiple PHYs of same type
      usb: wusbcore: change WA_SEGS_MAX to a legal value
      usb: wusbcore: add a quirk for Alereon HWA device isoc behavior
      usb: wusbcore: combine multiple isoc frames in a single transfer request.
      usb: wusbcore: set the RPIPE wMaxPacketSize value correctly
      usb: chipidea: host: more enhancement when ci->hcd is NULL
      usb: ohci: remove ep93xx bus glue platform driver
      usb: usbtest: fix checkpatch warning as sizeof code style
      UWB: clean up attribute use by using ATTRIBUTE_GROUPS()
      ...
    authored November 07, 2013

Nov 04, 2013

  1. Linus Torvalds

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    Pull networking fixes from David Miller:
     "I'm sending a pull request of these lingering bug fixes for networking
      before the normal merge window material because some of this stuff I'd
      like to get to -stable ASAP"
    
     1) cxgb3 stopped working on 32-bit machines, fix from Ben Hutchings.
    
     2) Structures passed via netlink for netfilter logging are not fully
        initialized.  From Mathias Krause.
    
     3) Properly unlink upper openvswitch device during notifications, from
        Alexei Starovoitov.
    
     4) Fix race conditions involving access to the IP compression scratch
        buffer, from Michal Kubrecek.
    
     5) We don't handle the expiration of MTU information contained in ipv6
        routes sometimes, fix from Hannes Frederic Sowa.
    
     6) With Fast Open we can miscompute the TCP SYN/ACK RTT, from Yuchung
        Cheng.
    
     7) Don't take TCP RTT sample when an ACK doesn't acknowledge new data,
        also from Yuchung Cheng.
    
     8) The decreased IPSEC garbage collection threshold causes problems for
        some people, bump it back up.  From Steffen Klassert.
    
     9) Fix skb->truesize calculated by tcp_tso_segment(), from Eric
        Dumazet.
    
    10) flow_dissector doesn't validate packet lengths sufficiently, from
        Jason Wang
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (41 commits)
      net/mlx4_core: Fix call to __mlx4_unregister_mac
      net: sctp: do not trigger BUG_ON in sctp_cmd_delete_tcb
      net: flow_dissector: fail on evil iph->ihl
      xfrm: Fix null pointer dereference when decoding sessions
      can: kvaser_usb: fix usb endpoints detection
      can: c_can: Fix RX message handling, handle lost message before EOB
      doc:net: Fix typo in Documentation/networking
      bgmac: don't update slot on skb alloc/dma mapping error
      ibm emac: Fix locking for enable/disable eob irq
      ibm emac: Don't call napi_complete if napi_reschedule failed
      virtio-net: correctly handle cpu hotplug notifier during resuming
      bridge: pass correct vlan id to multicast code
      net: x25: Fix dead URLs in Kconfig
      netfilter: xt_NFQUEUE: fix --queue-bypass regression
      xen-netback: use jiffies_64 value to calculate credit timeout
      cxgb3: Fix length calculation in write_ofld_wr() on 32-bit architectures
      bnx2x: Disable VF access on PF removal
      bnx2x: prevent FW assert on low mem during unload
      tcp: gso: fix truesize tracking
      xfrm: Increase the garbage collector threshold
      ...
    authored November 04, 2013
  2. net/mlx4_core: Fix call to __mlx4_unregister_mac

    In function mlx4_master_deactivate_admin_state() __mlx4_unregister_mac was
    called using the MAC index. It should be called with the value of the MAC itself.
    
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored November 03, 2013 davem330 committed November 04, 2013
  3. davem330

    Merge branch 'fixes-for-3.12' of git://gitorious.org/linux-can/linux-can

    Marc Kleine-Budde says:
    
    ====================
    I have two late fixes for the v3.12 release:
    
    The first patch fixes a problem in the c_can's RX message handling, which can
    lead to an endless interrupt loop under heavy load if messages are lost. The
    second patch is by Olivier Sobrie and fixes the endpoint detection of the
    kvaser_usb driver, which is needed for some devices.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored November 04, 2013
  4. Daniel Borkmann

    net: sctp: do not trigger BUG_ON in sctp_cmd_delete_tcb

    Introduced in f9e42b8 ("net: sctp: sideeffect: throw BUG if
    primary_path is NULL"), we intended to find a buggy assoc that's
    part of the assoc hash table with a primary_path that is NULL.
    However, we better remove the BUG_ON for now and find a more
    suitable place to assert for these things as Mark reports that
    this also triggers the bug when duplication cookie processing
    happens, and the assoc is not part of the hash table (so all
    good in this case). Such a situation can for example easily be
    reproduced by:
    
      tc qdisc add dev eth0 root handle 1: prio bands 2 priomap 1 1 1 1 1 1
      tc qdisc add dev eth0 parent 1:2 handle 20: netem loss 20%
      tc filter add dev eth0 protocol ip parent 1: prio 2 u32 match ip \
                protocol 132 0xff match u8 0x0b 0xff at 32 flowid 1:2
    
    This drops 20% of COOKIE-ACK packets. After some follow-up
    discussion with Vlad we came to the conclusion that for now we
    should still better remove this BUG_ON() assertion, and come up
    with two follow-ups later on, that is, i) find a more suitable
    place for this assertion, and possibly ii) have a special
    allocator/initializer for such kind of temporary assocs.
    
    Reported-by: Mark Thomas <Mark.Thomas@metaswitch.com>
    Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored October 31, 2013 davem330 committed November 04, 2013

Nov 03, 2013

  1. Linus Torvalds

    Linux 3.12

    authored November 03, 2013
  2. Linus Torvalds

    Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upst…

    …ream-linus
    
    Pull MIPS fixes from Ralf Baechle:
     "Three fixes across arch/mips with the most complex one being the GIC
      interrupt fix - at nine lines still not monster.  I'm confident this
      are the final MIPS patches even if there should go for an rc8"
    
    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
      MIPS: ralink: fix return value check in rt_timer_probe()
      MIPS: malta: Fix GIC interrupt offsets
      MIPS: Perf: Fix 74K cache map
    authored November 03, 2013
  3. minipli

    ipc, msg: forbid negative values for "msg{max,mnb,mni}"

    Negative message lengths make no sense -- so don't do negative queue
    lenghts or identifier counts. Prevent them from getting negative.
    
    Also change the underlying data types to be unsigned to avoid hairy
    surprises with sign extensions in cases where those variables get
    evaluated in unsigned expressions with bigger data types, e.g size_t.
    
    In case a user still wants to have "unlimited" sizes she could just use
    INT_MAX instead.
    
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    authored November 03, 2013 torvalds committed November 03, 2013

Nov 02, 2013

  1. Linus Torvalds

    Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/ker…

    …nel/git/rusty/linux
    
    Pull ARM kallsyms fix from Rusty Russell:
     "Last minute perf unbreakage for ARM modules; spent a day in
      linux-next"
    
    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
      scripts/kallsyms: filter symbols not in kernel address space
    authored November 02, 2013
  2. ARC: Incorrect mm reference used in vmalloc fault handler

    A vmalloc fault needs to sync up PGD/PTE entry from init_mm to current
    task's "active_mm".  ARC vmalloc fault handler however was using mm.
    
    A vmalloc fault for non user task context (actually pre-userland, from
    init thread's open for /dev/console) caused the handler to deref NULL mm
    (for mm->pgd)
    
    The reasons it worked so far is amazing:
    
    1. By default (!SMP), vmalloc fault handler uses a cached value of PGD.
       In SMP that MMU register is repurposed hence need for mm pointer deref.
    
    2. In pre-3.12 SMP kernel, the problem triggering vmalloc didn't exist in
       pre-userland code path - it was introduced with commit 20bafb3
       "n_tty: Move buffers into n_tty_data"
    
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Cc: Gilad Ben-Yossef <gilad@benyossef.com>
    Cc: Noam Camus <noamc@ezchip.com>
    Cc: stable@vger.kernel.org    #3.10 and 3.11
    Cc: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    authored November 02, 2013 torvalds committed November 02, 2013
  3. jasowang

    net: flow_dissector: fail on evil iph->ihl

    We don't validate iph->ihl which may lead a dead loop if we meet a IPIP
    skb whose iph->ihl is zero. Fix this by failing immediately when iph->ihl
    is evil (less than 5).
    
    This issue were introduced by commit ec5efe7
    (rps: support IPIP encapsulation).
    
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Petr Matousek <pmatouse@redhat.com>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored November 01, 2013 davem330 committed November 02, 2013
  4. davem330

    Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/klassert/ipsec
    
    Steffen Klassert says:
    
    ====================
    1) Fix a possible race on ipcomp scratch buffers because
       of too early enabled siftirqs. From Michal Kubecek.
    
    2) The current xfrm garbage collector threshold is too small
       for some workloads, resulting in bad performance on these
       workloads. Increase the threshold from 1024 to 32768.
    
    3) Some codepaths might not have a dst_entry attached to the
       skb when calling xfrm_decode_session(). So add a check
       to prevent a null pointer dereference in this case.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored November 02, 2013

Nov 01, 2013

  1. ming1

    scripts/kallsyms: filter symbols not in kernel address space

    This patch uses CONFIG_PAGE_OFFSET to filter symbols which
    are not in kernel address space because these symbols are
    generally for generating code purpose and can't be run at
    kernel mode, so we needn't keep them in /proc/kallsyms.
    
    For example, on ARM there are some symbols which may be
    linked in relocatable code section, then perf can't parse
    symbols any more from /proc/kallsyms, this patch fixes the
    problem (introduced b9b32bf)
    
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Michal Marek <mmarek@suse.cz>
    Signed-off-by: Ming Lei <tom.leiming@gmail.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Cc: stable@vger.kernel.org
    authored November 02, 2013 rustyrussell committed November 02, 2013
  2. Linus Torvalds

    Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/tip/tip
    
    Pull perf fixes from Ingo Molnar:
     "Two fixes:
    
       - Fix 'NMI handler took too long to run' false positives
    
         [ Genuine NMI overhead speedups will come for v3.13, this commit
           only fixes a measurement bug ]
    
       - Fix perf ring-buffer missed barrier causing (rare) ring-buffer data
         corruption on ppc64"
    
    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      perf/x86: Fix NMI measurements
      perf: Fix perf ring buffer memory ordering
    authored November 01, 2013
  3. Linus Torvalds

    Merge tag 'usb-3.12-rc8' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/usb
    
    Pull USB fixes from Greg KH:
     "Here is a set of patches that revert all of the changes done to the
      pl2303 USB serial driver in the 3.12-rc timeframe, as it turns out
      they break some devices that work just fine on 3.11.  As it's not a
      good idea to break working systems, drop them all and they will be
      reworked for future kernel versions such that there is no breakage.
    
      I've also included a MAINTAINERS update for the USB serial subsystem
      and a new device id for the ftdi_sio driver as well"
    
    * tag 'usb-3.12-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
      USB: serial: ftdi_sio: add id for Z3X Box device
      USB: Maintainers change for usb serial drivers
      Revert "USB: pl2303: restrict the divisor based baud rate encoding method to the "HX" chip type"
      Revert "usb: pl2303: fix+improve the divsor based baud rate encoding method"
      Revert "usb: pl2303: do not round to the next nearest standard baud rate for the divisor based baud rate encoding method"
      Revert "usb: pl2303: remove 500000 baud from the list of standard baud rates"
      Revert "usb: pl2303: move the two baud rate encoding methods to separate functions"
      Revert "usb: pl2303: increase the allowed baud rate range for the divisor based encoding method"
      Revert "usb: pl2303: also use the divisor based baud rate encoding method for baud rates < 115200 with HX chips"
      Revert "usb: pl2303: add two comments concerning the supported baud rates with HX chips"
      Revert "pl2303: simplify the else-if contruct for type_1 chips in pl2303_startup()"
      Revert "pl2303: improve the chip type information output on startup"
      Revert "pl2303: improve the chip type detection/distinction"
      Revert "USB: pl2303: distinguish between original and cloned HX chips"
    authored November 01, 2013
  4. Linus Torvalds

    Merge tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/g…

    …it/tiwai/sound
    
    Pull more sound fixes from Takashi Iwai:
     "The fixes for random bugs that have been reported lately in the game:
      a few fixes in ASoC dpam and wm_hubs bugs spotted by Coverity, a
      one-liner HD-audio fixup, and a fix for Oops with DPCM.
    
      They are not so critically urgent bugs, but all small and safe"
    
    * tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
      ALSA: fix oops in snd_pcm_info() caused by ASoC DPCM
      ASoC: wm_hubs: Add missing break in hp_supply_event()
      ALSA: hda - Add a fixup for ASUS N76VZ
      ASoC: dapm: Return -ENOMEM in snd_soc_dapm_new_dai_widgets()
      ASoC: dapm: Fix source list debugfs outputs
    authored November 01, 2013
  5. Linus Torvalds

    Merge tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mturqu…

    …ette/linux
    
    Pull clock subsystem fixes from Mike Turquette.
    
    * tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mturquette/linux:
      clk: fixup argument order when setting VCO parameters
      clk: socfpga: Fix incorrect sdmmc clock name
      clk: armada-370: fix tclk frequencies
      clk: nomadik: set all timers to use 2.4 MHz TIMCLK
    authored November 01, 2013
Something went wrong with that request. Please try again.