mm-traffic #6: (still) 2.6.14-rc2-mm2

Selected commits to mm-sources from 17/09/2005 11:09 to 16/10/2005 1:21, (still) resulting in 2.6.14-rc2-mm2, covering 577 new and 47 removed patches:

Editors note: Andrew has been offline in the time between Sep 29 and Oct 9, so ATM there is no new mm-sources release available. As there are currently over 600 Patches lying in my mailbox, I decided to create a new issue of mm-traffic today.

Add VIA VT6410 support
2 files changed, 22 insertions(+), 9 deletions(-)

drivers/ide: Enable basic VIA VT6410 IDE functionality
2 files changed, 8 insertions(+)

Mathias Kretschmer & Robert Kesterson

Add VIA VT6410 support

This patch enables plain IDE functionality on the VIA VT6410 IDE controller (such as used on the Asus P4P800 Deluxe motherboard). This is not a RAID driver, but you can use Linux’s software RAID once the drives are visible. I did not write the original version of this patch, which I found on the internet back in the days of kernel 2.6.2. I have been unable to identify the original author to give him/her proper credit. I have been maintaining and updating this patch since then and have released several updates which have been successfully used by others who have downloaded it from my website.

ARECA ‘arcmsr’ new Linux SCSI RAID driver version

3 files changed, 404 insertions(+), 242 deletions(-)

Updates to the ARECA SCSI RAID draiver, about 50K in size.

CS5535 AUDIO ALSA driver

Jaya Kumar
9 files changed, 999 insertions(+)

Add support for the CS5535 (Editor: AMD Geode) Audio device. I’ve fixed up some errors as per Takashi’s advice from the thread:

HDAPS: small update.

Robert Love
2 files changed, 13 insertions(+), 17 deletions(-)

– Handle dmi_system_check() elegantly, now that my bugfix is upstream.

– Add support for the X41 and R52.

– Cleanup some comments do I do not have to keep updating them with each new whitelisted laptop.

hpet: allow shared interrupts
HPET: make frequency calculations 32 bit safe
hpet-RTC: cache the comparator register
hpet-RTC: fix timer config register accesses
hpet: simplify initialization message

Clemens Ladisch
Many changes to a lot of files

Fixes and Updates to the High-Performance Event Timer codebase, about 60K in size.

ieee1394: delete legacy module aliases
ieee1394: fix for debug output
ieee1394: reorder activities after bus reset (fixes device detection)

Jody McIntyre
Many changes to a lot of files

Fixes and updates to the IEEE1394/Firewire-codebase, about 30K in size.

intelfb: extend partial support of i915G to include i915GM

Scott MacKenzie
3 files changed, 14 insertions(+), 5 deletions(-)

Add partial support for GMA900 within the i915GM chipset.

isicom: Firmware loading
isicom: Pci probing added
isicom: Type conversion and variables deletion

Jiri Slaby
Many changes to a lot of files

Editor: “Multi-Tech ISI multiport serial cards provide additional serial ports for remote access servers, multi-user hosts and PCs.”

md: convert ‘faulty’ and ‘in_sync’ fields to bits in ‘flags’ field
md: allow a manual resync with md
md: improvements to raid5 handling of read errors
md: make md on-disk bitmaps not host-endian
md: teach raid5 the difference between ‘check’ and ‘repair’.

Neil Brown & Suzanne Wood
Many changes to a lot of files

Updates & fixes to the Linux Software RAID layer, about 160K in size.

mm: implement swap prefetching
mm: implement-swap-prefetching-tweaks
mm: implement swap prefetching (more tweaks)

Con Kolivas
11 files changed, 574 insertions(+), 5 deletions(-) plus some tweaks

This patch implements swap prefetching when the vm is relatively idle and there is free ram available. The code is based on some early work by Thomas Schlichter.

This stores a list of swapped entries in a list ordered most recently used and a radix tree. It generates a low priority kernel thread running at nice 19 to do the prefetching at a later stage.

Once pages have been added to the swapped list, a timer is started, testing for conditions suitable to prefetch swap pages every 5 seconds. Suitable conditions are defined as lack of swapping out or in any pages, and no watermark tests failing. Significant amounts of dirtied ram and changes in free ram representing disk writes or reads also prevent prefetching.

It then checks that we have spare ram looking for at least 3* pages_high free per zone and if it succeeds that will prefetch pages from swap. The pages are prefetched in 128kb groups every 1 second until the vm is busy for the tests above, the watermarks fail to detect adequate free ram or the list is emptied. The pages are copied to swap cache and kept on backing store. This allows pressure on either physical ram or swap to readily find free pages without further I/O.

