Linux: 2.6.16 Kernel Released

Submitted by Jeremy
on March 20, 2006 - 3:09pm

Linus Torvalds announced the release of the 2.6.16 Linux kernel. He noted, "not a lot of changes since -rc6, but there's various random one-liners here and there (a number of Coverity bugs found, for example), and there are small MIPS and PowerPC updates." You can download the latest kernel from your nearest Linux Kernel Archive mirror [story], and browse through all the changes using the 2.6 kernel's gitweb interface.


From: Linus Torvalds [email blocked]
To: Linux Kernel Mailing List [email blocked]
Subject: Linux v2.6.16
Date:	Sun, 19 Mar 2006 22:23:04 -0800 (PST)


Ok, it's being mirrored out right now, the git tree should already be all 
there, the tar-file and patches are still uploading.

Not a lot of changes since -rc6, but there's various random one-liners 
here and there (a number of Coverity bugs found, for example), and there 
are small MIPS and PowerPC updates.

Appended is the shortlog from 2.6.16-rc6, the full log (from 2.6.15) is on 
the web/ftp-sites. 

It looks like both Fedora and SuSE end up using a kernel that is pretty 
close to this 2.6.16 release, so let's all hope it's good. Give it a good 
testing, please,

		Linus

---
Adrian Bunk:
      [TG3] tg3_bus_string(): remove dead code
      SUNRPC: fix a NULL pointer dereference in net/sunrpc/clnt.c
      fs/namespace.c:dup_namespace(): fix a use after free

Al Viro:
      Fix ext2 readdir f_pos re-validation logic

Albrecht Dreß:
      [ARM] 3358/1: [S3C2410] add missing SPI DMA resources

Alessandro Zummo:
      [ARM] 3354/1: NAS100d: fix power led handling
      [ARM] 3355/1: NSLU2: remove propmt depends
      [ARM] 3350/1: Enable 1-wire on ARM

Alexey Kuznetsov:
      [NET]: Fix race condition in sk_wait_event().

Andi Kleen:
      x86-64: Fix up handling of non canonical user RIPs

Andrea Arcangeli:
      Remove obsolete CREDITS address

Andreas Herrmann:
      [SCSI] zfcp: correctly set this_id for hosts
      [SCSI] scsi_transport_fc: fix FC_HOST_NUM_ATTRS
      [SCSI] zfcp: fix device registration issues

Atsushi Nemoto:
      [MIPS] local_r4k_flush_cache_page fix

Ben Dooks:
      [ARM] 3363/1: [cleanup] process.c - fix warnings
      [ARM] 3364/1: [cleanup] warning fix - definitions for enable_hlt and disable_hlt
      [ARM] 3365/1: [cleanup] header for compat.c exported functions
      [ARM] 3362/1: [cleanup] - duplicate decleration of mem_fclk_21285

Benjamin Herrenschmidt:
      macintosh: correct AC Power info in /proc/pmu/info
      powerpc: enable NAP only on cpus who support it to avoid memory corruption

Brian Haley:
      [IPV6]: fix ipv6_saddr_score struct element

Catalin Marinas:
      [ARM] 3356/1: Workaround for the ARM1136 I-cache invalidation problem

Christoph Lameter:
      page migration: fail if page is in a vma flagged VM_LOCKED
      Page migration documentation update
      Consistent capabilites associated with MPOL_MOVE_ALL
      page migration: Fail with error if swap not setup
      time_interpolator: add __read_mostly
      fix race in pagevec_strip?

Dave Jones:
      [TUN]: Fix leak in tun_get_user()

Dave Kleikamp:
      JFS: Take logsync lock before testing mp->lsn

Dave Peterson:
      EDAC: disable sysfs interface

David Brownell:
      mtd_dataflash, fix block vs page erase

David S. Miller:
      [TCP]: Fix tcp_tso_should_defer() when limit>=65536
      e1000 endianness bugs

Dominik Brodowski:
      [SCSI] scsi: aha152x pcmcia driver needs spi transport

Eric Van Hensbergen:
      v9fs: fix overzealous dropping of dentry which breaks dcache

Eric W. Biederman:
      unshare: Use rcu_assign_pointer when setting sighand

GOTO Masanori:
      Fix sigaltstack corruption among cloned threads

Greg Smith:
      "s390: multiple subchannel sets support" fix

Gregor Maier:
      [NETFILTER]: Fix wrong option spelling in Makefile for CONFIG_BRIDGE_EBT_ULOG

Herbert Xu:
      [TCP]: Fix zero port problem in IPv6

Hong Liu:
      ieee80211: Fix QoS is not active problem

Hugh Dickins:
      fix free swap cache latency

Jesse Brandeburg:
      e100: fix eeh on pseries during ethtool -t

John Rose:
      powerpc: properly configure DDR/P5IOC children devs

