08 Dec, 2006

1 commit


26 Jun, 2006

1 commit

  • pdflush is carefully designed to ensure that all wakeups have some
    corresponding work to do - if a woken-up pdflush thread discovers that it
    hasn't been given any work to do then this is considered an error.

    That all broke when swsusp came along - because a timer-delivered wakeup to a
    frozen pdflush thread will just get lost. This causes the pdflush thread to
    get lost as well: the writeback timer is supposed to be re-armed by pdflush in
    process context, but pdflush doesn't execute the callout which does this.

    Fix that up by ignoring the return value from try_to_freeze(): jsut proceed,
    see if we have any work pending and only go back to sleep if that is not the
    case.

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

    Andrew Morton
     

23 Jun, 2006

1 commit


09 Jan, 2006

1 commit


31 Oct, 2005

1 commit

  • This patch keeps pdflush daemons on the same cpuset as their parent, the
    kthread daemon.

    Some large NUMA configurations put as much as they can of kernel threads
    and other classic Unix load in what's called a bootcpuset, keeping the rest
    of the system free for dedicated jobs.

    This effort is thwarted by pdflush, which dynamically destroys and
    recreates pdflush daemons depending on load.

    It's easy enough to force the originally created pdflush deamons into the
    bootcpuset, at system boottime. But the pdflush threads created later were
    allowed to run freely across the system, due to the necessary line in their
    startup kthread():

    set_cpus_allowed(current, CPU_MASK_ALL);

    By simply coding pdflush to start its threads with the cpus_allowed
    restrictions of its cpuset (inherited from kthread, its parent) we can
    ensure that dynamically created pdflush threads are also kept in the
    bootcpuset.

    On systems w/o cpusets, or w/o a bootcpuset implementation, the following
    will have no affect, leaving pdflush to run on any CPU, as before.

    Signed-off-by: Paul Jackson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Jackson
     

26 Jun, 2005

1 commit

  • 1. Establish a simple API for process freezing defined in linux/include/sched.h:

    frozen(process) Check for frozen process
    freezing(process) Check if a process is being frozen
    freeze(process) Tell a process to freeze (go to refrigerator)
    thaw_process(process) Restart process
    frozen_process(process) Process is frozen now

    2. Remove all references to PF_FREEZE and PF_FROZEN from all
    kernel sources except sched.h

    3. Fix numerous locations where try_to_freeze is manually done by a driver

    4. Remove the argument that is no longer necessary from two function calls.

    5. Some whitespace cleanup

    6. Clear potential race in refrigerator (provides an open window of PF_FREEZE
    cleared before setting PF_FROZEN, recalc_sigpending does not check
    PF_FROZEN).

    This patch does not address the problem of freeze_processes() violating the rule
    that a task may only modify its own flags by setting PF_FREEZE. This is not clean
    in an SMP environment. freeze(process) is therefore not SMP safe!

    Signed-off-by: Christoph Lameter
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds