URN Logo
UNIX Resources » Linux » China Linux Forum » 业界新闻与评论 » 29 » 好消息,内核2.6.0发布了
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  TI专版
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
好消息,内核2.6.0发布了
好消息,内核2.6.0发布了 - kraml [2003-12-18 12:12 | 17,239 byte(s)]
 
linux kernel 2.6.30 2009-05-20 05:27 UTC - fei [2009-06-10 13:39 | 65,535 byte(s)]
 
Linux之父:2.6.30内核将带来“新世界秩序” - fei [2009-06-15 12:52 | 1,477 byte(s)]
 
linux kernel 2.6.29 2009-03-23 23:30 UTC - fei [2009-03-24 08:51 | 64,633 byte(s)]
 
linux kernel 2.6.28 2008-12-24 23:45 UTC - fei [2008-12-25 09:02 | 65,535 byte(s)]
 
linux kernel 2.6.27 2008-10-10 00:00 UTC - fei [2008-10-10 09:07 | 59,524 byte(s)]
 
linux kernel 2.6.26 2008-07-13 22:44 UTC - fei [2008-07-14 07:57 | 57,078 byte(s)]
 
linux kernel 2.6.25 2008-04-17 03:13 UTC - fei [2008-04-17 12:35 | 54,429 byte(s)]
 
linux kernel 2.6.24 2008-01-24 23:18 UTC - fei [2008-01-25 09:15 | 65,535 byte(s)]
 
linux kernel 2.6.23 2007-10-09 20:50 UTC - fei [2007-10-10 06:57 | 65,535 byte(s)]
 
linux kernel 2.6.22 2007-07-08 23:49 UTC - fei [2007-07-09 10:18 | 57,944 byte(s)]
 
Linux kernel 2.6.21 2007-04-26 - fei [2007-04-26 14:00 | 44,634 byte(s)]
 
Linux kernel 2.6.20 2007-02-04 - fei [2007-02-05 07:15 | 42,009 byte(s)]
 
Linux kernel 2.6.19 2006-11-30 - fei [2006-11-30 08:19 | 401 byte(s)]
 
Linux kernel 2.6.18 2006-09-20 03:57 UTC - fei [2006-09-20 12:49 | 368 byte(s)]
 
Linux Kernel 2.6.17 2006-06-18 02:11 - fei [2006-06-27 10:28 | 6,428 byte(s)]
 
2006-03-20 06:23 UTC 2.6.16 - fei [2006-03-20 15:13 | 407 byte(s)]
 
多项更新 Linux新内核2.6.16发布 - fei [2006-03-27 20:49 | 625 byte(s)]
 
Linux内核2.6.16版发布 支持Cell芯片 - fei [2006-03-27 20:48 | 1,676 byte(s)]
 
2.6.15 2006-01-03 05:04 UTC - fei [2006-01-10 17:12 | 407 byte(s)]
 
2005-10-28 00:27 UTC 2.6.14 - fei [2005-10-28 11:17 | 436 byte(s)]
 
2005-08-29 00:03 UTC 2.6.13 - fei [2005-08-29 10:46 | 384 byte(s)]
 
Linux发明者推稳定升级版2.6.13 Linux内核 - fei [2005-09-01 15:42 | 1,159 byte(s)]
 
2005-06-17 22:04 UTC 2.6.12 - fei [2005-06-20 08:09 | 1,308 byte(s)]
 
2.6.11 2005-03-02 08:00 UTC - fei [2005-03-02 21:49 | 404 byte(s)]
 
Kernel 2.6.10 2004-12-24 22:38 UTC - fei [2004-12-25 12:49 | 384 byte(s)]
 
2.6.9 2004-10-18 - fei [2004-10-19 13:52 | 380 byte(s)]
 
内核2.6.8发布.2004-08-14 06:10 UTC - fei [2004-08-14 22:12 | 380 byte(s)]
 
2.6.8.1 - minifat [2004-08-15 13:26 | 98 byte(s)]
 
Linux kernel 又出了stupid 错误! - vim [2004-08-15 16:24 | 400 byte(s)]
 
Re: Linux kernel 又出了stupid 错误! - Viperii [2004-08-16 14:03 | 70 byte(s)]
 
Re: Linux kernel 又出了stupid 错误! - pengchengzou [2004-08-16 11:30 | 1,263 byte(s)]
 
三个版本全更新了 - gxcooo [2004-08-15 18:56 | 350 byte(s)]
 
内核2.6.7发布.2004-06-16 06:02 UTC - fei [2004-06-16 15:36 | 404 byte(s)]
 
内核2.6.6发布.2004-05-10 03:18 UTC - fei [2004-05-10 16:11 | 380 byte(s)]
 
 
 
 
2.6.5发布。2004-04-04 04:17 UTC - fei [2004-04-04 14:24 | 403 byte(s)]
 
内核2.6.4发布。2004-03-11 03:16 UTC - fei [2004-03-11 17:04 | 380 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - gosirius [2004-02-18 21:07 | 5 byte(s)]
 
内核2.6.2发布.2004-02-04 04:02 UTC - fei [2004-02-04 19:12 | 380 byte(s)]
 
Re: 内核2.6.3发布.2004-02-18 04:36 UTC - WC_CLF [2004-02-18 17:06 | 668 byte(s)]
 
内核2.6.1发布 2004-01-09 07:31 UTC - fei [2004-01-13 09:25 | 380 byte(s)]
 
Re: 内核2.6.1发布 2004-01-09 07:31 UTC - ccie [2004-01-13 09:30 | 46 byte(s)]
 
Re: 内核2.6.1发布 2004-01-09 07:31 UTC - wolfop [2004-02-05 14:08 | 29 byte(s)]
 
Re: 内核2.6.1发布 2004-01-09 07:31 UTC - grip2 [2004-01-13 10:01 | 12 byte(s)]
 
历经三年Linux终于推出2.6.0版本新内核 - fei [2003-12-28 14:08 | 2,065 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - jj_xiong [2003-12-21 09:35 | 10 byte(s)]
 
下载网址 - don king [2003-12-22 06:16 | 189 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - clia [2003-12-19 20:53 | 48 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - Afar.Dong [2003-12-19 11:27 | 83 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - kiwen [2003-12-19 11:35 | 32 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - shibiny [2003-12-19 10:18 | 10 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - million [2003-12-18 16:56 | 16 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - Gusd [2003-12-18 13:55 | 6 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - linuxnow [2003-12-18 13:22 | 150 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - heligb [2003-12-18 12:18 | 9 byte(s)]
 
Re: 好消息,内核2.6.0发布了 - kraml [2003-12-18 12:25 | 58 byte(s)]
 
Subject: 好消息,内核2.6.0发布了
Author: kraml    Posted: 2003-12-18 12:12    Length: 17,239 byte(s)
[Original] [Print] [Top]
刚才看kernel.org都还是2.6.0-test11,等看完-mm的announce之后,回头刷新,发现2.6.0居然发布了,真是个好消息
下面是changelog
Summary of changes from v2.6.0-test11 to v2.6.0
============================================

<hirofumi@mail.parknet.co.jp>
[PATCH] Missing initialization of /proc/net/tcp seq_file

We need to initialize st->state in tcp_seq_start(). Otherwise
tcp_seq_stop() is run with previous st->state, and it calls the unneeded
unlock etc, causing a kernel crash.

<mingo@elte.hu>
[PATCH] Fix lost wakeups problem

When doing sync wakeups we must not skip the notification of other cpus
if the task is not on this runqueue.

<torvalds@home.osdl.org>
Fix x86 kernel page fault error codes

<torvalds@home.osdl.org>
Fix ide-scsi.c uninitialized variable

<yoshfuji@linux-ipv6.org>
[IPV6]: Fix ipv4 mapped address calculation in udpv6_sendmsg().

<laforge@netfilter.org>
[NETFILTER]: Sanitize ip_ct_tcp_timeout_close_wait value, from 2.4.x

<pavlin@icir.org>
[RTNETLINK]: Add RTPROT_XORP.

<mingo@elte.hu>
[PATCH] Fix /proc access to dead thread group list oops

The pid_alive() check within the loop is incorrect. If we are within
the tasklist lock and the thread group leader is valid then the thread
chain will be fully intact.

Instead, the check should be _outside_ the loop, since if the group
leader no longer exists, the whole list is gone and we must not try
to access it.

Move the check around, and add comment.

Bug-hunting and fix by Srivatsa Vaddagiri

<axboe@suse.de>
[PATCH] fix broken x86_64 rdtscll

The scheduler is completed b0rked on x86_64, and I finally found out
why. sched_clock() always returned 0, because rdtscll() always returned
0. The 'a' in the macro doesn't agree with the 'a' in the function,
yippe :-)

This is a show stopper for x86_64.

<khali@linux-fr.org>
[PATCH] I2C: fix i2c_smbus_write_byte() for i2c-nforce2

This patch fixes i2c_smbus_write_byte() being broken for i2c-nforce2.
This causes trouble when that module is used together with eeprom (which
is also in 2.6). We have had three user reports about the problem.

Credits go to Mark D. Studebaker for finding and fixing the problem.

<drepper@redhat.com>
[PATCH] Fix 'noexec' behaviour

We should not allow mmap() with PROT_EXEC on mounts marked "noexec",
since otherwise there is no way for user-supplied executable loaders
(like ld.so and emulator environments) to properly honour the
"noexec"ness of the target.

<davem@nuts.ninka.net>
[NETFILTER]: In conntrack, do not fragment TSO packets by accident.

<ja@ssi.bg>
[BRIDGE]: Provide correct TOS value to IPv4 routing.

<jgarzik@pobox.com>
[PATCH] fix use-after-free in libata

Fixes oops some were seeing on module unload.

Caught by Jon Burgess.

<jgarzik@pobox.com>
[PATCH] fix oops on unload in pcnet32

The driver was calling pci_unregister_driver for each _device_, and then
again at the end of the module unload routine. Remove the call that's
inside the loop, pci_unregister_driver should only be called once.

Caught by Don Fry (and many others)

<jgarzik@pobox.com>
[PATCH] remove manual driver poisoning of net_device

From: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>

Such poisoning can cause oopses either because the refcount is not
zero when the poisoning occurs, or due to kernel debugging options
being enabled.

<torvalds@home.osdl.org>
Fix the PROT_EXEC breakage on anonymous mmap.

Clean up the tests while at it.

<jgarzik@pobox.com>
[PATCH] wireless airo oops fix

From Javier Achirica:

Delay MIC activation to prevent Oops

<davem@nuts.ninka.net>
[PKT_SCHED]: Do not dereference the special pointer value 'HTB_DIRECT'.

Based upon a patch from devik.

<devik@cdi.cz>
[PKT_SCHED]: In HTB, filters must be destroyed before the classes.

<James_McMechan@hotmail.com>
[PATCH] tmpfs oops fix

The problem was that the cursor was in the list being walked, and when
the pointer pointed to the cursor the list_del/list_add_tail pair would
oops trying to find the entry pointed to by the prev pointer of the
deleted cursor element.

The solution I found was to move the list_del earlier, before the
beginning of the list walk. since it is not used during the list walk and
should not count in the list enumeration it can be deleted, then the
list pointer cannot point to it so it can be added safely with the
list_add_tail without oopsing, and everything works as expected.

I am unable to oops this version with any of my test programs.

Patch acked by Al Viro.

<greg@kroah.com>
[PATCH] USB: register usb-serial ports in the proper place in sysfs

They should be bound to the interface the driver is attached to, not
the device.

<david-b@pacbell.net>
[PATCH] USB: fix remove device after set_configuration

If a device can't be configured, the current test9 code forgets
to clean it out of sysfs. This resolves that issue, so the retry
in usb_new_device() stands a chance of working.

The enumeration code still doesn't handle such errors well, but
at least this way that hub port can be used for another device.

<greg@kroah.com>
[PATCH] USB: fix race with hub devices disconnecting while stuff is still happening to them.

<acme@conectiva.com.br>
[IPV6]: Fix TCP socket leak.

TCP IPV6 ->hash() method should not grab a socket reference.

<axboe@suse.de>
[PATCH] scsi_ioctl memcpy'ing user address

James reported a bug in scsi_ioctl.c where it mem copies a user pointer
instead of using copy_from_user(). I inadvertently introduced this one
when getting rid of CDROM_SEND_PACKET. Here's a trivial patch to fix it.

<mdharm-usb@one-eyed-alien.net>
[PATCH] USB storage: fix for jumpshot and datafab devices

This patch fixes some obvious errors in the jumpshot and datafab drivers.

This should close out Bugzilla bug #1408

> Date: Mon, 1 Dec 2003 12:14:53 -0500 (EST)
> From: Alan Stern <stern@rowland.harvard.edu>
> Subject: Patch from Eduard Hasenleithner
> To: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
> cc: USB Storage List <usb-storage@one-eyed-alien.net>
>
> Matt:
>
> Did you see this patch? It was posted to the usb-development mailing list
> about a week ago, before I started making all my changes. It is clearly
> correct and necessary.
>
> Alan Stern

<trini@kernel.crashing.org>
[PATCH] USB: mark the scanner driver as obsolete

On Mon, Dec 01, 2003 at 11:21:58AM -0800, Greg KH wrote:
> Can't you use xsane without the scanner kernel driver? I thought the
> latest versions used libusb/usbfs to talk directly to the hardware.
> Because of this, the USB scanner driver is marked to be removed from the
> kernel sometime in the near future.

After a bit of mucking around (and possibly finding a bug with debian's
libusb/xsane/hotplug interaction, nothing seems to run
/etc/hotplug/usb/libusbscanner and thus only root can scan, anyone whose
got this working please let me know), the problem does not exist if I
only use libusb xsane.

How about the following:

<oliver@neukum.org>
[PATCH] USB: fix sleping in interrupt bug in auerswald driver

this fixes two instances of GFP_KERNEL from completion handlers.

<oliver@neukum.org>
[PATCH] USB: fix race with signal delivery in usbfs

apart from locking bugs, there are other races. This fixes one with
signal delivery. The signal should be delivered _before_ the reciever
is woken.

<stern@rowland.harvard.edu>
[PATCH] USB: fix bug not setting device state following usb_device_reset()

<herbert@gondor.apana.org.au>
[PATCH] USB: Fix connect/disconnect race

This patch was integrated by you in 2.4 six months ago. Unfortunately
it never got into 2.5. Without it you can end up with crashes such
as http://bugs.debian.org/218670

<greg@kroah.com>
[PATCH] USB: fix bug for multiple opens on ttyUSB devices.

This patch fixes the bug where running ppp over a ttyUSB device would fail.

<arvidjaar@mail.ru>
[PATCH] USB: prevent catch-all USB aliases in modules.alias

visor.c defines one empty slot in USB ids table that can be filled in at
runtime using module parameters. file2alias generates catch-all alias for it:

alias usb:v*p*dl*dh*dc*dsc*dp*ic*isc*ip* visor

patch adds the same sanity check as in depmod to scripts/file2alias.

<greg@kroah.com>
kobject: fix bug where a parent could be deleted before a child device.

<torvalds@home.osdl.org>
Fix subtle bug in "finish_wait()", which can cause kernel stack
corruption on SMP because of another CPU still accessing a waitqueue
even after it was de-allocated.

Use a careful version of the list emptiness check to make sure we
don't de-allocate the stack frame before the waitqueue is all done.

<axboe@suse.de>
[PATCH] no bio unmap on cdb copy failure

The previous scsi_ioctl.c patch didn't cleanup the buffer/bio in the
error case.

Fix it by copying the command data earlier.

<l.s.r@web.de>
[PATCH] HPFS: missing lock_kernel() in hpfs_readdir()

In 2.5.x, the BKL was pushed from vfs_readdir() into the filesystem
specific functions. But only the unlock_kernel() made it into the HPFS
code, lock_kernel() got lost on the way. This rendered the filesystem
unusable.

This adds the missing lock_kernel(). It's been tested by Timo Maier who
also reported the problem earlier today.

<torvalds@home.osdl.org>
More subtle SMP bugs in prepare_to_wait()/finish_wait().

This time we have a SMP memory ordering issue in prepare_to_wait(),
where we really need to make sure that subsequent tests for the
event we are waiting for can not migrate up to before the wait
queue has been set up.

<torvalds@home.osdl.org>
Fix thread group leader zombie leak

Petr Vandrovec noticed a problem where the thread group leader
would not be properly reaped if the parent of the thread group
was ignoring SIGCHLD, and the thread group leader had exited
before the last sub-thread.

Fixed by Ingo Molnar.

<neilb@cse.unsw.edu.au>
[PATCH] Fix possible bio corruption with RAID5

1/ make sure raid5 doesn't try to handle multiple overlaping
requests at the same time as this would confuse things badly.
Currently it justs BUGs if this is attempted.
2/ Fix a possible data-loss-on-write problem. If two or
more bio's that write to the same page are processed at the
same time, only the first was actually commited to storage.
3/ Fix a use-after-free bug. raid5 keeps the bio's it is given
in linked lists when more than one bio touch a single page.
In some cases the tail of this list can be freed, and
the current test for 'are we at the end' isn't reliable.
This patch strengths the test to make it reliable.

<axboe@suse.de>
[PATCH] Fix IDE bus reset and DMA disable when reading blank DVD-R

From Jon Burgess:

There is a problems with blank DVD media using the ide-cd driver.

When we attempt to read the blank disk, the drive responds to the read
request by returning a "blank media" error. The kernel doesn't have
any special case handling for this sense value and retries the request
a couple of times, then gives up and does a bus reset and disables DMA
to the device.

Which obviously doesn't help the situation.

The sense key value of 8 isn't listed in ide-cd.h, but it is listed in
scsi.h as a "BLANK_CHECK" error.

This trivial patch treats this error condition as a reason to abort
the request. This behaviour is the same as what we do with a blank CD-R.

It looks like the same fix might be desired for 2.4 as well, although
is perhaps not so important since scsi-ide is normally used instead.

<axboe@suse.de>
[PATCH] CDROM_SEND_PACKET bug

I just found Yet Another Bug in scsi_ioctl - CDROM_SEND_PACKET puts a
kernel pointer in hdr->cmdp, where sg_io() expects to find user address.
This worked up until recently because of the memcpy bug, but now it
doesn't because we do the proper copy_from_user().

This fix undoes the user copy code from sg_io, and instead makes the
SG_IO ioctl copy it locally. This makes SG_IO and CDROM_SEND_PACKET
agree on the calling convention, and everybody is happy.

I've tested that both

cdrecord -dev=/dev/hdc -inq

and

cdrecord -dev=ATAPI:/dev/hdc -inq

works now. The former will use SG_IO, the latter CDROM_SEND_PACKET (and
incidentally would work in both 2.4 and 2.6, if it wasn't for
CDROM_SEND_PACKET sucking badly in 2.4).

<jes@trained-monkey.org>
[PATCH] qla1280 crash fix in error handling

This fixes a bug in the qla1280 driver where it would leave a pointer to
an on the stack completion event in a command structure if
qla1280_mailbox_command fails. The result is that the interrupt handler
later tries to complete() garbage on the stack. The mailbox command can
fail if a device on the bus decides to lock up etc.

<torvalds@home.osdl.org>
Linux 2.6.0


----

"最好的设计不是再也没有什么东西可以添加了,而是再也没有什么东西可以去掉"
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: heligb    Posted: 2003-12-18 12:18    Length: 9 byte(s)
[Original] [Print] [Top]
好消息啊!
----

上海对保险感兴趣的联系我,免费专业寿险咨询。

[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: kraml    Posted: 2003-12-18 12:25    Length: 58 byte(s)
[Original] [Print] [Top]
哈哈,偶居然比osnews.com还要早抢到,看来有去做八卦的潜质啊
----

"最好的设计不是再也没有什么东西可以添加了,而是再也没有什么东西可以去掉"
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: linuxnow    Posted: 2003-12-18 13:22    Length: 150 byte(s)
[Original] [Print] [Top]
我也看到了,正要发,被你抢先了!
linux-2.6.0.tar.gz 17-Dec-2003 19:27 40M
压缩包有40M哦,那边的17号是这边的18号吧
----
时间就是金钱,效率就是生命
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: Gusd    Posted: 2003-12-18 13:55    Length: 6 byte(s)
[Original] [Print] [Top]
yeah !
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: million    Posted: 2003-12-18 16:56    Length: 16 byte(s)
[Original] [Print] [Top]
利好消息,真棒!
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: shibiny    Posted: 2003-12-19 10:18    Length: 10 byte(s)
[Original] [Print] [Top]
very good!
----
临渊不如结网!
do it instead of expecting it !
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: Afar.Dong    Posted: 2003-12-19 11:27    Length: 83 byte(s)
[Original] [Print] [Top]
好消息,顶一下。

kraml,好久不见了,身体都好啊?我很崇拜你的:)
----
no money,no 前途,no good
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: kiwen    Posted: 2003-12-19 11:35    Length: 32 byte(s)
[Original] [Print] [Top]
big shuai
我号崇拜你啊~
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: clia    Posted: 2003-12-19 20:53    Length: 48 byte(s)
[Original] [Print] [Top]
真是让人振奋的消息啊!
好想尝试一下啊!
----
剑寒因心冷,冰雪不留痕。
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: jj_xiong    Posted: 2003-12-21 09:35    Length: 10 byte(s)
[Original] [Print] [Top]
哪里有下载
[Original] [Print] [Top]
Subject: 下载网址
Author: don king    Posted: 2003-12-22 06:16    Length: 189 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.0.tar.bz2
----
海外浪子
[Original] [Print] [Top]
Subject: 历经三年Linux终于推出2.6.0版本新内核
Author: fei    Posted: 2003-12-28 14:08    Length: 2,065 byte(s)
[Original] [Print] [Top]
ChinaByte 12月27日消息 IT咨询公司Robert Frances Group将在明年1月发表的一项研究显示,SCO集团对IBM的诉讼以及对其它公司发出的新的警告并没有减缓开源软件操作系统的应用。

  这家公司的主要研究人员Evan Bauer表示,刚刚完成的对15家公司进行的有关Linux应用的调查表明,节省开支和GPL许可证协议胜过了对SCO生称的Linux的部分内容侵犯了版
权的担心。

  他说,接受调查的公司没有一家认为他们将承担某种法律责任。这项调查询问这些公司,SCO的法律诉讼是否将影响他们应用Linux的计划。

  除了SCO起诉IBM,指控IBM将其Unix系统中具有版权的代码应用于开源软件操作系统之外,IBM对SCO集团30亿美元的索赔要求也提出了反诉。Red Hat今年8月也对SCO集团提起了正式诉讼,以便表明它没有侵犯SCO的知识产权。

  在接受调查的公司中,有一半的公司向其法律部门就这个问题可能产生的风险进行了咨询。例如,如果法院支持SCO集团的诉讼,各个公司是不是要向SCO支付许可证费?

  Bauer称,许多公司认为,它们将绝对受到GPL许可证协议的保护。这项许可证协议规定,开源软件操作系统及其源代码可以自由拷贝、发布和修改。接受调查的公司包括了制造、零售、金融服务和大学等具有代表性的行业。

  Bauer表示,这次调查还询问了有关采用Linux的投资回报问题,以及法律问题是否会影响Linux在其IT环境中的应用等问题。

  一些分析人士警告说,IBM决定在法院解决它与SCO之间的法律纠纷之前不为客户免除责任,会影响Linux在大企业中的应用。但是,这次调查的结果却提供了相反的观点。接受调查的公司表示,IBM/SCO的法律纠纷可能产生的“大冷风”算不了什么。

  年销售额达154亿美元的Federated百货公司副总裁Dudley表示,这个法律纠纷到目前为止还没有真正成为影响该公司实施Linux战略的因素。他说,同许多公司一样,我们将继续积极地实施节省开支的方针。

  至少有5家接受调查的公司不愿意对他们以前和现在是否考虑使用Linux发表评论。如果是这样的话,SCO/IBM的法律纠纷已经减缓了他们对Linux的应用。

  这项调查的结论是,企业倾向于认为,SCO/IBM之间的法律纠纷只是厂商之间的纠纷,他们不会因为使用Linux而承担法律责任。他们无意伤害SCO集团,因此对IBM的诉讼不会扩大到他们身上。(完)
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: 内核2.6.1发布 2004-01-09 07:31 UTC
Author: fei    Posted: 2004-01-13 09:25    Length: 380 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.1.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.1
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: Re: 内核2.6.1发布 2004-01-09 07:31 UTC
Author: ccie    Posted: 2004-01-13 09:30    Length: 46 byte(s)
[Original] [Print] [Top]
2.6的内核发展怎么这么快?不会是为了patch漏洞吧
----
爱上一个人是一刹那的事,忘记一个人却要用一生的时间!
[Original] [Print] [Top]
Subject: Re: 内核2.6.1发布 2004-01-09 07:31 UTC
Author: grip2    Posted: 2004-01-13 10:01    Length: 12 byte(s)
[Original] [Print] [Top]
主要就是为此
----
I want to believe.
[Original] [Print] [Top]
Subject: 内核2.6.2发布.2004-02-04 04:02 UTC
Author: fei    Posted: 2004-02-04 19:12    Length: 380 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.2.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.2
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: Re: 内核2.6.1发布 2004-01-09 07:31 UTC
Author: wolfop    Posted: 2004-02-05 14:08    Length: 29 byte(s)
[Original] [Print] [Top]
看changelog,就知道维什么了。
[Original] [Print] [Top]
Subject: Re: 内核2.6.3发布.2004-02-18 04:36 UTC
Author: WC_CLF    Posted: 2004-02-18 17:06    Length: 668 byte(s)
[Original] [Print] [Top]
Changelog:
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.3
Full download:
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.3.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.3.tar.bz2.sign

最近 2.6 很活跃,希望能很快进入稳定期。
----
__0oooo__
[Original] [Print] [Top]
Subject: Re: 好消息,内核2.6.0发布了
Author: gosirius    Posted: 2004-02-18 21:07    Length: 5 byte(s)
[Original] [Print] [Top]
庆贺!
----
Drawn wells are seldom dry.
[Original] [Print] [Top]
Subject: 内核2.6.4发布。2004-03-11 03:16 UTC
Author: fei    Posted: 2004-03-11 17:04    Length: 380 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.4.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.4
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: 2.6.5发布。2004-04-04 04:17 UTC
Author: fei    Posted: 2004-04-04 14:24    Length: 403 byte(s)
[Original] [Print] [Top]
经过3个RC版。
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.5.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.5
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: 内核2.6.6发布.2004-05-10 03:18 UTC
Author: fei    Posted: 2004-05-10 16:11    Length: 380 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.6
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: Re: 内核2.6.6发布.2004-05-10 03:18 UTC
Author: SilentScreamer    Posted: 2004-05-23 23:39    Length: 761 byte(s)
[Original] [Print] [Top]
kernel 2.6.7-rc1 发布了

Linus Torvalds released the 2.6.7-rc1 release candidate kernel, including a couple of significant merges. He explains:

"Hmm.. This is stuff all over the map, but most interesting (or at least most "core") is probably the merging of the NUMA scheduler and the anonvma rmap code. The latter gets rid of the expensive pte chains, and instead allows reverse page mapping by keeping track of which vma (and offset) each page is associated with. Special kudos to Andrea Arcangeli [interview] and Hugh Dickins."

详情请见:
http://kerneltrap.org/node/view/3178
[Original] [Print] [Top]
Subject: Re: 内核2.6.6发布.2004-05-10 03:18 UTC
Author: SilentScreamer    Posted: 2004-05-31 08:55    Length: 170 byte(s)
[Original] [Print] [Top]
kernel 2.6.7-rc2 发布了

详情请见:
http://www.kernel.org/
[Original] [Print] [Top]
Subject: Re: 内核2.6.6发布.2004-05-10 03:18 UTC
Author: SilentScreamer    Posted: 2004-06-08 09:10    Length: 172 byte(s)
[Original] [Print] [Top]
kernel 2.6.7-rc3 发布了

详情请见:
http://www.kernel.org/
[Original] [Print] [Top]
Subject: 内核2.6.7发布.2004-06-16 06:02 UTC
Author: fei    Posted: 2004-06-16 15:36    Length: 404 byte(s)
[Original] [Print] [Top]
经过三个RC版。
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.7.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.7
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: 内核2.6.8发布.2004-08-14 06:10 UTC
Author: fei    Posted: 2004-08-14 22:12    Length: 380 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.8
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: 2.6.8.1
Author: minifat    Posted: 2004-08-15 13:26    Length: 98 byte(s)
[Original] [Print] [Top]
www.kernel.org
----
无所作为
[Original] [Print] [Top]
Subject: Linux kernel 又出了stupid 错误!
Author: vim    Posted: 2004-08-15 16:24    Length: 400 byte(s)
[Original] [Print] [Top]
对linux kernel 的专业精神表示怀疑!

Summary of changes from v2.6.8 to v2.6.8.1
============================================

<jgarzik@pobox.com>
[PATCH] Fix NFS client screw-up in fcntl f_op removal

Fix STUPID thinkos in the fcntl f_op removal code.

<torvalds@ppc970.osdl.org>
----
☆★☆☆ 星星之火, 可以燎原 ★☆★★
[Original] [Print] [Top]
Subject: 三个版本全更新了
Author: gxcooo    Posted: 2004-08-15 18:56    Length: 350 byte(s)
[Original] [Print] [Top]
The latest stable version of the Linux kernel is: 2.6.8.1 2004-08-14 11:13 UTC F V C Changelog
The latest 2.4 version of the Linux kernel is: 2.4.27 2004-08-07 23:28 UTC F V VI C Changelog
The latest 2.2 version of the Linux kernel is: 2.2.26 2004-02-25 00:28 UTC F V Changelog

----
[Original] [Print] [Top]
Subject: Re: Linux kernel 又出了stupid 错误!
Author: pengchengzou    Posted: 2004-08-16 11:30    Length: 1,263 byte(s)
[Original] [Print] [Top]
> 对linux kernel 的专业精神表示怀疑!

看到光明的一面,有一个 "足够眼球" 和 "快速响应" 的例证:

Date Sat, 14 Aug 2004 03:41:58 -0700 (PDT)
From Linus Torvalds <>
Subject Re: Linux v2.6.8 - Oops on NFSv3

On Sat, 14 Aug 2004, Willy Tarreau wrote:
>
> I've just compiled and booted 2.6.8 on my dual athlon. Everything went
> OK before I logged in as a non-root user whose home is mounted from
> another linux box over NFSv3/UDP.

Damn. I think the stupid typo in fs/nfs/file.c from the fcntl f_op removal
patch is the problem.

Andrew, since I'm gone in another hour, how about you try to make a
2.6.8.1 with this, since this is clearly a good reason for one?

Linus

--- 1.40/fs/nfs/file.c 2004-08-09 11:58:00 -07:00
+++ edited/fs/nfs/file.c 2004-08-14 03:35:11 -07:00
@@ -89,7 +89,7 @@
int res;

res = nfs_check_flags(filp->f_flags);
- if (!res)
+ if (res)
return res;

lock_kernel();
[Original] [Print] [Top]
Subject: Re: Linux kernel 又出了stupid 错误!
Author: Viperii    Posted: 2004-08-16 14:03    Length: 70 byte(s)
[Original] [Print] [Top]
怀疑什么?这就是专业精神,这就是为什么自由软件比私有软件更安全的例证。
----
Where is the RED pill? I want OUT!
[Original] [Print] [Top]
Subject: 2.6.9 2004-10-18
Author: fei    Posted: 2004-10-19 13:52    Length: 380 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.9
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.9.tar.bz2
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: Kernel 2.6.10 2004-12-24 22:38 UTC
Author: fei    Posted: 2004-12-25 12:49    Length: 384 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.10
----
Unix安装的数量已经增至10台,超过了预期。
[Original] [Print] [Top]
Subject: 2.6.11 2005-03-02 08:00 UTC
Author: fei    Posted: 2005-03-02 21:49    Length: 404 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.11

----
未极深入了解Debian包管理机制就不要说哪个发行版最好
[Original] [Print] [Top]
Subject: 2005-06-17 22:04 UTC 2.6.12
Author: fei    Posted: 2005-06-20 08:09    Length: 1,308 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.12
2.6.11出了12个补丁版--当然2.6.12大家都在等待了。
作者:R0meal 2005-06-19 16:17:51 来自:http://www.chinaunix.net

这是第一个通过源码发行控制工具Git发布的Linux内核,离上次最近的stable版本的Linux内核发布也有一个半月了,他在发行注解中写道,这份新的stable版本的内核是从rc6版本中修改得来,基本没有什么变动,您可以通过diffstat来看,虽然有一大串的列表,但是每行也就一两句。总的来说变动不多,但是还是有一个非常重要的变动要指出来,那就是有关开发者源认证的升级,从项目层面上更好的控制,这些记录都将会被归档以备查询。

这是自2005年4月上旬,Linux源码撤离BitKeeper源码开发环境以来第一个Stable版本的Linux内核,2.6.12-rc3是第一个版本采用Git工具的Linux内核源码,发布时间为2005年4月下旬。因为Git 工具是从2.6.12-rc3版本开始的,因而Linus并没有发布完整版本的changelog,Linus在mail中解释到,这是因为两个源码发行控制工具分别控制的,假如大家有兴趣,可以自己做一个完整的2.6.12内核的changelog。
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: 2005-08-29 00:03 UTC 2.6.13
Author: fei    Posted: 2005-08-29 10:46    Length: 384 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.13
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: Linux发明者推稳定升级版2.6.13 Linux内核
Author: fei    Posted: 2005-09-01 15:42    Length: 1,159 byte(s)
[Original] [Print] [Top]
2005年09月01日 08:44 赛迪网

  作者:天虹

  【赛迪网讯】9月1日消息,Linux内核的下一个稳定的升级版本已经发布了。Linux发明者李纳斯·托沃兹(Linus Torvalds)用电子邮件向Linux内核邮件列表发布了升级版本的Linux内核。



  据雅虎科技新闻报道,Linux 2.6.13内核是经过对一系列的发布版进行了测试之后才发布的。在测试的过程中,这个内核中发现了一些问题。这个新的内核更新了Linux内核的文件系统事件监视功能。这是一套系统调用功能,能够让用户从当前的内核装载另一个内核。此外,新的Linux内核还改善了用于嵌入式应用程序的Xtensa 指令集架构。

  托沃兹在电子邮件中写道,2.6.13内核最痛苦的部分可能是我们让x86处理器使用普通的PCI总线设置代码来分配没有分配的资源。这个内核的早期版本发现了这个问题,并且修复了。但是,他不能排除在这个内核发布之后是否还会有需要解决的一些没有预见到的问题。他计划很快开始研究这个问题。

  IDC分析师Dan Kusnetzky表示,Linux内核目前在企业应用中运行得很好。现在没有必要修改内核。不过,他们确实使这个
操作系统向前发展了。随着内核越来越精细和越来越好,Linux肯定将提高伸缩性和可靠性。但是,对于使用Linux的企业来说,现在的内核已经足够好了。
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: 2005-10-28 00:27 UTC 2.6.14
Author: fei    Posted: 2005-10-28 11:17    Length: 436 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2
2.6.13出了4个补丁版。2.6.14经过了5个RC版。
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.14
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: 2.6.15 2006-01-03 05:04 UTC
Author: fei    Posted: 2006-01-10 17:12    Length: 407 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.15
经过7个RC版。
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: 2006-03-20 06:23 UTC 2.6.16
Author: fei    Posted: 2006-03-20 15:13    Length: 407 byte(s)
[Original] [Print] [Top]
经过6个RC版。
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.16
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: Linux内核2.6.16版发布 支持Cell芯片
Author: fei    Posted: 2006-03-27 20:48    Length: 1,676 byte(s)
[Original] [Print] [Top]
作者:宋子远 来源:eNet硅谷动力 发布时间:2006.03.24


据国外媒体最新报道,李纳斯-托沃兹(Linus Torvalds)日前发布Linux内核2.6.16版,新版本支持IBM公司Cell处理器,其中包含甲骨文集群数据库软件,同时进一步提高了Linux操作系统在多处理器系统上运行时的性能。

  事实上,从技术上来讲,Linux只是一个内核,但它往往被用来代表基于这一内核的整个操作系统。包括红帽和Novell在内的Linux经销商都拥有各自的Linux内核变种,但通常变化不会太大。

  Linux对于Cell芯片的支持,将有助于IBM今年晚些时候推广Cell服务器。索尼下一代电玩主机PS3也将采用Cell处理器,IBM希望该处理器能够用于医学图像处理等高性能计算任务。

  对Cell芯片进行编程是相当困难的,但获得Linux支持之后这一情况将有望改善。新版内核包含SPU文件系统,允许软件控制并与不同处理核心通信。

  Cell芯片并不是Linux支持的唯一一款多核心处理器。托沃兹周二发布一系列补丁,以便Linux在Sun微系统公司内置UltraSparc T1处理器的服务器上运行。UltraSparc T1共有8个内核,尽管采用该芯片的服务器通常运行Sun微系统Solaris操作系统,该公司同时希望能够运行Linux操作系统。

  新内核还包含甲骨文Cluster File System(集群文件系统),该软件能够管理服务器集群共享数据的方式,同时也是Suse Linux Enterprise Server的一部分,但红帽也拥有自己的开源文件系统Global File System。

  Linux操作系统广泛应用于低端计算机产品,业界同时致力于将其推向大型多处理器系统,其中一个改进之处就在于Linux进行非均匀存储访问的方式。大型服务器通常将内存分成几部分,操作系统设法促使处理器在处理任务时使用临近内存,但有时往往需要调用远处数据,因此便用“非均匀”来描述这种读取速度。新版Linux内核能够转移内存上存储的信息,使其与相关处理器临近。
(e129)
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: 多项更新 Linux新内核2.6.16发布
Author: fei    Posted: 2006-03-27 20:49    Length: 625 byte(s)
[Original] [Print] [Top]
作者:风云 更新时间:2006-03-22

【IT168 软件资讯】Linux核心缔造者Linus Torvalds刚刚发布了新版Linux内核(Kernel),版本号2.6.16。



新版内核的一个重要新特性是加入了Oracle公司贡献的集群文件系统OCFS2,同时改变了NUMA系统中不同节点间页面的物理位置。

其他更新还包括:支持数据包拥塞控制协议(DCCP)的IPv6、引入透明进程间通信(TIPC)协议、支持通用互联网文件系统(CIFS)的文件控制列表(ACL)、支持HFSX文件系统、新的配置文件系统、支持更多设备等等。

Torvalds还表示,他已经在新内核中修正多个关于MIPS和PowerPC处理器的bug。
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: Linux Kernel 2.6.17 2006-06-18 02:11
Author: fei    Posted: 2006-06-27 10:28    Length: 6,428 byte(s)
[Original] [Print] [Top]
2.6.17 2006-06-18 02:11 UTC经过6个rc版。离上一个版本2006-03-20 06:23 UTC的2.6.16过了将近三个月。2.6.16总共发布了22个补丁版。Gentoo ~x86的gentoo-sources已经更新到这个版本。Linux 2.6.17-gentoo #1 SMP Tue Jun 20 08:26:16 CST 2006 i686 Intel(R) Xeon(TM) CPU 2.80GHz GNU/Linux 我已经在Dell 2650和2850的Debian和Gentoo Linux上做了测试,没什么问题。查看了选项发现了几个比较有用的新功能。
Support for Large Single Files 可以支持处理超大的单个文件(大于2TB)
Multi-core scheduler support 对于多核CPU的调度更有效开销更小。下载:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.tar.bz2
完全改进:http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.17
性能也会更好.
For those of you just tuning in, some of the highlights from the 2.6.17 development cycle include SPARC "Niagara" architecture support, an H.323 netfilter connection tracking helper, lightweight robust futexes, on-the-fly RAID5 array resizing, user-space software suspend, support for Broadcom 43xx wireless chipsets, and the splice(), vmsplice(), tee(), and sync_file_range() system calls. See the long-format changelog for the details.
Linux 2.6.17 kernel: better WiFi, faster performance
Jun. 19, 2006
This past Saturday, June 17th, saw the arrival of the latest stable version of the Linux kernel: Linux 2.6.17.
While this new kernel doesn't boast any earth-shaking additions, it does include numerous improvements to Linux for both users and developers.
For many laptop users, the most important news is that Linux now includes built-in driver support for the Broadcom 43xx based wireless card family. This WiFi chip family is found in many laptops such as many models from Acer, Apple (those using Airport Extreme), Compaq, and Dell.
This driver support depends upon another new enhancement to the kernel -- the addition of a Softmac layer in the wireless stack. Softmac is a software MAC (machine access control) layer that works with Linux's built-in 802.11 layer. This provides a great deal of WiFi protocol management features for chips that, unlike the Intel ProSet Wireless chip family, don't handle these details in hardware.
Softmac is not the only open-source project that takes this approach. MADWiFi, for example, uses one to support Atheros WiFi chips. Since Softmac is now part of the kernel, however, it can be used by developers to more easily support other WiFi chips. There have already been efforts at supporting the Prism54 and the Ralink rt2* 802.11 chip families using Softmac.
Linux's wireless improvements also include support for Cisco's LEAP (Lightweight Extensible Authentication Protocol). LEAP is used in Cisco's and other vendors' wireless devices, including clients, switches, access points, and RADIUS servers that use 802.1X authentication. In turn, this enables network administrators to easily set up dynamic per-user, per-session WEP (Wired Equivalent Privacy) secured sessions. The bottom line is that it will be much easier to use Linux systems in LEAP-secured networks.
For users, what all this means is that they'll be much more likely to be able to use their laptops' WiFi without any fuss or muss.
The new Linux kernel also includes automatic support for SMP (Symmetric Multiprocessing) computers on the i32 and 64 families. With this, Linux distributions will detect how many processors, or conceivably processor cores, are running on the system at boot time. The distribution will then automatically adjust to make the most of the existing architecture.
While at first, this might not appear that useful for many users, with the increasing use of virtual CPUs in virtualization systems like Xen, it might become very helpful in high-powered servers.
Another new development that should be especially useful in servers is the arrival of the new kernel system call, "splice."
Regarding what splice does, Linus Torvalds wrote:
"So in a very real (but abstract) sense, "splice()" is nothing but read()/write() to a kernel buffer."
Now, to get slightly less abstract, there are two important practical details." First, "the "buffer" implementation is nothing but a regular old-fashioned UNIX pipe."
This actually makes sense on so many levels, but mostly simply because that is exactly what a UNIX pipe has always been: it's a buffer in kernel space. That's what a pipe has always been. So the splice usage isn't conceptually anything new for pipes - it's just exposing that old buffer in a new way.
The second part of the deal is that the buffer is actually implemented as a set of reference-counted pointers, which means that you can copy them around without actually physically copy memory."
For those who don't speak programmer, what this means is that with splice, and other new related calls such as tee and vmsplice, your computer will perform faster. That's because it will no longer be wasting time copying redundant data from one chunk of memory to another or to a disk.
To cite an example from the new kernel's changelog, "For example, you could forward data that comes from a MPEG-4 hardware encoder, and tee() it to duplicate the stream, and write one of the streams to disk, and the other one to a socket for a real-time network broadcast. Again, all without actually physically copying it around in memory."
Speaking of performance boosts, the new kernel has also given the popular Ext3 file system a kick in the pants by supporting mapping multiple block file input/output to disk. In the past, Ext3 could only map one block at a time. This lead to a real speed bump, especially when it came to handling sequential I/O workloads.
Early tests have shown that users could see as much as 50 percent speed increases in some disk writing operations.
There are, of course, many other changes in the new kernel. Not the least of which, is that Linux is now supported on Sun's new Niagara chip architecture. To sum it all up, though, better WiFi support and performance are the hallmarks of this latest kernel.
For a detailed list of all the changes, see the latest Linux changelog.

-- Steven J. Vaughan-Nichols


----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: Linux kernel 2.6.18 2006-09-20 03:57 UTC
Author: fei    Posted: 2006-09-20 12:49    Length: 368 byte(s)
[Original] [Print] [Top]
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.18
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: Linux kernel 2.6.19 2006-11-30
Author: fei    Posted: 2006-11-30 08:19    Length: 401 byte(s)
[Original] [Print] [Top]
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2
http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.19
正式支持ext4.
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: Linux kernel 2.6.20 2007-02-04
Author: fei    Posted: 2007-02-05 07:15    Length: 42,009 byte(s)
[Original] [Print] [Top]
经过7个RC.
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.20
2.6.20

目录

1. Short overview (for news sites, etc)
2. Important things (AKA: ''the cool stuff'')
1. Sony Playstation 3 support
2. Virtualization support through KVM
3. Paravirtualization support for i386
4. Relocatable kernel support for x86
5. Fault injection
6. IO Accounting
7. Relative atime support
8. UDP-Lite support
9. Generic HID layer
10. Sleazy FPU optimization
11. Use 'regparm' in x86-32
12. round_jiffies() infrastructure
13. New drivers
3. Various core changes
4. Architecture-specific changes
5. Filesystems
6. Networking
7. Various subsystems
1. Software suspend
2. Crypto
3. CPUFREQ
4. DM
5. SELinux
8. Drivers
1. Graphics
2. Sound
3. V4L/DVB
4. libata
5. SCSI
6. Input drivers
7. Networking devices
8. USB
9. Hwmon
10. Watchdog
11. I2C
12. PCMCIA
13. MMC
14. IPMI
15. RTC
16. Firewire
17. Various

Short overview (for news sites, etc)

2.6.20 makes linux join to the virtualization trends. This release adds two virtualization implementations: A full-virtualization implementation that uses Intel/AMD hardware virtualization capabilities called KVM (http://kvm.sourceforge.net) and a paravirtualization implementation (http://lwn.net/Articles/194543) that can be used by different hypervisors (Rusty's lguest; Xen and Vmware in the future, etc),. But this release also adds initial Sony Playstation 3 support, a fault injection debugging feature (http://lwn.net/Articles/209257), UDP-lite support, better per-process IO accounting, relative atime, support for using swap files for suspend users, relocatable x86 kernel support for kdump users, small microoptimizations in x86 (sleazy FPU, regparm, support for the Processor Data Area, optimizations for the Core 2 platform), a generic HID layer, DEEPNAP power savings for PPC970, lockless radix-tree readside, shared pagetables for hugetbl, ARM support for the AT91 and iop13xx processors, full NAT for nf_conntrack and many other things.

Important things (AKA: ''the cool stuff'')

Sony Playstation 3 support

You may like the Wii or the 360 more, but only the PS3 is gaining official Linux support, written by Sony engineers. Notice that the support at this time is incomplete (apparently enabling it will not boot on a stock PS3) and it doesn't support the devices included like the graphics card, etc. (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

Virtualization support through KVM

KVM (project page) adds a driver for Intel's and AMD's hardware virtualization extensions to the x86 architecture (KVM will not work in CPUs without virtualization capabilities). See the Virtualization wiki for more information about virtualization in Linux

The driver adds a character device (/dev/kvm) that exposes the virtualization capabilities to userspace. Using this driver, a process can run a virtual machine (a "guest") in a fully virtualized PC containing its own virtual hard disks, network adapters, and display. Each virtual machine is a process on the host; a virtual cpu is a thread in that process. kill(1), nice(1), top(1) work as expected. In effect, the driver adds a third execution mode to the existing two: we now have kernel mode, user mode, and guest mode. Guest mode has its own address space mapping guest physical memory (which is accessible to user mode by mmap()ing /dev/kvm). Guest mode has no access to any I/O devices; any such access is intercepted and directed to user mode for emulation.

32 and 64 bits guests are supported (but not x86-64 guests on x86-32 hosts!). For i386 guests and hosts, both pae and non-pae paging modes are supported. SMP hosts and UP guests are supported, SMP guests aren't (support will be added in the future). You also can start multiple virtual machines in a host. Performance currently is non-stellar, it will be improved by a lot with the future inclusion of KVM paravirtualization KVM support.

The Windows install currently bluescreens due to a problem with the virtual APIC, a fix is being worked on and will be added in future releases. A temporary workaround is to use an existing image or install through qemu - Windows 64-bit does not work either (commit)

Paravirtualization support for i386

Paravirtualization is the act of running a guest operating system, under control of a host system, where the guest has been ported to a virtual architecture which is almost like the hardware it is actually running on. This technique allows full guest systems to be run in a relatively efficient manner (continue reading this LWN article for more information). This allows to link different hypervisors (lguest/lhype/rustyvisor implements a hypervisor in 6.000 lines; Xen and Vmware will be probably ported to this framework some day). There are limitations like no SMP support yet; this feature will evolve a lot with the time (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 11, 12, 13)

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 2.6.13 that it triggers 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. (commit 1, 2, 3, 4)

Fault injection

This is a debugging feature that 'injects' failures in several layers in the kernel (kmalloc() failures, alloc_pages() failures, disk IO errors). By 'injecting' them on purpose, a developer can test how their code reacts to errors that are very difficult to find in the real world, where things does not fail so often. For example, a filesystem could not be handling correctly an error triggered by a broken hard disk. Because those error code paths are exercised very rarely the code may contain bugs that could be hit by an user some day. This feature 'injects' those errors on purpose so testing can find bugs much faster. Enabled by the following configuration options: CONFIG_FAILSLAB, CONFIG_PAGE_ALLOC and CONFIG_MAKE_REQUEST. If you also want to configure them via debugfs you must enable CONFIG_FAULT_INJECTION_DEBUG_FS. Here is a LWN article about it; and the documentation is here. (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)

IO Accounting

The present per-task IO accounting isn't very useful. It simply counts the number of bytes passed into read() and write(). So if a process reads 1MB from an already-cached file, it is accused of having performed 1MB of I/O, which is 'wrong'. So this IO accounting implements per-process statistics of "storage I/O" (ie: I/O that _really_ does I/O on the storage device - linux already had I/O storage statistics but it's not per-task). The data is reported through taskstats and procfs (/proc/$PID/io) (commit 1, 2, 3, 4, 5, 6, 7, 8, 10, 11)

Relative atime support

'Atime' is the 'Access time' field of a file: When a process reads a file, its atime is updated. Disabling atime updates, with the 'noatime' mount flag, is probably the most used performance tweak that linux administrators use: An active server is continually reading files, generating lots of atime updates, which translate to metadata updates that the filesystem must write to disk. And writing those updates can seriously damage your performance. Believe it or not, a busy server like kernel.org (vsftpd + apache workload) cut their load average in half just by mounting their filesystems with 'noatime'.

Relative atime ('relatime') only updates the atime if the previous atime is older than the mtime or ctime. It avoids a lot of metadata atime updates (but not all of them, obviously, there's 'noatime' for that). It's like noatime, but useful for applications like mutt that need to know when a file has been read since it was last modified. Currently only OCFS2 supports it. A corresponding patch against mount(8) is available here. (commit), ocfs2 support (commit)

UDP-Lite support

Support for UDP-Lite (RFC 3828) for IPv4 and a extension for UDP-Lite over IPv6 is added in 2.6.20. Documentation and programming guide. UDP-Lite is a Standards-Track IETF transport protocol whose characteristic is a variable-length checksum. This has advantages for transport of multimedia (video, VoIP) over wireless networks, as partly damaged packets can still be fed into the codec instead of being discarded due to a failed checksum test (commit)

Generic HID layer

Currently the HID layer (Human Interface Device) does only work with USB devices. 2.6.20 turns the USB-oriented HID layer into a generic HID layer that can be used for any subsystem that needs it, like Bluetooth. (commit 1, 2, 3, 4, 5, 6, 7, 8)

Sleazy FPU optimization

This is a x86-32 port of the x86-64 feature implemented in 2.6.19. It doesn't gives huge performance except a 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. (commit)

Use 'regparm' in x86-32

This is another not-relevant-to-users-yet-interesting-for-geeks feature, that has been available as an option for a while but it's default now. Since forever the x86 architecture has stored the function parameters in the stack. Modern architectures (PPC, SPARC, etc) use registers: It's much faster, since you don't need to do anything to bring the paramaters back: The parameters are just there, in the register. The x86 world (including linux) continued using stacks for parameter passing, for compatibility reasons with software, compilers, etc; they only added extensions to compilers to optionally tell the compiler to use parameters for parameter pasing in a given function (usually involving the 'fastcall' keyword) for performance-critical paths.

Thanks to a GCC extension, the linux kernel uses the '-mregparm=3' compile option, which means that as long as a function uses 3 or less arguments, GCC will automatically use registers to pass its parameters. And if you're wondering about x86-64, in that platforms using the registers has always been the default (commit)

round_jiffies() infrastructure

This is a example of the power savy trend ongoing in the Linux kernel. This feature Introduce the round_jiffies()/round_jiffies_relative() functions. These functions round a jiffies value to the next whole second. The target of this rounding is all the "we don't care exactly when" timers. By rounding these timers to whole seconds, all such timers will fire at the same time, rather than at various times spread out; with dynamic ticks these extra timers cause wakeups from deep sleep CPU sleep states and thus waste power (commit 1, 2, 3)

New drivers

Here are some important drivers that have been added to the Linux tree - note that it says 'drivers', only new important drivers are listed here. There's a lot of device support to the already existing drivers that it's not listed here:

* Networking:
o

Driver for the Atmel MACB on-chip ethernet module (commit)
o

Tsi108/9 On Chip Ethernet device driver (commit)
o

Netxen 1G/10G ethernet driver (commit 1, 2, 3)
* Hwmon
o

New Winbond W83793 hardware monitoring driver (commit)
o

New PC87427 hardware monitoring driver (commit)
o

New AMS hardware monitoring driver (commit)
* I2C
o

New ARM Versatile/Realview bus driver (commit)
o

New Atmel AT91 bus driver (commit)
o

New Philips PNX bus driver (commit)
* Watchdog:
o

NS pc87413-wdt Watchdog driver (commit)
o

MIPS RM9000 on-chip watchdog device driver (commit 1, 2, 3, 4, 5)
* Input
o

Add Philips UCB1400 touchscreen driver (commit)
o

Add driver for keyboard on AAED-2000 development board (ARM) (commit)
*

Graphics: Fbdev driver for IBM GXT4500P videocards (commit)
*

RTC: rtc-omap driver (commit)

Various core changes

* Memory management, block layer, etc
o

Make the readside of the radix-tree (used in the page-cache) RCU lockless (commit)
o

Shared page tables for hugetlb (commit), (commit)
o

New swap token algorithm. The old algorithm had a crude timeout parameter that was used to handover the token from one task to another. The new algorithm transfers the token to the tasks that are in need of the token. The urgency for the token is based on the number of times a task is required to swap-in pages. Accordingly, the priority of a task is incremented if it has been badly affected due to swap-outs. To ensure that the token doesnt bounce around rapidly, the token holders are given a priority boost. The priority of tasks is also decremented, if their rate of swap-in's keeps reducing (commit)
o

Memory page_alloc zonelist caching speedup: Optimize the critical zonelist scanning for free pages in the kernel memory allocator by caching the zones that were found to be full recently (in the last second), and skipping them. Benchmarks on a 56-CPU/96GB-RAM systems can be found in the commit link (commit)
o

fdtable: Implement new pagesize-based fdtable allocator (commit)
o

Optimize o_direct on block devices (commit)
o

Support larger block pc requests. Modify blk_rq_map/unmap_user() so that it supports requests larger than bio by chaining them together (commit)
o

Add numa node information to struct device (commit)
o

Add 'noaliencache' boot option to disable numa alien caches. When using numa=fake on non-NUMA hardware there is no benefit to having the alien caches, and they consume much memory (commit)
*

Workqueue revamp. The struct work_struct was a bit bloated, so efforts have been done to fix it, resulting in a division between delayable and non-delayable events, and some API changes. See this LWN article for complete details and this link for details on how to adapt broken code for the new workqueue API (commit 1, 2, 3, 4)
*

TTY: termios revamp, adds proper speed control (commit 1, 2, 3, 4, 5)
*

Generic BUG implementation (commit 1, 2, 3, 4, 5, 6)
*

Driver core: add API for internal notification of bus events (commit); show the initialization state(live, coming, going) of the module (cat /sys/module/usbcore/initstate) (commit); show drivers in /sys/module/ (commit),
*

Upgrade the minimum required compiler to gcc 3.2 (commit)
*

Sysrq: Add new sysrq feature: Sysrq + X: show blocked (TASK_UNINTERRUPTIBLE) tasks.;useful for debugging IO stalls (commit); add sysrq_always_enabled boot option (commit)
*

Create CONFIG_SYSFS_DEPRECATED (commit 1, 2, 3, 4, 5)
*

Add child reaper to pid_namespace (commit)
*

Allow user processes to raise their oom_adj value (commit)
*

Use softirq for load balancing (commit)
*

LOG2: Implement a general integer log2 facility in the kernel (commit)
*

bit reverse library (commit)
*

Implement prof=sleep profiling. TASK_UNINTERRUPTIBLE sleeps will be taken as a profile hit, and every millisecond spent sleeping causes a profile-hit for the call site that initiated the sleep (commit)
*

kprobes: enable booster on the preemptible kernel (commit)
*

Switch pci_{enable,disable}_device() to be nestable, so that eg, three calls to enable_device() require three calls to disable_device(). The reason for this is to simplify PCI drivers for multi-interface/capability devices. These are devices that cram more than one interface in a single function. A relevant example of that is the Wireless [USB] Host Controller Interface (commit), (commit)

Architecture-specific changes

* i386
o

Support for Processor Data Area (PDA). From now, the kernel will use the %gs register as the PDA base-segment (the old value of %gs is saved away). This will make possible to do some optimizations in the future (in this release, 2.6.20 will use the PDA to get the 'current' task in a single instruction, as an example) (commit 1, 2, 3, 4, 5, 6, 7, 8)
o

300Hz support. It is useful to have 300Hz support when doing multimedia work: 250 is fine for us in Europe but the US frame rate is 30fps (29.99 blah for pedants). 300 gives us a tick divisible by both 25 and 30, and for interlace work 50 and 60. It's also giving similar performance to 250Hz (commit)
o

Add sysctl for kstack_depth_to_print (commit)
o

Add support for compilation optimizations for Core2 (commit), (commit)
o

x86-64: Don't keep interrupts disabled while spinning in spinlocks, like i386 (commit)
o

x86-64: Speed and clean up cache flushing in change_page_attr (commit)
o

Acpi: add support for the generic backlight device in asus_acpi (commit), ibm_acpi (commit) and toshiba_acpi (commit)
* PPC
o

Enable DEEPNAP power savings mode on 970MP (commit) Without this patch, a idle 4-way system gets 103.8W. With this patch: 65.0W. LoweringHZ to 100 can get it as low as 60.2W. Another (older) Quad G5 went from 54W to 39W at HZ=250. Coming back out of Deep Nap takes 40-70 cycles longer than coming back from just Nap (which already takes quite a while).
o

Add Efika platform support (commit)
o

Add MPC5200 Interrupt Controller support (commit)
o

Cell: Add support for adding/removing spu sysfs attributes (commit), remove /spu_tag_mask file (commit), cell iommu support (commit), add oprofile support for cell (commit), add isolated-mode SPE recycling support (commit), native cell support for MPIC in southbridge (commit), add a sd command (spu dump) to xmon to dump spu local store (commit), add cpufreq driver for Cell BE processor (commit), prepare for spu disassembly in xmon (commit), add support for nonschedulable contexts (commit), implement /mbox_info, /ibox_info, and /wbox_info. (commit), add support for dumping spu info from xmon (commit), import spu disassembly code into xmon (commit), add spu disassembly to xmon (commit), add temperature to SPU and CPU sysfs entries (commit), add /lslr, /dma_info and /proxydma files (commit), add SPU elf notes to coredump. (commit), add shadow registers for pmd_reg (commit), add low-level performance monitoring code (commit), add support for registering sysfs attributes to spus (commit), add support for stopping spus from xmon (commit),
o

Add non-OF serial console support (commit), add Kurobox(HG)/Linkstation-I NAS systems by Buffalo Technology support (commit), support ibm,dynamic-reconfiguration-memory nodes (commit), add xserve cpu-meter driver (commit), add lite5200 board support to arch/powerpc (commit), (commit), (commit), allow CONFIG_BOOTX_TEXT on iSeries (commit), import updated version of ppc disassembly code for xmon (commit), allow xmon to build on legacy iSeries (commit), make 970MP detectable by oprofile (commit), lazy interrupt disabling for 64-bit machines (commit), support for DCR based MPIC (commit)
* ARM
o

Add iop13xx support. The iop348 processor integrates an Xscale (XSC3 512KB L2 Cache) core with a Serial Attached SCSI (SAS) controller, multi-ported DDR2 memory controller, 3 Application Direct Memory Access (DMA) controllers, a 133Mhz PCI-X interface, a x8 PCI-Express interface, and other peripherals to form a system-on-a-chip RAID subsystem engine. The iop342 processor replaces the SAS controller with a second Xscale core for dual core embedded applications. The developer's manual is available here: ftp://download.intel.com/design/iio/docs/31503701.pdf (commit)
o

AT91: Initial support for AT91SAM9261 and AT91SAM9260 (commit), SAM9 platform devices (commit), Update drivers for new headers (commit), split up system header file (commit), rename user peripheral header files (commit), support for Atmel AT91SAM9260-EK board (commit), hardware headers for SAM9 perhipherals (commit), support for Atmel AT91SAM9261-EK board (commit), final SAM9 intergration patches. (commit), SAM9 timer driver (commit), AT91RM9200 RTC (commit)
o

clocksource driver for netx (commit) and pxa2xx (commit), suspend to RAM support in H1940 (commit) and RX3715 (commit), MX/MX1 CPU Frequency scaling support (commit), add cirrus logic edb9302a board support to ep93xx (commit), add ads sphere support (commit), add sys_*at syscalls support (commit)
* SH:
o

Dyntick infrastructure (commit) and stacktrace/lockdep/irqflags tracing support (commit)
o

Add initial support for the SH7206 (SH-2A) and SH7619 (SH-2) MMU-less CPUs (commit), Solution Engine 7206 and 7619 boards. (commit), preliminary support for SH-X2 MMU. (commit), and SH-MobileR SH7722 CPU support. (commit)
*

S390: Add runtime switch for qdio performance statistics (commit), add virtual memmap for s390. (commit), add dynamic subchannel mapping (commit 1, 2, 3, 4, 5)
*

MIPS: Add support for kexec (commit), add STB810 support (Philips PNX8550-based) (commit), oprofile kernel support for the R10000. (commit)
*

SPARC: Add irqtrace/stacktrace/lockdep support. (commit)
*

IA64: Kexec and kdump support (commit); add initial ACPI IO support to Altix (commit), SN ACPI hotplug support for Altix (commit) and ROM shadowing for Altix (commit)
*

M32R: bootloader support for OPSPUT platform (commit)
*

m68knommu: add SHM support (commit)

Filesystems

* OCFS2:
o

Add atime update (commit 1, 2), splice (commit) and configurable timeouts via configfs (commit 1, 2, 3)
o

Add support for 'local' OCFS2 filesystems: This allows users to format an ocfs2 file system with a special flag, OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT. When the filesystem sees that flag, it won't use any cluster services nor it will require cluster configuration, thus acting as a 'local' filesystem, like ext3 & co (commit)
*

FUSE: Add support for block device based filesystems. Useful for ntfs-3g, zfs, etc (commit 1, 2, 3, 4)
*

DebugFS: inotify create/mkdir support (commit)
*

DLM: Add support for tcp communications (commit)

Networking

* Add sparse annotations to the networking code (lots of patches)
*

IPV6: Per-interface statistics support; for IP MIB (RFC4293) (commit)
*

Node-aware skb allocation (commit)
*

Turn nfmark into generic mark (commit)
*

The scheduled removal of the frame diverter. (commit)
*

TCP: Restrict congestion control choices for users via a sysctl: the list of allowed congestion control choices is set in /proc/sys/net/ipv4/tcp_allowed_congestion_control (the list of available congestion control algorithms is at /proc/sys/net/ipv4/tcp_available_congestion_control) (commit), (commit)
*

ieee80211: allow mtu bigger than 1500 (up to 2304) (commit)
*

TCP: MD5 Signature Option (RFC2385) support. (commit)
*

DCCP: Support for partial checksums (RFC 4340, sec. 9.2) (commit), use higher RTO default for CCID3 (commit), set TX Queue Length Bounds via Sysctl (commit), (commit), add sysctls to control retransmission behaviour (commit)
*

SCTP: Add support for SCTP_CONTEXT socket option. (commit)
* Netfilter
o

Add full NAT support for nf_conntrack (commit)
o

Add IRC helper port (commit), FTP NAT helper port (commit), SIP helper port (commit), TFTP helper port (commit), PPTP helper port (commit), H.323 helper port (commit). NetBIOS name service helper port (commit), SNMP NAT helper port (commit)
o

sysctl and /proc compatibility with old connection tracking (commit), (commit)tatistics.
o

x_tables: add port of hashlimit match for IPv4 and IPv6 (commit) and add NFLOG target (commit)
o

ebtables: add --snap-arp option (commit)
* IPSEC
o

Add auditing to ipsec. An audit message occurs when an ipsec SA or ipsec policy is created/deleted (commit)
o

Add netlink interface for the encapsulation family. (commit)
o

Add AF_KEY interface for encapsulation family. (commit)
o

Add encapsulation family. (commit) * Add support for AES-XCBC-MAC (commit)

Various subsystems

Software suspend

*

Support swap files (commit), (commit), (commit), (commit), (commit), (commit)
*

Improve handling of highmem (commit)
*

Support i386 systems with PAE or without PSE (commit)
*

Measure memory shrinking time (commit)

Crypto

*

Add support for the Geode LX AES hardware (commit)
*

Liskov Rivest Wagner, a new tweakable narrow block cipher mode (commit)
*

New XCBC algorithm (commit)
*

Table driven multiplications in GF(2^128) (commit)

CPUFREQ

*

Grand unification of ACPI based speedstep-centrino and acpi-cpufreq drivers. It combines functionality of these two driver into acpi-cpufreq driver. ACPI based functionality in speedstep-centrino is marked deprecated and will be removed in future. speedstep-centrino will continue to work on systems that depend on older non-ACPI table based P-state chanes (commit 1, 2, 3, 4, 5, 6, 7, 8)
*

p4-clockmod: fix support for Core (commit) and add support for more Intel CPUs (commit)
*

Longhaul: add support for CN400 (commit)

DM

Noflush suspending (commit), (commit), (commit)
SELinux

Add support for DCCP (commit)

Drivers

Graphics

Add support for secondary vertical blank interrupt to DRM core and add support to i915 (commit 1, 2); add ioctl in i915 for scheduling buffer swaps at vertical blanks. (commit)

sstfb: add sysfs interface (commit), support command line options (commit), support flat panel timings (commit), fixups for the AMD Geode GX framebuffer driver (commit), add support for STN displays in s3c2410fb (commit), add YUV video overlay support (commit) in mbxfb

Sound

The scheduled removal of the OSS drivers depending on OSS_OBSOLETE_DRIVER: miroSOUND PCM20 radio, Creative SBLive! (EMU10K1), Crystal Soundfusion (CS4280/461x), AD1816(A) based cards, AD1889 based cards (AD1819 codec), ACI mixer (miroSOUND PCM1-pro/PCM12/PCM20), NM256AV/NM256ZX audio support, Yamaha OPL3-SA2 and SA3 based PnP cards (commit)
V4L/DVB

Add support for remote control of Hauppauge HVR1110 (commit), add support for both DVB frontends of the Lifeview Trio (commit), add support ptv-305 (commit), add support for Avermedia AverTV Studio 507 (commit), add support for the Terratec Cinergy HT PCMCIA module (commit), add support for Pinnacle 310i (commit), add working dib7000m-module (commit), dynamic cx88 mpeg port management for HVR1300 MPEG2/DVB-T support (commit), add usbvision driver (commit), add support for a ASUSTEK P7131 Dual DVB-T variant (commit), add support for Leadtek Winfast DTV Dongle (STK7700P based) (commit), add initial DiB7000M-demod driver (commit), add support for Dibcom DiB7000PC (commit), remove the broken VIDEO_ZR36120 driver (commit), add Omnivision OV7670 driver (commit), adds support for Pinnacle PCTV 400e DVB-S (commit), add support for Hauppauge WinTV-HVR1110 DVB-T/Hybrid (commit), add support for the Compro Videomate DVB-T200A (commit), Implement IR reception for 24xxx devices (commit), add Marvell 88ALP01 "cafe" driver (commit), add support for new revision of Nova-T Stick (commit)

libata

*

Add power management (suspend/resume) support for libata drivers: pata_ali (commit), pata_serverworks (commit), pata_via suspend/resume support (commit), pata_sis and pata_pdc202xx (commit), pata_marvell (commit), pata_cmd64x (commit), pata_cs5520 (commit), pata_sil680 (commit), pata_hpt3x3 (commit), pata_amd (commit), pata_jmicron (commit), pata_it821x (commit), pata_cs5530 (commit), pata_hpt366 (commit), pata_atiixp, pata_cs5535, pata_cypress, pata_efar, pata_marvell, pata_mpiix, pata_netcell, pata_ns87410, pata_oldpiix, pata_opti, pata_optidma, pata_radisys, pata_sc1200, pata_triflex (commit)
*

Generic platform_device libata driver (commit), add 40pin "short" cable support, honour drive side speed detection (commit)
*

Winbond 83759A support (commit)
*

sata_nv ADMA/NCQ + 64 bit DMA support for nForce4 (commit)
*

Add ixp4xx PATA driver for ARM platforms (commit)

SCSI

*

Add ability to scan scsi busses asynchronously. Since it often takes around 20-30 seconds to scan a scsi bus, it's highly advantageous to do this in parallel with other things (commit), (commit); add asynchronous scsi scanning support for qla2xxx (commit)
*

SCSI target support (commit), (commit), (commit), (commit), (commit), (commit)
*

lpfc : Add MSI support (commit)
*

ipr: Add PCI IDs for some new SAS adapters (commit), add support for logging SAS fabric errors (commit)
*

qla4xxx: add support for qla4032 (commit)

Input drivers

*

lifebook: Add Hitachi Flora-IE 55mi tablet DMI signature (commit)
*

appletouch: Add Geyser IV support (commit)ables.

Networking devices

* e1000
o

Add a new dynamic itr algorithm, with 2 modes, and make it the default operation mode. This greatly reduces latency and increases small packet performance, at the "cost" of some CPU utilization. Bulk traffic throughput is unaffected (commit)
o

Enable hw TSO for IPV6, reduces CPU utilizations by 50% when transmitting IPv6 frames (commit)
o

Add support for a Low Profile quad-port PCI-E adapter and 2 variants of the ICH8 systems' onboard NIC's (commit)
* Chelsio
o

Working NAPI (commit)
o

Add support for other 10G boards (commit)
o

Add MSI support (commit)
o

add 1G swcixw aupport (commit)
* forcedeth:
o

Add support for new mcp67 device (commit)
o

Add recoverable error support (commit)
o

Power management support (commit)
* zd1211rw
o

Add ID for Belkin F5d7050 v4000 (commit), for ZyXEL G-220 (commit) and for Planex GW-US54Mini (commit)
o

Support for multicast addresses (commit)
*

BNX2: 5709 copper and Serdes chips support (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
*

bcm43xx: add PCI-E code (commit)
*

sk98lin: MII ioctl support (commit)
*

AT91RM9200 Ethernet: Add netpoll / netconsole support (commit)
*

Gianfar: add netpoll support (commit)

USB

*

usbtouchscreen: add support for DMC TSC-10/25 devices (commit)
*

Allow hubs up to 31 children (commit)
*

Added dynamic major number for USB endpoints (commit)
*

Add driver for the USB debug devices (commit)
*

Add support for Novatel S720/U720 CDMA/EV-DO modems (commit)
*

Add autosuspend support to the hub driver (commit)

Hwmon

*

f71805f driver: Add support for "speed mode" fan speed control (commit), add manual fan speed control (commit), let the user adjust the PWM base frequency (commit), support DC fan speed control mode (commit)
*

Add support for the Fintek F71872F/FG chip (commit)
*

Remove the SMBus interface support for it87 (commit)

Watchdog

*

Add iTCO vendor specific support (commit)

I2C

*

Delete the broken i2c-ite bus driver (commit)

PCMCIA

*

IDs for Elan serial PCMCIA device (commit)
*

Allow for four multifunction subdevices (commit)
*

ide-cs: Add ID for "transcend TS1GCF80" (commit) and "Weida TWTTI" (commit)

MMC

*

Support for high speed (50 Hz clock speed) SD cards (commit)
*

Add support for mmc v4 high speed mode (commit)
*

Add support for mmc v4 wide-bus modes (commit)
*

SDHCI high speed support (commit)

IPMI

*

Add maintenance mode (commit), allow hot system interface remove (commit), add system interface hotplug (commit)

RTC

*

ds1743 support (commit)
*

This adds alarm support for the RTC_ALM_SET, RTC_ALM_READ, RTC_WKALM_SET and RTC_WKALM_RD operations to rtc-sh (commit)

Firewire

*

ohci1394: Implement suspend/resume (commit)

Various

*

Add support for Korenix 16C950-based PCI cards (commit)
*

Driver for the PCEngines WRAP boards (http://www.pcengines.ch) (commit)
*

Remove long-unmaintained ftape driver subsystem. (commit)
*

pktcdvd: add sysfs and debugfs interface (commit)
*

Add a driver for the Xilinx uartlite serial controller (commit)
*

Exar quad port serial (commit)
*

cciss set sector_size to 2048 for performance (commit), add support for 1024 logical volumes (commit), increase number of commands on controller (commit)
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: Linux kernel 2.6.21 2007-04-26
Author: fei    Posted: 2007-04-26 14:00    Length: 44,634 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2
目录

1. Short overview (for news sites, etc)
2. Important things (AKA: ''the cool stuff'')
1. VMI (Virtual Machine Interface)
2. KVM updates
3. Dynticks and Clockevents
4. ASoC
5. Dynamic kernel command-line
6. Optional ZONE_DMA
7. devres
8. GPIO API
9. New drivers
3. Crashing soon a kernel near you
4. Various core changes
5. Architecture-specific changes
6. Filesystems
7. Networking
8. Various subsystems
1. Software suspend
2. crypto/audit
9. Drivers
1. Network drivers
2. SATA/IDE/SCSI
3. Graphics
4. ALSA
5. Input
6. USB
7. V4L
8. Cpufreq
9. ACPI
10. I2C
11. Various

Short overview (for news sites, etc)

2.6.21 improves the virtualization features merged in 2.6.20 with VMI (http://lwn.net/Articles/175706), a paravirtualization interface that will be used by Vmware (and maybe -probably not- Xen) software. KVM does get initial paravirtualization along with live migration and host suspend/resume support (http://lwn.net/Articles/223839). 2.6.21 also gets a tickless idle loop mechanism called "Dynticks" (http://lwn.net/Articles/223185), a feature built in top of "clockevents" which unifies the timer handling and brings true high-resolution timers. Other features are: bigger kernel command-line, optional ZONE_DMA; support for the PA SEMI PWRficient CPU, for a Cell-based "celleb" architecture from Toshiba, better PS3 support: support for NFS IPv6, IPv4 <-> IPv6 IPSEC tunneling support, UFS2 write support, kprobes for PPC32, kexec and oprofile for ARM, public key encription for ecryptfs, Fcrypt and Camilla cipher algorithms, NAT port randomization, audit lockdown mode, many new drivers and many other small improvements.

Important things (AKA: ''the cool stuff'')

VMI (Virtual Machine Interface)

VMI is a virtualization feature built in top of the paravirt_ops paravirtualization implementation introduced in 2.6.20.

Paravirtualizated kernels need to be modified to run under a hypervisor. The goal of VMI is to become the common paravirtualization interface for hypervisors like Xen and Vmware. Vmware will certainly use VMI; Xen was going to use VMI but they may develop their own VMI-like interface. Any hypervisor can use VMI by providing a (GPLed) ROM; the ROM describes how the low-level VMI kernel must use the hypervisor. A VMI-enabled kernel can also boot on bare hardware and no hypervisor with no performance impact (commit 1 2, 3, 4, 5, 6, 7, 8)

More details about VMI can be found in this LWN article: "The VMI virtualization interface"

KVM updates

KVM does evolve at a very fast pace, due to its clean design. This release (KVM-15) brings many new features:

*

Initial paravirtualization support, which has much faster performance
* Live migration (the guest continues running even while being migrated) support. It's possible to migrate a guest from a Intel CPU to an AMD CPU
* Host Suspend/resume support
* CPU hotplug support - a useful feature for data centers, where you can add/remove CPUs according to the load
* A stable userspace interface

Recommended LWN article: "KVM-15"

(commit 1, 2, 3, 4, 5)

Dynticks and Clockevents

Recommended LWN article: "Clockevents and dyntick"

(This feature touches a lot of low-level x86 code, so regressions are possible. If you have problems with 2.6.21, please report it)

Clockevents is a building block of dynticks. A example of a clock devices is the device which makes timer interrupts. The handling of those devices was made in the architecture-specific code, so there wasn't an unified way of using those devices. The clockevents patch unifies the clockdevice handling so the kernel can use the timer capabilities of those devices in a unified manner. This also allows to implement true high-resolution timers.

Dynticks (aka: dynamic ticks) it's a configurable feature for x86 32bits (x86-64 and ARM support is already done but not ready for this release; PPC and MIPS support are in the works) that changes the heart of the mechanism that allow a system to implement multitasking. To know what dyntick does, first you should know some basics: Traditionally, multitasking is implemented thanks to a timer interrupt that is configured to fire N times in a second. Firing this interrupt causes a call to the operative system's process scheduler routines. Then, the scheduler decides what process should run next, the process that was running before the timer interrupt was fired, or another process. This is how true multitasking is implemented in all the general-purpose operative systems, it's also what stops processes from being able to monopolize the CPU time: The timer interrupt will be fired regardless of what the process is doing and the operative system will be able to stop it.

N (the number of times the timer interrupt is fired in each second, aka 'HZ') is a hardcoded compile-time architecture-dependent constant. For Linux 2.4 (and Windows), HZ=100 (the timer interrupt fires 100 times per second). 2.6 increased HZ to 1000, for several reasons: 100 was the HZ value that x86 had been using since forever, and it didn't really had a lot of sense in modern CPUs that runs much faster: Higher HZ means smaller process time slices, which improves the minimum latency and interactivity. The downside is higher timer overhead (negligible in modern hardware, although some server-oriented distros package kernels with HZ=100 because of minor performance gains) and high pitch noises in some systems due to low-quality, cheap capacitators

Anyway, the issue is that the timer is fired HZ times in every second - even if the system is doing nothing. Dynticks is a feature that stops the system from waking up HZ times per second. When the system is entering the idle loop it disables the periodic timer interrupt, and programs the timer to fire the next time a timer event is needed. This means your system will be 'disabled' while there's nothing to do (unless a interrupt happens - ej: a incoming packet through your network). For now, dynticks does just that. However, this infrastructure will allow to create a innovative power-saving feature: When dynticks is in "tickless" mode and the system is waiting for the timer interrupt, the power-saving feature of modern CPUs will be used. This can save a few W when the laptop is idle.

Dynticks adds some nice configurable debugging features: /proc/timer_list prints all the pending timers, allowing developers to check if their program is doing something wrong when it should be doing nothing, /proc/timer_stat, in the other hand, collects some timer statistics, allowing to detect the source of commonly-programmed timers.

(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)

ASoC

The ASoC (ALSA System on Chip) layer has been added to the ALSA sound system. Its aim is to provide improved support for sound processors on embedded systems. The ASoC core is designed to allow reuse of codec drivers on other platforms, reuse of platform specific audio DMA and DAI drivers on different machines, easy I2S/PCM digital audio interface configuration between codec and SoC, and allow machines to add controls and operations to the audio subsystem. e.g. volume control for speaker amp.

To achieve all this, ASoC splits an embedded audio system into 3 components: 1. Codec driver: The codec driver is platform independent and contains audio controls, audio interface capabilities, codec dapm and codec IO functions 2. Platform driver: The platform driver contains the audio dma engine and audio interface drivers (e.g. I2S, AC97, PCM) for that platform. 3. Machine driver: The machine driver handles any machine specific controls and audio events. i.e. turning on an amp at start of playback.

It includes a dynamic power management subsystem, designed to allow portable and handheld Linux devices to use the minimum amount of power within the audio subsystem at all times. It is independent of other kernel PM and as such, can easily co-exist with the other PM systems. DAPM is also completely transparent to all user space applications as all power switching is done within the ASoC core. No code changes or recompiling are required for user space applications. DAPM makes power switching decisions based upon any audio stream (capture/playback) activity and audio mixer settings within the device.

A number of platform and codec drivers for ASoC have been merged as well.

(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)

Dynamic kernel command-line

The current implementation stores a command-line buffer allocated to COMMAND_LINE_SIZE (a compile-time constant) size - 256 bytes on x86. This is not enougth space today, some systems hit a limit when they use too many module parameters, video settings, initramfs parameters etc. It's possible to increase COMMAND_LINE_SIZE to a greater value, but there's a problem: a static buffer of that size (say, 2KB) will be allocated even if you aren't using all of it.

So in 2.6.21 the size of the boot command line it's allocated dynamically. A static buffer is still allocated (2K in i386), but the contents are copied into a dinamically-allocated buffer with the exact size, then the static buffer is freed with the rest of the initdata data

(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)

Optional ZONE_DMA

ZONE_DMA was created for handling x86-specific ISA DMA uglities. Some arches do not need ZONE_DMA at all, the newer x86 systems are not needing ISA DMA and are starting to include IOMMUs. 2.6.21 makes possible to completely disable ZONE_DMA. This also makes possible some compiler optimizations

(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

devres

"devres" is an optional subsystem for drivers that greatly simplifies the task of driver housekeeping, if you have to acquire+map then later unmap+free a bunch of device-related resources (MMIO, PIO , IRQs, iomap, PCI, DMA resources). The aim is to make easier for programmers to allocate & free resources & handle errors for a driver writer. A device driver can allocate arbirary size of devres data which is associated with a release function. On driver detach, release function is invoked on the devres data, then, devres data is freed (commit)

Recommended LWN article: "The managed resource API"

GPIO API

The GPIO API implements a simple and minimalist programming interface for GPIO APIs. A "General Purpose Input/Output" (GPIO) is a flexible software-controlled digital signal. They are provided from many kinds of chip, and are familiar to Linux developers working with embedded and custom hardware.

(commit 1, 2, 3, 4, 5, 6)

New drivers

Here are some important new drivers that have been added to the Linux tree:

* Graphics:
o

Add fbdev driver for the old S3 Trio/Virge (commit)
o

Driver for the Silicon Motion SM501 multifunction device framebuffer subsystem (commit), (commit)
* Storage devices:
o

Add two drivers for the it8213 IDE device, one using the old IDE stack (commit), (commit) and other using libata (commit)
o

Add IDE Driver for Delkin/Lexar/etc.. cardbus CF adapter (commit)
o

Add IDE driver for Toshiba TC86C001 (old IDE stack) (commit)
o

Add SCSI driver for SNI RM 53c710 (commit)
o

Add driver for Initio 162x SATA devices (commit)
* Networking devices
o

Add driver for the latest 1G/10G Chelsio adapter, T3 (commit), (commit)
o

Add driver for the Attansic L1 ethernet device (commit)
o

Add driver for the Gigaset M101 wireless ISDN device (commit)
o

Add PC300too alternative WAN driver (commit)
o

Add driver for Silan SC92031 device (commit)
o

Add driver for the Davicom DM9601 USB 1.1 ethernet device (commit)
* Various
o

Add driver to charge USB blackberry devices (commit)
o

Add driver for iowarrior USB devices. (commit)
o

Add support for the GTCO CalComp/InterWrite USB tablet (commit)
o

New driver for the Analog Devices ADM1029 hardware monitoring driver (commit)

Crashing soon a kernel near you

This is a list of some of the ongoing patches being developed at the kernel community that will be part of future Linux releases. Those features may take many months to get into the Linus' git tree, or may be dropped. The features are tested in the -mm tree, but be warned, it can crash your machine, eat your data (unlikely but not impossible) or rape your sister (just because it has never happened it doesn't means you're safe):

*

Con Colivas' RSDL process scheduler, which seems to work much better than the stock scheduler according to some reports (LWN article)
* For too long the linux wireless support hasn't been as bright as it should, specially from a desktop-ready POV. A new wireless stack based on the GPLed Devicescape wifi stack has been being developed for many time and soon will be merged. It brings better hardware support, better wireless capabilities, and better tool enablement.
*

The Blackfin architecture
*

Utrace (LWN article)
*

Revoke()/frevoke() system calls (LWN article)
* Mel Gorman's fragmentation avoidance patches and Lumpy reclaim
* Unionfs
*

EXT 4 patches (wiki)
* Lguest
*

Adaptive Readhead
* Reiser 4

Various core changes

*

Remove the SMT-nice feature which idles sibling cpus on SMT cpus to facilitiate nice working properly where cpu power is shared. The idling of cpus in the presence of runnable tasks is considered too fragile, easy to break with outside code, and the complexity of managing this system if an architecture comes along with many logical cores sharing cpu power will be unworkable (commit)
*

EDAC: Add support for Fully-Buffered DIMM APIs to core (commit)
*

Add shadow directory support for sysfs (commit)
*

Add whole_disk partition attribute for disks (commit)
*

Use zone-based counters for: free_pages (commit) and for inactive and active counts (commit)
*

Make mincore work for anon mappings, nonlinear, and migration entries (commit)
*

lockdep: add graph depth information to /proc/lockdep (commit)
*

Support for reshape of a raid6 (commit)
*

Relay: add CPU hotplug support (commit)
*

List all active probes in the system in /sys/kernel/debug/kprobes/list (commit)
*

PCI: Make PCI device numa-node attribute visible in sysfs (commit) Export the numa-node attribute of PCI devices in sysfs so that user applications may choose where to be placed accordingly.
*

PCIEHP: Add Electro Mechanical Interlock (EMI) support to the PCIE hotplug driver. (commit) * EDAC: Add memory scrubbing controls API to core (commit)
*

Make MSI useable more architectures (commit)
*

New toplevel target: headers_check_all (commit)
*

Add the module name for built in kernel drivers (commit)
*

Add retain_initrd boot option to control freeing of initrd memory after extraction (commit)
*

Allow taint flags to be set from userspace by writing to /proc/sys/kernel/tainted, and add a new taint flag, TAINT_USER, to be used when userspace has potentially done something dangerous that might compromise the kernel. This will allow support personnel to ask further questions about what may have caused the user taint flag to have been set. Recommended LWN article: "Tainting from userspace" (commit)

Architecture-specific changes

* x86-32
o

Compile with -freg-struct-return, which returns struct and union values in registers when possible (like pte_t) (commit)
o

Convert i386 PDA code to use %fs (commit)
o

Add option to show more code in oops reports (commit)
o

Support Classic MediaGXm (commit)
* x86-64
o

Add copy_from_user_nocache. This does user copies in fs write() into the page cache with write combining. This pushes the destination out of the CPU's cache, but allows higher bandwidth in some case (commit)
* PPC
o

Add support for the Toshiba's Cell Reference Set 'Celleb' Architecture (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
o

Pa Semi PWRficient CPU support (commit 1), 2, 3, 4, 5, 6, 7, 8, 9, 10)
o

Add kprobes support to ppc32 (commit)
o

Add stackEnable stack overflow checking (DEBUG_STACKOVERFLOW) and stack usage (DEBUG_STACK_USAGE) on ppc32 (commit)
o

Freescale 8xx support (commit), (commit 1, 2, 3, 4, 5)
o

83xx: Add support for MPC8349E-mITX-GP (commit), add base support for the MPC8313E RDB (commit)
o

85xx: Add support for the 8568 MDS board (commit), (commit)
o

PS3: System manager support (commit), vuart add async read (commit), AV Settings Driver (commit), repository storage support (commit), virtual Frame Buffer Driver (commit)
o

Remove the broken Gemini support (commit)
o

Add mpc52xx/lite5200 PCI support (commit) and support for the MPC52xx ATA controller (commit)
o

Add PMI driver for cell blade (commit)
o

Open Firmware serial port driver (commit)
o

Add support for AMCC Taishan 440GX evaluation board (commit)
* ARM
o

Add kexec support (commit)
o

Add support for SMDK2443 (commit)
o

Add ARM11 oprofile support (commit), (commit), (commit)
o

Add support for AT91SAM9263 (commit 1, 2, 3, 4)
o

Add Samsung S3C2443 support (commit), (commit), (commit)
o

Add support for AT91SAM9XE processors. (commit)
o

AACI record support on Versatile platform (commit)
o

Add support for the RealView/EB MPCore revC platform (commit)
o

Add initial board support for Contec Hypercontrol Micro9 boards. (commit)
o

Add Armzone QT2410 support(commit)
* S390
o

Mark kernel text section read-only. (commit)
o

noexec protection on s390 hardware. This hardware does not have any bits left in the pte for a hw noexec bit, so this is a different approach using shadow page tables and a special addressing mode that allows separate address spaces for code and data (commit)
o

Support for s390 Pseudo Random Number Generator (commit)
o

Boot from NSS support (commit)
o

Add AF_IUCV socket support (commit)
o

Rewrite of the IUCV base code (commit), (commit), (commit)
o

Adapt the following drivers to the new IUCV API: netiucv (commit), vmlogrdr (commit), monreader (commit),
o

Hypervisor filesystem (s390_hypfs) for z/VM (commit)
o

Calibrate delay and bogomips (commit)
o

Add support for clock synchronization to an external time reference (ETR) (commit)
o

Add crypto support for 3592 tape devices (commit)
* PARISC
o

Generic BUG (commit)
o

Add TIF_RESTORE_SIGMASK support (commit)
o

Generic time infrastructure support (commit)
* MIPS
o

Add basic support for the SMARTMIPS extension. This extension is currently implemented by 4KS[CD] CPUs support (commit)
o

Iomap implementation (commit)
o

Add UART support for Philips PNX8330/8550/8950 (commit)
o

Add Cobalt Server front LED (commit) and MTD device support (commit)
o

TURBOchannel bus support for the DECstation (commit),(commit)
* SPARC64
o

Add PCI MSI support on Niagara. (commit)
o

Remove the broken SUN_AURORA driver. (commit)
*

IA64: Altix: Add ACPI SSDT PCI (commit) and ACPI SSDT PCI device support (commit)

Filesystems

* eCryptfs
o

Public key encryption support (commit), (commit)
o

Encrypted passthrough: it provides an option to provide a view of the encrypted files such that the metadata is always in the header of the files, regardless of whether the metadata is actually in the header or in the extended attribute. This mode of operation is useful for applications like incremental backup utilities that do not preserve the extended attributes when directly accessing the lower files (commit)
o

Introduce the ability to store cryptographic metadata into an lower file extended attribute rather than the lower file header region. The two new nmount options are: 1) ecryptfs_xattr_metadata: when set, newly created files will have their cryptographic metadata stored in the extended attribute region of the file rather than the header 2) ecryptfs_encrypted_view: when set this option causes eCryptfs to present applications a view of encrypted files as if the cryptographic metadata were stored in the file header, whether the metadata is actually stored in the header or in the extended attributes (commit)
* GFS2
o

Add writepages for "data=writeback" mounts (commit)
o

Speed up readdir (commit)
o

Increase default lock limit (commit)
o

Shrink gfs2_inode memory by half (commit)
* CIFS:
o

Additional POSIX CIFS Extensions infolevels (commit), (commit)
o

Allow update of EOF on remote extend of file (commit)
* XFS
o

Reduction global superblock lock contention near ENOSPC (commit)
o

Make growfs work for amounts greater than 2TB (commit)
*

NFS: IPv6 support (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)
*

Minix: V3 format support (commit)
*

UFS2: read/write support (commit), (commit), (commit)
*

JFFS: Remove JFFS (version 1), as scheduled. Unmaintained for years, few if any users (commit)
*

JFS: Add lockdep annotations (commit)
*

Debugfs: implement symbolic links (commit)

Networking

*

Add Camellia cipher support to IPSEC (commit), (commit)
*

IPv4 over IPv6 IPsec tunnel (commit)
*

IPv6 over IPv4 IPsec tunnel (commit)
*

Make net use the jiffies rounding code (commit)
*

Add CONFIG_NET_KEY_MIGRATE option which makes it possible for user application to send or receive MIGRATE message to/from PF_KEY socket. This feature is required, for instance, in a Mobile IPv6 environment with IPsec configuration where mobile nodes change their attachment point to the Internet. Detail information can be found in the internet-draft "draft-sugimoto-mip6-pfkey-migrate" (commit), (commit)
* NETFILTER
o

NAT: optional source port randomization support (commit)
o

Add IPv6-capable TCPMSS target support (commit)
o

Add SANE connection tracking helper (commit)
o

Introduces match for Mobility Header (MH) described by Mobile IPv6 specification (RFC3775) (commit)
* XFRM
o

Add CONFIG_XFRM_MIGRATE option which makes it possible for for user application to send or receive MIGRATE message to/from netlink socket (commit)
o

User interface for handling XFRM_MSG_MIGRATE (commit)
o

Extension for dynamic update of endpoint address(es) (commit)
*

X.25: Add /proc/net/x25/forward to view active forwarded calls. (commit) and /proc/sys/net/x25/x25_forward to control forwarding (commit). Also add call forwarding (commit)

Various subsystems

Software suspend

crypto/audit

*

Audit: "lockdown" mode where further configuration changes cannot be made. Any attempt to change the configuration while in this mode is audited. To change the audit rules, you'd need to reboot the machine (commit)
*

Add the Camellia cipher algorithm. Camellia is a symmetric key block cipher developed jointly at NTT and Mitsubishi Electric Corporation (commit 1, 2, 3)
*

tcrypt: Added test vectors for SHA384 HMAC and SHA512 HMAC (commit)
*

Allow multiple frontends per backend (commit)
*

fcrypt: Add FCrypt from RxRPC (commit)
*

pcbc: Add Propagated CBC template (commit)

Drivers

Network drivers

*

sky2: add Wake On Lan support (commit), Yukon Extreme support (commit)
*

s2io: Making LRO and UFO as module loadable parameter. (commit) and add a loadable parameter to enable or disable vlan stripping in frame (commit)
*

ucc_geth: Add support to local-mac-address property (commit)
*

zd1211rw: 4 new ZD1211B device ID's (commit), (commit), (commit)
*

prism54: add ethtool -i interface (commit)
*

ipw2200: add iwconfig rts/frag auto support (commit)
*

sungem_phy: support bcm5461 phy, autoneg (commit)
*

spidernet: add support for Celleb (commit), (commit)
*

skge: WOL support (commit)
*

forcedeth: statistics supported (commit)
*

natsemi: Support Aculab E1/T1 PMXc cPCI carrier cards (commit)
*

phylib: Add support for Marvell 88e1111S and 88e1145 (commit)
*

Remove the broken SKMC driver (commit)
*

Remove the broken OAKNET driver (commit)

SATA/IDE/SCSI

*

IDE: ACPI support for IDE devices (commit)
* SATA
o

Update libata core layer to use devres (commit), (commit)
o

Add PIIX3 support to ata_piix (commit)
o

Support PCI MSI in sata_vsc (commit)
o

sata_promise: ATAPI support (commit), add TX2plus PATA support (commit)
o

sata_sis: support SiS966/966L (commit), add support for PATA (commit)
o

sata_via: PATA support (commit)
o

sata_nv: add suspend/resume support (commit)
o

pata_cs5520: add suspend/resume support (commit)
o

libata: implement HDIO_GET_IDENTITY (aka hdparm -i) (commit)
o

ACPI _SDD (commit) and _GTF support (commit)
* SCSI
o

qla3xxx: Add support for Qlogic 4032 chip. (commit)
o

fusion: greater than 255 target and lun support (commit), inactive raid support (commit)
o

lpfc: add PCI error recovery support (commit)
o

wd33c93: Support fast SCSI with WD33C93B (commit)
o

qla2xxx: Add MSI-X support. (commit)
o

libsas: Add a sysfs knob to enable/disable a phy (commit)
o

aic94xx: Add support for scanning SAS devices asynchronously (commit)

Graphics

*

Add display output class (commit), (commit)
*

Remove broken video drivers that had already been marked as BROKEN in 2.6.0 three years ago and are still marked as BROKEN: FB_CYBER, FB_VIRGE, FB_RETINAZ3 and FB_SUN3 (commit)
*

remove the broken FB_S3TRIO driver (commit)
*

tgafb: support the DirectColor visual (commit)

ALSA

*

HDA: Add support for Fujitsu PI1556 Realtek ALC880 (commit), add sigmatel 9205 eapd support (commit), add asus-laptop model for ALC861 (ALC660) (commit), add support for Evesham Voyager C530RD laptops (commit), add asus model to ALC861 codec (commit), add support for Sigmatel STAC9202/9250/9251 codecs (commit), add toshiba model to ALC861 codec (commit), add support for Toshiba M105 to Realtek patch (commit), add support for Clevo M540JE, M550JE laptops (Nvidia MCP51 chipset, ALC883 codec) (commit), add support for Medion laptops (commit), add support for VIA VT1708(A) HD audio codec (commit), add new modesl for Realtek codecs (commit), add HP BPC-D7000 support (commit), add support for Sony UX-90s (commit), add model for ASUS W3j laptop (commit), add ALC861VD/ALC660VD support (commit), add support for Samsung Q1 Ultra (commit)
*

emu10k1: Add Audio capture support for Audigy 2 ZS Notebook (commit), add support for 14dB Attenuation PADS on DACs and ADCs. (commit), added support for emu1010, including E-Mu 1212m and E-Mu 1820m (commit), add emu1010 internal clock rate control for 44100 or 48000. (commit)
*

hdsp: support for mixer matrix of RME9632 rev 152 (commit)
*

hdspm: Add support for AES32 (commit)
*

Add snd-portman2x4 driver for Midiman Portman 2x4 MIDI device (commit)
*

ice1724: Add support of M-Audio Audiophile 192 (commit) and add support for Prodigy 7.1 XT (commit)
*

Enable capture from line-in and CD on Revolution 5.1 (commit)
*

Add Conexant audio support to the HD Audio driver (commit)
*

usbaudio: Add support for Edirol UA-101 (commit), allow pausing (commit), add PCR-A PCM support (commit)
*

ac97: Suppress power-saving mode on non-supporting drivers (commit)
*

Add support of the ESI Waveterminal 192M to the ice1724 ALSA driver (commit)
*

Enable the analog loopback of the Revolution 5.1 (commit)

Input

*

Add force feedback driver for PantherLord USB/PS2 2in1 Adapter (commit)
*

Add support for Logitech Momo racing wheel (commit)
*

Add Atlas button driver (commit)
*

wistron: Add support for Fujitsu-Siemens Amilo D88x0 (commit)
*

gpio-keys: Add keyboard driver for GPIO buttons (commit)
*

HID: Add support for Logitech Formula Force EX (commit), allow force feedback for multi-input devices (commit), quirk for multi-input devices with unneeded output reports (commit), handle multi-interface devices for Apple macbook pro properly (commit), add support for using the HID subsystem in bluetooth (commit)
*

Remove scan_keyb driver (commit)

USB

*

usbmon: add a new, "binary" API in addition to the old, text API usbmon had before. The new API allows for less CPU use, and it allows to capture all data from a packet where old API only captured 32 bytes at most (commit)
*

Add dynamic id support to usb-serial core (commit)
*

Add autosuspend support for usb printer driver (commit)
*

Add Sony PS3 ohci/ehci bus support (commit), (commit)
*

Add power management support (commit) and better ethtool support for kaweth (commit)
*

Add EPIC support to the io_edgeport driver (commit)
*

PL2303: Willcom WS002IN Support. (commit)
*

Implement support for "split" endian OHCI (commit) and EHCI with big endian MMIO (commit)
*

EHCI: force high-speed devices to run at full speed (commit)
*

Add "activesync" support for rndis_host (commit)
*

ASIX: Add IO-DATA ETG-US2 Support. (commit)
*

Remove CONFIG_USB_BANDWITH - "Enforce USB bandwidth allocation", since it's no longer neccesary (commit)

V4L

*

Bttv cropping support (commit)
*

Adds video output routing (commit)
*

Pvrusb2: Enable radio mode for 24xxx devices (commit), implement multiple minor device number handling (commit), implement /dev/radioX (commit), allow streaming from /dev/radioX (commit)
*

Add support for more Encore TV cards (commit), add a new qt1010 tuner module (commit), (commit), add VIDIOC_G_ENC_INDEX ioctl (commit), SN9C102 driver updates (commit), add support for svideo/composite input of the Terratec Cinergy 1400 DVB-T (commit), add support for the ASUS P7131 remote control (commit), add cablestar2 support (commit), add support for Terratec Cinergy HT PCI (commit), add support for the Technotrend 1500 bundled remote (commit), add support for Ultraview DVB-T Lite (commit), initial support for Sigmatek DVB-110 DVB-T (commit), initial support for MSI Mega Sky 580 based on Uli m9206 (commit), initial support for MSI Mega Sky 580 DVB-T based on GL861 (commit)

Cpufreq

*

Introduce Nehemiah C (commit)
*

Enhanced PowerSaver driver present in VIA C7 processors (commit)
*

Add VT8235 support (commit)
*

Remove "ignore_latency" option (commit)

ACPI

*

Add support for ACPI controlled removable drive bays such as the IBM ultrabay or the Dell Module Bay (commit)
*

Implement simplified Table Manager. It reduces the size of the kernel-resident ACPICA by 5% (commit), (commit), (commit)
*

ACPICA: Removed all 16-bit support (commit)
*

Remove motherboard driver (redundant with PNP system driver) (commit)
*

Remove the generic hotkey driver, as scheduled - the hotkeys are not part of the ACPI specification so they must be handled instead in the platform-specific drivers (commit)
*

Convert ACPI to sysfs framework - removes /sys/firmware/acpi (commit)
*

Add backlight sysfs support for acpi video driver. (commit)
*

sony_acpi: Add backlight support (commit), add backlight support (commit), add SNC device support for Sony Vaios (commit), rename this driver to sony-laptop (commit)
*

sony-laptop: Remove /proc/acpi/sony interface and implement platform_device. (commit)
*

Add asus-laptop driver (commit 1, 2, 3, 4, 5, 6, 7, 8)

I2C

*

Add suspend/resume/shutdown support (commit)
*

i2c-piix4: Add support for the ATI SB600 SMBus controller (commit)
*

i2c-parport: Add support for One For All remote JP1 interface (commit)
*

i2c-viapro: Add support for the VIA CX700 south bridge (commit)

Various

* hwmon:
o

it87: Add PWM base frequency control (commit)
o

Add support for the W83627DHG chip in w83627ehf (commit)
*

APM: Add shared version of APM emulation (commit), (commit), (commit), (commit)
* SPI
o

Freescale iMX SPI controller driver (BIS+) (commit)
o

eeprom driver (commit)
o

controller driver for OMAP Microwire (commit)
o

atmel_spi driver (commit)
* MTD
o

EXcite nand flash driver (commit)
o

S3C2410: Hardware ECC correction code (commit)
o

OneNAND: Add support for auto-placement of out-of-band data (commit)
*

RDMA: Add multicast communication support (commit)
*

IPoIB: Connected mode experimental support (commit)
*

RTC framework driver for CMOS RTCs (commit)
*

RTC gets sysfs wakealarm attribute (commit)
*

mmc: Add support for SDHC cards (commit)
*

tifm_core: add suspend/resume infrastructure for tifm devices (commit)
*

tifm_sd: add suspend and resume functionality (commit)
*

leds: Add IPAQ h1940 LEDs support (commit)
*

backlight: Add Frontpath ProGear HX1050+ driver (commit)
*

drivers: add LCD support (commit)
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: linux kernel 2.6.22 2007-07-08 23:49 UTC
Author: fei    Posted: 2007-07-09 10:18    Length: 57,944 byte(s)
[Original] [Print] [Top]
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2
http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.22
2.6.22 includes an optional, more SMP-friendly SLUB allocator (http://lwn.net/Articles/229984), new and much better wireless and firewire stacks, a new architecture called Blackfin, a LVM-for-flash-storage-devices called UBI, event notifications through file decriptors (http://lwn.net/Articles/225714), the POSIX-draft utimensat() syscall, the 'TCP Illinois' and 'YeAH-TCP' congestion control algorithms, IPV6 Optimistic Duplicate Address Detection, AF_RXRPC socket support, relocatable x86-64 kernel support, improvements to the CFQ I/O scheduler, more process footprint information in /proc, various new drivers and many other improvements.

Important things (AKA: ''the cool stuff'')

New Slab allocator: SLUB

(Recommended article: "The SLUB allocator")

The slab allocator is a object-caching kernel memory allocator used for dealing with "objects that are frequently allocated and freed" (see the "slab allocator" paper from Jeff Bonwick). It is a critical piece of the innards of the memory management subsystem, and a critical piece to get good performance. The Linux slab allocator works quite well for pretty much everybody; however some people (SGI) has found its current design inefficient in some cases. For example, in 1K nodes/processors configurations, several GB of memory are wasted only in object queues, not counting the objects themselves. The memory management quickly becomes too complex when adding features like proper NUMA policy support.

As result, a new slab allocator called "SLUB" has been developed by Christoph Lameter from SGI, to solve those and other problems. Its design is simpler, but it also addresses some problems that can result in better performance in some cases and more efficient memory usage (see the full design notes in this commit link). It also has better debug capabilities. There's a slabinfo userspace tool that you can find in Documentation/vm/slabinfo.c.

Its aim is to transparently replace slab, but in 2.6 this new slab allocator is optional and not enabled by default. You can enable it at compile time (making it the third option along with SLOB, the embedded-oriented slab allocator). SLUB has been tested for some time and it's solid enough to try it on your systems, but due to the importance of this part of the kernel, it won't completely replace the current slab allocator until more exposure and testing has been done, hence it's not recommended to use it in production systems. Testing reports, specially regressions, are greatly appreciated.

User documentation can be found here

Code: mm/slub.c;

New Wireless stack

For too many years, Linux wireless support has worked, but not very well. 2.6.22 has a completely new, better wireless stack included. This new wireless stack has been donated by the known WiFi specialist company Devicescape (many thanks to Devicescape for their contribution and support to open source!). This wireless stack has many features, like a complete software MAC implementation, WEP, WPA, a "link-layer" bridging module, hostapd, QoS support to prioritize things like VoIP, 802.11g support, and full debug capabilities. All of this comes in a single implementation that drivers can use without rewriting those features themselves, which sadly has been done multiple times in the linux WiFi world.

Another feature of this stack is a completely new user interface. The old stacks have an ugly ioctl-based interface which were standarized under the name of "wireless extensions" (wext). The new interface uses a netlink-based interface, suited for the needs of desktop-based configuration interfaces, but retaining at the same time userspace compatibility with the old interface.

The disadvantage is the lack of drivers using this stack: the drivers that have been in the tree for a long time do not support this stack, and will need to be ported (which will hopefully not be that hard, since the new stack is actually a much better ground to build drivers upon that the current mess). There are quite a lot of new and ported drivers that are already using the new stack which have not been merged in this release, but will get merged in future releases, like the RT2x00 drivers, the bcm43xx driver, zd1211rw, adm8211, rtl818x, Intel iwlwifi (ipw3945 and ipw4965). Distributions like Ubuntu and Fedora already are using them.

In any case, this is the building block that will bring better wireless support to Linux.

Code: (commit 1, 2, 3, 4, 5, 6, 7)

New FireWire stack

The FireWire stack is also getting a rewrite, with the old stack being kept around for the time being. The main driver behind this work, according the author, is "to get a small, maintainable and supportable FireWire stack, with an acceptable backwards compatibility story".

This stack has many advantages: Considerably leaner codebase (less than 8k lines of code compared to 30k lines of code in the old stack, and a similar size reduction in the sizes of the binary files), cleaned-up and improved in-stack APIs (with the side effect of getting rid of a bunch of old bugs) and design (no kernel threads, compared to one subsystem thread and one thread per FireWire controller in the old stack), consolidation of the currently four userspace ABIs into one improved ABI, the userspace ABI is changed, but compatibility is kept stable at library level (libraw1394 and libdc1394), and per-device device files, letting userspace set up finer-grained access control, such as preventing direct access to FireWire storage devices.

Still missing features relative to the old stack are: eth1394 (IP over 1394) not ported over, and no support for the PCILynx chipset (less important because that chip is very rare), isochronous support at the moment only for OHCI-1.1 chips, not on OHCI-1.0 chips. Plus the disadvantage of any new piece of code: despite being tested in Fedora rawhide etc, it can contain many bugs.

Code: (commit 1, 2, 3, 4)

Linux1394.org's Release Notes: posting, wiki

Signal/timer events notifications through file descriptors

(Recommended article: "Kernel events without kevents")

Linux currently lacks a proper way to get complete event reporting like other systems do. poll/epoll isn't a solution for everything, because it only works in file descriptors so things like timer and signal notifications aren't covered by it, so to get fe. signal notifications in the main event loop people has needed to use (clever) hacks, like writing a byte between two internal pipes.

After considering the inclusion of an implementation of a FreeBSD/OSX-like generic event notification mechanism, a simpler, more Unixy solution (inspired by Linus some years ago) has been adopted.

Three new syscalls have been added: signalfd()/timerfd()/eventfd(). What those syscalls do is to implement event delivery into file descriptors. You can use the standard read(), select(), poll(), epoll() on those fds. They've the following differences

* The signalfd() system call implements signal delivery into a file descriptor. That fd supports the standard calls poll(), read(), select(), epoll() etc. This allows a program to receive signals via that file descriptor, which are more flexible.
* The timerfd() system call implements timers event delivery into file descriptors. As with signalfd(), you can use standard calls poll(), epoll(), select(), read()...
* The eventfd() system call is a very simple and light file descriptor that can be used as event wait/dispatch by userspace (both wait and dispatch) and by the kernel (dispatch only). It can be used instead of pipe(2) in all cases where those would simply be used to signal events. As the two previous syscalls, you can use the standard calls with the returned fd.

Code: Anonymous inode source (commit), (commit) ; signalfd: (commit), (commit), (commit); timerfd: (commit), (commit), (commit); eventfd: (commit), (commit), (commit)

Blackfin architecture

2.6.22 adds support for yet another architecture: The Analog Devices Blackfin processor architecture, and currently supports the BF533, BF532, BF531, BF537, BF536, BF534, and BF561 (Dual Core) devices, with a variety of development platforms including those available from Analog Devices (BF533-EZKit, BF533-STAMP, BF537-STAMP, BF561-EZKIT) and Bluetechnix! Tinyboards.

The Blackfin architecture was jointly developed by Intel and Analog Devices Inc. (ADI) as the Micro Signal Architecture (MSA) core and introduced it in December of 2000. Since then ADI has put this core into its Blackfin processor family of devices. The Blackfin core has the advantages of a clean, orthogonal, RISC-like microprocessor instruction set. It combines a dual-MAC (Multiply/Accumulate), state-of-the-art signal processing engine and single-instruction, multiple-data (SIMD) multimedia capabilities into a single instruction set architecture.

The Blackfin architecture, including the instruction set, is described by the ADSP-BF53x/BF56x Blackfin Processor Programming Reference. The Blackfin processor is already supported by major releases of gcc, and there are binary and source rpms/tarballs available for many architectures. There is complete documentation, including "getting started" guides, which provides links to the sources and patches you will need in order to set up a cross-compiling environment for bfin-linux-uclib. All the code is actively supported by Analog Devices Inc, at: http://blackfin.uclinux.org

Code: (commit 1, 2, 3, 4, 5, 6)

UBI

The shortest description for UBI is "LVM for NAND flash memory devices". Why duplicate LVM? Well, because flash devices can't really be handled as typical hard disks. UBI provides wear-levelling support across the whole flash chip. UBI completely hides 2 aspects of flash chips which make them very difficult to work with: 1. wear of eraseblocks; 2. bad eraseblocks. UBI also makes it possible to dynamically create, delete and re-size flash partitions (UBI volumes).

Home page: http://www.linux-mtd.infradead.org/doc/ubi.html

Code: (commit), (commit)

Secure RxRPC sockets

The RxRPC protocol driver included in 2.6.22 provides a reliable two-phase transport on top of UDP that can be used to perform RxRPC remote operations. This is done over sockets of AF_RXRPC family, using sendmsg() and recvmsg() with control data to send and receive data, aborts and errors. The AFS filesystem has been ported to use AF_RXRPC instead of the old RxRPC code.

Code: (commit 1, 2, 3, 4)

Process footprint measurement facility

2.6.22 adds a "Referenced" line to each VMA in /proc/pid/smaps, which indicates how many pages within it are currently marked as referenced or accessed. There's also a new /proc/pid/clear_refs file. When any non-zero number is written to this clear_refs file, the Reference fiel is cleared-

With those mechanism it is now possible to measure approximately how much memory a task is using by clearing the reference bits with "echo 1 > /proc/pid/clear_refs" and checking the reference count for each VMA from the /proc/pid/smaps output at a measured time interval (fe. 1 second). This is a valuable tool to get an approximate measurement of the memory footprint for a task.

Code: (commit), (commit)

utimensat()

The next revision of POSIX will support fine-grained filesystem timestamps. struct stat will report nanosecond values. During the development one additional problem was found: there is no interface to set the file timestamp with that precision. utimes only takes a timeval structure which allows only micro-second resolution. This is why the utimensat() interface was created. It is basically the same as futimesat() interface but it takes a timespec structure.

Code: (commit)

New drivers

*

Add ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder. It took three core maintainers, over four years of work, eight new i2c modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac support from Axel Thimm, (hardware) support from Hauppauge, support and assistance from the v4l-dvb people and the many, many users of ivtv to finally make it possible to merge this driver into the kernel (commit)
*

Add driver for the Maxim DS1WM, a 1-wire bus master ASIC core (commit)
*

Add au1550 SPI controller driver (commit)
*

Add sensable phantom driver (commit)
*

Add RTC class driver for the Maxim MAX6900 (commit) and for the rtc-rs5c313 driver (commit)
*

Add MPC52xx PSC SPI master driver (commit)
*

Add serial drive for RM9000 (commit) and for PMC MSP71xx (commit)
*

Add user mode SPI device driver (commit)
* Graphics
o

pm3fb: Preliminary 2.4 to 2.6 port (commit)
o

New framebuffer driver (vt8623fb) for VIA VT8623 (commit)
o

Hecuba framebuffer driver (commit)
o

arkfb: new framebuffer driver for ARK Logic cards (commit)
o

atmel_lcdfb: AT91/AT32 LCD Controller framebuffer driver (commit)
o

Add Sun XVR-500 framebuffer driver. (commit) and Sun XVR-2500 framebuffer driver. (commit)
* Hwmon:
o

New Apple SMC driver (hardware monitoring and control) which provides support for the Apple System Management Controller, which provides an accelerometer (Apple Sudden Motion Sensor), light sensors, temperature sensors, keyboard backlight control and fan control. Only Intel-based Apple's computers are supported (MacBook Pro, MacBook, MacMini) (commit)
o

New coretemp driver for the digital temperature sensor found in recent Intel Core CPUs (commit)
o

New max6650 driver for the Maxim MAX6650 and MAX6651 fan speed monitoring and control chips (commit)
o

hwmon-vid: Add support for VIA Esther (commit)
o

New driver for the Analog Devices AD7416, AD7417 and AD7418 chips (commit)
o

Add keyboard blink driver (commit)
o

MTX-1 Watchdog driver (commit)
* Network:
o

Add a driver Mellanox ConnectX InfiniBand adapters (commit)
o

Add Marvell Libertas 8388 802.11b/g USB driver (commit)
o

Add zr364xx V4L2 driver for USB webcams based on the zr364xx chipsets (commit)
* pasemi
o

Cpufreq driver for PA Semi PWRficient processors (commit)
o

PA6T oprofile support (commit)
o

Add pasemi hardware rng driver for the on-chip hardware random number generator on PA Semi PA6T-1682M (commit)

Various core changes

*

Futex priority based wakeup. Today, all threads waiting for a given futex are woken in FIFO order (first waiter woken first) instead of priority order. This changes makes use of plist (priority ordered lists) instead (commit)
*

PRIVATE futexes (commit)
*

Replace pgd management via slabs through 'quicklists'. Quicklists cut allocation overhead for page table pages down to a fraction in platforms like x86_64 (commit), (commit), (commit), (commit), (commit), (commit)
*

Change default dirty-writeback limits. This means the kernel will write "dirty" caches differently. If you notice your system behaves poorly, please report it, but before that change the limits (via /proc/sys/vm) to check if this change is the cause. dirty_background_ratio defaulted to 10, now defaults to 5. vm_dirty_ratio defaulted to 40, now it's 10 (commit)
*

Many improvements to the CFQ I/O scheduler: Implement logic for detecting cooperating processes (commit), (commit). Rework the queue handling, inspired from Ingo's CFS process scheduler: currently CFQ uses a doubly linked list per priority level for sorting and service uses, those lists are killed and now an rbtree of cfq_queue's is maintained, sorted by when to service them (commit), (commit), (commit), (commit)
*

Make multithreaded probing work per subsystem instead of per driver (commit), (commit)
*

Notify userspace of network device renames (commit)
*

Overdue removal of the mount/umount uevents (commit)
*

Add support for the Motorola sysv68 disk partition (slices in motorola doc) (commit)
*

Add support for finding out the current file position, open flags and possibly other info in the future. These new entries are added: /proc/PID/fdinfo/FD/* and /proc/PID/task/TID/fdinfo/FD/* (commit)
*

Add support for deferrable timers (commit) and
*

Make vm statistics update interval configurable (commit)
*

Add a new deferrable delayed work init (commit)
*

Remove artificial maximum 256 loop device that can be created due to a legacy device number limit (commit)
*

Kprobes: provides a debugfs knob to turn kprobes on/off (commit)
*

CRC ITU-T V.41 (commit)
*

vt: allow for the palette to be exposed and changed via sysfs (commit), add color support to the "underline" and "italic" attributes as in OpenBSD/NetBSD-style (vt220) and xterm (commit)

Architecture-specific changes

* x86-32
o

Add an option for the VIA C7 which sets appropriate L1 cache (commit)
o

Make COMPAT_VDSO runtime selectable. (commit)
o

Support Oprofile for AMD Family 10 CPUs (commit)
o

Allow boot parameter "noreplace-smp" for disable of SMP altinstructions (commit)
o

Implement alternative_io for i386 (commit)
o

x86: add command line length to boot protocol (commit)
o

Voyager: add SMP alternatives (commit)
* x86-64
o

Relocatable Kernel Support so that it can be loaded and run at any 2M aligned address, below 512G (commit), (commit)
o

Split remaining fake nodes equally (commit)
o

Fake NUMA for cpusets document (commit)
o

Fixed size remaining fake nodes (commit)
o

Configurable fake NUMA node sizes (commit)
* PPC
o

Powermac: Support G5 CPU hotplug (commit), suspend to disk on G5 (commit)
o

Introduce address space "slices" (commit)
o

Spufs support for 64K LS mappings on 4K kernels (commit)
o

PowerPC MSI infrastructure (commit), (commit), (commit), (commit), (commit), (commit)
o

Early serial debug support for PPC44x (commit)
o

DEBUG_PAGEALLOC for 64-bit (commit) and 32-bit (commit)
o

Handle recursive oopses (commit)
o

64K page support for kexec (commit)
o

Use generic apm-emulation (commit)
o

EDAC ECC software scrubber (commit)
o

Add powerpc PCI-E reset support (commit)
o

Create Marvell mv64x60 MPSC (serial) platform_data (commit), create Marvell mv64x60 ethernet platform_data (commit), add interrupt support for Marvell mv64x60 chips (commit), add Marvell mv64x60 PCI bridge support (commit), create Marvell mv64x60 I2C platform_data (commit)
o

Add arch/powerpc support for the Motorola PrPMC2800 (commit), (commit), (commit)
o

Support for the Ebony 440GP reference board in arch/powerpc (commit), (commit)
o

Add support for 750CL Holly board (commit), (commit)
o

Add bootwrapper support for Marvell/mv64x60 I2C (commit), (commit), Holly bootwrapper (commit), add bootwrapper support for Marvell/mv64x60 hostbridge (commit)
o

Add uartlite boot console driver for the zImage wrapper (commit)
o

Remove the unused HTDMSOUND driver (commit)
o

ibmebus: dynamic addition/removal of adapters (commit)
o

86xx: Added 2nd PCI-Ex controller support for MPC8641 HPCN to DTS (commit),
o

83xx: Add MPC832x RDB board support. (commit)
o

85xx: Add initial MPC8544 DS platform files. (commit)
o

Add arch/powerpc driver for UIC, PPC4xx interrupt controller (commit)
o

PS3: Add DABR support (commit), CBE thermal support on (commit)
* ARM
o

Add ARM V7 support (commit), (commit), (commit), (commit), (commit)
o

Add support for Atmel AT91SAM9RL processors. (commit), (commit)
o

Support for Micrel/Kendin KS8695 processor (commit)
o

Add support for the TI DaVinci platform (commit)
o

Add Intel KIXRP435 Reference Platform based on IXP43x processor (commit)
o

Support for dynticks and hence the new clocksource/event infrastructure (commit), (commit), (commit), (commit), (commit), (commit)
o

Add stacktrace support and make oprofile use it (commit)
o

Add ability to dump exception stacks to kernel backtraces (commit)
o

Add GPIO debug support. /sys/kernel/debug/omap_gpio dumps the state of all GPIOs that have been claimed, including basic IRQ info if relevant (commit)
o

Add new boards: picotux 200 ARM (commit), KS8695 Micrel Development board (commit), (commit); mach type cc9p9360js (commit), DSM-G600 (commit)
o

iop13xx: msi support (commit)
o

H1940: Add bluetooth support (commit)
o

Add support for ICSIDE interface on RiscPC (commit)
o

AT91: Support ADS7846 touchsceen on boards SAM9263-EK (commit) and SAM9261-EK (commit);
* MIPS
o

Add bcm1480 ZBus trace support (commit)
o

Remove Momenco Jaguar ATX support (commit), (commit)
o

Remove Momenco Ocelot G support (commit)
* SH
o

Clockevent/clocksource/hrtimers/nohz TMU (SH-3 and SH-4) support. (commit)
o

Kdump support. (commit)
o

Bring kgdb back from the dead. (commit)
o

Generic BUG() support. (commit)
o

Support for: solution engine boards 7722 (commit) and SH7780 (commit), (commit); MS7712SE01 board (commit), SH7785 Highlander board (R7785RP). (commit), L-BOX RE2 (commit), se7780 PCI (commit). SH7722 clock framework support. (commit)
* SPARC64:
o

Provide mmu statistics via sysfs (commit)
o

Proper multi-core scheduling support (commit)
o

Unify timer interrupt handler (commit)
o

Add clocksource/clockevents support (commit)
o

Add support for bq4802 TOD chip, as found on ultra45 (commit)
o

SUN4U PCI-E controller support (commit)
* S390
o

Improved oops output. (commit)
o

Improved kernel stack overflow checking. (commit)
o

Generic BUG(). (commit)
o

Add hardware capability support (ELF_HWCAP). (commit)
o

Processor degradation notification through uevents. This can happen e.g. because the cpus are overheating. The cpu capability can be read via /sys/devices/system/cpu/cpuN/capability (commit)
o

zfcpdump support. (commit)
* M68K
o

Early parameter support (commit)
o

Discontinuous memory support (commit)
o

Runtime patching infrastructure (commit)
o

Atari fb revival (commit)
o

Atari keyboard and mouse support (commit)
o

Atari SCSI revival (commit)
* UML
o

Turn on SCSI support (commit)
o

Add separated IRQ stacks (commit)
o

Shrink kernel stacks (commit)
o

Speed up several critical hot paths: page faults, page table walking, exec... (commit), (commit), (commit), (commit), (commit), (commit), (commit)
* H8300
o

Convert h8300 to generic timekeeping (commit)
o

Add zImage support (commit)
o

Generic irq (commit)
* AVR32
o

Board code for ATNGW100 (commit)
o

Generic BUG() handling (commit)
*

IA64: Add the Itanium Machine Check (MC) Error Injection Tool . The IPF Machine Check (MC) error inject tool is used to inject MC errors from Linux and is a test bed for IPF MC work flow including hardware correctable error handling, OS recoverable error handling, MC event logging, etc. Documentation here. Code: Commit 1 , 2, 3, 4, 5
*

SuperH: smc91x support (commit)

Various subsystems

Filesystems

* GFS2
o

Consolidate transport protocols (commit)
o

Add orphan purging code (commit), (commit)
o

Add gfs2_tool lockdump support (commit)
* OCFS2:
o

Sparse b-tree support that allows ocfs2 to support sparse files (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
o

Implement compat_ioctl() for 64/32 bit compatibility (commit)
* CIFS:
o

Add IPv6 support (commit)
o

Add support for POSIX mkdir, which improves performance (commit), (commit)
o

UID/GID override on CIFS mounts to Samba (commit)
* AFS
o

Implement basic file write support, including write, truncate, fsync, fdatasync, chmod, chown, chgrp, utime. Shared-writable mappings are not supported rigth now (commit)
o

Clean up the AFS sources (commit)
o

Handle multiple mounts of an AFS superblock correctly. (commit)
o

Add "directory write" support. Add support for the create, link, symlink, unlink, mkdir, rmdir and rename VFS operations to the in-kernel AFS filesystem (commit)
o

Add support for the CB.GetCapabilities operation. (commit)
o

Implement the CB.InitCallBackState3 operation. (commit)
o

implement statfs (commit)
o

Add security support. Kerberos IV tickets are added as RxRPC keys are added to the session keyring with the klog program. open() and other VFS operations then find this ticket with request_key() and either use it immediately (eg: mkdir, unlink) or attach it to a file descriptor (open) (commit)
o

Update the AFS fs documentation. (commit)
*

NFS: Introduce rpcbind: replacement for in-kernel portmapper (commit), (commit), (commit), (commit), (commit)
*

JFFS2: Improve read_inode memory usage (commit)
*

UDF: Support files larger than 1G (commit)
*

FAT: It seems that the recent Windows changed specification, and it's undocumented. Windows doesn't update ->free_clusters correctly. This patch doesn't use ->free_clusters by default. (instead, add "usefree" for forcing to use it) (commit)

Networking

*

TCP Illinois congestion control. This is an implementation of TCP Illinois invented by Shao Liu at University of Illinois. It is a another variant of Reno which adapts the alpha and beta parameters based on RTT. The basic idea is to increase window less rapidly as delay approaches the maximum. See the papers and talks to get a more complete description (commit), (commit)
*

YeAH-TCP congestion control algorithm implementation. YeAH-TCP is a sender-side high-speed enabled TCP congestion control algorithm, which uses a mixed loss/delay approach to compute the congestion window. It's design goals target high efficiency, internal, RTT and Reno fairness, resilience to link loss while keeping network elements load as low as possible. For further details look here: http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf (commit)
*

TCP cubic update for 2.6.22. The new version improves on its scalability, fairness and stability. So in all properties, we confirmed it shows better performance (commit)
*

Add RFC3742 Limited Slow-Start, controlled by variable sysctl_tcp_max_ssthresh (commit)
*

Add support to IPv4 over IPv6 tunnel (commit)
*

Replace compile-time debug option CONFIG_NET_DEBUG with a runtime switchable sysctl, /proc/sys/net/core/warnings (commit)
*

Implement the SACK-enhanced FRTO given in RFC4138 using the variant given in Appendix B (commit), (commit)
*

Add two new spurious RTO responses to FRTO, sysctl tcp_frto_response is added to select amongst these responses (commit)
*

SNMP: Support InTruncatedPkts (commit), OutMcastPkts and OutBcastPkts (commit), add definitions for {In,Out}BcastPkts, specified in the updated IP-MIB RFC (RFC4293) (commit), support InNoRoutes (commit), support InMcastPkts and InBcastPkts (commit)
*

SNMP IPV6: Netlink interface. (commit), (commit)
*

CCID3: Handle Idle and Application-Limited periods as specified in [RFC 4342, 5.1] (commit)
*

Use ktime as clocksource, which provides nanosecond timestamping support (commit), introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution (commit), add SO_TIMESTAMPNS / SCM_TIMESTAMPNS socket option (commit), export real timer resolution in /proc/net/psched (commit)
*

SCTP: Implement SCTP_PARTIAL_DELIVERY_POINT socket option (commit), implement SCTP_MAX_BURST socket option (commit), implement SCTP_ADDR_CONFIRMED state for ADDR_CHNAGE event (commit), implement sac_info field in SCTP_ASSOC_CHANGE notification (commit), implement SCTP_FRAGMENT_INTERLEAVE socket option, introduced in draft-ietf-tsvwg-sctpsocket-13, (commit), honor flags when setting peer address parameters (commit)
*

IPV6: Optimistic Duplicate Address Detection (RFC 4429) Support. (commit)
* NETFILTER
o

Remove IPv4 only connection tracking/NAT (commit)
o

Add support for user mode STP (commit)
o

ipt_DNAT: accept port randomization option (commit)
*

ebt_arp: add gratuitous arp filtering, it allows checking that the IPv4 source address matches the IPv4 destination address inside the ARP header (commit)
*

bridge-nf: filter bridged IPv4/IPv6 encapsulated in pppoe traffic (commit)
*

rfkill: add support for input key to control wireless radio (commit)

DM

*

New device-mapper target that can delay I/O (for testing). Reads can be separated from writes, redirected to different underlying devices and delayed by differing amounts of time (commit)
*

log: fault detection (commit)
*

Allow offline devices (commit)

SELinux

*

Export initial SID contexts via selinuxfs (commit)
*

Extract the NetLabel SELinux support from the security server (commit)

Audit

*

Add SIGNAL syscall class (commit)
*

Audit signal recipients (commit)
*

Abnormal End of Processes (commit)
*

Audit inode for all xattr syscalls (commit)
*

Complete message queue auditing (commit)

* auditing ptrace (commit)

Crypto

*

Add cryptd, a software async crypto daemon (commit)
*

Add async blkcipher type (commit), (commit), (commit)

KVM

*

Add lazy FPU support for VT (commit)
*

Lazy FPU support for SVM (commit)

Power Management

*

Remove firmware disk mode (commit)
*

Change /sys/power/disk display (commit)

Drivers

Network drivers

*

zd1211rw: Add ID for ZyXEL AG-220 (commit), add AL7230B RF support for ZD1211B (commit), add AL2230S RF support (commit), add another ID for Linksys WUSBF54G (commit), added new USB id for Planex GW-US54ZGL (commit), add ID for ZyXEL AG-225H v2 (commit), add ID for Sitecom WL-117 (commit), more device IDs (commit)
*

tc35815 driver rework. Current tc35815 driver is very obsolete and less maintained for a long time, and has been replaced it with a new driver based on one from CELF patch archive. The acvantages of this version are: improved performance, NAPI, ethtool and netpoll support, power management support, 64-bit proof, TX4938 support, independence from JMR3927 (commit)
*

BNX2: Update 5708 firmware (commit), and 5709 firmware (commit), add ipv6 TSO and checksum for 5709 (commit), add support for 5709 Serdes. (commit)
*

Infiniband: Convert the IP-over-InfiniBand network device driver over to using NAPI (commit), add CQ comp_vector support (commit)
*

Netxen: Port swap feature for multi port cards (commit), multi PCI support for Quad cards (commit)
*

ucc_geth: migrate ucc_geth to phylib (commit), implement Transmit on Demand support (commit)
*

ehea: NAPI multi queue TX/RX path for SMP (commit), dynamic add / remove port (commit)
*

dmfe: add support for Wake on lan (commit), add support for suspend/resume (commit)
*

hostap_cs: support ADLINK 345 CF (commit), add D-Link DWL-650 Rev. P1 product id (commit)
*

qla3xxx: Adding support for the Agere PHY (ET1011C) (commit), add ethtool get_pauseparam for improved bonding support. (commit)
*

Add NAPI support to sb1250-mac.c (commit)
*

Support for Marvell 7042 Chip (commit)
*

ipw2200: add 'channels' sysfs entry (commit)
*

sgiseeq: Add support for Seeq 8003 on Challenge S Mezz board. (commit)
*

Netpoll support for Sibyte MAC (commit)
*

S2IO: getringparam ethtool option (commit)
*

Add support for the Davicom DM9161A PHY (commit)
*

atl1: add netconsole support (commit)
*

pasemi_mac: PHY support (commit)
*

AT91RM9200 Ethernet: Support additional PHYs (commit)

SATA/IDE/SCSI

* SATA
o

HPA support (commit)
o

pata_hpt3x2n: Add HPT371N support (commit)
o

pata_cmd640: CMD640 PCI support (commit)
o

sata_mv: clean up DMA boundary issues, turn on 64-bit DMA (commit)
o

pata_pcmcia: recognize 2GB CompactFlash from Transcend (commit)
o

Add the ATI SB700 SATA controller device id to AHCI pci table (commit)
o

Add MCP73/MCP77 support to AHCI driver (commit)
* SCSI
o

sd: implement START/STOP management (commit)
o

lpfc: Add support for async scanning (commit), added support for 8G speed and new HBAs (commit)
o

ipr: Enable multi-initator RAID support (commit)
o

Add SG_IO ioctl to cciss (commit)
o

qla2xxx: Add MSI support. (commit)
o

SUNESP: Complete driver rewrite to version 2.0, with tagged queuing support (commit)
* IDE
o

Make /proc/ide/ optional (commit)
o

pdc202xx_new: enable DMA for all ATAPI devices (commit)
o

ide-cs: recognize 2GB CompactFlash from Transcend (commit)
o

cmd64x: fix multiword and remove single-word DMA support (commit)
o

sl82c105: DMA support code cleanup (commit), rework PIO support (commit)
o

Add the IDE device ID for ATI SB700 (commit)
o

Add the MCP73/77 support to PATA driver (commit)

Graphics

*

fbdev: display class (commit)
*

pm2fb: 3dlabs Permedia 2V reference board support (commit)
*

fbdev: add support for AVR32 (commit), advertise limitations of drawing engine (commit), (commit)
*

Geforce 7300 gt fb support (commit)
*

radeonfb: Add support for Radeon xpress 200m (commit)
*

tgafb: TURBOchannel support (commit), acceleration code (commit)
*

pm2fb: accelerated fillrect and copyarea (commit)
*

intel_agp: Add support for 965GME/GLE (commit), 945GME (commit) and G3x (commit)
*

i915: Add new pciids for 945GME, 965GME/GLE (commit)
*

Add support SiS based XGI chips to SiS DRM (commit)

Sound

*

ice1724 - Functioning support for Prodigy 192 (commit)
*

ASoC Samsung S3c24xx build (commit)
*

hda-codec: Add support of 96kHz back (commit), add ALC662 support (commit), add ALC861VD Lenovo support (commit), add support for Gigabyte S-Series GA-M57SLI-S4 motherboard (commit), allow opening SPDIF while analog dup mode (commit), add support for Asus A8JN Laptop (commit), add support for new HP DV series laptops (commit), add ATI RS780,R600 HDMI audio support (commit), add support for MSI K9N Ultra (commit), add support for ASUS A8J modem (commit), add support for Gateway NX860 (commit)
*

hdspm: support for Master mode of AES32 and recent MADI (commit)
*

ASoC Samsung S3c24xx audio DMA (commit) and I2S support (commit)
*

ASoC WM8753 codec - build changes (commit)
*

ASoC AT91xxxx - SSC port DSP support (commit)
*

ASoC WM8753 codec support (commit)
*

ac97 - Smart 5.1 for VIA 1617a codec (commit)
*

usb-audio: another Logitech Quickcam ID (commit)
*

Add Native Instrument usb audio device support (commit)
*

The scheduled removal of OBSOLETE_OSS options (commit)

Input

*

i8042: add Fujitsu touchscreen/touchpad PNP IDs (commit), add Panasonic CF-29 to nomux list (commit), add HP Pavilion DV4017EA to the MUX blacklist (commit)
*

psmouse: Add support for eGalax PS/2 touchscreen controller (commit), allow disabing certain protocol extensions (commit)
*

Lifebook - add signature of Panasonic CF-29 (commit), work properly on Panasonic CF-18 (commit)
*

Add driver for MIPS Cobalt back panel buttons (commit)
*

Wistron: Add support for Travelmate 610 (commit), add acerhk laptop database (commit)
*

Add logical channel support for ATI Remote Wonder II (commit)
*

Remove old USB touchscreen drivers: itmtoch, mtouchusb and touchkitusb. They have been replaced with composite usbtouchscreen driver some time ago and can be removed now (commit)

MTD

*

Driver support for NAND flash devices on CM-x270 modules (commit)
*

Support for generic platform NAND driver (commit)
*

Remove MTD_OBSOLETE_CHIPS (jedec, amd_flash, sharp) (commit)
*

MTD Driver for AT26Fxxx dataflash devices (commit)
*

NAND: Add Micron Manufacturer ID (commit)
*

Nandsim: Add partition capability (commit), allow arbitrary NAND size (commit), optionally report wear information (commit), simulate flash errors (commit)
*

NOR: Support for auto locking flash on power up (commit)

USB

*

Usbmon: Extended text API (commit), and add the "bus zero" feature to the usbmon. If a user process specifies bus with number zero, it receives events from all buses (commit)
*

Remove ancient/broken CRIS hcd (commit)
*

Add power/level sysfs attribute. The new power/level sysfs attribute allows users to force the device on (with autosuspend off), force the device to sleep (with autoresume off), or return to normal automatic operation (commit)
*

Add "busnum" attribute for USB devices (commit)
*

Add the detection for the Bandrich Bandluxe C100/C100S/C120 HSDPA Data Card (commit)
*

cxacru: ADSL state management (commit)
*

Add picdem device to ldusb (commit)
*

ftdi_sio: Add USB ID of ADSTech USBX-707 (commit)
*

CP2101: new Device IDs (commit)
*

Make usbdevices export their device nodes instead of using a separate class (commit)
*

Add Freescale high-speed USB SOC device controller driver (commit)
*

Add FF support for Logitech Force 3D Pro Joystick (commit)
*

Thustmaster firestorm dual power v1 support (commit)
*

Add support for Wisegroup MP-8800 Quad Joypad (commit)
*

Add support for Olimex arm-usb-ocd JTAG interface serial port (commit)
*

Add support for Sierra Wireless Aircard 595U (commit)

V4L/DVB

*

Add support for video output overlays. (commit)
*

M920x: Initial support for devices likely manufactured by Dposh (commit)
*

M920x: Add support for LifeView TV Walker Twin (commit)
*

Add support for the "Elitegroup ECS TVP3XP FM1246", the "KWorld DVB-T 210", and the Animation Technologies LR214 Rev F onwards (SAA7131) to the saa7134 driver (commit)
*

Add support for VIDIOC_INT_G/S_STD_OUTPUT (commit)
* Added VIDIOC_INT_G_STD_OUTPUT and VIDIOC_INT_S_STD_OUTPUT to allow drivers to set the TV standard for video output separately from the video capture. This is needed for cx23415 support where the decoder is separate from the encoder and can have a different TV standard. Modified the saa7127 module to listen to VIDIOC_INT_G/S_STD_OUTPUT instead of VIDIOC_G/S_STD.
*

Additional card support for bttv driver (commit)
*

Add V4L2_CAP_VIDEO_OUTPUT_POS capability (commit)
*

Add support for the cx23415 MPEG decoding features. (commit)
*

Add support for the extra keys in the black Technotrend 1500 IR (commit)
*

Add support for VIDIOC_G_CHIP_IDENT (commit)
*

Add tveeprom entry for tuner LG S701D MK3 (commit)
*

Add raw bayer support to the ov7670 driver (commit)
*

Added support for tda827x tuners with preamlifiers (commit)
*

Add support for three new MPEG controls. (commit)
*

Add Logitech ViewPort AV 100 (commit)
*

Dvb: Remove lgh06xf driver (commit)
*

Add radio support for the Lifeview FlyDVB-T Duo (commit)
*

Add support for remote of Asustech P7131 Hybrid LNA (commit)
*

Add support for Opera S1- DVB-USB (commit)
*

Sn9c102: Make driver V4L2 not V4L1 (commit)
*

Pwc: cisco VT Camera support (commit)
*

Tda10023: Add support for frontend TDA10023 (commit)
*

M920x: add support for Anubis Electronics / MSI Digi Vox Mini II (commit)
*

400e: Add support for Pinnacle PCTV Sat Pro USB (450e) (commit)
*

Added / corrected support for some ASUS hybrid boards (commit)
*

Add some missing Hauppauge and Belkin devices to the driver (commit)
*

Added card definition for AverMedia M102 miniPCI (commit)
*

Added support for Sabrent TV-PCB05 card. (commit)

I2C

*

New Simtec I2C bus driver (commit)
*

New i2c-tiny-usb bus driver (commit)
*

Bitbanging I2C bus driver using the GPIO API (commit)
*

i2c-nforce2: Add support for the MCP61 and MCP65 (commit)

ACPI

*

ibm-acpi: rename driver to thinkpad-acpi (commit)
*

thinkpad-acpi: driver sysfs conversion (commit), (commit), add sysfs support to the thermal subdriver (commit), add sysfs support to the cmos command subdriver (commit), add sysfs support to wan and bluetooth subdrivers (commit), add sysfs support to hotkey subdriver (commit), update brightness sysfs interface support (commit),
*

sony-laptop: Replace sonypi (commit), add SNY6001 device handling (sonypi reimplementation) (commit), add edge modem support (also called WWAN) (commit), make meye use sony-laptop instead of sonypi (commit), add camera enable/disable parameter (commit)
*

asus-laptop: add GPS support (commit)

Watchdog

*

Add support for the w83627thf chipset. (commit)
*

The scheduled removal of the i8xx_tco watchdog driver (commit)

Bluetooth

*

Add HCIUARTGETDEVICE support for HCI line discipline (commit)
*

Add support for Targus ACB10US USB dongle (commit)

Cpufreq

*

Support rev H AMD64s in powernow-k8 (commit)

HwMon

*

hwmon/smsc47m1: Add support for the LPC47M292 (commit)

Various

*

Add new_id to PCMCIA drivers (commit)
*

IrDA: KingSun/DonShine USB IrDA dongle support. (commit)
*

Firewire (old stack): eth1394: allow MTU bigger than 1500 (commit)
*

tifm: add sysfs attribute for tifm devices (commit)
*

mmc: Support for MMC 4.2 sector based cards (commit)
*

smsc-ircc2: add PNP support (commit)
*

Remove the blink driver (commit)

Crashing soon a kernel near you

This is a list of some of the ongoing patches being developed at the kernel community that will be part of future Linux releases. Those features may take many months to get into the Linus' git tree, or may be dropped. The features are tested in the -mm tree, but be warned, it can crash your machine, eat your data (unlikely but not impossible) or kidnap your family (just because it has never happened it doesn't mean you're safe):

* Ingo Molnar's CFS / Con Kolivas' RSDL process scheduler
* Con's swap prefetching
*

Utrace (LWN article)
*

Process containers
*

Revoke()/frevoke() system calls (LWN article)
* Mel Gorman's fragmentation avoidance patches and Lumpy reclaim
* Unionfs
*

EXT 4 patches (wiki)
* Lguest
*

On-demand Read-ahead
* Xen for x86-64
* Tickless patchess for x86-65
* Reiser 4
*

The fallocate() system call
*

LogFS
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: linux kernel 2.6.23 2007-10-09 20:50 UTC
Author: fei    Posted: 2007-10-10 06:57    Length: 65,535 byte(s)
[Original] [Print] [Top]
经过9个RC.http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2
2.6.23 includes the new, better, fairer CFS process scheduler, a simpler read-ahead mechanism, the lguest 'Linux-on-Linux' paravirtualization hypervisor, XEN guest support, KVM smp guest support, variable process argument length, make SLUB the default slab allocator, SELinux protection for exploiting null dereferences using mmap, XFS and ext4 improvements, PPP over L2TP support, the 'lumpy' reclaim algorithm, a userspace driver framework, the O_CLOEXEC file descriptor flag, splice improvements, new fallocate() syscall, lock statistics, support for multiqueue network devices, various new drivers and many other minor features and fixes.

2. Important things (AKA: ''the cool stuff'')

2.1. The CFS process scheduler

The new process scheduler, a.k.a CFS (Completely Fair Scheduler), has generated too much noise in some circles due to the way this scheduler has been chosen over its competitor RSDL. A bit of history is needed to clarify what happened and what CFS does compared to the old scheduler.

During the development of Linux 2.5, the 'O(1)' process scheduler (PS) from Ingo Molnar was merged to replace the one inherited from 2.4. The O(1) PS was designed to fix the scalability issues in the 2.4 PS - the performance improvements were so big that the O(1) PS was one of the most frequently backported features to 2.4 in commercial Linux distributions. However, the algorithms in charge of scheduling processes were not changed that much, as they were considered 'good enough', or at least it wasn't perceived as a critical issue. But those algorithms can make a huge difference in what the users perceive as 'interactivity'. For example, if a process - or more than one - starts an endless loop and due to those CPU-bound loopers and the PS doesn't assign as much CPU as necessary to the already present non-looping processes in charge of implementing the user interfaces (X.org, kicker, firefox, openoffice.org, etc), the user will perceive that the programs don't react to the users' actions very smoothly. Or worse, in the case of music players your music could skip.

The O(1) PS, just like the previous PSs, tried to improve those cases and generally, it did a good job most of the time. However, many users reported corner cases and not-so-corner cases where the new PS didn't work as expected. One of those users was Con Kolivas, and despite his inexperience in the kernel hacking world, he tried to fine-tune the scheduling algorithms, without replacing them. His work was a success, and his patches found a way into the main kernel, and other people (Mike Galbraith, Davide Libenzi, Nick Piggin) also helped to tweak the scheduler. But not all the corner cases disappeared, and some new ones appeared when trying to fix others. Con found that the 'interactivity estimator' - a piece of code used by the PS to try to decide which processes were more 'interactive' and hence needed more attention, so that the user would perceive their desktops as 'more interactive' - caused more problems than it solved. Contrary to its original purpose, the interactivity estimator couldn't fix all the 'interactivity' problems present in the PS, and trying to fix one would open another issue; It was the typical case of an algorithm using statistics to try to predict the future with heuristics, and failing at it. Con designed a new PS, called RSDL, that killed the interactivity estimation code. Instead, his PS was based on the concept of 'fairness': processes are treated equally and are given same timeslices (see this LWN article for more details on this PS), and the PS doesn't care or even try to guess if the process is CPU bound or IO-bound (interactive). This PS improved the user's perceived "interactivity" in those corner cases as well.

This PS was the one that was going to get merged, but Ingo Molnar (the O(1) creator) created another new PS, called CFS (alias for 'Completely Fair Scheduler'), taking as one the basic design element the 'fair scheduling' idea that Con's PS had proven to be superior. It was well received by some hackers, which helped Ingo (and Mike Galbraith, Peter Zijlstra, Thomas Gleixner, Suresh Siddha, and many others) to make CFS a good PS alternative for mainline. 'Fairness' is the only idea shared between RSDL and CFS and that's where the similarities stop, and even the definition of 'fairness' is very different: RSDL uses a 'strict' definition of fairness. But CFS includes the sleep time in the task's fairness metric: this means that in CFS, sleeping tasks (the kind of tasks that usually run the code that the user feels as 'interactive', like X.org, mp3 players, etc) do get more CPU time than running tasks (unlike the 'strict fairness' of RSDL, where they are treated with a strict fairness), but it's all kept under control by the fairness engine. This design gets the best of both worlds: fairness and interactivity, but without resorting to a interactivity estimator.

CFS has other differences compared to the old mainline scheduler and RSDL: instead of runqueues, it uses a time-ordered rbtree to build a 'timeline' of future task execution, to try to avoid the 'array switch' artifacts that both the vanilla and the RSDL PS can suffer. It also uses nanosecond granularity accounting and does not rely on any jiffies or other HZ detail; in fact it does not have the notion of traditional 'timeslices': the slicing is decided dynamically, not statically, and there's no persistency to timeslices (i.e. timeslices are not 'given' to a task and 'used up' by a task, in the traditional sense, because CFS is able to accurately track the fully history of the task's execution via the nanoseconds accounting). Plus it has extensive instrumentation with CONFIG_SCHED_DEBUG=y. Because of all those changes, CFS is a quite radical rewrite of the linux PS (~70% of its code is touched), and hence bigger than RSDL (in terms of patch's size, not the memory footprint: RSDL patchset weighted 88K, whereas CFS patcheset weights 290k). Read this LWN article for more details on CFS design

So CFS was finally chosen as replacement for the current 'O(1)' PS over RSDL - surprisingly this choice generated much noise due to Con announcement about quitting from kernel development - but Con has publicy said that it's not due to that. It seems like the debate has calmed down now and that there's no reasons to think that CFS was chosen for anything but technical reasons. It must be noted that both RSDL and CFS are better schedulers than the one in mainline, and that it was Con who pioneered the idea of using the concept of 'fairness' over the 'interactivity estimations', but that doesn't mean that CFS didn't deserve to get merged as the definitive replacement of the mainline's PS; it doesn't means either that RSDL isn't also great replacement.

NOTE!: Applications that depend heavily on sched_yield()'s behaviour (like, f.e., many benchmarks) can suffer from huge performance gains/looses due to the very very subtle semantics of what sched_yield() should do and how CFS changes them. There's a sysctl at /proc/sys/kernel/sched_compat_yield that you can set to "1" to change the sched_yield() behaviour that you should try in those cases. It must be also noticed that CFS is also available as a backport for 2.6.22, 2.6.21 and 2.6.20.

CFS code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)

2.2. On-demand read-ahead

Click to read a recommended LWN article about on-demand read-ahead

On-demand read-ahead is an attempt to simplify the Adaptive read-ahead patches. On-demand readahead reimplements the Linux readahead functionality, removing a lot of complexity from the current system and making it more flexible. This new system maintains the same performance for trivial sequential/random reads, it improves the sysbench/OLTP MySQL benchmark up to 8%, and performance on readahead thrashing gains up to 3 times. There are more read-ahead patches based in this infrastructure pending and further work could be done in this area as well, so expect more improvements in the future. Detailed design document and benchmarks can be found here.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)

2.3. fallocate()

Click to read a recommended LWN article about fallocate()

fallocate() is a new system call which will allow applications to preallocate space to any file(s) in a file system. Applications can get a guarantee of space for particular file(s) - even if later the system becomes full. Applications can also use this feature to avoid fragmentation to certain level in many filesystems (fe: it avoids the fragmentation that can happen in files that are frequently increasing its size) and thus get faster access speed.

Currently, glibc provides the POSIX interface called posix_fallocate() which can be used for similar cause. Though this has the advantage of working, it is quite slow (since it writes zeroes to each block that has to be preallocated). Without a doubt, file systems can do this more efficiently within the kernel, by implementing the proposed fallocate() system call, and this what 2.6.23 does. It is expected that posix_fallocate() will be modified to call this new system call first and in case the kernel/filesystem does not implement it, it should fall back to the current implementation of writing zeroes to the new blocks.

In 2.6.23, only ext4 and ocfs2 are adding support for the fallocate() interface.

Code: (commit)

2.4. Virtualization: lguest and Xen

Linux has good virtualization support thanks to the paravirtualization and KVM support. 2.6.23 is improving the support of the trend-of-the-decade by adding lguest and Xen support - both of them based in the paravirt_ops infrastructure.

2.4.1. lguest

Click to read a recommended article about lguest

lguest is a simple hypervisor for Linux on Linux (in other words, it allows to run linux -only linux- guests) based in the paravirt_ops infrastructure. Unlike kvm it doesn't need VT/SVM hardware. Unlike Xen it's simply "modprobe and go". Unlike both, it's 5000 lines and self-contained.

The goal of his author, Rusty Russell, was not to create the singlest and greatest hypervisor ever, but rather create a simple, small (5000 lines of code) hypervisor example to show the world how powerful the paravirt_ops infrastructure is. Performance is ok, but not great (-30% on kernel compile), precisely because it was written to be simple. But given its hackability, it may improve soon. The author encourages people to fork it and try to create a much better hypervisors: Too much of the kernel is a big ball of hair. lguest is simple enough to dive into and hack, plus has some warts which scream "fork me!". A 64-bit version is also being worked on.

Lguest host support (CONFIG_LGUEST)can be compiled as a module (lg.ko). This is the host support - one you load it, your kernel will be able to run virtualized lguest guests. But kernel guests need to compile lguest guest support in order to be able to run under the lguest host. The configuration variable that enables the guest support is CONFIG_LGUEST_GUEST - but that option will be enabled automatically once you set CONFIG_LGUEST to 'y' or 'm'. This means that a kernel compiled with lguest host support does also get lguest guest support. In other words, you can use the same kernel you use to be a host as guest kernel. In order to load and run new guests, you need a loader userspace program. The instructions and the program can be found at Documentation/lguest/lguest.txt

Code: drivers/lguest, Documentation/lguest

2.4.2. Xen

Part of Xen has been merged. The support included in 2.6.23 will allow the kernel to boot in a paravirtualized environment under the Xen hypervisor. But support for the hypervisor is not included - this is only guest support, no dom0, no suspend/resume, no ballooning. It's based in the paravirt_ops infrastructure.

Code: (part 1, drivers/xen, part 2, arch/i386/xen)

2.5. Variable argument length

From a Slashdot interview to Rob Pike: I didn't use Unix at all, really, from about 1990 until 2002, when I joined Google. (I worked entirely on Plan 9, which I still believe does a pretty good job of solving those fundamental problems.) I was surprised when I came back to Unix how many of even the little things that were annoying in 1990 continue to annoy today. In 1975, when the argument vector had to live in a 512-byte-block, the 6th Edition system would often complain, 'arg list too long'. But today, when machines have gigabytes of memory, I still see that silly message far too often. The argument list is now limited somewhere north of 100K on the Linux machines I use at work, but come on people, dynamic memory allocation is a done deal!

While Linux is not Plan 9, in 2.6.23 Linux is adding variable argument length. Theorically you shouldn't hit frequently "argument list too long" errors again, but this patch also limits the maximum argument lenght to 25% of the maximum stack limit (ulimit -s)

Code: (commit)

2.6. PPP over L2TP

Linux 2.6.23 adds support for PPP-over-L2TP socket family. L2TP (RFC 2661) is a protocol used by ISPs and enterprises to tunnel PPP traffic over UDP tunnels. L2TP is replacing PPTP for VPN uses. The kernel component included in 2.6.23 handles only L2TP data packets: a userland daemon handles L2TP the control protocol (tunnel and session setup). One such daemon is OpenL2TP

Code: (commit 1, 2, 3) Documentation: (commit)

2.7. Autoloading of ACPI kernel modules

With Linux 2.6.23, the ACPI modules are exporting the device table symbols in the drivers so that udev can automatically load them through the usual mechanisms.

Code: (commit 1, 2, 3)

2.6.23 also adds DMI/SMBIOS based module autoloading to the Linux kernel. The idea is to load laptop drivers automatically (and other drivers which cannot be autoloaded otherwise), based on the DMI system identification information of the BIOS. Right now most distros manually try to load all available laptop drivers on bootup in the hope that at least one of them loads successfully. This patch does away with all that, and uses udev to automatically load matching drivers on the right machines.

Code: (commit)

2.8. async_tx API

The async_tx API provides methods for describing a chain of asynchronous bulk memory transfers/transforms with support for inter-transactional dependencies. It is implemented as a dmaengine client that smooths over the details of different hardware offload engine implementations. The raid5 DM engine has been tranformed to use the async_tx API, getting performance improvements (in the tiobenchmark and with iop342, it shows 20 - 30% higher throughput for sequential writes and 40 - 55% gains in sequential reads to a degraded array). API documentation.

Code: (commit)

2.9. 'Lumpy' reclaim

Click to read a recommended LWN article which touches the 'lumpy' reclaim feature

High-order petitions of free memory in the kernel (IOW, petitions of free memory that are bigger than one memory page and must be contiguous) can fail easily due to the memory fragmentation when there's very little free memory left: When the memory management subsystem tries to free some memory to make room for the petition, it frees pages in LRU (Least Recently Used) order, and pages freed in LRU order are not necessarily contiguous - rather, they're freed according to how recently it was used. So the allocation may still fail.

The 'lumpy' reclaim modifies the reclaim algorithm to improve this situation: When it needs to free some pages, it tries to free the pages contiguous to the first chosen page in the LRU, ignoring the recency, improving the possibilities of finding a contiguous block of free memory.

Code: (commit)

2.10. Movable Memory Zone

It is often known at allocation time whether a page may be migrated or not. This feature adds a flag called __GFP_MOVABLE to the memory allocator and a new mask called GFP_HIGH_MOVABLE. Allocations using the __GFP_MOVABLE can be either migrated using the page migration mechanism or reclaimed by syncing with backing storage and discarding. This feature also creates a memory zone called ZONE_MOVABLE that is only usable by allocations that specify both __GFP_HIGHMEM and __GFP_MOVABLE. This has the effect of keeping all non-movable pages within a single memory partition while allowing movable allocations to be satisfied from either partition. More details in the commit links.

Code: (commit 1, 2, 3, 4, 5)

2.11. UIO

Click to read a recommended LWN article about UIO

UIO is a framework that allows to implement drivers in userspace. This kind of thing causes much noise due to "monolithic vs microkernel" topic. To the surprise of many, the Linux ecosystem has actually supported userspace drivers for cases that had sense for a long time. libusb allows to acces to the USB bus from userspace and implement drivers there. This is why you don't have specific drivers for, f.e., your scanner or USB digital camera, programs like sane, gphoto, gnokii, gtkam, hplip, or even some music players like rhythmbox or amarok, use libusb to access the USB bus and talk to USB devices directly. The 2D X.org drivers that you configure in your x.org file are another popular example of drivers that not only they run in userspace, they also are portable to other unix operative systems (they're also an example of why userspace drivers can't avoid hanging your machine due to a bug in the driver that triggers a hardware hang). CUPS and programs accesing the serial port like pppd are yet another example of userspace programs accessing the devices directly - the kernel doesn't implements any specific LPT printer or serial modem driver, those userspace programs implement the driver that knows how to talk to the printer.

In other words, userspace drivers are not new. UIO is not a try to migrate all the Linux kernel drivers to userspace. In fact, a tiny (150 lines in the sample driver, including comments etc) kernel-side driver to handle some basic interrupt routine is need as part of every UIO driver. UIO is just a simple way to create very simple, non-performance critical drivers, which has probably been merged more with a "merge-and-see-if-it-happens-something-interesting" attitude than anything else. For now UIO doesn't allow to create nothing but very very simple drivers: No DMA, no network and block drivers....

UIO Code: (commit) UIO Documentation: (commit) Sample kernel-side UIO Hilscher CIF card driver (commit)

2.12. O_CLOEXEC file descriptor flag

Click to read a recommended LWN article about the O_CLOEXEC open() flag

In multi-threaded code (or more correctly: all code using clone() with CLONE_FILES) there's a race when exec'ing (see commit link for details). In some applications this can happen frequently. Take a web browser. One thread opens a file and another thread starts, say, an external PDF viewer. The result can even be a security issue if that open file descriptor refers to a sensitive file and the external program can somehow be tricked into using that descriptor. 2.6.23 includes the O_CLOEXEC ("close-on-exec") fd flag on open() and recvmsg() to avoid this problem.

Code: (commit 1, 2)

2.13. Use splice in the sendfile() implementation

Splice is a innovative I/O method which was added in Linux 2.6.17, based in a in-kernel buffer that the user has control over, where "splice()" moves data to/from the buffer from/to an arbitrary file descriptor with splice(), while "tee()" copies the data in one buffer to another, ie: it "duplicates" it, or vmsplice() to splice the data from/to user memory. Because the in-kernel buffer isn't really copied from one address space to another, it allows to move data from/to a fd without an extra copy (ie, "zero-copy").

For the particular case of sending the data from a file descriptor to a fd socket, there's been always the sendfile() syscall. splice() however is a generic mechanism, not just limited to what sendfile(). In other words, sendfile() is just a small subset of what splice can do, splice obsoletes it. In Linux 2.6.23, the sendfile() mechanism implementation is killed, but the API and its functionality is not removed, it's instead implemented internally with the splice() mechanisms.

Because sendfile() is critical for many programs, specially for static web servers and FTPs, performance regressions could happen (and performance improvements!) and the kernel hackers would really like to hear about them both in linux-kernel@vger.kernel.org and/or other usual communication channels.

In other news, 2.6.23 adds splice vmsplice-to-user support. It must be noticed again that splice() obsoletes sendfile() in linux, and its mechanisms allow to build further performance improvements in your software.

Code: (commit 1, 2, 3, 4, 5, 6)

2.14. XFS and EXT4 improvements

* XFS
o

Lazy Superblock Counters: When there are a couple of hundred transactions on the fly at once, they all typically modify the on disk superblock in some way. , locking the buffer until the transaction is committed into the incore log buffer. The result of this is that with enough transactions on the fly the incore superblock buffer becomes a bottleneck. In 2.6.23, XFS avoids this bottleneck (see commit for details). But due the way XFS works, in order to make it work well with this new feature, a new counter was added to track the number of blocks used by the free space btrees. This is an on-disk format change. As a result of this, lazy superblock counters are a mkfs option and at the moment on linux there is no way to convert an old filesystem, although one solution will be developed. Code (commit)
o

Concurrent Multi-File Data Streams: In media spaces, video is often stored in a frame-per-file format. When dealing with uncompressed realtime HD video streams in this format, it is crucial that files do not get fragmented and that multiple files a placed contiguously on disk. When multiple streams are being ingested and played out at the same time, it is critical that the filesystem does not cross the streams and interleave them together as this creates seek and readahead cache miss latency and prevents both ingest and playout from meeting frame rate targets. This feature creates a "stream of files" concept into the allocator to place all the data from a single stream contiguously on disk so that RAID array readahead can be used effectively. Each additional stream gets placed in different allocation groups within the filesystem, thereby ensuring that XFS doesn't cross any streams. Code: (commit)
* EXT4: As it gets developed, ext4 codebase is synced periodically to mainline. In 2.6.23, a sync with some features has been done - this doesn't mean that ext4 is stable:
o

Fallocate() support (commit), write support for preallocated blocks (commit)
o

Change on-disk format to support 2^15 uninitialized extents (commit)
o

Enable extents by default (commit), (commit)
o

Add nanosecond timestamps (commit)
o

Remove 65000 subdirectory limit (commit)

2.15. Coredump filter mask

The purpose of this feature is to control which VMAs should be dumped based on their memory types and per-process flags, in order to avoid longtime system slowdown when a number of processes which share a huge shared memory are dumped at the same time, or just to avoid dumping information that you don't need. Users can access the per-process flags via /proc/<pid>/coredump_filter interface. coredump_filter represents a bitmask of memory types, and if a bit is set, VMAs of corresponding memory type are written into a core file when the process is dumped. The bitmask is inherited from the parent process when a process is created

Code: (commit 1, 2, 3, 4)

2.16. Rewrite the x86 asm setup in C

In 2.6.23 the x86 setup code, which is currently all in assembly, is replaced with a version written in C, using the ".code16gcc" feature of binutils. The new code is vastly easier to read and debug. It should be noted that a fair number of minor bugs where found while going through this code, but new ones could have been created, due to the extreme fragility of a part of the kernel like this. During testing, it has showed to be very stable.

Code:

(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)

2.17. New drivers

* Sound
o

Add drivers for the devices on S3C24xx embedded systems, like the Openmoko Neo1973 phone, the SMDK2443 reference board and the Samsung S3C2443 CPU (commit 1, 2, 3, 4, 5)
o

Add driver for the SEGA Dreamcast PCM device (commit)
o

Add driver for the SH7760 embedded systems (commit)
o

Add driver for the Cyrix/NatSemi Geode CS5530 (VSA1) (commit)
o

Add sound driver for the PS3 (commit)
* Hwmon
o

Add driver for the SMSC DME1737 and Asus A8000 Super-I/O chips (commit)
o

Add driver for the SCH5317 chip (commit)
o

Add driver for the newer uGuru's (commit)
o

Add driver for the National Semiconductor LM93 chips (commit)
o

Add driver for the Texas Instruments THMC50 / Analog Devices ADM1022 (commit)
* RTC
o

Add driver for the ST m48t59 RTC (commit)
o

Add driver for the DS1216 chips (commit)
o

Add driver for the ST m41t80 series chip (commit)
o

Add driver for the Atmel on-chip RTC on AT32AP700x devices (commit)
* EDAC
o

Add driver for the 440BX chipset (I82443BXGX) (commit)
o

Add driver for the Intel 5000X/V/P (Blackford/Greencreek) (commit)
o

Add driver for the Intel 3000 and 3010 memory controllers (commit)
o

Add driver for the memory controllers on PA Semi PA6T-1682M (commit)
o

Add driver for the i82975x memory controller chipset Used on ASUS motherboards (commit)
* Network
o

Add driver for the Asix AX88796 network controller, an NE2000 compatible 10/100 ethernet device (commit)
o

Add driver for the gigabit network device in the PS3 (commit)
o

Add wifi rtl8187 driver for the Realtek 8187 USB wireless card (commit)
o

Add driver for EISA only SNI RM200/RM400 machines (commit)
o

Add driver for MAC-VLAN (commit)
* USB
o

Add driver for the M66592 USB peripheral controller (commit)
o

Add driver for the Renesas R8A66597 USB HCD (commit)
o

Add serial driver for the OTi-6858 USB To RS232 Bridge Controller (in Nokia CA-42 cable) (commit)
o

Add driver for the USB AMD5536 UDC, as found in the AMD Geode CS5536 (southbridge) (commit)
o

Add gadged driver for the Samsung s3c2410 ARM (commit)
* SPI
o

Add driver for the Infineon TLE62X0 (for power switching) (commit)
o

Add master driver for Xilinx virtex (commit)
o

Add driver for the OMAP24XX McSPI (commit)
o

Add driver for the Toshiba TXx9 SPI controller (commit)
* Watchdog
o

Add driver for the MPC5200 (commit)
o

Add driver for the on-chip watchdog device in the Blackfin chips (commit)
o

Add driver for the watchdog device in TI Davinci DM644x/DM646x processors (commit)
o

Add driver for the AT32AP700X devices (commit)
*

Generic PDA/phone power drivers for PDAs and phones (commit 1, 2):
o

APM emulation driver for class batteries (commit)
o

1-Wire ds2760 chip battery driver (commit), (commit)
o

Apple PMU driver (commit)
o

One Laptop Per Child power/battery driver (commit)
* I2C
o

Add driver for the New DS1682 chip (commit)
o

Add driver for the PMC MSP71xx TWI bus (commit)
o

Add driver for the Taos TSL2550 ambient light sensors (commit)
* Graphics
o

Texas Instruments OMAP framebuffer driver, used various OMAP1/2 series based boards and products e.g Nokia N800 Internet Tablet, H4, H3, Siemens SX1... (commit)
o

Add framebuffer support for the display controller integrated into the AMD Geode LX processors (commit)
* Input
o

Add driver for Fujitsu serial touchscreens (commit)
o

Add gpio-mouse driver (commit)
* Dmaengine
o

Add drivers for the iop32x, iop33x, and iop13xx raid engines (commit)
* Various
o

IrDA: EP7211 IR driver port to the latest SIR API (commit)
o

Add generic GPIO LED driver (commit)
o

Add support for Xilinx SystemACE CompactFlash interface (commit)
o

SB1250 DUART serial support (commit)
o

spi_lm70llp parport adapter driver (commit)

3. Subsystems

* Memory management, block layer, various...
o

vmsplice-to-user (commit)
o

Make SLUB the default allocator (commit)
o

Support slub_debug on by default (commit)
o

Slob: initial NUMA support (commit), sparsemem support (commit)
o

numa: mempolicy: dynamic interleave map for system init (commit)
o

NUMA's zonelist (of pgdat) order selectable. Available order are Default(automatic)/ Node-based / Zone-based (commit)
* Block layer
o

Support for full generic block layer SG v3 (commit)
o

Replace SG v3 with SG v4 (except for SG_IO) (commit)
o

Bind bsg to all SCSI devices (commit)
o

Add SCSI transport-level request support to bsg (commit)
* Various
o

lockdep: lock statistics, which provides lock wait-time and hold-time (as well as the count of corresponding contention and acquisitions events). Also, the first few call-sites that encounter contention are tracked (commit), lock bouncing measurements (commit)
o

Maximum stack utilization instrumentation: this feature will look at each kernel stack at process exit and log it if it's the deepest stack seen so far (commit)
o

fault-injection: add min-order parameter to fail_page_alloc (commit)
o

Add a flag to indicate deferrable timers in /proc/timer_stats (commit)
o

add printk.time option, deprecate 'time' (commit)
o

make seccomp zerocost in schedule (commit)
o

taskstats: add context-switch counters (commit)
o

DM: LSI/Engenio RDAC multipath support (commit)
o

PM: introduce hibernation and suspend notifiers (commit), optional beeping during resume from suspend to RAM (commit)
o

Replace CONFIG_SOFTWARE_SUSPEND with CONFIG_HIBERNATION (commit)
o

Introduce CONFIG_SUSPEND for suspend-to-Ram and standby (commit)
o

Add /sys/kernel/notes (commit)
o

Console handover to preferred console (commit)
o

Enable arbitary speed tty support (commit)
o

init: wait for asynchronously scanned block devices (commit)
o

user namespaces, that allows containers, i.e. vservers, to use user namespaces to provide different user info for different server (commit), (commit), (commit)
o

diskquota: 32bit quota tools on 64bit architectures (commit)
o

Report that kernel is tainted if there was an OOPS (commit)
o

Add LZO1X algorithm to the kernel (commit) and CRC7 support (commit)
o

Document translation into Japanese, Chinese and Korean (commit 1, 2, 3, 4, 5, 6, 7, 8)

3.1. Filesystems

* OCFS2
o

Fallocate() support (commit)
o

Add "preferred slot" mount option (commit)
o

Shared writeable mmap support (commit)
o

Support xfs style space reservation ioctls (commit)
o

Btree changes for unwritten extents (commit),btree support for removal of arbitrary extents (commit), support writing of unwritten extents (commit), support creation of unwritten extents (commit)
* NFS
o

Re-enable forced umounts (commit)
o

Add support for mounting NFSv4 file systems with string options (commit)
o

Add final pieces to support in-kernel mount option parsing (commit)
o

Add the mount option "nosharecache" (commit)
* CIFS
o

Add support for new POSIX unlink (commit)
o

Allow disabling CIFS Unix Extensions as mount option (commit)
*

EXT*: statfs speed up in ext2 (commit) and ext3 (commit)
*

GFS2: Add nanosecond timestamp feature (commit)
*

AFS: implement file locking (commit)
*

Debugfs: add rename support for debugfs files (commit)

3.2. Networking

*

Add multiqueue hardware support API (commit), (commit)
*

Add the new sch_rr qdisc for multiqueue network device support (commit)
*

Dynamic multicast groups. (commit), (commit)
*

SKBUFF: Keep track of writable header len of headerless clones it saves huge amounts of system time in case of sendfile, bringing it down to basically the same amount as without NAT, with sendmsg it only helps on loopback, probably because of the large MTU.(commit)
*

IPV6 checksum offloading in network devices (commit)
*

Loadable module support for MIPv6. (commit)
*

AF_UNIX: Rewrite garbage collector (commit)
*

TIPC: Improved support for Ethernet traffic filtering (commit)
*

Add support for configuring secondary unicast addresses on network devices (commit)
*

PKTGEN: IPSEC support (commit)
*

Allow group ownership of TUN/TAP devices. (commit)
*

IrDA: Netlink layer. (commit), monitor mode (commit)
*

The scheduled removal of multipath cached routing support. (commit)
*

Remove CONFIG_NET_ESTIMATOR option (commit)
* NETFILTER
o

nf_conntrack: UDPLITE support (commit), introduce extension infrastructure (commit), use extension infrastructure for helper (commit), remove old memory allocator of conntrack (commit), use hashtable for expectations (commit), nf_conntrack_helper: use hashtable for conntrack helpers (commit)
o

nf_nat: add reference to conntrack from entry of bysource list (commit), use extension infrastructure (commit)
o

Add u32 match (commit)
o

x_tables: add TRACE target (commit), add connlimit match (commit)
* MAC80211
o

Monitor mode radiotap-based packet injection (commit)
o

cfg80211: Radiotap parser (commit)
o

Add support for iwlist channel (commit)
o

Implementation of SIOCSIWRATE (commit), (commit)
o

Show transmitted frames on monitor interfaces (commit)

3.3. SELinux

*

Protection for exploiting null dereference using mmap (commit)
*

Add support for querying object classes and permissions from the running policy (commit)
*

Add selinuxfs structure for object class discovery (commit)
*

Enable dynamic activation/deactivation of Netlabel/SELinux enforcement (commit)

3.4. Audit

*

Add TTY input auditing (commit)
*

Allow audit filtering on bit & operations (commit)

3.5. KVM

*

Enable guest smp (commit)
*

Implement rdmsr and wrmsr. This allows smp Windows to boot (commit)
*

i386: Allow KVM on i386 nonpae (commit)

3.6. Architecture-specific changes

* x86/x86_64
o

Remove support for the Rise CPU (commit)
o

PM_TRACE support (commit)
o

Divorce CONFIG_X86_PAE from CONFIG_HIGHMEM64G (commit)
o

Basic infrastructure support for AMD geode-class machines (commit)
o

i386: show unhandled signals, it makes the i386 behave the same way that x86_64 does when a segfault happens (commit)
o

x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu (commit)
o

x86_64: introduce CalIOC2 support (commit)
o

x86_64: make k8topology multi-core aware (commit)
* SH
o

Allow for bootmem debug support. (commit)
o

sparsemem support (commit)
o

memory hot-add for sparsemem users support. (commit)
o

cpufreq: clock framework support. (commit)
o

intc: Add support for 7722 processor (commit), add support for 7780 (commit), add support for SH7750 and its variants (commit), shared IPR and INTC2 controller (commit)
o

Preliminary support for the SH-X3 CPU. (commit)
o

r7780rp: Add R8A66597 and M66592 support. (commit)
o

Remove support for sh7300 and solution engine 7300 (commit), remove support for sh73180 and solution engine 73180 (commit)
* POWERPC
o

Add EEH sysfs blinkenlights (commit)
o

spufs: Add support for SPU single stepping (commit), add a "capabilities" file to spu contexts (commit), add spu shutdown method (commit), implement /proc/spu_loadavg (commit), add spu stats in sysfs (commit), dynamic timeslicing for SCHED_OTHER (commit)
o

ptrace updates & new, better requests (commit)
o

Oprofile support for Power 5++ (commit)
o

Add 8548 CDS PCI express controller node and PCI-X device node (commit)
o

Add basic PCI node for mpc8568mds board (commit)
o

Added 8568 PCIe support (commit)
o

Add basic PCI/PCI Express support for 8544DS board (commit)
o

FSL: Add support for PCI-X controllers (commit)
o

Add driver for DDR2 memory on AXON Cell systems (commit)
o

Add support for MSI on Axon-based Cell systems (commit)
o

Add support to OProfile for profiling CELL BE SPUs (commit)
o

8xx: mpc885ads pcmcia support (commit)
o

PS3: Bootwrapper support. (commit)
o

ps3: BD/DVD/CD-ROM Storage Driver (commit)
o

ps3: Disk Storage Driver (commit)
o

ps3: FLASH ROM Storage Driver (commit)
o

PS3: Add support for HDMI RGB Full Range mode (commit), Kexec support (commit), Storage Driver Core (commit)
* MIPS
o

User stack pointer randomisation (commit)
o

Add generic GPIO support (commit)
o

Add generic GPIO to Au1x00 (commit)
o

EV64120: Remove support (commit)
o

Add PMC MSP71xx core platform (commit)
o

New files for lemote fulong mini-PC support (commit)
o

Enable support for the userlocal hardware register (commit)
o

rbtx4938: Add generic GPIO support (commit)
o

PMC MSP71xx PCI support (commit)
o

PMC MSP71xx mips common (commit)
o

Remove Momenco Ocelot C support (commit)
o

Remove LASAT Networks platforms support (commit)
o

Delete Ocelot 3 support. (commit)
o

Remove Momentum Ocelot support. (commit)
o

DDB5477: Remove support (commit)
* ARM
o

Remove the arm26 port due to lack of mainteinance (commit)
o

davinci: GPIO support (commit), clock control support (commit), pin mux support (commit),
o

ANUBIS: Anubis AX88796 support (commit), add SM501 device resources (commit), large page NAND support (commit)
o

BAST: AX88796 device resources (commit)
o

OSIRIS: large page NAND support (commit)
o

AT91: LCD support on SAM9261-EK and SAM9263-EK boards (commit)
o

Add EM7210/SS4000E board support (commit)
o

Add EM-x270 board support (commit)
o

i.MX/MX1 clock event source (commit), GPIO support implementation (commit)
o

Gateway 7001 series support (commit)
o

ixdp425: NAND support (commit)
o

Netgear WG302 v2 and WAG302 v2 support (commit)
o

KS8695: GPIO driver (commit)
o

ARMv7: Add uncompressing code for the new CPU Id format (commit)
o

HP Jornada 7XX: Addition of SSP Platform Driver (commit)
o

MXC platform and i.MX31ADS core support (commit)
o

Add noMMU support for ARMv7 (commit)
* SPARC64
o

Add LDOM virtual channel driver and VIO device layer. (commit)
o

Add Sun LDOM virtual network driver. (commit)
o

Add Sun LDOM virtual disk driver. (commit)
o

Initial domain-services driver. (commit)
o

Initial LDOM cpu hotplug support. (commit)
o

dr-cpu unconfigure support. (commit)
o

Add proper multicast support to VNET driver. (commit)
o

Add basic infrastructure for MD add/remove notification. (commit)
* BLACKFIN
o

Add kgdb support (commit)
o

Add support for the ADSP-BF54x (commit),(commit), (commit)
o

Add Support for Peripheral PortMux and resource allocation (commit)
o

Blackfin On-Chip RTC driver update for supporting BF54x (commit)
o

Blackfin on-chip ethernet driver (commit)
* M68K
o

m68knommu: generic irq handling (commit)
* S390
o

scatter-gather for inbound traffic in qeth driver (commit)
o

z/VM unit record device driver (commit)
* IA64
o

Add support for vector domain (commit)
o

Support irq migration across domain (commit)
o

Convert to generic timekeeping/clocksource (commit)

4. Drivers

4.1. Graphics drivers

*

remove tx3912fb (commit)
*

nvidiafb: Add proper support for Geforce 7600 chipset (commit)
*

fbcon: cursor blink control (commit)
*

radeonfb: Add support for Radeon Xpress 200M (RS485) (commit)
*

pm3fb: fillrect acceleration (commit)

4.2. SATA/libata/IDE drivers

*

Remove almost 700KB of legacy CDROM drivers: They are all broken beyond repair. Given that nobody has complained about them (most haven't worked in 2.6 AT ALL), remove them from the tree - users are welcome to resurrect them, though (commit)
*

Support chips with 64K PRD quirk (commit)
*

AHCI: Add support for Marvell AHCI-like chips (initially 6145) (commit)
*

pata_atiixp: add SB700 PCI ID (commit)
*

libata-acpi: implement _GTM/_STM support, power-management features (commit)
*

ata_piix: Add a PCI ID for santa rosa's PATA controller. (commit)
*

sata_promise: SATA hotplug support (commit)
*

pata_mpc52xx: suspend/resume support (commit)
*

ide: add short cables support (commit)

4.3. Network drivers

*

Add ethtool support for NETIF_F_IPV6_CSUM devices (BNX2, TG3) (commit)
*

zd1211rw: Allow channels 1-11 for unrecognised regulatory domains (commit), detect more AL2230S radios (commit), add ID for Buffalo WLI-U2-KG54L (commit), add UW2453 RF support (commit), add ID for ZyXEL G-200v2 (commit), add ID for Siemens Gigaset USB Stick 54 (commit), add ID for Planex GW-US54GXS (commit)
*

BNX2: Add support for remote PHY. (commit), add ethtool support for remote PHY. (commit), support NVRAM on 5709. (commit)
*

phylib: add the ICPlus IP175C PHY driver (commit), enable SGMII mode in m88e1111 (commit), add Marvell 88E1112 phy id (commit)
*

macb: Add multicast capability (commit), use generic PHY layer (commit)
*

ucc_geth: add support to netif message level (commit), add ethtool support (commit)
*

TG3: Enable auto MDI. (commit)
*

Add 93cx6 eeprom library (commit)
*

sky2: carrier management (commit), add support for read/write of EEPROM (commit), Yukon Extreme (88e8071) support. (commit)
*

eHEA: net_poll support (commit), add support for DLPAR memory add (commit)
*

gianfar: add support for SGMII (commit)
*

s2io: add PCI error recovery support (commit)
*

r8169: mac address change support (commit)
*

forcedeth: mcp73 device addition (commit)
*

ns83820: Handle multicast frames. (commit)
*

saa9730: Handle multicast frames. (commit)
*

ni5010: Handle multicast frames. (commit)
*

arm/ether3: Handle multicast frames. (commit)

4.4. Sound drivers

*

More scheduled OSS driver removal. sound/oss/emu10k1, sound/oss/nm256*, sound/oss/opl3*, sound/oss/cs46*, sound/oss/aci*, sound/oss/ac97*, sound/oss/ad18{16,89}* are removed; they already had been disabled in Kconfig in 2.6.20 (commit)
*

DDB5477: remove driver bits of support (commit)
*

HDA: Support for iMac 24 inches released on 09/2006 (commit), add support of newer version of Intel iMac (commit), add AD1884 / AD1984 codec support (commit), add model for Toshiba A135 (commit), add HP Pavillion quirk to Realtek code (commit), add Fujitsu Siemens v3515 support (commit), output MFG information for HDA devices (commit), add AD1882 codec support (commit), add support for HP Spartan (commit), add support for HP Nettle (commit), add HP Lucknow 5.1 support (commit), add VIA HDA to si3054 (commit), add LG LW20 si3054 modem id (commit), add proper model for HP xw series (commit), add support of ALC268 codec (commit), add quirk for Asus P5LD2 (commit), yet another Uniwill laptop with ALC861 codec (commit), add the MCP73/77 support to hda_intel driver (commit), enable SPDIF in/out on some stac9205 boards (commit), add support for MSI K9AGM2-FIH motherboard (commit)
*

usb-audio: add Roland SH-201 support (commit), add quirk for Roland Juno-G (commit)
*

snd-emu10k1: Initial support for E-Mu 1616 and 1616m. (commit), enable E-Mu 1616m notebook firmware loading. (commit)
*

ice1724 - Add PCM Playback Switch to Revo 7.1 (commit)
*

opl3sa2 - Add Neomagic MagicWave 3D ISA PnP ID (commit)
*

snd-ca0106: Add support for X-Fi Extreme Audio. (commit)

4.5. SCSI drivers

*

libsas: Add SATA support to libsas (commit), add support NCQ for SATA disks (commit), add SAS management protocol handler (commit), add SAS management protocol support (commit)
*

FC Transport support for vports based on NPIV (N-Port IDE Virtualization) (commit)
*

lpfc: NPIV: add SLI-3 interface (commit), add NPIV support on top of SLI-3 (commit)
*

qla2xxx: add support for NPIV (commit), add ISP25XX support (commit)
*

53c7xx: kill driver. Support is added below (commit), (commit), (commit)
*

53c700: m68k support for the 53c700 SCSI core (commit), m68k BVME6000 NCR53C710 SCSI (commit), m68k MVME16x NCR53C710 SCSI (commit), Amiga 4000T NCR53c710 SCSI (commit), Amiga Zorro NCR53c710 SCSI (commit)
*

3w-9xxx: add support for 9690SA (commit)
*

aacraid: add user initiated reset (commit), add support for FUA (commit), changeable queue depth (commit)
*

aic94xx: add SATAPI support (commit)
*

areca: improve driver stability by adding PCI-E error recovery support and fixing bugs (commit)
*

mpt fusion: add support for Brocade branded LSI FC HBA (commit)
*

ibmmca: Resurrect converting it to new probing API (commit)
*

ibmvscsi: Changeable queue depth (commit)
*

initio: Convert into a real Linux driver and update to modern style, ie, rewrite big parts of it (commit)
*

qla4xxx: ql4_fw.h add support foCFSr qla4032 (commit)
*

scsi_lib: add scatter/gather data buffer accessors (commit)
*

cciss: add new controller support for P700m (commit)

4.6. V4L/DVB drivers

*

Add experimental support for tea5761 tuner (commit)
*

saa7134: add support for 10moons TM300 card (commit)
*

Add support for the AF9005 demodulator from Afatech (commit)
*

Add support for A-LINK DTU dvb-t adapter (commit)
*

Budget-av: Add support for EasyWatch DVB-S (0x1894:0x001b) (commit)
*

Cx88: add support for ADS Tech Instant Video PCI (commit)
*

Ir-kbd-i2c: add support for Hauppauge HVR1300 remote (commit)
*

Zr364xx: add support for Trust Powerc@m 970Z (commit)
*

Dvb-pll: add support for Philips fcv1236d (commit)
*

Bttv: add support for DViCO FusionHDTV 2 (commit)
*

tveeprom: add support for Philips FQ1216LME MK3 tuner. (commit)

4.7. USB

*

Add USB-Persist facility allows USB devices to persist across a power loss during system suspend. When the option is off the behavior will remain the same as it is now. But when the option is on, people will be able to use suspend-to-disk and keep their USB filesystems intact -- something particularly valuable for small machines where the root filesystem is on a USB device (commit)
*

Suspend support for usb serial (commit)
*

usbmon: Add class for binary interface (commit)
*

Serial Keyspan: add support for USA-49WG & USA-28XG (commit)
*

USB: RTS/CTS handshaking support, DTR fixes for MCT U232 serial adapter (commit)
*

USB: io_ti: Digi EdgePort update for new devices (commit)
*

ehci-hub: improved over-current recovery (commit)
*

berry_charge: Support Blackberry Pearl (commit)
*

sierra: Add TRU-Install (c) Support (commit), add new devices (commit)

4.8. IB/ipath drivers

*

Support the IBA6110 revision 4 (commit)
*

Remove support for preproduction HTX InfiniPath cards (commit)
*

Support UD low-latency QPs (commit)
*

Add Shared Receive Queue support (commit)
*

IB/mad: Enhance SMI for switch support (commit)
*

IB/ehca: Support large page MRs (commit) and small QP queues (commit)
*

IB/mlx4: Implement query QP (commit), implement query SRQ (commit)

4.9. Input drivers

*

Add support for Cortron PS/2 Trackballs (commit)
*

Add support for Xbox 360 gamepad (commit) and gamepad rumble support (commit)
*

wistron - add LED support (commit)
*

Add support for the new Bamboo tablets (commit)
*

wistron: add support for querying/changing keymap (commit)
*

usbtouchscreen: add support for IRTOUCHSYSTEMS touchscreens (commit)

4.10. Hwmon drivers

*

lm90: Add support for the Maxim MAX6680/MAX6681 (commit)
*

it87: Add IT8726F support (commit)
*

w83627hf: Add PWM frequency selection support (commit)
*

f71805f: Add temperature-tracking fan control mode (commit)

4.11. HID

*

Make debugging output runtime-configurable (commit)
*

Add support for Gameron dual psx adaptor (commit)
*

Add support for Petalynx Maxter remote control (commit)
*

Add support for logitech cordless desktop LX500 special mapping (commit)

4.12. Cpufreq

*

Longhaul: VT8237 support (commit)
*

Longhaul: Embedded "conservative" governor (commit)
*

Longhaul: Option to disable ACPI C3 support (commit)
*

CPU frequency scaling for AT32AP (commit)

4.13. I2C

*

Delete the i2c-isa pseudo bus driver (commit)
*

i2c-nforce2: Add support for SMBus block transactions (commit)
*

i2c-piix4: Add support for the ATI SB700 (commit)

4.14. FireWire drivers

*

raw1394: Add ioctl() compatibility for 32bit userland on 64bit kernel (commit)
*

Remove old isochronous ABI (commit)
*

Various stability fixes to the new alternative FireWire drivers, notably command abortions in firewire-sbp2 (commit)

4.15. OMAP

*

add TI TWL92330/Menelaus Power Management chip driver (commit)
*

Add Texas Instrument OMAP1 (commit) and TI OMAP2 internal display controller support (commit),
*

LCD p
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: linux kernel 2.6.24 2008-01-24 23:18 UTC
Author: fei    Posted: 2008-01-25 09:15    Length: 65,535 byte(s)
[Original] [Print] [Top]
经过8个RC.
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.24
1. Short overview (for news sites, etc)

2.6.24 includes CPU "group scheduling", memory fragmentation avoidance, tickless support for x86-64/ppc and other architectures, many new wireless drivers and a new wireless configuration interface, SPI/SDIO MMC support, USB authorization, per-device dirty memory thresholds, support for PID and network namespaces, support for static probe markers, read-only bind mounts, SELinux performance improvements, SATA link power management and port multiplier support, Large Receive Offload in network devices, memory hot-remove support, a new framework for controlling the idle processor power management, CIFS ACLs support, many new drivers and many other features and fixes.

2. Important things (AKA: ''the cool stuff'')

2.1. CFS improvements

Performance/size improvements

The CFS task scheduler merged in Linux 2.6.23 is getting some microoptimization work in 2.6.24. 2.6.23's CFS context switching is more than 10% slower than the old task scheduler. With the optimization done in 2.6.24, CFS is now even a bit faster than the old task scheduler (which is quite fast already). The compiled size of the scheduler has also improved and now it's a bit smaller on UP and a lot smaller in SMP.

Fair Group Scheduling

You can read this recommended article about the Fair Group Scheduling feature.

Another feature in the scheduler is Fair Group Scheduling. Normally the scheduler operates on individual tasks and strives to provide fair CPU time to each task. Sometimes, it may be desirable to group tasks and provide fair CPU time to each such task group. For example, it may be desirable to first provide fair CPU time to each user on the system and then to each task belonging to a user. In other words, given two users, one running one cpu-bound process and the other two cpu-bound processes, you may want to give 50% of CPU time to the first users and his task, and 50% to the other user, which will be shared between his two processes - 25% of CPU time for each. Group Scheduling provides the ability to choose partitions to support the previous scenario.

At present, there are two (mutually exclusive) mechanisms to group tasks for CPU bandwidth control purpose: 1) Group scheduling based on user id, which is the case previously mentioned as example. This mechanism is configurable, which means you can have more CPU time than just a 50%/50% rule - for example, you can assign user root double the priority of other users. 2) Group scheduling. This mechanism (based in the "task control groups", see section 2.10) lets the administrator create arbitrary groups of tasks (ie: "multimedia", "compiling"), set how much CPU time 'priority' you want to give that group by catting the value to its cpu_share file, and then attach a PID to whatever task group you want. Documentation on how to use those two features can be found in Documentation/sched-design-CFS.txt.

guest time reporting

Additionally, the task scheduler in 2.6.24 is adding a new "guest" field after "system" and "user" in /proc/<PID>/stat, where it tracks how much CPU time a task is spending in running a 'virtual' CPU.

2.2. Tickless support for x86-64, PPC, UML, ARM, MIPS

The Tickless feature was added in Linux 2.6.21. This feature allows the kernel to disable timer interrupts for longer, variable periods, saving some power and improving performance, especially in virtual guests. 2.6.24 adds tickless support to the widespread 64-bit x86 architecture, but also to PPC, the virtualized architecture UML, and some variants of ARM and MIPS. They join the already tickless supported x86-32, SPARC-64 and SH.

2.3. New wireless drivers and configuration interface

New wireless configuration interface

In Linux 2.6.22, Linux got a new wireless stack. This new stack is backwards compatible with the old ioctl-based configuration of the old stack. However, the new stack was designed to have a much better configuration interface, based on netlink. While the backwards compatibility isn't going away, all wireless configuration tools are recommended to have long-term plans to switch to the new interface.

Drivers

In Linux 2.6.22, the mac80211 (formerly d80211) wireless stack was merged, but not many drivers that use this new stack have been merged (only one). Linux 2.6.24 will have a lot of new wireless drivers using the new stack; 2.3 MB of source files in total:

*

iwlwifi driver for the Intel PRO/Wireless 3945ABG/BG Network Connection and Intel Wireless Wifi Link AGN (4965) adapters (commit)
*

rt2x00 driver for Ralink wireless hardware (rt2400 pci/pcmcia, rt2500 pci/pcmcia, rt61 pci/pcmcia, rt2500 usb, rt73 usb). Check the hardware matrix (commit)
*

adm8211 driver for the ADMtek ADM8211x based wireless cards. These are PCI/mini-PCI/Cardbus 802.11b chips found in cards such as: Xterasys Cardbus XN-2411b, Blitz Netwave Point PC, Trendnet 221pc, Belkin F5d6001, SMC 2635W, Linksys WPC11 v1, Fiberline FL-WL-200X, 3com Office Connect (3CRSHPW796), Corega WLPCIB-11, SMC 2602W V2 EU, D-Link DWL-520 Revision C (commit)
*

b43 driver for modern BCM43xx devices. This driver supports the new BCM43xx IEEE 802.11G devices, but not the old IEEE 802.11B devices - those are supported by the b43legacy driver. This driver uses V4 firmware, which must be installed separately using b43-fwcutter (commit)
*

b43legacy driver for legacy BCM43xx devices from Broadcom (BCM4301 and BCM4303) and early model 802.11g chips (BCM4306 Ver. 2) used in the Linksys WPC54G V1 PCMCIA devices. Newer 802.11g and 802.11a devices need the b43 driver. This driver uses V3 firmware, which must be installed separately using b43-fwcutter (commit)
*

p54 driver for prism54 softmac pci/usb hardware (commit)
*

Driver for Marvell Libertas 8385 Compactflash 802.11b/g cards (commit)
*

Libertas sdio driver (commit)

There are also a lot of network (non-wireless) drivers being merged, look at the section 2.14, "new drivers"

2.4. Anti-fragmentation patches

You can read this recommended article about the "Anti-fragmentation" feature.

A known weakness of the Linux kernel is the memory fragmentation that the system faces after days without rebooting or after intense operations. This makes difficult to do "high-order" memory allocations (allocations larger than the native page size - 4 KB on x86). It's relatively easy to trigger those cases. For example a network driver may try to allocate 4 pages to store data received from the network. This allocation may not succeed despite there being plenty of free memory available, as there is no single uninterrupted block of memory big enough (fragmentation). For almost three years patient developers have been continually developing and improving the anti-fragmentation patches to improve the memory allocator and reduce the tendency to fragment. These efforts have been finally merged in 2.6.24.

The purpose of this feature is to reduce external fragmentation by grouping pages of related types together. When pages are migrated (or reclaimed under memory pressure), large contiguous pages will be freed. Allocations are categorized by their ability to migrate. Tests show that about 60-70% of physical memory can be allocated on a desktop after a few days uptime. In benchmarks and stress tests, it has been found that 80% of memory is available as contiguous blocks at the end of the test. To compare, a standard kernel was getting < 1% of memory as large pages on a desktop and about 8-12% of memory as large pages at the end of stress tests.

2.5. SPI/SDIO support in the MMC layer

The MMC layer, which is the code which implements support for MMC/SD memory cards, is suffering one of the biggest transformations in its life, because it has been heavily modified to get support for SDIO and SPI.

SDIO is an alias for "Secure Digital I/O", and it allows to use the SD card slot (in the devices that support SDIO, ie. PDAs, cell phones or laptops) to use "small devices designed for the SD form factor, like GPS receivers, Wi-Fi or Bluetooth adapters, modems, Ethernet adapters, barcode readers, IrDA adapters, FM radio tuners, TV tuners, RFID readers, digital cameras, or other mass storage media such as hard drives" (quote from the Wikipedia entry). There are currently three working drivers for this new stack: sdio_uart, a driver for the standardised GPS interfaces; libertas_sdio, a driver for Marvell's 8686 Libertas wifi chip; and hci_sdio, a driver for the standardised bluetooth interface.

SPI is required by SDIO, and it's a "bus" (like IDE, SATA, USB...) which is used to access a wide range of devices, but more importantly, some systems require to access MMC/SD cards using a SPI controller instead of using a "native" MMC/SD controller. This has a disadvantage of being relatively high overhead, but a compensating advantage of working on many systems without dedicated MMC/SD controllers. 2.6.24 includes support for SPI and a experimental "MMC/SD over SPI" driver. (commit)]

2.6. USB authorization

As part of the efforts to make the USB layer ready for wireless USB, Linux 2.6.24 is getting support for USB device authorization, which allows you to control if a USB device (wireless or not) can be used or not in a system. As of now, when a USB device is connected it is configured and it's interfaces immediately made available to the users. With this modification, only if root authorizes the device to be configured will then it be possible to use it.

Beside of providing a infrastructure to allow secure usage of wireless USB devices, this feature also allows to implement kiosk-style lockdown of USB devices, fully controlled by user space. Every USB device has a corresponding /sys/bus/usb/devices/<DEVICE>/authorized file. Writing 1 to that file authorizes a device to connect, 0 deauthorizes it. USB hosts can also set new devices connected to be deauthorized by writing 0 (or 1 to authorize) to /sys/bus/usb/devices/usb<X>/authorized_default. By default, wired USB devices are authorized by default to connect, and wireless USB hosts deauthorize by default all new connected devices (this is so because they need to do an authentication phase before authorizing).

2.7. Per-device dirty memory thresholds

You can read this recommended article about the "per-device dirty thresholds" feature.

When a process writes data to the disk, the data is stored temporally in 'dirty' memory until the kernel decides to write the data to the disk ('cleaning' the memory used to store the data). A process can 'dirty' the memory faster than the data is written to the disk, so the kernel throttles processes when there's too much dirty memory around. The problem with this mechanism is that the dirty memory thresholds are global, the mechanism doesn't care if there are several storage devices in the system, much less if some of them are faster than others. There are a lot of scenarios where this design harms performance. For example, if there's a very slow storage device in the system (ex: a USB 1.0 disk, or a NFS mount over dialup), the thresholds are hit very quickly - not allowing other processes that may be working in much faster local disk to progress. Stacked block devices (ex: LVM/DM) are much worse and even deadlock-prone (check the LWN article).

In 2.6.24, the dirty thresholds are per-device, not global. The limits are variable, depending on the writeout speed of each device. This improves the performance greatly in many situations.

2.8. PID and network namespaces

You can read this recommended article, and this one, about the "PID and network namespaces" feature.

Usually, there's a global PID namespace for a whole Linux system: The list of processes contains all the processes running in the system. There's also a global view of the networking stack (routing tables and firewall rules, etc). However, operating-system virtualization like OpenVZ or Vserver need to have different views of the PID namespace and the networking stack. Linux 2.6.24 adds PID namespaces and basic support for network namespaces. They're used through the CLONE_NEWPID and CLONE_NEWNET clone() flags.

2.9. Large Receive Offload (LRO) support for TCP traffic

You can read this recommended article about the "Large Receive Offload" feature.

LRO combines received tcp packets to a single larger tcp packet and passes them then to the network stack in order to increase performance (throughput). After many out-of-the-tree iterations, mainline Linux is getting support for this feature (commit), (commit), (commit)

2.10. Task Control Groups

There have been various proposals in the Linux arena for resource management/accounting and other task grouping subsystems in the kernel (Resgroups, User Beancounters, NSProxy cgroups, and others). Task Control Groups is the framework that is getting merged in 2.6.24 to fulfill the functionality that lead to the creation of such proposals. TCG can track and group processes into arbitrary "cgroups" and assign arbitrary state to those groups, in order to control its behaviour. The intention is that other subsystems hook into the generic cgroup support to provide new attributes for cgroups, such as accounting/limiting the resources which processes in a cgroup can access.

For example, cpusets (see Documentation/cpusets.txt) allows you to associate a set of CPUs and a set of memory nodes with the tasks in each cgroup. The CFS group scheduling feature uses cgroups to control the CPU time that every cgroup can get. Other various resource management and virtualization/cgroup efforts can become task cgroup clients. The configuration interface is described in Documentation/cgroups.txt

2.11. Linux Kernel Markers

You can read this recommended article about the "Linux Kernel Markers" feature.

The Linux Kernel Markers implement static probing points for the Linux kernel. Dynamic probing system like kprobes/dtrace can put probes pretty much anywhere. However, the scripts that dynamic probing points use can become quickly outdated, because a small change in the kernel may trigger a rewrite of the script, which needs to be maintained and updated separately, and will not work for all kernel versions. Thats why static probing points are useful, since they can be put directly into the kernel source code and hence they are always in sync with the kernel development. Static probing points apparently can also have some performance advantages. They've no performance costs when they're not being used.

The kernel markers are a sort of "derivative" of the long-time external patchset "Linux Trace Toolkit" (LTT), which is a feature that has been around since 1999. The Kernel Markers are a feature needed for the SystemTap project. In this release, there are no probing points being included, but many will be certainly included in the future, and some tracking tools like blktrace will probably be ported to this kind of infrastructure in the future.

2.12. Read-only bind mounts

Read-only bind mounts (mount --bind) allows a read-only view into a read-write filesystem. In the process of doing that, it also provides infrastructure for keeping track of the number of writers to any given mount. This has a number of uses. It allows chroots to have parts of filesystems writable. It will be useful for containers in the future because users may have root inside a container, but should not be allowed to write to somefilesystems.

It allows security enhancement by making sure that parts of your filesystem are read-only (such as when you don't trust your FTP server), when you don't want to have entire new filesystems mounted, or when you want atime selectively updated.

2.13. x86-32/64 arch reunification

You can read this recommended article.

When support for the x86-64 AMD architecture was developed, it was decided to develop it as a "fork" of the traditional x86 architecture for comodity reasons. Many patches needed to patch a file in the i386 architecure directory, and another similar patch for the duplicated file in the x86_64 directory. It has been decided to unify both architectures in the same directory again.

This reunification has not been done in a radical way. In this release, both architectures have been unified in arch/x86, but only in appearance. All the source files in i386 and x86-64 directories have been moved to arch/x86, but renaming them with "_32" and "_64" suffixes. Ex: arch/i386/kernel/reboot.c has been moved to arch/x86/kernel/reboot_32.c, and arch/x86_64/kernel/reboot.c has been moved to arch/x86/kernel/reboot_64.c. Makefiles have been modified accordingly. So for now the reunification has been pretty much just a relocation of all the files and adaptation of the build machinery to make it compile just as it'd have been compiled in the old separated directories, done mostly with scripts.

In the future lots of those files will be unified and shared by both architectures, ex. reboot_32.c and reboot_64.c into reboot.c, and many files have already been unified in this release. Others will keep separated forever, due to the differences between both architectures.

2.14. New drivers

Graphics

*

Add the uvesafb driver. uvesafb is an enhanced version of vesafb. It uses a userspace helper (v86d) to execute calls to the x86 Video BIOS functions. The driver is not limited to any specific arch and whether it works on a given arch or not depends on that arch being supported by the userspace daemon (commit), (commit)
*

Add a framebuffer driver for Blackfin BF54x framebuffer device driver (commit)

SATA/IDE

*

Add driver for bf548 on chip ATAPI controller. (commit)
*

Add AVR32 PATA driver (commit)
*

Add platform IDE driver, used mostly for Memory Mapped IDE devices, like Compact Flashes running in True IDE mode (commit)
*

Add driver pata_cs5536 ATA driver for Geode companion chip (commit)
*

Add driver for Freescale 3.0Gbps SATA Controllers (commit)

Network(wireless)

* Look at the section 2.3 "New wireless drivers and configuration interface"

Network

*

Add ixgbe driver for Intel(R) 82598 PCI-Express 10GbE adapters (v4) (commit)
*

Add new E1000E pci-express e1000 driver (currently for ICH9 devices only) (commit)
*

Add Sun Neptune ethernet driver. (commit)
*

Add fast ethernet controller driver for mpc52xx (commit)
*

Add driver for IP1000A GBit cards (commit)
*

Add Tehuti network driver. (commit)
*

Add AR7 ethernet driver (commit)
*

Add device tree-aware EMAC driver (commit)
*

Virtual ethernet device driver. (commit)
*

Add IrDA driver for Kingsun Dazzle IrDA USB (commit),
*

Add IrDA driver for Kingsun KS-959 IrDA USB (commit)

Sound

*

Add driver for the AT73C213 DAC using Atmel SSC (commit)
*

Add ASoC CS4270 codec device driver (commit)
*

Add driver for Gallant SC-6000 card and clones: Audio Excel DSP 16 and Zoltrix AV302 (commit)

MTD

*

Add map driver for NOR flash on the Intel Vermilion Range chipset (commit)
*

Add blackfin on-chip NAND Flash Controller driver (commit)
*

Add NAND Driver for Olympus MAUSB-10 and Fujifilm DPC-R1 card readers (commit)

USB

*

Add atmel_usba_udc driver (commit)
*

Add driver for CH341 USB-serial adaptor (commit)
*

Eagle IV chipset support (commit)

V4L/DVB

*

Add ivtv-fb framebuffer driver for cx23415 devices (commit)
*

Add a driver for Toshiba TCM825x VGA camera sensor (commit)
*

Add driver for the internal MPX of the Panasonic VP27s tuner (commit)
*

Add driver for the silicon baseband tuner MT2266 from Microtune (commit)
*

Adding driver for the silicon baseband tuner MT2131 from Microtune tuner (commit)
*

Add driver for the Samsung S5h1409 demodulator, also known as the Conexant CX24227 demodulator (commit)
*

Add driver for the silicon baseband tuner DIBB0070 from DIBcom (commit)
*

Add CX23885/CX23887 PCIe bridge driver (commit), (commit)

Hwmon

*

Add driver for FSC chips (commit)
*

Add driver for Fintek F71882FG and F71883FG Super-I/O chips (commit)
*

Add driver for Analog Devices ADT7470 chips (commit)
*

Add driver for Fintek F75375S/SP and F75373 chips (commit)
*

IBM power meter driver (commit)
*

Add driver for the SMSC SCH3112, SCH3114, and SCH3116 Super-I/O chips (commit)
*

New driver to read FB-DIMM temperature sensors on systems with the Intel 5000 series chipsets (commit)

I2C

*

Add Davinci I2C controller support (commit)

Bluetooth

*

Add generic driver for Bluetooth SDIO (commit) and USB devices (commit)
*

Add UART driver for Texas Instruments' BRF63xx chips (commit)

3. Subsystems

3.1. Memory management

*

Memory hot-remove support (commit 1, 2, 3, 4, 5)
*

Generic Virtual Memmap support for SPARSEMEM: SPARSEMEM is a pretty nice framework that unifies quite a bit of code over all the arches, and it would be great if it could be the default so that the various forms of DISCONTIG and other variations on memory maps can be killed. So far what has hindered this are the additional lookups that SPARSEMEM introduces for virt_to_page and page_address. This patch is a step to solve that problem and has the potential to allow to make SPARSMEM the default (and even the only) option for most systems (commit 1, 2, 3, 4, 5)
*

Dynamic huge page pool resizing (commit 1, 1, 2, 3, 4, 5)
*

Use lockless radix-tree probe (commit)
* Memoryless nodes: Hardware from SGI, HP and Fujitsu can have sometimes configurations of nodes with CPUs but not memory
*

Remove ZERO_PAGE (commit)
*

SLUB: direct pass through of page size or higher kmalloc requests, reducing memory overhead and improving performance in many cases (commit)
*

oom: add oom_kill_allocating_task sysctl, which will automatically kill the OOM-triggering task instead of scanning through the tasklist to find a memory-hogging target (commit)
*

Add node states sysfs class attributes in /sys/devices/system/node/ (commit)

3.2. Various

*

Intel IOMMU driver (commit 1, 2, 2)
*

cpuidle: CPU idle is a generic framework for supporting software-controlled idle processor power management. It includes modular cross-platform governors that can be swapped during runtime, including one optimized for NO_HZ, "menu" (commit), (commit)
*

Virtio: It's a "virtual I/O" layer which should allow common drivers to be efficiently used across most virtual I/O mechanisms. It includes a network driver, a block driver, a console driver, virtio transport for 9p, and lguest support (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
*

Remove fixed limit on number of guests, and lguests array (commit)
*

readahead: support of interleaved reads (commit)
*

Add a new per-cpuset flag called 'sched_load_balance'. When enabled in a cpuset (the default value) it tells the kernel scheduler that the scheduler should provide the normal load balancing on the CPUs in that cpuset, sometimes moving tasks from one CPU to a second CPU if the second CPU is less loaded and if that task is allowed to run there. When disabled (write "0" to the file) then it tells the kernel scheduler that load balancing is not required for the CPUs in that cpuset. This serves two purposes: 1) It provides a mechanism for real time isolation of some CPUs, and 2) it can be used to improve performance on systems with many CPUs by supporting configurations in which load balancing is not done across all CPUs at once, but rather only done in several smaller disjoint sets of CPUs (commit)
*

Arbitrary boot kernel in hibernation resume: It's not possible to hibernate a system and try to resume from hibernation with a different kernel - 2.6.24 changes that (commit), (commit), (commit), (commit), (commit), (commit)
*

Extended crashkernel command line (commit), (commit)
*

Chained sg support (commit), (commit), (commit), (commit), (commit), (commit)
*

Export processes resource limits via /proc (commit)
*

Implement file posix capabilities (recommended LWN article about this feature) (commit)
*

Improve performance of sys_time() (improves the sysbench oltp macrobenchmark by 4-5%) (commit)
*

softlockup: add softlockup_thresh sysctl to control the trigger limit for softlockup warnings (commit)
*

Add scaled time to taskstats based process accounting (commit), (commit)
*

Console keyboard events accessibility (commit), (commit)
*

Add /sys/module/name/notes (commit)
*

Allow passing of arguments to user mode helper when core_pattern is a pipe (commit)
*

Add vmcoreinfo: This feature frees the restriction that makedumpfile users should install a vmlinux file (including the debugging information) into each system (commit)
*

quota: send messages via netlink (commit)
*

Driver core: add CONFIG_UEVENT_HELPER_PATH (commit)
*

Add kernel parameter to overwrite legacy pty count (commit)
*

unicode diacritics support (commit)
*

Add the MMF_DUMP_ELF_HEADERS option to /proc/pid/coredump_filter (commit)
*

NBD: allow hung network I/O to be cancelled (commit)
*

F_DUPFD_CLOEXEC fcntl() command implementation (commit)
*

Convert LSM into a static interface (commit)

3.3. Networking

* IPv4
o

Add ICMPMsgStats MIB (RFC 4293) for IPV4 (commit)
* IPv6
o

Add ICMPMsgStats MIB (RFC 4293) for IPV6 (commit)
o

Update setsockopt(IPV6_MULTICAST_IF) to support RFC 3493, try2 (commit)
o

Export userland ND options through netlink (RDNSS support) (commit)
* TCP
o

Discard fuzzy SACK blocks (commit)
o

Enable SACK enhanced FRTO (RFC4138) by default (commit)
* UDP
o

Randomize port selection. (commit)
* SCTP
o

Port randomization (commit)
o

Autotuning to the sctp buffer management (commit)
o

Implement the Supported Extensions Parameter (commit)
o

Implement SCTP-AUTH (commit),(commit), (commit), (commit), (commit), (commit), (commit), (commit)
* DCCP
o

Implement SIOCINQ/FIONREAD (commit)
o

Add socket option to query the current MPS (commit)
o

Rate-limit DCCP-Syncs (commit)
* Wireless
o

Add support for setting TX power and radio status (commit)
o

Revamp interface and filter configuration (commit)
o

Add association LED trigger (commit)
o

Implement ERP info change notifications (commit)
o

Add SIOCGIWTXPOWER routine (commit)
*

9p: Make transports dynamic (commit) and attach-per-user support (commit)
*

Add stateless NAT on IPv4 packets (commit)
*

Netfilter: Add xt_time match: a "time" match, which allows you to match based on the packet arrival time (at the machine which netfilter is running) or departure time/date (for locally generated packets) (commit)
*

Convert IP route cache garbage collection from softirq processing to a workqueue (commit)
*

Dynamically allocate the loopback device (commit), (commit)
*

bonding: Optionally allow ethernet slaves to keep own MAC (commit)
*

AF_PACKET: Don't enable global timestamps. (commit)
*

Add ETHTOOL_[GS]FLAGS sub-ioctls (commit), (commit)
*

XFRM: xfrm audit calls (commit)
*

PKTGEN: Multiqueue support. (commit)
*

RFKILL: Add support for ultrawideband (commit), for an rfkill LED. (commit), for hardware-only rfkill buttons (commit)

3.4. Filesystems

* CIFS
o

Support for named pipes (commit), (commit)
o

Support for CIFS ACLs (commit), (commit), (commit), (commit)
* EXT4
o

Uninitialized Block Groups. In performance tests testing e2fsck time, e2fsck time on ext3 grows linearly with the total number of inodes in the filesytem. In ext4 with the uninitialized block groups feature, the e2fsck time is constant, based solely on the number of used inodes rather than the total inode count. Since typical ext4 filesystems only use 1-10% of their inodes, this feature can greatly reduce e2fsck time for users. With performance improvement of 2-20 times, depending on how full the filesystem is (commit), (commit)
* OCFS2
o

Support for inline data in the inode data (commit), (commit), (commit), (commit), (commit)
* NFS
o

Support for 64 bit inodes (commit), (commit), (commit)
o

Add IPV6 support (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
o

Add a client RPC transport for supporting kernel NFS over RDMA mounts, including Infiniband and iWARP. Experimental (commit 1, 2, 3, 4, 5),
* FUSE
o

Support BSD locking semantics (commit)
o

Add support for mandatory locking (commit)
* JFFS2
o

Add LZO compression support. (commit)
* XFS
o

Radix tree based inode caching (commit)
* EXT2
o

Ext2 port of the reservations code from ext3 (improves the performance a lot) (commit)
* EXT3
o

Support large blocksize up to PAGESIZE for platforms like IA64, which has a 64k page size (commit)
* UFS
o

Add in SunOS 4.1.x compatible mode (commit)

3.5. CRYPTO

*

seed: New cipher algorithm (commit)
*

api: Add aead crypto type (commit)
*

aead: Add authenc (commit)
*

xts: XTS blockcipher mode implementation without partial blocks (commit)

3.6. SELinux

*

Reduce the read/write SELinux overhead (to almost nothing in x86) (commit)
*

Tune avtab to reduce memory usage (commit)
*

Improve performance on AVC misses (commit)
*

Policy selectable handling of unknown classes and perms (commit)

3.7. KVM

*

Use the scheduler preemption notifiers to make kvm preemptible (commit)
*

Communicate cr8 changes to userspace - allows running 64-bit Windows (commit)
*

Emulate local APIC in kernel, because lightweight exits (exits which don't involve userspace) are many times faster than heavyweight exits, it makes sense to emulate high usage devices in the kernel (commit)
*

Emulate hlt in the kernel (commit)
*

Add support for in-kernel PIC emulation (commit)
*

In-kernel I/O APIC model (commit)

3.8. DM

*

Add uevent to core (commit)
*

uevent generate events (commit)
*

mpath: send uevents (commit)

3.9. Audit

*

Watching subtrees support (commit)

3.10. Architecture-specific changes

* x86
o

EFI boot support: EFI frame buffer driver. UEFI2.0 spec deprecates Universal Graphics Adapter (UGA) protocol and only Graphics Output Protocol (GOP) is produced (commit)
o

Enable HPET on ICH3 and ICH4 (commit)
o

Add HPET force support for MCP55 (nForce 5) chipsets (commit)
o

Force enable HPET for CK804 (nForce 4) chipsets (commit)
o

Add support for picopower irq router (commit)
* PPC
o

Enable tickless idle and high res timers for powerpc (commit), (commit), (commit)
o

Use 1TB segments for all kernel mappings and for user addresses of 1TB and above, on machines which support them (currently POWER5+, POWER6 and PA6T) (commit)
o

ppc64: support CONFIG_DEBUG_PREEMPT (commit)
o

Bamboo board support (commit), (commit), (commit)
o

AMCC PPC440EPx Sequoia board support (commit), (commit), (commit), (commit)
o

Walnut PPC405 board support (commit), (commit), (commit), (commit), (commit)
o

Add support for the core of the Bestcomm API for the Freescale MPC5200(b). The Bestcomm engine is a microcode-controlled / tasks-based DMA used by several of the onchip devices (commit), (commit), (commit),
o

4xx: Add RGMII support for Sequoia 440EPx (commit), add AMCC Kilauea eval board support (commit), (commit), (commit). Also, enable NEW EMAC support for Sequoia 440EPx (commit), on the PPC 440GP Ebony board (commit), on the PPC405 Walnut board (commit), on Bamboo board (commit)
o

Remove APUS support from arch/ppc (commit)
o

bootwrapper: Add CPM serial driver (commit), add 8xx cuboot support (commit), add PowerQUICC II (82xx with CPM) cuboot support (commit), add cuboot for MPC7448HPC2 platform (commit)
o

Add cpu feature for SPE handling (commit)
o

85xx: Add basic Uniprocessor MPC8572 DS port (commit)
o

MPC5200 low power mode (commit)
o

Add generic Xilinx Virtex board support (commit), (commit), (commit)
o

Celleb: New HTAB Guest OS Interface on Beat (commit), support for Power/Reset buttons (commit)
o

Add early debug console for CPM serial ports. (commit)
o

Embedded Planet EP88xC support (commit)
o

mpc82xx: Add pq2fads board support. (commit)
o

MPC8568E-MDS: add support for ds1374 rtc (commit)
o

Add basic board support for the MPC8610 HPCD (commit), (commit)
o

spi: Support non-QE processors (commit)
o

Implement logging of unhandled signals (commit)
* Blackfin
o

Add new processor ADSP-BF52x arch/mach support (commit)
o

Support for HV Sistemas H8606 board (commit)
o

Add NFC driver support in BF527-EZKIT board (commit)
o

Add stack checking (commit)
o

Initial patch to add earlyprintk support (commit)
o

Add ability to expend the hardware trace buffer (commit)
* ARM
o

Atmel EB01 board support (commit), (commit), (commit)
o

Clocksource and clockevents for at91rm9200 (commit) and ns9xxx (commit), (commit)
o

Add rtc-cmos driver for ISA-based footbridge platforms (commit)
o

ep93xx: add cirrus logic edb9307 support (commit)
o

OMAP: Add minimal OMAP2430 support (commit)
o

OMAP: Add support for Amstrad Delta keypad (commit)
o

OMAP: add SoSSI clock (commit), (commit)
o

OMAP: Basic support for siemens sx1 (commit)
o

OMAP: Palm Tungsten|T support (commit)
o

OMAP: PalmZ71 support (commit)
o

PXA3xx base support (commit)
o

CM-X270 machine support (commit)
o

ITE 8152 PCI bridge support (commit)
o

CM-x270: PCMCIA support (commit)
* SH
o

Add SH7720 CPU support (commit)
o

Bring SMP support back from the dead (commit)
o

Initial SH-X3 SMP support. (commit)
o

Initial INTC controllers SMP support (commit)
o

intc support for: SH7710 (commit), SH7705 (commit), SH7785 (commit), SH7760 (commit), SH7706, SH7707, SH7708 and SH7709 (commit), x3 (commit), sh7619 (commit), sh7206 (commit)
o

x3proto: ILSEL IRQ support. (commit)
o

Magic Panel R2 board support. (commit)
o

Add maple bus support for the SEGA Dreamcast (commit), (commit)
* SPARC
o

Support for new termios. (commit)
o

Enable MSI on sun4u Fire PCI-E controllers. (commit)
o

Implement atomic backoff (commit)
* MIPS
o

Add support for BCM47XX CPUs. (commit)
o

Dyntick support for SMTC (commit) and clockevent/clocksource drivers for other hardware (commit), (commit), (commit), (commit), (commit), (commit)
o

IRQ Affinity Support for SMTC on Malta Platform (commit)
o

Add back support for LASAT platforms (commit)
o

Add GT641xx IRQ routines. (commit)
o

GPIO LED driver for the WGT634U machine (commit)
o

SYNC emulation for MIPS I processors (commit)
* AVR32
o

checkstack support (commit)
o

/sys/kernel/debug/at32ap_clk (commit)
* m68knommu
o

Add support for Savant/Rosie1 board (commit), (commit)
o

New style Coldfire UART driver (commit)
* UML
o

Add VDE networking support (commit)
o

Throw out CONFIG_MODE_TT (commit)
* IA64
o

Add driver for ACPI methods to call native firmware (commit)
* S390
o

Add per-cpu idle time / idle count sysfs attributes. (commit)

4. Drivers

4.1. Buses

* PCI:
o

Implement "pci=noaer" (commit)
o

Introduce and enable PCI domain support in x86 (commit), add 'nodomains' boot option, and pci_domains_supported global (commit)
*

Add Sonics Silicon Backplane bus support (commit)

4.2. Graphics

*

XilinxFB: Add support for custom screen resolution (commit)
*

pm2fb: accelerated 24-bit fillrect (commit), accelerated imageblit (commit), Permedia 2V hardware cursor support (commit), hardware cursor support for the Permedia2 (commit)
*

pm3fb: mtrr support and noaccel option (commit), copyarea and partial imageblit suppor (commit), hardware cursor support (commit)
*

mbxfb: Improvements and some new features (commit)
*

tdfxfb: mtrr support (commit), hardware cursor (commit)
*

pxafb: Add support for other palette formats (commit)
*

s3c2410fb: multi-display support (commit)
*

Intel FB: support for interlaced video modes (commit), (commit)
*

vfb: make virtual framebuffer mmapable (commit)
*

Radeonfb Xpress 200M RC410 support (commit)
*

fbdev: Support for byte-reversed framebuffer formats (commit)
*

ps3fb: add virtual screen and panning support (commit)

4.3. SATA/IDE

* SATA (libata)
o

Link power management infrastructure. Device Initiated Power Management, which is defined in SATA 2.5 can be enabled for disks which support it. This feature enables DIPM in linux when the user sets the link power management policy to "min_power". It's also possible to set the PM policy to "max_performance" or "medium_power" (commit). Implement hw link power management support for ahci (commit)
o

SATA Port Multiplier support (commit), (commit), (commit), (commit). Implement PMP support for ahci (commit) and sata_sil24 (commit)
o

ACPI-based PATA/SATA hotplug (commit)
o

libata_pata: ACPI support (commit)
o

Turn on ACPI by default (commit)
o

Add a IDE style DMA disable (commit)
o

ahci: RAID mode SATA patch for Intel Tolapai (commit), add MCP79 support to AHCI driver (commit)
o

pata_ns87415: Initial cut at 87415/87560 IDE support (commit)
o

pata_sil680: Add MMIO support (commit)
o

sata_nv: add SW NCQ support for MCP51/MCP55/MCP61 (commit)
* Old IDE stack
o

Remove "idex=dma" kernel parameter (commit), add "hdx=nodma" kernel parameter (commit)
o

Hook ACPI _PSx method to IDE power on/off (commit)
o

sis5513 IDE: remove /proc/ide/sis (commit)
o

amd74xx IDE: remove /proc/ide/amd74xx (commit)

4.4. Networking

*

asix: Support for USB autosuspend (commit)
*

ax88796: add 93cx6 eeprom support (commit)
*

B43: LED triggers support (commit), RF-kill support (commit)
*

B44: port to native ssb support (commit)
*

bmac: add simple ethtool support for network manager (commit)
*

dl2k: add Sundance/Tamarack TC902x Gigabit Ethernet Adapter support (commit)
*

hostap_cs: Add device ID for Telekom T-Sinus 111card (commit), add Linksys card ID (commit)
*

ibmveth: Implement ethtool hooks to enable/disable checksum offload (commit), enable TCP checksum offload (commit), add ethtool TSO handlers (commit), add ethtool driver stats hooks (commit)
*

IOC3: Switch hw checksumming to ethtool configurable. (commit)
*

ipw2200: batch non-user-requested scan result notifications (commit)
*

libertas: monitor mode support for OLPC firmware (commit)
*

myri10ge: add IPv6 TSO support (commit)
*

netconsole: Support dynamic reconfiguration using configfs (commit), support multiple logging targets (commit)
*

ns83820: add ethtool media support (commit)
*

p54usb: Add device ID for Linksys WUSB54AG (commit)
*

pasemi_mac: enable iommu support (commit)
*

pcnet32: add suspend and resume capability (commit)
*

r8169: MSI support (commit)
*

rtl8187: Add device ID for HP wireless print kit usb dongle (commit)
*

skge: eeprom support (commit), add a debug interface (commit)
*

TG3: Add 5761 support (commit), (commit), add 5784 and 5764 support. (commit), add 5723 support (commit), add management FW version to ethtool report (commit)
*

uli526x: Add suspend and resume capability (commit)
*

zd1211rw: monitor all packets (commit), add ID for Sitecom WL-162 (commit), add ID for ZyXEL M-202 XtremeMIMO (commit), add USB id for Telegent TG54USB WLAN adapter (commit), add ID for Talktalk SNU5630NS/05 (commit)
*

dgrs: remove the driver, since this device never was sold (commit)

4.5. Sound

*

OSS emulation: add new AFMT_* formats (commit), support 3-bytes 24bit format (commit)
*

The next round of scheduled OSS code removal (commit)
*

hda-intel: Add POWER_SAVE option. It's an experimental option to achieve an aggressive power-saving. With this option, the driver will turn on/off the power of each codec and controller chip dynamically on demand. Note that this power-saving might cause slight click-noise at power-on/off. Also, it might take some time to wake up the codec, and might even drop some tones at the very beginning. This seems to be the side-effect of turning off the controller chip (commit)
*

hda-intel: add hwdep interface (commit), add support for the MCP79 (commit)
*

hda-codec: Add a generic bind-control helper (commit), add support for the ASRock K8NF6G-VSTA motherboard (commit), add more Dell systems (commit), add support for Acer Aspire laptops (commit), update realtek codec support (commit), add support for Biostar NF61S SE mobo (commit), add ALC268 acer model (commit), add model for MSI m673x (commit), add auto-mute function to Sony VAIO with STAC9872 (commit), add support for Macbook Pro rev3 (commit), add support for Toshiba Satellite P205 (commit), add support for Haier W66 (commit), add SPDIF support on ALC880 fujitsu model (commit), add laptop-automute model for AD1986A (commit), add support for ASUS A7M (commit), add missing model names for ALC882 codecs (commit), add support for Toshiba A305 (commit), add 4 channel support for Realtek ALC883 (commit), add two new systems to ALC883 (commit), add support for analog loopback to STAC9204/9205/922x/927x (commit), add support for Acer Aspire 9303 (commit)
*

snd-emu10k1: Add support for E-Mu 1616 PCI, 1616M PCI, 0404 PCI, E-Mu (commit), add support for ADAT and S/PDIF. (commit), add support for SPDIF/ADAT status. (commit)
*

snd-ca0106:Add recognition for new variant. Fixes ALSA bug#3251 (commit)
*

Add missing models for Dell with STAC9200 (commit) and Stac9205 codecs. (commit)
*

Add the ESS1879 pnpbios ID to the es18xx driver (commit)
*

usb-audio: Add advanced mode support for Edirol UA-1EX (commit), add Ozone Academic support (commit), add basic support for E-Mu USB devices. (commit)
*

bt87x: Add known PCI ID entries (commit)
*

hdsp: Add support for latset RME9632 revisions (commit)
*

cmipci: add 96 kHz support (commit)
*

caiaq: support for Native Instrument's Rigkontrol3 (commit)
*

Add support for ASUS P701 eeepc (commit)

4.6. ACPI

*

Battery: Add sysfs support (commit), add sysfs alarm (commit)
*

SBS: Add sysfs alarm (commit)
*

AC: Add sysfs interface (commit)
*

SBS: Split host controller (ACPI0001) from SBS driver (ACPI0002) (commit)
*

SBS: Add support for power_supply class (and sysfs) (commit)
*

fujitsu-laptop: create Fujitsu laptop platform specific driver (commit)
*

thinkpad_acpi: Map volume and brightness events on thinkpads (commit)

4.7. MTD

*

OneNAND 2X program support (commit)
*

OneNAND Simulator support (commit)
*

MAPS: Merge Lubbock and Mainstone drivers into common PXA2xx driver (commit)
*

Remove Momenco Ocelot NOR flash support (commit)
*

m25p80 handles more chips, uses JEDEC ids and small eraseblocks (commit)
*

Add FUJITSU MBM29F800BA and ST M29F800AB descriptions (commit)
*

Delete the driver for AT26Fxxx dataflash devices (commit)

4.8. Input

*

usbtouchscreen - add support for Generaltouch devices (commit), add support for IdealTEK URTC1000 (commit), support DMC devices with empty EEPROM (commit), add support for Gotop tablet devices (commit)
*

Remove ec3104_keyb driver (commit)
*

ALPS: add support for model found in Dell Vostro 1400 (commit)
*

lifebook - add signature of Panasonic CF-72 (commit)
*

gpio-keys - add suspend/resume support (commit)
*

Add support for HP Jornada onboard keyboard (HP6XX) (commit)
*

Add support for HP Jornada 7xx onboard keyboard (commit)
*

Add support for the HP Jornada 7xx (710/720/728) touchscreen (commit)
*

ALPS: add signature for Thinkpad R61 (commit)
*

Add support for SEGA Dreamcast keyboard (commit)
*

Add support for Blackfin BF54x Keypad controller (commit)

4.9. SCSI

*

Add srp transport class (commit)
*

srp_transport: add target driver support (commit)
*

Add supported_mode and active_mode sysfs attributes to the host (commit)
*

fc_transport: add target driver support (commit)
*

arcmsr: add SATA RAID plus other fixes (commit)
*

mpt fusion: Add support for ATTO 4LD: Rebranded LSI 53C1030 (commit)
*

aic94xx: Add new PCI ID for ASC58300 (commit)
*

aic7xxx: Add suspend/resume support (commit)
*

qla2xxx: Add flash burst-read/write support (commit), allow region-based flash-part accesses (commit), add PCI error recovery support (commit)
*

advansys: Convert to PCI driver model (commit), convert to EISA driver model (commit), convert to ISA driver model (commit)
*

fc4: remove this and all associated drivers (commit)
*

ib_srp: convert to use the srp transport class (commit)
*

tgt: add I_T nexus support (commit)
*

sym53c8xx: PCI Error Recovery support (commit)

4.10. USB

*

UEAGLE: Devolo and Elsa chipsets support (commit)
*

serial/pl2303: support for BenQ Siemens Mobile Phone EF81 (commit)
*

Export URB statistics for powertop (commit)
*

Add ohci SSB bus glue (commit)
*

Add support for SHARP WS011SH to ipaq.c (commit)

4.11. HID

*

Add support for Microsoft Natural Ergonomic Keyboard 4000 (commit)
*

Add support for Thrustmaster FGT Force Feedback wheel (commit)
*

Enable hiddev for the Santarosa Macbookpro IR receiver (commit)
*

Add support for Microsoft Wireless Laser Keyboard 6000 (commit)
*

hiddev: Add 32bit ioctl compatibilty (commit)
*

Add hidraw interface (commit)

4.12. V4L/DVB

*

V4L: Add internal ioctl-like interface. (commit)
*

dtt200u: add support for the Miglia TVMini USB DVB-T adapter (commit)
*

Add remote control support for the Hauppauge Nova-T 500 (commit)
*

Add support for Compro Videomate 500 with DiB7000PC (commit)
*

tuner: better tuner radio support (commit)
*

ivtv: add Avermedia M116 (commit)
*

cx25840: add radio support. (commit)
*

saa7134: add DVB-T support for Avermedia Super 007 (commit)
*

cx23885: Added HVR1250 ATSC support (commit)
*

Add IR remote support for FusionHDTV 5 RT Gold (commit)
*

cx23885: add support for DViCO FusionHDTV 5 Express (commit)
*

Add BT.656 interface support (commit)
*

Gemtek Radio card (commit),(commit)
*

Add Typhoon Tv-Tuner PCI to bttv-cards.c (commit)
*

Add basic support for suspend/resume for saa7134 (commit)
*

Add support for MSI TV @nywhere A/D NB (commit)
*

dib0700: add support for Avermedia DVB-T Express card (commit)

4.13. HWMON

*

applesm: Add support for Mac Pro 2 x Quad-Core (commit)
*

w83791d: new sysfs beep/alarm methodology (commit)
*

it87: Add support for fan4 and fan5 (commit)
*

coretemp: Add support for Celeron 4xx (commit)

4.14. Cpufreq

*

Allow ondemand and conservative cpufreq governors to be used as default (commit)
*

Longhaul: Add support for PM133 northbridge (commit)

4.15. I2C

*

i2c-stub: Support multiple chips (commit)
*

i2c-i801: Add support for the Intel Tolapai SMBus (commit)

4.16. Bluetooth

*

Add support for handling simple eSCO links (commit)

4.17. Watchdog

*

Linux kernel IPC SBC Watchdog Timer driver (commit)
*

Add driver for the AR7 Watchdog timer (commit)

4.18. Various

*

DCA: Add Direct Cache Access driver (commit), (commit)
*

rtc: RTC class driver for the ds1374 (commit)
*

Driver for the Atmel on-chip SSC on AT32AP and AT91 (commit)
*

pcmcia: Compactflash driver for PA Semi Electra boards (commit)
*

IPMI: add polled interface (commit)
*

firewire: fw-sbp2: add support for multiple logical units per target (commit)
*

leds: Add Cobalt Raq series LEDs support (commit)
*

backlight: Add Samsung LTV350QV LCD driver (commit)
*

Add support for PCMCIA card Sierra Wireless AC850 (commit)
*

Add support for Wacom WACF007 and WACF008 to serial pnp driver (commit)
*

I/OAT: Add support for MSI and MSI-X (commit)
*

I/OAT: A
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: linux kernel 2.6.25 2008-04-17 03:13 UTC
Author: fei    Posted: 2008-04-17 12:35    Length: 54,429 byte(s)
[Original] [Print] [Top]
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.gz
Summary: 2.6.25 includes support of a new architecture (MN10300/AM33) and the widely used Orion SoCs, a new interface for more accurate measurement of process memory usage, a 'memory resource controller' for controlling the memory usage of groups of processes, realtime group scheduling, a tool for measuring high latencies called latencytop, ACPI thermal regulation, timer event notifications through file descriptors, an alternative MAC security framework called SMACK, a ext4 update, BRK and PIE-executable address space randomization, RCU preemption support, FIFO spinlocks in x86, EFI support in x86-64, a new network protocol called CAN, initial ATI r500 DRI/DRM support, improved device support and many other small improvements.

目录

1. Important features (AKA: the cool stuff)
1. Memory Resource Controller
2. Real Time Group scheduling
3. RCU Preemption support
4. FIFO ticket spinlocks in x86
5. Better process memory usage measurement
6. timerfd() syscall
7. SMACK, Simplified Mandatory Access Control
8. Latencytop
9. BRK and PIE executable randomization
10. Controller area network (CAN) protocol support
11. ACPI thermal regulation/WMI
12. EXT4 update
13. MN10300/AM33 architecture support
2. Subsystems
1. Various
2. Filesystems
3. Networking
4. Crypto
5. Security
6. Architecture-specific changes
3. Drivers
1. Graphics
2. SATA/IDE
3. Sound
4. SCSI
5. Network
6. V4L/DVB
7. I2C
8. HID
9. Input
10. USB
11. RDMA
12. Hwmon
13. MTD
14. ACPI
15. RTC/W1
16. LEDs
17. Various

1. Important features (AKA: the cool stuff)

1.1. Memory Resource Controller

Recommended LWN article (somewhat outdated, but still interesting): "Controlling memory use in containers"

The memory resource controller is a cgroups-based feature. Cgroups, aka "Control Groups", is a feature that was merged in 2.6.24, and its purpose is to be a generic framework where several "resource controllers" can plug in and manage different resources of the system such as process scheduling or memory allocation. It also offers a unified user interface, based on a virtual filesystem where administrators can assign arbitrary resource constraints to a group of chosen tasks. For example, in 2.6.24 they merged two resource controllers: Cpusets and Group Scheduling. The first allows to bind CPU and Memory nodes to the arbitrarily chosen group of tasks, aka cgroup, and the second allows to bind a CPU bandwidth policy to the cgroup.

The memory resource controller isolates the memory behavior of a group of tasks -cgroup- from the rest of the system. It can be used to:

* Isolate an application or a group of applications. Memory hungry applications can be isolated and limited to a smaller amount of memory.
* Create a cgroup with limited amount of memory, this can be used as a good alternative to booting with mem=XXXX.
* Virtualization solutions can control the amount of memory they want to assign to a virtual machine instance.
* A CD/DVD burner could control the amount of memory used by the rest of the system to ensure that burning does not fail due to lack of available memory.

The configuration interface, like all the cgroups, is done by mounting the cgroup filesystem with the "-o memory" option, creating a randomly-named directory (the cgroup), adding tasks to the cgroup by catting its PID to the 'task' file inside the cgroup directory, and writing values to the following files: 'memory.limit_in_bytes', 'memory.usage_in_bytes' (memory statistic for the cgroup), 'memory.stats' (more statistics: RSS, caches, inactive/active pages), 'memory.failcnt' (number of times that the cgroup exceeded the limit), and 'mem_control_type'. OOM conditions are also handled in a per-cgroup manner: when the tasks in the cgroup surpass the limits, OOM will be called to kill a task between all the tasks involved in that specific cgroup.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

1.2. Real Time Group scheduling

Group scheduling is a feature introduced in 2.6.24. It allows to assign different process scheduling priorities other than nice levels. For example, given two users on a system, you may want to to assign 50% of CPU time to each one, regardless of how many processes is running each one (traditionally, if one user is running f.e. 10 cpu-bound processes and the other user only 1, this last user would get starved its CPU time), this is the "group tasks by user id" configuration option of Group Scheduling does. You may also want to create arbitrary groups of tasks and give them CPU time privileges, this is what the "group tasks by Control Groups" option does, basing its configuration interface in cgroups (feature introduced in 2.6.24 and described in the "Memory resource controller" section).

Those are the two working modes of Control Groups. Aditionally there're several types of tasks. What 2.6.25 adds to Group Scheduling is the ability to also handle real time (aka SCHED_RT) processes. This makes much easier to handle RT tasks and give them scheduling guarantees.

Documentation: sched-rt-group.txt

Code: (commit 1, 2, 3, 4)

There's serious interest in running RT tasks on enterprise-class hardware, so a large number of enhancements to the RT scheduling class and load-balancer have been merged to provide optimum behaviour for RT tasks.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)

1.3. RCU Preemption support

Recommended LWN article: "The design of preemptible read-copy-update"

RCU is a very powerful locking scheme used in Linux to scale to very large number of CPUs on a single system. However, it wasn't well suited for low latency,RT-ish workloads, and some parts could cause high latency. In 2.6.25, RCU can be preempted, eliminating that source of latencies and making Linux a bit more RT-ish.

Code: (commit 1, 2)

1.4. FIFO ticket spinlocks in x86

Recommended LWN article: "Ticket spinlocks"

In certain workloads, spinlocks can be unfair, ie: a process spinning on a spinlock can be starved up to 1,000,000 times. Usually starvation in spinlocks is not a problem, and it was thougt that it was not too important because such spinlock would become a performance problem before any starvation is noticed, but testing has showed the contrary. And it's always possible to find an obscure corner case that will generate a lot of contention on some lock, and the processor that will grab the lock does it randomly.

With the new spinlocks, the processes grab the spinlock in FIFO order, ensuring fairness (and more importantly, guaranteeing to some point the

Spinlocks configured to run on machines with more than 255 CPUs will use a 32-bit value, and 16 bits when the number of CPUs is smaller (as a bonus, the maximum theorical limit of CPUs that spinlocks can support is raised up to 65536 processors)

Code: (commit 1, 2)

1.5. Better process memory usage measurement

Recommended LWN article: "How much memory are applications really using?"

Measuring how much memory processes are using is more difficult than it looks, specially when processes are sharing the memory used. Features like /proc/$PID/smaps (added in 2.6.14) help, but it has not been enough. 2.6.25 adds new statistics to make this task easier. A new /proc/$PID/pagemaps file is added for each process. In this file the kernel exports (in binary format) the physical page localization for each page used by the process. Comparing this file with the files of other processes allows to know what pages they are sharing. Another file, /proc/kpagemaps, exposes another kind of statistics about the pages of the system. The author of the patch, Matt Mackall, proposes two new statistic metrics: "proportional set size" (PSS) - divide each shared page by the number of processes sharing it; and "unique set size" (USS) (counting of pages not shared). The first statistic, PSS, has also been added to each file in /proc/$PID/smaps. In this HG repository you can find some sample command line and graphic tools that exploits all those statistics.

Code: (commit 1, 2, 3, 4)

1.6. timerfd() syscall

timerfd() is a feature that got merged in 2.6.22 but was disabled due to late complaints about the syscall interface. Its purpose is to extend the timer event notifications to something else than signals, because doing such things with signals is hard. poll()/epoll() only covers file descriptors, so the options were a BSDish kevent-like subsystem or delivering time notifications via a file descriptor, so that poll/epoll could handle them.

There were implementations for both approachs, but the cleaner and more "unixy" design of the file descriptor approach won. In 2.6.25, a revised API has been finally introduced. The API can be found in this LWN article

Code: (commit)

1.7. SMACK, Simplified Mandatory Access Control

Recommended LWN article: "Smack for simplified access control"

The most used MAC solution in Linux is SELinux, a very powerful security framework. SMACK is an alternative MAC framework, not so powerful as SELinux but simpler to use and configure. Linux is all about flexibility, and in the same way it has several filesystems, this alternative security framework doesn't pretends to reemplaze SELinux, it's just an alternative for those who find it more suited to its needs.

From the LWN article: Like SELinux, Smack implements Mandatory Access Control (MAC), but it purposely leaves out the role based access control and type enforcement that are major parts of SELinux. Smack is geared towards solving smaller security problems than SELinux, requiring much less configuration and very little application support.

Code: (commit)

1.8. Latencytop

Recommended LWN article: "Finding system latency with LatencyTOP"

Slow servers, Skipping audio, Jerky video - everyone knows the symptoms of latency. But to know what's really going on in the system, what's causing the latency, and how to fix it... those are difficult questions without good answers right now. LatencyTOP is a Linux tool for software developers (both kernel and userspace), aimed at identifying where system latency occurs, and what kind of operation/action is causing the latency to happen. By identifying this, developers can then change the code to avoid the worst latency hiccups.

There are many types and causes of latency, and LatencyTOP focus on type that causes audio skipping and desktop stutters. Specifically, LatencyTOP focuses on the cases where the applications want to run and execute useful code, but there's some resource that's not currently available (and the kernel then blocks the process). This is done both on a system level and on a per process level, so that you can see what's happening to the system, and which process is suffering and/or causing the delays.

You can find the latencytop userspace tool, including screenshots, at latencytop.org.

Code: (commit)

1.9. BRK and PIE executable randomization

Exec-shield is a Red Hat that was started in 2003 by Red Hat to implement several security protections and is mainly used in Red Hat and Fedora. Many features have already been merged lot of time ago, but not all of them. In 2.6.25 two of them are being merged: brk() randomization and PIE executable randomization. Those two features should make the address space randomization on i386 and x86_64 complete.

Code (commit 1, 2, 3)

1.10. Controller area network (CAN) protocol support

Recommended LWN article: "PF_CAN"

From the "Controller Area Network" Wikipedia article: Controller Area Network (CAN or CAN-bus) is a computer network protocol and bus standard designed to allow microcontrollers and devices to communicate with each other and without a host computer.. This implementation has been contributed by Volkswagen.

Code: (commit 1, 2, 3, 4, 5, 6)

1.11. ACPI thermal regulation/WMI

In 2.6.25 ACPI adds thermal regulation support (commit 1, 2, 3, 4) and a WMI (Windows Management Interface, a proprietary extension to ACPI) mapper (commit 1, 2, 3)

1.12. EXT4 update

Recommended article: "A better ext4"

EXT4 mainline snapshot gets an update with a bunch of features: Multi-block allocation, large blocksize up to PAGE_SIZE, journal checksumming, large file support, large filesystem support, inode versioning, and allow in-inode extended attributes on the root inode. These features should be the last ones that require on-disk format changes. Other features that don't affect the disk format, like delayed allocation, have still to be merged.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)

1.13. MN10300/AM33 architecture support

The MN10300/AM33 architecture is now supported under the "mn10300" subdirectory. 2.6.25 adds support MN10300/AM33 CPUs produced by MEI. It also adds board support for the ASB2303 with the ASB2308 daughter board, and the ASB2305. The only processor supported is the MN103E010, which is an AM33v2 core plus on-chip devices.

Code: (commit)

2. Subsystems

2.1. Various

* Block/VFS
o

IO context sharing. Syslets (or other threads/processes that want io context sharing) can set the CLONE_IO clone() flag to enforce sharing of io context (commit 1, 2, 3, 4, 5)
o

Enhanced partition statistics: core statistics (commit 1, 2, 3, 4
o

rewrite the ramdisk block device driver (commit), (commit)
o

blktrace: Add blktrace ioctls to SCSI generic devices (commit)
o

UBI: add auto-resize feature (commit)
o

SIGIO-driven I/O with inotify queues (commit)
o

get rid of NR_OPEN and introduce a sysctl_nr_open (commit)
o

md: allow devices to be shared between md arrays (commit), allow a maximum extent to be set for resyncing (commit), support 'external' metadata for md arrays (commit)
* Process scheduler
o

Make the BKL always preemptable (commit)
o

High-resolution preemption tick: it uses High Resolution timers (when available) to deliver an accurate preemption tick (commit)
o

SCHED_FIFO/SCHED_RR watchdog timer (commit)
o

softlockup: automatically detect hung TASK_UNINTERRUPTIBLE tasks (commit)
o

cpu-hotplug: refcount based cpu hotplug (commit)
* Memory Management
o

writeback: speed up writeback of big dirty files (commit)
o

change dmapool free block management (commit)
o

slub: Support for performance statistics (commit)
o

slob: reduce external fragmentation by using three free lists (commit)
o

hugetlb: allow sticky directory mount option (commit)
o

oom: add sysctl to enable task memory dump (commit)
o

Allow executables larger than 2GB (commit)
* Power Management
o

pm qos infrastructure and interface (commit)
o

Suspend: Testing facility (commit)
o

Hibernation: New testing facility (commit)
* Various
o

Linux Kernel Markers: support multiple probes (commit)
o

The scheduled 'time' option removal (commit)
o

Remove a.out interpreter support in ELF loader (commit)
o

futex: Add bitset conditional wait/wakeup functionality (commit)
o

virtio: PCI device (commit), balloon driver (commit)

2.2. Filesystems

* CIFS
o

Allow setting mode via CIFS ACL. (commit)
o

DFS support. (commit), (commit)
* OCFS2
o

Online resize. (commit), (commit)
o

Support commit= mount option. (commit)
*

XFS: Implement fallocate. (commit)

2.3. Networking

* IPV6
o

Support RFC3484 configurable address selection policy table. (commit)
o

RFC4214 support (commit)
* IPV4
o

ipconfig: Implement DHCP Class-identifier. (commit)
o

route cache: Introduce rt_genid for smooth cache invalidation (commit)
* Netlabel
o

Introduce a new kernel configuration API for Netlabel (commit)
o

Introduce stati network labels for unlabeled connections (commit)
o

Add auditing to the static labeling mechanism (commit)
* Network namespaces. There're was a initial attempt of network namespaces, but a huge amount of work to support it fully have been put into 2.6.25
*

TCP: Splice receive support. (commit), (commit)
* Netfilter
o

Add CONFIG_NETFILTER_ADVANCED option. (commit)
o

x_tables: add TCPOPTSTRIP target. (commit)
o

Merge ipt_tos into xt_dscp. (commit), merge ipt_TOS into xt_DSCP. (commit)
o

IPv6 capable xt_TOS v1 target. (commit), IPv6 capable xt_tos v1 match. (commit)
o

ip_tables: remove obsolete SAME target. (commit)
o

x_tables: add RATEEST target. (commit), add rateest match (commit)
o

ctnetlink: add support for secmark. (commit)
*

Introducing socket mark socket option. (commit)
*

Introducing new memory accounting interface. (commit), add UDP memory accounting. (commit)
*

Net Sched: Add flow classifier (commit), support classification based on VLAN tag (commit)
*

9p: add support for sticky bit (commit), block-based virtio client (commit)
*

IPSEC: Allow async algorithms (commit), add support for combined mode algorithms (commit)
*

The scheduled shaper removal. (commit)
* mac80211
o

Better rate control algorithm selection. (commit), add PID controller based rate control algorithm (commit), make PID rate control algorithm the default (commit)
o

Introduce key handling (commit), support adding/removing keys via cfg80211 (commit), support getting key sequence counters via cfg80211 (commit)
o

Add beacon settings (commit), add beacon configuration via cfg80211 (commit)
o

Station handling (commit), implement station attribute retrieval (commit), implement station stats retrieval (commit), implement cfg80211 station handling (commit)

2.4. Crypto

*

salsa20: Salsa20 stream cipher (commit)
*

gcm: New algorithm (commit), (commit)
*

ctr: Add CTR (Counter) block cipher mode (commit)
*

hifn_795x: HIFN 795x crypto accelerator driver (commit)
*

sha256-generic: Extend to support SHA-224. (commit)
*

tcrypt: Add aead support. (commit)
*

lzo: Add LZO compression algorithm support. (commit)
*

chainiv: Add chain IV generator. (commit)
*

eseqiv: Add Encrypted Sequence Number IV Generator. (commit)
*

seqiv: Add Sequence Number IV Generator. (commit), add AEAD support. (commit)
*

null: Add null blkcipher algorithm. (commit)
*

ccm: Added CCM mode. (commit)
*

salsa20_i586: Salsa20 stream cipher algorithm (i586 version). (commit)

2.5. Security

* SELinux
o

SELinux: Add network ingress and egress control permission checks (commit)
o

Support 64-bit capabilities (commit)
* AUDIT
o

Collect uid, loginuid, and comm in OBJ_PID records (commit)
o

Add uid, gid fields to ANOM_PROMISCUOUS message (commit)
o

Add session id to audit messages (commit)
o

Add End of Event record (commit)
*

Allow Kconfig to set default mmap_min_addr protection (commit)
*

LSM/SELinux: Interfaces to allow FS to control mount options (commit)
*

Add 64-bit capability support to the kernel (commit), introduce per-process capability bounding set (commit)

2.6. Architecture-specific changes

* x86
o

EFI x86-64 support (commit)
o

kprobe-booster for x86-64 (commit), (commit)
o

Provide a configurable (boot parameter or DMI based) port 0x80 I/O delay override (commit 1, 2, 3)
o

x86-64: Make sparsemem vmemmap the only memory model. (commit)
o

ptrace: Support for branch trace store(BTS) (commit), overflow signal API. (commit)
o

Add noclflush boot option (commit)
o

Add generic clearcpuid=... boot option (commit)
o

Add generic GPIO support to x86 (commit)
o

Add support for the RDC R-321x SoC (commit)
o

Enable DEBUG_PAGEALLOC on 64-bit (commit), (commit)
o

Early boot debugging via Firewire (ohci1394_dma=early). (commit)
o

Remove iBCS support. (commit)
* POWERPC
o

Fake NUMA emulation for PowerPC (commit)
o

celleb: Add support for native CBE. (commit)
o

Merge libfdt upstream source. (commit)
o

Use embedded libfdt in the bootwrapper. (commit)
o

Add SPRN for Embedded registers specified in PowerISA 2.04. (commit)
o

83xx: Add platform support for MPC837x MDS board. (commit)
o

pasemi: Implement MSI support. (commit)
o

Merge dtc upstream source. (commit)
o

4xx: PLB to PCI-X support (commit), PLB to PCI 2.x support (commit), PLB to PCI Express support (commit), PCI support for Ebony board (commit), add early udbg support for 40x processors (commit), EP405 boards support for arch/powerpc (commit), add PCI to Walnut platform. (commit), base support for 440GX Taishan eval board. (commit), base support for 440SPe "Katmai" eval board. (commit), 440GRx Rainier board support. (commit), (commit), PIKA Warp base platform (commit)
o

pasemi: Implement NMI support. (commit), distribute interrupts evenly across CPUs. (commit)
o

Add hugepagesz boot-time parameter. (commit)
o

mpc5200: Add generic support for simple MPC5200 based boards. (commit)
o

QE: Add ability to upload QE firmware. (commit), add support for Freescale QUICCEngine UART. (commit), add support for Freescale QUICCEngine UART. (commit)
o

8xx: Analogue & Micro Adder875 board support (commit)
o

82xx: Embedded Planet EP8248E support (commit)
o

Add initial iomega Storcenter board port. (commit)
o

PS3: Add logical performance monitor device support (commit), add logical performance monitor driver support (commit)
o

85xx: Port STX GP3 board over from arch/ppc (commit), port TQM85xx boards over from arch/ppc (commit), add support for Wind River SBC8560 in arch/powerpc (commit), add v1 device tree source for Wind River SBC8560 board (commit), add basic support for Wind River SBC8548 board (commit),
o

83xx: Add support for Wind River SBC834x boards (commit), add device tree source for Wind River SBC834x board. (commit), add MPC837x RDB platform support (commit)
o

Cell IOMMU fixed mapping support (commit)
o

Add oprofile support for e300 (commit)
o

Xilinx: hwicap driver (commit)
o

mpc512x: Add MPC512x PSC support to MPC52xx psc driver (commit)
o

spufs: Add marker-based tracing facility (commit)
o

PS3: gelic: add support for port link status (commit), add support for dual network interface (commit), add wireless support for PS3 (commit)
* SH
o

Add SH7203 CPU support. (commit)
o

Add SH7263 CPU support. (commit)
o

Add support for SH7721 CPU subtype. (commit)
o

Add support for SH7763 CPU subtype. (commit)
o

Add support for sh7366 processor (commit)
o

SH-2A FPU support. (commit)
o

Declared coherent memory support (commit)
o

Syscall audit support. (commit)
o

Trapped io support V2 (commit)
o

sh7712 clock support. (commit)
o

Add support for SDK7780 board. (commit)
o

Migor board support (commit)
o

Kill off dead HS771RVoIP board support. (commit)
* ARM
o

kprobes support. (commit), (commit), (commit), (commit), (commit), (commit), (commit)
o

AT91CAP9 core support. (commit)
o

Marvell Feroceon CPU core support. (commit)
o

Support for the Marvell Orion SoC family. (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
o

pcm027: add support for phyCORE-PXA270 CPU module. (commit), add network support for phyCORE-PXA270. (commit), add support for pcm990 baseboard for phyCORE-PXA270. (commit)
o

Base support for pxa-based Toshiba e-series PDAs. (commit)
o

Add basic support for HTC Magician PDA phones. (commit)
o

KS8695: PCI support. (commit)
o

Support for Qualcomm MSM7X00A based systems. (commit), (commit), (commit), (commit)
o

sa1100: add clock source support. (commit)
o

ARMv7: Add VFPv3 support. (commit), add Advanced SIMD (NEON) extension support. (commit)
o

AT91: Configurable HZ, default to 128. (commit)
o

AT91CAP9A-DK board support. (commit)
o

Adds drivers for IXP4xx QMgr and NPE features (commit)
o

pxa: add basic support for Littleton (PXA3xx Form Factor Platform). (commit), add preliminary suspend/resume code for pxa3xx (commit), add cpufreq support. (commit)
o

Realview: clocksource support for the Realview platforms (commit), clockevents support for the RealView platforms (commit), add broadcasting clockevents support for ARM11MPCore (commit), add clockevents suport for the local timers (commit), add core-tile detection (commit)
o

OMAP: Add DMA support for chaining and 3430 (commit)
* CRIS
o

Support Artpec-3, Etrax-FS (commit), (commit), (commit), (commit),
o

New version of I2C driver. (commit)
o

Add synchronous serial port driver for CRIS v10. (commit)
* AVR32
o

Oprofile support. (commit)
o

Add support for AT32AP7001 and AT32AP7002. (commit)
o

Add support for ATSTK1003 and ATSTK1004. (commit)
* Blackfin
o

Initial checkin of the memory protection support. (commit)
o

Added support for 8250-class UARTs in HV Sistemas H8606 board, modification in 8250.c driver for correct compilation with Blackfin. (commit)
o

Add support for BF523/BF524/BF526. (commit)
o

Added support for OpenCores Keyboard Controller to H8606 board. (commit)
o

Add Hitachi TX09D70VM1CDA TFT LCD driver resource to Blackfin board. (commit)
o

Add "memmap=nn[KMG]@ss[KMG]" and "memmap=nn[KMG]$ss[KMG]" options to blackfin, based on arch/i386/kernel/e820.c (commit)
* S390
o

latencytop support (commit)
o

Standby CPU activation/deactivation. (commit)
o

dasd: Add hyper PAV support to DASD device driver, part 1. (commit)
o

1K/2K page table pages (commit), add four level page tables for CONFIG_64BIT=y. (commit), dynamic page tables (commit), CONFIG_HIGHPTE vs. sub-page page tables. (commit)
* MIPS
o

MT: Scheduler support for SMT. (commit)
o

TXx9 watchdog support for rbhma3100, rbhma4200, and rbhma4500. (commit)
o

IP28 support. (commit)
o

Alchemy: Au1210/Au1250 CPU support. (commit)
*

SPARC64: Add kretprobe support. (commit)
*

uml: runtime host VMSPLIT detection (commit)

3. Drivers

3.1. Graphics

* i915:
o

Add suspend/resume support. (commit)
o

Add support for E7221 chipset. (commit)
o

Add chipset ID for Intel Integrated Graphics Device. (commit)
*

Add initial ATI r500 DRM support. (commit)
*

Suspend support for SiS AGP (commit)
*

Add initial rs690 support to drm. (commit)
*

Add support for Sis 662/671 (commit), (commit)
*

fbdev: add BF52x EZkit Display driver (commit)
*

Add S3c2412 support to S3c2410 fb driver (commit)

3.2. SATA/IDE

*

Palmchip BK3710 IDE driver (commit)
*

pata_ninja32: Cardbus ATA initial support. (commit)
*

pata_legacy: Merge winbond support. (commit)
*

libata: implement drain buffers (commit)
*

cmd64x: Remove /proc/ide/cmd64x. (commit)
*

cdrom: Add support for Sega Dreamcast GD-ROM. (commit)
*

Add support for the RB500 PATA Compactflash (commit)
*

ahci: Add Marvell 6121 SATA support (commit)
*

sata_mv: Enable NCQ (commit), support SoC controllers (commit)
*

pata_sl82c105: dual channel support (commit)
*

sata_svw: Add support for HT1100 SATA controller (commit)

3.3. Sound

*

Scheduled OSS driver removal (commit)
*

HDA: Add Asus VX1 support (commit), add support for RV610/RV630 HDMI audio. (commit), STAC92HD71 codec mixer. (commit), add support of HP Thin Client T5735. (commit), add support for RV6xx HDMI audio. (commit), initial support of the Mitac 8252D (based on ALC883). (commit), add ALC889/ALC267/ALC269 support. (commit), add support for VIA VT1708B HD audio codec. (commit), added more 92HD71 codecs. (commit), added STAC92HD73 support. (commit), add IEC958 digital out support for Lenovo Thinkpads T61/X61. (commit), device ID for Macbook sound card. (commit), 92HD71BXX Mono Mute Support. (commit), 92HD7XXX power management support. (commit), add the support of Dell OEM laptops with ALC268. (commit), new model for conexant 5045 codec to support benq r55e. (commit), add model for Acer Aspire 5315. (commit), add Conexant 5051 codec support. (commit), add model for Acer Aspire 5310. (commit), add model for HP DV9553EG laptop. (commit), ALSA HD Audio patch for Intel ICH10 DeviceID's. (commit), add Dell T3400 support. (commit), add support for Intel SCH. (commit), add missing model for HD-audio Cx5045 codec (commit), add support for Samsung Q1 Ultra Vista edition. (commit)
*

ice1724: Add support of Onkyo SE-90PCI and SE-200PCI. (commit)
*

soc: ln2440sbc ac97 support. (commit)
*

Remove sequencer instrument layer. (commit)
*

Xilinx ML403 AC97 Controller Reference device driver. (commit)
*

ASoC TLV320AIC3X codec driver. (commit)
*

usb-caiaq: add support for Kore controller 2. (commit)
*

sis7019: Support the SiS 7019 Audio Accelerator. (commit)
*

USB audio suspend support. (commit)
*

Add Asus Xonar driver. (commit)
*

Add CMI8788 driver. (commit)
*

ASoC TLV support (commit), S3c2412 IIS driver (commit)
*

soc: Preliminary ac97 drivers for Toshiba e800 PDAs. (commit)
*

Add ASoC drivers for the Freescale MPC8610 SoC. (commit)
*

ICE1724: Added support for Audiotrak Prodigy 7.1 Hifi & HD2, Hercules Fortissimo IV. (commit)

3.4. SCSI

*

Bidirectional command support. (commit)
*

lpfc: Added support for ASICs that report temperature. (commit)
*

megaraid_sas: add hibernation support. (commit)
*

AHS Support. (commit),(commit)
*

qla2xxx: Add Fibre Channel Event (FCE) tracing support. (commit)
*

aacraid: Add Voodoo Lite class of cards (commit), add optional MSI support (commit)
*

psi240i: Remove driver (commit)
*

seagate: Remove driver (commit)
*

mvsas: Add Marvell 6440 SAS/SATA driver (commit), convert from rough draft to working driver (commit)
*

qla4xxx: add async scan support (commit)
*

ses: add new Enclosure ULD (commit)
*

enclosure: add support for enclosure services (commit)
*

mca_53c9x: remove driver (commit)
*

remove m68k NCR53C9x based drivers (commit)
*

dec_esp: Remove driver (commit)
*

NCR53C9x: remove driver (commit)

3.5. Network

*

Add driver for enc28j60 ethernet chip (commit)
*

b43legacy: LED triggers support (commit), RF-kill support (commit)
*

e1000e: alternate MAC address support (commit)
*

Add support for the RDC R6040 Fast Ethernet controller (commit)
*

E1000: Secondary unicast address support (commit)
*

Add bnx2x driver for BCM57710 (commit)
*

cxgb3 - Add EEH support (commit)
*

pasemi_mac: Software-based LRO support (commit), add support for changing mac address (commit), add support for setting MTU (commit)
*

zd1211rw: port to mac80211 (commit)
*

b43: Changes to enable BCM4311 rev 02 with wireless core revision 13 (commit)
*

libertas: implement suspend and resume (commit), (commit), add ethtool support for wake-on-lan configuration (commit)
*

ixgb: enable sun hardware support for broadcom phy (commit)
*

iwlwifi: proper monitor support (commit)
*

sky2: support for Yukon Supreme (commit)
*

BNX2: Support multiple MSIX IRQs. (commit)
*

ucc_geth: add support for netpoll (commit)
*

IPoIB: Add send gather support (commit)
*

IB/core: Add IP checksum offload support (commit)
*

DM9000: Add initial ethtool support (commit)
*

ehea: add kdump support (commit)
*

ipwireless: driver for PC Card 3G/UMTS modem (commit)
*

bas_gigaset: suspend support (commit)
*

usb_gigaset: suspend support (commit)

3.6. V4L/DVB

*

Add tuner-xc2028 driver. (commit)
*

v4l2: Add support for bus-based I2C drivers. (commit)
*

Add support for MT9V111 on sn9c102. (commit)
*

Add support for the DViCO FusionHDTV Dual Digital 4. (commit)
*

Add support for the DViCO FusionHDTV NANO2 w/ZL10353 and firmware. (commit)
*

Add support for MT352-based DViCO FusionHDTV DVB-T NANO devices. (commit)
*

ivtv: Add AVerMedia EZMaker PCI Deluxe support. (commit)
*

cs5345: New i2c driver. (commit)
*

Add support for the Xceive xc5000 silicon tuner. (commit)
*

Add support for the Hauppauge HVR1500Q. (commit)
*

cx23885: Add support for Hauppauge WinTV HVR-1500. (commit), enable EZ-QAM mode for Hauppauge WinTV HVR-1800. (commit)
*

tda18271: Add support for NXP TDA18271HD/C2. (commit)
*

Add Beholder TV 401/405/407/409/505/507/609/M6 support. (commit)
*

cx25840: Add basic CX23885 AVCore support. (commit), add basic video support for the HVR1800. (commit)
*

V4L: Add support for Syntek DC1125 webcams. (commit)
*

New card supported(partially): Pinnacle 800i. (commit)
*

zr364xx: add support for Creative DiVi CAM 516 (commit)
*

Support for Twinhan Hybrid DTV-DVB 3056 PCI (commit)
*

saa7134: add support for the Medion / Creatix CTX948 card (commit)
*

Adds support for Genius TVGo A11MCE (commit)

3.7. I2C

*

i2c-i801: Implement I2C block read support. (commit)
*

i2c-viapro: Add support for the VT8237S. (commit)
*

tsl2550: Add power management added. (commit)
*

Add support for the PCF8575 chip. (commit)
*

The scheduled I2C RTC driver removal. (commit)
*

Some overdue driver removal. (commit)

3.8. HID

*

Map MS Presenter 8000 bottom-side buttons. (commit)
*

Add support for Apple aluminum USB keyboards. (commit)
*

Add full support for Genius KB-29E. (commit)
*

Add support for Logitech Elite keyboards. (commit)

3.9. Input

*

Add driver for Fujitsu application buttons (commit)
*

Add Tosa keyboard driver (commit)

3.10. USB

*

Add support for 4348:5523 Winchiphead USB->RS 232 adapter (commit)
*

Sierra - Add support for Aircard 881U (commit)
*

Adding YC Cable USB Serial device to pl2303 (commit)
*

sierra driver - add devices (commit), add support for Onda H600/Zte MF330 datacard to USB Driver for Sierra Wireless (commit)
*

ftdi-sio: Patch to add vendor/device id for ATK_16IC CCD (commit)
*

pl2303: add support for RATOC REX-USB60F (commit)
*

Variant of the Dell Wireless 5520 driver (commit)
*

add iuu_phoenix driver (commit)
*

m66592-udc: Add support for SH7722 USBF (commit)
*

Add Printer Gadget Driver (commit)
*

Export suspend statistics (commit)
*

Add support for SuperH OHCI (commit)
*

usb: ohci-sm501 driver (commit)
*

Add support for Motorola ROKR Z6 cellphone in mass storage mode (commit)

3.11. RDMA

*

RDMA/nes: Add a driver for Neteffect RNICs (commit)
*

rdma: (commit), (commit), (commit), (commit), (commit), (commit),(commit)

3.12. Hwmon

*

Add support for Texas Instruments/Burr-Brown ADS7828 (commit)
*

Add support for Winbond W83L786NG/NR (commit)
*

lm87: Add support for the Analog Devices ADM1024 (commit)
*

w83781d: Drop W83627HF support (commit)
*

coretemp: Add Penryn CPU to coretemp (commit)
*

New driver for Analog Devices ADT7473 sensor chip (commit)

3.13. MTD

*

Remove Photron PNC-2000 map driver (commit)
* NAND
o

Add Blackfin BF52x support in bf5xx_nand driver (commit)
o

pasemi_nand driver (commit)
o

Marvell Orion device bus NAND controller (commit)
o

Freescale enhanced Local Bus Controller FCM NAND support. (commit)
* NOR
o

Add support for the SST 39VF1601 flash chip (commit)

3.14. ACPI

*

thinkpad-acpi: add X61t HKEY events (commit)
*

Create /sys/firmware/acpi/interrupts (commit)
*

Enable MWAIT for C1 idle (commit)
*

cpuidle: Add a poll_idle method (commit), create processor.latency_factor tunable (commit), default processor.latency_factor=2 (commit)
*

asus_acpi: add support for F3sa (commit)
*

sony-laptop: add Type4 model (commit)
*

intel_menlo: introduce new platform specific driver (commit)

3.15. RTC/W1

*

ds1302 rtc support (commit)
*

SH-5 RTC support (commit)
*

SH-2A RTC support (commit)
*

Platform real time clock driver for Dallas 1511 chip (commit)
*

Add support for Epson RTC-9701JE V2 (commit)
*

at91sam9 RTC support (RTT and/or RTC) (commit)
*

Add support for Epson RTC-9701JE V4 (commit)
*

w1-gpio: add GPIO w1 bus master driver (commit)
*

Add support for the S-35390A RTC chip (commit)

3.16. LEDs

*

hw acceleration for Clevo mail LED driver (commit)
*

Remove the now unneeded ixp4xx driver (commit)
*

Add HP Jornada 6xx driver (commit)
*

Add clevo notebook LED driver (commit)
*

PWM LED driver (commit)

3.17. Various

* gpiolib
o

add drivers/gpio directory (commit), (commit),
o

pcf857x i2c gpio expander support (commit)
o

gpiolib support for the PXA architecture (commit)
o

pca9539 i2c gpio expander support (commit)
o

avr32 at32ap platform support (commit)
o

mcp23s08 spi gpio expander support (commit)
* drivers-edac
o

add Cell MC driver (commit)
o

add marvell mv64x60 driver (commit)
o

add freescale mpc85xx driver (commit)
* Watchdog
o

Add support for SB1 hardware watchdog (commit)
o

HP Proliant Watchdog driver (commit)
* memstick
o

Initial commit for Sony Memorystick support (commit)
o

Add support for JMicron jmb38x Memorystick host controller (commit)
*

nozomi driver (commit)
*

firewire: fw-ohci: Apple Uninorth 1st generation support (commit)
*

pda_power: add suspend/resume support (commit)
*

SC26XX: New serial driver for SC2681 uarts (commit)
*

spi: SuperH SPI using SCI (commit)
*

atmel_lcdfb: backlight control (commit)
*

ASIC3 driver (commit)
*

mxser driver: remove it, replace it with mxser_new (commit)
*

Basic PWM driver for AVR32 and AT91 (commit)
*

The ps2esdi driver was marked as BROKEN more than two years ago due to being (commit)
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: linux kernel 2.6.26 2008-07-13 22:44 UTC
Author: fei    Posted: 2008-07-14 07:57    Length: 57,078 byte(s)
[Original] [Print] [Top]
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2
Summary: 2.6.26 adds support for read-only bind mounts, x86 PAT (Page Attribute Tables), PCI Express ASPM (Active State Power Management), ports of KVM to IA64, S390 and PPC, other KVM improvements including basic paravirtualization support, preliminar support of the future 802.11s wireless mesh standard, much improved webcam support thanks to a driver for UVC devices, a built-in memory tester, a kernel debugger, BDI statistics and parameters exposure in /sys/class/bdi, a new /proc/PID/mountinfo file for more accurate information about mounts, per-process securebits, device white-list for containers users, support for the OLPC, some new drivers and many small improvements

目录

1. Important features (AKA: the cool stuff)
1. Read-only bind mounts
2. KVM ported to IA64, PPC and S390
3. Improved webcam support
4. Wireless mesh networking (802.11s) draft support
5. x86 PAT support
6. Per-process securebits
7. KGDB
8. Device whitelist on cgroups
9. Memtest
10. Export BDI attributes in sysfs
11. /proc/pid/mountinfo
12. Generic semaphores
2. Subsystems
1. Various
2. Filesystems
3. Networking
4. Crypto
5. Security
6. KVM
3. Architecture-specific changes
4. Drivers
1. IDE/SATA
2. Networking
3. Graphics
4. Sound
5. Input
6. V4L/ DVB
7. SCSI
8. WATCHDOG
9. HWMON
10. USB
11. Infiniband
12. ACPI and Power Management
13. MTD
14. I2C
15. Various

1. Important features (AKA: the cool stuff)

1.1. Read-only bind mounts

Recommended LWN article: "Read-only bind mounts"

Since 2.4.0 Linux has supported bind mounts. Bind mounts are a sort of directory symlinks that allow to share the contents of a directory in two different paths. For example, "mount --bind /foo /bar" will "bind" the contents of /foo not only to /foo, but also /bar. IOW, /foo and /bar would have the same content - and any modification in one directory is visible in the other. This has been useful for things like chroots or ftp/webservers, but until now, if /foo was writable, there was no way to stop /bar from being also writable.

In Linux 2.6.26, you can make those bind mounts read-only. If we made the bind mount in the previous example read-only, the contents of /foo would show up in /bar - but an application trying to modify a file in /bar will not be able to do it (/foo could continue being writable, of course). This has a number of uses. It allows chroots to have parts of filesystems writable. It's useful for containers because users may have root inside a container, but should not be allowed to write to some filesystems. It allows security enhancement by making sure that parts of your filesystem read-only (such as when you don't trust your FTP server), when you don't want to have entire new filesystems mounted, or when you want atime selectively updated.

(The current implementation does not allow to make a bind mount directly read-only: you need to make the bind mount first - mount --bind /foo /bar - and then remount the bind as ro - mount -o remount,ro /bar)

Code: commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22

1.2. KVM ported to IA64, PPC and S390

KVM, the virtualization solution included in Linux 2.6.20, has been rearchitected to give support to architectures other than x86: IA64 (Itanium), S390 and PPC

S390: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)

IA64: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)

PowerPC 440: (commit)

1.3. Improved webcam support

2.6.26 inclues a driver that supports video input devices compliant with the USB Video Class specification. This means lots of currently manufactured webcams, and probably most of the future ones (commit)

1.4. Wireless mesh networking (802.11s) draft support

A year ago, in Linux 2.6.22, Linux included a new wireless stack. In 2.6.26 that stack is adding support for the draft of wireless mesh networking (802.11s), thanks to the open80211s project

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)

1.5. x86 PAT support

PAT (Page Attribute Table) is a feature found in x86 processors that allows for setting the memory attribute at the page level granularity. PAT is complementary to the MTRR settings which allows for setting of memory types over physical address ranges. However, PAT is more flexible than MTRR due to its capability to set attributes at page level and also due to the fact that there are no hardware limitations on number of such attribute settings allowed. It's not a very new feature: the Linux support for this has been in the works for a long time: the current patches are evolved from ones started in 2006, and there're traces of preliminary patches in 2001. Probably because it's not a critical feature and MTRRs did the job.

Documentation (commit) Code: (commit)

1.6. Per-process securebits

Recommended LWN article: "Per-process securebits"

Filesystem capability support makes it possible to do away with (set)uid-0 based privilege and use capabilities instead. That is, with filesystem support for capabilities but without this present feature, it is (conceptually) possible to manage a system with capabilities alone and never need to obtain privilege via (set)uid-0. Of course, conceptually isn't quite the same as currently possible since few user applications, certainly not enough to run a viable system, are currently prepared to leverage capabilities to exercise privilege. Further, many applications exist that may never get upgraded in this way, and the kernel will continue to want to support their setuid-0 base privilege needs. Where pure-capability applications evolve and replace setuid-0 binaries, it is desirable that there be a mechanisms by which they can contain their privilege. In addition to leveraging the per-process bounding and inheritable sets, this should include suppressing the privilege of the uid-0 superuser from the process' tree of children. The feature added in 2.6.26 can be leveraged to suppress the privilege associated with (set)uid-0. This suppression requires CAP_SETPCAP to initiate, and only immediately affects the 'current' process (it is inherited through fork()/exec()). This reimplementation differs significantly from the historical support for securebits which was system-wide, unwieldy and which has ultimately withered to a dead relic in the source of the modern kernel.

Code: (commit)

1.7. KGDB

For many years Linux has not included a kernel debugger. Linus Torvalds vetoed them for years, for reasons that he explained quite well in a know email: "When things crash and you fsck and you didn't even get a clue about what went wrong, you get frustrated. Tough. There are two kinds of reactions to that: you start being careful, or you start whining about a kernel debugger [...] I happen to believe that not having a kernel debugger forces people to think about their problem on a different level than with a debugger. I think that without a debugger, you don't get into that mindset where you know how it behaves, and then you fix it from there. Without a debugger, you tend to think about problems another way. You want to understand things on a different _level_."

Despite of those objections, many people wanted a debugger and KGDB is finally going in. It's a remote debugger, it needs two machines. x86 and sparc machines are supported

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8)

1.8. Device whitelist on cgroups

Recommended LWN article: "Device whitelist on cgroups"

This feature implements a functionality wanted by some virtualization users: The ability to control the access to devices in a per-container basis. A cgroup is used to track and enforce open and mknod restrictions on device files. More details can be found in the commit link.

Code: (commit)

1.9. Memtest

Memtest is a commonly used tool for checking your memory. In 2.6.26 Linux is including his own in-kernel memory tester. The goal is not to replace memtest, in fact this tester is much simpler and less capable than memtest, but it's handy to have a built-in memory tester on every kernel. It's enabled easily with the "memtest" boot parameter.

Code: (commit: 1, 2)

1.10. Export BDI attributes in sysfs

Linux 2.6.24 merged per-device dirty thresholds: The limits that the kernel put to the amount of memory that a process can "dirty" changed from being global to be per-device. 2.6.26 exposes a interface in /sys/class/bdi that allow to set several parameters. There's another set of read-only parameters that are exposet in debugfs (debug/bdi/<bdi>/stats)

Code: (commit 1, 2, 3, 4, 5, 6)

1.11. /proc/pid/mountinfo

The work being done these days in the VFS like per-process namespaces and such is obsoleting some things, like /proc/mounts (which is always a link to /proc/self/mounts). In its current form lacks important information and suffers some problems (see the code link). 2.6.26 introduces /proc/PID/mountinfo which addresses these deficiencies. Information about the information that can be found on these new files is explained in the commit links.

Code: (commit 1, 2, 3, 4, 5, 6, 7)

1.12. Generic semaphores

Since the introduction of mutexes, semaphores are no longer performance-critical, so the architecture-specific (and often asm-handcoded) implementation -that was needed when semaphores were really important for performance- has been reemplaced by a generic one written in C for maintainability, debuggability and extensibility. It removes 7365 LoC

Code: (commit)

2. Subsystems

2.1. Various

* CPU scheduler
o

SMP-nice for group scheduling (commit)
o

sched, cpuset: customize sched domains, core (commit)
o

sched: better rt-group documentation (commit)
* Core
o

ipc: implement sys_unshare(CLONE_SYSVSEM) (commit), refuse clone(CLONE_SYSVSEM|CLONE_NEWIPC) (commit), force unshare(CLONE_SYSVSEM) when CLONE_NEWIPC (commit)
o

Removal of FUTEX_FD (commit)
o

Infrastructure to debug (dynamic) objects (commit), (commit)
o

make /dev/kmem a config option (commit)
o

sysrq: add show-backtrace-on-all-cpus function (commit)
o

sysfs: Allow removal of symlinks in the sysfs root (commit)
o

quota: quota core changes for quotaon on remount (commit)
o

ptrace: permit ptracing of /sbin/init (commit)
o

consoles: polling support, kgdboc (commit)
o

UIO: Implement a UIO interface for the SMX Cryptengine (commit)
* Memory management
o

fuse: support writable mmap (commit), implement perform_write. With fusexmp (a passthrough filesystem), large (1MB) writes into a backing tmpfs filesystem are sped up by almost 4 times (256MB/s vs 71MB/s). But it's disabled by default. (commit), (commit)
o

mempolicy: use MPOL_PREFERRED for system-wide default policy (commit), use MPOL_F_LOCAL to Indicate Preferred Local Policy (commit), support mpol=local tmpfs mount option (commit)
o

vmalloc: show vmalloced areas via /proc/vmallocinfo (commit), (commit)
o

slub: Make the order configurable for each slab cache (commit)
o

smaps: account swap entries (commit)
o

xip: support non-struct page backed memory (commit)
o

Cpuset hardwall flag: add a mem_hardwall flag to cpusets (commit)
* PCI
o

Add PCI Express ASPM support (commit)
o

iommu: iotlb flushing (commit)
* Block
o

cfq-iosched: make io priorities inherit CPU scheduling class as well as nice (commit)
o

brd: modify ramdisk device to be able to manage partitions (commit)
o

loop: manage partitions in disk image (commit)
o

block: add large command support (commit)
o

NBD: allow nbd to be used locally (commit), add partition support (commit)
o

udf: Add read-only support for 2.50 UDF media (commit)
* MD
o

Support blocking writes to an array on device failure (commit)
o

Allow parallel resync of md-devices. (commit)
o

Introduce get_priority_stripe() to improve raid456 write performance (commit)

2.2. Filesystems

* EXT4
o

Barriers on by default (WARNING: It hurts performance to provide reliability that many people doesn't need. IOW: if you plan to benchmark ext4, try aswell with barriers turned off) (commit)
o

Enable extent format for symlinks. (commit)
o

fdatasync should skip metadata writeout when overwriting (commit)
* EXT3
o

fdatasync should skip metadata writeout when overwriting (commit)
* GFS2
o

Add extent allocation to block allocator (commit)
o

Allow bmap to allocate extents (commit)
* OCFS2
o

Add the USERSPACE_STACK incompat bit. (commit)
o

Add the user stack module. (commit)
o

Allow selection of cluster plug-ins. (commit)
o

Add support for cross extent block (commit)
o

Enable cross extent block merge. (commit)
o

net: Add debug interface to o2net (commit)
* eCryptfs
o

make key module subsystem respect namespaces (commit)
o

Introduce device handle for userspace daemon communications (commit)
o

Integrate eCryptfs device handle into the module. (commit)
* CIFS
o

Enable parsing for transport encryption mount parm (commit)
o

Enable DFS support for Unix query path info (commit)
o

Enable DFS support for Windows query path info (commit)
* NFS
o

IPv6 support for NFS server export caches (commit)
* XFS
o

Account for inode cluster alignment in all allocations (commit)
o

Remove CONFIG_XFS_SECURITY. (commit)

2.3. Networking

* wireless
o

mac80211: Support more HT (802.11n) features (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)
o

mac80211: allow WDS mode (commit), allows driver to request a Phase 1 RX key (commit), use monitor configuration flags (commit), add cooked monitor mode support (commit), allow sending multicast frames through virtual ports (commit), enable IBSS merging (commit)
o

cfg80211 API for channels/bitrates, mac80211 and driver conversion (commit),
o

nl80211: export hardware bitrate/channel capabilities (commit), nl80211: Add monitor interface configuration flags (commit),
* NETFILTER
o

nf_conntrack: add DCCP protocol support (commit)
o

nf_nat: add UDP-Lite support (commit), add DCCP protocol support (commit), add SCTP protocol support (commit)
* IPV6
o

Add IPv6 support to TCP SYN cookies (commit)
o

Support Source Address Selection API (RFC5014). (commit)
o

SIT: Add PRL management for ISATAP. (commit)
o

MROUTE: Support multicast forwarding. (commit)
o

MROUTE: Support PIM-SM (SSM). (commit)
* TCP
o

TCP cubic v2.2 (commit)
* UDP
o

Allow users to configure UDP-Lite. (commit)
o

Revert udplite and code split. (commit)
*

Netlink: Use generic LSM hook (commit)
*

Add compat support for getsockopt (MCAST_MSFILTER) (commit)
*

Syncookies: Add support for TCP options via timestamps. (commit)

2.4. Crypto

*

sha512: Hardware acceleration for s390 (commit)
*

sha384: Hardware acceleration for s390 (commit)
*

cts: Add CTS mode required for Kerberos AES support (commit)
*

Make the crypto subsystem fully modular (commit)
*

keys: add keyctl function to get a security label (commit)
*

keys: make the keyring quotas controllable through /proc/sys (commit)

2.5. Security

*

Introduce security= boot parameter (commit)
* Audit:
o

Introduce generic Audit LSM hooks (commit), (commit)
o

New predicate - AUDIT_FILETYPE (commit)
o

Audit: use new LSM hooks instead of SELinux exports (commit)
o

Integrate Smack with Audit (commit)
* SELinux
o

Create new open permission (commit)
o

Introduce permissive types (commit)
o

Remove redundant exports (commit)
o

Use new audit hooks, remove redundant exports (commit)

2.6. KVM

*

Add basic paravirt support (commit), (commit)
*

Add trace markers. Trace markers allow userspace to trace execution of a virtual machine in order to monitor its performance (commit), (commit)
*

paravirtualized clocksource: host part (commit), paravirtualized clocksource: guest part (commit)
*

VMX: Enable MSR Bitmap feature (commit), enable Virtual Processor Identification (VPID) (commit), EPT Feature Detection (commit), enable EPT feature for KVM (commit)
*

SVM: add detection of Nested Paging feature (commit), enable LBR virtualization (commit), add support for Nested Paging (commit)
*

Add TDP support to the KVM MMU (commit)
*

Increase vcpu count to 16 (commit)
*

Increase the number of user memory slots per vm (commit)
*

MMU: large page support (commit), add EPT support (commit)
*

In kernel PIT model (commit)
*

x86: hardware task switching support (commit)

3. Architecture-specific changes

* x86
o

Lazy allocation of FPU struct: Only allocate the FPU area when the application actually uses FPU, i.e., in the first lazy FPU trap. This saves memory for non-fpu using apps. For example: on a test system after boot, there are around 300 processes, with only 17 using FPU.(commit), (commit)
o

Add One Laptop Per Child architecture support (commit)
o

Support for new UV apic (commit), (commit), (commit), (commit), (commit)
o

Allow gcc to optimize the kernel image's size by uninlining functions that have been marked 'inline' (commit), (commit)
o

Use ELF format in compressed images (commit)
o

Increase max physical memory size of 64-bit from 40 to 44 bit, in preparation for future chips that support larger physical memory sizes (commit)
o

Do kernel direct mapping at boot using GB pages (commit)
o

Add gbpages switches (commit)
o

Validation of the MMCONFIG table against the ACPI reserved motherboard resourcesvalidate against acpi motherboard resources (commit)
o

Add pci=check_enable_amd_mmconf and dmi check (commit)
o

x86_64: check and enable MMCONFIG for AMD Family 10h (commit), (commit)
o

Enable ACPI extended century handling for 32bit (commit)
o

Add support for nodes spanning other nodes (ACPI SRAT) (commit)
o

Increase the kernel text limit to 512 MB (commit)
o

Add code to dump the kernel page tables for visual inspection by kernel developers (commit)
o

apic: extended interrupt LVT support for AMD (commit)
o

rdc321x: remove watchdog file (commit)
o

Enhance DEBUG_RODATA support for hotplug and kprobes (commit) and alternatives (commit)
o

Centaur Isaiah processor to use sysenter in 64-bit compatibility mode rather than syscall (commit)
o

Move suspend wakeup code to C (commit)
o

x86: add prctl commands PR_GET_TSC and PR_SET_TSC (commit), (commit)
o

Remove NexGen support (commit)
o

x86: introduce /dev/mem restrictions with a config option (commit)
* PPC
o

Add IRQSTACKS support on ppc32 (commit)
o

Stacktrace support for lockdep (commit)
o

irqtrace support for 64-bit powerpc (commit)
o

Add fast little-endian switch system call (commit)
o

Hypervisor-assisted Dump: The goal of hypervisor-assisted dump is to enable the dump of a crashed system, and to do so from a fully-reset system, and to minimize the total elapsed time until the system is back in production use. As compared to kdump or other strategies, hypervisor-assisted dump offers several strong, practical advantages, see more details in the links (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
o

4xx: Add 460EX PCIe support to 4xx pci driver (commit), add AMCC Canyonlands 460EX eval board support to platforms/44x (commit), add platform support for the AMCC Yosemite board (commit), add PPC4xx L2-cache support (440GX) (commit)
o

PS3: Sys-manager Wake-on-LAN support (commit), Gelic network driver Wake-on-LAN support (commit)
o

85xx: Emerson KSI8560 base support (commit), add support for relocatable kernel (and booting at non-zero) (commit)
o

86xx: Add support for Wind River SBC8641D board (commit), mpc8610_hpcd: add support for PCI Express x8 slot (commit)
o

bootwrapper: Add a firmware-independent simpleboot target. (commit)
o

celleb: Add support for PCI Express (commit)
o

Xilinx: boot support for Xilinx uart 16550. (commit), of_serial support for Xilinx uart 16550. (commit)
o

Add DIU platform code for MPC8610HPCD (commit)
o

mpc5200: add Phytec pcm030 board support (commit)
o

windfarm: Add PowerMac 12,1 support (commit)
o

Hotplug memory remove notifications for powerpc (commit)
o

Update lmb data structures for hotplug memory add/remove (commit)
o

Remove mpc8272 ads (commit) and mpc885ads and mpc86x ads boards (commit) from arch/ppc, since there's a port in arch/powerpc
o

Make PowerPC LMB code generic so sparc64 can use it too (commit)
* ARM
o

Add initial sparsemem support (commit)
o AT91:
+

SAM9/CAP9 memory controller header (commit), SAM9/CAP9 system shutdown (commit), SAM9/CAP9 basic power-management (commit), SAM9/CAP9 reset reason (commit), add KB9260 (CAM60) board support (commit), add Olimex SAM9-L9260 board support (commit), add emQbit ECB_AT91 board support (commit), add SAM9 ClockSource / ClockEvents (commit)
o

Pass ECC controller to NAND driver (commit)
o

Adds support for YL9200 board (commit)
o

sa1100: add clock event support (commit)
o

ARMv7: Add support for the ThumbEE state saving/restoring (commit)
o

Add support for the CLK_POUT pin on PXA3xx CPUs (commit)
o

pxa: add keypad support for zylonite (commit) and for the littleton (commit)
o

Adds flash, udc, mci support for gumstix F boards (commit)
o

magician: enable external power supply (pda_power) driver (commit), enable flash VPP GPIO and build in MTD, physmap-flash and JFFS2 (commit), enable MMC support (commit), add LCD detection, LCD power switching, update pxafb settings (commit)
o

Add GPIO lib support to the EP93xx (commit)
o

Orion: Support the Buffalo Linkstation Pro/Live Platform (commit)
o

OMAP2: Add common clock framework for 24xx and 34xx (commit), add 34xx clock code (commit), new DPLL clock framework (commit), add 34xx clocks (commit)
o

Added cpufreq support for pxa27x CPU (commit)
o

Linux Thumb-2 support for user-space applications (commit)
o

Realview platform support (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
o

ns9xxx: prepare for adding support for Digi ns921x processors (commit)
o

atmel_tc library (commit), clocksource/clockevent code (commit)
* IA64
o

VIRT_CPU_ACCOUNTING (accurate cpu time accounting) (commit)
o

regset: 64-bit support (commit)
o

regset: 32-bit support (commit)
o

Multiple outstanding ptc.g instruction support (commit)
o

Kernel parameter for max number of concurrent global TLB purges (commit)
o

kprobes: kprobe-booster for ia64 (commit)
o

machvec support for SGI UV platform (commit), (commit)
o

SGI Altix mmtimer: allow larger number of timers per node (commit)
* S390
o

Convert to SPARSEMEM & SPARSEMEM_VMEMMAP (commit)
o

System z large page support. (commit)
o

Guest page hinting_ Notification of unused pages to the hypervisor (commit)
o

Convert s390 to GENERIC_CLOCKEVENTS. (commit)
o

Vertical cpu management. (commit)
o

cpu topology support for s390. (commit)
o

zcrypt: add support for large random numbers (commit)
o

qdio (new feature): enhancing info-retrieval from QDIO-adapters (commit)
* SH
o

Add support for SH7723 CPU subtype. (commit)
o

Add support for Solution Engine SH7721 board (commit)
o

Initial support for the MX-G CPU. (commit)
o

MigoR NAND (commit) and NOR flash support (commit)
o

Add I2C support to MigoR (commit) and sh7722 (commit)
o

Add rs5c732b RTC support to MigoR (commit)
o

Remove the broken SH_MPC1211 support (commit)
* MIPS
o

Basic SPRAM support (commit)
o

Add CoreFPGA5 support; distinguish between SOCit/ROCit (commit)
o

Add support for MIPS CMP platform. (commit)
o

Add DECstation I/O ASIC clocksource (commit)
o

DS1287: Add clockevent driver (commit)
* Blackfin
o

Generic time and clock sources (commit)
o

Support for CPU_FREQ and NOHZ (commit)
o

EMAC Driver: Initial version of ethtool support (commit)
o

Blackfin char driver for Blackfin on-chip OTP memory (v3) (commit)
o

Blackfin serial driver: this driver enable SPORTs on Blackfin emulate UART (commit)
o

Add Blackfin on-chip SIR IrDA driver support (commit)
o

Add CPU and platform voltage scaling support (commit)
* XEN
o

Add support for callbackops hypercall (commit)
o

Support sysenter/sysexit if hypervisor does (commit)
o

Import arch generic part of xencomm (commit)
o

Add balloon driver (commit)
o

pvfb: Para-virtual framebuffer, keyboard and pointer driver (commit)
o

Module autoprobing support for frontend drivers (commit)
* SPARC
o

SPARC64: Add NUMA support (commit)
o

Remove SunOS and Solaris binary support. (commit)
* m68knommu
o

ColdFire add support for kernel preemption (commit)
o

Add WilFire and WildfireMod board support (commit)
* AVR32
o

Generic clockevents support (commit)

4. Drivers

4.1. IDE/SATA

* IDE
o

Add warm-plug support for IDE devices (commit)
o

Mark "idebus=" kernel parameter as obsoleted (take 2) (commit)
o

Remove ide=reverse IDE core (commit)
o

Add "vlb|pci_clock=" parameter (commit)
o

Add "noacpi" / "acpigtf" / "acpionboot" parameters (commit)
o

Add "cdrom=" and "chs=" parameters (commit)
o

Add "nodma|noflush|noprobe|nowerr=" parameters (commit)
o

Add Intel SCH PATA driver (commit)
o

Add ide-4drives host driver (take 3) (commit)
o

gayle: add "doubler" parameter (commit)
o

Remove the broken ETRAX_IDE driver (commit)
* SATA
o

sata_inic162x: add cardbus support (commit)
o

libata: prefer hardreset (commit)
o

ata: SWNCQ should be enabled by default (commit)
o

Make SFF support optional (commit)
o

libata: make PMP support optional (commit)
o

sata_mv: disable hotplug for now (commit), enable NCQ on SOC (commit), add basic port multiplier support (commit)
o

sata_fsl: Fix broken driver, add port multiplier (PMP) support (commit)

4.2. Networking

*

ssb: add a new Gigabit Ethernet driver to the ssb core (commit)
*

Add new qeth device driver (commit), (commit)
*

Add new ctcm driver that reemplaces the old ctc one (commit), (commit)
*

New driver "sfc" for Solarstorm SFC4000 controller. (commit)
*

Driver for IXP4xx built-in Ethernet ports (commit)
*

Add support the Korina (IDT RC32434) Ethernet MAC (commit)
*

iwlwifi: Support the HT (802.11n) improvements (commit), (commit), (commit), (commit), add default WEP key host command (commit), add 1X HW WEP support (commit), add default WEP HW encryption (commit), use HW acceleration decryption by default (commit), hook iwlwifi with Linux rfkill (commit), add TX/RX statistcs to driver (commit), add debugfs to iwl core (commit), enables HW TKIP encryption (commit), add led support (commit), enables RX TKIP decryption in HW (commit), remove IWL{4965,3945}_QOS (commit)
*

ath5k: Add RF2413 srev values (commit), add RF2413 initial settings (commit), identify RF2413 and deal with PHY_SPENDING (commit), more RF2413 stuff (commit), port to new bitrate/channel API (commit), use software encryption for now (commit)
*

pasemi_mac: jumbo frame support (commit), enable GSO by default (commit), basic ethtool support (commit), netpoll support (commit)
*

rt2x00: Add per-interface structure (commit), enable master and adhoc mode again (commit), enable LED class support for rt2500usb/rt73usb (commit)
*

e1000e: Add interrupt moderation run-time ethtool interface (commit), add support for BM PHYs on ICH9 (commit)
*

niu: Add support for Neptune FEM/NEM cards for C10 server blades (commit), add Support for Sun ATCA Blade Server. (commit)
*

gianfar: Support NAPI for TX Frames (commit)
*

ehea: Add DLPAR memory remove support (commit)
*

sfc: Add TSO support (commit)
*

b43: Add QOS support (commit), add HostFlags HI support (commit), use SSB block-I/O to do PIO (commit)
*

S2io: Multiqueue network device support implementation (commit), (commit), enable multi ring support (commit), added napi support when MSIX is enabled. (commit)
*

ixgbe: Introduce MSI-X queue vector code (commit), introduce Multiqueue TX (commit), add optional DCA infrastructure (commit), introduce adaptive interrupt moderation (commit)
*

uli526x: add support for netpoll (commit)
*

fmvj18x_cs: add NextCom NC5310 rev B support (commit)
*

zd1211rw: support for mesh interface and beaconing (commit)
*

libertas: implement SSID scanning for SIOCSIWSCAN (commit)
*

ethtool: Add support for large eeproms (commit)
*

The scheduled bcm43xx removal (commit)
*

The scheduled ieee80211 softmac removal (commit)
*

The scheduled rc80211-simple.c removal (commit)
*

Remove obsolete driver sk98lin (commit)
*

Remove the obsolete xircom_tulip_cb driver (commit)

4.3. Graphics

*

radeon: Initial r500 support (commit), (commit), (commit)
*

intel_agp: Add support for Intel 4 series chipsets (commit)
*

i915: Add support for Intel series 4 chipsets (commit)
*

Add support for Radeon Mobility 9000 chipset (commit)
*

fb: add support for foreign endianness (commit)
*

pxafb: preliminary smart panel interface support (commit), (commit)
*

Driver for Freescale 8610 and 5121 DIU (commit)
*

intelfb: add support for the Intel Integrated Graphics Controller 965G/965GM (commit)
*

Add support for Blackfin/Linux logo for framebuffer console (commit)

4.4. Sound

*

hda-codec - Allow multiple SPDIF devices (commit), aadd SI HDMI codec support (commit), add support for the OQO Model 2 (commit), add support of Zepto laptops (commit), support RV7xx HDMI Audio (commit), add model=mobile for AD1884A & co (commit), add support of AD1883/1884A/1984A/1984B (commit), add model for cx20549 to support laptop HP530 (commit), add model for alc883 to support FUJITSU Pi2515 (commit), add support for Toshiba Equium L30 (commit), Map 3stack-6ch-dig ALC662 model for Asus P5GC-MX (commit), support of Lenovo Thinkpad X300 (commit), add Quanta IL1 ALC267 model (commit), add support of AD1989A/AD1989B (commit), add model for alc262 to support Lenovo 3000 (commit), add model for ASUS P5K-E/WIFI-AP (commit), added support for Foxconn P35AX-S mainboard (commit), add drivers for the Texas Instruments OMAP processors (commit), add support of Medion RIM 2150 (commit), support IDT 92HD206 codec (commit)
*

ice1724 - Enable AK4114 support for Audiophile192 (commit)
*

ice1712: Added support for Delta1010E (newer revisions of Delta1010) (commit), added support for M-Audio Delta 66E (commit), add Terrasoniq TS88 support (commit)
*

Davinci ASoC support (commit)
*

intel8x0 - Add support of 8 channel sound (commit)
*

ASoC: WM9713 driver (commit)
*

Emagic Audiowerk 2 ALSA driver. (commit)
*

Add PC-speaker sound driver (commit)
*

oxygen: add monitor controls (commit)
*

virtuoso: add Xonar DX support (commit)
*

soc - Support PXA3xx AC97 (commit)
*

pxa2xx-ac97: Support PXA3xx AC97 (commit)

4.5. Input

*

Add support for WM97xx familty touchscreens (commit)
*

WM97xx - add chip driver for WM9705 touchscreen (commit), add chip driver for WM9712 touchscreen (commit), add chip driver for WM97123 touchscreen (commit), add support for streaming mode on Mainstone (commit)
*

wacom: add support for Cintiq 20WSX (commit)
*

xpad: add support for wireless xbox360 controllers (commit)
*

Add PS/2 serio driver for AVR32 devices (commit)
*

aiptek: add support for Genius G-PEN 560 tablet (commit)
*

Add Zhen Hua driver (commit)
*

HID: force feedback driver for Logitech Rumblepad 2 (commit), Logitech diNovo Mini pad support (commit)

4.6. V4L/ DVB

*

V4L2 soc_camera driver for PXA270 (commit), (commit), (commit)
*

Add support for the MT9M001 camera (commit)
*

Add support for the MT9V022 camera (commit)
*

Add support for the ISL6405 dual LNB supply chip (commit)
*

Initial DVB-S support for MD8800 /CTX948 (commit)
*

cx23885: Add support for the Hauppauge HVR1400 (commit), add generic cx23417 hardware encoder support (commit)
*

Add mxl5505s driver for MaxiLinear 5505 chipsets (commit), basic digital support. (commit)
*

cx88: Add support for the Dvico PCI Nano (commit), add xc2028/3028 boards (commit), add support for tuner-xc3028 (commit)
*

saa7134: add support for the MSI TV@nywhere A/D v1.1 card (commit), add support for the Creatix CTX953_V.1.4.3 Hybrid (commit)
*

saa717x: add new audio/video decoder i2c driver (commit)
*

Support DVB-T tuning on the DViCO FusionHDTV DVB-T Pro (commit)
*

Add support for xc3028-based boards (commit)
*

ivtv: add support for Japanese variant of the Adaptec AVC-2410 (commit)
*

Add basic support for Prolink Pixelview MPEG 8000GT (commit)
*

bttv: added support for Kozumi KTV-01C card (commit)
*

Add support for Kworld ATSC 120 (commit)
*

CX24123: preparing support for CX24113 tuner (commit)
*

Added support for Terratec Cinergy T USB XXS (commit)
*

budget: Add support for Fujitsu Siemens DVB-T Activy Budget (commit)
*

Support for DVB-S demod PN1010 (clone of S5H1420) added (commit)
*

Added support for SkyStar2 rev2.7 and ITD1000 DVB-S tuner (commit)
*

em28xx-dvb: Add support for HVR950 (commit), add support for the HVR-900 (commit)
*

Add support for Hauppauge HVR950Q/HVR850/FusioHDTV7-USB (commit)
*

HVR950Q Hauppauge eeprom support (commit)
*

Adding support for the NXP TDA10048HN DVB OFDM demodulator (commit)
*

Add support for the Hauppauge HVR-1200 (commit)
*

pvrusb2-dvb: add DVB-T support for Hauppauge pvrusb2 model 73xxx (commit)
o

Add support for Beholder BeholdTV H6 (commit)
*

cx18: new driver for the Conexant CX23418 MPEG encoder chip (commit)
*

s5h1411: Adding support for this ATSC/QAM demodulator (commit)

4.7. SCSI

*

zfcp: Add trace records for recovery thread and its queues (commit), add traces for state changes. (commit), trace all triggers of error recovery activity (commit),register new recovery trace. (commit), remove obsolete erp_dbf trace (commit), add trace records for recovery actions. (commit)
*

qla2xxx: Add support for host supported speeds FC transport attribute. (commit), add FC-transport Asynchronous Event Notification support. (commit), add hardware trace-logging support. (commit), add Flash Descriptor Table layout support. (commit), add ISP84XX support. (commit), add midlayer target/device reset support. (commit)
*

iscsi: extended cdb support (commit), bidi support at the generic libiscsi level (commit), bidi support for iscsi_tcp (commit)
*

scsi_debug: support large non-fake virtual disk (commit)
*

gdth: convert to PCI hotplug API (commit)
*

st: add option to use SILI in variable block reads (commit)
*

megaraid_sas: Add the new controller(1078DE) support to the driver (commit)
*

m68k: new mac_esp scsi driver (commit)
*

bsg: add large command support (commit)
*

Add support for variable length extended commands (commit)
*

aacraid: Add Power Management support (commit)
*

dpt_i2o: 64 bit support (commit), sysfs (commit)
*

Firmware: add iSCSI iBFT Support (commit)

4.8. WATCHDOG

*

Add a watchdog driver based on the CS5535/CS5536 MFGPT timers (commit)
*

Add ICH9DO into the iTCO_wdt.c driver (commit)

4.9. HWMON

*

thermal: add hwmon sysfs I/F (commit)
*

ibmaem: new driver for power/energy/temp meters in IBM System X hardware (commit)
*

i5k_amb: support Intel 5400 chipset (commit)

4.10. USB

*

ISP1760 HCD driver (commit)
*

pxa27x_udc driver (commit)
*

CDC WDM driver (commit)
*

Add Cypress c67x00 OTG controller core driver (commit), (commit), (commit)
*

Add HP hs2300 Broadband Wireless Module to sierra.c (commit)
*

Partial USB embedded host support (commit)
*

Add usb-serial spcp8x5 driver (commit)
*

r8a66597-hcd: Add support for SH7366 USB host (commit)
*

Add Zoom Telephonics Model 3095F V.92 USB Mini External modem to cdc-acm (commit)
*

Support for the ET502HS HDSPA modem (commit)
*

atmel_usba_udc: Add support for AT91CAP9 UDPHS (commit)

4.11. Infiniband

*

IPoIB: Use checksum offload support if available (commit), add LSO support (commit), add basic ethtool support (commit), support modifying IPoIB CQ event moderation (commit), handle 4K IB MTU for UD (datagram) mode (commit)
*

ipath: Enable 4KB MTU (commit), add code to support multiple link speeds and widths (commit), EEPROM support for 7220 devices, robustness improvements, cleanup (commit), add support for IBTA 1.2 Heartbeat (commit)
*

Add support for IBA7220 (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
*

mthca: Add checksum offload support (commit)
*

mlx4: Add checksum offload support (commit), add IPoIB LSO support to mlx4 (commit), (commit)
*

RDMA/cxgb3: Support peer-2-peer connection setup (commit)

4.12. ACPI and Power Management

*

ACPICA: Disassembler support for new ACPI tables (commit)
*

eeepc-laptop: add base driver (commit), add backlight (commit), add hwmon fan control (commit)
*

thinkpad-acpi: add sysfs led class support for thinklight (v3.1) (commit), add sysfs led class support to thinkpad leds (v3.2) (commit)
*

Remove legacy PM (commit)

4.13. MTD

*

m25p80: add FAST_READ access support to M25Pxx (commit), add Support for ATMEL AT25DF641 64-Megabit SPI Flash (commit)
*

JEDEC: add support for the ST M29W400DB flash chip (commit)
*

NAND: support for pxa3xx (commit)
*

NOR: Add JEDEC support for the SST 36VF3203 flash chip (commit)
*

NAND: FSL UPM NAND driver (commit)
*

AR7 mtd partition map (commit)
*

NAND: S3C2410 Large page NAND support (commit)
*

NAND: Hardware ECC controller on at91sam9263 / at91sam9260 (commit)

4.14. I2C

*

Add support for device alias names (commit)
*

Convert most new-style drivers to use module aliasing (commit)
*

Renesas SH7760 I2C master driver (commit)
*

New driver for the SuperH Mobile I2C bus controller (commit)
*

Convert remaining new-style drivers to use module aliasing (commit)

4.15. Various

*

MMC: OMAP: Add back cover switch support (commit)
*

MMC: OMAP: Introduce new multislot structure and change driver to use it (commit)
*

mmc: mmc host test driver (commit)
*

4981/1: [KS8695] Simple LED driver (commit)
*

leds: Add mail LED support for "Clevo D400P" (commit)
*

leds: Add support to leds with readable status (commit)
*

leds: Add new driver for the LEDs on the Freecom FSG-3 (commit)
* RAPIDIO:
o

Add RapidIO multi mport support (commit)
o

Add OF-tree support to RapidIO controller driver (commit)
o

Add serial RapidIO controller support, which includes MPC8548, MPC8641 (commit)
*

edac: new support for Intel 3100 chipset (commit)
*

Basic braille screen reader support (commit)
*

ntp: support for TAI (commit)
*

RTC: Ramtron FM3130 RTC support (commit)
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: linux kernel 2.6.27 2008-10-10 00:00 UTC
Author: fei    Posted: 2008-10-10 09:07    Length: 59,524 byte(s)
[Original] [Print] [Top]
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2
Linux 2 6 27

Linux 2.6.27 kernel released 9 October 2008.

Note: The 2008 Linux Kernel Summit was held September 15 and 16 in Portland, Oregon, immediately prior to the Linux Plumbers Conference. LWN, as always, has excelent coverage of the event. You can download here all the papers of the conferences in two PDF files. LWN also has coverage of the Linux Plumbers Conference

Summary: 2.6.27 add a new filesystem (UBIFS) optimized for "pure" flash-based storage devices, the page-cache is now lockless, much improved Direct I/O scalability and performance, delayed allocation for ext4, multiqueue networking, an alternative hibernation implementation based on kexec/kdump, data integrity support in the block layer for devices that support it, a simple tracer called ftrace, a mmio tracer, sysprof support, extraction of all the in-kernel's firmware to /lib/firmware, XEN support for saving/restorig VMs, improved video camera support, support for the Intel wireless 5000 series and RTL8187B network cards, a new ath9k driver for the Atheros AR5008 and AR9001 family of chipsets, more new drivers, improved support for others and many other improvements and fixes.

目录

1. Prominent features (the cool stuff)
1. Lockless page cache and get_user_pages()
2. Ext4: Delayed Allocation
3. Kexec jump: kexec/kdump based hibernation
4. UBIFS and OMFS
5. Block layer data integrity support
6. Multiqueue networking
7. ftrace, sysprof support
8. Mmiotrace
9. External firmware
10. Improved video camera support with the gspca driver
11. Extended file descriptor system calls
12. Voltage and Current Regulator
2. Architecture-specific changes
3. Core
4. Crypto
5. Security
6. Networking
7. Filesystems
8. Drivers
1. Graphics
2. IDE/SATA
3. Network
4. SCSI
5. Sound
6. V4L/DVB
7. Input
8. USB
9. FireWire
10. MTD
11. RTC
12. WATCHDOG
13. Bluetooth
14. I2C
15. Infiniband/RDMA
16. MMC
17. HWMON
18. ACPI
19. Various
9. The linux Kernel in the news

1. Prominent features (the cool stuff)

1.1. Lockless page cache and get_user_pages()

Recommended LWN article: "Toward better direct I/O scalability", "The lockless page cache"

The page cache is the place where the kernel keeps in RAM a copy of a file to improve performance by avoiding disk I/O when the data that needs to be read is already on RAM. Each "mapping", which is the data structure that keeps track of the correspondence between a file and the page cache, is SMP-safe thanks to its own lock. So when different processes in different CPUs access different files, there's no lock contention, but if they access the same file (shared libraries or shared data files for example), they can hit some contention on that lock. In 2.6.27, thanks to some rules on how the page cache can be used and the usage of RCU, the page cache will be able to do lookups (ie., "read" the page cache) without needing to take the mapping lock, and hence improving scalability. But it will only be noticeable on systems with lots of cpus (page fault speedup of 250x on a 64 way system have been measured).

Code: (commit 1, 2, 3)

Lockless get_user_pages(): get_user_pages() is a function used in direct I/O operations to pin the userspace memory that is going to be transferred. It's a complex function that requires to hold the mmap_sem semaphore in the mm_struct struct of the process and the page table lock. This is a scalability problem when there're several processes using get_user_pages in the same address space (for example, databases that do Direct I/O), because there will be lock contention. In 2.6.27, a new get_user_pages_fast() function has been introduced, which does the same work that get_user_pages() does, but its simplified to speed up the most common workloads that exercise those paths within the same address space. This new function can avoid taking the mmap_sem semaphore and the page table locks in those cases. Benchmarks showed a 10% speedup running a OLTP workload with a IBM DB2 database in a quad-core system

Code: (commit 1, 2, 3, 4, 5, 6)

1.2. Ext4: Delayed Allocation

In this release, Ext4 is adding one of its most important planned features: Delayed allocation, also called "Allocate-on-flush". It doesn't changes the disk format in any way, but it improves the performance in a wide range of workloads. This is how it works: When an application write()s data to the disk, the data is usually not written immediately to the disk, it's cached in RAM for a while. But despite of not being written immediately to the disk, the filesystem allocates the neccesary disk structures for it immediately. Delayed allocation consists on not allocating space for that cached data - instead, only the free space counter is updated when write() is called. The on-disk blocks and structures are allocated only when the cached data is finally written to the disk - not when a process writes something (IOW: "delayed allocation"). This approach, used by filesystems such as XFS, btrfs, ZFS, or Reiser 4, improves noticeably the performance on many workloads. It also results in better block allocation decisions, because when allocation decisions are done at write()-time, the block allocator can not know if any other write()s are going to be done.

Code: (commit 1, 2, 3, 4, 5)

There's also a new implementation of the default data=ordered journaling mode based in inodes, not in jbd buffer heads. Code: (commit 1, 2, 3, 4)

1.3. Kexec jump: kexec/kdump based hibernation

Recommended LWN article: "Yet another approach to software suspend"

Kexec is a Linux feature that allows loading a kernel into memory and executing it, allowing to reboot to a new kernel without rebooting. This infrastructure was used to implement kdump, a kernel crash dump system: A "safe kernel" is loaded into memory as soon as the system starts, and if the running kernel crashes, the oops code kexec's to the "safe kernel", which is able to dump the memory that it's not using to the disk or somewhere else.

This infrastructure has been enhanced in 2.6.27 to be able to be used as an hibernation implementation: Instead of kexec'ing a safe kernel to dump the system memory, a system can kexec to a kernel that will dump all the memory on the disk and then shutdown the system. When the systems boots, the initrd can load the dumped system, and restore it.

This hibernation implementation does not replace the existing hibernation implementations, it's just an alternative. It has some advantages, like not depending on ACPI. For now it only works on x86-32.

Code: http://lwn.net/Articles/242107/ (commit). (commit)

1.4. UBIFS and OMFS

Recommended LWN article: "UBIFS" "OMFS"

UBIFS is a new filesystem designed to work with flash devices, developed by Nokia with help of the University of Szeged. It's important to understand that UBIFS is very different to any traditional filesystem: UBIFS does not work with block based devices, but pure flash based devices, handled by the MTD subsystem in Linux. Hence, UBIFS does not work with what many people considers flash devices like flash-based hard drives, SD cards, USB sticks, etc; because those devices use a block device emulation layer called FTL (Flash Translation Layer) that make they look like traditional block-based storage devices to the outside world. UBIFS instead is designed to work with flash devices that do not have a block device emulation layer and that are handled by the MTD subsystem and present themselves to userspace as MTD devices.

UBIFS works on top of UBI volumes. UBI is a LVM-like layer which was included in Linux 2.6.22, which itself works on top of MTD devices. UBIFS offers various advantages to JFFS2: faster and scalable mount times (unlike JFFS2, UBIFS does not have to scan whole media when mounting), tolerance to unclean reboots (UBIFS is a journaling filesystem), write-back (which improves dramatically the performance), and support of on-the-flight compression.

Documentation: UBIFS FAQ, more documentation

Code: (commit), (commit), (commit)

OMFS stands for "Sonicblue Optimized MPEG File System support". It is the proprietary file system used by the Rio Karma music player and ReplayTV DVR. Despite the name, this filesystem is not more efficient than a standard FS for MPEG files, in fact likely the opposite is true. Code: (commit 1, 2, 3, 5, 6, 7, 8)

1.5. Block layer data integrity support

Recommended LWN article: "Block layer: integrity checking and lots of partitions"

Modern filesystems feature checksumming of data and metadata to protect against data corruption. However, the detection of the corruption is done at read time which could potentially be months after the data was written. At that point the original data that the application tried to write is most likely lost (if there's not data redundancy). The solution is to ensure that the disk is actually storing what the application meant it to. Recent additions to both the SCSI family protocols (SBC Data Integrity Field, SCC protection proposal) as well as SATA/T13 (External Path Protection) try to remedy this by adding support for appending integrity metadata to an I/O. The integrity metadata includes a checksum for each sector as well as an incrementing counter that ensures the individual sectors are written in the right order. And for some protection schemes also that the I/O is written to the right place on disk.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)

1.6. Multiqueue networking

Recommended LWN article: "Multiqueue networking"

From that article: One of the fundamental data structures in the networking subsystem is the transmit queue associated with each device [...] This is a scheme which has worked well for years, but it has run into a fundamental limitation: it does not map well to devices which have multiple transmit queues. Such devices are becoming increasingly common, especially in the wireless networking area. Devices which implement the Wireless Multimedia Extensions, for example, can have four different classes of service: video, voice, best-effort, and background. Video and voice traffic may receive higher priority within the device - it is transmitted first - and the device can also take more of the available air time for such packets. Linux 2.6.27 adds support for those devices

Code: (commit)

1.7. ftrace, sysprof support

Ftrace is a very simple function tracer -unrelated to kprobes/SystemTap- which was born in the -rt patches. It uses a compiler feature to insert a small, 5-byte No-Operation instruction to the beginning of every kernel function, which NOP sequence is then dynamically patched into a tracer call when tracing is enabled by the administrator. If it's disabled, the overhead of the instructions is very small and not measurable even in micro-benchmarks. Although ftrace is the function tracer, it also includes an plugin infrastructure that allows for other types of tracing. Some of the tracers that are currently in ftrace include a tracer to trace context switches, the time it takes for a high priority task to run after it was woken up, how long interrupts are disabled, the time spent in preemption off critical sections.

The interface to access ftrace can be found in /debugfs/tracing, which are documented in Documentation/ftrace.txt. There's also a sysprof plugin that can be used with a development version of sysprof - "svn checkout http://svn.gnome.org/svn/sysprof/branches/ftrace-branch sysprof"

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 14, 15, 16, 17)

1.8. Mmiotrace

Recommended LWN article: "Tracing memory-mapped I/O operations"

Mmiotrace is a tool for trapping memory mapped IO (MMIO) accesses within the kernel. Since MMIO is used by drivers, this tool can be used for debugging and especially for reverse engineering binary drivers.

Code: (commit), Documentation: (commit)

1.9. External firmware

Recommended LWN article: "Moving the firmware out"

Firmware is usually compiled with each driver. For some reasons (mainly, licensing reasons), distributing firmware is not allowed by some companies and some drivers have also supported loading external firmware for a long time. But even if the firmware compiled and shipped with each driver is redistributable, is not libre software, and some people thinks that this breaks the GPL. It also has some disadvantages for distros.

In 2.6.27, the firmware blobs have been moved from the drivers' source code to a new directory: firmware/. By default, the firmware won't be compiled in the kernel binary, or in the modules. It's installed in /lib/firmware when the user types "make modules_install", and drivers have been modified to call request_firmware() and load the firmware when they need it. There's also a configuration option that will compile the firmware files in the kernel binary image, like it was done previously.

Code: (commit 1, 2, 3, 4)

1.10. Improved video camera support with the gspca driver

Linux 2.6.26 was a big improvement to linux webcam support thanks to a driver that supports devices that implement the USB video class specification, which are quite a lot. 2.6.26 includes of the gspca driver, which implements support for another large set of devices. With this driver, most video camera devices on the market are supported by Linux.

Code: (commit), (commit)

1.11. Extended file descriptor system calls

Recommended LWN article: "Extending system calls"

When Unix was designed, some of the interfaces didn't envisioned functionality that would be needed in the future. Many interfaces that allow creating a file descritor don't take a flag parameter, for example. That makes impossible to create file descriptors with new properties things like close-on-exec, non-blocking, or non-sequential descriptors. Being able to do such things today is neccesary - not just for fun: it also closes a security bug that can be exploited in multithreaded apps.

To solve this issue, Linux 2.6.27 is adding a new set of interfaces and syscalls that will be used by glibc.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)

1.12. Voltage and Current Regulator

This framework is designed to provide a generic interface to voltage and current regulators. The intention is to allow systems to dynamically control regulator output in order to save power and prolong battery life. This applies to both voltage regulators (where voltage output is controllable) and current sinks (where current output is controllable). This framework is designed around SoC based devices and has also been designed against two Power Management ICs (PMICs) currently on the market - namely the Freescale MC13783 and the Wolfson WM8350, however it is quite generic and should apply to all PMICs.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)

2. Architecture-specific changes

* x86
o

Support GB hugepages on 64-bit (commit), (commit)
o

Add AMD IOMMU support (commit), (commit), (commit)
o

Make generic arch support NUMAQ (commit)
o

Make generic arch support VisWS (Visual Workstation): turn into generic arch (commit), (commit)
o

CPA: add statistics about state of direct mapping (commit)
o

Add a debugfs interface to dump PAT memtype (commit)
o

Add "debugpat" boot option (commit)
o

Allow up to 4096 cpus: NR_CPUS to 4096 and MAX_NUMNODES to 512 (commit), (commit)
o

Config option to disable info from decompression of the kernel (commit)
o

clockevents: add C1E aware idle function (commit)
o

SGI UV: TLB shootdown using broadcast assist unit (commit)
o

Enable memory tester support on 32-bit (commit)
o

Add performance variants of cpumask operators (commit)
o

Add a list for custom page fault handlers. (commit)
o

mtrr cleanup for converting continuous to discrete layout (commit), (commit)
o

RDC321x: add to mach-default (commit)
* ARM
o

kgdb ARCH=arm support (commit)
o

Common code for the Motorola EZX GSM phones (commit)
o

Orion: add QNAP TS-409 support (commit), add 88F5181L (Orion-VoIP) support (commit), add Linksys WRT350N v2 support (commit), add HP Media Vault mv2120 support (commit), add Technologic Systems TS-78xx support (commit), add Maxtor Shared Storage II support (commit), add Netgear WNR854T support (commit), add RD88F5181L-FXO support (commit), add RD88F5181L-GE support (commit)
o

Add e350 support (commit)
o

E-series UDC support (commit)
o

AT91: UDPHS driver (commit), (commit), (commit), Calao Systems (commit)
o

Initial machine support for Logitech Jive (commit)
o

pcm990: Add framebuffer and backlight support (commit)
o

pxa: add pxa3xx NAND device and clock sources (commit), add pxa3xx NAND support for zylonite (commit), add pxa3xx NAND support for littleton (commit), add base support for PXA930 (aka Tavor-P) (commit), add base support for PXA930 Evaluation Board (aka TavorEVB) (commit), add base support for PXA930 Handheld Platform (aka SAAR) (commit), add generic PWM backlight driver (commit), (commit),
o

Better MX2 platform (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
o

Add basic pcm037 board support (commit)
o

Latencytop support (commit)
o

Add Marvell Loki (88RC8480) SoC support (commit), Marvell Kirkwood (88F6000) SoC support (commit), Marvell 78xx0 ARM SoC support (commit)
o

Support Toshiba TC6393XB Mobile I/O Controller. (commit)
o

Core MFD support (commit)
o

tc6393xb: tmio-nand support (commit)
o

Tosa: support TC6393XB device (commit), tmio-nand data (commit), support built-in bluetooth power-up (commit)
o

S3c2440: Add AT2440EVB board support (commit)
o

AT2440EVB: Add DM9000A network controller support (commit)
o

Acer n30: Add support for n35 and related devices (commit)
o

ixp4xx: Add support for the Freecom FSG-3 board (commit)
o

Remove ARCH_CO285 (commit)
o

Support for the at91sam9g20 (commit)
o

Add support for PalmTX handheld computer (commit)
o

PalmTX PCMCIA (commit), battery monitor (commit)
o

pxafb: Support for RGB666, RGBT666, RGB888 and RGBT888 (commit)
o

Support for LCD on e740 e750 e400 and e800 e-series PDAs (commit)
* SH
o

Initial ELF FDPIC support. (commit)
o

Support variable page sizes on nommu. (commit)
o

Add support for 16kB PAGE_SIZE. (commit)
o

Add support Renesas Solutions AP-325RXA board (commit)
o

Add SCIF2 support for SH7763. (commit)
o

RSK+ 7203 board support. (commit)
o

Renesas Solutions SH7763RDP board support (commit)
o

Solution Enginge 7710/7712 SH-Ether support (commit)
o

Renesas R0P7785LC0011RL board support (commit)
o

Add SuperH Mobile LCDC platform data for Migo-R (commit), add SuperH Mobile CEU platform data for Migo-R (commit)
o

AP325RXA support: (commit), (commit), (commit)
* IA64
o

Add support for the SGI UV GRU. The GRU is a hardware resource located in the system chipset. The GRU contains memory that is mmaped into the user address space. This memory is used to communicate with the GRU to perform functions such as load/store, scatter/gather, bcopy, AMOs, etc (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
o

Allow ia64 to CONFIG_NR_CPUS up to 4096 (commit)
o

Paravirt_ops support for IA64 (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
* Xen
o

Allow 64-bit Xen (commit)
o

Implement save/restore (commit), (commit)
o

Add configurable max domain size (commit)
o

Remove support for non-PAE 32-bit (commit)
o

xen pvfb: Module aliases to support module autoloading (commit), Pointer z-axis (mouse wheel) support (commit), dynamic mode support (screen resizing) (commit)
* Blackfin
o

Use the generic platform nand driver to support nand flash on bf53x board which do not have on-chip nand flash controller (commit)
o

Functional power management support (commit), (commit)
o

Apply Bluetechnix CM-BF527 board support patch (commit)
o

Add support for the Blackstamp board (commit)
o

RTC driver: add support for power management framework (commit)
o

Add support for board tcm-bf537 (commit)
* S390
o

cio: Introduce modalias for css bus. (commit)
o

stp support. (commit)
o

cio: Add chsc subchannel driver. (commit)
o

Extra Kernel Parameters via VMPARM (commit)
o

Add support for memory hot-add and hot-remove (commit), (commit),(commit)
o

Remove P390 support. (commit)
o

qdio: new qdio driver. (commit)
* MIPS
o

Routerboard 532: Support for base system (commit)
o

TXx9: Add 64-bit support (commit), (commit)
o

kgdb: Remove existing implementation in favor of the generic kgdb (commit)
o

Kill IRIX compatibility (commit)
o

SEAD: Remove support code. (commit)
o

Atlas: Remove support code. (commit)
o

cmbvr4133: Remove support (commit)
* POWERPC
o

Remove arch/ppc architecture. arch/powerpc supports everything now (commit)
o

powerpc kgdb support (commit)
o

Enable tracehook for the architecture (commit)
o

Support multiple hugepage sizes (commit), define support for 16G hugepages (commit)
o

POWER7 support (commit),(commit)
o

Vector Scaler extensions (Power 7 processors) (commit), (commit), (commit), (commit), (commit)
o

Add Strong Access Ordering support (commit), (commit), (commit)
o

mpc5121: Add clock driver (commit), Update device tree for MPC5121ADS evaluation board (commit), add generic board support for MPC5121 platforms (commit), add support for CPLD on MPC5121ADS board (commit)
o

85xx: add board support for the TQM8548 modules (commit), add DOZE/NAP support for e500 core (commit), enable MSI support for 85xxds board (commit), add support for MPC8536DS (commit)
o

83xx: new board support: MPC8360E-RDK (commit), add support for Analogue & Micro ASP837E board (commit), Power Management support (commit)
o

86xx: Enable MSI support for MPC8610HPCD board (commit)
o

virtex: add Xilinx 440 cpu to the cputable (commit), add Xilinx Virtex 5 ppc440 platform support (commit)
o

4xx: Sam440ep support (commit)
o

C2K board driver (commit)
o

ibmveth: enable driver for CMO (commit)
o

ibmvscsi: driver enablement for CMO (commit)
o

ibmvfc: Add support for collaborative memory overcommit (commit)
o

Implement FSL GTM support (commit)
o

powerpc/QE: add support for QE USB clocks routing (commit)
o

booke: Add kprobes support for booke style processors (commit), BookE hardware watchpoint support (commit), add support for new e500mc core (commit)
o

fsl: PCIe MSI support for 83xx/85xx/86xx processors. (commit)
o

pseries: Add collaborative memory manager (commit), add CMO paging statistics (commit), iommu enablement for CMO (commit), vio bus support for CMO (commit)
o

Add driver for Barrier Synchronization Register (commit)
o

Support for latencytop (commit)
o

cell: Add spu aware cpufreq governor (commit). add support for power button of future IBM cell blades (commit)
o

Delete unused fec_8xx net driver (commit)
* AVR32
o

Add support for ATSTK1006 (commit)
o

Power Management support ("standby" and "mem" modes) (commit)
* SPARC
o

Implement IRQ stacks. (commit)
o

Add Niagara2 RNG driver. (commit)
o

Add ftrace support. (commit)
* v850
o

Remove v850 port (commit)

3. Core

* sched
o

Add new API sched_setscheduler_nocheck: add a flag to control access checks (commit)
o

sched: revert revert of: fair-group: SMP-nice for group scheduling (commit)
* Power Management:
o

Recommended LWN article: "A new suspend/hibernate infrastructure"
o

New suspend/hibernate infrastructure (commit), (commit), (commit)
o

Boot time suspend selftest (commit)
*

ACPI PCI slot detection driver (commit)
*

rcu: make rcutorture more vicious: add stutter feature (commit), reinstate boot-time testing (commit), make quiescent rcutorture less power-hungry (commit), make quiescent rcutorture less power-hungry (commit), invoke RCU readers from irq handlers (timers) (commit)
*

cfq-iosched: add message logging through blktrace (commit)
*

ramfs: enable splice write (commit)
*

sysfs: add /sys/dev/{char,block} to lookup sysfs path by major:minor (commit), add /sys/firmware/memmap (commit)
*

remove CONFIG_KMOD from core kernel code (commit)
*

Add a basic debugging framework for memory initialisation (commit), add bootmem debugging framework (commit)
*

Allow to debug the X server: access_process_vm device memory infrastructure (commit), use generic_access_phys for /dev/mem mappings (commit)
*

tmpfs: support aio (commit)
*

hugetlbfs: per mount huge page sizes (commit), new sysfs interface (commit), modular state for hugetlb page size (commit), multiple hstates for multiple page sizes (commit), support boot allocate different sizes (commit), override default huge page size (commit)
*

vmallocinfo: add NUMA information (commit)
*

memory-hotplug: add sysfs removable attribute for hotplug memory remove (commit)
*

UBI: implement multiple volumes rename (commit), remove pre-sqnum images support (commit), allow UBI root device name (commit)
*

kprobes: improve kretprobe scalability with hashed locking (commit)
*

per-task-delay-accounting: update taskstats for memory reclaim delay (commit)
*

task IO accounting: provide distinct tgid/tid I/O statistics (commit)
*

per-task-delay-accounting: add memory reclaim delay (commit)
*

per-task-delay-accounting: update document and getdelays.c for memory reclaim (commit)
*

fuse: nfs export special lookups (commit), lockd support (commit), add export operations (commit)
*

relay: add buffer-only channels; useful for early logging (commit)
*

lguest: Support assigning a MAC address (commit), virtio-rng support (commit)
* KVM
o

IOAPIC/LAPIC: Enable NMI support (commit)
o

MTRR support (commit)
o

VMX: Enable NMI with in-kernel irqchip (commit)
o

Add coalesced MMIO support (x86 part) (commit), (powerpc part) (commit), (common part) (commit), (ia64 part) (commit)
*

Support adding a spare to a live md array with external metadata. (commit)
*

Support changing rdev size on running arrays. (commit)
*

CPUFREQ: S3C24XX NAND driver frequency scaling support. (commit)

4. Crypto

*

Add support for RIPEMD hash algorithms: RIPEMD-128,256 and 320 (commit), (commit), (commit), (commit), (commit)
*

hash: Add asynchronous hash support (commit), (commit), (commit)
*

ixp4xx - Hardware crypto support for IXP4xx CPUs (commit)
*

crc32c - Add ahash implementation (commit)
*

talitos: Freescale integrated security engine (SEC) driver (commit), (commit), (commit)

5. Security

*

Protect legacy applications from executing with insufficient privilege (commit)
*

Filesystem capabilities refactor kernel code (commit)
*

LSM: show LSM mount options in /proc/mounts (commit)
* Selinux:
o

Support deferred mapping of contexts (commit)
o

Enable processes with mac_admin to get the raw inode contexts (commit)

6. Networking

*

WEXT: Add support for passing PMK and capability flags to WEXT (commit)
*

Add layer1 over IP support (commit)
*

Add STP demux layer (commit)
*

bridge: Use STP demux (commit)
*

Add GARP applicant-only participant (commit)
*

virtio net: Add ethtool ops for SG/GSO (commit)
*

loopback: Enable TSO (commit)
* netfilter
o

ebtables: add IPv6 support (commit),
o

ctnetlink: add full support for SCTP to ctnetlink (commit)
o

ip_tables: add iptables security table for mandatory access control rules (commit)
o

ip6_tables: add ip6tables security table (commit)
o

accounting rework: ct_extend + 64bit counters (commit)
*

mac80211: add spectrum capabilities (commit)
*

build algorithms into the mac80211 module (commit)
*

hostap: add radiotap support in monitor mode (commit)
*

iwlwifi : Patch adds rfkill subsystem for 3945 (commit)
*

netdev: Add support for rx flow hash configuration, using ethtool. (commit)
*

iwlwifi: enable packet injection for iwl3945 (commit)
*

tun: Interface to query tun/tap features. (commit), TUNSETFEATURES to set gso features. (commit)
*

vlan: Add GVRP support (commit)
*

vlan: Add ethtool support (commit)
*

netdev: Create netdev_queue abstraction. (commit)
*

mac80211: power management wext hooks (commit)

7. Filesystems

*

fatfs: add UTC timestamp option (commit)
*

XFS: ASCII case-insensitive support (commit)

8. Drivers

8.1. Graphics

*

fbdev: add the carmine FB driver (commit), SuperH Mobile LCDC Driver (commit), LCD backlight driver using Atmel PWM driver (commit), add new Cobalt LCD framebuffer driver (commit), add support for the ILI9320 video display controller (commit), SH7760/SH7763 LCDC framebuffer driver (commit)
*

tridentfb: add TGUI 9440 support (commit), add imageblit acceleration for Blade3D family (commit), add acceleration for TGUI families (commit)
*

Add platform_lcd driver (commit)
*

Remove old broken Cobalt LCD driver (commit)

8.2. IDE/SATA

* SATA
o

AHCI: speed up resume (commit), enclosure management support (commit)
o

Add support for VPD page b1 (commit)
* ide
o

Remove obsoleted "hdx=" kernel parameters (commit), remove obsoleted "idebus=" kernel parameter (commit), remove obsoleted "ide=" kernel parameters (commit)
o

Remove mpc8xx-ide driver (commit)
o

palm_bk3710: add UltraDMA/100 support (commit)
o

BAST: Remove old IDE driver (commit)

8.3. Network

*

Add ath9k: Atheros IEEE 802.11n driver for AR5008 and AR9001 family of chipsets (commit)
*

Add atl1e: Atheros L1E Gigabit Ethernet driver (commit)
*

sh_eth: add support for Renesas SuperH Ethernet (commit)
*

Add option hso driver (commit)
*

iwlwifi: Support for the Intel Wireless WiFi Link 5000AGN Family devices (commit), set monitor mode for 4965 (commit) and 3945 (commit), remove IWL4965_HT config (commit), enable IBSS (Ad-Hoc) mode (commit), add remove station functionality (commit), add power level support (commit), HW dependent run time calibration (commit)
*

rtl8187: Add support of RTL8187B-based cards (commit), (commit), (commit), (commit), (commit), (commit), (commit)
*

libertas: sysfs interface for accessing non-volatile configuration (commit), extend MESH_CONFIG command to access non-volatile configuration (commit), sysfs interface for accessing default mesh channel (commit), rate adaptation configuration via iwconfig. (commit)
*

igb: Introduce multiple TX queues with infrastructure (commit), add DCA support (commit), add 82576 MAC support (commit), add support for quad port WOL and feature flags (commit), add support for in kernel LRO (commit), improve multiqueue AIM support (commit)
*

Add mISDN driver. mISDN is a new modular ISDN driver, in the long term it should replace the old I4L driver architecture for passiv ISDN cards (commit), (commit), (commit), (commit), (commit)
*

netxen: add support for new chip/boards (commit), add 2MB PCI memory support (commit), firmware 4.0.0 support (commit), (commit), (commit), enable tso6, intr coalescing. (commit)
*

myri10ge: add multislices support (commit), add Direct Cache Access support (commit)
*

niu: Add TX multiqueue support. (commit)
*

SH7619 add ethernet controler support (commit)
*

sh_eth: Add SH7619 support (commit)
*

bnx2x: Multi Queue (commit), add TX multiqueue support. (commit)
*

ipg: add NAPI Rx queue support (commit), always compile in jumbo frame support (commit), run-time configurable jumbo frame support (commit)
*

ixgbe: add LRO support (commit)
*

mv643xx_eth: allow multiple RX queues (commit), allow multiple TX queues (commit)
*

cxgb3 - Add LRO support (commit), add iscsi support (commit)
*

Add support for DM9000A and DM9000B chips (commit)
*

gianfar: Add magic packet and suspend/resume support. (commit)
*

tg3: Add 5785 ASIC revision (commit)
*

sky2: 88E8057 chip support (commit)
*

b43: Add firmware markers support (commit), enable mesh (commit)
*

bnx2x: add support for BCM57711 HW (commit), add PCIE EEH support (commit), add EEH PCI recovery (commit)
*

zd1211rw: initial IBSS support (commit)
*

macb: Basic suspend/resume support (commit)
*

gelic: Add support for ESSID scan (commit)
*

sfc: Use kernel I2C system and i2c-algo-bit driver (commit)
*

OpenFirmware GPIO based MDIO bitbang driver (commit)
*

rt2x00: Add support for CTS protection in rt2x00lib (commit)
*

802.11 radio simulator for mac80211 (commit)
*

Remove the ibm_emac driver (commit)
*

Remove the strip driver (commit)
*

Remove the SAA9730 driver (commit)

8.4. SCSI

*

scsi_dh: add infrastructure for SCSI Device Handlers (commit)
*

scsi_dh: Remove hardware handlers from dm (commit)
*

scsi_dh: Use SCSI device handler in dm-multipath (commit)
*

scsi_dh: Remove hardware handler infrastructure from dm (commit)
*

zfcp: sysfs attributes for fabric and channel latencies (commit)
*

scsi_debug: Runtime-configurable sector size (commit) add support for rotation speed (commit)
*

ibmvfc: IBM Power Virtual Fibre Channel Adapter Client Driver (commit)
*

sg: Add target reset support (commit)

8.5. Sound

*

Remove the OSS trident driver (commit)
*

Add EM-X270 ASoC driver (commit)
*

hda: Add ALC663 support (commit), add ICH9 controller support (8086:2911) (commit), add support of Teradici controller (commit), add support for 92HD73xxx codecs (commit), add Macbook 3.1 support (commit), add missing Thinkpad Z60m support (commit), add support for Lenovo 3000 N200 (commit), add support of ASUS Eeepc P90 (commit), support new AMD HDMI Audio (1002:970f) (commit), added support for Asus V1Sn (commit), support intel DG33 motherboards (commit), add Toshiba dynabook SS RX1 support (commit)
*

ASoC drivers: Add AK4535 driver (commit), AC97 codec PM (commit), add Digital Audio Interface (DAI) control functions. (commit), add Digital Audio Interface (DAI) control functions. (commit), Au12x0/Au1550 PSC Audio support (commit), AT32 ASoC (commit), UDA1380 driver (commit), WM8510 driver (commit), WM8990 driver (commit)
*

Driver for SGI HAL2 audio device (commit) and SGI O2 audio board (commit)
*

virtuoso: add Xonar D1 support (commit)
*

oxygen: add PM support (commit)
*

opti93x: add support for Opti93x codec in cs4231-lib (commit)
*

ca0106 - Add entry for another MSI K8N Diamond MB (commit)

8.6. V4L/DVB

*

DVB-PLL: add Samsung DTOS403IH102A tuner (commit)
*

Anysee: driver for Anysee DVB-T/C receiver (commit), support for Anysee E30C Plus rev 0.4 (commit)
*

ivtv: add support for the Buffalo PC-MV5L/PCI card. (commit)
*

Add support for Pinnacle PCTV HD Pro stick (the older variant 2304:0227) (commit)
*

budget-ci: Add support for Technotrend budget C-1501 dvb-c card (commit)
*

cx2341x: add TS capability (commit)
*

Add support for em2860 based PointNix Intra-Oral Camera (commit)
*

Add LifeVideo To-Go Cardbus PCI ID (commit)
*

This driver adds support for the Sensoray 2255 devices. (commit)
*

cxusb: add initial support for AVerTVHD Volar (commit)
*

Avermedia E506 composite (commit)
*

Subdriver pac207 added and minor changes. (commit)
*

Many bug fixes, zc3xx added. (commit)
*

cx18: enable TS support (commit), add support for Conexant Raptor PAL/SECAM card (commit)
*

spca508: Add Clone Digital Webcam 11043 (commit)
*

dib0700: add support for Hauppauge Nova-TD Stick 52009 (commit)
*

cx23885: add initial support for DViCO FusionHDTV7 Dual Express (commit), add support for new revision of FusionHDTV7 Dual Express (commit), add DViCO HDTV7 Dual Express tuner callback support. (commit)
*

uvcvideo : Add support for Medion Akoya Mini E1210 integrated webcam (commit)
*

uvcvideo : Add support for Asus F9GS integrated webcam (commit)
*

add support for SMS1010 and SMS1150 based digital television devices (commit)
*

sms1xxx: add support for Hauppauge WinTV-Nova-T-MiniStick (commit)
*

saa7134: Add support for analog only ASUSTeK P7131 (commit), add support for AVerMedia M103 (commit)
*

sh_mobile_ceu_camera: Add SuperH Mobile CEU driver V3 (commit)
*

soc_camera_platform: Add SoC Camera Platform driver (commit)
*

v4l-dvb: remove broken PlanB driver (commit)
*

Add dvb-t support for terratec cinergy hybrid T usb xs (commit)
*

Add support for the ATI TV Wonder HD 600 (commit)
*

This patch adds support for the Micronas DRX3975D/DRX3977D DVB-T demodulator (commit)
*

Adds support for Dvbworld DVB-S 2102 USB card (commit)
*

add support for MaxLinear MxL5007T silicon tuner (commit)
*

au0828: add support for new revision of HVR950Q (commit)
*

em28xx-cards: Add GrabBeeX+ USB2800 model (commit), new supported IDs for analog models (commit), add Compro Videomate Foryou/Stereo model (commit)

8.7. Input

*

Add HTC Shift Touchscreen Driver (commit)
*

New driver for SGI O2 volume buttons (commit)
*

Add driver for Tabletkiosk Sahara TouchIT-213 touchscreen (commit)
*

Add new serio driver for Xilinx XPS PS2 IP (commit)
*

Add driver for Atmel integrated touchscreen controller (commit)
*

bcm5974 - add driver for Macbook Air and Pro Penryn touchpads (commit)
*

bcm5974 - implement autosuspend support (commit)
*

Add support for SuperH MigoR touchscreen (commit)
*

Add driver for iNexio serial touchscreen. (commit)

8.8. USB

*

Add MUSB and TUSB support (commit)
*

usb gadget: new "CDC Composite" gadget driver (commit)
*

Autosuspend for cdc-wdm (commit)
*

Au1xxx-usb: suspend/resume support. (commit)
*

Delete airprime driver (commit)

8.9. FireWire

*

release notes

8.10. MTD

*

NOR: Support for M50FLW080A and M50FLW080B (commit)
*

NOR: Add support for AMD AM29SL800D[BT] NOR flash chips (commit)
*

NOR: Add support for Eon EN29SL800B[BT] NOR flash chips (commit)
*

NOR: Add support for flash chips with ID in bank other than 0 (commit)
*

MAP: Blackfin Async Flash Maps (commit)
*

MAPS: Remove the bast-flash driver. (commit)

8.11. RTC

*

rtc-pl030: add driver, remove old non-rtc lib driver (commit)
*

Add ds1305/ds1306 driver (commit)
*

Add support for ST M41T94 SPI RTC (commit)

8.12. WATCHDOG

*

delete unused driver mpc8xx_wdt.c (commit)
*

Add support for the built-int RDC R-321x SoC watchdog (commit)
*

Add support for the IDT RC32434 watchdog (commit)
*

mpc83xx_wdt: add support for MPC86xx CPUs (commit)

8.13. Bluetooth

*

Track status of Simple Pairing mode (commit)
*

Track status of remote Simple Pairing mode (commit)
*

Export remote Simple Pairing mode via sysfs (commit)
*

Add SCO support to btusb driver (commit)

8.14. I2C

*

Add Intel SCH SMBus support (commit)
*

Add support for I2C bus on Freescale CPM1/CPM2 controllers (commit)
*

i2c-ocores: basic PM support (commit)
*

Remove 3 deprecated bus drivers (commit)
*

Blackfin I2C Driver: Functional power management support (commit)

8.15. Infiniband/RDMA

*

RDMA: Add memory management extensions support (commit)
*

RDMA/cxgb3: MEM_MGT_EXTENSIONS support (commit), Add support for protocol statistics (commit)
*

Add support for multicast loopback blocking (commit)
*

mlx4: Add support for blocking multicast loopback packets (commit)
*

RDMA: Add iWARP protocol statistics attributes in sysfs (commit)
*

IPoIB: add LRO support (commit)

8.16. MMC

*

Add S3C24XX MMC/SD driver. (commit), (commit)
*

Add host driver for Ricoh Bay1controllers (commit)
*

Add support for card-detection polling (commit)
*

Remove multiwrite capability (commit)
*

sdhci: handle hot-remove (commit), support JMicron secondary interface (commit), scatter-gather (ADMA) support (commit)
*

au1xmmc: suspend/resume implementation (commit), SDIO IRQ support. (commit)
*

mmc_block: bounce buffer highmem support (commit)
*

mmc_spi: add support for card-detection polling (commit)
*

at91_mci: support for block size not modulo 4 (commit)
*

atmel-mci: Driver for Atmel on-chip MMC controllers (commit)

8.17. HWMON

*

Add support for the SMSC SCH5027 (commit)
*

ad7414 driver (commit)
*

lm75: Drop legacy i2c driver (commit)
*

ADC124S501 generic driver (commit)

8.18. ACPI

*

Create "idle=halt" bootparam (commit)
*

Create "idle=nomwait" bootparam (commit)
*

compal Laptop Extras (commit)
*

Revert "remove the strip driver" (commit)
*

thinkpad-acpi: add bluetooth and WWAN rfkill support (commit)
*

misc: add HP WMI laptop extras driver (commit)

8.19. Various

* mfd
o

Driver for the T7L66XB TMIO SoC (commit)
o

Driver for the TC6387XB TMIO controller. (commit)
o

Driver for the TMIO NAND controller (commit)
o

TMIO MMC driver (commit)
* gpio
o

max732x driver (commit)
o

sysfs interface (commit)
o

Add bt8xxgpio driver (commit)
o

Add gpio driver for max7301 SPI GPIO expander (commit)
* leds
o

Add pca9532 led driver (commit)
o

Add support for Philips PCA955x I2C LED drivers * Add new orion_spi driver [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=60cadec9da7b6c91aca51f408c828f7e74a68379 (commit)
*

Add OF binding support for SPI busses (commit)
*

UIO: add generic UIO platform driver (commit)
*

HP iLO driver (commit)
*

Char: mxser, add CP-102UF support (commit)
*

I/OAT version 3.0 support (commit)

h=f46e9203d9a100bae216cc06e17f2e77351aa8d8 (commit)]

*

backlight: Add Nvidia-based Apple Macbook Pro backlight driver (commit)
*

pcmcia: add support Compactflash PCMCIA support for Blackfin. (commit)
*

power_supply: Sharp SL-6000 (tosa) batteries support (commit)
*

dmaengine: DMA engine driver for Marvell XOR engine (commit), driver for the Synopsys Designware DMA controller (commit)
*

rfkill: add the WWAN radio type (commit)
*

edac: i5100 new intel chipset driver (commit)
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: linux kernel 2.6.28 2008-12-24 23:45 UTC
Author: fei    Posted: 2008-12-25 09:02    Length: 65,535 byte(s)
[Original] [Print] [Top]
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2
Linux 2.6.28 kernel released on 25 December, 2008.

Summary: Linux 2.6.28 adds the first version of Ext4 as a stable filesystem, the much-expected GPU memory manager which will be the foundation of a renewed graphic stack, support for Ultra Wide Band (Wireless USB, UWB-IP), memory management scalability and performance improvements, a boot tracer, disk shock protection, the phonet network protocol, support of SSD discard requests, transparent proxy support, several new network drivers, controlable IO CPU affinity, high-resolution poll()/select(), support of a minimal "dummy" policy in SELinux, tracing improvements, x86 x2APIC support, a fb driver for VIA UniChrome devices, Mitac Mio A701 ARM-based smartphone support, some new drivers, improved device support, and many other small improvements and fixes.

目录

1. Prominent features (the cool stuff)
1. Ext4
2. The GEM Memory Manager for GPU memory
3. Support for "Ultra Wide Band" (UWB), Wireless USB and UWB-IP
4. Memory management Scalability improvements
5. Container freezer
6. Boot tracer
7. Disk Shock Protection
8. Phonet Network Protocol
9. Network: Transparent proxying, new drivers, DSA...
10. Tracepoints
11. -staging drivers
12. IO CPU affinity
13. FIEMAP
2. Various core
3. Filesystems
4. Networking
5. Security
6. Tracing/Profiling
7. Block
8. Crypto
9. WIFI
10. Architecture-specific changes
11. Drivers
1. Graphics
2. Storage
3. Network
4. Input
5. USB
6. Sound
7. V4L/DVB
8. HID
9. HWMON
10. I2C
11. Multi-Function Devices
12. MTD
13. RTC
14. WATCHDOG
15. LED
16. ACPI
17. Various
18. Other sources tracking the kernel changes

1. Prominent features (the cool stuff)

1.1. Ext4

The backwards-compatible replacement of Ext3 has been declared as stable. Bigger filesystem/file sizes, extents, delayed allocation, multiblock allocation, improved block allocation algoritms, faster fsck, online defragmentation and faster and more robust journaling are the main features of this filesystem.

A separate article has been written about Ext4: Ext4, the Fourth Extended File System

1.2. The GEM Memory Manager for GPU memory

Recommended article: A description of all the parts involved in the new graphics stack: "EXA, UXA, DRI, GEM, TTM"

Recommended articles about GEM: "Memory management for graphics processors" and "GEM v. TTM"

In the last decade graphics hardware has evolved at an astounding pace, and it's expected to improve even more in the future. Modern GPUs have a lot of processing power -more than the most powerful CPU in some specialized workloads- that traditionally has only been used by specialized applications using opengl/directx, like games and 3D design apps; the 2D desktop implementations that are commonly found in computers kept using this modern graphic hardware in the same way they used the old graphics hardware which started the "desktop revolution" in the 80-90's, ie. inefficiently. There's a lot of GPU power that don't get used unless you run a game. On the other hand, the Linux/FOSS graphic stack is far from perfect, even for the traditional graphic stack design. To start with, there're several drivers fighting to access the same resource (the graphics card): The fb-based console, the in-kernel DRM driver, the X.org userspace 2D driver...this situation leads to all class of problems and artifacts and suboptimal performance.

There has been a lot of work in the latest years to modernize the Linux graphics stack so that it's both well designed and also ready to use the full power of modern and future GPUs. In 2.6.28, Linux is adding one of the most important pieces of the stack: A memory manager for the GPU memory, called GEM ("Graphic Execution Manager"). The purpose is to have a central manager for buffer object placement, caching, mapping and synchronization. On top of GEM are being built a lot of improvementes to the graphic stack: Kernel Modesetting, DRI2, UXA (a EXA implementation based in GEM). The Linux/FOSS graphics stack will be finally unified and optimally coupled.

All this new code has been delayed for a long time, because there was a competing memory manager, called TTM, which was almost merged in the kernel in 2.6.24 or so, until the Intel people came up with the first versions of the GEM memory manager. People decided it was better than TTM, and it was considered neccesary to delay the merge to stabilize GEM and rewrite the other features to work with GEM, not TTM. Hence, this first version of GEM works only with the i915 driver, and support on the X.org side is implemented only in the version 2.5.0 of the driver. Preliminary GEM support for other drivers is already in development and will be merged in future releases.

Code: (commit)

1.3. Support for "Ultra Wide Band" (UWB), Wireless USB and UWB-IP

"Ultra Wide Band" (UWB) is a high-bandwidth, low-power, point-to-point radio technology using a wide spectrum (3.1-10.6GHz). It is optimized for in-room use (480Mbps at 2 meters, 110Mbps at 10m). It serves as the transport layer for other protocols, such as Wireless USB, WiMedia Link Protocol (Ethernet/IP over UWB) and, in the future, Bluetooth and 1394. Linux 2.6.28 adds code to implement a Ultra Wide Band stack, as well as drivers for the the USB based UWB radio controllers defined in the Wireless USB 1.0 specification (including Wireless USB host controller and an Intel WiNET controller).

UWB: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14), WLP: (commit 1, 2, 3, 4), WUSB: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)

1.4. Memory management Scalability improvements

Improvements to the page replacement algorithm

Recommended LWN article: The state of the pageout scalability patches

Systems with a lot of memory have lots (millions) of pages. When the replacement algorithm has to search candidate pages to be swapped, it has to search between all the pages, and in big systems this can take too much time. In 2.6.28, the file-backed pages (pages that belong to some file on the disk) and the anonymous pages (pages that are not part of any file, like ie. pages obtained with malloc, which need to be written to swap before being evicted) are put in two different lists, unlike previous releases, that used a single list. The algorithms can decide to look into only one of those lists without needing to look in the other. Additionally, there're pages that cannot be deleted from memory, for example because they're mlock()'ed, or because they belong to a ramfs filesystem. Those pages are put into a special third list, which won't be searched at all by the algorithms because they can not be evicted.

Code: (commit 1,2,3,4, 5, 6,7, 8, 9,10,11,12, 13,14, 15, 16, 17, 18, 19, 20, 21, 22, 23,24, 25)

Rewrite the vmap layer

Recommended LWN article: Reworking vmap()

In 2.6.28, the vmap allocator has been rewritten to use rbtrees and lazy tlb flushing, and provide a fast, scalable percpu frontend for small vmaps. Some benchmarks that exercize the vmap layer have been speeded up by 20x or more.

Code: (commit 1, 2, 3, 4, 5, 6)

1.5. Container freezer

Freezing filesystems and containers

The container freezer is a cgroup subsystem that utilizes the swsusp freezer to freeze and restart a arbitrary group of tasks determined by the user. It's immediately useful for batch job management scripts. It should also be useful in the future for implementing container checkpoint/restart. For more details on to how to use it, see the commit links.

Code: (commit 1, 2, 3, 4, 5, 67, 8)

1.6. Boot tracer

The purpose of this tracer is to helps developers to optimize boot times: it records the timings of the initcalls. Its aim is to be parsed by the scripts/bootgraph.pl tool to produce graphics about boot inefficiencies, giving a visual representation of the delays during initcalls. Users need to enable CONFIG_BOOT_TRACER, boot with the "initcall_debug" and "printk.time=1" parameters, and run "dmesg | perl scripts/bootgraph.pl > output.svg" to generate the final data.

Code: (commit 1, 2, 3, 4, 5, 6)

1.7. Disk Shock Protection

ATA/ATAPI-7 specifies the IDLE IMMEDIATE command with unload feature. Issuing this command should cause the drive to switch to idle mode and unload disk heads. This feature is being used in modern laptops in conjunction with accelerometers and appropriate software to implement a shock protection facility. The idea is to stop all I/O operations on the internal hard drive and park its heads on the ramp when critical situations are anticipated.

For each ATA device, Linux 2.6.28 adds the file /sys/block/*/device/unload_heads. Writing an integer value to this file will take the heads of the respective drive off the platter and defer all I/O operations for the specified number of milliseconds. When the timeout expires normal operation will be resumed. The maximal value accepted for a timeout is 30000 milliseconds. However, there are some hard drives that only comply with an earlier version of the ATA standard, but do support the feature nonetheless. Unfortunately, there is no safe way Linux can detect these devices, so you won't be able to write to the unload_heads attribute. If you know that your device really does support the unload feature (for instance, because the vendor of your laptop or the hard drive itself told you so), then you can tell the kernel to enable the usage of this feature for that drive by writing the special value -1 to the unload_heads attribute. See this page for information about Linux support of the hard disk active protection system as implemented in IBM/Lenovo Thinkpads.

Code: (commit), (commit), (commit)

1.8. Phonet Network Protocol

The Phone Network protocol (PhoNet) is a packet-oriented communication protocol developped by Nokia for use with its cellular modems for both IPC and RPC. With the Linux Phonet socket family, Linux host processes can receive and send messages from/to the modem, or any other external device attached to the modem; the modem takes care of routing. Phonet packets can be exchanged through various hardware connections depending on the device, such as: USB with the CDC Phonet interface, infrared, Bluetooth, a serial port. This is required for Maemo to use cellular data connectivity (if supported), it can also be used to control Nokia phones.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)

1.9. Network: Transparent proxying, new drivers, DSA...

*

Distributed Switch Architecture protocol support: Distributed Switch Architecture is a protocol for managing hardware switch chips. The switches that this driver supports are typically embedded in access points and routers. Code: (commit 1, 2, 3, 4, 5)
* Transparent proxy support
o

This feature (lost 5 years ago) enables transparent proxying support, that is, support for handling non-locally bound IPv4 TCP and UDP sockets. It adds a `TPROXY' target, which is somewhat similar to REDIRECT. It can only be used in the mangle table and is useful to redirect traffic to a transparent proxy. It does not depend on Netfilter connection tracking and NAT, unlike REDIRECT. Code: (commit 1, 2, 3, 4)
* New network drivers. This release adds a few network drivers
o

Add atl2 driver (commit)
o

Add SMSC LAN9500 USB2.0 10/100 ethernet adapter driver (commit)
o

enic: add Cisco 10G Ethernet NIC driver (commit)
o

qlge: New Qlogic 10Gb Ethernet Driver. (commit)
o

jme: JMicron Gigabit Ethernet Driver (commit)

1.10. Tracepoints

Tracing: no shortage of options Tracepoints are another mechanism for inserting static tracing points in the kernel, used by tools like LTTng (Linux Trace Toolkit). There's already a mechanism to insert such points: kernel markers, merged in Linux 2.6.24, but tracepoints are slightly different (see the LWN article). The scheduler has been instrumentalized with tracepoints, and ftrace has been ported to use them.

Code: (commit 1, 2, 3,4, 5, 6)

1.11. -staging drivers

Recommended article: Moving the -staging tree

There's a controversy in the kernel community between the people who wants to see new drivers getting merged in the main Linux tree as soon as possible, and people who thinks that before being merged they must have good quality. The -staging tree has been created to get those out-of-the-tree drivers that don't have the required level into the drivers/staging directory.

*

USB/IP: This enables pushing USB packets over IP to allow remote machines access to USB devices directly (commit), (commit), (commit)
*

Add w35und wifi driver (commit)
*

Add wlan-ng prism2 usb driver (commit)
*

At76_usb wireless driver (commit)
*

Add Alacritech slicoss network driver (commit)
*

Add echo cancelation module (commit)
*

Add et131x network driver (commit)
*

Add me4000 pci data collection driver (commit)
*

Add pcc-acpi driver (commit)
*

Add poch driver (commit)
*

Add sxg network driver (commit)
*

Add the go7007 video driver (commit)
*

Kconfig entries and Makefile infrastructure for the -staging tree (commit)

1.12. IO CPU affinity

2.6.28 add support for controlling the IO completion CPU of either all requests on a queue, or on a per-request basis. A sysfs variable (rq_affinity) is exported which, if set, migrates completions of requests to the CPU that originally submitted it. A internal bio helper (bio_set_completion_cpu()) is also added, so that queuers can ask for completion on that specific CPU. In testing, this has been show to cut the system time by as much as 20-40% on synthetic workloads where CPU affinity is desired.

Code: (commit)

1.13. FIEMAP

Recommended LWN article: SEEK_HOLE or FIEMAP?

When an application wants to know how a file is store in the disk (for example, a backup application that wants to know if a file is a sparse file and wants to avoid backing up the hole) it uses the fibmap ioctl. But this ioctl is suboptimal - the ioctl can only be asked for a block at a time, which is too expensive for big files. The FIEMAP ioctl, in the other hand, returns a list of extents.

Code: (commit 1, 2, 3, 4)

2. Various core

*

Switch select() and poll() over to high-resolution timers (commit)
* RCU:
o

rcu-classic: new algorithm for callbacks-processing (commit)
o

RCU-based detection of stalled CPUs (commit)
o

debug: detect stalled grace periods [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=67182ae1c42206e516f7efb292b745e826497b24
* PCI
o

Add ability to mmap legacy_io on some platforms (commit)
o

Allow quirks to be compiled out (commit)
o

Support PCIe ARI capability (commit)
* KVM
o

VT-d: Changes to support KVM (commit)
o

PCI device Assignment with VT-d (commit)
o

ia64: enable virtio driver for ia64 in Kconfig (commit), add directed mmio range support for kvm guests (commit), add intel iommu support for guests. (commit), add support for Tukwila processors (commit)
o

ppc: enable KVM_TRACE building for powerpc (commit), adds trace points for ppc tlb activity (commit)trace powerpc instruction emulation (commit), guest breakpoint support (commit)
*

AMD IOMMU: add MSI interrupt support (commit), implement lazy IO/TLB flushing (commit)
*

intel-iommu: IA64 support (commit)
*

iommu: remove fullflush and nofullflush in IOMMU generic option (commit)
*

autofs4: add miscellaneous device for ioctls (commit), (commit)
*

MODULE_ALIAS() for DMI match tables. (commit)
*

Configure out AIO support (commit)
*

Configure out file locking features (commit)
*

coredump_filter: add hugepage dumping (commit)
*

add CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS (commit)
*

driver core: basic infrastructure for per-module dynamic debug messages (commit)
*

fuse: implement nonseekable open (commit)
*

message queues: increase range limits (commit)
*

raid: make RAID autodetect default a KConfig option (commit)

3. Filesystems

* EXT4
o

Rename ext4dev to ext4 (commit)
o

Remove old legacy block allocator (commit)
o

Add an option to control error handling on file data (commit)
o

Hook the ext3 migration interface to the EXT4_IOC_SETFLAGS ioctl (commit)
o

Remove automatic enabling of the HUGE_FILE feature flag (commit)
o

Switch to non delalloc mode when we are low on free blocks count. (commit)
* OCFS2
o

Switch over to JBD2 (commit)
o

POSIX file locks support (commit)
o

Add extended attribute support (commit 1, 2, 3, 4, 5)
o

Add the 'inode64' mount option. (commit)
o

Limit inode allocation to 32bits. (commit)
* UBIFS
o

Add bulk-read facility (commit)
o

Add no_chk_data_crc mount option (commit)
* GFS2
o

Add UUID to GFS2 sb (commit)
o

Support for I/O barriers (commit)
*

EXT3: add an option to control error handling on file data (commit)
*

CIFS: Add nodfs mount option (commit)
*

NFS: authenticated deep mounting (commit)

4. Networking

* Netfilter
o

Enable netfilter in netns (commit)
o

xt_recent: IPv6 support (commit)
*

tcp: Port redirection support for TCP (commit)
*

gre: Add Transparent Ethernet Bridging (commit)
*

ipv4: Implement IP_TRANSPARENT socket option (commit)
*

pkt_sched: Add multiqueue scheduler support (commit)
*

Network device name ifalias support (commit)
*

SUNRPC: Support IPv6 when registering kernel RPC services (commit)
*

9p: RDMA Transport Support for 9P (commit)
* IPVS
o

Add CONFIG_IP_VS_IPV6 option for IPv6 support (commit)
o

Change IPVS data structures to support IPv6 addresses (commit)
* DCCP
o

Policy-based packet dequeueing infrastructure (commit)
o

API to query the current TX/RX CCID (commit)
o

Deprecate Ack Ratio sysctl (commit)
o

Port redirection support for DCCP (commit)
o

Query supported CCIDs (commit)
o

Set per-connection CCIDs via socket options (commit)

5. Security

* Selinux
o

Add support for a dummy policy (commit)
o

Add boundary support and thread context assignment (commit)
* Netlabel
o

Add functionality to set the security attributes of a packet (commit)
o

Set socket NetLabel based on connection endpoint (commit)
o

Cache NetLabel secattrs in the socket's security struct (commit)
o

Changes to the NetLabel security attributes to allow LSMs to pass full contexts (commit)
o

cipso: Add support for native local labeling and fixup mapping names (commit)
o

Add network address selectors to the NetLabel/LSM domain mapping (commit)
o

Add configuration support for local labeling (commit)
*

smack: limit privilege by label (commit)

6. Tracing/Profiling

*

Dynamically enable readprofile at runtime (commit)
*

Unified trace buffer (commit), (commit), (commit)
* Ftrace:
o

Add stack tracer. It examines at each function call the size of the stack. If the stack use is greater than the previous max it is recorded. The output is available in /debug/tracing/stack_max_size and /debug/tracing/stack_trace (commit)
o

Add nop tracer. (commit), (commit)
* OProfile
o

Add IBS code macros (commit)
o

Add support for AMD Family 11h (commit)
o

Enable IBS for AMD CPUs (commit)
o

Implement Intel architectural perfmon support (commit)

7. Block

Recommended LWN articles: Block layer: solid-state storage, timeouts, affinity, and more, and Block layer discard requests

*

Support discard requests on SSD devices to improve wear-leveling (commit 1, 2, 3, 4, 5, 6, 7)
*

Add queue flag for SSD/non-rotational devices (commit)
*

Handling online resizing of block drivers (commit), (commit)
*

Extended device numbers (litfs the 16 minors per device on sd to 64, Xen blkfront supports more than 16 xvd)(commit 1, 2,3, 4, 5, 6)
*

deadline-iosched: allow non-sequential batching (commit)
*

Add fault injection mechanism for faking request timeouts (commit)
*

Drop virtual merging accounting (commit), (commit)

8. Crypto

*

RNG interface and implementation (commit)
*

cryptomgr - Add test infrastructure (commit)
*

Api - Use test infrastructure (commit)
*

crc32c - Use Intel CRC32 instruction (commit)
*

cryptomgr - Test ciphers using ECB (commit)

9. WIFI

*

Add the 'minstrel' rate control algorithm (commit)
*

Mesh portal functionality support (commit)
*

cfg80211: Add new wireless regulatory infrastructure (commit)
*

Add multi-rate retry support (commit)
*

Add BSS configuration options for AP mode (commit)
*

mac80211_hwsim: Add minimal IEEE 802.11n support (commit)

10. Architecture-specific changes

* x86
o

Context switch support using xsave/xrstor (instead of traditional fxsave/fxrstor) (commit 1), 2, 3, 4, 5, 6, 7,8, 9)
o

x2APIC support: A extension of xAPIC architecture to support 32-bit addressability of processors and associated enhancements on interrupt delivery etc., introduced in the i7 processors (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17,18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
o

Default to reboot via ACPI (commit)
o

Add built-in kernel command line for x86 (commit)
o

Early printk via EHCI debug port (commit)
o

Check for and defend against BIOS memory corruption (commit), (commit)
o

Remove irqbalance in kernel for 32 bit (commit)
o

Tracehook support (commit), (commit)
o

ptrace interface to Branch Trace Store (commit)
o

OProfile AMD IBS ("Instruction-Based Sampling"), introduced by AMD Family10h processors (AMD Opteron Quad-Core processor “Barcelona”) (commit), (commit), (commit)
o

UV: Add UV EFI table entry (commit), add UV bios call infrastructure (commit), add UV partition call (commit), add sysfs entries for UV (commit)
o

Printout msr (commit)
o

AMD microcode patch loading support (commit)
o

Configuration options to compile out x86 CPU support code (commit)
o

Add detection of AMD family 0x11 northbridges (commit)
o

Basic HPET_MSI setup code (commit)
o

L3 cache index disable on AMD CPUs if there're too many MCEs (commit)
o

Add northbridge pci ids for fam 0x11 processors (commit)
* ARM
o

Added Mitac Mio A701 smartphone support. (commit)
o

Add basic support for the MobilePro 900/c mini-laptop (commit)
o

Improved futex support (commit)
o

Allow configuring user:kernel split via Kconfig (commit)
o

Improve non-executable support (commit)
o

make ZONE_DMA optional (commit)
o

ARMv7 Oprofile support (commit)
o

Finish ARM sparsemem support (commit), allow LH7A40x to use sparsemem (commit), deprecate discontigmem on ARM (commit), enable sparsemem on clps7500 and RiscPC (commit), switch SA1100 to use sparsemem (commit)
o

OMAP: Add support for McBSP devices 3 - 5 on 34xx (commit), add support for OMAP2430 in McBSP (commit), allocate McBSP devices dynamically (commit), powerdomain: Add OMAP3 powerdomains (commit)
o

OMAP2: Add pinmux support for omap34xx (commit), clockdomain: Add base OMAP2/3 clockdomain code (commit), powerdomain: Add base OMAP2/3 powerdomain code (commit), powerdomain: Add OMAP2/3 common powerdomains (commit), powerdomain: Add OMAP2 powerdomains (commit)
o

OMAP3: Add basic board support for OMAP LDP (commit), add minimal Beagle board support (commit), add minimal omap3430 support (commit), add support for the Gumstix Overo board (rev 3) (commit)
o

Orion: Add 88F6183 (Orion-1-90) support (commit), add Buffalo Linkstation Mini power-off method (commit), add Buffalo Linkstation Mini support (commit), add Buffalo Terastation Pro II/Live support (commit), add LaCie Ethernet Disk mini V2 support (commit), add RD88F6183AP-GE support (commit)
o

pxa: add CM-X255 support (commit), add CM-X255 pcmcia support (commit), cm-x255: add NOR and NAND flash support (commit), add preliminary CPUFREQ support for PXA3xx (commit), add support for USB OHCI (commit), (commit)
o

Add support for the Arcom/Eurotech Viper SBC (commit 1, 2, 3, 4)
o

AT91: PWM controller initialization (commit), eeproms on sam9260ek, sam9263ek (commit), PWM LEDs on AT91SAM9263-EK (commit), Touchscreen on AT91SAM9RL (commit), suspend-to-RAM disables main oscillator (commit)
o

Trizeps4 PCMCIA support (commit), SOM update (commit)
o

PalmLD: PCMCIA driver (commit)
o

AFEB9260: board support (commit)
o

Add support for CM-X300 board (commit)
o

MACB ethernet support for AFEB9260 (commit)
o

Add the RGB555 wiring for the atmel LCD (commit)
o

Very basic Palm Zire 72 support (commit)
o

wm97xx generic battery driver (commit)
o

Kirkwood: add support for newer SoC models (commit)
o

MX2: Add DMA support for mx2 and (eventually) mx1 (commit)
o

tosa: add support for bl/lcd driver (commit)
o

Remove old LED support for Trizeps4 SOM (commit)
* PPC
o

Add support for dynamic reconfiguration memory in kexec/kdump kernels (commit)
o

Make the 64-bit kernel as a position-independent executable (commit)
o

Support for relocatable kdump kernel (commit)
o

Use kernel generic math-emu code (commit)
o

Add PowerPC 40x simple platform support (commit), add support for Netstal HCU4 board (commit)
o

Add PowerPC 44x simple platform support (commit), add AMCC Arches eval board support (commit), add explicit support for AMCC Glacier (commit), add explicit Yosemite support (commit), add PowerPC 4xx GPIO driver (commit)
o

5121: Add PCI support. (commit)
o

83xx: add DS1374 RTC support for the MPC837xE-MDS boards (commit), add NAND support for the MPC8360E-RDK boards (commit)
o

Add support for mpc8247 based board MGCOGE from keymile. (commit)
o

Add support for the MPC852 based mgsuvd board from keymile. (commit)
o

Board support for GE Fanuc SBC610 (commit)
o

FPGA support for GE Fanuc SBC610 (commit)
o

gpio driver for mpc8349/8572/8610 and compatible (commit)
o

Add legacy PCI access via sysfs (commit)
* SH
o

Add kprobes support (commit)
o

Add support for memory hot-remove (commit)
o

Add latencytop support (commit)
o

ftrace support. (commit)
o

ioremap_prot support (commit)
o

Enable HAVE_ARCH_TRACEHOOK (commit 1), 2, 3)
o

generic clockevent broadcast support. (commit)
o

Add Renesas EDOSK7760 board support. (commit)
o

Add sh7203 (commit), sh7720 (commit), sh7722 (commit), sh7723 (commit) pinmux code.
o

Add support FLCTL for ap325rxa board (commit)
o

SH-5 clk fwk support. (commit)
o

Kill off long-dead HD64465 cchip support. (commit)
* SPARC
o

Add checkstack support (commit)
o

Add GPIO layer support. (commit)
o

Remove bare sbus char bpp driver, obsoleted by parport_sunbpp (commit)
o

Kill SBUS DVMA layer. (commit)
o

Kill sbus mostek RTC driver. (commit)
o

Kill videopix SBUS driver. (commit)
o

remove CONFIG_SUN4 (commit)
o

Sparc32: use RTC subsystem (commit)
o sparc64:
+

Add JBUS NUMA detection. (commit)
+

Add JBUS UltraSPARC-IIIi support to memory controller driver. (commit)
+

Use generic BQ4802 RTC driver. (commit)
+

Use generic CMOS driver. (commit)
+

Use generic starfire RTC driver. (commit)
+

Use generic sun4v RTC driver. (commit)
* AVR32
o

Add kernel support for oprofile callgraphs (commit)
o

Added mem kernel command line option support (commit)
o

Add MIMC200 board support (commit)
o

Add support for EarthLCD Favr-32 board (commit)
o

Add support for EVKLCD10X addon boards (commit)
* Blackfin
o

Add supporting for kgdb (commit)
o

Add supporting for double fault debug handling (commit)
o

Add BF54x / BF52x Rotary Input device driver platform resource to board file (commit)
o

Add new board support for ADZS-BF526-EZ-BRD (commit)
* MIPS
o

Ptrace support for HARDWARE_WATCHPOINTS (commit)
o

Rewrite spinlocks to ticket locks. (commit)
o

Add support for NXP PNX833x (STB222/5) into linux kernel (commit)
o

DS1286: New RTC driver (commit)
o

PMC MSP71XX gpio drivers (commit)
o

Probe watch registers and report configuration. (commit)
o

RBTX4939: Add smc91x support (commit)
o

TXx9: Add mtd support (commit), add RBTX4939 board support (commit), add TX4939 ATA support (v2) (commit), add TX4939 SoC support (commit), IOC LED support (commit)
* S390
o

Add ioctl support for EMC Symmetrix Subsystem Control I/O (commit)
o

dcssblk: add >2G DCSSs support and stacked contiguous DCSSs support. (commit)
o

No more 4kb stacks. (commit)
o

ptrace changes (commit)
o

qdio enhanced SIGA (iqdio) support. (commit)
* IA64
o

Support paravirtualization and Xen guest (commit)
o

Add Variable Page Size and IA64 Support in Intel IOMMU (commit)
* Xtensa
o

Add support for Diamond 232L - Rev B processor variant (commit)
o

Add support for the Sonic Ethernet device for the XT2000 board. (commit)
* XEN
o

Implement CPU hotplugging (commit)
o

Add debugfs support (commit)
*

parisc: Add rtc platform driver (commit)
*

h8300: GENERIC_BUG support (commit)
*

M68K: Remove the broken Hades support (commit)

11. Drivers

11.1. Graphics

*

drm: Rework vblank-wait handling to allow interrupt reduction (commit)
*

fb driver for Graphics chips of VIA UniChrome (Pro) Family (CLE266,PM800/CN400,P4M800CE/P4M800Pro/CN700/VN800,CX700/VX700,P4M890) and Chrome9 Family (K8M890,CN896/P4M900,VX800) (commit), (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
*

Add new framebuffer driver for Fujitsu MB862xx GDCs (commit)
*

Add new TMIO framebuffer driver (commit)
*

i915: Add support for MSI and interrupt mitigation. (commit), disable MSI on GM965 (errata says it doesn't work) (commit)
*

intelfb: support 945GME (as used in ASUS Eee 901) (commit)
*

radeon: add support for RS740 IGP chipsets. (commit), add RS400 family support. (commit)
*

radeonfb: accelerate imageblit and other improvements (commit)
*

matroxfb: support G200eV chip (commit)
*

Suspend support for AMD K7 GART driver (commit)

11.2. Storage

* SATA
o

implement slave_link (commit)
o

Set queue SSD flag for SSD devices (commit)
o

pata_bf54x: Add proper PM operation (commit)
o

pata_ninja32: suspend/resume support (commit)
o

ata_piix: IDE Mode SATA patch for Intel Ibex Peak DeviceIDs (commit)
o

ahci: Add support for Promise PDC42819 (commit)
* IDE
o

Add generic ATA/ATAPI disk driver (commit)
o

Add proper PCI PM support (commit)
o

ide: Add tx4938ide driver (v2) (commit), (commit)
o

delkin_cb: add PM support (commit)
o

TXx9: Add TX4938 ATA support (v3) (commit)
o

Remove broken hpt34x driver (commit)
o

Remove CONFIG_BLK_DEV_IDE (commit)
o

Remove CONFIG_IDEDISK_MULTI_MODE (commit)
* SCSI
o

lpfc: Add MSI-X support (commit), add new FCOE hardware support (commit), add support for PCI-EEH permanent disabling (commit), update driver for new SLI-3 features (commit), add statistical reporting control and additional fc vendor events (commit), add sysfs control of target queue depth handling (commit)
o

qla2xxx: Add Flash Layout Table support. (commit), add NPIV-Config Table support. (commit)

11.3. Network

*

libertas_tf: New driver supporting "Marvell 8xxx Libertas WLAN driver support with thin firmware" and "Marvell Libertas 8388 USB 802.11b/g cards with thin firmware" (commit 1, 2, 3, 4, 5)
*

ath5k: add Mesh Point support (commit), add support for AR2417 v2 (commit), implement multi-rate retry support (commit)
*

ath9k: Add LED support (commit), add RF kill support (commit), allow AP mode to be enabled (commit)
*

r8169: add a new 8168c flavor (commit), add a new 8168cp flavor (commit). additional 8101 and 8102 support (commit), preliminary 8168d support (commit), support additional 8168cp chipset (commit)
*

e1000e: add support for 82567LM-3 and 82567LF-3 (ICH10D) parts (commit), add support for new 82574L part (commit), add support for the 82567LM-4 device (commit)
*

sfc: Enable TSO for 802.1q VLAN devices (commit), export boot configuration in EEPROM through ethtool (commit)
*

rt2x00: Implement HW encryption (commit), implement HW encryption (rt61pci) (commit), implement HW encryption (rt73usb) (commit)
*

iwlwifi: Added support for 3 antennas (commit), enable packet injection for iwlagn (commit)
*

rtl8187: add device ID 0bda:8198 (commit), add USB ID for Belkin F5D7050 with RTL8187B chip (commit)
*

mv643xx_eth: transmit multiqueue support (commit)
*

bonding: add more ethtool support (commit)
*

myri10ge: add multiqueue TX (commit)
*

cxgb3: Add 1G fiber support (commit), support for Aeluros 2005 PHY (commit)
*

mlx4: Add Ethernet PCI device IDs (commit), ethernet MAC/VLAN management (commit), multiple port type support (commit), add driver for Mellanox ConnectX 10GbE NIC (commit)
*

orinoco: Add WE-18 ioctls for WPA (commit)
*

p54: 802.11a 5GHz phy support (commit), add lots of useful rx/tx statistics (commit), support LM87 firmwares in p54usb (commit)
*

RDMA/nes: Add support for 4-port 1G HP blade card (commit)
*

da903x: add regulator support for DA9030/DA9034 (commit)
*

ibm_newemac: Add support for GPCS, SGMII and M88E1112 PHY (commit)
*

netxen: enable msi-x for quad-gig boards (commit)
*

libertas: Improvements on automatic tx power control via SIOCSIWTXPOW. (commit)
*

cs89x0: add support for i.MX31ADS ARM board. (commit)
*

Add net poll support for atl2 driver (commit)

11.4. Input

*

Add driver for USB VoIP phones with CM109 chipset (commit)
*

ati_remote2 - add autosuspend support (commit), add loadable keymap support (commit)
*

bf54x-keys - add power management support (commit)
*

psmouse - add OLPC touchpad driver (commit), add support for Elantech touchpads (commit)
*

wistron - add support for Fujitsu-Siemens Amilo Pro v3505 (commit)

11.5. USB

*

Added driver for a Delcom USB 7-segment LED Display (commit)
*

Add Freescale QE/CPM USB peripheral controller driver (commit)
*

Add USB test and measurement class driver (commit)
*

Add ZTE MF626 USB GSM modem entry (commit)
*

usb gadget: cdc obex glue (commit)
*

ohci: add support for tmio-ohci cell (commit)
*

option: add Ericsson F3507g and Dell 5530 (commit), add Pantech cards (commit)
*

vstusb.c : new driver for spectrometers used by Vernier Software & Technology, Inc. (commit)

11.6. Sound

*

Add USB Tascam US122L driver (commit)
*

Add jack status reporting API (commit)
*

ASoC: Add WM8750 SPI support (commit), add WM8971 CODEC driver (commit), AD1980 audio codec driver (commit), add mpc5200-psc I2S driver (commit), add support for osk5912 (commit), add Texas Instruments TLV320AIC26 codec driver (commit),add TLV320AIC23 codec driver (commit), add WM8510 SPI support (commit), add WM8580 CODEC driver (commit), add WM8753 SPI support (commit), add WM8900 CODEC driver (commit), add WM8903 CODEC driver (commit), AD73311 audio codec driver (commit), add asoc ad73311 driver supporting in Blackfin boards (commit), add I2S DAI support for AD73311 blackfin arch (commit), AC97 Blackfin CPU DAI driver (commit), add Blackfin arch ASoC Kconfig and Makefile (commit), blackfin board driver for AD1980/1 audio codec (commit), blackfin board driver for SSM2602 sound chip (commit), blackfin DMA Driver for AC97 sound chip (commit), blackfin DMA Driver for I2S sound chip (commit), blackfin I2S CPU DAI driver (commit), include Blackfin architecture support in build (commit), blackfin SPORT peripheral interface driver (commit), SSM2602 audio codec driver (commit)
*

hda: Add AD1882A codec support (commit), add ALC1200 support (commit), add ALC887 support (commit), add another HP model for AD1884A (commit), added 92HD81/83 support (commit), add HDA vendor ID for Wolfson Microelectronics (commit), add model for Toshiba L305 laptop (commit), add more ALC662/663 codec support (commit), add more board-specific information for Realtek ALC662 rev1 (commit), add PCI subsystem ID for MacBookPro4,1 (commit), add support for ECS/PC Chips boards with Sigmatel codecs (commit), add support of Acer Aspire One (commit), add support of ALC272 (commit), add support of HP DC7600 (commit), add support of Quanta FL1 (commit), add support of Toshiba RX1 (commit), add support of Toshiba S06 (commit), appletv support (commit), digital pc-beep support hd-audio codecs (commit), map ALC662 model for Foxconn 45CMX/45GMX/45CMX-K (commit), map ALC662 model for Gigabyte 945GCM-S2L (commit), support more ALC888 devices (commit), add VT1708S and VT1702 support (commit), Second S/PDIF (HDMI) support (commit), NVIDIA MCP78/7A HDMI audio (commit)
*

snd-usb-audio: support for Edirol UA-4FX device (commit), add BOSS GT-10 support (commit), add support for E-Mu Tracker Pre (commit)
*

ac97 - vt1618 7.1 Audio Support (commit)
*

ice1724 - Support for Terrasoniq/MUSONIK TS22 PCI card (commit)
*

snd-ad1816a: add different TerraTec EWS64 S model (commit)
*

virtuoso: add Xonar HDAV1.3 support (commit)
*

cs46xx: Add PCI IDs for TerraTec and Hercules cards (commit)
*

oss: remove driver for SGI HAL2 audio device (commit)

11.7. V4L/DVB

*

initial driver for af9013 demodulator (commit)
*

initial driver for af9015 chipset (commit)
*

radio-mr800: Add driver for AverMedia MR 800 USB FM radio devices (commit)
*

Alternative version of Terratec Cinergy T2 driver (commit)
*

tuner: add FMD1216MEX tuner (commit)
*

bttv: Add support for Encore ENLTV2-FM (commit)
*

v4l: add AC-3 audio support to the MPEG Encoding API (commit)
*

Add support for DViCO FusionHDTV DVB-T Dual Express (commit)
*

cxusb: add support for DViCO FusionHDTV DVB-T Dual Digital 4 (rev 2) (commit)
*

Add support for Micron MT9M111 camera. (commit)
*

Initial support for AME DTV-5100 USB2.0 DVB-T (commit)
*

Add DVB support for the Leadtek Winfast PxDVR3200 H (commit)
*

budget: Support Activy DVB-T with TDHD1 tuner (commit)
*

em28xx-cards: Add vendor/product id for EM2820_BOARD_PROLINK_PLAYTV_USB2 (commit)
*

af9015: Add USB ID for AVerMedia A309 (commit)
*

cx24116: Adding DVB-S2 demodulator support (commit)
*

cx88: Add support for the Hauppauge HVR4000 and HVR4000-LITE (S2) boards (commit)
*

Added support for TeVii S460 DVB-S/S2 card (commit)
*

Added support for DVBWorld 2104 and TeVii S650 USB DVB-S2 cards (commit)
*

Add support for SDMC DM1105 PCI chip (commit)
*

Add support for DvbWorld 2004 DVB-S2 PCI adapter (commit)
*

Add support for Silicon Laboratories SI2109/2110 demodulators. (commit)
*

Add support for USB card modification with SI2109/2110 demodulator. (commit)
*

Added support for Omicom SS4 DVB-S/S2 card (commit)
*

Added support for TBS 8920 DVB-S/S2 card (commit)
*

Add support for ST STV0288 demodulator and cards with it. (commit)
*

saa7134: add support for the triple Asus Tiger 3in1 (commit)
*

Add support for the Gigabyte R8000-HT USB DVB-T adapter. (commit)
*

Add support for new i2c API provided in firmware version 1.20 (commit)
*

Add support YUAN High-Tech STK7700D (1164:1f08) (commit)
*

Add support for Asus My Cinema U3000 Hybrid (commit)
*

Add support for Pinnacle PCTV HD Pro 801e (ATSC only) (commit), (commit)
*

Add support for Non-Pro version of Pinnacle PCTV HD USB Stick (commit)
*

saa7134: Add support for Encore version 5.3 board (commit), add support for Avermedia PCI pure analog (M135A) (commit), add support for Real Audio 220 (commit)
*

Add support for Prolink Pixelview Global Extreme (commit)
*

Add ADS Tech Instant HDTV PCI support (commit)
*

Pinnacle Hybrid PCTV Pro (pctv310c) DVB-T support (commit)
*

gspca: New subdriver 'finepix' added. (commit), (commit), sonixj webcam 0c45:60fe added. (commit), PAC 207 webcam 093a:2476 added. (commit), sonixj webcam 0458:702e added. (commit)
*

uvcvideo: Support two new Bison Electronics webcams. (commit), add support for Advent 4211 integrated webcam (commit), add support for a Bison Electronics webcam found in the Fujitsu Amilo SI2636. (commit)
*

anysee: support for Anysee E30 Combo Plus (commit)
*

Add support for DvbWorld USB cards with STV0288 demodulator. (commit)
*

Added support for Prof 7300 DVB-S/S2 cards (commit)
*

tuner-3036: remove driver (commit)

11.8. HID

*

Generate aliases for hid device modules to support autoloading (commit), (commit)
*

Add support for another Gyration remote control (commit)
*

Add support for Bright ABNT2 brazilian device (commit)
*

Add support for Sony Vaio VGX-TP1E (commit)
*

Add support for Super Dual Box Pro USB PS2/PS2 adapter (commit)
*

Autocentering support for Logitech MOMO Racing Wheel (commit)
*

Remove hid-ff (commit)

11.9. HWMON

*

Add Ultra45 workstation hwmon driver. (commit)
*

applesmc: add support for iMac 5 (commit), iMac 8 (commit), Macbook 5 (commit), Macbook Air (commit), Macbook Pro 3 (commit), Macbook Pro 4 (commit), Macbook Pro 5 (commit)
*

lm90: Support MAX6646, MAX6647 and MAX6649 (commit)
*

w83791d: add manual PWM support (commit), add pwm_enable support (commit), add support for thermal cruise mode (commit)
*

add driver for the accelerometers ST lis3lv02dx, found in particular in the HP laptops (commit)

11.10. I2C

*

i2c-i801: Add support for Intel Ibex Peak (commit)
*

Renesas Highlander FPGA SMBus support (commit)
*

i2c-viapro: Add VX800/VX820 support (commit)
*

i7300_idle driver v1.55 (commit)

11.11. Multi-Function Devices

*

Core support for the WM8400 AudioPlus HiFi CODEC and PMU (commit)
*

Add WM8350 support (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit),(commit)
*

Add base support for Dialog DA9030/DA9034 PMICs (commit)
*

Add OHCI cell to tc6393xb (commit), (commit)
*

rtc-twl4030 driver (commit)
*

TWL4030 driver (commit), (commit)

11.12. MTD

*

Add Macronix CFI V1.0 TopBottom detection (commit)
*

Dataflash OTP support (commit)
*

m25p80.c extended jedec support (commit)
* NAND:
o

Driver extension to support NAND on TQM85xx modules (commit)
o

Freescale i.MX2 NAND driver (commit)
o

GPIO NAND flash driver (commit)
o

nand_ecc.c: adding support for 512 byte ecc (commit)
o

sh_flctl: add support for Renesas SuperH FLCTL (commit)
* OneNAND:
o

Add defines for HF and sync write (commit)
o

Add OMAP2 / OMAP3 OneNAND driver (commit)

11.13. RTC

*

Add device driver for Dallas DS3234 SPI RTC chip (commit)
*

Add Starfire platform RTC driver. (commit)
*

Add Sun4V hypervisor RTC driver. (commit)
*

Add TI BQ4802 RTC driver. (commit)
*

Allow RTC_DRV_CMOS to be used on SPARC. (commit)
*

M48T35: new RTC driver (commit)
*

rtc-m48t59: add support for M48T02 and M48T59 chips (commit)
*

rtc-m41t80.c: add support for the ST M41T65 RTC (commit)
*

rtc-rs5c372: add support for Ricoh R2025S/D RTC (commit)
*

Delete old and now unused DS1286 driver. (commit)
*

Delete old and now unused M48T35 RTC driver for SGI IP27. (commit)

11.14. WATCHDOG

*

Add AT91SAM9X watchdog (commit)
*

Add driver for winbond w83697ug/uf watchdog feature (commit)
*

Add watchdog driver IT8716 IT8726 IT8712J/K (commit)
*

Orion: add hardware watchdog support (commit)

11.15. LED

*

Add backlight LED trigger (commit)
*

Add driver for HP harddisk protection LEDs (commit)
*

Add driver for Sunfire UltraSPARC server LEDs. (commit)
*

da903x: Add support for LEDs found on DA9030/DA9034 (commit)
*

Remove uneeded leds-cm-x270 driver (commit)

11.16. ACPI

*

dock: add bay and battery hotplug support, delete bay driver (commit 1, 2, 3)
*

acer-wmi: Add rfkill support for wireless and bluetooth (commit)
*

Add the support for _TTS object (commit)
*

Validation for predefined ACPI methods/objects (commit)
*

Add Intel ACPI IGD OpRegion support (commit)

11.17. Various

* MMC
o

sdio: high-speed support (commit)
o

s3cmci: cpufreq support (commit)
o

atmel-mci: Add experimental DMA support (commit), platform code for supporting multiple mmc slots (commit), support multiple mmc slots (commit)
* serial
o

Allow 8250 to be used on sparc (commit), add more OxSemi devices (commit), add support for Oxford Semiconductor Devices (commit)
o

sh-sci: Add support SCIF of SH7723 (commit)
o

coldfire: scheduled SERIAL_COLDFIRE driver removal (commit)
* lcd
o

Add SPI-based LCD and backlight driver for SHARP corgi/spitz (commit)
o

Add support for Toppoly TDO24M series LCD panels (commit)
* backlight
o

Add driver for Tabletkiosk Sahara TouchIT-213 Tablet PC (commit)
o

Add support for Sharp SL-6000 LCD and backlight drivers (commit)
o

da903x: Add backlight driver for DA9030/DA9034 (commit)
* W1
o

New driver. DS2431 chip (commit)
o

Be able to manually add and remove slaves (commit)
o

Enable hardware strong pullup (commit)
*

CPUFREQ: Add idle microaccounting in ondemand governor (commit)
*

regulator: Add WM8350 regulator support (commit), add WM8400 regulator support (commit)
*

power_supply: Support for Texas Instruments BQ27200 battery managers (commit)
*

pc8736x_gpio: add support for PC87365 chips (commit)
*

panasonic-laptop: add Panasonic Let's Note laptop extras driver v0.94 (commit)
*

asus-laptop:
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: linux kernel 2.6.29 2009-03-23 23:30 UTC
Author: fei    Posted: 2009-03-24 08:51    Length: 64,633 byte(s)
[Original] [Print] [Top]
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.bz2
Summary: Linux 2.6.29 adds kernel based graphic mode setting, WiMAX support, Access Point support in the wifi stack, the inclusion of the btrfs and squashfs filesystems, ecryptfs filename encryption, ext4 no journaling mode, ocfs2 metadata checksums, a more scalable RCU implementation, filesystem freeze support, swap management in the memory controller, many new drivers and many other improvements.

1. Prominent features (the cool stuff)
1. Kernel Modesetting
2. Btrfs
3. Squashfs
4. Support of 4096 CPUs
5. "Tree RCU": scalable classic RCU
6. WiMAX
7. Wireless Access Point mode support
8. eCryptfs filename encryption
9. Filesystem freeze
10. Memory controller swap management and other improvements
11. Ext4 no journal mode
12. OCFS2 metadata checksums
13. Staging drivers
14. Tuz replaces Tux for this release
2. Various core changes
3. Wi-Fi
4. Security
5. Networking
6. Tracing
7. Filesystems
8. Crypto
9. DM/MD
10. Virtualization
11. Architecture-specific changes
12. Drivers
1. Storage
2. Graphics
3. Network
4. Input
5. Sound
6. V4L/DVB
7. USB
8. HWMON
9. Watchdog
10. RTC
11. HID
12. MTD
13. MFD
14. Power
15. Serial
16. Various
13. Other sources about 2.6.29 kernel

Prominent features (the cool stuff)
Kernel Modesetting

When we talk about "mode setting", we mean setting up things like the screen resolution and depth mode, in other words, configuring whatever it's neccesary in the graphics card to get it ready to display things on the screen. This may look easy to implement, but the graphics people say it's harder than it seems to design and implement right (multihead setups, hotplug, etc), which is why it has taken so much time. To start with, mode setting implies allocating memory from the graphics card, which means that before doing modesetting it was necessary to have the GEM memory manager ready and merged in the main tree, which did not happen until the previous release, 2.6.28.

Doing modesetting right is much harder if you consider how the typical Linux graphic setups works today. There are several drivers sharing the same piece of hardware (your graphics card): the kernel VGA driver, the kernel framebuffer drivers, the kernel DRM drivers, the userspace X drivers, the userspace DRI drivers, and other userspace drivers (e.g. svgalib). This is a very bad idea. For example, the X.org driver is a full implementation of all what is needed to make your graphics card work in 2D, and when you start up X.org all is fine. But when you switch from X.org to a VT console (using Ctrl+Alt+F1), the X.org driver has to stop handling the graphics card, because the control needs to be passed to another driver: the fb console driver. So the X.org driver saves the current state of the display, the graphics card is reseted and then it is handled to the fb driver, which has to reinitialize completely the card again (that's why there's a noticeable pause in the switch), even if the resolution in X and the console is the same. When you switch back to X.org, the card needs to be reconfigured again. This is a hairy, bug-prone mess, and it's difficult to make it working right in some cases; for example resuming of suspended/hibernated systems is more difficult with this design because the X.org driver lives in userspace and suspend/hibernation is (must be) transparent for him, so it is not aware that it needs to reset the hardware before continuing drawing things after resuming, needing a userspace/firmware helper that some times may not work correctly (black screen, hanged system).

Enter modesetting, and those problems go away. Modesetting centralizes the mode setting code in the kernel drivers. While this may look like it's a lot of code for a kernel, it's actually the contrary: there's a single piece of code in charge of the modesetting, which means that the whole graphic stack gets smaller. And because there's only one implementation, and there's more code sharing, the quality and robustness is increased. Besides, mode setting is a task that really belongs to the kernel drivers (it's how every other operating systems, including some proprietary Unixes, have always done it). But all that is just a small part of the benefits: Suspend and resume are more likely to work because all the work will be done by the kernel driver just like it is done with any other hardware device. X.org doesn't need anymore the root privileges (they were needed before only because the old drivers needed direct hardware access to implement the drivers), making possible to run X.org as non-root, which is a huge security improvement, and moves X.org back to what it is supposed to do: drawing things, and not messing with hardware. It is also possible to print kernel oopses (or even a Windows-like BSOD ) to the screen if the kernel crashes while running under X. And if all this wasn't enough, you also get a FB console that runs on top of modesetting and GEM, making the old FB drivers completely obsolete while preserving their functionality at the same time. And with modesetting it isn't needed to reset the hardware when switching from X.org to a VT, and when switching, if the resolution is the same, there's no need to change anything, making possible to do flicker-free graphical boots and fast user switching.

However, trying modesetting in this release is not easy. In the kernel side, only the Intel driver is getting modesetting support in this release (support for other drivers is being worked on and will be merged in future releases). In the X.org side, it's even more difficult. Because when the kernel modesetting support is enabled, it is /! REQUIRED /! that the X.org driver also has modesetting support. If you enable kernel modesetting and you don't have a modesetting-enabled driver, X.org will NOT be able to work in any way and it even may crash your machine. There's no way to workaround this, except disabling kernel modesetting (running a modesetting enabled X.org driver in a modesetting disabled kernel is allowed). Right now, only the Intel driver seems to have a stable release with modesetting support, alpha support is being worked on for other drivers.

Code: Commit (commit), (commit)
Btrfs

Btrfs is a new filesystem developed from scratch following the design principles of filesystems like ZFS, WAFL, etc. It was created by Chris Mason, an Oracle engineer who worked several years in Reiserfs v3. It is expected to become the replacement of Ext filesystems as the most used Linux filesystems. More information about btrfs can be found in the btrfs wiki page

Btrfs is under HEAVY development, which means that it is /! UNSTABLE /! , and while it has got more stable in the latest months you should not assume it's safe to use it. It's getting included in the same way ext4dev was merged to improve the development. So it's strongly recommended not to use it for any other uses than testing, benchmarking and developing. The plan of the btrfs team right now is to make a 1.0 release. The disk format is not expected to change anymore (but it will if a critical bug is found).

Code: fs/btrfs
Squashfs

Squashfs is a highly compressed read-only filesystem that is well know for being used in the Live-CDs of the most common Linux distributions and embedded distributions for some routers. It uses zlib compression (lzma will be added in the future) to compress both files, inodes and directories. Inodes in the system are very small and all blocks are packed to minimise data overhead. Block sizes greater than 4K are supported up to a maximum of 1 Mbytes (default block size 128K).

SquashFS 4.0 supports 64 bit filesystems and files (larger than 4GB), full uid/gid information, hard links and timestamps. It is intended for general read-only filesystem use, for archival use (i.e. in cases where a .tar.gz file may be used), and in embedded systems where low overhead is needed. Further information and userspace tools (needed to create the filesystem) are available from http://squashfs.sourceforge.net.

Code: fs/squashfs
Support of 4096 CPUs

Recommended article: Fun with cpumasks

Many parts of the Linux core code support such number of CPUs, but there were problems with the cpumask-specific code, which is the part of the system used to represent all the CPUs in the system. With 4096 CPUs that structure became too big, causing stack overflows, and had some performance problems, which made impossible to default distro kernels to 4096 CPUs, because systems with a lower number of CPUs would have slower performance. The goal with this release has been to be able to support for as many CPUs as possible with no disadvantages for smaller machines. The code been changed to use pointers for that structure instead of using the stack and some scalability problems have been resolved, making possible to run machines with 4096 CPUs and make easier to support even more in the future.

Code: (commit)
"Tree RCU": scalable classic RCU

Recommended LWN article: "Hierarchical RCU"

This feature fixes a long-standing performance bug in classic RCU that results in massive internal-to-RCU lock contention on systems with more than a few hundred CPUs - Classic RCU was designed for machines with 16-32 CPUs. "Tree RCU" applies a hierarchy, greatly reducing the contention on the top-level lock for large machines. Although this feature creates a separate flavor of RCU for ease of review and patch maintenance, it is intended to replace classic RCU.

Code: (commit)
WiMAX

2.6.29 includes support for WiMAX, a telecommunication technology that provides wireless transmission of data using a variety of transmission modes. It provides up to 75 Mbit/s symmetric broadband speed without the need for cables. The technology is based on the IEEE 802.16 standard (also called Broadband Wireless Access). The stack has been provided by Intel, and it includes a driver for the Intel Wireless WiMAX/Wi-Fi Link 5x50 USB/SDIO devices.

Code: WiMAX stack (commit 1, 2, 3, 4, 5, 6, 7, 8)

Driver: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
Wireless Access Point mode support

The mac80211 wifi stack is now ready to support AP mode. It requires hostapd for management frame processing. Configuring this mode is only allowed through cfg80211 (no iwconfig and/or WEXT).

Code: (commit), (commit)
eCryptfs filename encryption

eCryptfs implements transparent encryption of the contents of a file. In this release, it also can encrypt the file name via a passphrase-derived mount-wide Filename Encryption Key (FNEK) specified as a mount parameter. Each encrypted filename has a fixed prefix indicating that eCryptfs should try to decrypt the filename. When eCryptfs encounters this prefix, it decodes the filename into a tag 70 packet and then decrypts the packet contents using the FNEK, setting the filename to the decrypted filename. Both unencrypted and encrypted filenames can reside in the same lower filesystem. Because filename encryption expands the length of the filename during the encoding stage, eCryptfs will not properly handle filenames that are already near the maximum filename length.

Code: (commit 1, 2, 3, 4, 5)
Filesystem freeze

Recommended LWN article: "Freezing filesystems and containers"

Linux doesn't have a freeze feature which suspends write requests. So, it's not possible to take a backup which keeps the filesystem's consistency with the storage device's features (snapshot and replication) while it is mounted. Many commercial filesystems (e.g. VxFS) have the freeze feature and it would be used to get the consistent backup. This feature implements the ioctls of the freeze feature.

Code: (commit), (commit)
Memory controller swap management and other improvements

This feature adds a swap management feature to memory resource controller. Previously, the memory controller couldn't control the swap used by the tasks in a cgroup, allowing a single process to exhaust all of the swap. Now, you can limit mem+swap usage per cgroup. However, it adds some overhead and memory consumption, so it's configurable.

Another features added to the memory controller in this release are hierarchy support, per-cgroup swappiness, improved per-cgroup reclaim stats and better oom handling.

Code: Swap management (commit), (commit), (commit), (commit); hierarchy (commit), (commit), (commit), (commit), (commit), swappiness (commit), reclaim stats (commit), oom-killer (commit)
Ext4 no journal mode

Since Ext3 was born, there was people that never wanted to use journaling, for various reasons. In this release, Ext4 adds support for a mode that doesn't use journaling. The result is a small performance increase (see the commit link for benchmark data) compared with Ext4, but it is also a noticeable improvement over Ext2.

Code: (commit)
OCFS2 metadata checksums

OCFS2 (a clustered filesystem) now uses metadata checksums to check the integrity of the metadata.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8)
Staging drivers

New drivers were added to the staging/ directory (which means they're not just experimental, but also totally unstable and not suited at all for users)

*

Add rt2860 wireless driver (commit)
*

Add rt2870 wireless driver (commit)
*

Add rtl8187se driver (commit)
*

Add comedi (a data adquisition interace) core (commit), add usb usbduxfast driver (commit), add mite comedi pci driver (commit), add comedi_bond driver (commit), add comedi_parport driver (commit), add icp_multi driver (commit), add usb dt9812 driver (commit), add usb usbdux driver (commit), add me_daq driver (commit), add comedi_test driver (commit), add s626 driver (commit), add rtd520 driver (commit), add me4000 driver (commit),
*

android: add android framework (commit), add logging driver (commit), binder driver (commit), ram_console driver (commit), timed_gpio driver (commit), lowmemorykiller driver (commit)
*

Add agnx wireless driver (commit)
*

Add the Meilhaus ME-IDS driver package (commit)
*

Add asus_oled driver (commit)
*

Add Driver for Altera PCI Express Chaining DMA reference design (commit)
*

Add lcd-panel driver (commit)
*

Add princeton instruments usb camera driver (commit)
*

Add mimio xi driver (commit)
*

go7007: add sensoray 2250/2251 support (commit)
*

Add frontier tranzport and alphatrack drivers (commit)
*

Add epl stack (commit)
*

Add ServerEngines benet 10Gb ethernet driver (commit)

Tuz replaces Tux for this release

LWN article: “The kernel gets a new logo”

The emblematic Tux mascot, is replaced, for the 2.6.29 release, by Tuz, a disguised Tasmanian Devil. This logo change is a support for this endangered species. (commit)
Various core changes

*

Scheduler
o

Idle cputime accounting: The cpu time spent by the idle process actually doing something is currently accounted as idle time. This is plain wrong, the architectures that support VIRT_CPU_ACCOUNTING=y can do better: distinguish between the time spent doing nothing and the time spent by idle doing work (commit), (commit)
o

Extend range of /sys/devices/system/cpu/sched_mc_power_savings. Currently the sched_mc/smt_power_savings variable is a boolean, which either enables or disables topology based power savings. This patch extends the behaviour of the variable from boolean to multivalued, such that based on the value, we decide how aggressively do we want to perform powersavings balance at appropriate sched domain based on topology (commit)
o

Improve precision of process accounting. (commit), improve precision of idle time detection. (commit)
o

Include group statistics in /proc/sched_debug (commit)
*

Memory management
o

futex: use fast_gup() (commit)
o

Make get_user_pages() interruptible (commit)
o

Shrink struct dentry (commit)
o

Report the MMU pagesize in /proc/pid/smaps (commit)
o

Report the pagesize backing a VMA in /proc/pid/smaps (commit)
o

Improve vmallocinfo (commit)
o

More likely reclaim MADV_SEQUENTIAL mappings (commit)
o

Add dirty_background_bytes and dirty_bytes sysctls (commit)
o

Swap use discard commands in SSD devices (commit), (commit)
o

vmscan: bail out of direct reclaim after swap_cluster_max pages (30% improvement hackbench) (commit)
o

SLUB: failslab support (commit)
o

NOMMU: Make VMAs per MM as for MMU-mode linux (commit)
o

NOMMU: Make mmap allocation page trimming behaviour configurable. (commit)
*

PCI
o

Add ACPI based slot detection (commit), (commit)
o

pci-stub module to reserve pci device (commit)
o

Add PCI Advanced Features (commit), (commit)
o

Allow pci driver to support only dynids (commit)
*

Fastboot (not enabled by default)
o

Recommended LWN article: "An asynchronous function call infrastructure"
o

Make scsi probes asynchronous (commit)
o

Make the libata port scan asynchronous (commit), (commit)
*

ELF: implement AT_RANDOM for glibc PRNG seeding (commit)
*

cpumask: add sysfs displays for configured and disabled cpu maps (commit), (commit)
*

Enable multiple instances of devpts (commit), (commit), (commit)
*

proc: add /proc/*/stack (commit)
*

Support for sparse irqs: this is useful for distro kernels that want to define a high CONFIG_NR_CPUS value but still want to have low kernel memory footprint on smaller machines (commit), (commit)
*

Get rid of CONFIG_LSF (ommit)
*

ACPI hibernate: Introduce new kernel parameter acpi_sleep=s4_nonvs (commit)
*

ACPI hibernate: Add a mechanism to save/restore ACPI NVS memory (commit), (commit)
*

UIO: Pass information about ioports to userspace (V2) (commit)
*

swiotlb: add support for systems with highmem (commit)
*

Allow stripping of generated symbols under CONFIG_KALLSYMS_ALL (commit)
*

Script from kerneloops.org to pretty print oops dumps (commit)
*

Document handling of bad memory (commit)
*

Remove CONFIG_KMOD (commit)

Wi-Fi

*

Make Minstrel the default rate control algorithm (commit)
*

Implement dynamic power save (commit)
*

hwsim: enable Mesh Point operation (commit), add support for client PS mode (commit)
*

Re-enable aggregation (commit)
*

nl80211: Add TX queue parameter configuration (commit), add basic rate configuration for AP mode (commit), add commands to get and set o11s mesh networking parameters (commit), add signal strength and bandwith to nl80211station info (commit)
*

cfg80211: Add regulatory domain intersection capability (commit), add support for custom firmware regulatory solutions (commit)
*

Add regulatory 802.11d support (commit)

Security

*

Introduce new LSM security hooks for pathname based access control (commit)
*

Rework of the credential records (commit) Recommended LWN article: "Credential records"
*

file capabilities: add no_file_caps kernel parameter (commit)
*

Audit: Log TIOCSTI (commit)
*

Audit: Any time fcaps or a setuid app under SECURE_NOROOT is used to result in a non-xero pE, log it (commit)
*

smack: Add support for unlabeled network hosts and networks (commit)

Networking

*

Convert TCP & DCCP hash tables to use RCU (commit), (commit), (commit)
*

Add DCNA attribute to the BCN interface for DCB (commit)
*

IPVS: Add IPv6 support to SH and DH schedulers (commit)
*

DCB: Add support for DCB BCN (commit)
*

pkt_sched: add DRR scheduler (commit)
*

Add Generic Receive Offload infrastructure. Recommended LWN article: "Large receive offload (commit 1, 2, 3, 4, 5, 6, 7)
*

Phonet: USB CDC Phonet function for gadget framework (commit)
*

TPROXY: implemented IP_RECVORIGDSTADDR socket option (commit)
*

atm: 32-bit ioctl compatibility (commit)
*

sctp: Implement socket option SCTP_GET_ASSOC_NUMBER (commit)
*

pkt_sched: Control group classifier (commit)
*

RDMA
o

Add support for translating IPv6 addresses (commit)
o

Add IPv6 support (commit)
*

Bonding
o

Send IPv6 neighbor advertisement on failover (commit)
o

Alternate agg selection policies for 802.3ad (commit)
*

DCB
o

Add interface to query the state of PFC feature. (commit)
o

Add interface to query for the DCB capabilities of an device. (commit)
o

Add interface to query # of TCs supported by device (commit)
*

WAN
o

new synchronous PPP implementation for generic HDLC. (commit)
*

syncppp.c is no longer used by any kernel code. Remove it. (commit)
*

DCCP
o

Set per-connection CCIDs via socket options (commit)
o

Support for Mandatory options (commit)
o

Deprecate Ack Ratio sysctl (commit)
*

TCP
o

CUBIC v2.3 (commit)
o

Try to restore large SKBs while SACK processing (commit)
*

UDP
o

Introduce struct udp_table and multiple spinlocks (commit)
o

RCU handling for Unicast packets. (commit)

Tracing

*

blktrace: port to tracepoints (commit)
*

profile likely and unlikely annotations (commit)
*

Add a tracer to catch execution time of kernel functions (commit)
*

Stack-tracer: introduce CONFIG_USER_STACKTRACE_SUPPORT (commit)
*

Add "power-tracer" (C/P state tracer to help power optimization) (commit)
*

Add a way to enable or disable the stack tracer (commit)
*

Add function tracing to single thread (commit)
*

function-graph-tracer: support for x86-64 (commit)
*

ftrace dump on oops control (commit)
*

Add ability to only trace swapper tasks (commit)
*

Add quick function trace stop (commit)
*

Graph of a single function (commit)
*

sysrq-z to dump the tracing buffers (commit)
*

Trace single pid for function graph tracer (commit)
*

likely/unlikely branch annotation tracer (commit)
*

Identify which executable object the userspace address belongs to (commit)
*

Add support for userspace stacktraces in tracing/iter_ctrl (commit)
*

oprofile: port to the new ring_buffer (commit)

Filesystems

*

Ext4
o

Improve jbd2 fsync batching (commit)
o

Add mount option to set kjournald's I/O priority (commit)
o

Add markers for better debuggability (commit)
o

Add fsync batch tuning knobs (commit)
*

OCFS2
o

Remove JBD compatibility layer (commit)
o

Add POSIX ACLs (commit), (commit)
o

Add security xattr support (commit)
o

Implement quota recovery (commit)
o

Periodic quota syncing (commit)
o

Implementation of local and global quota file handling (commit)
o

Enable quota accounting on mount, disable on umount (commit)
*

XFS
o

Allow inode64 mount option on 32 bit systems (commit)
o

Support the fiemap ioctl. (commit)
o

Combine the XFS and Linux inodes (commit)
*

GFS2
o

Support for FIEMAP ioctl (commit)
o

Kill two daemons (gfs2_scand and gfs2_glockd) (commit)
*

UBIFS
o

Introduce compression mount options (commit)
o

Add debugfs support (commit)
*

FUSE
o

Implement ioctl support (commit)
o

Implement poll support (commit)
*

NFS
o

lockd: Enable NLM use of AF_INET6 (commit)
o

Add "[no]resvport" mount option (commit)
o

Allow lockd requests from an unprivileged port (commit)
*

CIFS: add mount option to send mandatory rather than advisory locks (commit)
*

Ext3: improve fsync batching (commit)

Crypto

*

Add shash interface (commit)
*

Export shash through hash (commit)

DM/MD

*

DM
o

Extend target interface (commit)
o

Add name and uuid to sysfs (commit)
o

Support barriers on simple devices (commit)
*

MD
o

Allow md devices to be created by name. (commit)
o

Make devices disappear when they are no longer needed. (commit)

Virtualization

*

KVM
o

Enable MSI for device assignment (commit)
o

x86: Enable NMI Watchdog via in-kernel PIT source (commit)
o

x86: Support for user space injected NMIs (commit), (commit)
o

VMX: Add PAT support for EPT (commit)
o

Enable MTRR for EPT (commit)
o

ppc: support large host pages (commit)
o

ppc: Implement in-kernel exit timing statistics (commit)
*

virtio_console: support console resizing (commit)
*

virtio_net: VIRTIO_NET_F_MSG_RXBUF (imprive rcv buffer allocation) (commit)
*

Xen: add xenfs to allow usermode <-> Xen interaction (commit)

Architecture-specific changes

*

X86
o

Use possible_cpus=NUM to extend the possible cpus allowed (commit)
o

pci: introduce pci=ioapicreroute kernel cmdline option (commit)
o

pci: introduce pci=noioapicquirk kernel cmdline option (commit)
o

pci: introduce config option for pci reroute quirks (commit)
o

Enable cpus display of kernel_max and offlined cpus (commit)
o

SGI UV: Provide a System Activity Indicator driver (commit)
o

Add a BTS ftrace plug-in prototype (commit)
*

ARM
o

Add support for the Samsung S3c64xx processors: (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
o

S3c24a0: Initial architecture support files (commit), (commit), (commit)
o

ep93xx: add edb9307a platform (commit), (commit), (commit)
o

pxa: initial support for the Imote2 platform (commit), add basic support for HP iPAQ h5000 (commit)
o

Add Nuvoton W90p910 Platform support (commit)
o

SMDK6410: Initial machine support (commit)
o

AT91: Add support for the Adeneo Neocore 926 board (commit), support AT91CAP9 revC CPUs (commit)
o

Add basic support for MX31PDK board. (commit), (commit)
o

Adds MX1 architecture to platform MXC (commit), (commit), (commit), (commit), (commit)
o

S3C: Add GPIO chip tracking (commit)
o

DSM320: Add support for the DSM320 (commit)
o

OMAP3: Add basic support for Pandora handheld console (commit)
o

mv78xx0: implement GPIO and GPIO interrupt support (commit)
o

pcm037: add support for the on-board LAN9217 network controller (commit), add support for SRAM device (commit)
o

Kirkwood: implement GPIO and GPIO interrupt support (commit)
o

MX31: basic support for mx31moboard platform (commit), (commit)
o

TWL4030: DAPM based capture implementation (commit)
o

clps7500: remove support (commit)
o

netx: enable GENERIC_TIME and clockevents (commit), (commit)
o

Realview: Add Cortex-A9 support to the EB board (commit), add support for the Cortex-A8 Platform Baseboard (commit)
*

PPC
o

Enable dynamic ftrace (commit)
o

ppc32: ftrace, dynamic ftrace to handle modules (commit), enable kdump (commit)
o

Use RCU based pte freeing mechanism for all powerpc (commit)
o

44x: Support 16K/64K base page sizes on 44x (commit)
o

4xx: Extended DCR support v2 (commit)
o

cell: add QPACE as a separate Cell platform (commit)
o

Rework context management for CPUs with no hash table (commit)
o

mpc5200: Add MDMA/UDMA support to MPC5200 ATA driver (commit), add rts/cts handling in PSC UART driver (commit)
o

udbg-based backend for hvc_console (commit)
o

oprofile: IBM CELL: add SPU event profiling support (commit)
o

85xx: Enable SMP support (commit)
o

Implement GPIO driver for simple memory-mapped banks (commit)
o

Add SPE/EFP math emulation for E500v1/v2 processors. (commit)
o

86xx: Basic GPIO support for GE Fanuc SBC610 (commit)
*

SH
o

Dynamic ftrace support. (commit), (commit)
o

Generic kgdb stub support. (commit)
o

RSK+ 7201 board support. (commit)
o

mach-migor: Add ov772x support. (commit), add tw9910 support. (commit)
o

Add support for SH7201 CPU subtype. (commit)
o

oprofile: Backtrace support. (commit)
o

Add SH-4A optimized fastpath mutex implementation. (commit)
o

Add SH-5 optimized memcpy()/memset()/strcpy()/strlen(). (commit)
*

S390
o

ftrace: function tracer backend for s390 (commit)
o

s390/hvc_console: z/VM IUCV hypervisor console support (commit)
o

Service level interface. (commit)
o

Add processor type march=z10 and a processor type safety check (commit)
o

Cpu topology: introduce kernel parameter (commit)
o

Introduce vdso on s390 (commit)
*

Blackfin
o

Add support for BF561 dualcore cpu and make blackfin SMP capable (commit), (commit), (commit), (commit), (commit)
o

Add support for Blackfin latest processor family BF51x (commit)
o

BF538/9 support (commit)
*

MIPS
o

Add Cavium OCTEON processor support files to arch/mips/cavium-octeon/executive and asm/octeon. (commit)
o

Add Cavium OCTEON processor CSR definitions (commit)
o

Add Cavium OCTEON processor support files to arch/mips/cavium-octeon. (commit)
o

Add Cavium OCTEON to arch/mips/Kconfig (commit)
*

SPARC
o

Add tsb-ratio sysctl. (commit)
o

Add save_stack_trace_tsk(). (commit)
*

AVR32
o

Hammerhead board support (commit)

Drivers
Storage

*

SATA:
o

Add 32bit PIO support (commit)
o

New driver for OCTEON SOC Compact Flash interface (v7). (commit)
o

sata_via: Add VT8261 support (commit)
o

sata_sil: add Large Block Transfer support (commit)
*

IDE
o

Remove ide-scsi (commit)
o

Resurrect IT8172 IDE controller driver (commit)
*

SCSI
o

cxgb3i: Add cxgb3i iSCSI driver. (commit)
o

libfc: A modular Fibre Channel library (commit), (commit)
o

fcoe: Fibre Channel over Ethernet (commit)
o

lpfc: Add support for Power Management Suspend/Resume operations (commit), add Blockguard support (T10-DIF) structs and defs (commit), add Blockguard support (T10-DIF) code (commit)
o

qla2xxx: Add ISP81XX support. (commit), add support for multi-queue adapter (commit)

Graphics

*

i.MX31: framebuffer driver (commit)
*

drm: GEM mmap support (commit), (commit)
*

agp-intel: add support for G41 chipset (commit)
*

i915: add support for integrated HDMI on G4X hardware. (commit)

Network

*

smsc9420: SMSC LAN9420 10/100 PCI ethernet adapter (commit), (commit), (commit)
*

SMSC LAN911x and LAN921x driver (commit)
*

Add driver for the KS8695 ethernet devices (commit)
*

WAN: Add IXP4xx HSS HDLC driver. (commit)
*

iwlwifi: Add support for 5150 (commit 1, 2, 3, 4, 5), enable custom fw regulatory solution (commit), move channels sysfs to debugfs (commit), disable AP mode (commit)
*

sfc: Implement auto-negotiation (commit), SFT9001: Add cable diagnostics (commit), expose flash region storing boot code as MTD (commit), add support for sub-10G speeds (commit), add support for SFN4111T (commit), add option to use a separate channel for TX completions (commit), add support for Solarflare 10Xpress SFT9001 (commit)
*

ixgbe: add device support for 82598AT (copper 10GbE) adapters (commit), implement PCIe AER support (commit), add support for DCB to the kernel and ixgbe driver (commit), add SFP+ driver support (commit)
*

Ath9k: Adding support for Atheros AR9285 chipset (commit), adding initvalues for Atheros AR9285 chipset. (commit), adding AR9285 chipset register information (commit), add a debugfs file for dumping DMA status (commit), add ATH9K_DEBUG configuration option (commit), handle channel initialization for AP mode (commit), add a debugfs file to show interrupt statistics (commit),
*

Ath5k: add AP mode (commit), update keycache to support TKIP handling (commit), enable hardware encryption for WEP (commit)
*

broadcom: Add support for BCM50610 (commit), add flow control support (commit)
*

mISDN: Add HFC USB driver (commit), create /sys/class/mISDN (commit), added an ioctl to change the device name (commit), add E-Channel logging features (commit)
*

p54: enable Mesh Point support (commit), AP & Ad-hoc testing (commit), implement MRR (commit), utilize cryptographic accelerator (commit)
*

tg3: Add 57780 support (commit), add 5761S support (commit)
*

phy: add LSI ET1011C PHY driver (commit), add the ST ste10Xp PHYs (commit), power management support (commit)
*

gianfar: Add Scatter Gather support (commit), revive VLAN support (commit)
*

ucc_geth: Remove UGETH_FILTERING dead code (commit)
*

iwl3945: add debugfs support (commit)
*

smsc95xx: add tx checksum offload support (commit)
*

rt2x00: Implement HW encryption (rt2500usb) (commit), add USB ID for the Linksys WUSB200. (commit)
*

e1000e: enable ECC correction on 82571 silicon (commit)
*

cxgb3: Add multiple Tx queue support. (commit)
*

IXP4xx: Add PHYLIB support to Ethernet driver. (commit), add ethtool support to Ethernet driver. (commit), add PHYLIB MII ioctl to the Ethernet driver. (commit)
*

bnx2: Add PCI ID for 5716S. (commit)
*

zd1211rw: adding Sitecom WL-603 (0df6:0036) to the USB id list (commit)
*

atm: Driver for Solos PCI ADSL2+ card. (commit)
*

broadcom: Add 57780 support (commit)
*

igb: Add support for pci-e Advanced Error Reporting (commit)
*

mlx4_en: Added "set_ringparam" Ethtool interface implementation (commit)
*

The overdue eepro100 removal (replaced by the e100 driver) (commit)
*

enic: enable ethtool LRO support (commit)
*

uwb: add basic radio manager (commit), improved MAS allocator and reservation conflict handling (commit)

Input

*

Add joystick driver for Walkera WK-0701 RC transmitter (commit)
*

Add tsc2007 based touchscreen driver (commit)
*

PCF50633 input driver (commit)
*

Add support for Wacom W8001 penabled serial touchscreen (commit)
*

Add da9034 touchscreen support (commit)
*

Add support for enhanced rotary controller on pxa930 and pxa935 (commit)
*

Add support for Maple controller as a joystick (commit)
*

Add support for trackball on pxa930 and pxa935 (commit)

Sound

*

Alsa System on Chip
o

Add Palm/PXA27x unified ASoC audio driver (commit)
o

Add support for Beagleboard (commit)
o

Machine driver for for s3c24xx with uda134x (commit)
o

Blackfin: add multi-channel function support (commit)
o

Add PCM3008 ALSA SoC driver (commit)
o

Add WM8728 codec driver (commit)
o

Add support for omap2evm board (commit)
o

UDA134x codec driver (commit)
o

Add Marvell Zylonite machine support (commit)
o

Add driver for the Lyrtech SFFSDR board (commit)
o

Add support for TI SDP3430 (commit)
o

Add support for OMAP3 Pandora (commit)
o

Add WM8350 Audioplus codec driver (commit)
o

Add PXA SSP support (commit)
o

Add support for Gumstix Overo (commit)
o

Merge AT91 and AVR32 support into a single atmel architecture h=6c7425095c9ee23d080dba3e27217a254cce4562 (commit)
o

Add support for TWL4030 audio codec (commit)
o

Add audio support for the Atmel AT91SAM9G20ek board(uing wolfson 8731). (commit)
*

hda: Add HP Acacia detection (commit), added an ALC888 model entry for Fujitsu-Siemens Amilo Xa3530 (commit), add ALC299 fujitsu preset model (commit), Intel HDMI audio support (commit), add ASUS V1sn support (commit), add lifebook model for Realtek ALC269 (commit), alc883 model for ASUS P5Q-EM boards (commit), added Realtek ALC888 model entry for Acer Aspire 4930G laptop (commit), make laptop-eapd model back for AD1986A (commit), add MCP67 HDMI support (commit), add support for Intel DX58SO board (commit), add support of NVidia MCP78 HDMI (commit)
*

pcxhr - add support for pcxhr stereo sound cards (commit), add support for pcxhr stereo sound cards (firmware support) (commit), add support for pcxhr stereo sound cards (mixer part) (commit), add support for pcxhr stereo sound cards (core change) (commit)
*

cs5535audio: OLPC analog input support (commit)
*

ELD proc interface for HDMI sinks (commit)
*

oxygen: add Claro halo support (commit)
*

Add hrtimer backend for ALSA timer interface (commit)
*

ca0106: Add power-management support (commit)

V4L/DVB

*

Adding sharp s921 ISDB-T driver (commit)
*

Add tw9910 driver (commit)
*

Add ov772x driver (commit)
*

Add TEA5764 radio driver (commit)
*

Add initial support for two KNC1 DVB-S2 boards (commit)
*

Adding lgdt3304 based driver (commit)
*

Dynamic DVB minor allocation (commit)
*

uvcvideo: Add support for Samsung Q310 integrated webcam (commit)
*

Add STB6100 Support (commit)
*

em28xx: experimental support for HVR-950 IR (commit)
*

Add STB0899 support (commit), (commit)
*

Add STB6100 Support (commit), (commit)
*

Initial support for the Technotrend TT S2 3200 (commit)
*

Add support for the Satelco Easywatch DVB-S2 PCI card (commit)
*

cx88: Add support for Prof 6200 DVB-S PCI card (commit), add support for Turbosight TBS8910 DVB-S PCI card (commit)
*

Add Terratec Cinergy S USB support (commit)
*

uvcvideo: Add support for Lenovo Thinkpad SL500 integrated webcam (commit), V4l2 zoom controls support (commit), V4l2 privacy control support (commit), add support for video output devices (commit)
*

dsbr100: add suspend and resume (commit)
*

em28xx: Add specific entry for WinTV-HVR 850 (commit)
*

omap2: add OMAP2 camera driver. (commit)
*

v4l: add new tvp514x I2C video decoder driver (commit)
*

v4l2: add v4l2_device and v4l2_subdev structs to the v4l2 framework. (commit)
*

em28xx: add chip id for em2874 (commit), add entry for Pixelview PlayTV Box 4 (commit)
*

gspca: Subdriver ov534 added. (commit), pac7311: Webcam 093a:2620 added. (commit), stv06xx: New subdriver. (commit), vc032x: Webcam 046d:0897 added. (commit), vc032x: Webcam 15b8:6002 and sensor po1200 added. (commit), ov534: Add framerate support. (commit), zc3xx: Webcam 046d:089d added. (commit), pac207: Webcam 093a:2461 added. (commit)
*

saa7134: Add support for Kworld Plus TV Analog Lite PCI (commit), add analog and DVB-T support for Medion/Creatix CTX946 (commit), add support for Avermedia AVer TV GO 007 FM Plus (commit)
*

Add Compro Videomate E650F (DVB-T part only). (commit)
*

m5602 - ov9650: Add CIF mode (commit), add QVGA mode for the ov9650 sensor (commit)
*

Add ov7725 support to ov772x driver (commit)
*

mt9m111: add support for mt9m112 since sensors seem identical (commit)
*

soc-camera: add support for MT9T031 CMOS camera sensor from Micron (commit)
*

Add USB ID for the Sil4701 radio from Dealextreme (commit)
*

Add the Beholder H6 card to DVB-T part of sources. (commit)
*

bt832: remove this driver (commit)

USB

*

Add asynchronous autosuspend/autoresume support (commit)
*

storage: recognizing and enabling Nokia 5200 cell phones (commit)
*

host: Oxford OXU210HP HCD driver. (commit)
*

gadget: MIPS ci13xxx_udc (commit)
*

musb: add Blackfin driver to MUSB framework (v2) (commit)
*

otg: twl4030 transceiver driver (commit)
*

Add imx udc gadget driver (commit)
*

Add new opticon serial driver (commit)
*

Add siemens_mpi usb-serial "stub" driver (commit)
*

g_file_storage: add CD-ROM emulation (commit)
*

unusual_devs: add Pentax K10D (commit), another bad Argosy storage device (commit), Macpower MasterBox (commit), Option N.V. ZeroCD modems (commit)
*

USB: usb-storage: add "quirks=" module parameter (commit)
*

ti_usb_3410_5052: add Multi-Tech modem support (commit)
*

p54usb: Add USB ID for Thomson Speedtouch 121g (commit)

HWMON

*

Add a driver for the ADT7475 hardware monitoring chip (commit)
*

Add LTC4245 driver (commit)
*

it87: Add support for the ITE IT8720F (commit)
*

fschmd: Add watchdog support (commit)
*

f71882fg: Add PWM support (commit), add support for the F71862FG superio sensors (commit), add F8000 support (commit)
*

lm70: Add TI TMP121 support (commit)
*

applesmc: Add support for Macbook Air 2 (commit)

Watchdog

*

Add SMSC SCH311x Watchdog Timer. (commit)
*

Pika Warp appliance watchdog timer (commit)
*

Basic support for GE Fanuc's FPGA based watchdog timer (commit)
*

Add support for the WM8350 watchdog (commit)

RTC

*

PCF50633 rtc driver (commit)
*

Driver for Marvell's Socs 88F6281 and 88F6192 (commit)
*

Add rtc-tx4939 driver (commit)
*

Au1000 On-Chip Counter0-as-RTC driver. (commit)
*

Driver for pxa27x and pxa3xx SoC (commit)

HID

*

Driver for Topseed Cyberlink quirky remote (commit)
*

add n-trig digitizer support (commit)
*

Add dynids facility (commit)
*

Add phys and name ioctls to hidraw (commit)
*

Add proper support for pensketch 12x9 tablet (commit)

MTD

*

Support for LPDDR (Low power double data rate) flash chips. Synonymous with Mobile-DDR. It is a new standard for DDR memories, intended for battery-operated systems (commit 1, 2, 3, 4, 5, 6, 7)
*

NAND ndfc driver (commit)
*

Add ps3vram driver for accessing video RAM as MTD (commit)
*

nandsim: add option to use a file to cache pages (commit)

MFD

*

PCF50633 core driver (commit)
*

dm355evm msp430 driver (commit)
*

PCF50633 adc driver (commit)
*

Add WM8350 revision H support (commit)
*

Add WM8351 support (commit)
*

Add WM8352 support (commit)
*

Add AUXADC support for WM8350 (commit)
*

Register WM8400 codec device (commit)
*

PCF50633 gpio support (commit)

Power

*

Add support for WM8350 PMU (commit)
*

Add cold to the POWER_SUPPLY_HEALTH report values (commit)
*

Add Dialog DA9030 battery charger driver (commit)
*

Add battery health reporting for WM8350 (commit)

Serial

*

UART driver changes for Cavium OCTEON. (commit)
*

serial_8250: support for Sealevel Systems Model 7803 COMM+8 (commit)
*

Add driver for the Cell Network Processor serial port NWP device (commit)
*

8250_pci: add support for netmos 9835 IBM devices (commit)
*

Add Supraexpress 336i PnP Voice Modem (commit)

Various

*

i2c
o

i2c-omap: Add high-speed support to omap-i2c (commit)
o

i2c-omap: Add support for omap34xx (commit)
*

Bluetooth
o

Add suspend/resume support to btusb driver (commit)
o

Remove deprecated hci_usb driver (commit)
*

leds
o

ALIX.2 LEDs driver (commit)
o

Add WM8350 LED driver (commit)
o

Add suspend/resume to the core class (commit)
*

Cpufreq:
o

Add Celeron Core support to p4-clockmod. (commit)
o

Disable sysfs ui for p4-clockmod. (commit)
*

mmc
o

sdricoh_cs: Add support for Bay Controller devices (commit)
o

Add 8-bit bus width support (commit)
o

mmc_spi: Add support for OpenFirmware bindings (commit)
o

ricoh_mmc: Handle newer models of Ricoh controllers (commit)
*

edac
o

driver for i5400 MCH (commit)
o

driver for i5400 MCH (Seaburg) (commit)
*

backlight
o

Add support for Toppoly TDO35S series to tdo24m lcd driver (commit)
o

Add suspend/resume support to the backlight core (commit)
*

i8k: Enable i8k on Dell Precision Systems (commit), add Dell Vostro systems (commit)
*

regulator: PCF50633 pmic driver (commit)
*

w1: add 1-wire master driver for i.MX27 / i.MX31 (commit)
*

spi_gpio driver (commit)
*

Dell-laptop extras driver (commit)
*

PCMCIA: e740 PCMCIA socket driver. (commit)
*

ACPI: thinkpad-acpi: add UWB radio support (commit)

Other sources about 2.6.29 kernel

*

Heise Online's Kernel Log: What's new in 2.6.29 :
o

Part 1: Dodgy Wifi drivers and AP support
o

Part 2: WiMAX
o

Part 3: Kernel controlled graphics modes
o

Part 4: ACPI, PCI, PM – notebooks and power saving improvements
o

Part 5: Filesystems Btrfs, SquashFS, Ext4 without journaling
o

Part 6: Storage, IDE/PATA, SCSI
o

Part 7: Audio, FireWire, USB, Video and more
o

Part 8: Faster start-up and other behind the scenes changes
*

Looking forward to 2.6.29 (Linux Weather Forcast)
*

Linux Weekly news :
o

2.6.29 merge window, part 1
o

2.6.29 merge window, part 2
o

A summary of 2.6.29 internal API changes
*

Linux FireWire wiki: FireWire Release Notes for Linux 2.6.29
*

Linux Wireless wiki : Wireless Release Notes for Linux 2.6.29
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: linux kernel 2.6.30 2009-05-20 05:27 UTC
Author: fei    Posted: 2009-06-10 13:39    Length: 65,535 byte(s)
[Original] [Print] [Top]
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.gz
Linux 2.6.30 was released by Linus Torvalds on the 10th of June 2009.

Summary: This version adds the log-structured NILFS2 filesystem, a filesystem for object-based storage devices, a caching layer for local caching of NFS data, the RDS protocol which delivers high-performance reliable connections between the servers of a cluster, a distributed networking filesystem (POHMELFS), automatic flushing of files on renames/truncates in ext3, ext4 and btrfs, preliminary support for the 802.11w drafts, support for the Microblaze architecture, the Tomoyo security module, DRM support for the Radeon R6xx/R7xx graphic cards, asynchronous scanning of devices and partitions for faster bootup, MD support for switching between raid5/6 modes, the preadv/pwritev syscalls, several new drivers and many other small improvements.

1. Prominent features (the cool stuff)
1. NILFS2, a log-structured filesystem
2. POHMELFS and DST
3. Reliable Datagram Sockets (RDS) protocol support
4. Fastboot
5. IEEE 802.11w (wireless management frame protection support)
6. preadv()/pwritev() system calls
7. EXOFS, a filesystem for Object-Based Storage Devices
8. NFS 4.1 preliminary support
9. FS-Cache, a caching filesystem
10. Tomoyo, an alternative Mandatory Access Control
11. Filesystems performance improvements
12. LZMA/BZIP2 kernel image compression
13. Microblaze CPU architecture
14. Integrity Management Architecture
2. Various core changes
3. PCI
4. Wi-Fi
5. Security
6. Networking
7. Ftrace
8. Filesystems
9. Crypto
10. DM/MD
11. Virtualization
12. Architecture-specific changes
13. Drivers
1. Storage
2. Graphics
3. Network
4. Input
5. Sound
6. V4L/DVB
7. USB
8. HWMON
9. Bluetooth
10. Staging drivers
11. I2C
12. RTC
13. HID
14. MTD
15. FireWire
16. EDAC
17. Serial
18. LEDs
19. ACPI
20. Various
14. Other sources about 2.6.30 kernel

Prominent features (the cool stuff)
NILFS2, a log-structured filesystem

Contributor: NTT Labs (Nippon Telegraph and Telephone Corporation)

NILFS2 is a new filesystem which uses a log-structured design. What makes log-structured filesystems different is that they treat the whole disk as a consecutive list of blocks (called log). All the operations append data at the end of the log, they never rewrite blocks (except when there's no space left - in that case, new blocks are reclaimed from the start of the log). The advantage of this approach is that all modifications an creations are converted into sequential operations, which are faster. Crashes can't corrupt the filesystem. On mount, the filesystem detects the real end of the log, and continues working from that point.

Another advantage of this approach is that the log offers a coherent historical view of all the operations done in the disk in the past. This is called "continuous snapshotting" - snapshots of modifications done in all the filesystem at any time are created automatically due to the log-structure design, with no requeriment of intervention from an admin, and with the filesystem size as the only limit. NILFS2 allows to access those snapshots and even mount them (on read-only mode).

NILFS2 is under development. Code: fs/nilfs2/. Filesystem web page: www.nilfs.org
POHMELFS and DST

Contributor: Evgeniy Polyakov

Recommended LWN articles: Distributed storage and CRFS and POHMELFS

*

POHMELFS stands for Parallel Optimized Host Message Exchange Layered File System. It is a high performance and network distributed filesystem with ability to balance reading from multiple hosts and simultaneously write data to different remote nodes, with a local writeback cache of data and metadata, which greatly speeds up every IO operation. It beats NFS by a big margin in most, if not all, operations. You can find more details and benchmarks about it in its home page. POHMELFS is hosted in the "staging" section of the kernel code, altough it's already quite mature. Code: drivers/staging/pohmelfs/
*

DST stands for Distributed (network) STorage. DST allows the creation of high-performance storage networks in a reliable and easy manner. DST allows to form a storage on top of local and remote nodes and combine them into linear or mirroring setup, which in turn can be exported to remote nodes, an equivalent of much of the functionality offered by the device mapper, iSCSI, and network block device (NBD) layers. It works on top of any network media and protocol. DST may fully encrypt the data channel in case of untrusted channel and implement strong checksum of the transferred data. DST is hosted in the "staging" section of the kernel code. Code: drivers/staging/dst/

Reliable Datagram Sockets (RDS) protocol support

Contributor: www.openfabrics.org (Particularly, Oracle)

RDS provides a high bandwidth, low latency, reliable inter-process communication protocol and transport system between the servers in a cluster. It provides a reliable connection between any two nodes in the cluster. This allows applications to use a single socket to talk to any other process in the cluster - so in a cluster with N processes you need N sockets, in contrast to N*N if you use a connection-oriented socket transport like TCP. In beta testing, RDS over infiniBand provided up to 60 percent performance improvement over Gigabit Ethernet for interconnect-intensive applications. RDS is already used by some products like Oracle and in Silverstorm's Quicksilver.

Code: net/rds/
Fastboot

Recommended LWN article: An asynchronous function call infrastructure

Contributor: Intel

Some parts of the kernel boot process can delay the whole process too many time (by kernel's standards): scanning in search of storage devices for a given controller, and searching for partitions, for example, can be slow, because the scanning is synchronous, only one device is scanned at a time, and the kernel has to wait for the devices. With this feature, those steps are done asyncrhonously, so the kernel can keep booting the rest of the kernel while the storage devices are scanned in parallel. This feature speeds up the total kernel boot time significantly

Code: (commit)
IEEE 802.11w (wireless management frame protection support)

Contributor: Atheros

The IEEE 802.11w standard is a proposed (still not approved) amendment to the IEEE 802.11 standard (wifi) that increase the security of its management frames. In this version Linux adds a preliminary implementation for this future standard, developed according to the current drafts.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
preadv()/pwritev() system calls

Recommended LWN article: Some new system calls

Contributor: Red Hat

These syscalls are a pretty straightforward combination of pread/pwrite and readv/pwrite. BSD systems have such system calls too, for example NetBSD

Code: (commit 1, 2, 3)
EXOFS, a filesystem for Object-Based Storage Devices

Recommended LWN article: Linux and object storage devices

Contributor: Panasas

Traditional storage devices offer a block-based interface. However, there's a new generation of experimental storage devices that are trying to offload some work from the host, and offer a higher-level interface: an array of objects. The OS interfaces with the objects, and the drive hides all the storage details, removing most of the low-level details of the filesystem. A traditional filesystem can then be easily implemented on top of this interface. The OSD interface works on top of SCSI.

In this release Linux adds support for the OSD protocol on the SCSI stack, and exofs, an implementation of a traditional unix filesystem that works on top of OSD storage devices.

libosd: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 16),

EXOFS: fs/exofs/
NFS 4.1 preliminary support

Contributors: Panasas, Netapp and IBM.

NFS 4.1 is being developed at the IETF. From the many new features in NFSv4.1, this Linux version adds the mandatory-to-implement NFSv4.1 Sessions. Other features, Parallel NFS in particular, are still under development out of tree and will be added in later releases.

To enable this experimental new protocol (which is disabled by default) you need an updated nfs-utils.
FS-Cache, a caching filesystem

Recommended LWN article: A general caching filesystem

Contributor: Red Hat

FS-Cache is the Linux implementation of a cache layer for networking filesystems, similar to the CacheFS of other Unixes. With FS-Cache, data from the networked filesystems can be cached on the disk, speeding up operations.

This version adds support for NFS and AFS, but it's a generic layer that could be used by other networking filesystems or even non-networking (such as ISO9660).

Code: Slow-work related changes: (commit 1, 2, 3, 4), FS-cache (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 16, 17 18, 19); AFS and NFS changes: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 16, 17 18), Documentation: Documentation/filesystems/caching/fscache.txt.
Tomoyo, an alternative Mandatory Access Control

Recommended LWN article: TOMOYO Linux and pathname-based security

Contributor: NTT (Nippon Telegraph and Telephone Corporation)

There're currently two security subsystems: Selinux and Smack. Tomoyo is a new pathname-based access control.

(commit 1, 2, 3, 4, 5, 6, 7)

Tomoyo Web Site: http://tomoyo.sourceforge.jp/wiki-e/
Filesystems performance improvements

Shortly after the 2.6.29 release, lots of discussions occurred on LKML about disk I/O (summary available at LWN), how (and why) a fsync () call can take minutes, and the effect of getting a file zeroed rebooting just after a rename or a truncate. Some changes have been done to fix those problems: implicit internal fsync of a file after a rename or truncate in ext3, ext4 and btrfs, faster fsync() in ext3, default to data=writeback mode in Ext3, and improvements to CFQ. The flame has also brought the topic of atimes updates, and which has resulted into merging relatime and making it a default.
LZMA/BZIP2 kernel image compression

Contributor: Alain Knaff The kernel compresses the kernel with GZIP, but this version adds support to compress the kernel image with the LZMA or BZIP2 compression algorithms. The kernel size is about 10 per cent smaller with bzip2 in comparison to gzip, and about 33 per cent smaller with lzma.

Code: (commit 1, 2, 3, 4, 5)
Microblaze CPU architecture

Contributor: Michal Simek, with donations from PetaLogix and Xilinx

This release adds support for the MMU-less Microblaze CPU architecture. It has been

Code: arch/microblaze/
Integrity Management Architecture

Contributor: IBM

Recommended LWN article: Integrity management in the kernel

The Trusted Computing Group(TCG) runtime Integrity Measurement Architecture(IMA) maintains a list of hash values of executables and other sensitive system files, as they are read or executed. If an attacker manages to change the contents of an important system file being measured, we can tell. If your system has a TPM chip, then IMA also maintains an aggregate integrity value over this list inside the TPM hardware, so that the TPM can prove to a third party whether or not critical system files have been modified.

Code: (commit 1, 2, 3, 4, 5, 6, 7)
Various core changes

*

Implement adaptive spinning (commit)
*

eventfd: improve support for semaphore-like behavior (commit)
*

genirq: add threaded interrupt handler support (commit), (commit)
*

Memory management
o

percpu: implement new dynamic percpu allocator (commit)
o

kmemtrace, a kernel memory tracer. kmemtrace provides tracing for slab allocator functions, such as kmalloc, kfree, kmem_cache_alloc, kmem_cache_free etc.. Collected data is then fed to the userspace application in order to analyse allocation hotspots, internal fragmentation and so on, making it possible to see how well an allocator performs, as well as debug and profile kernel code (commit 1, 2, 3, 4, 5, 6)
o

DMA-API debugging. Recommmended LWN article: Driver API: sleeping poll(), exclusive I/O memory, and DMA API debugging (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16)
o

shmem: writepage directly to swap (commit)
o

slub: add min_partial sysfs tunable (commit)
o

generic debug pagealloc (commit)
o

Add /proc controls for pdflush threads (commit)
*

Filesystems
o

Make relatime default (commit), (commit), (commit)
o

blktrace: add ftrace plugin (commit), binary tracing, synthesizing old format (commit)
o

Allow SysRq emergency thaw to thaw frozen filesystems (commit)
o

quota: Add quota reservation support (commit), (commit)
o

loop: support barrier writes (commit), add ioctl to resize a loop device (commit)
o

ramfs: add support for "mode=" mount option (commit)
o

udf: implement mode and dmode mounting options (commit)
*

ipc namespaces: Implement multiple mounts of the mqueue file system, and link it to usage of CLONE_NEWIPC. Each ipc ns has a corresponding mqueuefs superblock. When a user does clone(CLONE_NEWIPC) or unshare(CLONE_NEWIPC), the unshare will cause an internal mount of a new mqueuefs sb linked to the new ipc ns. When a user does 'mount -t mqueue mqueue /dev/mqueue', he mounts the mqueuefs superblock (commit), (commit)
*

cpuacct: add per-cgroup utime/stime statistics (commit)
*

cgroups: use css id in swap cgroup for saving memory v5 (commit)
*

CPUFREQ: Introduce /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_transition_latency (commit)
*

Allow rwlocks to re-enable interrupts if implemented for that architecture.(commit)
*

intel-iommu: Snooping control support (commit), Suspend/Resume Support - (commit), (commit), (commit)
*

vsprintf: add binary printf (commit)
*

dynamic debug: combine dprintk and dynamic printk (commit)
*

NOMMU: Make it possible for RomFS to use MTD devices directly (commit)

PCI

*

Single Root I/O Virtualization (SR-IOV) support. SR-IOV is a PCI Express Extended capability which makes one physical device appear as multiple virtual devices. The physical device is referred to as Physical Function (PF) while the virtual devices are referred to as Virtual Functions (VF) (commit 1, 2, 3, 4)
*

MSI: Add support for multiple MSI (commit)
*

Allow assignment of memory resources with a specified alignment (commit)
*

Introduce /sys/bus/pci/devices/.../remove (commit)
*

Introduce /sys/bus/pci/devices/.../rescan (commit)
*

Introduce /sys/bus/pci/rescan (commit)
*

Add AMD8111 PCI Bridge PCI Device ID (commit)

Wi-Fi

*

cfg80211/nl80211: add basic scan capability to and change mac80211 to use it (commit)
*

Add 802.11h CSA support (commit)
*

mac80211_hwsim: add support for 5 GHz (commit)
*

nl80211: Event notifications for MLME events (commit), add MLME primitives to support external SME (commit)

Security

*

SELinux
o

Add new security mount option to indicate security label support. (commit)
o

New permission between tty audit and audit socket (commit)
*

smack: Add a new '-CIPSO' option to the network address label configuration (commit)

Networking

*

Allowing more than 64k connections and heavily optimize bind(0) time. (commit)
*

New user space API for time stamping of incoming and outgoing packets: User space can request hardware and/or software time stamping (commit 1, 2, 3, 4, 5, 6, (commit)
*

Network Network packet drop alerting service: This feature provides an alerting service to userspace in the event that packets are discarded in the network stack. Alerts are broadcast via netlink socket to any listening user space process (commit 1, 2, 3, 4)
*

sctp: Allow to disable SCTP checksums via module parameter (commit)
*

netfilter
o

Combine ipt_TTL and ip6t_HL source (commit)
o

Combine ipt_ttl and ip6t_hl source (commit)
o

iptables: lock free counters (commit)
o

sysctl support of logger choice (commit)
o

xtables: add cluster match (commit), add LED trigger target (commit)

Ftrace

*

ia64 port of ftrace (commit 1, 2, 3, 4, 5, 6)
*

powerpc32 port of ftrace(commit), (commit)
*

powerpc64 port of ftrace (commit), (commit)
*

Add event trace infrastructure (commit), (commit), (commit), (commit), (commit), (commit)
*

Add raw fast tracing interface for trace events (commit)
*

Add raw trace point recording infrastructure (commit)
*

Add binary buffer files for use with splice (commit)
*

Add stack trace to function tracer (commit)
*

add traceon traceoff commands to enable/disable the buffers (commit)
*

Show selected functions in set_ftrace_filter (commit)
*

Add a new workqueue tracer (commit)
*

Infrastructure for supporting binary record (commit)
*

Text Edit Lock, an architecture independant synchronization around kernel text modifications through use of a global mutex (commit), (commit), (commit)
*

tracepoints for softirq entry/exit (commit), (commit)
*

Syscall tracing infrastructure (commit), (commit), (commit), (commit)
*

Add per-event filtering (commit), add per-subsystem filtering (commit)
*

kmemtrace: normalize the raw tracer event to the unified tracing API (commit)

Filesystems

*

OCFS2
o

Add a name indexed b-tree to directory inodes (commit 1, 2, 3, 4, 5, 6, 7)
o

Optimize inode allocation by remembering last group (commit)
o

Optimize inode group allocation by recording last used group. (commit)
o

Expose the file system state via debugfs (commit)
*

GFS2
o

Support generation of discard requests (commit)
o

Support quota/noquota mount arguments (commit)
o

Add a "demote a glock" interface to sysfs (commit)
o

Expose UUID via sysfs/uevent (commit)
o

Merge lock_dlm module into GFS2 (removes 1400 LoC) (commit)
*

Ext4
o

New inode/block allocation algorithms for flex_bg filesystems (commit)
o

Automatically allocate delay allocated blocks on close (commit)
o

Automatically allocate delay allocated blocks on rename (commit)
o

Add auto_da_alloc mount option (commit)
o

Add EXT4_IOC_ALLOC_DA_BLKS ioctl (commit)
o

Add sysfs support - /sys/fs/ext4/<dev>/ (commit)
o

Remove /proc tuning knobs (commit)
o

Quota reservation for delayed allocation (commit)
*

Ext3
o

Add replace-on-rename hueristics for data=writeback mode (commit)
o

Add replace-on-truncate hueristics for data=writeback mode (commit)
o

Use WRITE_SYNC for commits which are caused by fsync() (commit)
*

reiserfs
o

Use generic xattr handlers (commit)
o

Journaled xattrs (commit)
o

Use generic readdir for operations across all xattrs (commit)
o

Add atomic addition of selinux attributes during inode creation (commit)
*

Btrfs
o

Add flushoncommit mount option (commit)
o

notreelog mount option (commit)
o

Performance improvements
*

CIFS
o

Add new nostrictsync cifs mount option to avoid slow SMB flush (commit)
o

Send SMB flush in cifs_fsync (commit)
*

XFS: pagecache usage optimization (commit)
*

knfsd: add file to export stats about nfsd pools (commit)

Crypto

*

Add support to Intel AES-NI instructions for x86_64 platform (commit)
*

cryptd: Per-CPU thread implementation. Speeds up dm-crypt on an Intel Core 2 E6400 (two cores) machine by 19.2% (commit), (commit)
*

amcc: Add crypt4xx driver (commit)
*

compress: pcomp, partial decompression internal support (commit),(commit), (commit)

DM/MD

*

MD
o

Add takeover support of RAID6 over RAID5 (commit)
o

Add takeover support of RAID5 over RAID1 (commit)
o

raid5: allow layout/chunksize to be changed on an active 2-drive raid5 (commit)
o

Add takeover support for RAID4 over RAID5 (commit)
o

Add takeover support for converting raid6 back into raid5 (commit)
o

data integrity support (commit)
*

DM
o

Implement basic barrier support (commit 1, 2, 3, 4, 5)
o

Add integrity support (commit)

Virtualization

*

virtio_net: Allow setting the MAC address of the NIC (commit)
*

lguest: use KVM hypercalls (commit)
*

KVM
o

New guest debug interface (commit), (commit)
o

Userspace controlled irq routing (commit),
o

SVM: Support nested SVM VMs (commit 1, 2, 3, 4, 5, 6, 7)
o

VMX
+

Support for injecting software exceptions (commit)
+

Allow single-stepping when uninterruptible (commit)
o

ia64: vTLB change for enabling windows 2008 boot (commit), stack get/restore ioctls, neccesary for live migration (commit)
o

ppc: E500 core-specific code (commit)
o

Add FFXSR support (commit)

Architecture-specific changes

*

X86
o

Optimise x86's do_page_fault (C entry point for the page fault path) (commit)
o

Convert to the new dynamic percpu allocator (commit)
o

Add support for saving/restoring Intel-AVX state properly between tasks. Intel Advanced Vector Extensions (AVX) introduce 256-bit vector processing capability (commit)
o

Implement x86_32 stack protector (commit)
o

kexec: add kexec jump support for x86_64 (commit)
o

mce: add CMCI support. CMCI (Corrected Machine Check Interrupt) is a new feature on Nehalem CPUs. It allows the CPU to trigger interrupts on corrected events, which allows faster reaction to them instead of with the traditional polling timer (commit), (commit)
o

mce: implement dynamic machine check banks support (commit)
o

Cpu architecture debug code (commit)
o

Add brk allocation for very, very early allocations (commit)
o

Remove zImage support (commit)
o

Remove subarchitecture support code (commit), remove subarchitecture support (commit), remove the Voyager 32-bit subarch (commit)
o

UV, SGI RTC: add UV RTC clocksource/clockevents (commit)
*

ARM
o

HIGHMEM support (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
o

Add support for Marvell's PXA168/PXA910 processors (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
o

Support for the Nokia RX-51 Internet Tablet.Initial (commit)
o

Adding support for the HTC Himalaya and its framebuffer (commit)
o

Add Gemini architecture (commit)
o

Gemini: Add support for Teltonika RUT100 (commit)
o

Basic support for Dave/DENX QongEVB-LITE board (commit)
o

ACS5K: Core board support for the ACS-5000 (commit)
o

Add support for the Faraday ARM FA526 architecture (commit)
o

Add Synertronixx scb9328 board support (commit)
o

fbdev: add E-Ink Broadsheet controller support v3 (commit)
o

Add gpiolib support to AT91 (commit)
o

The w90p910 uart0 driver patch (commit)
o

Add support for stack unwinding (commit), (commit)
o

Add ptrace VFP support (commit)
o

Add W90p910 EVB NOR flash driver (commit)
o

Realview: Add support for the DS1338 RTC chip (commit), add support for the ISP1761 USB chip (commit)
o

XSCALE: add ice dcc support (commit)
o

ep93xx m2p dma (commit), (commit)
o

MX35: add clock support (commit), add devices support (commit)
o

MXC: add pwm driver for i.MX Socs (commit)
o

Add SMSC911X support to Overo platform (commit)
o

i.MX21: clock support (commit), add framebuffer support for i.MX21 (commit)
o

mx31: add dma and fb devices (commit), framebuffer driver (commit), add sdhc resources/platform devices (commit), initial support for Wolfson Microelectronics 1133-EV1 module (commit), clkdev support (commit), initial support for various baseboards (commit)
o

Kirkwood: Add support for QNAP TS-119/TS-219 Turbo NAS (commit), Marvell Sheevaplug support (commit), add NAND support to the DB88F6281 board (commit)
o

mv78xx0: Add Marvell RD-78x00-mASA Reference Design support (commit)
o

mx1ads: add I2C support (commit)
o

OMAP3: Add support for 3430 SDP (commit), add ADS7846 touchscreen support to Overo platform, v3 (commit)
o

OMAP mailbox: add initial omap3 support (commit)
o

Add base support for omap850 cpu (commit 1, 2, 3, 4, 5)
o

orion5x: TS-78xx support for 'hotplug' of FPGA devices (commit)
o

PCM037: Add I2C support (commit)
o

pcm038: Add framebuffer support (commit), add I2C support (commit)
o

Add SDHC support for pcm037 (commit) and pcm970 (commit)
o

pxa
+

PalmLD initial support (commit)
+

Palm T5 initial support (commit)
+

PalmTE2 support for battery, UDC, IrDA and backlight (commit)
+

Palm Tungsten E2 basic support (commit)
+

em-x270: Added DA9030 support (commit)
+

Add eXeda platform support (commit)
+

Add AM300 platform driver v3 (commit)
+

Add initial support for Cogent CSB726 board (commit),
+

Add support for CSB701 baseboard (commit)
+

Mioa701: add gpio_vbus driver (commit)
+

Add basic support for Colibri PXA300 module (commit), add USB support for Colibri PXA300 (commit), add MMC support for Colibri PXA300 (commit)
*

PPC
o

Ensure random space between stack and mmaps (commit)
o

Increase stack gap on 64bit binaries (commit)
o

More stack randomisation for 64bit binaries (commit)
o

Randomise lower bits of stack address (commit)
o

Randomise mmap start address (commit)
o

Randomise PIEs (commit)
o

Randomise the brk region (commit)
o

5200: add Phytec phyCORE-MPC5200B-IO board (pcm032) (commit), add support for the digsy MTC board. (commit), add support for the Media5200 board from Freescale (commit)
o

83xx: add PCI-E support for all MPC83xx boards with PCI-E (commit), add power management support for MPC837x boards (commit)
o

86xx: board support for GE Fanuc SBC310 (commit), board support for GE Fanuc's PPC9A (commit)
o

44x: Support for 256KB PAGE_SIZE (commit)
o

amigaone: add platform support for Amigaone (commit), bootwrapper and serial console support for Amigaone (commit)
o

85xx: add support for the "socrates" board (MPC8544). (commit)
o

Hook up rtc-generic, and kill rtc-ppc (commit)
o

oprofile: Enable support for ppc750 processors (commit)
o

ps3: Add rtc-ps3 (commit)
o

AMCC PPC 460SX redwood SoC platform initial framework (commit)
*

SH
o

Hibernation support (commit), (commit), (commit), (commit)
o

Add kexec jump support (commit)
o

Add support for SH7786 CPUs (commit)
o

CMT clockevent platform driver (commit)
o

espt-giga board support (commit)
o

Urquell board support. (commit), (commit)
o

Add support for SMSC Polaris platform (commit)
o

Add ap325 lcd power off support (commit)
o

Add OHCI USB support for SH7786 (commit)
o

video: sh_mobile_lcdcfb suspend/resume support (commit)
*

Xtensa
o

Support for the stretch S6000 Xtensa core (commit), (commit)
o

Support for the S6105 IP Camera Reference Design Kit (commit)
o

Add flat support (commit)
o

Ccount clocksource (commit)
o

nommu support (commit)
*

S390
o

dasd: add High Performance FICON support (commit), add large volume support (commit)
o

qeth: remove EDDP (commit)
*

IA64
o

Implement interrupt-enabling rwlocks (commit)
o

Implement binary patching optimization (commit), (commit), (commit)
*

AVR32
o

Add support for Merisc boards (commit)
o

Add RTC support for Merisc boards (commit)
*

PARISC
o

Allow to build with 16k default kernel page size (commit)
o

Add ftrace (function and graph tracer) functionality (commit)
o

Add LATENCYTOP_SUPPORT and CONFIG_STACKTRACE_SUPPORT (commit)
*

m68k
o

Hook up rtc-generic (commit)
o

mac: Add SWIM floppy support (commit)
*

Blackfin: BF538/9 serial uart support (commit)

Drivers
Storage

*

SATA:
o

sata_mv: implement IRQ coalescing (commit), introduce support for ATAPI devices (commit)
*

IDE
*

SCSI
o

Add libfcoe: Add support for FIP, the new standard way to discover Fibre-Channel Forwarders (FCFs) (commit), (commit)
o

Add new fnic driver for Cisco PCI-Express FCoE HBA devices (commit)
o

3w-9xxx: add power management support (commit)
o

ipr: add MSI support (commit)
o

libfc: add support of large receive offload by ddp in fc_fcp (commit)
o

qla2xxx: Add EDC-update support. (commit), add Flash-Access-Control support for recent ISPs. (commit), add reset capabilities for application support. (commit)
o

scsi_debug: DIF/DIX support (commit)
o

stex: add new 6G controller support (commit), add MSI support (commit)

Graphics

*

drm: Convert proc files to seq_file and introduce debugfs (commit)
*

i915: add VGA hotplug support for 945+ (commit)
*

radeon: Add support for R6xx/R7xx GPUs (commit), (commit), (commit), (commit), (commit), (commit)
*

radeonfb: suspend/resume for ATI Mobility Radeon RV350 (commit)
*

intelfb: support i854 (commit)
*

agp/intel: Add support for new intel IGD chipset. (commit)
*

Add s3c-fb driver for newer Samsung SoC framebuffer devices (commit)
*

imxfb: add mx27 support (commit)
*

fbdev: remove cyblafb driver (commit)

Network

*

New driver for Atheros AR9170 based devices (commit 1, 2, 3, 4, 5)
*

New at76c50x-usb driver for Atmel at76c503/at76c505/at76c505a USB cards (commit)
*

New mwl8k driver for Marvell 88W8xxx TOPDOG PCI/PCIe Wireless devices (commit)
*

New neterion driver for Neterion X3100 Series 10GbE PCIe Adapters (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)
*

New p54spi driver for Prism54 SPI devices (stlc4550 or stlc4560 based wireless chips), found in Nokia's N800/N810 Portable Internet Tablet (commit)
*

New igbvf driver to support Intel 82576 Virtual Function Ethernet (commit)
*

New ethoc driver to support the Opencores 10/100 Mbps Ethernet MAC (commit)
*

ath9k: Add mesh point functionality (commit), support for AR9100 (commit), dynamic power save (commit), introduce platform driver for AHB bus support (commit), add module parameter to disable hardware crypto (commit), enable Bluetooth Coexistence support (commit), multiple virtual radios (wiphys). The goal of virtual radios is to allow the same radio to be shared for multiple virtual interfaces that may operate on different channels (commit 1, 2, 3, 4, 5 ,6, 7, 8, 9)
*

qlge: add support for GRO (commit), add tx multiqueue support (commit), add support for device ID 8000 (commit), add support for firmware mailbox commands (commit), add support for getting/setting port config (commit)
*

p54: enable power save support (commit), enable proper frame injection (commit), initial SoftLED support (commit), longbow frontend support (commit), power save management (commit)
*

bnx2x: MSI support (commit), multi-queue (commit), supporting BCM8481 PHY (commit), supporting BCM8726 PHY (commit), register dump (commit)
*

igb: add support for enabling VFs to PF driver. (commit), add pf side of VMDq support (commit), add support for 82576 quad copper adapter (commit), add support for another dual port 82576 non-security nic (commit)
*

rt2x00: Implement Powersaving (commit), add mesh support (commit), add RFKILL support to rt2500usb and rt73usb (commit), add WDS support (commit), add LED_MODE_ASUS support (commit), add various new USB IDs (commit), (commit)
*

e1000e: add aer support (commit), add support for 82574 device ID 0x10F6 (commit), add support for 82583 device id (commit)
*

ixgbe: Add support KX/KX4 device (commit), add 82598 support for BX mezzanine devices (commit), add 82599 support (commit), (commit), (commit)
*

netxen: Add receive side scaling (rss) support (commit), add suspend resume support (commit), advertise wake-on-lan support (commit)
*

sfc: Add support for QT2025C PHY (commit), add support for SFN4112F SFP+ reference design (commit)
*

iwlwifi: add recognition of Intel Wifi Link 100 Series (commit), add recognition of Intel WiFi Link 6000 and 6050 Series (commit)
*

mv643xx_eth: implement Large Receive Offload (commit), allow enabling/disabling tx checksumming via ethtool (commit)
*

e100: add support for 82552 10/100 adapter (commit)
*

wimax/i2400m: implement RX reorder support (commit), support extended data RX protocol (no need to reallocate skbs) (commit)
*

fec: Add support for Freescale MX27 (commit)
*

mlx4_core: Add device IDs for MT25458 10GigE devices (commit), add link type autosensing (commit)
*

veth: Allow setting the L3 MTU (commit)
*

forcedeth: recover error support (commit)
*

tg3: Add GRO support. (commit)
*

niu: Add GRO support. (commit)
*

dsa: add support for the Marvell 88E6095/6095F switch chips (commit), add switch chip cascading support (commit)
*

ath5k: Add tx power calibration support (commit)
*

b43: Add BCM4307 PCI-ID (commit)
*

hso: add Vendor/Product ID's for new devices (commit)
*

phy: add new LAN8710 and LAN8720 device ids to smsc phy driver (commit)
*

Merge UCC and gianfar MDIO bus drivers (commit)

Input

*

Add AD7877 touchscreen driver (commit)
*

Add AD7879 Touchscreen driver (commit)
*

Add driver for S1 button of rb532 (commit)
*

Generic driver for rotary encoders on GPIOs (commit)
*

Add support for the Maple mouse on the SEGA Dreamcast (commit)
*

Add accelerated touchscreen support for Marvell Zylonite (commit)

Sound

*

Add driver for Atmel AC97 controller (commit)
*

Add driver for Atmel Audio Bitstream DAC (commit)
*

Turtle Beach Multisound Classic/Pinnacle driver (commit)
*

Add support for video out to the jack reporting API (commit)
*

cmi8330: add MPU-401 support (commit), add OPL3 support (commit)
*

hda: Add 4 channel mode for 3stack-hp model (ALC888) (commit),add another HP model with IDT92HD71bx codec (commit), added HP HDX16/HDX18 notebook support for HDA codecs (82HD71) (commit), add support for "Maxdata Favorit 100XS" (Intel HDA/ALC260) (commit), add the Device IDs for MCP89 and remove IDs of MCP7B (commit), add tyan model for Realtek ALC262 (commit)
*

Preliminary support for Toshiba SB-0500 (commit)
*

ac97 - Add patch entry for Conexant CX20468-31 chip (commit)
*

Drop outdated and broken sa11xx-uda1341 driver (commit)
*

virtuoso: add Xonar Essence STX support (commit)
*

ASoC
o

Add initial driver for the WM8400 CODEC (commit)
o

Add initial support of Mitac mioa701 device SoC. (commit)
o

machine driver for Toshiba e750 (commit)
o

machine driver for Toshiba e800 (commit)
o

machine support for Toshiba e740 PDA (commit)
o

Driver for the WM9705 AC97 codec. (commit)
o

Add jack reporting interface (commit)
o

Add JIVE audio support (commit)
o

Add Magician machine support (commit)
o

Add s3c64xx-i2s support (commit)
o

Implement WM8350 headphone jack detection (commit)

V4L/DVB

*

Add driver for the ST STV0900 dual demodulator. (commit 1, 2, 3, 4)
*

Add driver for Zarlink ZL10036 DVB-S tuner. (commit)
*

Add driver for the ST STV6110 silicon tuner. (commit)
*

Add driver for the LG Electronics LGDT3305 ATSC/QAM-B Demodulator (commit)
*

Add driver for the Freescale MC44S803 tuner (commit)
*

Add "Sony PlayTV" to dibcom driver (commit)
*

Add cx231xx USB driver (commit)
*

Add driver for Intel CE6230 DVB-T USB2.0 (commit)
*

Add camera (CSI) driver for MX1 (commit)
*

zr364xx: add support for Aiptek DV T300 (commit)
*

af9015: add MC44S803 support (commit), add new USB ID for KWorld DVB-T 395U (commit), add new USB ID for KWorld USB DVB-T TV Stick II (VS-DVB-T 395U) (commit), add support for Trekstor DVB-T USB Stick (commit), add support for Avermedia AVerTV Volar Black HD (A850) (commit)
*

bttv: Add support for IVCE-8784 support for V4l2 bttv driver (commit), add support for Provideo PV-183 (commit), conceptronic CTVFMI2 PCI Id (commit), add support for Geovision GV-800(S) (commit)
*

gspca: Add new mr97310a subdriver. (commit), add new sq905 subdriver (commit), add new sq905c subdriver (commit), add QCIF resolution support to m5602-ov9650 (commit)
*

sms1xxx: add missing usb id 2040:2011 (commit)
*

em28xx: Add support for Kaiomy TVnPC U2 stick (commit), add support for Easy Cap Capture DC-60 (commit), add DVC 101 model to Pinnacle Dazzle description (commit), add Pinnacle Dazzle Video Creator Plus DVC107 description (commit), add Kaiser Baas Video to DVD maker support (commit), add SIIG AVTuner-PVR board (commit)
*

Add support for AVerMedia Cardbus Hybrid remote control (commit)
*

soc-camera: camera host driver for i.MX3x Socs (commit)
*

mxl5007t: update driver for MxL 5007T V4 (commit)
*

lnbp21: Add support for ST LNBH24 LNB power controller. (commit)
*

cx23885: add support for NetUP Dual DVB-S2 CI card (commit), add support for DVBWorld DVBS2 PCI-e 2005. (commit), add support for Turbosight TBS6920 DVB-S2 PCI-e card. (commit)
*

saa7134: add DVB support for Avermedia A700 cards (commit), enable digital tv support for Hauppauge WinTV-HVR1120 (commit), add RDS support. (commit)
*

dib0700: add support for Hauppauge ATSC Minicard (commit), support Yuan MC770 DVB-T (1164:0871) (commit), add Elgato EyeTV DTT to dibcom driver (commit), add ids for Yuan PD378S DVB adapter (commit)
*

cx88: add support for Terratec Cinergy HT PCI MKII (commit)
*

zl10353: add support for Intel CE6230 and Intel CE6231 (commit)
*

tvaudio: add tda9875 support. (commit)
*

uvcvideo: Add support for Syntek cameras found in JAOtech Smart Terminals (commit), add support for the Alcor Micro AU3820 chipset. (commit)
*

ce6230: Add AVerMedia A310 USB IDs to CE6230 driver. (commit)
*

lgs8gxx: Support for Legend Silicon LGS8913/LGS8GL5/LGS8GXX China DMB-TH digital demodulator (commit)

USB

*

serial: add qualcomm wireless modem driver (commit), add symbol serial driver (commit)
*

usbmon: Add binary API v1 (commit)
*

Add platform device support for the ISP1760 USB chip (commit)
*

Allow libusb to talk to unauthenticated WUSB devices (commit)
*

musb: partial DaVinci dm355 support (commit)
*

otg: adding nop usb transceiver (commit)
*

qcserial: add device id for HP devices (commit)
*

r8a66597-hcd: suspend/resume support (commit)
*

remove phidget drivers from kernel tree. (commit)
*

serial: opticon: add write support (commit)
*

serial: opticon: add serial line ioctls (commit)
*

usb-storage: subdriver separation (commit)

HWMON

*

LM95241 driver (commit)
*

Add LTC4215 driver (commit)
*

lis3: SPI transport layer (commit)
*

sht15 humidity sensor driver (commit)
*

Add Asus ATK0110 support (commit)
*

Add support for GMT G760A fan speed PWM controller (commit)
*

fschmd: Add support for the FSC Hades IC (commit), add support for the FSC Syleus IC (commit)
*

w83627ehf: Add support for W83667HG (commit)

Bluetooth

*

Add enhanced security model for Simple Pairing (commit)
*

Add global deferred socket parameter (commit)
*

Add support for deferring L2CAP connection setup (commit)
*

Add support for deferring RFCOMM connection setup (commit)
*

Disconnect L2CAP connections without encryption (commit)
*

Fix SCO state handling for incoming connections (commit)
*

Pause RFCOMM TX when encryption drops (commit)
*

Preparation for usage of SOL_BLUETOOTH (commit)
*

Reject incoming SCO connections without listeners (commit)
*

Replace L2CAP link mode with security level (commit)
*

Replace RFCOMM link mode with security level (commit)
*

Restrict application of socket options (commit)

Staging drivers

Warning: The staging drivers are in a alpha development stage, and they can't even considered experimental, but they're included in the source tree in the hope of encouraging its development and stabilization

*

New aten2011 usb-to-serial-converter driver (commit)
*

New b3dfg driver for the Brontes 3d Framegrabber PCI card (commit), (commit)
*

New heci driver to support the Intel Management Engine Interface (MEI)(commit)
*

New line6 usb driver for the guitar amp, cab, and effects modeller PODxt Pro by Line6 (commit)
*

New p9auth driver, which implements Plan 9 style capability device implementation (commit), (commit)
*

New phison ATA driver for the PCIE ATA PS5000 IDE support (commit), (commit)
*

New rt3070 driver for the wireless Ralink 3070 devices (commit)
*

New stlc45xx, wi-fi driver for stlc4550/4560 devices (commit)
*

New USB serial driver for the Quatech ESU-100 8 port usb (commit)
*

comedi: add addi-data drivers (commit), add 8253.h header (commit), add 8255 driver (commit), add acl7225b driver (commit), add adl_pci6208 driver (commit), add rti800 driver (commit), add plx9052 header file (commit), add amplc_pc236 driver (commit), add cb_pcimdas driver (commit), add National Instruments infrastructure (commit), add amcc_s5933 header file (commit), add adl_pci9118 driver (commit), add adv_pci1710 driver (commit), add cb_pcidas driver (commit), add ni_labpc drivers (commit), add nt_atmio driver (commit), add nt_mio_cs driver (commit), add nt_pcimio driver (commit), add jr3_pci driver (commit), add das08 drivers (commit), add comedi_rt_timer virtual driver (commit), add adl_pci7432 driver (commit), add adl_pci8164 driver (commit), add adl_pci9111 driver (commit), add adq12b driver (commit), add unioxx5 driver (commit), add ssv_dnp driver (commit), add skeleton driver (commit), add serial2002 driver (commit), add adl_pci7296 driver (commit), add pcl724 driver (commit), add pcl821 driver (commit), add pcl818 driver (commit), add s526 driver (commit), add rti802 driver (commit), add quatech_daqp_cs driver (commit), add poc driver (commit), add multiq3 driver (commit), add fl212 driver (commit), add gsc_hpdi driver (commit), add ii_pci20kc driver (commit), add ke_counter driver (commit), add mpc624 driver (commit), add mpc8260 driver (commit), add contec_pci_dio driver (commit), add ni_mio_common code (commit), add pcmda12 driver (commit), add pcmad driver (commit), add pcl711 driver (commit), add daqboard2000 driver (commit), add adv_pci1723 driver (commit), add adv_pci_dio driver (commit), add aio_aio12_8 driver (commit), add aio_iiro_16 driver (commit), add ampl_dio200 driver (commit), add amplc_pc263 driver (commit), add amplc_pci224 driver (commit), add amplc_pci230 driver (commit), add cb_das16_cs driver (commit), add das16m1 driver (commit), add dmm32at driver (commit), add pcmmio and pcmuio drivers (commit), add pcl725 driver (commit), add pcl726 driver (commit), add pcl730 driver (commit), add pcl816 driver (commit), add cb_pcidas64 driver (commit), add cb_pcidda driver (commit), add cb_pcimdda driver (commit), add pcm3724 driver (commit), add ni_6527 driver (commit), add ni_65xx driver (commit), add ni_660x driver (commit), add ni_670x driver (commit), add ni_at_ao driver (commit), add ni_pcidio driver (commit), add das1800 driver (commit), add das6402 driver (commit), add das800 driver (commit), add das16 driver (commit), add ni_at_a2150 driver (commit), add ni_at_atmio16d driver (commit), add ni_daq_700 driver (commit), add ni_daq_dio24 driver (commit), add dt2601 driver (commit), add dt2811 driver (commit), add dt2814 driver (commit), add dt2815 driver (commit), add dt2817 driver (commit), add dt282x driver (commit), add dt3000 driver (commit), add c6xdigio driver (commit), add cb_pcidio driver (commit), add pcm3730 driver (commit), add new drivers to the kernel build (commit)
*

sxg: Add checksum control option through ethtool interface (commit), add Checksum Offload support for Sahara SXG driver (commit), add Jumbo frames support to Sahara SXG Driver (commit), add multicast support for Sahara SXG driver (commit), add NAPI feature to Sahara SXG Driver (commit), add Rev B support in the Sahara SXG driver (commit)
*

rt2860: Ported v1.7.1.1 changes into v1.8.0.0, becoming v1.8.1.1 (commit)
*

rt2870: add Linksys WUSB600N device id (commit)

I2C

*

xtensa s6000 i2c driver (commit)
*

i2c-algo-pca: Add PCA9665 support (commit)
*

iMX/MXC support (commit)
*

i2c-nforce2: Add support for MCP67, MCP73, MCP78S and MCP79 (commit)
*

i2c-piix4: Add support for the Broadcom HT1100 chipset (commit)

RTC

*

Add platform driver for EFI (commit)
*

Add m41t62 support to rtc-m41t80 driver (commit)
*

Add EPSON RX8025 support to DS1307 RTC driver (commit)

HID

*

Add support for another version of 0e8f:0003 device in hid-pl (commit)
*

Add support for Kye/Genius Ergo 525V (commit)
*

Autosuspend support for USB HID (commit)
*

Dragonrise game controller force feedback driver (commit)
*

Support Apple mini aluminum keyboard (commit)
*

support for Kensington slimblade device (commit)

MTD

*

RBTX4939 map driver (commit)
*

TXx9 SoC NAND Flash Memory Controller driver (commit)
*

OneNAND: Add write-while-program support (commit)
*

RBTX4939: add MTD support (commit)
*

UBI: add fsync capability (commit)
*

Flash mapping support for Dreamcast VMU. (commit)
*

NAND
o

davinci_nand driver (commit)
o

Add support for 4KiB pages. (commit)
o

Add support for NAND on the Socrates board (commit)
o

FSL-UPM: add multi chip support (commit)
o

TXx9: add NDFMC support (commit)

FireWire

*

cdev: add ioctls for isochronous resource management (commit), add ioctls for manual iso resource management (commit), add ioctl to query maximum transmission speed (commit), add ioctl for broadcast write requests (commit)
*

Implement asynchronous stream transmission (commit)
*

Broadcast channel support (commit)

See also FireWire release notes at kernel.org.
EDAC&
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
Subject: Linux之父:2.6.30内核将带来“新世界秩序”
Author: fei    Posted: 2009-06-15 12:52    Length: 1,477 byte(s)
[Original] [Print] [Top]
Linux内核2.6.30已经放出,与上一版本相比具有数百个变化,其中包括一个新的挂起/恢复(suspend/resume)体系架构,Linux之父李纳斯·托沃兹(Linus Torvalds)称,该功能将让内核迎来“新世界秩序”.
托沃兹向Linux内核邮件列表宣布,“通过对挂起/恢复中断请求的重新架构设计,很有希望进入一个新世界秩序,当然我认为众多细节依然需要修改.”

托沃兹表示,“我相信我们缺失了一些东西,而且我们有一些尚待修补的不足之处.不过总体来看它非常不错,最近几天我们已经修复了一些缺点,未来肯定会有2.6.30.x版本.”

内核的重大版本包括2.2、2.4、2.6等版本,更多的功能正在被加入到较小版本中,2.6.30也不例外.

据Linux内核版本wiki网站Kernelnewbies.org称,2.6.30增加了许多对文件系统的支持,包括基于对象的存储设备文件系统 NILFS2;本地缓存NFS数据的缓冲层;在集群各服务器之间分发可靠连接的RDS协议;分布式的网络文件系统(POHMELFS);和在 ext3、ext4和btrfs重命名文件的自动刷新.

托沃兹表示,“和以前一样,在真正公布其详细信息之前我将再等待一两天,我希望人们真正测试这个版本内核.”

除了文件系统之外,另一个变化较大的方面是设备驱动,具有数百处修改,以及对存储、图形、网络(包括无线)、声音、数字电视、USB、FireWire和蓝牙设备的增强支持.

如果设备支持基于内核2.6.30的Linux版本的话,它将为终端用户带来更好的体验.

该内核还包括“分阶段驱动(staging drivers)”支持,目前处于早期开发阶段,尽管这是一个试验中的功能,还是被包含在源代码树中,以希望能借此推动它的开发和稳定.

CPU开发围绕x86台式机和服务器以及ARMy移动架构.
----
Debian,Gentoo,Slackware,FreeBSD是我永远的最爱。
[Original] [Print] [Top]
« Previous thread
中国公司发布基于linux的智能手机
业界新闻与评论
29
Next thread »
[精华] 我们的龙芯2号
     

Copyright © 2007~2009 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
webmaster: webmaster@unixresources.net
This page created on 2009-09-07 15:52:38, cost 0.138374090195 ms.