31 Mar, 2011

1 commit


24 Mar, 2011

2 commits

  • The expected course of development for user namespaces targeted
    capabilities is laid out at https://wiki.ubuntu.com/UserNamespace.

    Goals:

    - Make it safe for an unprivileged user to unshare namespaces. They
    will be privileged with respect to the new namespace, but this should
    only include resources which the unprivileged user already owns.

    - Provide separate limits and accounting for userids in different
    namespaces.

    Status:

    Currently (as of 2.6.38) you can clone with the CLONE_NEWUSER flag to
    get a new user namespace if you have the CAP_SYS_ADMIN, CAP_SETUID, and
    CAP_SETGID capabilities. What this gets you is a whole new set of
    userids, meaning that user 500 will have a different 'struct user' in
    your namespace than in other namespaces. So any accounting information
    stored in struct user will be unique to your namespace.

    However, throughout the kernel there are checks which

    - simply check for a capability. Since root in a child namespace
    has all capabilities, this means that a child namespace is not
    constrained.

    - simply compare uid1 == uid2. Since these are the integer uids,
    uid 500 in namespace 1 will be said to be equal to uid 500 in
    namespace 2.

    As a result, the lxc implementation at lxc.sf.net does not use user
    namespaces. This is actually helpful because it leaves us free to
    develop user namespaces in such a way that, for some time, user
    namespaces may be unuseful.

    Bugs aside, this patchset is supposed to not at all affect systems which
    are not actively using user namespaces, and only restrict what tasks in
    child user namespace can do. They begin to limit privilege to a user
    namespace, so that root in a container cannot kill or ptrace tasks in the
    parent user namespace, and can only get world access rights to files.
    Since all files currently belong to the initila user namespace, that means
    that child user namespaces can only get world access rights to *all*
    files. While this temporarily makes user namespaces bad for system
    containers, it starts to get useful for some sandboxing.

    I've run the 'runltplite.sh' with and without this patchset and found no
    difference.

    This patch:

    copy_process() handles CLONE_NEWUSER before the rest of the namespaces.
    So in the case of clone(CLONE_NEWUSER|CLONE_NEWUTS) the new uts namespace
    will have the new user namespace as its owner. That is what we want,
    since we want root in that new userns to be able to have privilege over
    it.

    Changelog:
    Feb 15: don't set uts_ns->user_ns if we didn't create
    a new uts_ns.
    Feb 23: Move extern init_user_ns declaration from
    init/version.c to utsname.h.

    Signed-off-by: Serge E. Hallyn
    Acked-by: "Eric W. Biederman"
    Acked-by: Daniel Lezcano
    Acked-by: David Howells
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • This patchset is a cleanup and a preparation to unshare the pid namespace.
    These prerequisites prepare for Eric's patchset to give a file descriptor
    to a namespace and join an existing namespace.

    This patch:

    It turns out that the existing assignment in copy_process of the
    child_reaper can handle the initial assignment of child_reaper we just
    need to generalize the test in kernel/fork.c

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Daniel Lezcano
    Cc: Oleg Nesterov
    Cc: Alexey Dobriyan
    Acked-by: Serge E. Hallyn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     

23 Mar, 2011