Kevin Corry:
      dm stripe: Fix bounds

Linus Torvalds:
      Revert "x86-64: Fix up handling of non canonical user RIPs"
      Linux 2.6.16

Maneesh Soni:
      Plug kdump shutdown race window

Markus Rechberger:
      Fixed em28xx based system lockup

Matej Kupljen:
      [MIPS] Simple patch to power off DBAU1200

Matthew Wilcox:
      [SCSI] Add Brownie to blacklist

Michael Chan:
      [TG3]: 40-bit DMA workaround part 2

Michael Ellerman:
      powerpc: Clarify wording for CRASH_DUMP Kconfig option

Michael Hunold:
      Restore tuning capabilities in V4L2 MXB driver

Michael Krufky:
      Kconfig: swap VIDEO_CX88_ALSA and VIDEO_CX88_DVB

Michael Neuling:
      powerpc: RTC memory corruption

Nathan Scott:
      Fix a direct I/O locking issue revealed by the new mutex code.

Olaf Hering:
      powerpc: correct cacheflush loop in zImage
      powerpc/64: enable CONFIG_BLK_DEV_SL82C105
      powerpc: remove duplicate EXPORT_SYMBOLS

Oleg Nesterov:
      disable unshare(CLONE_VM) for now

Patrick McHardy:
      [NETFILTER]: nfnetlink_queue: fix possible NULL-ptr dereference
      [NET_SCHED]: act_api: fix skb leak in error path
      [XFRM]: Fix leak in ah6_input
      [NETLINK]: Fix use-after-free in netlink_recvmsg
      [TCP]: tcp_highspeed: fix AIMD table out-of-bounds access
      [IPV4/6]: Fix UFO error propagation
      [NETFILTER]: arp_tables: fix NULL pointer dereference

Paul Mackerras:
      powerpc: Disallow lparcfg being a module
      powerpc: Fix problem with time going backwards
      powerpc: update defconfigs

Pavel Machek:
      [ARM] 3357/1: enable frontlight on collie

Peter Staubach:
      nfsservctl(): remove user-triggerable printk

Ralf Baechle:
      Update MAINTAINERS entry for MIPS.
      [MIPS] Get rid of the IP22-specific code in arclib.
      [MIPS] SB1: Fix interrupt disable hazard.
      [MIPS] Work around bad code generation for <asm/io.h>.
      [MIPS] Protect more of timer_interrupt() by xtime_lock.
      [MIPS] Sibyte: Fix M_SCD_TIMER_INIT and M_SCD_TIMER_CNT wrong field width.
      [MIPS] Sibyte: Fix interrupt timer off by one bug.
      [MIPS] Sibyte: Fix race in sb1250_gettimeoffset().
      [MIPS] SB1: Check for -mno-sched-prolog if building corelis debug kernel.

Ralf Baechle DL5RB:
      [AX.25]: Fix potencial memory hole.

Roman Zippel:
      posix-timers: fix requeue accounting when signal is ignored

Russell King:
      [ARM] Fix muldi3.S
      [ARM] iwmmxt thread state alignment
      [ARM] Fix "thead" typo

Sam Ravnborg:
      kbuild: fix buffer overflow in modpost

Scott Bardone:
      [netdrvr] fix array overflows in Chelsio driver

Sergei Shtylylov:
      [MIPS] Fix DBAu1550 software power off.

Srivatsa Vaddagiri:
      x86: check for online cpus before bringing them up

Tejun Heo:
      ahci: fix NULL pointer dereference detected by Coverity

Trond Myklebust:
      NFS: Fix a potential panic in O_DIRECT
      NFSv4: fix mount segfault on errors returned that are < -1000
      SUNRPC: Fix potential deadlock in RPC code
      NLM: Ensure we do not Oops in the case of an unlock

Zhu Yi:
      ieee80211: Fix CCMP decryption problem when QoS is enabled


Related Links:

little

Anonymous (not verified)
on
March 22, 2006 - 5:04am

Can anyone with vanila kernel perform little test for me?

$ RAM="put here amount of ram you have in megabytes"
$ dd if=/dev/zero of=./tmp01 count=$[2*$RAM] bs=$[1024*1024]
$ sync
$ time cp ./tmp01 ./tmp02

this is little test for the behaviour of page cache. on *BSD it take some time. on wind0ze it is somewhat slower. on normal linux the test takes *ages* and make system unusable when cp reaches the middle of the test file.

P.S. the test presumes that you do not have sparse files forced on file system.

Is this really a test of the

on
March 22, 2006 - 8:21am

Is this really a test of the page cache?
cp, is that the same source code in bsd as in linux?

RE:little

Anonymous (not verified)
on
March 22, 2006 - 8:35am

HERE, i'm running 2.6.16

real 1m46.339s
user 0m0.066s
sys 0m14.405s

