2.6.25, "Long Promised"

Submitted by Jeremy
on April 17, 2008 - 6:48am

"It's been long promised, but there it is now," began Linux creator Linus Torvalds, announcing the 2.6.25 Linux kernel. He continued, "special thanks to Ingo who found and fixed a nasty-looking regression that turned out to not be a regression at all, but an old bug that just had not been triggering as reliably before. That said, that was just the last particular regression fix I was holding things up for, and it's not like there weren't a lot of other fixes too, they just didn't end up being the final things that triggered my particular worries." Linus added:

"The full changelog from 2.6.24 is 7.5M, with a 12MB compressed patch. Tons and tons has changed, but if you've been following the -rc releases, you'll already know about the big things. The changes from the last rc (-rc9) are fairly small and mostly pretty trivial, and the shortlog is appended. So it's mostly one-liners, with some updates to drivers (net and usb) and to networking that are a bit larger (although a number of the driver updates are things like just new ID's etc)."

More information about the latest release can be found on the KernelNewbies Linux 2.6.25 wiki page.


From: Linus Torvalds <torvalds@...>
Subject: Linux 2.6.25
Date: Apr 16, 11:32 pm 2008

It's been long promised, but there it is now. Special thanks to Ingo who
found and fixed a nasty-looking regression that turned out to not be a
regression at all, but an old bug that just had not been triggering as
reliably before.

That said, that was just the last particular regression fix I was holding
things up for, and it's not like there weren't a lot of other fixes too,
they just didn't end up being the final things that triggered my
particular worries.

The full changelog from 2.6.24 is 7.5M, with a 12MB compressed patch. Tons
and tons has changed, but if you've been following the -rc releases,
you'll already know about the big things. The changes from the last rc
(-rc9) are fairly small and mostly pretty trivial, and the shortlog is
appended.

