1. 28 6月, 2005 1 次提交
    • J
      [PATCH] Update cfq io scheduler to time sliced design · 22e2c507
      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: NJens Axboe <axboe@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      22e2c507
  2. 26 6月, 2005 5 次提交
  3. 24 6月, 2005 16 次提交
  4. 22 6月, 2005 12 次提交
    • B
      [PATCH] ioc4: CONFIG split · e5d310b3
      Brent Casavant 提交于
      The SGI IOC4 I/O controller chip drivers are currently all configured by
      CONFIG_BLK_DEV_SGIIOC4.  This is undesirable as not all IOC4 hardware features
      are needed by all systems.
      
      This patch adds two configuration variables, CONFIG_SGI_IOC4 for core IOC4
      driver support (see patch 1/3 in this series for further explanation) and
      CONFIG_SERIAL_SGI_IOC4 to independently enable serial port support.
      Signed-off-by: NBrent Casavant <bcasavan@sgi.com>
      Acked-by: NPat Gefre <pfg@sgi.com>
      Acked-by: NJeremy Higdon <jeremy@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e5d310b3
    • J
      [PATCH] SN2 XPC build patches · 65ed0b33
      Jes Sorensen 提交于
      This patch contains the bits to make the XPC code use the uncached
      allocator rather than calling into the mspec driver.  It also includes the
      mspec.h header which is required to build the XPC modules.
      Signed-off-by: NJes Sorensen <jes@wildopensource.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      65ed0b33
    • J
      [PATCH] ia64 uncached alloc · f14f75b8
      Jes Sorensen 提交于
      This patch contains the ia64 uncached page allocator and the generic
      allocator (genalloc).  The uncached allocator was formerly part of the SN2
      mspec driver but there are several other users of it so it has been split
      off from the driver.
      
      The generic allocator can be used by device driver to manage special memory
      etc.  The generic allocator is based on the allocator from the sym53c8xx_2
      driver.
      
      Various users on ia64 needs uncached memory.  The SGI SN architecture requires
      it for inter-partition communication between partitions within a large NUMA
      cluster.  The specific user for this is the XPC code.  Another application is
      large MPI style applications which use it for synchronization, on SN this can
      be done using special 'fetchop' operations but it also benefits non SN
      hardware which may use regular uncached memory for this purpose.  Performance
      of doing this through uncached vs cached memory is pretty substantial.  This
      is handled by the mspec driver which I will push out in a seperate patch.
      
      Rather than creating a specific allocator for just uncached memory I came up
      with genalloc which is a generic purpose allocator that can be used by device
      drivers and other subsystems as they please.  For instance to handle onboard
      device memory.  It was derived from the sym53c7xx_2 driver's allocator which
      is also an example of a potential user (I am refraining from modifying sym2
      right now as it seems to have been under fairly heavy development recently).
      
      On ia64 memory has various properties within a granule, ie.  it isn't safe to
      access memory as uncached within the same granule as currently has memory
      accessed in cached mode.  The regular system therefore doesn't utilize memory
      in the lower granules which is mixed in with device PAL code etc.  The
      uncached driver walks the EFI memmap and pulls out the spill uncached pages
      and sticks them into the uncached pool.  Only after these chunks have been
      utilized, will it start converting regular cached memory into uncached memory.
      Hence the reason for the EFI related code additions.
      Signed-off-by: NJes Sorensen <jes@wildopensource.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f14f75b8
    • D
      [PATCH] Hugepage consolidation · 63551ae0
      David Gibson 提交于
      A lot of the code in arch/*/mm/hugetlbpage.c is quite similar.  This patch
      attempts to consolidate a lot of the code across the arch's, putting the
      combined version in mm/hugetlb.c.  There are a couple of uglyish hacks in
      order to covert all the hugepage archs, but the result is a very large
      reduction in the total amount of code.  It also means things like hugepage
      lazy allocation could be implemented in one place, instead of six.
      
      Tested, at least a little, on ppc64, i386 and x86_64.
      
      Notes:
      	- this patch changes the meaning of set_huge_pte() to be more
      	  analagous to set_pte()
      	- does SH4 need s special huge_ptep_get_and_clear()??
      Acked-by: NWilliam Lee Irwin <wli@holomorphy.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      63551ae0
    • M
      [PATCH] VM: early zone reclaim · 753ee728
      Martin Hicks 提交于
      This is the core of the (much simplified) early reclaim.  The goal of this
      patch is to reclaim some easily-freed pages from a zone before falling back
      onto another zone.
      
      One of the major uses of this is NUMA machines.  With the default allocator
      behavior the allocator would look for memory in another zone, which might be
      off-node, before trying to reclaim from the current zone.
      
      This adds a zone tuneable to enable early zone reclaim.  It is selected on a
      per-zone basis and is turned on/off via syscall.
      
      Adding some extra throttling on the reclaim was also required (patch
      4/4).  Without the machine would grind to a crawl when doing a "make -j"
      kernel build.  Even with this patch the System Time is higher on
      average, but it seems tolerable.  Here are some numbers for kernbench
      runs on a 2-node, 4cpu, 8Gig RAM Altix in the "make -j" run:
      
      			wall  user   sys   %cpu  ctx sw.  sleeps
      			----  ----   ---   ----   ------  ------
      No patch		1009  1384   847   258   298170   504402
      w/patch, no reclaim     880   1376   667   288   254064   396745
      w/patch & reclaim       1079  1385   926   252   291625   548873
      
      These numbers are the average of 2 runs of 3 "make -j" runs done right
      after system boot.  Run-to-run variability for "make -j" is huge, so
      these numbers aren't terribly useful except to seee that with reclaim
      the benchmark still finishes in a reasonable amount of time.
      
      I also looked at the NUMA hit/miss stats for the "make -j" runs and the
      reclaim doesn't make any difference when the machine is thrashing away.
      
      Doing a "make -j8" on a single node that is filled with page cache pages
      takes 700 seconds with reclaim turned on and 735 seconds without reclaim
      (due to remote memory accesses).
      
      The simple zone_reclaim syscall program is at
      http://www.bork.org/~mort/sgi/zone_reclaim.cSigned-off-by: NMartin Hicks <mort@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      753ee728
    • M
      [IA64] ptrace and restore_sigcontext() allow ar.rsc.pl==0 · 4ea78729
      Matthew Chapman 提交于
      This patch fixes handling of accesses to ar.rsc via ptrace & restore_sigcontext
      [With Thanks to Chris Wright for noticing the restore_sigcontext path]
      Signed-off-by: NMatthew Chapman <matthewc@hp.com>
      Acked-by: NDavid Mosberger <davidm@hpl.hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      4ea78729
    • B
      [IA64] remove "pci=routeirq" option · 7b404b34
      Bjorn Helgaas 提交于
      Remove "pci=routeirq" option for ia64.  This was a workaround
      after ACPI IRQ routing was changed from "all at boot for everything
      in _PRT" to "do it when the device is enabled" in case there were
      drivers that didn't use pci_enable_device().
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      7b404b34
    • K
      [IA64] fix nested_dtlb_miss handler for hugetlb address · 0393eed5
      Ken Chen 提交于
      The nested_dtlb_miss handler currently does not handle fault from
      hugetlb address correctly.  It walks the page table assuming PAGE_SIZE.
      Thus when taking a fault triggered from hugetlb address, it would not
      calculate the pgd/pmd/pte address correctly and thus result an incorrect
      invocation of ia64_do_page_fault().  In there, kernel will signal SIGBUS
      and application dies (The faulting address is perfectly legal and we
      have a valid pte for the corresponding user hugetlb address as well).
      This patch fix the described kernel bug.  Since nested_dtlb_miss is a
      rare event and a slow path anyway, I'm making the change without #ifdef
      CONFIG_HUGETLB_PAGE for code readability.  Tony, please apply.
      Signed-off-by: NKen Chen <kenneth.w.chen@intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      0393eed5
    • C
      [IA64] printk needs KERN_INFO arch/ia64/kernel/smp.c · 52a0de2c
      Christophe Lucas 提交于
      printk() calls should include appropriate KERN_* constant.
      Signed-off-by: NChristophe Lucas <clucas@rotomalug.org>
      Signed-off-by: NDomen Puncer <domen@coderock.org>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      52a0de2c
    • G
      [IA64] enable SGI simulator for generic kernels · a35f1e03
      Greg Edwards 提交于
      Allow the SGI simulator (medusa) to work on generic kernels.  There is
      no inherent dependency on an sn2-specific kernel.
      
      Boot tested on Altix, medusa and HP rx2600.
      Signed-off-by: NGreg Edwards <edwardsg@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      a35f1e03
    • T
      [IA64] Refresh tiger_defconfig · bd91c4bb
      Tony Luck 提交于
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      bd91c4bb
    • G
      [IA64] refresh arch/ia64/defconfig · 95dccdfe
      Greg Edwards 提交于
      Refresh arch/ia64/defconfig, as it was getting a bit stale.  The only
      manual changes I made were:
      
      CONFIG_SCSI_SATA=y		needed for some Altix base I/O cards
      CONFIG_SCSI_SATA_VITESSE=y
      
      CONFIG_DM_MULTIPATH=m		the rest are already modules
      
      CONFIG_FUSION_SPI=y		new driver breakout
      CONFIG_FUSION_FC=m
      
      CONFIG_SGI_TIOCX=y		enable some other SGI drivers
      CONFIG_SGI_MBCS=m
      CONFIG_AGP_SGI_TIOCA=m
      
      Boot tested on Altix, HP rx2600 and Intel Tiger
      Signed-off-by: NGreg Edwards <edwardsg@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      95dccdfe
  5. 21 6月, 2005 3 次提交
  6. 10 6月, 2005 1 次提交
    • C
      [IA64] Fix race condition in the rt_sigprocmask fastcall · a2a64769
      Christoph Lameter 提交于
      current->blocked will be set to the value of current->thread_info->flags if the
      cmpxchg to update thread_info->flags fails. For performance reasons the store into
      current->blocked was placed in the cmpxchg loop. However, the cmpxchg overwrites the
      register holding the value to be stored. In the rare case of a retry the value of
      thread_info->flags will be written into current->blocked.
      
      The fix is to use another register so that the register containing the current->blocked
      value is not overwritten.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      a2a64769
  7. 09 6月, 2005 2 次提交
    • P
      [PATCH] ia64: fix floating-point preemption problem · 05062d96
      Peter Chubb 提交于
      There've been reports of problems with CONFIG_PREEMPT=y and the high
      floating point partition.  This is caused by the possibility of preemption
      and rescheduling on a different processor while saving or restioirng the
      high partition.
      
      The only places where the FPU state is touched are in ptrace, in
      switch_to(), and where handling a floating-point exception.  In switch_to()
      preemption is off.  So it's only in trap.c and ptrace.c that we need to
      prevent preemption.
      
      Here is a patch that adds commentary to make the conditions clear, and adds
      appropriate preempt_{en,dis}able() calls to make it so.  In trap.c I use
      preempt_enable_no_resched(), as we're about to return to user space where
      the preemption flag will be checked anyway.
      Signed-off-by: NPeter Chubb <peterc@gelato.unsw.edu.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      05062d96
    • K
      [IA64] Extract correct break number for break.b · 70aa488c
      Keith Owens 提交于
      break.b does not store the break number in cr.iim, instead it stores 0,
      which makes all break.b instructions look like BUG().  Extract the
      break number from the instruction itself.
      Signed-off-by: NKeith Owens <kaos@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      70aa488c