An error occurred fetching the project authors.
- 07 Sep, 2003 1 commit
-
-
Andi Kleen authored
Nothing too exciting, just some minor new features and bug fixes. The IOMMU code should now not BUG again without CONFIG_IOMMU_DEBUG/iommu=force - Compiles now with -funit-at-a-time - Fix up ioctl 32bit tables following Andrew's change. - Fix __SI_POLL siginfo_t passing to user space - Add 32bit emulation for fadvise64_64 - Remove unneeded sys32_utimes - Various merges with i386 (ACPI, APIC etc.) - Port cpuid patching infrastructure from i386 - Use it to provide better copy_*_user/memcpy/memset/clear/copy_page for C stepping K8. String instructions are faster now that unrolled loops. - Don't try to merge unforced PCI mappings that don't exceed the device's DMA mask. - Discard .exit.data/.exit.text at runtime like i386 - Don't use NTI stores for clear_user - Convert bitops.h bitmap functions to use unsigned long * pointers instead of void * - Fix some warnings in kernel headers. - Fix PDA comments
-
- 31 Aug, 2003 1 commit
-
-
Andi Kleen authored
Make everything compile and boot again. - Update defconfig - Some minor cleanup - Introduce physid_t for APIC masks (fixes UP kernels) - Add bandaid for CardBus bridges and broken BIOS (Vojtech) - Add bandaid for unsynchronized TSCs (Vojtech) - Fix ffs(0) return value (fixes XFS) - Fix compilation with software suspend
-
- 18 Aug, 2003 1 commit
-
-
Andrew Morton authored
From: William Lee Irwin III <wli@holomorphy.com> Contributions from: Jan Dittmer <jdittmer@sfhq.hn.org> Arnd Bergmann <arnd@arndb.de> "Bryan O'Sullivan" <bos@serpentine.com> "David S. Miller" <davem@redhat.com> Badari Pulavarty <pbadari@us.ibm.com> "Martin J. Bligh" <mbligh@aracnet.com> Zwane Mwaikambo <zwane@linuxpower.ca> It has ben tested on x86, sparc64, x86_64, ia64 (I think), ppc and ppc64. cpumask_t enables systems with NR_CPUS > BITS_PER_LONG to utilize all their cpus by creating an abstract data type dedicated to representing cpu bitmasks, similar to fd sets from userspace, and sweeping the appropriate code to update callers to the access API. The fd set-like structure is according to Linus' own suggestion; the macro calling convention to ambiguate representations with minimal code impact is my own invention. Specifically, a new set of inline functions for manipulating arbitrary-width bitmaps is introduced with a relatively simple implementation, in tandem with a new data type representing bitmaps of width NR_CPUS, cpumask_t, whose accessor functions are defined in terms of the bitmap manipulation inlines. This bitmap ADT found an additional use in i386 arch code handling sparse physical APIC ID's, which was convenient to use in this case as the accounting structure was required to be wider to accommodate the physids consumed by larger numbers of cpus. For the sake of simplicity and low code impact, these cpu bitmasks are passed primarily by value; however, an additional set of accessors along with an auxiliary data type with const call-by-reference semantics is provided to address performance concerns raised in connection with very large systems, such as SGI's larger models, where copying and call-by-value overhead would be prohibitive. Few (if any) users of the call-by-reference API are immediately introduced. Also, in order to avoid calling convention overhead on architectures where structures are required to be passed by value, NR_CPUS <= BITS_PER_LONG is special-cased so that cpumask_t falls back to an unsigned long and the accessors perform the usual bit twiddling on unsigned longs as opposed to arrays thereof. Audits were done with the structure overhead in-place, restoring this special-casing only afterward so as to ensure a more complete API conversion while undergoing the majority of its end-user exposure in -mm. More -mm's were shipped after its restoration to be sure that was tested, too. The immediate users of this functionality are Sun sparc64 systems, SGI mips64 and ia64 systems, and IBM ia32, ppc64, and s390 systems. Of these, only the ppc64 machines needing the functionality have yet to be released; all others have had systems requiring it for full functionality for at least 6 months, and in some cases, since the initial Linux port to the affected architecture.
-
- 13 Aug, 2003 1 commit
-
-
Andi Kleen authored
Without these changes an x86-64 NUMA kernel won't boot in many configurations. The main change is the improved IOMMU code which supports merging of mappings and has various bugfixes. - Update defconfig - Use argument ptregs in 32bit elf_core_copy_task_fpregs - Harden aperture fixup code: read aperture from the AGP bridge if needed, better error checking. - Support nmi_watchdog=panic to panic on watchdog trigger - IOMMU: Support panic on IOMMU overflow (iommu=panic) - IOMMU: Force SAC for mappings >40bits when iommu=force is active (this can potentially give better performance) - IOMMU: Cache northbridges for faster TLB flush - IOMMU: Fix SMP race in TLB flush - IOMMU: Merge pci_alloc_consistent and pci_map_single - IOMMU: Clean up leak tracing - IOMMU: Rewrite pci_map_sg, support merging of mappings On overflow fall back to piece-by-piece mapping. - IOMMU: Tell block layer to assume merging when iommu force is active (this gives better performance with MTP fusion, drawback is that the overflow/fragmentation handling of the IOMMU area is still a big dubious with that) - Fix/clean up per cpu data - Add 64bit clean time(2) - Export cpu_callout_map for IPv6 - Handle nodes with no own memory in NUMA discovery. This fixes boot on various newer Opteron motherboards where the memory is only connected to a single CPU. - Fix fallback path for failed NUMA discovery. numnodes has to be reset. - Check for enabled nodes in NUMA discovery (Eric Biederman) - Remove NUMA emunodes support. Has badly bitrotted. - Add __clear_bit_string for IOMMU code - Add new 32bit system calls to ia32_unistd.h - Remove duplicate default_do_nmi prototype - Make PCI_DMA_BUS_IS_PHYS dependent on no_iommu - Fix padding length of siginfo_t to match glibc - More pci direct access functions.
-
- 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().
-
- 22 Feb, 2003 1 commit
-
-
Andi Kleen authored
This still has a few problems; e.g. posix-timers.c seems to be miscompiled by many x86-64 compilers when compiled with -O1. But overall it is better than before. - Disable numa again that was enabled by mistake - Fix CPU detection in early boot. Force SSE when needed. - Hack for nested NMIs. - Fix typo in vsyscall code that lead to broken time reporting - Merge with 2.5.62-bk4 (new switch_to, printk cleanups, new timer calls etc.) - Fix bug in strace - don't assume syscall_trace doesn't clobber %rcx - Fix gs load workaround - Fix return value of ioperm (found by new LTP test) - Remove some unecessary boot output - Remove some obsolete code in setup.c - Report more in /proc/cpuinfo, fix extended cpu family computation - Fix thread_info access from interrupt/exception stacks - this fixes many problems that especially showed on SMP (lost reschedule interrupts etc.) - Fix UP compilation - Symlink hugetlbpage.c from i386 - Fix buggy lazy fpu handling
-
- 28 Dec, 2002 1 commit
-
-
Andi Kleen authored
- Optimize __copy*user a bit. - Merge with 2.5.53/i386 - Fix broken 32bit signal handling. - Implement AT_SYSINFO and a vsyscall page for 32bit programs. - Fix 32bit SYSCALL entry point to handle 6 arguments and restart correctly. - Add oprofile support (Vojtech Pavlik, with changes by me) This is shared code with i386.
-
- 20 Dec, 2002 1 commit
-
-
Andi Kleen authored
This patch depends on the i386 MTRR driver cleanup I sent earlier. - Support non executable mappings for x86-64. data/heap are non executable by default now. - Beginnings of software suspend from Pavel (not working yet) - Support generic compat functions and remove some shared code in the 32bit emulation (Stephen Rothwell) - Support hugetlbfs - Some makefile updates - Make sure all 32bit emulation functions return long, not int. This fixes some problems with ERESTARTNOSYS.et.al. leaking to userspace. - Add new system calls. - Fix long standing fs/gs context switch bugs (thanks to Karsten Keil for helping to fix that mess). Also make sure the gs selector is set to 0 after an exec. - Simplify TLS switching - Paranoid CPUID check at bootup - Reorder scatterlist to be more space efficient (Jes Soerensen) - Enlarge 32bit address space to full 4GB. - Beginnings of 32bit SYSCALL support (not completely working yet and vsyscall page miss yet) - Various merges from i386 - New module loader - Support threaded core dump (XMM saving for 32bit programs doesn't work, but it appears to be broken on i386 too) - Fix bug in signal stack rounding - Remove DRM 32bit emulation. - Use MTRR driver from i386 - Use bootflag.c from i386 - Various other fixes and cleanups.
-
- 12 Oct, 2002 1 commit
-
-
Andi Kleen authored
Update various lib/ functions for x86-64: - new memcpy/memset/csum-copy/copy_page/user - add bitstr support function for IOMMU - Other minor fixes and updates.
-
- 11 Jun, 2002 1 commit
-
-
Andi Kleen authored
Here is the big 2.5.21 x86-64 sync patch. It only touches arch/x86_64 and include/asm-x86_64. It requires a few other changes that I'm sending in separate mail. Changes: - merge wit 2.5.21 - merge from 2.5.21/i386 (new PCI code, new LDT code etc.) - sync with 2.4-x86_64 tree. - minor updates to 32bit emulation - better early console; including serial support. - now set up dummy PDA for booting to avoid problems - Fix GS reloading in context switch one instruction race - Remove hardcoded names from mpparse code - Fix inline assembly for RAID-5 xor (similar change needed for i386) - Real per cpu data support based on PDA field - Cleanup of offset.c generation requested by Kai: it only puts structure offsets into offset.h now. - Fix i387 fxsave signal frame problems. - Add uname emulation via personality ("linux32") - New SSE optimized checksum-copy, copy*user, memcpy, clear_page, copy_page functions. Other tunings/cleanups in checksum and other user memory access function. - check if exception table is really sorted - Cleanups in page table handling in preparation of non executable pages support. - Cleanup PDA access to not require offset.h (thanks to kai for kicking me to this) - use long long for u64/s64 to avoid more warnings - remove CONFIG_ISA - fix various bugs and other cleanups
-
- 20 Apr, 2002 1 commit
-
-
Andi Kleen authored
This patch brings 2.5.8 in sync with the x86-64 2.4 development tree again (excluding device drivers) It has lots of bug fixes and enhancements. It only touches architecture specific files. - Sync with 2.5.8 - SMP/APIC supported now. - Module loading works now. - Time keeping bugs fixed. - entry.S streamlined and some bugs fixed. - modify_ldt works now - mostly rewritten FPU support (including FXRSTOR for initial FPU initialization based on the initial state) - 32bit emulation enhanced and bugs fixed. - rewrote mm initialization and lots of cleanups in the page table handling __PAGE_OFFSET is now moved to 0x10000000000 and some vmalloc/ioremap problems have been fixed. They have an own PML4 slot now. - WCHAN reporting support for RIP (but not RSP) - Lots of various other bug fixes and cleanups. Currently broken: - ACPI - MTRR It needs some other bugfixes outside architecture specific code. I sent them all in separate mail.
-
- 26 Feb, 2002 1 commit
-
-
Andi Kleen authored
This patch makes x86-64 compile in 2.5.5 and syncs it with changes in the i386 port. It also fixes some bugs that were discovered in recent testing: - enhance 32bit emulation and fix bugs. - fix security hole in vmalloc handling - Do not use lockless gettimeofday for now because it is buggy. The patch only changes x86_64 specific files. -Andi
-
- 13 Feb, 2002 1 commit
-
-
Andi Kleen authored
This adds the x86_64 arch and asm directories and a Documentation/x86_64. It took a bit longer because I first had to make preemption and thread_info work and also found some other bugs while doing this. The port has been tested for a long time on UP. I'm not sure what I should describe. A lot is based on i386 with a lot of cleanups. I wrote a paper about it for last year's OLS that describes most of the changes (ftp://ftp.firstfloor.org/pub/ak/x86_64.ps.gz). It is a bit outdated now, but should give a good overview. It currently has a completely cut'n'pasted from others+hacked 32bit emulation. I hope to clean that up in the future by merging the generic core of this with other 64bit archs. Thanks, -Andi
-
- 12 Feb, 2002 1 commit
-
-
Ingo Molnar authored
-
- 11 Feb, 2002 1 commit
-
-
Ingo Molnar authored
-
- 05 Feb, 2002 5 commits
-
-
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
- 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
- Johannes Erdfelt: OHCI hash-chain corruption fix, USB updates - Richard Henderson, Ivan Kokshaysky: alpha PCI iommu fixes - Tim Waugh: parport changelogs and printk levels - Andrew Morton: vmalloc off-by-one (overly sensitive) test - Al Viro: VFS layer cleanups - Cort Dougan: PPC updates (big bootloader re-org) - Alan Cox: more merges, remove phillips camera conversion code - Andrea Arkangeli: alpha fixups - OGAWA Hirofumi: big-sector support with FAT - Neil Brown: more md fixes
-
Linus Torvalds authored
- Bob Tracy: Cyrix MTRR setup fix (don't make it twice as big as asked for) - Trond Myklebust: rpciod needs to be PF_MEMALLOC to avoid deadlocks on memory allocation when writing out NFS data under low memory conditions. Fix up BKL and RPC interactions. - Jeff Garzik: tulip network driver update - fix truncate to call down to the filesystem with the kernel lock. - David Mosberger: ia64 update - David Mosberger: simplify ELF program header generation. - Alan Cox: merge from -ac series - Jeff Garzik: make serial.c recognize modem devices properly
-
Linus Torvalds authored
-