|| ||Andi Kleen <email@example.com>|
|| ||[discuss] x86_64-2.6.8rc3-1 released|
|| ||Thu, 5 Aug 2004 05:10:15 +0200|
A new x86-64 patchkit for the Linux 2.6 kernel has been released.
If you saw any boot problems with earlier version please test this one.
Booting with CONFIG_GART_IOMMU not set should work again.
This has simple support to display NUMA affinity for PCI busses
on AMD systems in sysfs (in the local_cpus field) This can be used
for more efficient IO by doing IO to a specific device from nearby memory.
The interface is still experimental and subject to change. The kernel
also uses this information for device driver memory allocation.
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). 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.
Please re-report any problems you're seeing with this version to me.
Some known issues:
Suspend often doesn't initialize video after wakeup
Generic problem, needs a lot of effort to fix properly. The graphic
card has to be POSTed properly, which is quite complicated.
Need to properly restore APICs after suspend (should be done now - check)
VIA and NVIDIA boards are forced to IO-APIC off to work around ACPI bugs.
This will be a major problem once SMP boards with these chipsets
[VIA issue should be fixed now in post 2.6.6; NVidia still
shows problems on some board, but works on others]
IOMMU corruptions with iommu=nofullflush (disabled by default) and
Underlying bug still undebugged.
Update: BenH had an idea about using dummy scratch pages instead of
invalid entries for unmapped entries. This would prevent bus aborts
for prefetches from the PCI bridge. I tried that, but it also didn't
help for 3ware.
Some motherboard/cpu combinations do not reboot automatically:
IPSec netlink setup code is not 32bit emulation clean
iptables is not 32bit emulation clean
DeviceMapper is not 32bit emulation clean
gettimeofday gets non monontonous when ntpd corrects drift
i386 has some code that attempts to fix that, but it didn't correctly
work here so I reverted it completely for now.
Newer valgrind in emulation is still mostly broken
When the BIOS doesn't assign PCI regions correctly we seem to assign
addresses >32bit. Need a reliable way to find memory holes.
/dev/mem checks incorrectly for holes.
NMI watchdog IO-APIC mode doesn't seem to work on AMD8111
(local APIC works though and is on by default)
NMI local APIC mode uses a performance counter that stops ticking when CPU
executes HLT. This gives varying NMI watchdog frequencies depending on CPU
load. Should be probably fixed by fixing IO-APIC mode and making that
[Update: IO-APIC mode works just fine on Intel chipsets, must be some
AMD specific quirk]
X server messes directly with the PCI config registers and can race with
the kernel and can cause data corruption. This needs to be fixed in the X
server by using proper PCI access methods.
Time runs too fast on at least one AMD machine (broken hardware?)
When setting time backwards xtime and vxtime seem to get out of sync,
with large negative timestamps in xtime (as seen in files)
NMI watchdog and other NMI handling doesn't work when oprofile is active.
Need a way to distingush various NMI sources.
NMI watchdog doesn't check if it really expired
NMI handler reads useless legacy registers.
NMI handler can deadlock in printk
Some Tyan and one e325 board with AMD 811 seem to get IDE DMA errors.
noapic or ideXXX=serialize seems to work around it. Only happens
with some machines.
/proc/kcore is missing fixes from 2.4 to support negative addresses.
VIA builtin PATA doesn't work with IOMMU. Machines locks up on IDE probing.
[workaround for this enabled now - they use swiotlb]
Windows does a better job at keeping the CPU fans quiet on some machines.
Find out how it does that.
Tg3/EHCI hang at boot on a scale600 - still needs debugging.
AMD64 pcibus<->cpu mapping is wrong for empty nodes.
- 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
- Report bus cpu numbers in sysfs
- 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