An error occurred fetching the project authors.
  1. 21 Jul, 2002 1 commit
    • Ingo Molnar's avatar
      [PATCH] "big IRQ lock" removal, IRQ cleanups · ae86a80a
      Ingo Molnar authored
      This is a massive cleanup of the IRQ subsystem.  It's losely based on
      Linus' original idea and DaveM's original implementation, to fold our
      various irq, softirq and bh counters into the preemption counter.
      
      with this approach it was possible:
      
       - to remove the 'big IRQ lock' on SMP - on which sti() and cli() relied.
      
       - to streamline/simplify arch/i386/kernel/irq.c significantly.
      
       - to simplify the softirq code.
      
       - to remove the preemption count increase/decrease code from the lowlevel
         IRQ assembly code.
      
       - to speed up schedule() a bit.
      
      Global sti() and cli() is gone forever on SMP, there is no more globally
      synchronizing irq-disabling capability.  All code that relied on sti()
      and cli() and restore_flags() must use other locking mechanisms from now
      on (spinlocks and __cli()/__sti()).
      
      obviously this patch breaks massive amounts of code, so only limited
      .configs are working at the moment (UP is expected to be unaffected, but
      SMP will require various driver updates).
      
      The patch was developed and tested on SMP systems, and while the code is
      still a bit rough in places, the base IRQ code appears to be pretty
      robust and clean.
      
      while it boots already so the worst is over, there is lots of work left:
      eg. to fix the serial layer to not use cli()/sti() and bhs ...
      ae86a80a
  2. 19 Jul, 2002 2 commits
    • Greg Kroah-Hartman's avatar
    • Andrew Morton's avatar
      [PATCH] VM instrumentation · e177ea28
      Andrew Morton authored
      A patch from Rik which adds some operational statitics to the VM.
      
      In /proc/meminfo:
      
      PageTables:	Amount of memory used for process pagetables
      PteChainTot:	Amount of memory allocated for pte_chain objects
      PteChainUsed:	Amount of memory currently in use for pte chains.
      
      In /proc/stat:
      
      pageallocs:	Number of pages allocated in the page allocator
      pagefrees:	Number of pages returned to the page allocator
      
      		(These can be used to measure the allocation rate)
      
      pageactiv:	Number of pages activated (moved to the active list)
      pagedeact:	Number of pages deactivated (moved to the inactive list)
      pagefault:	Total pagefaults
      majorfault:	Major pagefaults
      pagescan:	Number of pages which shrink_cache looked at
      pagesteal:	Number of pages which shrink_cache freed
      pageoutrun:	Number of calls to try_to_free_pages()
      allocstall:	Number of calls to balance_classzone()
      
      
      Rik will be writing a userspace app which interprets these things.
      
      The /proc/meminfo stats are efficient, but the /proc/stat accumulators
      will cause undesirable cacheline bouncing.  We need to break the disk
      statistics out of struct kernel_stat and make everything else in there
      per-cpu.  If that doesn't happen in time for 2.6 then we disable
      KERNEL_STAT_INC().
      e177ea28
  3. 18 Jun, 2002 1 commit
    • Martin Schwidefsky's avatar
      [PATCH] 2.5.22: common code changes for s/390. · dcfdb40c
      Martin Schwidefsky authored
      1) Add __s390__ to the list of architectures that use unsigned int as
         type for rautofs_wqt_t. __s390__ is defined for both 31-bit and 64-bit
         linux for s/390. Both architectures are fine with unsigned int since
         sizeof(unsigned int) == sizeof(unsigned long) for 31 bit s/390.
      2) Remove early initialization call ccwcache_init(). It doesn't exists
         anymore.
      3) Remove special case for irq_stat. We moved the irq_stat structure out
         of the lowcore.
      4) Replace acquire_console_sem with down_trylock & return to avoid an
         endless trap loop if console_unblank is called from interrupt context
         and the console semaphore is taken.
      dcfdb40c
  4. 05 Jun, 2002 1 commit
  5. 31 May, 2002 1 commit
    • Dave Jones's avatar
      [PATCH] egcs no longer supported. · 479c0422
      Dave Jones authored
      Andrew Morton found that egcs was miscompiling the per-cpu area code
      on x86. This patch updates the check, and documentation accordingly.
      479c0422
  6. 23 May, 2002 1 commit
  7. 30 Apr, 2002 2 commits
    • Andrew Morton's avatar
      [PATCH] remove buffer unused_list · 4beda7c1
      Andrew Morton authored
      Removes the buffer_head unused list.  Use a mempool instead.
      
      The reduced lock contention provided about a 10% boost on ANton's
      12-way.
      4beda7c1
    • Andrew Morton's avatar
      [PATCH] writeback from address spaces · 090da372
      Andrew Morton authored
      [ I reversed the order in which writeback walks the superblock's
        dirty inodes.  It sped up dbench's unlink phase greatly.  I'm
        such a sleaze ]
      
      The core writeback patch.  Switches file writeback from the dirty
      buffer LRU over to address_space.dirty_pages.
      
      - The buffer LRU is removed
      
      - The buffer hash is removed (uses blockdev pagecache lookups)
      
      - The bdflush and kupdate functions are implemented against
        address_spaces, via pdflush.
      
      - The relationship between pages and buffers is changed.
      
        - If a page has dirty buffers, it is marked dirty
        - If a page is marked dirty, it *may* have dirty buffers.
        - A dirty page may be "partially dirty".  block_write_full_page
          discovers this.
      
      - A bunch of consistency checks of the form
      
      	if (!something_which_should_be_true())
      		buffer_error();
      
        have been introduced.  These fog the code up but are important for
        ensuring that the new buffer/page code is working correctly.
      
      - New locking (inode.i_bufferlist_lock) is introduced for exclusion
        from try_to_free_buffers().  This is needed because set_page_dirty
        is called under spinlock, so it cannot lock the page.  But it
        needs access to page->buffers to set them all dirty.
      
        i_bufferlist_lock is also used to protect inode.i_dirty_buffers.
      
      - fs/inode.c has been split: all the code related to file data writeback
        has been moved into fs/fs-writeback.c
      
      - Code related to file data writeback at the address_space level is in
        the new mm/page-writeback.c
      
      - try_to_free_buffers() is now non-blocking
      
      - Switches vmscan.c over to understand that all pages with dirty data
        are now marked dirty.
      
      - Introduces a new a_op for VM writeback:
      
      	->vm_writeback(struct page *page, int *nr_to_write)
      
        this is a bit half-baked at present.  The intent is that the address_space
        is given the opportunity to perform clustered writeback.  To allow it to
        opportunistically write out disk-contiguous dirty data which may be in other zones.
        To allow delayed-allocate filesystems to get good disk layout.
      
      - Added address_space.io_pages.  Pages which are being prepared for
        writeback.  This is here for two reasons:
      
        1: It will be needed later, when BIOs are assembled direct
           against pagecache, bypassing the buffer layer.  It avoids a
           deadlock which would occur if someone moved the page back onto the
           dirty_pages list after it was added to the BIO, but before it was
           submitted.  (hmm.  This may not be a problem with PG_writeback logic).
      
        2: Avoids a livelock which would occur if some other thread is continually
           redirtying pages.
      
      - There are two known performance problems in this code:
      
        1: Pages which are locked for writeback cause undesirable
           blocking when they are being overwritten.  A patch which leaves
           pages unlocked during writeback comes later in the series.
      
        2: While inodes are under writeback, they are locked.  This
           causes namespace lookups against the file to get unnecessarily
           blocked in wait_on_inode().  This is a fairly minor problem.
      
           I don't have a fix for this at present - I'll fix this when I
           attach dirty address_spaces direct to super_blocks.
      
      - The patch vastly increases the amount of dirty data which the
        kernel permits highmem machines to maintain.  This is because the
        balancing decisions are made against the amount of memory in the
        machine, not against the amount of buffercache-allocatable memory.
      
        This may be very wrong, although it works fine for me (2.5 gigs).
      
        We can trivially go back to the old-style throttling with
        s/nr_free_pagecache_pages/nr_free_buffer_pages/ in
        balance_dirty_pages().  But better would be to allow blockdev
        mappings to use highmem (I'm thinking about this one, slowly).  And
        to move writer-throttling and writeback decisions into the VM (modulo
        the file-overwriting problem).
      
      - Drops 24 bytes from struct buffer_head.  More to come.
      
      - There's some gunk like super_block.flags:MS_FLUSHING which needs to
        be killed.  Need a better way of providing collision avoidance
        between pdflush threads, to prevent more than one pdflush thread
        working a disk at the same time.
      
        The correct way to do that is to put a flag in the request queue to
        say "there's a pdlfush thread working this disk".  This is easy to
        do: just generalise the "ra_pages" pointer to point at a struct which
        includes ra_pages and the new collision-avoidance flag.
      090da372
  8. 22 Apr, 2002 2 commits
  9. 14 Apr, 2002 1 commit
    • Kai Germaschewski's avatar
      Fix setup_per_pcu_areas() for UP compile · b5a2d13f
      Kai Germaschewski authored
      For !CONFIG_SMP we want the empty inline setup_per_cpu_areas().
      If CONFIG_SMP is set, we never want the empty inline. If we use the
      generic implementation, we have it here, if not the arch has it somwhere
      else (hopefully).
      b5a2d13f
  10. 10 Apr, 2002 1 commit
    • 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
  11. 09 Apr, 2002 1 commit
    • 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
  12. 06 Mar, 2002 2 commits
  13. 05 Mar, 2002 2 commits
  14. 28 Feb, 2002 1 commit
  15. 21 Feb, 2002 1 commit
  16. 05 Feb, 2002 20 commits
    • Patrick Mochel's avatar
      [PATCH] driver model updates (1/5) · e03a933d
      Patrick Mochel authored
      Patch 1: Make device_driver_init() an initcall.
      It declares it as subsys_initcall and removes the explicit call from
      init/main.c::do_basic_setup().
      e03a933d
    • Linus Torvalds's avatar
      v2.5.2.5 -> v2.5.2.6 · 2f886464
      Linus Torvalds authored
      - Asit Mallick: mtrr update
      - Patrick Mochel: split up kernel/device.c into drivers/base
      - Mikael Pettersson/Al Viro: fix missing in-core inode initialization
      in ext2 introduced by Al's inode trimming
      - David Miller: sparc and network updates
      - Frank Davis: firewire video mmap page remapping fix
      - me: fix configure help scripts to fix breakage noticed by Dave Jones
      - Greg KH: USB updates
      - Kai Germaschewski: ISDN fixes, Config.help entries
      - Douglas Gilbert: SCSI doc update
      - Ingo Molnar: x86 taskswitch optimizations, scheduler updates
      - Mikael Pettersson: make APIC work on old external setups
      - Al Viro: more inode trimming
      2f886464
    • Linus Torvalds's avatar
      v2.5.2.3 -> v2.5.2.4 · 9d6ba121
      Linus Torvalds authored
      - Patrick Mochel: initcall levels
      - Patrick Mochel: devicefs updates, add PCI devices into the hierarchy
      - Denis Oliver Kropp: neomagic fb driver
      - David Miller: sparc64 and network updates
      - Kai Mäkisara: scsi tape update
      - Al Viro: more inode trimming, VFS cleanup
      - Greg KH: USB update - proper urb allocations
      - Eric Raymond: kdev_t updates for fb devices
      9d6ba121
    • Linus Torvalds's avatar
      v2.5.2.2 -> v2.5.2.3 · 463727d1
      Linus Torvalds authored
      - Al Viro: VFS inode allocation moved down to filesystem, trim inodes
      - Greg KH: USB update, hotplug documentation
      - Kai Germaschewski: ISDN update
      - Ingo Molnar: scheduler tweaking ("J2")
      - Arnaldo: emu10k kdev_t updates
      - Ben Collins: firewire updates
      - Björn Wesen: cris arch update
      - Hal Duston: ps2esdi driver bio/kdev_t fixes
      - Jean Tourrilhes: move wireless drivers into drivers/net/wireless,
      update wireless API #1
      - Richard Gooch: devfs race fix
      - OGAWA Hirofumi: FATFS update
      463727d1
    • Linus Torvalds's avatar
      v2.5.2.1.1 -> v2.5.2.2 · 0713f029
      Linus Torvalds authored
      - Al Viro: fix new_inode() allocation
      - undo initcall update
      - cciss driver update
      0713f029
    • Linus Torvalds's avatar
      v2.5.2.1 -> v2.5.2.1.1 · 468e6d17
      Linus Torvalds authored
      - David Howells: abtract out "current->need_resched" as "need_resched()"
      - Frank Davis: ide-tape update for bio
      - various: header file fixups
      - Jens Axboe: fix up bio/ide/highmem issues
      - Kai Germaschewski: ISDN update
      - Tim Waugh: parport update
      - Patrik Mochel: initcall update
      - Greg KH: USB and Compaq PCI hotplug updates
      468e6d17
    • Linus Torvalds's avatar
      v2.5.1.10 -> v2.5.1.11 · 18a93310
      Linus Torvalds authored
      - Davide Libenzi, Ingo Molnar: scheduler updates
      - Greg KH: USB update
      - Jean Tourrilhes: IrDA and wireless updates
      - Jens Axboe: bio/block updates
      18a93310
    • Linus Torvalds's avatar
      v2.5.1.9 -> v2.5.1.10 · 908920b1
      Linus Torvalds authored
      - Kai Germaschewski: ISDN updates
      - Al Viro: start moving buffer cache indexing to "struct block_device *"
      - Greg KH: USB update
      - Russell King: fix up some ARM merge issues
      - Ingo Molnar: scalable scheduler
      908920b1
    • Linus Torvalds's avatar
      v2.5.0.6 -> v2.5.0.7 · b54cee93
      Linus Torvalds authored
      - Jens Axboe: more bio fixes/cleanups/breakage ;)
      - Al Viro: superblock cleanups, boot/root mounting.
      b54cee93
    • Linus Torvalds's avatar
      v2.5.0.4 -> v2.5.0.5 · cc5979c3
      Linus Torvalds authored
      - Patrick Mochel: driver model infrastructure, part 1
      - Jens Axboe: more bio fixes, cleanups
      - Andrew Morton: release locking fixes
      - Al Viro: superblock/mount handling
      - Kai Germaschewski: AVM Fritz!Card ISDN driver
      - Christoph Hellwig: make cramfs SMP-safe.
      cc5979c3
    • Linus Torvalds's avatar
      v2.5.0.2 -> v2.5.0.3 · 4d6c7b36
      Linus Torvalds authored
      - Al Viro: more superblock cleanups
      - Jens Axboe: more patches for new block IO layer
      - Christoph Hellwig: get rid of the old, long- deprecated SCSI error
      handling
      4d6c7b36
    • Linus Torvalds's avatar
      v2.5.0.1 -> v2.5.0.2 · e1e2cfc3
      Linus Torvalds authored
      - Greg KH: USB update
      - Richard Gooch: refcounting for devfs
      - Jens Axboe: start of new block IO layer
      e1e2cfc3
    • Linus Torvalds's avatar
      v2.4.14.1 -> v2.4.14.2 · a8a2069f
      Linus Torvalds authored
        - Ivan Kokshaysky: fix alpha dec_and_lock with modules, for alpha config entry
        - Kai Germaschewski: ISDN updates
        - Jeff Garzik: network driver updates, sysv fs update
        - Kai Mäkisara: SCSI tape update
        - Alan Cox: large drivers merge
        - Nikita Danilov: reiserfs procfs information
        - Andrew Morton: ext3 merge
        - Christoph Hellwig: vxfs livelock fix
        - Trond Myklebust: NFS updates
        - Jens Axboe: cpqarray + cciss dequeue fix
        - Tim Waugh: parport_serial base_baud setting
        - Matthew Dharm: usb-storage Freecom driver fixes
        - Dave McCracken: wait4() thread group race fix
      a8a2069f
    • Linus Torvalds's avatar
      v2.4.12.1 -> v2.4.12.2 · 14450c46
      Linus Torvalds authored
        - Alan Cox: more merging
        - Ben Fennema: UDF module license
        - Jeff Mahoney: reiserfs endian safeness
        - Chris Mason: reiserfs O_SYNC/fsync performance improvements
        - Jean Tourrilhes: wireless extension update
        - Joerg Reuter: AX.25 updates
        - David Miller: 64-bit DMA interfaces
      14450c46
    • Linus Torvalds's avatar
      v2.4.10.4 -> v2.4.10.5 · 8b29e8ed
      Linus Torvalds authored
        - Keith Owens: module exporting error checking
        - Greg KH: USB update
        - Paul Mackerras: clean up wait_init_idle(), ppc prefetch macros
        - Jan Kara: quota fixes
        - Abraham vd Merwe: agpgart support for Intel 830M
        - Jakub Jelinek: ELF loader cleanups
        - Al Viro: more cleanups
        - David Miller: sparc64 fix, netfilter fixes
        - me: tweak resurrected oom handling
      8b29e8ed
    • Linus Torvalds's avatar
      v2.4.10.3 -> v2.4.10.4 · 1d23a518
      Linus Torvalds authored
        - Al Viro: separate out superblocks and FS namespaces: fs/super.c fathers
        fs/namespace.c
        - David Woodhouse: large MTD and JFFS[2] update
        - Marcelo Tosatti: resurrect oom handling
        - Hugh Dickins: add_to_swap_cache racefix cleanup
        - Jean Tourrilhes: IrDA update
        - Martin Bligh: support clustered logical APIC for >8 CPU x86 boxes
        - Richard Henderson: alpha update
      1d23a518
    • Linus Torvalds's avatar
      v2.4.10.2 -> v2.4.10.3 · 0a97b16a
      Linus Torvalds authored
        - Al Viro: superblock cleanups, partition handling fixes and cleanups
        - Ben Collins: firewire update
        - Jeff Garzik: network driver updates
        - Urban Widmark: smbfs updates
        - Kai Mäkisara: SCSI tape driver update
        - various: embarrassing lack of error checking in ELF loader
        - Neil Brown: md formatting cleanup.
      0a97b16a
    • Linus Torvalds's avatar
      v2.4.10.1 -> v2.4.10.2 · 5bf3be03
      Linus Torvalds authored
        - me/Al Viro: fix bdget() oops with block device modules that don't
        clean up after they exit
        - Alan Cox: continued merging (drivers, license tags)
        - David Miller: sparc update, network fixes
        - Christoph Hellwig: work around broken drivers that add a gendisk more
        than once
        - Jakub Jelinek: handle more ELF loading special cases
        - Trond Myklebust: NFS client and lockd reclaimer cleanups/fixes
        - Greg KH: USB updates
        - Mikael Pettersson: sparate out local APIC / IO-APIC config options
      5bf3be03
    • Linus Torvalds's avatar
      v2.4.9.12 -> v2.4.9.13 · a27c6530
      Linus Torvalds authored
        - Manfred Spraul: /proc/pid/maps cleanup (and bugfix for non-x86)
        - Al Viro: "block device fs" - cleanup of page cache handling
        - Hugh Dickins: VM/shmem cleanups and swap search speedup
        - David Miller: sparc updates, soc driver typo fix, net updates
        - Jeff Garzik: network driver updates (dl2k, yellowfin and tulip)
        - Neil Brown: knfsd cleanups and fixues
        - Ben LaHaise: zap_page_range merge from -ac
      a27c6530
    • Linus Torvalds's avatar
      v2.4.6.2 -> v2.4.6.3 · d62f43c5
      Linus Torvalds authored
        - merge with Alan (SCSI subsystem)
        - Jeff Garzik: make serial driver PCI hotplug-aware
      d62f43c5