looks good!

Anonymous/00001 (not verified)
on
March 22, 2006 - 9:45am

that looks good!

2.2.x, 2.4.x & early 2.6.x were taking very very long time to do that, also more or less locking up system completely.

P.S. important question: how much swap do you have?

RE: looks good!

Anonymous (not verified)
on
March 22, 2006 - 12:09pm

real 1m50.861s
user 0m0.047s
sys 0m15.359s

Swap is 450Mb

that's _realy_ slow! with la

benchman (not verified)
on
March 22, 2006 - 10:45am

that's _realy_ slow!
with latest wanila kernel I've got:

real 0m0.007s
user 0m0.004s
sys 0m0.000s

?

Anonymous (not verified)
on
March 22, 2006 - 10:50am

dd sets RAM in byte on default.

!

Anonymous (not verified)
on
March 22, 2006 - 10:51am

Gna, I mean dd sets sizes in bytes on default. ;)

2.6.16 kernel real 2m47.62

Aperculum (not verified)
on
March 22, 2006 - 12:16pm

2.6.16 kernel

real 2m47.628s
user 0m0.198s
sys 0m16.423s

Specs? The time is irrelevan

on
March 22, 2006 - 2:18pm

Specs? The time is irrelevant w/out knowing type of HD, type of filesystem, and size of RAM.

Here you go

Anonymous (not verified)
on
March 22, 2006 - 2:39pm

real 1m50.861s
user 0m0.047s
sys 0m15.359s

Swap is 450Mb

AthlonXP 2600+
1Gb ram
nForce2
IDE:Maxtor 80Gb UDMA 133/7200 rpm
Reiserfs
Slackware 10.2

2.6.16 kernel real 2m47.62

Aperculum (not verified)
on
March 23, 2006 - 11:49am

2.6.16 kernel

real 2m47.628s
user 0m0.198s
sys 0m16.423s

my system is

AMD Athlon XP 2800+(barton)
1 gig of ram
00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
IDE:Maxtor 80Gb UDMA 133/7200 rpm
ext3

Tried this on my 2.6.10 Ubuntu box.

on
March 22, 2006 - 2:17pm
$ dd if=/dev/zero of=tmp00 count=2048 bs=1048576
2048+0 records in
2048+0 records out
2147483648 bytes transferred in 36.639371 seconds (58611368 bytes/sec)
$ sync
$ time cp ./tmp00 ./tmp01

real    1m23.764s
user    0m0.277s
sys     0m13.604s

I ran this on my Ubuntu 5.4 system with Ubuntu's stock 2.6.10 kernel. I have 1GB RAM, a single Opteron 246 (for now), and a 3x300GB SATA software RAID-5 setup with an ext3 filesystem. Judging by "vmstat 1" output, the copy was very well behaved and didn't force anything into swap. Machine felt responsive the whole time. I didn't even notice this copy was running.

For fun, I also ran it on an old RedHat 7.3 machine, with the RH's stock 2.4.18 kernel. That machine is a 1.2GHz Duron with 256MB RAM and an aging 20G IDE drive. Here's how it fared:

$ time dd if=/dev/zero of=tmp00 count=512 bs=1048576
512+0 records in
512+0 records out

real    0m24.129s
user    0m0.010s
sys     0m5.050s
$ sync
$ time cp ./tmp00 ./tmp01

real    1m13.585s
user    0m0.130s
sys     0m9.440s

Again, vmstat showed pretty tame VM performance, with nothing being pushed to swap. Interactively, the computer felt *slightly* laggy initially when logging in over an ssh connection, but nothing too major.

I grabbed Mr. Peabody and hopped in the Wayback Machine, and ran this same test on my Pentium-60 (yes, sixty, not six hundred) running RH 7.3, Linux 2.4.18, 32MB RAM and a 1GB ancient hard drive...

$ time dd if=/dev/zero of=tmp00 count=64 bs=1048576
64+0 records in
64+0 records out

real    0m21.772s
user    0m0.020s
sys     0m17.960s
$ sync
$ time cp ./tmp00 ./tmp01

real    0m47.830s
user    0m0.620s
sys     0m37.940s

I don't have any 2.2 kernel based machines to try, but I think I have to call shenanigans on "All of 2.4 sucked."

Linux 2.6.14.2 1.5GB ram 1

Anonymous (not verified)
on
March 22, 2006 - 2:51pm

Linux 2.6.14.2
1.5GB ram
1GB swap
P4 2.6 (HT on)

3000+0 records in
3000+0 records out
3145728000 bytes (3,1 GB) copied, 56,8021 seconds, 55,4 MB/s

real    2m0.303s
user    0m0.476s
sys     0m12.828s

System was a bit loaded during test.

Compare with... what?

Anonymous (not verified)
on
March 22, 2006 - 4:56pm

