1. 19 Jan, 2004 40 commits
    • Andrew Morton's avatar
      [PATCH] O21 for interactivity 2.6.0 · 8c6f4906
      Andrew Morton authored
      From: Con Kolivas <kernel@kolivas.org>
      
      A non-critical corner case has come up for interactivity that I believe needs 
      to be addressed. It is only extensive testing and examination that revealed
      this, as this interactivity work is in maintenance mode.
      
      Description:
      
        It is possible for a highly interactive task (like X) to cause large
        latencies in tasks that are less 'niced' (eg negative nice number
        compared to X which should normally run at nice 0) if they are fully
        cpu bound.  This occurs due to expiration of the cpu bound tasks.
      
        This patch addresses this by not reinserting interactive tasks into
        the active array if there is a better static priority task running but
        has been placed on the expired array.  This causes a substantial
        reduction in the maximum scheduling latency a task with a less nice
        value can have. 
      
        This also has the positive side effect of maintaining better cpu%
        proportions for tasks of different nice levels.
      
      Testers will only be able to discern a difference with highly cpu bound tasks 
      of normal scheduling policy at different nice levels. Test cases are doing 
      something cpu intensive relatively -niced in the presence of an interactive
      load (eg capturing and encoding video at nice -10 while using X nice 0, or 
      something nice 0 vs nice +10) and so on. Because of the crossover of 10 
      'nice' levels of dynamic priorities between interactive and cpu bound tasks
      this patch will have a more noticable effect as the nice difference is
      greater, especially 11 or more.
      8c6f4906
    • Andrew Morton's avatar
      [PATCH] kill_fasync speedup · f6ef9d5b
      Andrew Morton authored
      From: Manfred Spraul <manfred@colorfullife.com>
      
      fasync_helper and kill_fasync are helpers for managing F_SETFL fcntl 
      calls that change FASYNC and sending the necessary signals. The locking 
      uses one global rwlock that's acquired for read in all kill_fasync
      calls, and that causes cache line trashing. This is not necessary: if
      the fasync list is empty, then there is no need to acquire the rwlock.
      Tests with reaim on a 4-way pIII on STP showed an 80% reduction of the
      time within kill_fasync.
      f6ef9d5b
    • Andrew Morton's avatar
      [PATCH] CONFIG_EPOLL=n space reduction · 96c4bc2e
      Andrew Morton authored
      From: Davide Libenzi <davidel@xmailserver.org>
      
      CONFIG_EPOLL=n space reduction in struct file.
      96c4bc2e
    • Andrew Morton's avatar
      [PATCH] fix for tridentfb.c usage on CRTs. · 162a61e8
      Andrew Morton authored
      From: Bram Stolk <bram@sara.nl>
      
      All modes that exceed the native resolution of a flatpanel are discarded.
      However, a CRT has native resolution set to 0, and therefore, tridentfb.c
      cannot be used with a CRT.
      162a61e8
    • Andrew Morton's avatar
      [PATCH] final CardServices() removal patches · 5efc426f
      Andrew Morton authored
      From: Andres Salomon <dilinger@voxel.net>
      
      Remove calls to CardServices(); final.
      
      This removes the CardServices() calls the rest of the tree, as well as
      CardServices itself from cs.c and cs.h.  My previous patches, along w/
      Arjan's patch for ide-cs.c and Russell's patch for serial_cs.c should
      remove all traces of it.  I've attached a gzipped tarball to hopefully
      make things easier.
      
      Files touched:
                                                                                 =
       201-cs_remove.patch:+++ mod/sound/pcmcia/vx/vx_entry.c
      202-cs_remove.patch:+++ mod/drivers/bluetooth/bluecard_cs.c
      202-cs_remove.patch:+++ mod/drivers/bluetooth/bt3c_cs.c
      202-cs_remove.patch:+++ mod/drivers/bluetooth/btuart_cs.c
      202-cs_remove.patch:+++ mod/drivers/bluetooth/dtl1_cs.c
      203-cs_remove.patch:+++ mod/drivers/isdn/hardware/avm/avm_cs.c
      203-cs_remove.patch:+++ mod/drivers/isdn/hisax/avma1_cs.c
      203-cs_remove.patch:+++ mod/drivers/isdn/hisax/elsa_cs.c
      203-cs_remove.patch:+++ mod/drivers/isdn/hisax/sedlbauer_cs.c
      204-cs_remove.patch:+++ mod/drivers/parport/parport_cs.c
      205-cs_remove.patch:+++ mod/drivers/telephony/ixj_pcmcia.c
      206-cs_remove.patch:+++ mod/drivers/mtd/maps/pcmciamtd.c
      207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/aha152x_stub.c
      207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/fdomain_stub.c
      207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/nsp_cs.c
      207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/nsp_cs.h
      207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/qlogic_stub.c
      208-cs_remove.patch:+++ mod/drivers/char/pcmcia/synclink_cs.c
      209-cs_remove.patch:+++ mod/drivers/pcmcia/cs.c
      209-cs_remove.patch:+++ mod/include/pcmcia/cs.h
      5efc426f
    • Andrew Morton's avatar
      [PATCH] remvoe CardServices from axnet_cs · 3782085d
      Andrew Morton authored
      From: Andres Salomon <dilinger@voxel.net>
      
      Anyways, this removes the last of the CS calls.
      3782085d
    • Andrew Morton's avatar
      [PATCH] serial_cs CardServices removal fix · 5cf80280
      Andrew Morton authored
      From: Russell King <rmk@arm.linux.org.uk>
      5cf80280
    • Andrew Morton's avatar
      [PATCH] Remvoe CardServices() from drivers/serial · 95410090
      Andrew Morton authored
      From: Russell King <rmk+lkml@arm.linux.org.uk>
      
      Ok, this is the last patch for removal of CardServices()
      95410090
    • Andrew Morton's avatar
      [PATCH] remove CardServices() from drivers/net/wireless · 477792e7
      Andrew Morton authored
      From: Andres Salomon <dilinger@voxel.net>
      
      This wraps up drivers/net/wireless.  Still remaining:
      
      - sound/pcmcia/vx
      - drivers/{bluetooth,isdn,parport,telephony}
      - drivers/mtd/maps
      - drivers/scsi/pcmcia
      - drivers/char/pcmcia/synclink_cs.c
      477792e7
    • Andrew Morton's avatar
      [PATCH] CardServices removal for ide-cs · fab88a83
      Andrew Morton authored
      From: Arjan van de Ven <arjanv@redhat.com>
      fab88a83
    • Andrew Morton's avatar
      [PATCH] CardServices() removal from pcmcia net drivers · fbb3bc6f
      Andrew Morton authored
      From: Andres Salomon <dilinger@voxel.net>
      
      Replace the various CardServices() calls w/ their pcmcia_* function.  The
      pcmcia functions fit better with kernel conventions, and don't have the
      nasty var args stuff.  These patches also fix a few places where the args
      supplied to CardServices were either not supplied, or dealt with in
      non-obvious ways.
      fbb3bc6f
    • Andrew Morton's avatar
      [PATCH] make try_to_free_pages walk zonelist · d5d4042d
      Andrew Morton authored
      From: Rik van Riel <riel@surriel.com>
      
      In 2.6.0 both __alloc_pages() and the corresponding wakeup_kswapd()s walk
      all zones in the zone list, possibly spanning multiple nodes in a low numa
      factor system like AMD64.
      
      Also, if lower_zone_protection is set in /proc, then it may be possible
      that kswapd never cleans out data in zones further down the zonelist and
      try_to_free_pages needs to do that.
      
      However, in 2.6.0 try_to_free_pages() only frees pages in the pgdat the
      first zone in the zonelist belongs to.
      
      This is probably the wrong behaviour, since both the page allocator and the
      kswapd wakeup free things from all zones on the zonelist.  The following
      patch makes try_to_free_pages() consistent with the allocator, by passing
      the zonelist as an argument and freeing pages from all zones in the list.
      
      I do not have any numa systems myself, so I have only tested it on my own
      little smp box.  Testing on NUMA systems may be useful, though the patch
      really only should have an impact in those rare cases where kswapd can't
      keep up with allocations...
      
      As a side effect, the patch shrinks the kernel by 2 lines and replaces some
      subtle magic by a simpler array walk.
      d5d4042d
    • Andrew Morton's avatar
      [PATCH] Make ppp_async callable from hard interrupt · 2996d8de
      Andrew Morton authored
      From: Paul Mackerras <paulus@samba.org>
      
      Since there are serial drivers (particularly the USB serial driver) that
      call the line discipline receive_buf and write_wakeup routines at hard
      interrupt level, I have changed the ppp_async code to cope with that.  It
      now uses a tasklet so that it calls the generic PPP code at soft interrupt
      level even if its receive_buf and write_wakeup entries are called at hard
      interrupt level.
      
      This patch has been lightly tested here with a keyspan USB serial adaptor
      and also with the built-in modem on my tibook, which uses the pmac_zilog
      driver (which hooks into the drivers/serial infrastructure).
      2996d8de
    • Andrew Morton's avatar
      [PATCH] ATAPI MO support update · 42c4d9c7
      Andrew Morton authored
      From: Jens Axboe <axboe@suse.de>
      
      Update the ATAPI MO support code to reflect the reorganisations and cleanups
      which the Mt Ranier support patch added.
      
      DESC
      cdrom_open fix
      EDESC
      From: Jens Axboe <axboe@suse.de>
      42c4d9c7
    • Andrew Morton's avatar
      [PATCH] mt rainier support · 62950936
      Andrew Morton authored
      From: Jens Axboe <axboe@suse.de>
      
      Following patch adds mt rainier support to the cdrom uniform layer (it
      works with atapi and scsi/usb).
      62950936
    • Andrew Morton's avatar
      [PATCH] ATAPI MO drive support · 9147d7be
      Andrew Morton authored
      From: Pascal Schmidt <der.eremit@email.de>
      
      The below patch is needed to support ATAPI MO drives in 2.6. ide-scsi
      doesn't work any more for this, so ide-cd has to take over the job of
      running the MO drive. Without this, there is no way to write to an
      ATAPI MO drive.
      
      This patch has been discussed with Linus and Jens already around test9
      time and it was agreed this is the right way to go about it. I have
      rediffed it against 2.6.0. Compiles, runs, works just fine for me.
      9147d7be
    • Andrew Morton's avatar
      [PATCH] Fix oops when modifying /sys/block/dm-0/queue/nr_requests · 7b2115c5
      Andrew Morton authored
      From: Mike Christie <michaelc@cs.wisc.edu>
      
      DM, MD, rd and loop use blk_alloc_queue and blk_queue_make_request to
      initialize their queue, because they only use the make_request_fn.  The
      attached patch prevents the queue from being registered if only
      blk_alloc_queue was called.
      7b2115c5
    • Andrew Morton's avatar
      [PATCH] fix gcc-3.4 warning in percpu code · 7ce3f0f7
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      It's complaining about:
      
      #define per_cpu(var, cpu)			((void)cpu, per_cpu__##var)
      
      There are several ways of fixing this, but the simplest is:
      
      #define per_cpu(var, cpu)			(*((void)cpu, &per_cpu__##var))
      7ce3f0f7
    • Andrew Morton's avatar
      [PATCH] PPC32: Minor cleanups to IBM4xx and MPC82xx headers. · 96aae355
      Andrew Morton authored
      From: Tom Rini <trini@kernel.crashing.org>
      
      PPC32: Minor cleanups to IBM4xx and MPC82xx headers.
      
      - Make sure that if <asm/ibm4xx.h> is included on !40x && !440, there is no real effect.
      - Delete arch/ppc/platforms/mpc82xx.h
      - Make sure that if CONFIG_8260 isn't set, there is no effect in <asm/mpc8260.h>.
      - Add a __ASSEMBLY__ test around the extern for __res in <asm/mpc8260.h>.
      96aae355
    • Andrew Morton's avatar
      [PATCH] PPC32: Select arch/ppc/kernel/head.S on CONFIG_PPC_STD_MMU. · f2b087ca
      Andrew Morton authored
      From: Tom Rini <trini@kernel.crashing.org>
      
      PPC32: Select arch/ppc/kernel/head.S on CONFIG_PPC_STD_MMU.
      
      - Don't pick a head*.S by default, instead select head.S on
        CONFIG_PPC_STD_MMU.  This is more consistent with how we
        case things in this file.
      f2b087ca
    • Andrew Morton's avatar
      [PATCH] PPC32: Change all EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL in ppc_ksyms.c · 7ed02f09
      Andrew Morton authored
      From: Tom Rini <trini@kernel.crashing.org>
      
      PPC32: Change all EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL in ppc_ksyms.c
      
      - Change all EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL in ppc_ksyms.c
      7ed02f09
    • Andrew Morton's avatar
      [PATCH] PPC32: Export consistent_sync_page. · 4862cdc7
      Andrew Morton authored
      From: Tom Rini <trini@kernel.crashing.org>
      
      We must export the consistent_sync_page symbol.  It is used by inline
      functions which implement the PCI DMA API.
      4862cdc7
    • Andrew Morton's avatar
      [PATCH] AS tuning · 2d935b4d
      Andrew Morton authored
      From: Nick Piggin <piggin@cyberone.com.au>
      
      The big regression from deadline is tiobench random reads with TCQ disks,
      however it is present in -linus as well, and would have been since day 1 of
      AS, but nobody has complained too loudly.
      
      http://developer.osdl.org/judith/tiobench/4CPU/rr.html
      
      This problem is probably a distilation of what causes lower database
      throughput, because I have only ever seen it with TCQ drives, and pgbench
      and OraSim are actually getting higher throughput here with a non TCQ
      drive.
      
      That is not to say that TCQ is useless, it obviously can provide a very
      real and significant boost.  What I might do in the (near) future is get AS
      to detect TCQ and turn itself off indefinitely unless/until the a sysfs
      flag is set, and default that flag to off.
      
      This patch changes the AS tunables a bit to be more on par with deadline.  It
      lowers the threshold for random reading processes to be considered unsuitable
      for anticipation, and it slightly rearranges and comments the "cooperative
      seek distance" logic.
      
      With this patch, AS is now very competitive with deadline on the single IDE
      and SCSI (non TCQ) disks here.  In fact, I don't have any regressions
      anywhere.  Even when TCQ is on, although throughput can be lower, AS still
      has benefits because of its much better read vs write latency and general
      tendancy to keep number of outstanding tags smaller.
      2d935b4d
    • Andrew Morton's avatar
      [PATCH] AS: thinktime improvement · 92327d28
      Andrew Morton authored
      From: Nick Piggin <piggin@cyberone.com.au>
      
      Sometimes a processes thinktime shouldn't be measured on how soon it
      submits its next request, but how soon any close request is submitted.
      
      Some processes, such as those in make -j, find | xargs blah, etc. Should be
      waited upon even if they never submit another request, because they work with
      cooperating or child processes. This helps to take that into account.
      92327d28
    • Andrew Morton's avatar
      [PATCH] AS: new process estimation · 7950701f
      Andrew Morton authored
      From: Nick Piggin <piggin@cyberone.com.au>
      
      This one gathers better statistics about the new process problem.  It
      improves estimation for initial process IO.  That is, better calculations
      for whether it will be worth waiting after a process submits its first
      read.
      
      This is done with a per queue average thinktime and seek time for a second
      read submitted from a process.
      
      When combined with 3/3, numbers are around the same as mm1 for most long
      lived tasks, but much better for things like the top 4 benchmarks.
      
      Probably wants rwhron and the OSDL database guys to give it some testing.
      
      test                                    2.6.0-test9-mm1  2.6.0-test9-mm1-np
      Cat kernel source during seq read       0:26.89          0:24.75
      Cat kernel source during seq write      9:17.80          0:23.48
      ls -lr kernel source during seq read    0:11.03          0:14.68
      ls -lr kernel source during seq write   0:49.95          0:08.06
      
      contest no_load                         143s 0 loads     144s 0 loads
      contest io_load                         193s 40.2 loads  193s 40.1 loads
      contest read_load                       186s 11.6 loads  190s 10.5 loads
      contest list_load                       201s 5.0 loads   200s 5.0 loads
      
      pgbench 1 client                        31.3TPS          31.5TPS
      pgbench 4 clients                       37.7TPS          37.5TPS
      pgbench 16 clients                      42.1TPS          48.1TPS
      7950701f
    • Andrew Morton's avatar
      [PATCH] AS fixes · 766b36ce
      Andrew Morton authored
      From: Nick Piggin <piggin@cyberone.com.au>
      
      This fixes all known bugs with as in mm2.  That constitutes small fixes for
      2 WARNs getting triggered.  It looks like Prakash's lost interrupt problem
      was due to as spewing bazillions of warnings, and he must have had his
      kernel.printk configured not to show them or something.  I have to just get
      final confirmation from him that this final cut of the patch fixes his
      problem too.
      766b36ce
    • Andrew Morton's avatar
      [PATCH] AS: request poisining fix · 96082c9b
      Andrew Morton authored
      From: Nick Piggin <piggin@cyberone.com.au>
      96082c9b
    • Andrew Morton's avatar
      [PATCH] AS: request poisoning · 9087295f
      Andrew Morton authored
      From: Nick Piggin <piggin@cyberone.com.au>
      
      I have tested this on my disks and cdroms, but they don't represent
      what all drivers might do. I have asked Jarkko Lehti with his dvd writing
      problem to try it...
      9087295f
    • Andrew Morton's avatar
      [PATCH] Fix IO scheduler regression · 4f292a21
      Andrew Morton authored
      From: Nick Piggin <piggin@cyberone.com.au>
      
      Randy has just reported that this fixes up his regression. Its now as good
      as test5 in his tests with this patch. He is also seeing quite large
      increases (above test5) when IO scheduler barriers are disabled (this patch
      doesn't do that). Perhaps something is using them too liberally.
      
      Anyway, this reverts AS back to defaulting to not anticipate IO for a
      program that submits its first request (this really hurts find | xargs grep
      sort of things).  I am working on something to fix this up properly.  That
      can go in after 2.6.0 anyway.
      4f292a21
    • Andrew Morton's avatar
      [PATCH] jffs: use daemonize() · 91d61a0f
      Andrew Morton authored
      Use daemonize() rather than open-coding half of it.
      
      (I don't know if this has been tested - it has been in -mm for three months).
      91d61a0f
    • Andrew Morton's avatar
      [PATCH] ppc64: vio fixup · e8be17fa
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      vi fixup
      e8be17fa
    • Andrew Morton's avatar
      [PATCH] ppc64: early BSS clear, from Ben Herrenschmidt · b3646f19
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      Gone are the days of initialising stuff we touch in prom_init just
      to keep it out of the BSS. There are a few things the hypervisor
      writes to in the iseries case, hard code them into the data segment
      and add a comment.
      
      Remove the -fno-zero-initialized-in-bss hack, it was required when
      gcc got smart and put zero initialised stuff into the BSS
      b3646f19
    • Andrew Morton's avatar
      [PATCH] ppc64: Fixed rtas_extended_busy_delay_time() to calculate correct value, from John Rose · 153aff0e
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      Fixed rtas_extended_busy_delay_time() to calculate correct value, from John
      Rose
      153aff0e
    • Andrew Morton's avatar
      [PATCH] ppc64: xmon breakpoint and single step on LPAR fixes from John Rose · da985ddd
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      Xmon changes to make breakpoints and single-stepping work on pSeries LPARs.
      Also changed help text to reflect obsolete cmds.
      da985ddd
    • Andrew Morton's avatar
      [PATCH] ppc64: cp_compat_stat should copy nanosecond fields · eb55c013
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      Looks like glibc is using stat in some places, so we should modify
      it to copy the nanosecond fields. Also speed up stat by only checking
      the region once instead of each put_user call.
      eb55c013
    • Andrew Morton's avatar
      [PATCH] ppc64: correct epoll syscall names · e341f63d
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      correct epoll syscall names
      e341f63d
    • Andrew Morton's avatar
      [PATCH] ppc64: setup_cpu must be called on boot cpu · e3ffaf40
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      setup_cpu was being called for the boot cpu after all other cpus had been
      spun up.  The init thread can sleep during secondary cpu spinup (eg migration
      thread init) and sometimes the init thread would switch to another cpu at
      this time.  The end result was setup_cpu was called twice on one cpu and
      never on the boot cpu.
      
      The original fix called setup_cpu on the boot cpu before all others but that
      wont work for G5, so we now use cpu affinity calls to enforce it.
      e3ffaf40
    • Andrew Morton's avatar
      [PATCH] ppc64: vmlinux.lds fixes, from Alan Modra · 18161326
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      - Remove a bunch of unnecessary sections
      - Always declare section labels inside the section (bug found on ppc32)
      - Rearrange sections to waste less space
      18161326
    • Andrew Morton's avatar
      [PATCH] ppc64: Makefile fixes · a4d30bb4
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
       - remove old checks target, no longer used
       - add -mtraceback=none, we dont use traceback tables any more
       - add check for -mcpu=power4, older toolchains dont support this option
      a4d30bb4
    • Andrew Morton's avatar
      [PATCH] ppc64: Use an atomic_t instead of a volatile unsigned long, from Stephen Rothwell · e80008c5
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      Use an atomic_t instead of a volatile unsigned long, from Stephen Rothwell
      e80008c5