28 Jun, 2005

20 commits

  • This patch removes CONFIG_PMAC_PBOOK (PowerBook support). This is now
    split into CONFIG_PMAC_MEDIABAY for the actual hotswap bay that some
    powerbooks have, CONFIG_PM for power management related code, and just left
    out of any CONFIG_* option for some generally useful stuff that can be used
    on non-laptops as well.

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

    Benjamin Herrenschmidt
     
  • The macserial driver has been obsoleted by the new pmac_zilog driver for a
    while now and probably doesn't even work anymore on recent kernels. This
    patch removes it.

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

    Benjamin Herrenschmidt
     
  • The Power Management Unit on PowerMacs is very sensitive to timeouts during
    async message exchanges. It uses rather crude protocol based on a shift
    register with an interrupt and is almost continuously exchanging messages with
    the host CPU on laptops.

    This patch adds a routine to the open_pic driver to be able to select a PMU
    driver so that it bumps it's interrupt priority to above the normal level.

    This will allow PMU interrupts to occur while another interrupt is pending,
    and thus reduce the risk of machine beeing abruptly shutdown by the PMU due to
    a timeout in PMU communication caused by excessive interrupt latency. The
    problem is very rare, and usually just doesn't happen, but it is still useful
    to make things even more robust.

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

    Benjamin Herrenschmidt
     
  • The proposed _tlbie call at update_mmu_cache() is safe because:

    Addresses for which update_mmu_cache() gets invocated are never inside the
    static kernel virtual mapping, meaning that there is no risk for the
    _tlbie() here to be thrashing the pinned entry, as Dan suspected.

    The intermediate TLB state in which this bug can be triggered is not
    visible by userspace or any other contexts, except the page fault handling
    path. So there is no need to worry about userspace dcbxxx users.

    The other solution to this is to avoid dcbst misbehaviour in the first
    place, which involves changing in-kernel "dcbst" callers to use 8xx
    specific SPR's.

    Summary:

    On 8xx, cache control instructions (particularly "dcbst" from
    flush_dcache_icache) fault as write operation if there is an unpopulated
    TLB entry for the address in question. To workaround that, we invalidate
    the TLB here, thus avoiding dcbst misbehaviour.

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

    Marcelo Tosatti
     
  • arch/mips/kernel/signal.c: In function 'do_signal':
    arch/mips/kernel/signal.c:460: error: too many arguments to function 'try_to_freeze'

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

    Yoichi Yuasa
     
  • I spotted this issue while in memmap_init last week. I can't say the
    change has any test coverage by me. start_pfn was formerly used in main
    "for" loop. The fix is replace start_pfn with pfn.

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

    Bob Picco
     
  • Lost a curly brace in translation. Everything is better now.

    Signed-off-by: Matt McClintock
    Signed-off-by: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kumar Gala
     
  • Linus Torvalds
     
  • Linus Torvalds
     
  • Linus Torvalds
     
  • Linus Torvalds
     
  • Linus Torvalds
     
  • Some manual fixups required due to clashes with the PF_FREEZE cleanups.

    Linus Torvalds
     
  • CONFIG_CONFIG_TUNER_MULTI_I2C probably isn't what the
    author meant to create.

    Signed-off-by: Dave Jones
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • If cfq is managing a queue and a new scheduler is later selected, it is
    possible for the cfqd unplug_work work to be queued after the kblockd
    work struct has been flushed. The problem is the ordering of
    cfq_shutdown_timer_wq() and blk_put_queue() in cfq_put_cfqd(). The
    latter may rearm the work, leaving cfq_kick_queue() with dead data.

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • Add ioprio documentation

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • - Adjust slice values

    - Instead of one async queue, one is defined per priority level. This
    prevents kernel threads (such as reiserfs/x and others) that run at
    higher io priority from conflicting with others. Previously, it was a
    coin toss what io prio the async queue got, it was defined by who
    first set up the queue.

    - Let a time slice only begin, when the previous slice is completely
    done. Previously we could be somewhat unfair to a new sync slice, if
    the previous slice was async and had several ios queued. This might
    need a little tweaking if throughput suffers a little due to this,
    allowing perhaps an overlap of a single request or so.

    - Optimize the calling of kblockd_schedule_work() by doing it only when
    it is strictly necessary (no requests in driver and work left to do).

    - Correct sync vs async logic. A 'normal' process can be purely async as
    well, and a flusher can be purely sync as well. Sync or async is now a
    property of the class defined and requests pending. Previously writers
    could be considered sync, when they were really async.

    - Get rid of the bit fields in cfqq and crq, use flags instead.

    - Various other cleanups and fixes

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • In cfq_find_next_crq(), cfq tries to find the next request by choosing
    one of two requests before and after the current one. Currently, when
    choosing the next request, if there's no next request, the next
    candidate is NULL, resulting in selection of the previous request. This
    results in weird scheduling. Once we reach the end, we always seek
    backward.

    The correct behavior is using the first request as the next candidate.
    cfq_choose_req() already has logics for handling wrapped requests.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • This updates the CFQ io scheduler to the new time sliced design (cfq
    v3). It provides full process fairness, while giving excellent
    aggregate system throughput even for many competing processes. It
    supports io priorities, either inherited from the cpu nice value or set
    directly with the ioprio_get/set syscalls. The latter closely mimic
    set/getpriority.

    This import is based on my latest from -mm.

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • Patch from Deepak Saxena

    Accidently swapped the order of movne and orrne. Bad.

    Signed-off-by: Deepak Saxena
    Signed-off-by: Russell King

    Deepak Saxena
     

27 Jun, 2005

20 commits