Can anyone with vanila kernel perform little test for me?

$ RAM="put here amount of ram you have in megabytes"
$ dd if=/dev/zero of=./tmp01 count=$[2*$RAM] bs=$[1024*1024]

With GNU dd you can use suffixes like M for megabytes:
$ dd if=/dev/zero of=./tmp01 count=$[2*$RAM] bs=1M

this is little test for the behaviour of page cache. on *BSD it take some time

It would be nice if you had provided some results from these BSDs then.

fxxk the test

Anonymous (not verified)
on
March 26, 2006 - 5:25am

I think this is not the test of the page cache,but the test of the filesystem's ,disk's and the inod allocateing speed.

The bsd use ufs soft update only merge the inod later,so time cp means nothing for bsd.

I think the bsd test using the cheating data,because it costed only 0.008s in the sys and only 2% 's cpu,but the linux cost 0.8s and 50%'s cpu.while the former yet took longer time waiting experience than linux

the default ext3 sync the journal every 5s , so this test is a butt

2.6.16.x will be a long-living kernel series

on
March 23, 2006 - 1:03pm

This is great news from Adrian Bunk. I hope the kernel will gain more stability by maintaining it longer. If this succeeds, I will certainly have my servers on his tree.

Using 2.6.15.6 config file I

Anonymous (not verified)
on
March 26, 2006 - 4:43pm

Using 2.6.15.6 config file I have no iptables. I look in /lib/modules/2.6.16/kernel/net/ipv4/netfilter and I seem to be missing a lot of modules. I always use my old config file to make my kernels and never have this problem. I also use a script so I know I did the same thing I do every other time.

Is there a reason my old 2.6.15.6 config file doesn't work with this new kernel?

Well I just had to turn on a

Anonymous (not verified)
on
March 26, 2006 - 5:46pm

Well I just had to turn on a bunch of iptables stuff. Don't know why the settings didn't transfer from my old config file:

Another problem: Logitech Quickcam module doesn't compile (qc-usb-0.6.3.)

gcc -m32 -Wp,-MD,/usr/src/modules/qc-usb-0.6.3/.qc-driver.o.d -nostdinc -isystem /usr/lib/gcc/i486-slackware-linux/3.4.5/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -Os -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=i686 -mtune=pentium4 -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement -DNOKERNEL -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(qc_driver)" -D"KBUILD_MODNAME=KBUILD_STR(quickcam)" -c -o /usr/src/modules/qc-usb-0.6.3/qc-driver.o /usr/src/modules/qc-usb-0.6.3/qc-driver.c
/usr/src/modules/qc-usb-0.6.3/qc-driver.c:3031: error: unknown field `owner' specified in initializer
/usr/src/modules/qc-usb-0.6.3/qc-driver.c:3031: warning: initialization from incompatible pointer type
make[2]: *** [/usr/src/modules/qc-usb-0.6.3/qc-driver.o] Error 1
make[1]: *** [_module_/usr/src/modules/qc-usb-0.6.3] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.16'

This has always worked on previous kernels:
I think the problem is here:
/usr/src/modules/qc-usb-0.6.3/qc-driver.c

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
owner: THIS_MODULE,
#endif

If I comment this out then it works. Why do I have to do this with kernel-2.6.16?

quickcam compiling issue

universpace (not verified)
on
April 4, 2006 - 3:19am

I also had the same error while compiling the quick cam driver..
but additionally, when i do a modprobe quickcam , i get
FATAL: Error inserting quickcam (/lib/modules/2.6.16-1.2084_FC5/misc/quickcam.ko): Invalid argument

why is this so?

FATAL: Error inserting quickc

Anonymous (not verified)
on
April 9, 2006 - 7:29pm

FATAL: Error inserting quickcam (/lib/modules/2.6.16-1.2084_FC5/misc/quickcam.ko): Invalid argument
Try looking through /var/log/messages:

grep quick /var/log/messages

Apr 9 09:28:35 spongebob kernel: quickcam: QuickCam USB camera found (driver version QuickCam USB 0.6.3 $Date: 2005/04/15 19:32:49 $)
Apr 9 09:28:35 spongebob kernel: quickcam: Kernel:2.6.16.2 bus:2 class:FF subclass:FF vendor:046D product:0870
Apr 9 09:28:35 spongebob kernel: quickcam: Sensor HDCS-1020 detected
Apr 9 09:28:35 spongebob kernel: quickcam: Registered device: /dev/video1
Apr 9 09:28:35 spongebob kernel: usbcore: registered new driver quickcam

NOTE: Still getting the same error, with 2.6.16.2. Commenting out the lines in qc-driver.c allows me to compile the driver though.

zaptel compiling error

Thad (not verified)
on
April 5, 2006 - 5:05pm

I ran into something similar with the wcusb.c file and did what you did. Not sure what caused it though...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.