6 commits

  • In do_mounts_rd() if memory cannot be allocated, return -ENOMEM.

    Signed-off-by: Davidlohr Bueso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Davidlohr Bueso
     
  • Systems with unmaskable interrupts such as SMIs may massively
    underestimate loops_per_jiffy, and fail to converge anywhere near the real
    value. A case seen on x86_64 was an initial estimate of 256<<<
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Tested-by: Stephen Boyd
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Phil Carmody
     
  • Binary chop with a jiffy-resync on each step to find an upper bound is
    slow, so just race in a tight-ish loop to find an underestimate.

    If done with lots of individual steps, sometimes several hundreds of
    iterations would be required, which would impose a significant overhead,
    and make the initial estimate very low. By taking slowly increasing steps
    there will be less overhead.

    E.g. an x86_64 2.67GHz could have fitted in 613 individual small delays,
    but in reality should have been able to fit in a single delay 644 times
    longer, so underestimated by 31 steps. To reach the equivalent of 644
    small delays with the accelerating scheme now requires about 130
    iterations, so has
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Tested-by: Stephen Boyd
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Phil Carmody
     
  • The motivation for this patch series is that currently our OMAP calibrates
    itself using the trial-and-error binary chop fallback that some other
    architectures no longer need to perform. This is a lengthy process,
    taking 0.2s in an environment where boot time is of great interest.

    Patch 2/4 has two optimisations. Firstly, it replaces the initial
    repeated- doubling to find the relevant power of 2 with a tight loop that
    just does as much as it can in a jiffy. Secondly, it doesn't binary chop
    over an entire power of 2 range, it choses a much smaller range based on
    how much it squeezed in, and failed to squeeze in, during the first stage.
    Both are significant optimisations, and bring our calibration down from
    23 jiffies to 5, and, in the process, often arrive at a more accurate lpj
    value.

    The 'bands' and 'sub-logarithmic' growth may look over-engineered, but
    they only cost a small level of inaccuracy in the initial guess (for all
    architectures) in order to avoid the very large inaccuracies that appeared
    during testing (on x86_64 architectures, and presumably others with less
    metronomic operation). Note that due to the existence of the TSC and
    other timers, the x86_64 will not typically use this fallback routine, but
    I wanted to code defensively, able to cope with all kinds of processor
    behaviours and kernel command line options.

    Patch 3/4 is an additional trap for the nightmare scenario where the
    initial estimate is very inaccurate, possibly due to things like SMIs.
    It simply retries with a larger bound.

    Stephen said:

    I tried this patch set out on an MSM7630.
    :
    : Before:
    :
    : Calibrating delay loop... 681.57 BogoMIPS (lpj=3407872)
    :
    : After:
    :
    : Calibrating delay loop... 680.75 BogoMIPS (lpj=3403776)
    :
    : But the really good news is calibration time dropped from ~247ms to ~56ms.
    : Sadly we won't be able to benefit from this should my udelay patches make
    : it into ARM because we would be using calibrate_delay_direct() instead (at
    : least on machines who choose to). Can we somehow reapply the logic behind
    : this to calibrate_delay_direct()? That would be even better, but this is
    : definitely a boot time improvement.
    :
    : Or maybe we could just replace calibrate_delay_direct() with this fallback
    : calculation? If __delay() is a thin wrapper around read_current_timer()
    : it should work just as well (plus patch 3 makes it handle SMIs). I'll try
    : that out.

    This patch:

    ... so that it can be modified more clinically.

    This is almost entirely cosmetic. The only change to the operation
    is that the global variable is only set once after the estimation is
    completed, rather than taking on all the intermediate values. However,
    there are no readers of that variable, so this change is unimportant.

    Signed-off-by: Phil Carmody
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Tested-by: Stephen Boyd
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Phil Carmody
     
  • Move setup_nr_cpu_ids(), smp_init() and some other SMP boot parameter
    setup functions from init/main.c to kenrel/smp.c, saves some #ifdef
    CONFIG_SMP.

    Signed-off-by: WANG Cong
    Cc: Rakib Mullick
    Cc: David Howells
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: Tejun Heo
    Cc: Arnd Bergmann
    Cc: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Amerigo Wang
     
  • printk()s without a priority level default to KERN_WARNING. To reduce
    noise at KERN_WARNING, this patch set the priority level appriopriately
    for unleveled printks()s. This should be useful to folks that look at
    dmesg warnings closely.

    Signed-off-by: Mandeep Singh Baines
    Cc: Jens Axboe
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mandeep Singh Baines
     

19 Mar, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (47 commits)
    doc: CONFIG_UNEVICTABLE_LRU doesn't exist anymore
    Update cpuset info & webiste for cgroups
    dcdbas: force SMI to happen when expected
    arch/arm/Kconfig: remove one to many l's in the word.
    asm-generic/user.h: Fix spelling in comment
    drm: fix printk typo 'sracth'
    Remove one to many n's in a word
    Documentation/filesystems/romfs.txt: fixing link to genromfs
    drivers:scsi Change printk typo initate -> initiate
    serial, pch uart: Remove duplicate inclusion of linux/pci.h header
    fs/eventpoll.c: fix spelling
    mm: Fix out-of-date comments which refers non-existent functions
    drm: Fix printk typo 'failled'
    coh901318.c: Change initate to initiate.
    mbox-db5500.c Change initate to initiate.
    edac: correct i82975x error-info reported
    edac: correct i82975x mci initialisation
    edac: correct commented info
    fs: update comments to point correct document
    target: remove duplicate include of target/target_core_device.h from drivers/target/target_core_hba.c
    ...

    Trivial conflict in fs/eventpoll.c (spelling vs addition)

    Linus Torvalds
     

17 Mar, 2011

