1. 23 6月, 2005 1 次提交
  2. 22 6月, 2005 4 次提交
    • R
    • R
    • R
    • W
      [PATCH] Avoiding mmap fragmentation · 1363c3cd
      Wolfgang Wander 提交于
      Ingo recently introduced a great speedup for allocating new mmaps using the
      free_area_cache pointer which boosts the specweb SSL benchmark by 4-5% and
      causes huge performance increases in thread creation.
      
      The downside of this patch is that it does lead to fragmentation in the
      mmap-ed areas (visible via /proc/self/maps), such that some applications
      that work fine under 2.4 kernels quickly run out of memory on any 2.6
      kernel.
      
      The problem is twofold:
      
        1) the free_area_cache is used to continue a search for memory where
           the last search ended.  Before the change new areas were always
           searched from the base address on.
      
           So now new small areas are cluttering holes of all sizes
           throughout the whole mmap-able region whereas before small holes
           tended to close holes near the base leaving holes far from the base
           large and available for larger requests.
      
        2) the free_area_cache also is set to the location of the last
           munmap-ed area so in scenarios where we allocate e.g.  five regions of
           1K each, then free regions 4 2 3 in this order the next request for 1K
           will be placed in the position of the old region 3, whereas before we
           appended it to the still active region 1, placing it at the location
           of the old region 2.  Before we had 1 free region of 2K, now we only
           get two free regions of 1K -> fragmentation.
      
      The patch addresses thes issues by introducing yet another cache descriptor
      cached_hole_size that contains the largest known hole size below the
      current free_area_cache.  If a new request comes in the size is compared
      against the cached_hole_size and if the request can be filled with a hole
      below free_area_cache the search is started from the base instead.
      
      The results look promising: Whereas 2.6.12-rc4 fragments quickly and my
      (earlier posted) leakme.c test program terminates after 50000+ iterations
      with 96 distinct and fragmented maps in /proc/self/maps it performs nicely
      (as expected) with thread creation, Ingo's test_str02 with 20000 threads
      requires 0.7s system time.
      
      Taking out Ingo's patch (un-patch available per request) by basically
      deleting all mentions of free_area_cache from the kernel and starting the
      search for new memory always at the respective bases we observe: leakme
      terminates successfully with 11 distinctive hardly fragmented areas in
      /proc/self/maps but thread creating is gringdingly slow: 30+s(!) system
      time for Ingo's test_str02 with 20000 threads.
      
      Now - drumroll ;-) the appended patch works fine with leakme: it ends with
      only 7 distinct areas in /proc/self/maps and also thread creation seems
      sufficiently fast with 0.71s for 20000 threads.
      Signed-off-by: NWolfgang Wander <wwc@rentec.com>
      Credit-to: "Richard Purdie" <rpurdie@rpsys.net>
      Signed-off-by: NKen Chen <kenneth.w.chen@intel.com>
      Acked-by: Ingo Molnar <mingo@elte.hu> (partly)
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1363c3cd
  3. 21 6月, 2005 7 次提交
  4. 20 6月, 2005 10 次提交
  5. 19 6月, 2005 1 次提交
  6. 18 6月, 2005 2 次提交
  7. 17 6月, 2005 3 次提交
  8. 14 6月, 2005 1 次提交
  9. 13 6月, 2005 1 次提交
    • D
      [PATCH] ARM: 2709/1: Systems with PCMCIA should also see IDE options (for CompactFlash memories) · bb011b8e
      David Brownell 提交于
      Patch from David Brownell
      
      The ARM generic Kconfig filters out IDE options ... except for
      an error prone ARMload of special cases.
      This adds one general case to the systems that will offer IDE options:
      kernels with PCMCIA support, which probably want to use IDE to access
      CompactFlash cards.  This might allow many (most?) of the other cases
      to disappear, for systems that only see IDE hardware through CF cards.
      Right now this one patch is used to gate access to CF cards, including
      MicroDrives, for both omap_cf and at91_cf drivers.
      
      Signed-off-by: David Brownell
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      bb011b8e
  10. 10 6月, 2005 3 次提交
  11. 09 6月, 2005 3 次提交
  12. 08 6月, 2005 1 次提交
  13. 04 6月, 2005 3 次提交
    • D
      · 17d82fcc
      Deepak Saxena 提交于
      [PATCH] ARM: 2700/1: Disable IXP2000 IRQs at bootup
      
      Patch from Deepak Saxena
      
      The IXDP2800 bootloader does not disable IRQs before jumping into
      the kernel and this is causing the Grand Unified KGDB to crash
      the system when we do an early call to trap_init() and irq handlers
      have not yet been registered. This patch disables IRQs before we
      jump into the kernel.
      
      Signed-off-by: Deepak Saxena
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      17d82fcc
    • T
      [PATCH] ARM: 2691/1: PXA27x sleep fixes take 2 · 8775420d
      Todd Poynor 提交于
      Patch from Todd Poynor
      
      PXA27x sleep fixes:
      * set additional sleep/wakeup registers for Mainstone boards.
      * move CKEN=0 to pxa25x-specific code; that value is harmful on pxa27x.
      * save/restore additional registers, including some found necessary for
      C5 processors and/or newer blob versions.
      * enable future support of additional sleep modes for PXA27x (eg,
      standby, deep sleep).
      * split off cpu-specific sleep processing between pxa27x and pxa25x into
      separate files (partly in preparation for additional sleep modes).
      Includes fixes from David Burrage.
      
      Signed-off-by: Todd Poynor
      Signed-off-by: Nicolas Pitre
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      8775420d
    • A
      [PATCH] ARM: 2694/1: [s3c2410/dma] release irq properly to fix kernel oops · 105bb269
      Albrecht Dreß 提交于
      Patch from Albrecht Dre
      
      Problem:
      When a module requests a DMA channel via the function s3c2410_dma_request(), this function requests the appropriate irq under the name of the client module. When the client module is unloaded, it calls s3c2410_dma_free() which does not free the irq. Consequently, when e.g. running "cat /proc/interrupts", the irq owner points to freed memory, leading to a kernel oops.
      File:
      linux/arch/arm/mach-s3c2410/dma.c
      Fix:
      trivial, below
      
      Signed-off-by: Albrecht Dre
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      105bb269