The amount prefetched in each group is configurable via the tunable in /proc/sys/vm/swap_prefetch. This is set to a value based on memory size. When laptop_mode is enabled it prefetches in ten times larger blocks to minimise the time spent reading.

In testing on modern PC hardware this results in wall-clock time activation of the firefox browser to speed up 5 fold after a worst case complete swap-out of the browser on an static web page.

Editors note:
Con Kolivas submitted his patch with swap prefetching disabled by default in the kernel config. Andrew submitted another patch, turning it on by default, with a single word in it’s comment: “Wimp.”

mm: batch updating mm_counters
mm: m68k kill stram swap
mm: move_page_tables by extents

Various authors
50 patches, total size about 500K

Updates and fixes to the Memory Management Subsystem,

EDAC: core EDAC support code
EDAC: drivers for AMD 76x and Intel E750x, E752x
EDAC: drivers for Intel i82860, i82875
EDAC: drivers for Radisys 82600

Alan Cox
Lots of changes, patches are about 130K in size.

(Editor: EDAC means “Error detection and correction”)

This is a subset of the bluesmoke project core code, stripped of the NMI work which isn’t ready to merge and some of the “interesting” proc functionality that needs reworking or just has no place in kernel. It requires no core kernel changes except the added scrub functions already posted.

The goal is to merge further functionality only after the core code is accepted and proven in the base kernel, and only at the point the upstream extras are really ready to merge.

New PowerPC 4xx on-chip ethernet controller driver

Eugene Surovegin
17 files changed, 4116 insertions(+), 2822 deletions(-)

This patch replaces current PowerPC 4xx EMAC driver with new, re-written from the scratch version. This patch is quite big (~234K) because there is virtualy 0% of common code between old and new version.

New driver uses NAPI, it solves stability problems under heavy packet load and low memory, corrects chip register access and fixes numerous small bugs I don’t even remember now.

This patch has been tested on all supported in 2.6 PPC 4xx boards. It’s been used in production for almost a year now on custom 4xx hardware.
PPC32 specific parts are already upstream.

Patch was acked by the current EMAC driver maintainer (Matt Porter). I will be maintaining this new version.

nvidiafb: Add flat panel dither support
nvidiafb: Fix absence of cursor in nvidiafb
nvidiafb: Fix mode setting & PPC support

Benjamin Herrenschmidt & Antonino A. Daplas
5 files changed, 163 insertions(+), 43 deletions(-)

– nvidiafb didn’t fully hook-up the code it borrowed from X for doing flat panel dithering (this is useful for 6 bits panels). This adds a driver option to force it, and by default “reads” the current value from the chip to get the firmware setting. It significantly improves the quality of images on the iMac G5 I have here (though the X driver doesn’t yet “read” the current value and defaults to 0, so you have to add Option “FBDither” “true” to your X config file to get that, I’ll try to fix to “read” the default unless specified asap).

– This patch fixes nvifiafb mode setting code to be closer to what the X driver does, which actually makes it work on the 5200FX I have access to. It also fix the routine that gets the EDID from Open Firmware on PPC, it was broken in various ways and would crash at boot. Compared to the patch I posted to linux-fbdev last week, this one just changes a printk to be closer to the other ones in the driver.

pcmcia: more ENE bridges
pcmcia: new IDs for serial_cs
pcmcia: update M8XX driver to cope with core changes
Fix pcmcia ds resume call
pcmcia/yenta: add support for more TI bridges
pcmcia/yenta: optimize interrupt handler

Dominik Brodowski & Richard Purdie
Lots of changes to a lot of files

Updates for the PCMCIA subsystem, about 70K in size.

ppc64: Add cpufreq support for SMU based G5
ppc64 boot: remove zlib
PPC64: Fix boot for some pre-POWER4 systems
ppc64: SMU driver update & i2c support
ppc64: Thermal control for SMU based machines
ppc64: Support retreiving missing SMU partitions

37 patches with a total size of about 500K

Lots of patches for the PPC64 Platform, including the new drivers for the Apple G5 System Management Unit (I2C, thermal control, fan control etc.)

reiser4: fix endianess
reiser4: fix list_splice() usage
reiser4: check NULL
reiser4: fix built_ptr()
reiser4: check NULL

Reiser4 Team around Hans Reiser
7 patches, about 140K in size

Reiser4 cleanups

Telecom Clock Driver for MPCBL0010 ATCA computer blade

Mark Gross
4 files changed, 914 insertions(+)