2 commits

  • * 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
    BKL: That's all, folks
    fs/locks.c: Remove stale FIXME left over from BKL conversion
    ipx: remove the BKL
    appletalk: remove the BKL
    x25: remove the BKL
    ufs: remove the BKL
    hpfs: remove the BKL
    drivers: remove extraneous includes of smp_lock.h
    tracing: don't trace the BKL
    adfs: remove the big kernel lock

    Linus Torvalds
     
  • …/gregkh/driver-core-2.6

    * 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (50 commits)
    printk: do not mangle valid userspace syslog prefixes
    efivars: Add Documentation
    efivars: Expose efivars functionality to external drivers.
    efivars: Parameterize operations.
    efivars: Split out variable registration
    efivars: parameterize efivars
    efivars: Make efivars bin_attributes dynamic
    efivars: move efivars globals into struct efivars
    drivers:misc: ti-st: fix debugging code
    kref: Fix typo in kref documentation
    UIO: add PRUSS UIO driver support
    Fix spelling mistakes in Documentation/zh_CN/SubmittingPatches
    firmware: Fix unaligned memory accesses in dmi-sysfs
    firmware: Add documentation for /sys/firmware/dmi
    firmware: Expose DMI type 15 System Event Log
    firmware: Break out system_event_log in dmi-sysfs
    firmware: Basic dmi-sysfs support
    firmware: Add DMI entry types to the headers
    Driver core: convert platform_{get,set}_drvdata to static inline functions
    Translate linux-2.6/Documentation/magic-number.txt into Chinese
    ...

    Linus Torvalds
     

16 Mar, 2011

1 commit

  • …git/tip/linux-2.6-tip

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (184 commits)
    perf probe: Clean up probe_point_lazy_walker() return value
    tracing: Fix irqoff selftest expanding max buffer
    tracing: Align 4 byte ints together in struct tracer
    tracing: Export trace_set_clr_event()
    tracing: Explain about unstable clock on resume with ring buffer warning
    ftrace/graph: Trace function entry before updating index
    ftrace: Add .ref.text as one of the safe areas to trace
    tracing: Adjust conditional expression latency formatting.
    tracing: Fix event alignment: skb:kfree_skb
    tracing: Fix event alignment: mce:mce_record
    tracing: Fix event alignment: kvm:kvm_hv_hypercall
    tracing: Fix event alignment: module:module_request
    tracing: Fix event alignment: ftrace:context_switch and ftrace:wakeup
    tracing: Remove lock_depth from event entry
    perf header: Stop using 'self'
    perf session: Use evlist/evsel for managing perf.data attributes
    perf top: Don't let events to eat up whole header line
    perf top: Fix events overflow in top command
    ring-buffer: Remove unused #include <linux/trace_irq.h>
    tracing: Add an 'overwrite' trace_option.
    ...

    Linus Torvalds
     

15 Mar, 2011

1 commit


05 Mar, 2011

1 commit

  • This removes the implementation of the big kernel lock,
    at last. A lot of people have worked on this in the
    past, I so the credit for this patch should be with
    everyone who participated in the hunt.

    The names on the Cc list are the people that were the
    most active in this, according to the recorded git
    history, in alphabetical order.

    Signed-off-by: Arnd Bergmann
    Acked-by: Alan Cox
    Cc: Alessio Igor Bogani
    Cc: Al Viro
    Cc: Andrew Hendry
    Cc: Andrew Morton
    Cc: Christoph Hellwig
    Cc: Eric W. Biederman
    Cc: Frederic Weisbecker
    Cc: Hans Verkuil
    Acked-by: Ingo Molnar
    Cc: Jan Blunck
    Cc: John Kacur
    Cc: Jonathan Corbet
    Cc: Linus Torvalds
    Cc: Matthew Wilcox
    Cc: Oliver Neukum
    Cc: Paul Menage
    Acked-by: Thomas Gleixner
    Cc: Trond Myklebust

    Arnd Bergmann
     

04 Mar, 2011

1 commit


16 Feb, 2011

1 commit

  • This kernel patch adds the ability to filter monitoring based on
    container groups (cgroups). This is for use in per-cpu mode only.

    The cgroup to monitor is passed as a file descriptor in the pid
    argument to the syscall. The file descriptor must be opened to
    the cgroup name in the cgroup filesystem. For instance, if the
    cgroup name is foo and cgroupfs is mounted in /cgroup, then the
    file descriptor is opened to /cgroup/foo. Cgroup mode is
    activated by passing PERF_FLAG_PID_CGROUP in the flags argument
    to the syscall.

    For instance to measure in cgroup foo on CPU1 assuming
    cgroupfs is mounted under /cgroup:

    struct perf_event_attr attr;
    int cgroup_fd, fd;

    cgroup_fd = open("/cgroup/foo", O_RDONLY);
    fd = perf_event_open(&attr, cgroup_fd, 1, -1, PERF_FLAG_PID_CGROUP);
    close(cgroup_fd);

    Signed-off-by: Stephane Eranian
    [ added perf_cgroup_{exit,attach} ]
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Stephane Eranian
     

