1. 10 Apr, 2002 6 commits
    • Andrew Morton's avatar
      [PATCH] page->buffers abstraction · 9855b4a1
      Andrew Morton authored
      page->buffers is a bit of a layering violation.  Not all address_spaces
      have pages which are backed by buffers.
      
      The exclusive use of page->buffers for buffers means that a piece of
      prime real estate in struct page is unavailable to other forms of
      address_space.
      
      This patch turns page->buffers into `unsigned long page->private' and
      sets in place all the infrastructure which is needed to allow other
      address_spaces to use this storage.
      
      This change alows the multipage-bio-writeout patches to use
      page->private to cache the results of an earlier get_block(), so
      repeated calls into the filesystem are not needed in the case of file
      overwriting.
      
      Devlopers should think carefully before calling try_to_free_buffers()
      or block_flushpage() or writeout_one_page() or waitfor_one_page()
      against a page.  It's only legal to do this if you *know* that the page
      is buffer-backed.  And only the address_space knows that.
      Arguably, we need new a_ops for writeout_one_page() and
      waitfor_one_page().  But I have more patches on the boil which
      obsolete these functions in favour of ->writepage() and wait_on_page().
      
      The new PG_private page bit is used to indicate that there
      is something at page->private.  The core kernel does not
      know what that object actually is, just that it's there.
      The kernel must call a_ops->releasepage() to try to make
      page->private go away.  And a_ops->flushpage() at truncate
      time.
      9855b4a1
    • Andrew Morton's avatar
      [PATCH] readahead · 8fa49846
      Andrew Morton authored
      I'd like to be able to claim amazing speedups, but
      the best benchmark I could find was diffing two
      256 megabyte files, which is about 10% quicker.  And
      that is probably due to the window size being effectively
      50% larger.
      
      Fact is, any disk worth owning nowadays has a segmented
      2-megabyte cache, and OS-level readahead mainly seems
      to save on CPU cycles rather than overall throughput.
      Once you start reading more streams than there are segments
      in the disk cache we start to win.
      
      Still.  The main motivation for this work is to
      clean the code up, and to create a central point at
      which many pages are marshalled together so that
      they can all be encapsulated into the smallest possible
      number of BIOs, and injected into the request layer.
      
      A number of filesystems were poking around inside the
      readahead state variables.  I'm not really sure what they
      were up to, but I took all that out.  The readahead
      code manages its own state autonomously and should not
      need any hints.
      
      - Unifies the current three readahead functions (mmap reads, read(2)
        and sys_readhead) into a single implementation.
      
      - More aggressive in building up the readahead windows.
      
      - More conservative in tearing them down.
      
      - Special start-of-file heuristics.
      
      - Preallocates the readahead pages, to avoid the (never demonstrated,
        but potentially catastrophic) scenario where allocation of readahead
        pages causes the allocator to perform VM writeout.
      
      - Gets all the readahead pages gathered together in
        one spot, so they can be marshalled into big BIOs.
      
      - reinstates the readahead ioctls, so hdparm(8) and blockdev(8)
        are working again.  The readahead settings are now per-request-queue,
        and the drivers never have to know about it.  I use blockdev(8).
        It works in units of 512 bytes.
      
      - Identifies readahead thrashing.
      
        Also attempts to handle it.  Certainly the changes here
        delay the onset of catastrophic readahead thrashing by
        quite a lot, and decrease it seriousness as we get more
        deeply into it, but it's still pretty bad.
      8fa49846
    • Andrew Morton's avatar
      [PATCH] Velikov/Hellwig radix-tree pagecache · 3d30a6cc
      Andrew Morton authored
      Before the mempool was added, the VM was getting many, many
      0-order allocation failures due to the atomic ratnode
      allocations inside swap_out.  That monster mempool is
      doing its job - drove a 256meg machine a gigabyte into
      swap with no ratnode allocation failures at all.
      
      So we do need to trim that pool a bit, and also handle
      the case where swap_out fails, and not just keep
      pointlessly calling it.
      3d30a6cc
    • Rusty Russell's avatar
      [PATCH] 2.5.8-pre3 set_bit cleanup IV · 81882d97
      Rusty Russell authored
      This changes everything arch specific PPC and i386 which should have
      been unsigned long (it doesn't *matter*, but bad habits get copied to
      where it does matter).
      
      No object code changes
      81882d97
    • Rusty Russell's avatar
      [PATCH] 2.5.8-pre3 set_bit cleanup III · be54478d
      Rusty Russell authored
      This removes gratuitous & operators in front of tty->process_char_map
      and tty->read_flags.
      
      No object code changes
      be54478d
    • Rusty Russell's avatar
      [PATCH] 2.5.8-pre3 set_bit cleanup II · de331827
      Rusty Russell authored
      This changes over some bogus casts, and converts the ext2, hfs and
      minix set-bit macros.  Also changes pte and open_fds to hand the
      actual bitfield rather than whole structure.
      
      No object code changes
      de331827
  2. 09 Apr, 2002 7 commits
    • Robert Love's avatar
      [PATCH] cpu affinity syscalls · 22e962f9
      Robert Love authored
      This patch implements the following calls to set and retrieve a task's
      CPU affinity:
      
          int sched_setaffinity(pid_t pid, unsigned int len,
          				      unsigned long *new_mask_ptr)
          int ched_getaffinity(pid_t pid, unsigned int len,
          				      unsigned long *user_mask_ptr)
      22e962f9
    • Linus Torvalds's avatar
      Update kernel version · b96ad24a
      Linus Torvalds authored
      b96ad24a
    • Alexander Viro's avatar
      [PATCH] open_namei cleanup, nfsctl permission check fix · 46a2da0c
      Alexander Viro authored
      	a) part of open_namei() done after we'd found vfsmount/dentry of
      the object we want to open had been split into a helper - may_open().
      
      	b) do_open() in fs/nfsctl.c didn't do any permission checks on
      the nfsd file it was opening - sudden idiocy attack on my part (I missed
      the fact that dentry_open() doesn't do permission checks - open_namei()
      does).  Fixed by adding obvious may_open() calls.
      46a2da0c
    • Rusty Russell's avatar
      [PATCH] per-cpu cleanup · 4f9af681
      Rusty Russell authored
      As per David Mosberger's request, splits into per-arch files (solves the
      #include mess), and fixes my "was not an lvalue" bug.
      4f9af681
    • Linus Torvalds's avatar
      [PATCH] set-bit cleanup I: x86_capability. · 6b5dd06d
      Linus Torvalds authored
      Cosmetic change: x86_capability.  Makes it an unsigned long, and
      removes the gratuitous & operators (it is already an array).  These
      produce warnings when set_bit() etc. takes an unsigned long * instead
      of a void *.
      
      Originally from Rusty Russell
      6b5dd06d
    • Linus Torvalds's avatar
      update x86 defconfig for USB changes · 18f3e443
      Linus Torvalds authored
      18f3e443
    • Linus Torvalds's avatar
      Automerge · 7fffa426
      Linus Torvalds authored
      7fffa426
  3. 10 Apr, 2002 1 commit
  4. 09 Apr, 2002 3 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.8-pre2 IDE 29b · 88da4c77
      Martin Dalecki authored
      - Eliminate the mate member of the ata_channel structure. The information
         provided by it is already present. This patch may have undesirable
         effects on the ns87415.c and trm290.c host chip drivers, but it's worth
         for structural reasons to have it.
      
      - Kill unused code, which was "fixing" interrupt routing from ide-pci.c Don't
         pass any "mate" between the functions there.
      
      - Don't define SUPPORT_VLB_SYNC unconditionally in ide-taskfile.c
      
      - Apply Vojtech Pavliks fix for piix host-chip driver crashes.
      
      - Add linux/types.h to ide-pnp.c.
      
      - Apply latest sis5513 host chip driver patch from by Lionel Bouton by hand.
      
      - Apply patch by Paul Macerras for power-mac.
      
      - Try to make the ns87415 driver a bit more reentrant.
      88da4c77
    • Linus Torvalds's avatar
      Merge home:v2.5/linux · 6e16d892
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      6e16d892
    • Linus Torvalds's avatar
      Merge bk://linuxusb.bkbits.net/linus-2.5 · 0083ab86
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      0083ab86
  5. 08 Apr, 2002 14 commits
    • Greg Kroah-Hartman's avatar
      USB · ca433637
      Greg Kroah-Hartman authored
      cleaned up the comments to put them in proper docbook format.
      ca433637
    • David Brownell's avatar
      This patch is a more complete fix for the device refcount · 99e471c7
      David Brownell authored
      sanity checking and cleanup on device disconnect.
        
          - Splits apart usb_dec_dev_use(), for driver use, and
            usb_free_dev(), for hub/hcd use.  Both now have
            kerneldoc, and will BUG() if the refcount and the
            device tree get out of sync.  (Except for cleanup of
            root hub init errors, refcount must go to zero only
            at the instant disconnect processing completes.)
        
          - More usbcore-internal function declarations are
            now moved out of <linux/usb.h> into hcd.h
        
          - Driver-accessible refcounting is now inlined; minor
            code shrinkage, it's using atomic inc/dec instructions
            not function calls.
      
      <note from greg k-h, there is still some work to be done with USB device
       reference counting, but this patch is a step in the right direction.>
      99e471c7
    • David Brownell's avatar
      USB kerneldoc fixes · 3066fa91
      David Brownell authored
      This fixes some kerneldoc bugs for USB.  It catches up with
      the recent rename, and includes a couple minor tweaks/fixes
      I happened to notice.
      3066fa91
    • Richard Gooch's avatar
      [PATCH] devfs patch for 2.5.8-pre2 · 4d40f872
      Richard Gooch authored
      - Documentation updates
      - BKL removal (devfs doesn't need the BKL)
      - Changed <devfs_rmdir> to allow later additions if not yet empty
      - Added calls to <devfs_register_partitions> in drivers/block/blkpc.c
        <add_partition> and <del_partition>
      - Bug fixes in unique number and devnum allocators.
      4d40f872
    • Brian Gerst's avatar
      [PATCH] Clean up x86 interrupt entry code · d720d94f
      Brian Gerst authored
      This patch moves the generation of the asm interrupt entry stubs from
      i8259.c to entry.S.  This allows it to be done with less code and
      without needing duplicate definitions of SAVE_ALL, GET_CURRENT, etc.
      d720d94f
    • Andries E. Brouwer's avatar
      [PATCH] size_in_bytes · 91fff028
      Andries E. Brouwer authored
      It is a step on the road to removal of the arrays.
      It also solves other things, like the fact that Linux
      is unable to read the last sector of a disk or partition
      with an odd number of sectors.
      91fff028
    • Anton Blanchard's avatar
      [PATCH] increase dynamic proc entries for ppc64 · 3bdd85a2
      Anton Blanchard authored
      Unfortunately the proc filesystem has a limit on the number of dynamic
      proc entries it can create. On large systems we can exhaust the default
      (4096) very quickly. The following patch increases the default to
      something more reasonable.
      3bdd85a2
    • Anton Blanchard's avatar
      [PATCH] missing include in fs/nfsd/nfsctl.c · 596d0b15
      Anton Blanchard authored
      We forgot to include linux/init.h in fs/nfsd/nfsctl.c.
      596d0b15
    • Anton Blanchard's avatar
      [PATCH] fix busy loop in migration thread init · a34eae3b
      Anton Blanchard authored
      Since we do not set the task state to TASK_INTERRUPTIBLE, we busy loop.
      
      On larger SMP this can actually result in a lockup due to the way
      migration thread initalisation is done (nr_cpus threads are created
      and they all busy loop until the scheduler evenly distributes them,
      one on each cpu. With this rogue thread busy looping things can become
      unbalanced and the migration threads never distribute themselves onto
      all cpus).
      a34eae3b
    • Anton Blanchard's avatar
      [PATCH] missing includes in seq_file.h · 9523cdad
      Anton Blanchard authored
      include/linux/seq_file.h uses memcpy and struct semaphore and so should
      include the relevant files.
      9523cdad
    • Greg Kroah-Hartman's avatar
      USB bluetooth tty driver · f74682cf
      Greg Kroah-Hartman authored
      renamed the bluetooth.c file to bluettty.c to help prevent user confusion
      between this driver and the bluez bluetooth stack in the kernel.
      f74682cf
    • Dan Streetman's avatar
      [PATCH] usbfs disconnect · b46bff09
      Dan Streetman authored
      This was originally created by David many months ago and posted to the
      list, but not put into the kernel.
      
      I modified the original patch to:
      -patch against the 2.5.7 kernel
      -use the 'real' interface number, not position (to do this I added 2
       methods in usb.c)
      b46bff09
    • Chris Hanson's avatar
      [PATCH] page limit on bulk transfers in usbfs? · a64c6e4b
      Chris Hanson authored
      Here is an updated patch using kmalloc that removes the page limit
      on bulk transfers in usbfs.  I've tested it and it seems to work OK.
      a64c6e4b
    • Linus Torvalds's avatar
      Automerge · 43350172
      Linus Torvalds authored
      43350172
  6. 09 Apr, 2002 1 commit
  7. 08 Apr, 2002 1 commit
  8. 09 Apr, 2002 7 commits