An error occurred fetching the project authors.
  1. 25 Feb, 2003 1 commit
  2. 10 Sep, 2002 1 commit
    • Andrew Morton's avatar
      [PATCH] resurrect CONFIG_HIGHPTE · 81e0a1a6
      Andrew Morton authored
      Bill Irwin's patch to fix up pte's in highmem.
      
      With CONFIG_HIGHPTE, the direct pte pointer in struct page becomes the
      64-bit physical address of the single pte which is mapping this page.
      
      If the page is not PageDirect then page->pte.chain points at a list of
      pte_chains, which each now contain an array of 64-bit physical
      addresses of the pte's which are mapping the page.
      
      The functions rmap_ptep_map() and rmap_ptep_unmap() are used for
      mapping and unmapping the page which backs the target pte.
      
      The patch touches all architectures (adding do-nothing compatibility
      macros and inlines).  It generally mangles lots of header files and may
      break non-ia32 compiles.  I've had it in testing since 2.5.31.
      81e0a1a6
  3. 02 Jun, 2002 2 commits
    • Andrew Morton's avatar
      [PATCH] fix swapcache packing in the radix tree · 02eaba7f
      Andrew Morton authored
      First some terminology: this patch introduces a kernel-wide `pgoff_t'
      type.  It is the index of a page into the pagecache.  The thing at
      page->index.  For most mappings it is also the offset of the page into
      that mapping.  This type has a very distinct function in the kernel and
      it needs a name.  I don't have any particular plans to go and migrate
      everything so we can support 64-bit pagecache indices on x86, but this
      would be the way to do it.
      
      This patch improves the packing density of swapcache pages in the radix
      tree.
      
      A swapcache page is identified by the `swap type' (indexes the swap
      device) and the `offset' (into that swap device).  These two numbers
      are encoded into a `swp_entry_t' machine word in arch-specific code
      because the resulting number is placed into pagetables in a form which
      will generate a fault.
      
      The kernel also need to generate a pgoff_t for that page to index it
      into the swapper_space radix tree.  That pgoff_t is usually
      bitwise-identical to the swp_entry_t.  That worked OK when the
      pagecache was using a hash.  But with a radix tree, it produces
      catastrophically bad results.
      
      x86 (and many other architectures) place the `type' field into the
      low-order bits of the swp_entry_t.  So *all* swapcache pages are
      basically identical in the eight low-order bits.  This produces a very
      sparse radix tree for swapcache.  I'm observing packing densities of 1%
      to 2%: so the typical 128-slot radix tree node has only one or two
      pages in it.
      
      The end result is that the kernel needs to allocate approximately one
      new radix-tree node for each page which is added to the swapcache.  So
      no wonder we're having radix-tree node exhaustion during swapout!
      (It's actually quite encouraging that the kernel works as well as it
      does).
      
      The patch changes the encoding of the swp_entry_t so that its
      most-significant bits contain the `type' field and the
      least-significant bits contain the `offset' field, right-aligned.
      
      That is: the encoding in swp_entry_t is now arch-independent.  The new
      file <linux/swapops.h> has conversion functions which convert the
      swp_entry_t to and from its machine pte representation.
      
      Packing density in the swapper_space mapping goes up to around 90%
      (observed) and the kernel is tons happier under swap load.
      
      
      An alternative approach would be to create new conversion functions
      which convert an arch-specific swp_entry_t to and from a pgoff_t.  I
      tried that.  It worked, but I liked it less.
      02eaba7f
    • Andrew Morton's avatar
      [PATCH] remove PageSkip() macros · 0f2b38d5
      Andrew Morton authored
      Remove some unused PageSkip() macros.  Presumably leftovers from
      PG_skip which isn't there any more.
      0f2b38d5
  4. 19 Feb, 2002 1 commit
    • Rik van Riel's avatar
      [PATCH] new struct page shrinkage · e5191c50
      Rik van Riel authored
      The patch has been changed like you wanted, with page->zone
      shoved into page->flags. I've also pulled the thing up to
      your latest changes from linux.bkbits.net so you should be
      able to just pull it into your tree from:
      
      Rik
      e5191c50
  5. 13 Feb, 2002 1 commit
    • Paul Mackerras's avatar
      [PATCH] flush_icache_user_range (v2.5.4) · e97fde15
      Paul Mackerras authored
      The patch below changes access_process_vm to use a new architecture
      hook, flush_icache_user_range, instead of flush_icache_page, and adds
      a definition of flush_icache_user_range which does the same thing as
      flush_icache_page for all architectures except PPC.  (The PPC update
      that is in Linus' BK tree already includes a suitable definition of
      flush_icache_user_range.)
      
      The reason for doing this is that when flush_icache_page is called
      from do_no_page or do_swap_page, I want to be able to do the flush
      conditionally, based on the state of the page.  In contrast,
      access_process_vm needs to do the flush unconditionally since it has
      just modified the page.  In the access_process_vm case it is useful to
      have the information about the user address and length that have been
      modified since then we can just flush the affected cache lines rather
      than the whole page.
      
      This patch should make it easy to improve performance on alpha, since
      there (as I understand it) the icache flush is not needed at all in
      do_no_page or do_swap_page, but is needed in access_process_vm.  All
      that is needed is to make flush_icache_page a noop on alpha.  The
      patch below doesn't do this, I'll let the alpha maintainers push that
      change if they want.
      e97fde15
  6. 05 Feb, 2002 4 commits
    • Linus Torvalds's avatar
      v2.5.2 -> v2.5.2.1 · d694597e
      Linus Torvalds authored
      - Al Viro: fix up silly problem in swapfile filp cleanups in 2.5.2
      - Tachino Nobuhiro: fix another error return for swapfile filp code
      - Robert Love: merge some of Ingo's scheduler fixes
      - David Miller: networking, sparc and some scsi driver fixes
      - Tim Waugh: parport update
      - OGAWA Hirofumi: fatfs cleanups and bugfixes
      - Roland Dreier: fix vsscanf buglets.
      - Ben LaHaise: include file cleanup
      - Andre Hedrick: IDE taskfile update
      d694597e
    • Linus Torvalds's avatar
      v2.4.9.6 -> v2.4.9.7 · 7df13152
      Linus Torvalds authored
        - Alan Cox: big driver/mips sync
        - Andries Brouwer, Christoph Hellwig: more gendisk fixups
        - Tobias Ringstrom: tulip driver workaround for DC21143 erratum
      7df13152
    • Linus Torvalds's avatar
      v2.4.5.8 -> v2.4.5.9 · 2d80cb2a
      Linus Torvalds authored
        - make sure "sync()" doesn't effectively lock up the machine by
        overloading all the IO resources
        - fix up some network memory allocations that don't wan tto wait on IO.
        - merge with Alan (including MIPS update)
        - Jeff Garzik: network driver updates.
        - Al Viro: System V FS update (write capability, page cache, mondo cleanups)
        - Kai Germaschewski: ISDN cleanups, TURBOPAM driver by Stelian Pop
        - Ben Fennema: UDF update (time handling, i_blocks fix)
        - Neil Brown: md error handling improvements, knfsd file handle compatibility
        - Paul Mackerras: PPC update
        - Jakub Jelinek: fix up kernel linker scripts to accept .rodata better
        - Patrick Mochel: fix PME handling in pci_enable_wake()
        - Chris Mason: reiserfs PF_MEMALLOC handling
      2d80cb2a
    • Linus Torvalds's avatar
      Import changeset · 7a2deb32
      Linus Torvalds authored
      7a2deb32