15 Feb, 2011

1 commit


11 Feb, 2011

1 commit

  • Fixes a hang when booting as dom0 under Xen, when jiffies can be
    quite large by the time the kernel init gets this far.

    Signed-off-by: Tim Deegan
    [jbeulich@novell.com: !time_after() -> time_before_eq() as suggested by Jiri Slaby]
    Signed-off-by: Jan Beulich
    Cc: Jiri Slaby
    Cc: Jeremy Fitzhardinge
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Tim Deegan
     

04 Feb, 2011

1 commit


21 Jan, 2011

2 commits

  • …/git/tip/linux-2.6-tip

    * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    smp: Allow on_each_cpu() to be called while early_boot_irqs_disabled status to init/main.c
    lockdep: Move early boot local IRQ enable/disable status to init/main.c

    Linus Torvalds
     
  • The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
    is used to configure any non-standard kernel with a much larger scope than
    only small devices.

    This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
    references to the option throughout the kernel. A new CONFIG_EMBEDDED
    option is added that automatically selects CONFIG_EXPERT when enabled and
    can be used in the future to isolate options that should only be
    considered for embedded systems (RISC architectures, SLOB, etc).

    Calling the option "EXPERT" more accurately represents its intention: only
    expert users who understand the impact of the configuration changes they
    are making should enable it.

    Reviewed-by: Ingo Molnar
    Acked-by: David Woodhouse
    Signed-off-by: David Rientjes
    Cc: Greg KH
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Arnd Bergmann
    Cc: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

20 Jan, 2011

1 commit

  • During early boot, local IRQ is disabled until IRQ subsystem is
    properly initialized. During this time, no one should enable
    local IRQ and some operations which usually are not allowed with
    IRQ disabled, e.g. operations which might sleep or require
    communications with other processors, are allowed.

    lockdep tracked this with early_boot_irqs_off/on() callbacks.
    As other subsystems need this information too, move it to
    init/main.c and make it generally available. While at it,
    toggle the boolean to early_boot_irqs_disabled instead of
    enabled so that it can be initialized with %false and %true
    indicates the exceptional condition.

    Signed-off-by: Tejun Heo
    Acked-by: Peter Zijlstra
    Acked-by: Pekka Enberg
    Cc: Linus Torvalds
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Tejun Heo
     

17 Jan, 2011

