Size: 6399
Comment: add relocatable kernel support, remove kdump (that was added at .13!)
|
Size: 9591
Comment: paravirtualization
|
Deletions are marked like this. | Additions are marked like this. |
Line 12: | Line 12: |
=== Paravirtualization support for i386 === The basic hooks for replacing all non virtualizable instructions on x86 are in. This currently only runs on native hardware, but will allow to link in modules for paravirtualized Xen/Vmware/lhype. There are limitations like no SMP support yet. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=da181a8b3916aa7f2e3c5775d2bd2fe3454cf82d (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dfbea0ad50e08c52539bddce977b07f77a762ba4 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3bbf54725467d604698721384d858b5983b87e8f 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4f205fd45a5c192907188d6f8f6d7e66db859248 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6020c8f315709a508b027ef6749e85b125190947 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8542b200cbe5609edd7aae0c304c091a1c290452 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8ecb8950695e907ed25acffec9e98c6806e311c8 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a2952d8949bb0b37c1be92a89c4f180c74292857 8], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd472c794bbf6771c3fc1c58f188bc16c393d2fe 9] [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c9ccf30d77f04064fe5436027ab9d2230c7cdd94 10] [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d3561b7fa0fb0fc583bab0eeda32bec9e4c4056d 11], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=13623d79309dd82e1964458fa017979d16f33fa8 12], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=139ec7c416248b9ea227d21839235344edfee1e0 13)] |
|
Line 13: | Line 19: |
=== | === Sleazy FPU optimization === This is a x86-32 port of the x86-64 feature implemented in [http://kernelnewbies.org/Linux_2_6_19 2.6.19]. It doesn't gives huge performance except a very small improvement in FPU-intensive programs, but it's also a interesting optimization. Right now the kernel has a 100% lazy fpu behavior: after *every* context switch a trap is taken for the first FPU use to restore the FPU context lazily. This is of course great for applications that have very sporadic or no FPU use (since then you avoid doing the expensive save/restore all the time). However for very frequent FPU users you take an extra trap every context switch. This feature adds a simple heuristic to this code: After 5 consecutive context switches of FPU use, the lazy behavior is disabled and the context gets restored every context switch. If the app indeed uses the FPU, the trap is avoided (the chance of the 6th time slice using FPU after the previous 5 having done so are quite high obviously). After 256 switches, this is reset and lazy behavior is returned (until there are 5 consecutive ones again). The reason for this is to give apps that do longer bursts of FPU use still the lazy behavior back after some time. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=acc207616a91a413a50fdd8847a747c4a7324167 (commit)] |
Line 101: | Line 112: |
* Add support for a relocatable kernel. This is useful for kexec panics and another kernel being loaded. |
Short overview (for news sites, etc)
KVM (http://kvm.sourceforge.net) for Intel with VT and AMD with SVM hardware virtualization; Support for relocatable kernels, for backups with kernel panics.
Important things (AKA: ''the cool stuff'')
Relocatable kernel support for x86
This feature (enabled with CONFIG_RELOCATABLE) isn't very noticeable for end-users but it's quite interesting from a kernel POV. Until now, it was a requeriment that a i386 kernel was loaded at a fixed memory address in order to work, loading it in a different place wouldn't work. This feature allows to compile a kernel that can be loaded at different 4K-aligned addresses, but always below 1 GB, with no runtime overhead. Kdump users (a feature introduced in [http://kernelnewbies.org/Linux_2_6_13 2.6.13] that it triggers [http://lwn.net/Articles/108595/ kexec] in a kernel crash in order to boot a kernel that has been previously loaded at a 'empty' address, then runs that kernel, saves the memory where the crashed kernel was placed, dumps it in a file and continues booting the system) will benefit from this because until now the "rescue kernel" need to be compiled with different configuration options in order to make it bootable at a different address. With a relocatable kernel, the same kernel can be boot at different addresses. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=968de4f02621db35b8ae5239c8cfc6664fb872d8 (commit)], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e69f202d0a1419219198566e1c22218a5c71a9a6 (commit)], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=be274eeaf20b4c7155242645d5e2c48b023e609b (commit)], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fd593d12770d4a0d1ff095d44b96436c18479ee8 (commit)]
Paravirtualization support for i386
The basic hooks for replacing all non virtualizable instructions on x86 are in. This currently only runs on native hardware, but will allow to link in modules for paravirtualized Xen/Vmware/lhype. There are limitations like no SMP support yet. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=da181a8b3916aa7f2e3c5775d2bd2fe3454cf82d (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dfbea0ad50e08c52539bddce977b07f77a762ba4 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3bbf54725467d604698721384d858b5983b87e8f 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4f205fd45a5c192907188d6f8f6d7e66db859248 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6020c8f315709a508b027ef6749e85b125190947 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8542b200cbe5609edd7aae0c304c091a1c290452 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8ecb8950695e907ed25acffec9e98c6806e311c8 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a2952d8949bb0b37c1be92a89c4f180c74292857 8], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd472c794bbf6771c3fc1c58f188bc16c393d2fe 9] [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c9ccf30d77f04064fe5436027ab9d2230c7cdd94 10] [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d3561b7fa0fb0fc583bab0eeda32bec9e4c4056d 11], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=13623d79309dd82e1964458fa017979d16f33fa8 12], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=139ec7c416248b9ea227d21839235344edfee1e0 13)]
Sleazy FPU optimization
This is a x86-32 port of the x86-64 feature implemented in [http://kernelnewbies.org/Linux_2_6_19 2.6.19]. It doesn't gives huge performance except a very small improvement in FPU-intensive programs, but it's also a interesting optimization. Right now the kernel has a 100% lazy fpu behavior: after *every* context switch a trap is taken for the first FPU use to restore the FPU context lazily. This is of course great for applications that have very sporadic or no FPU use (since then you avoid doing the expensive save/restore all the time). However for very frequent FPU users you take an extra trap every context switch. This feature adds a simple heuristic to this code: After 5 consecutive context switches of FPU use, the lazy behavior is disabled and the context gets restored every context switch. If the app indeed uses the FPU, the trap is avoided (the chance of the 6th time slice using FPU after the previous 5 having done so are quite high obviously). After 256 switches, this is reset and lazy behavior is returned (until there are 5 consecutive ones again). The reason for this is to give apps that do longer bursts of FPU use still the lazy behavior back after some time. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=acc207616a91a413a50fdd8847a747c4a7324167 (commit)]
- Asynchronous SCSI scanning
- New 300Hz option. Good because it evenly divides PAL and NTSC framerates
- HID Layer split: Allows things other than USB to use the HID layer (Bluetooth)
- Relative atime support (only updates the atime if the previous atime is older than the mtime or ctime)
- I/O Accounting
- Work struct split into delayable and nondelayable events. Saves space for Nondelayable events.
Drivers
- Add notification of bus events
- Removal of the crusty FTape driver
- Add support for Moxa SmartIO multiport serial cards
- ohci1394: steps to implement suspend/resume
- allow usb hubs to have up to 31 children
- Add support for Korenix 16C950-based PCI cards (serial cards)
- Improvements to Apple Books touchpad to reduce jumpiness of mouse.
- SCSI: lpfc: Add MSI (Message Signalled Interrupts) support
HW Mon
- Add support for the Fintek F71872F/FG chip
- New Winbond W83793 hardware monitoring driver
- New National Semiconductor PC87427 hardware monitoring driver
Network
- Atmel MACB support
Add NetXen 1G/10G ethernet driver.
- e1000
- New hardware support
- Performance improvements (and start up time improvements)
- forcedeth: power management support
- bcm43xx
- output proper link quality with scans
- add PCI-E code
- Increased support for Marvel products
- Netfilter
- Better SIP helper
- AddNFLOG target
- Add --snat-arp support, now possible to change the source mac address in both the mac and arp header with one rule
- nf_conntrack: add NAT support
- Add many NAT helper ports
libata
- Add support for Winbond, Marvel, and others
- Some suspend/resume support added
- sata_nv ADMA/NCQ support for nForce4
- implement ATA_EHI_SETMODE and ATA_EHI_POST_SETMODE
- ahci: do not powerdown during initialization: fixes weird initializaion issues
Sensors
- Add support for Apple Motion Sensors
- Support for National Semiconductor PC87427 Super-I/O chip
- Support for Winbond W83793 sensors
Audio
- Remove obsolete OSS drivers that already have ALSA replacements
Video
- Add support for DMC TSC-10/25 devices
- Add support for Philips UCB1400 touchscreen
- Framebuffer support for IBM GXT4500P adaptor
- Ability to set Geode framebuffer size
- DRM i915 updates
- V4L
- Add support for Pinnacle 310i
- Added support for a ASUSTEK P7131 Dual DVB-T variant
- Add support for the Compro Videomate DVB-T200A
Other stuff
- Add sysrq_always_enabled boot option
- Make sure the initroot filesystem is populatated late enough
Arch-independent changes in the kernel core
Add support for Log2 mechanism [http://lwn.net/Articles/203596/]
Driver core: add notification of bus events [http://lkml.org/lkml/2006/12/1/297]
- sched: optimize activate_task for RT task
- move kallsyms data to .rodata
- Remove support for stack unwinding. It caused more problems than it solved; enabled frame pointers for debugging purposes.
Architecture-specific changes
- rtc-sh: alarm support
- ARM
- Support to change MX1 CPU frequency at runtime.
- Support for Atmel AT91SAM9260-EK (and 61) boards
- Some more suspend to RAM support
- i386
- Add support to compile for Core2
- MIPS
- Use "long" for 64-bit values on 64-bit kernel.
- Fancy magic to reduce module size by ~ 10%.
- IRQ cleanups
- PowerPC
- Refactor 64 bit DMA operations
- Add support for EFIKA boards
- Add support for the Sony Playstation 3
- Enable DEEPNAP power savings mode on 970MP
- DCR support
- More Cell support
- Xserve cpu-meter driver
- S390
- cpu shutdown rework
- New DASD feature for ERP related logging: no longer have to recompile to change ERP logging on/off
- x86_64
- Add support to compile for Core2
- Altix: Some ACPI support
Filesystems
- Relative atime support for ocfs2
- DebugFS: inotify support
- optimize o_direct on block devices
- Fix nasty bug that would sometimes cause corruption with rtorrent and debian's apt
Networking
- TCP communications support for DLM
- SELinux support for DCCP
CPU Freq
- Add support for CN400 when ACPI C3 isn't available.
- A bunch of stuff into acpi-cpufreq that allows it to do better