summaryrefslogtreecommitdiff
path: root/include/asm-x86_64/bitops.h
AgeCommit message (Collapse)Author
2007-10-11i386/x86_64: move headers to include/asm-x86Thomas Gleixner
Move the headers to include/asm-x86 and fixup the header install make rules Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
2007-02-13[PATCH] x86-64: Fix wrong gcc check in bitops.hAndi Kleen
gcc 5.0 will likely not have the constraint problem Signed-off-by: Andi Kleen <ak@suse.de>
2007-01-11[PATCH] x86-64: Use different constraint for gcc < 4.1 in bitops.hAndi Kleen
+m is really correct for a RMW instruction, but some older gccs error out. I finally gave in and ifdefed it. This fixes compilation errors with some compiler version. Signed-off-by: Andi Kleen <ak@suse.de>
2006-09-26[PATCH] optimize hweight64 for x86_64Andi Kleen
Based on patch from David Rientjes <rientjes@google.com>, but changed by AK. Optimizes the 64-bit hamming weight for x86_64 processors assuming they have fast multiplication. Uses five fewer bitops than the generic hweight64. Benchmark on one EMT64 showed ~25% speedup with 2^24 consecutive calls. Define a new ARCH_HAS_FAST_MULTIPLIER that can be set by other architectures that can also multiply fast. Signed-off-by: Andi Kleen <ak@suse.de>
2006-06-26[PATCH] x86_64: x86_64 version of the smp alternative patch.Gerd Hoffmann
Changes are largely identical to the i386 version: * alternative #define are moved to the new alternative.h file. * one new elf section with pointers to the lock prefixes which can be nop'ed out for non-smp. * two new elf sections simliar to the "classic" alternatives to replace SMP code with simpler UP code. * fixup headers to use alternative.h instead of defining their own LOCK / LOCK_PREFIX macros. The patch reuses the i386 version of the alternatives code to avoid code duplication. The code in alternatives.c was shuffled around a bit to reduce the number of #ifdefs needed. It also got some tweaks needed for x86_64 (vsyscall page handling) and new features (noreplacement option which was x86_64 only up to now). Debug printk's are changed from compile-time to runtime. Loosely based on a early version from Bastian Blank <waldi@debian.org> Signed-off-by: Gerd Hoffmann <kraxel@suse.de> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-04-26Don't include linux/config.h from anywhere else in include/David Woodhouse
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2006-03-26[PATCH] bitops: x86_64: use generic bitopsAkinobu Mita
- remove sched_find_first_bit() - remove generic_hweight{64,32,16,8}() - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() Signed-off-by: Akinobu Mita <mita@miraclelinux.com> Cc: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-11[PATCH] x86_64: fls in asm for x86_64Stephen Hemminger
Use single instruction for find largest set bit on x86_64. [Updated by Jan Beulich to fix wrong asm constraints in original patch -AK] Cc: jbeulich@novell.com Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-11[PATCH] i386/x86-64: Use input/output dependencies for bitopsAndi Kleen
Noticed by Andreas Schwab Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-03[FLS64]: x86_64 versionStephen Hemminger
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-03[FLS64]: generic versionStephen Hemminger
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2005-07-28[PATCH] x86_64: Fix gcc 4 warning in sched_find_first_bitJesse Millan
This patch eliminates the GCC4 warning on the x86_64 platform: kernel/sched.c:1824: warning: control may reach end of non-void function 'sched_find_first_bit' being inlined. The change follows the lead of others, i.e. it is guaranteed that at least one of b[0], b[1], or b[2] will have a bit set and evaluate to true. That being said, GCC4.0.0 notices that the code flow does not return anything if b[0], b[1] and b[2] are not true. Since we know better, if it's not b[0] or b[1], it has to be b[2]. Signed-off-by: Jesse Millan <jessem@cs.pdx.edu> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-23[PATCH] add x86-64 specific support for sparsememMatt Tolentino
This patch adds in the necessary support for sparsemem such that x86-64 kernels may use sparsemem as an alternative to discontigmem for NUMA kernels. Note that this does no preclude one from continuing to build NUMA kernels using discontigmem, but merely allows the option to build NUMA kernels with sparsemem. Interestingly, the use of sparsemem in lieu of discontigmem in NUMA kernels results in reduced text size for otherwise equivalent kernels as shown in the example builds below: text data bss dec hex filename 2371036 765884 1237108 4374028 42be0c vmlinux.discontig 2366549 776484 1302772 4445805 43d66d vmlinux.sparse Signed-off-by: Matt Tolentino <matthew.e.tolentino@intel.com> Signed-off-by: Dave Hansen <haveblue@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-01-14[PATCH] x86_64: Add brackets to bitopsAndi Kleen
Add missing argument brackets in bitop macros Makes these macros somewhat safer to use. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-08-23[PATCH] New x86-64 mergeAndi Kleen
This fixes various issues in the previous update, in particular a kernel without CONFIG_GART_IOMMU should boot now again, The kernel discoverys PCI BUS<->CPU affinity on AMD systems now. It is so far used by dma_alloc_coherent to allocate memory Experimental patches to add this to sysfs exist, but they're not included yet. On systems with no memory on a CPU this information may be wrong. It has a new experimental CONFIG_UNORDERED_IO option. When enabled it uses write combining for stores to device iomemory mapping. This may give better performance with some device drivers, but has a slight risk of breaking drivers (in general if a driver works on ia64,ppc64,sparc64 it should also work). Based on some discussions with Grant Grundler. It requires the driver to use memory barriers properly. I would be interested in feedback on any performance changes you're seeing. For a production system I would recommend to keep it turned off(although I run it on all my systems and haven't run into any problems yet) ACPI and Centrino speedstep is enabled now for Nocona systems. The IOMMU code does lazy merging by default now, which should be safe and may increase performance on block IO. It also avoids SAC force by default now. The machine check code has been improved again, hopefully it is good now. It will log now machine check events from before the last reset. And various other fixes. The x86-64 parts are now gcc 3.5 clean. And various other fixes - Update defconfig - Reset lost ticks on lost time warning, print RIP. - Make TASK_SIZE test for 32bit (Arjan van de Ven) - Work around bug in generic code that broke pcibus_to_cpumask - Actually fix dummy iommu code - Compile i386 acpi and speedstep-centrino cpufreq modules - Export cpu_khz - Fix compilation without GART_IOMMU - Optimize find_*_bit functions for small fields - Discover nodes near PCI busses on K8 (Travis Betak, changed by me) - Optimize gart tlb flush slightly - Add experimental CONFIG_UNORDERED_IO for unordered IO stores - Add 32bit emulation for PTRACE_GETEVENTMSG - Fix kernel_fpu_{begin,end} for preemptive kernels (Alexander Nyberg) - Readd proper check for biomerge (got lost) - Set up 32bit vsyscall page for ptrace early - Add 32bit emulation for lookup_dcookie() for oprofile - Export copy_page / clear_page - Use rex prefix in save_init_fpu fxsave (Jan Beulich) - Make it compile again - Fix handling of hwdev == NULL (= ISA/LPC devices) in swiotlb - Convert PCI DMA code to dma devices - Change IOMMU code to use dummy fallback device instead of hardcoded NULL tests everywhere. - Test iommu_sac_force instead of nommu for DAC supported macro (will cause more drivers to use DAC) - Harden non IOMMU dma_alloc_consistent code to fail less likely. - Remove use of strsep in option parsers - Remove duplicated exports (Arjan van der Ven) - Fix EFAULT checking in ptrace (John Blackwood) - Update defconfig - Remove dead URL from boot/setup.S (R.J. Wysocki) - Use compat_sigval_t instead of sigval_t32 (Al Viro) - Nanooptimization in 32bit ptregs calls - Fix gcc 3.5 compilation in mtrr.h - Pass pt_regs as pointer to avoid illegal pass by reference (for gcc 3.5) - Make set_bit take int not long (Harald Dunkel) - Avoid panic on pci_map_sg and pci_alloc_consistent overflow in GART IOMMU - Handle large lost time delays in HPET code (Suresh B. Siddha) - Work around theoretical bugs in prefetch handling (suggested by Jamie Lokier) - Remove mtrr_strings declaration for gcc 3.5 - Set KBUILD_IMAGE for make rpm (William Lee Irwin III) - Add iommu=noaperture to not touch the aperture - Clean up argument parsing for iommu= option - Export symbols for xchgadd based rwsems (still disabled) - Define iommu_bio_merge for !CONFIG_GART_IOMMU - Don't use backwards rep ; movsb for memmove - Out line bitmap search functions (saves 8k .text, from i386) - Convert bitmap search functions to 64bit accesses and optimize them a bit. - Handle corrupted page tables in page fault handler - Set iommu_merge (without force) to on by default again. - Don't do bio merging by default for iommu=merge. This should make it safe to use again - Add iommu=biomerge option to enable BIO merging (like old iommu=merge) - Fix iommu=memaper=... parsing - More MCE fixes (based on a patch by Eric Morton, heavily changed by me) - Fix check for banks causing exceptions - Allow to reinit MCEs later even after mce=off, fix wrong use of __initdata to disable at boot, but reenable later. - Log left over machine checks after boot and resume - Fix missing prototype warning with CPU_FREQ on - Fix parsing of noexec=on (Ian Hastie) - Fix warning in ia32_binfmt.c - Resync time variable cpu frequency handling with i386 - Resync msr.c with i386 - Add 0x60 level 1 intel cache descriptor (from i386) - Remove duplicated 32bit ioctls (Arnd Bergmann) - Enable -msoft-float (from i386) - Use faster version of FPU hang fix - handle the exception * a bit experimental, if you see "kernel ... math error" events in the log please report. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-05-29[PATCH] x86-64 updateAndi Kleen
Add accumulated bug fixes for x86-64 and some minor cleanups. - Add ptep_set_access_flags from i386 - Change memory text mapping to 10MB from 40MB to make alias window smaller - Disable change_page_attr for kernel mapoing for now (wrong, but the other code also doesn't work) - Add .bss.page_aligned and align interrupt/exception stacks (idea from Matt Mackall) - Protect sysenter MSR setup against missing registers. - Set mce tolerance level to 1 (panic instead of deadlock) - Fix cross 4GB bug in find_first_bit (Michael Matz) - Add missing memory clobbers in bitops.h (Suresh B. Siddha) - Check kernel size at boot up - Set boot cpu online at boot to fix early printk - Fix EFER bit definitions (Dave Jones) - Fix comments in 32bit syscall table. - Quieten all 32bit syscalls that are unimplemented in 32bit. - Various MCE fixes suggested by Eric Morton, David Boles et.al. More to come. - Quieten some printks - Fix cpu online check in msr driver - Lower polling interval for machine checks to 5 minutes to avoid overrunning the registers. - Make memcpy_{from,to}io more compatible with i386 (Roland Dreier)
2004-05-14[PATCH] x86_64 has buggy ffs() implementationAnton Altaparmakov
x86_64 has an incorrect ffs() implementation. The asm uses "g" instead of "rm" for the bsfl instruction. (This was spotted by Yuri Per.) bsfl does not accept constant values but only memory or register ones. On i386 the correct "rm" is used. This causes NTFS build to fail as gcc optimizes a variable into a constant and ffs() then fails to assemble.
2004-04-12[PATCH] fix test_and_change_bit commentAndrew Morton
From: Paul Jackson <pj@sgi.com> I've read over the code in each case, built and ran a test case for i386 in particular, and studied the other uses and definitions of test_and_change_bit(). Everything I see recommends this change. - Fix test_and_change_bit() comment: returns old value, not new one.
2004-03-15[PATCH] Save some memory in mem_map on x86-64Andrew Morton
From: Andi Kleen <ak@suse.de> This patch saves 2MB of memory on a 1GB x86-64 machine, 20MB on a 10GB machine. It does this by eliminating 8 bytes of useless padding in struct page. This resurrects an older patch in a hopefully cleaner form.
2003-12-31[PATCH] X86-64 mergeAndi Kleen
At least one of them is critical. It fixes an path in the IOMMU that I broke with the ealier "fullflush" workaround. - Check for ~/bin/installkernel like i386 (M. Bligh) - Implement 32bit RTC_IRQ_SET correctly (Lutz Vieweg) - Disable some useless printks in 32bit emulation - Warning fixes for mixed C99 style declarations/statements. - Sync lAPIC power management with i386 - Use topology sysfs like i386 - Fix some serious bugs in the MCE handler. ECC should be decoded correctly now. - Add oops=panic option to panic on Oopses. - Fix hackish code in head.S - Add missing options in IOMMU - Fix _syscall6 (Olaf Hering) - Remove broken ACPI locking code. Port IA64 C version. - Make safe_smp_processor_id() more reliable - Read HPET in vsyscall code - Add workaround for BIOS that corrupt 64bit registers in HLT - Fix unaligned access in bitops.h - Remove broken ntp drift correction code for now - i386 merge in SCI setup - Fix wrong offset in callin.h (Jim Houston) - Minor comment fixes
2003-09-07[PATCH] x86-64 updateAndi Kleen
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
2003-08-30[PATCH] x86-64 updateAndi Kleen
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
2003-08-18[PATCH] cpumask_t: allow more than BITS_PER_LONG CPUsAndrew Morton
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.
2003-08-13[PATCH] x86-64 merge for 2.6.0test3Andi Kleen
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.
2003-04-12[PATCH] use spinlocking in the ext2 block allocatorAndrew Morton
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().
2003-02-21[PATCH] x86-64 update for 2.5.62-bk4Andi Kleen
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
2002-12-27[PATCH] x86-64 updateAndi Kleen
- 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.
2002-12-20[PATCH] x86-64 mergeAndi Kleen
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.
2002-10-12[PATCH] library functions updates for x86-64Andi Kleen
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.
2002-06-11[PATCH] 2.5.21 x86-64 jumbo patch - arch specific changesAndi Kleen
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
2002-04-19[PATCH] x86-64 architecture specific sync for 2.5.8Andi Kleen
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.
2002-02-25[PATCH] x86-64 update for 2.5.5Andi Kleen
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
2002-02-12[PATCH] x86_64 merge: arch + asmAndi Kleen
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