1. 10 Apr, 2002 18 commits
    • Linus Torvalds's avatar
      Merge bk://linuxusb.bkbits.net/pci_hp-2.5 · a315c77f
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      a315c77f
    • Alexander Viro's avatar
      [PATCH] more blkdev_size_in_bytes() removals · 314e5f17
      Alexander Viro authored
      More places where we want the size of block device and have relevant
      struct block_device * available,
      314e5f17
    • Alexander Viro's avatar
      [PATCH] jffs2_get_sb() fixes · 13c9d416
      Alexander Viro authored
      Fixes races in jffs2_get_sb() - current code has a window when two
      mounts of the same mtd device can miss each other, resulting in two
      active instances of jffs2 fighting over the same device.
      13c9d416
    • Alexander Viro's avatar
      [PATCH] mtdblock fixes · c03285bf
      Alexander Viro authored
      Assorted compile fixes in mtdblock.c
      c03285bf
    • Alexander Viro's avatar
      [PATCH] cramfs cleanup · 9cdf73b0
      Alexander Viro authored
      All places where we do blkdev_size_in_bytes(sb->s_dev) are bogus - we
      can get the same information from ->s_bdev without messing with kdev_t,
      major/minor, etc.
      
      There will be more patches of that kind - in the long run I'd expect
      only one caller of blkdev_size_in_bytes() to survive.  One if
      fs/block_dev.c, that is - called when we open device.
      9cdf73b0
    • Andrew Morton's avatar
      [PATCH] replace kupdate and bdflush with pdflush · 9d78e51b
      Andrew Morton authored
      Pretty simple.
      
      - use a timer to kick off a pdflush thread every five seconds
        to run the kupdate code.
      
      - wakeup_bdflush() kicks off a pdflush thread to run the current
        bdflush function.
      
      There's some loss of functionality here - the ability to tune
      the writeback periods.  The numbers are hardwired at present.
      But the intent is that buffer-based writeback disappears
      altogether.  New mechanisms for tuning the writeback will
      need to be introduced.
      9d78e51b
    • Andrew Morton's avatar
      [PATCH] use pdflush for unused inode writeback · efa1c8b5
      Andrew Morton authored
      This is pdflush's first application!  The writeback of
      the unused inodes list by keventd is removed, and a
      pdflush thread is dispatched instead.
      
      There is a need for exclusion - to prevent all the
      pdflush threads from working against the same request
      queue.  This is implemented locally.  And this is a
      problem, because other pdflush threads can be dispatched
      to writeback other filesystem objects, and they don't
      know that there's already a pdflush thread working that
      request queue.
      
      So moving the exclusion into the request queue itself
      is on my things-to-do-list.  But the code as-is works
      OK - under a `dbench 100' load the number of pdflush
      instances can grow as high as four or five.  Some fine
      tuning is needed...
      efa1c8b5
    • Andrew Morton's avatar
      [PATCH] writeback daemons · 1ed704e9
      Andrew Morton authored
      This patch implements a gang-of-threads which are designed to
      be used for dirty data writeback. "pdflush" -> dirty page
      flush, or something.
      
      The number of threads is dynamically managed by a simple
      demand-driven algorithm.
      
      "Oh no, more kernel threads".  Don't worry, kupdate and
      bdflush disappear later.
      
      The intent is that no two pdflush threads are ever performing
      writeback against the same request queue at the same time.
      It would be wasteful to do that.  My current patches don't
      quite achieve this; I need to move the state into the request
      queue itself...
      
      The driver for implementing the thread pool was to avoid the
      possibility where bdflush gets stuck on one device's get_request_wait()
      queue while lots of other disks sit idle.  Also generality,
      abstraction, and the need to have something in place to perform
      the address_space-based writeback when the buffer_head-based
      writeback disappears.
      
      There is no provision inside the pdflush code itself to prevent
      many threads from working against the same device.  That's
      the responsibility of the caller.
      
      The main API function, `pdflush_operation()' attempts to find
      a thread to do some work for you.  It is not reliable - it may
      return -1 and say "sorry, I didn't do that".  This happens if
      all threads are busy.
      
      One _could_ extend pdflush_operation() to queue the work so that
      it is guaranteed to happen.  If there's a need, that additional
      minor complexity can be added.
      1ed704e9
    • 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
    • Greg Kroah-Hartman's avatar
      export the IO_APIC_get_PCI_irq_vector function, as the IBM PCI Hotplug · 3909a6f1
      Greg Kroah-Hartman authored
      driver needs this.  This is already done in 2.4.x
      3909a6f1
    • Greg Kroah-Hartman's avatar
      IBM PCI Hotplug driver · d8149f5a
      Greg Kroah-Hartman authored
      fixed linker bug when driver is compiled into the kernel.
      d8149f5a
    • Greg Kroah-Hartman's avatar
      PCI Hotplug Makefile cleanup · d630d54d
      Greg Kroah-Hartman authored
      removed the list-multi targets, as they aren't needed anymore.
      d630d54d
    • Greg Kroah-Hartman's avatar
      IBM PCI Hotplug driver · 6b7c9da0
      Greg Kroah-Hartman authored
      Only build the IBM PCI hotplug driver if CONFIG_X86_IO_APIC is selected
      6b7c9da0
  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 11 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