So it's mostly one-liners, with some updates to drivers (net and usb) and
to networking that are a bit larger (although a number of the driver
updates are things like just new ID's etc).

For those of you who haven't followed -rc's, and want the more readable
overview of what has changed since 2.6.24, I'd suggest the usual sites,
notably http://kernelnewbies.org/.

And a reminder for git users: while the _full_ changelogs are huge and
unwieldly and you easily lose sight of the big picture from just bring
overwhelmed by the details, if you're interested in some particular
subsystem, using "gitk v2.6.24.. " is a good way to see what
has changed in that particular area.

Linus

---
Adrian Bunk (3):
[libata] make ali_atapi_dma static
sh64: add missing #include 's
avr32 mustn't select HAVE_IDE

Alexey Dobriyan (1):
fbdev: fix /proc/fb oops after module removal

Alexey Korolev (1):
JFFS2 Fix of panics caused by wrong condition for hole frag creation in write_begin

Andrew Morton (2):
sh: arch/sh/kernel/traps_32.c needs asm/fpu.h
sh: export empty_zero_page

Atsushi Nemoto (2):
macb: Call phy_disconnect on removing
macb: Use semicolon instead of comma for statement

Ayaz Abdulla (1):
forcedeth: mac address fix

Ben Dooks (3):
spi: spi_s3c24xx driver must init completion
spi: spi_s3c24xx must initialize bus_num
spi: spi_s3c24xx must initialize num_chipselect

Ben Hutchings (1):
[NET]: Fix kernel-doc for skb_segment

Carlos Corbacho (1):
rfkill: Fix device type check when toggling states

Chuck Ebbert (1):
acpi: bus: check once more for an empty list after locking it

David Howells (1):
FRV: Correctly determine the address of an illegal instruction

David S. Miller (1):
[IPV6]: Fix ipv6 address fetching in raw6_icmp_error().

Dmitri Vorobiev (1):
Fix typos in Documentation/filesystems/seq_file.txt

Eric Dumazet (1):
[SOCK] sk_stamp: should be initialized to ktime_set(-1L, 0)

Greg Kroah-Hartman (1):
USB: remove broken usb-serial num_endpoints check

Gui Jianfeng (1):
[SCTP]: Fix protocol violation when receiving an error lenght INIT-ACK

Herton Ronaldo Krzesinski (1):
rtl8187: Add missing priv->vif assignments

Ingo Molnar (2):
revert "sched: fix fair sleepers"
mm: sparsemem memory_present() fix

Ivo van Doorn (2):
Add rfkill to MAINTAINERS file
Update rt2x00 MAINTAINERS entry

J. Bruce Fields (1):
locks: fix possible infinite loop in fcntl(F_SETLKW) over nfs

James Cameron (1):
USB: Obscure Maxon BP3-USB Device Support 16d8:6280 for option driver

Jan Kara (1):
vfs: fix possible deadlock in ext2, ext3, ext4 when using xattrs

Jarek Poplawski (2):
[NET_SCHED] cls_u32: refcounting fix for u32_delete()
[NET_SCHED] sch_api: fix qdisc_tree_decrease_qlen() loop

Jeff Garzik (1):
[libata] sata_svw: fix reversed port count

Jens Axboe (2):
io context: increment task attachment count in ioc_task_link()
block: update git url for blktrace

Joakim Tjernlund (1):
ucc_geth: fix non-functional fixed phy support

Johannes Berg (1):
mac80211: remove message on receiving unexpected unencrypted frames

KOSAKI Motohiro (1):
add "Isolate" migratetype name to /proc/pagetypeinfo

Kay Sievers (5):
mmc: fix platform driver hotplug/coldplug
leds: fix platform driver hotplug/coldplug
misc: fix platform driver hotplug/coldplug
pcmcia: fix platform driver hotplug/coldplug
serial: fix platform driver hotplug/coldplug

Krzysztof Halasa (1):
Mark generic HDLC + PPP as broken.

Krzysztof Helt (1):
acpi thermal trip points increased to 12

Kyle McMartin (1):
[PARISC] fix signal trampoline cache flushing

Laurent Pinchart (1):
fs_enet: Don't call NAPI functions when NAPI is not used.

Li Zefan (1):
memcg: fix oops in oom handling

Linus Torvalds (2):
Fix locking bug in "acquire_console_semaphore_for_printk()"
Linux 2.6.25

Manuel Lauss (1):
sh: fix compressed kernel build

Masakazu Mokuno (1):
PS3: gelic: fix the oops on the broken IE returned from the hypervisor

Matthias Urlichs (1):
USB: option.c: add more device IDs

Michael Buesch (2):
ssb: Fix usage of struct device used for DMAing
b43legacy: Fix usage of struct device used for DMAing

Michael Ellerman (1):
netconsole: only set CON_PRINTBUFFER if the user specifies a netconsole

Nishanth Aravamudan (1):
Documentation: correct overcommit caveat in hugetlbpage.txt

Oliver Hartkopp (1):
[CAN]: Update documentation of struct sockaddr_can

Patrick McHardy (3):
[DCCP]: Fix skb->cb conflicts with IP
[NET]: Return more appropriate error from eth_validate_addr().
[BRIDGE]: Fix crash in __ip_route_output_key with bridge netfilter

Paul Bolle (4):
[ISDN]: Do not validate ISDN net device address prior to interface-up
MAINTAINERS: isdn4linux@listserv.isdn4linux.de is subscribers-only
AFS: Do not describe debug parameters with their value
it821x: do not describe noraid parameter with its value

Pavel Emelyanov (3):
[AX25]: Potential ax25_uid_assoc-s leaks on module unload.
[SCTP]: IPv4 vs IPv6 addresses mess in sctp_inet[6]addr_event.
[NETFILTER]: ipt_CLUSTERIP: fix race between clusterip_config_find_get and _entry_put

Reinette Chatre (1):
MAINTAINERS: move to generic repository for iwlwifi

Rusty Russell (2):
net: make struct tun_struct private to tun.c
net: check for underlength tap writes

Sergei Shtylyov (4):
tg3: fix MMIO for PPC 44x platforms
Au1200: kill IDE driver function prototypes
Au1200: IDE driver build fix
Pb1200/DBAu1200: fix bad IDE resource size

Sonic Zhang (1):
smc91x driver: fix bug: print warning only in interrupt mode

Stefano Brivio (2):
b43legacy: fix initvals loading on bcm4303
b43legacy: fix DMA mapping leakage

Stephen Hemminger (2):
sky2: missing chip name for Yukon Supreme
sc92031: sysfs link missing

Thomas Klein (1):
ehea: Fix DLPAR memory add support

Vitaliy Gusev (2):
[TCP]: Fix never pruned tcp out-of-order queue.
[TCP]: Add return value indication to tcp_prune_ofo_queue().

Vlad Yasevich (1):
[SCTP]: Fix compiler warning about const qualifiers

WANG Cong (1):
uml: compile error fix

Wei Yongjun (1):
[SCTP]: Add check for hmac_algo parameter in sctp_verify_param()

YOSHIFUJI Hideaki (4):
[IPV6]: IPv6 extension header structures need to be packed.
[IPV6]: Use appropriate sock tclass setting for routing lookup.
[IPV6] ADDRCONF: Ensure disabling multicast RS even if privacy extensions are disabled.
[IPV6] ADDRCONF: Don't generate temporary address for ip6-ip6 interface.

Zhao Yakui (1):
rtc: fix the error in the function of cmos_set_alarm

fangxiaozhi (1):
USB: support more Huawei data card product IDs

tang kai (1):
USB: option: Add new vendor ID and device ID for AMOI HSDPA modem

yakui.zhao@intel.com (1):
acpi: unneccessary to scan the PCI bus already scanned

--


iptables/tos

Anonymous (not verified)
on
April 17, 2008 - 9:29am

hi,

do I need a coffe or

iptables -t mangle -A POSTROUTING ... -j TOS --set-tos 0x10

does not work anymore w/ 2.6.25

Sane...

Anonymous (not verified)
on
April 18, 2008 - 1:05pm

do I need a coffe or...

Nah, you just need to use a sane packet filter, like pf. Seriously, though, you should really try it out. You can write cool rules like `pass out quick on $cheap_gin' ;-)

good new free-born

Anonymous (not verified)
on
April 18, 2008 - 12:46am

good new free-born kernel
Linux forever!

Petr

kool, am downloading it now.

Anonymous (not verified)
on
April 18, 2008 - 7:35am

kool, am downloading it now. Everything else on hold. :)

I wonder if this is going to be a faster kernel on my P4. :)

By the way shouldn't Free Born equal 2.27 at least or maybe 2.30 at most?

free born?

Anonymous (not verified)
on
April 18, 2008 - 11:35pm

free born? what means this?
i don't get it

Linux the best!

Hypotheek (not verified)
on
April 20, 2008 - 6:48am

Totally agree on that Petr, love linux! Hope they will last long... Regards, Aislin

"Linux forever!" lol - with

Anonymous (not verified)
on
April 22, 2008 - 3:10pm

"Linux forever!"

lol - with this chaotic development, well we will see if will survive another 15 years :D

CONFIG_GROUP_SCHED=y CONFIG_F

Anonymous (not verified)
on
April 18, 2008 - 8:45pm

CONFIG_GROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y

I'm still disappointed that this is the default config. I'm not saying that group process scheduling is a bad idea (it isn't, it is a very cool idea in theory), but that the implementation is awkward.

Group A can run nothing but normal priority tasks, e.g. nice -0. Group B can run nothing but low priority tasks, e.g. nice -19. But group scheduling gives them each 50% CPU usage by default, whereas with classic scheduling, the nice -19 tasks would be given much less CPU.

I know you can set weights per group and give low priority users less weight. But that doesn't allow you to give your users equal priority and let them decide for themselves if they want to be nice or not. You simply can't give them that control when you have group scheduling enabled.

The fact that it is the default setting means most distros will be using it, and users who don't want it will need to recompile their kernels without the option. That isn't really a problem for me, but it will really hurt a lot of users who expect nice priorities to work like they have worked for the last ~40 years.

it shouldn't be a problem...

Tomasz Chmielewski (not verified)
on
April 19, 2008 - 2:36pm

That's the idea of using groups.

And since there are no groups by default, it shouldn't be a problem, shouldn't it (i.e., nice priorities will work like before, unless you configure groups)?

CONFIG_FAIR_USER_SCHED=y

Anonymous (not verified)
on
April 20, 2008 - 4:10am

CONFIG_FAIR_USER_SCHED=y

This defines the process groups to be based on UIDs, and it is set by default along with the group scheduling option.

That's the idea of using groups.

Yes, it is a great idea and probably should have been done a long time ago. But as it is, it should still be experimental.

User A runs a single nice 19 task and User B runs nice 0 tasks, and the nice 19 task gets 50% of the CPU with *default* behavior, so something has gone wrong.

That's not even an edge case.

Hmm, no such option here in

Anonymous (not verified)
on
April 20, 2008 - 6:30am

Hmm, no such option here in the default .config?

[root@pascal linux-2.6.25]$ grep CONFIG_FAIR_USER_SCHED .config
[root@pascal linux-2.6.25]$

It is CONFIG_USER_SCHED in

Anonymous (not verified)
on
April 20, 2008 - 2:24pm

It is CONFIG_USER_SCHED in .25, and it is default=y. The "FAIR" part of the name was taken out of the names in .25, but it is the same.

Re: CONFIG_FAIR_USER_SCHED=y

dany (not verified)
on
April 21, 2008 - 1:28pm

User A runs a single nice 19 task and User B runs nice 0 tasks, and the nice 19 task gets 50% of the CPU with *default* behavior, so something has gone wrong.
---

Scheduler will of course look at nice level too and will NOT give 50% CPU to user A with task of nice level 19.

Scheduler will of course

Anonymous (not verified)
on
April 21, 2008 - 10:32pm

Scheduler will of course look at nice level too and will NOT give 50% CPU to user A with task of nice level 19.

Something tells me you haven't actually tried it. Run a defconfig kernel and try the test.

Run as many CPU-heavy processes per user as you have cores. So if you have a dual-core, run two nice 19 tasks as user A and two nice 0 tasks as user B. For a quad-core, run four processes per user instead.

Then look at the output of top. All processes have 50% CPU usage, whereas it is expected that user A's nice 19 tasks would have almost 0% and user B's 100%.

The process can simply be a C "while(1)" program.

This should be an experimental option, not default behavior.

Comment viewing options

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