An error occurred fetching the project authors.
- 21 Jul, 2002 1 commit
-
-
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 ...
-
- 19 Jul, 2002 2 commits
-
-
Greg Kroah-Hartman authored
-
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().
-
- 18 Jun, 2002 1 commit
-
-
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.
-
- 05 Jun, 2002 1 commit
-
-
David S. Miller authored
-
- 31 May, 2002 1 commit
-
-
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.
-
- 23 May, 2002 1 commit
-
-
Christoph Hellwig authored
Declare buffer_init() extern in init/main.c like the other _init so that it doesn't have to include buffer_head.h. Remove buffer_init() there.
-
- 30 Apr, 2002 2 commits
-
-
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.
-
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.
-
- 22 Apr, 2002 2 commits
-
-
Linus Torvalds authored
fixed a few times too many already ;)
-
Alexander Viro authored
- missing defines/fields/includes for alpha (accumulated since 2.5.0)
-
- 14 Apr, 2002 1 commit
-
-
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).
-
- 10 Apr, 2002 1 commit
-
-
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.
-
- 09 Apr, 2002 1 commit
-
-
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.
-
- 06 Mar, 2002 2 commits
-
-
Linus Torvalds authored
so we need to make init_idle() aware of it so that it gets the preempt_count initialization right.
-
Linus Torvalds authored
-
- 05 Mar, 2002 2 commits
-
-
Robert Love authored
On SMP systems, preempt_count is erroneously set to 1 for idle task's on all CPU besides CPU0. This patch sets preempt_count properly. Robert Love
-
Rusty Russell authored
This is the Richard Henderson-approved, cleaner, brighter per-cpu patch.
-
- 28 Feb, 2002 1 commit
-
-
Linus Torvalds authored
-
- 21 Feb, 2002 1 commit
-
-
Ingo Molnar authored
-
- 05 Feb, 2002 20 commits
-
-
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().
-
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
-
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
-
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
-
Linus Torvalds authored
- Al Viro: fix new_inode() allocation - undo initcall update - cciss driver update
-
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
-
Linus Torvalds authored
- Davide Libenzi, Ingo Molnar: scheduler updates - Greg KH: USB update - Jean Tourrilhes: IrDA and wireless updates - Jens Axboe: bio/block updates
-
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
-
Linus Torvalds authored
- Jens Axboe: more bio fixes/cleanups/breakage ;) - Al Viro: superblock cleanups, boot/root mounting.
-
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.
-
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
-
Linus Torvalds authored
- Greg KH: USB update - Richard Gooch: refcounting for devfs - Jens Axboe: start of new block IO layer
-
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
-
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
-
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
-
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
-
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.
-
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
-
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
-
Linus Torvalds authored
- merge with Alan (SCSI subsystem) - Jeff Garzik: make serial driver PCI hotplug-aware
-