2 commits

  • It would seem that `CONFIG_BLK_THROTTLE' doesn't exist,
    as it is only referenced in the documentation for
    `CONFIG_BLK_CGROUP'. The only other choice is
    `CONFIG_BLK_DEV_THROTTLING':

    $ git grep --cached THROTTL -- \*Kconfig
    block/Kconfig:config BLK_DEV_THROTTLING
    init/Kconfig: CONFIG_BLK_THROTTLE=y.

    Signed-off-by: Michael Witten
    Signed-off-by: Jiri Kosina

    Michael Witten
     
  • Also, I introduced some punctuation to facilitate reading.

    Signed-off-by: Michael Witten
    Signed-off-by: Jiri Kosina

    Michael Witten
     

16 Jan, 2011

1 commit

  • …linus' and 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

    * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    rcu: avoid pointless blocked-task warnings
    rcu: demote SRCU_SYNCHRONIZE_DELAY from kernel-parameter status
    rtmutex: Fix comment about why new_owner can be NULL in wake_futex_pi()

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, olpc: Add missing Kconfig dependencies
    x86, mrst: Set correct APB timer IRQ affinity for secondary cpu
    x86: tsc: Fix calibration refinement conditionals to avoid divide by zero
    x86, ia64, acpi: Clean up x86-ism in drivers/acpi/numa.c

    * 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    timekeeping: Make local variables static
    time: Rename misnamed minsec argument of clocks_calc_mult_shift()

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    tracing: Remove syscall_exit_fields
    tracing: Only process module tracepoints once
    perf record: Add "nodelay" mode, disabled by default
    perf sched: Fix list of events, dropping unsupported ':r' modifier
    Revert "perf tools: Emit clearer message for sys_perf_event_open ENOENT return"
    perf top: Fix annotate segv
    perf evsel: Fix order of event list deletion

    Linus Torvalds
     

14 Jan, 2011

4 commits

  • …/linux-2.6-rcu into core/urgent

    Ingo Molnar
     
  • Because the adaptive synchronize_srcu_expedited() approach has
    worked very well in testing, remove the kernel parameter and
    replace it by a C-preprocessor macro. If someone finds problems
    with this approach, a more complex and aggressively adaptive
    approach might be required.

    Longer term, SRCU will be merged with the other RCU implementations,
    at which point synchronize_srcu_expedited() will be event driven,
    just as synchronize_sched_expedited() currently is. At that point,
    there will be no need for this adaptive approach.

    Reported-by: Linus Torvalds
    Signed-off-by: Paul E. McKenney

    Paul E. McKenney
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    Documentation/trace/events.txt: Remove obsolete sched_signal_send.
    writeback: fix global_dirty_limits comment runtime -> real-time
    ppc: fix comment typo singal -> signal
    drivers: fix comment typo diable -> disable.
    m68k: fix comment typo diable -> disable.
    wireless: comment typo fix diable -> disable.
    media: comment typo fix diable -> disable.
    remove doc for obsolete dynamic-printk kernel-parameter
    remove extraneous 'is' from Documentation/iostats.txt
    Fix spelling milisec -> ms in snd_ps3 module parameter description
    Fix spelling mistakes in comments
    Revert conflicting V4L changes
    i7core_edac: fix typos in comments
    mm/rmap.c: fix comment
    sound, ca0106: Fix assignment to 'channel'.
    hrtimer: fix a typo in comment
    init/Kconfig: fix typo
    anon_inodes: fix wrong function name in comment
    fix comment typos concerning "consistent"
    poll: fix a typo in comment
    ...

    Fix up trivial conflicts in:
    - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c)
    - fs/ext4/ext4.h

    Also fix missed 'diabled' typo in drivers/net/bnx2x/bnx2x.h while at it.

    Linus Torvalds
     
  • This implements the API defined in which is
    used for kernel, initramfs, and initrd decompression. This patch together
    with the first patch is enough for XZ-compressed initramfs and initrd;
    XZ-compressed kernel will need arch-specific changes.

    The buffering requirements described in decompress_unxz.c are stricter
    than with gzip, so the relevant changes should be done to the
    arch-specific code when adding support for XZ-compressed kernel.
    Similarly, the heap size in arch-specific pre-boot code may need to be
    increased (30 KiB is enough).

    The XZ decompressor needs memmove(), memeq() (memcmp() == 0), and
    memzero() (memset(ptr, 0, size)), which aren't available in all
    arch-specific pre-boot environments. I'm including simple versions in
    decompress_unxz.c, but a cleaner solution would naturally be nicer.

    Signed-off-by: Lasse Collin
    Cc: "H. Peter Anvin"
    Cc: Alain Knaff
    Cc: Albin Tonnerre
    Cc: Phillip Lougher
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lasse Collin
     

08 Jan, 2011

1 commit

  • * 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (33 commits)
    usb: don't use flush_scheduled_work()
    speedtch: don't abuse struct delayed_work
    media/video: don't use flush_scheduled_work()
    media/video: explicitly flush request_module work
    ioc4: use static work_struct for ioc4_load_modules()
    init: don't call flush_scheduled_work() from do_initcalls()
    s390: don't use flush_scheduled_work()
    rtc: don't use flush_scheduled_work()
    mmc: update workqueue usages
    mfd: update workqueue usages
    dvb: don't use flush_scheduled_work()
    leds-wm8350: don't use flush_scheduled_work()
    mISDN: don't use flush_scheduled_work()
    macintosh/ams: don't use flush_scheduled_work()
    vmwgfx: don't use flush_scheduled_work()
    tpm: don't use flush_scheduled_work()
    sonypi: don't use flush_scheduled_work()
    hvsi: don't use flush_scheduled_work()
    xen: don't use flush_scheduled_work()
    gdrom: don't use flush_scheduled_work()
    ...

    Fixed up trivial conflict in drivers/media/video/bt8xx/bttv-input.c
    as per Tejun.

    Linus Torvalds
     

07 Jan, 2011

3 commits

  • …/git/tip/linux-2.6-tip

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)
    sched: Change wait_for_completion_*_timeout() to return a signed long
    sched, autogroup: Fix reference leak
    sched, autogroup: Fix potential access to freed memory
    sched: Remove redundant CONFIG_CGROUP_SCHED ifdef
    sched: Fix interactivity bug by charging unaccounted run-time on entity re-weight
    sched: Move periodic share updates to entity_tick()
    printk: Use this_cpu_{read|write} api on printk_pending
    sched: Make pushable_tasks CONFIG_SMP dependant
    sched: Add 'autogroup' scheduling feature: automated per session task groups
    sched: Fix unregister_fair_sched_group()
    sched: Remove unused argument dest_cpu to migrate_task()
    mutexes, sched: Introduce arch_mutex_cpu_relax()
    sched: Add some clock info to sched_debug
    cpu: Remove incorrect BUG_ON
    cpu: Remove unused variable
    sched: Fix UP build breakage
    sched: Make task dump print all 15 chars of proc comm
    sched: Update tg->shares after cpu.shares write
    sched: Allow update_cfs_load() to update global load
    sched: Implement demand based update_cfs_load()
    ...

    Linus Torvalds
     
  • …git/tip/linux-2.6-tip

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (146 commits)
    tools, perf: Documentation for the power events API
    perf: Add calls to suspend trace point
    perf script: Make some lists static
    perf script: Use the default lost event handler
    perf session: Warn about errors when processing pipe events too
    perf tools: Fix perf_event.h header usage
    perf test: Clarify some error reports in the open syscall test
    x86, NMI: Add touch_nmi_watchdog to io_check_error delay
    x86: Avoid calling arch_trigger_all_cpu_backtrace() at the same time
    x86: Only call smp_processor_id in non-preempt cases
    perf timechart: Adjust perf timechart to the new power events
    perf: Clean up power events by introducing new, more generic ones
    perf: Do not export power_frequency, but power_start event
    perf test: Add test for counting open syscalls
    perf evsel: Auto allocate resources needed for some methods
    perf evsel: Use {cpu,thread}_map to shorten list of parameters
    perf tools: Refactor all_tids to hold nr and the map
    perf tools: Refactor cpumap to hold nr and the map
    perf evsel: Introduce per cpu and per thread open helpers
    perf evsel: Steal the counter reading routines from stat
    ...

    Linus Torvalds
     
  • * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    rcu: remove unused __list_for_each_rcu() macro
    rculist: fix borked __list_for_each_rcu() macro
    rcu: reduce __call_rcu()-induced contention on rcu_node structures
    rcu: limit rcu_node leaf-level fanout
    rcu: fine-tune grace-period begin/end checks
    rcu: Keep gpnum and completed fields synchronized
    rcu: Stop chasing QS if another CPU did it for us
    rcu: increase synchronize_sched_expedited() batching
    rcu: Make synchronize_srcu_expedited() fast if running readers
    rcu: fix race condition in synchronize_sched_expedited()
    rcu: update documentation/comments for Lai's adoption patch
    rcu,cleanup: simplify the code when cpu is dying
    rcu,cleanup: move synchronize_sched_expedited() out of sched.c
    rcu: get rid of obsolete "classic" names in TREE_RCU tracing
    rcu: Distinguish between boosting and boosted
    rcu: document TINY_RCU and TINY_PREEMPT_RCU tracing.
    rcu: add tracing for TINY_RCU and TINY_PREEMPT_RCU
    rcu: priority boosting for TINY_PREEMPT_RCU
    rcu: move TINY_RCU from softirq to kthread
    rcu: add priority-inversion testing to rcutorture

    Linus Torvalds
     

05 Jan, 2011

2 commits


04 Jan, 2011

1 commit


24 Dec, 2010

1 commit

  • The call to flush_scheduled_work() in do_initcalls() is there to make
    sure all works queued to system_wq by initcalls finish before the init
    sections are dropped.

    However, the call doesn't make much sense at this point - there
    already are multiple different workqueues and different subsystems are
    free to create and use their own. Ordering requirements are and
    should be expressed explicitly.

    Drop the call to prepare for the deprecation and removal of
    flush_scheduled_work().

    Andrew suggested adding sanity check where the workqueue code checks
    whether any pending or running work has the work function in the init
    text section. However, checking this for running works requires the
    worker to keep track of the current function being executed, and
    checking only the pending works will miss most cases. As a violation
    will almost always be caught by the usual page fault mechanism, I
    don't think it would be worthwhile to make the workqueue code track
    extra state just for this.

    Signed-off-by: Tejun Heo
    Cc: Andrew Morton

    Tejun Heo
     

23 Dec, 2010

2 commits