An error occurred fetching the project authors.
- 12 Apr, 2003 1 commit
-
-
Andrew Morton authored
From Alex Tomas and myself ext2 currently uses lock_super() to protect the filesystem's in-core block allocation bitmaps. On big SMP machines the contention on that semaphore is causing high context switch rates, large amounts of idle time and reduced throughput. The context switch rate can also worsen block allocation: if several tasks are trying to allocate blocks inside the same blockgroup for different files, madly rotating between those tasks will cause the files' blocks to be intermingled. On SDET and dbench-style worloads (lots of tasks doing lots of allocation) this patch (and a similar one for the inode allocator) improve throughout on an 8-way by ~15%. On 16-way NUMAQ the speedup is 150%. What wedo isto remove the lock altogether and just rely on the atomic semantics of test_and_set_bit(): if the allocator sees a block was free it runs test_and_set_bit(). If that fails, then we raced and the allocator will go and look for another block. Of course, we don't really use test_and_set_bit() because that isn'tendian-dependent. New atomic endian-independent functions are introduced: ext2_set_bit_atomic() and ext2_clear_bit_atomic(). We do not need ext2_test_bit_atomic(), since even if ext2_test_bit() returns the wrong result, that error will be detected and naturally handled in the subsequent ext2_set_bit_atomic(). For little-endian machines the new atomic ops map directly onto the test_and_set_bit(), etc. For big-endian machines we provide the architecture's impementation with the address of a spinlock whcih can be taken around the nonatomic ext2_set_bit(). The spinlocks are hashed, and the hash is scaled according to the machine size. Architectures are free to implement optimised versions of ext2_set_bit_atomic() and ext2_clear_bit_atomic().
-
- 23 Jul, 2002 2 commits
-
-
Geert Uytterhoeven authored
Fix miscellaneous compilation warnings and errors
-
Geert Uytterhoeven authored
M68k bitops updates - use bitmap_member() for bitops data declaration - Make the m68k bitops really operate on unsigned long - Add fls()
-
- 07 May, 2002 1 commit
-
-
Roman Zippel authored
Add __clear_bit/__ffs/sched_find_first_bit.
-
- 05 Feb, 2002 4 commits
-
-
Linus Torvalds authored
- Alan Cox: more merging - Alexander Viro: block device module race fixes - Richard Henderson: mmap for 32-bit alpha personality - Jeff Garzik: 8139 and natsemi update
-
Linus Torvalds authored
- Takanori Kawano: brlock indexing bugfix - Ingo Molnar, Jeff Garzik: softirq updates and fixes - Al Viro: rampage of superblock cleanups. - Jean Tourrilhes: Orinoco driver update v6, IrNET update - Trond Myklebust: NFS brown-paper-bag thing - Tim Waugh: parport update - David Miller: networking and sparc updates - Jes Sorensen: m68k update. - Ben Fennema: UDF update - Geert Uytterhoeven: fbdev logo updates - Willem Riede: osst driver updates - Paul Mackerras: PPC update - Marcelo Tosatti: unlazy swap cache - Mikulas Patocka: hpfs update
-
Linus Torvalds authored
- XMM: don't allow illegal mxcsr values - ACPI: handle non-existent battery strings gracefully - Compaq Smart Array driver update - Kanoj Sarcar: serial console hardware flow control support - ide-cs: revert toc-valid cache checking in 2.4.1 - Vojtech Pavlik: update via82cxxx driver to handle the vt82c686 - raid5 graceful failure handling fix - ne2k-pci: enable device before asking the irq number - sis900 driver update - riva FB driver update - fix silly inode hashing pessimization - add SO_ACCEPTCONN for SuS - remove modinfo hack workaround, all newer modutils do it correctly - datagram socket shutdown fix - mark process as running when it takes a page-fault
-
Linus Torvalds authored
-