Kernel Weekly News – 22.01.2011

Posted: January 17, 2011 in kernel

Hello world, and welcome to the first edition of KWN for 2011!
Long talk is no fun, so let’s jump into it!

-We start this week’s news with Dan Williams, who has a pull requests for .38 regarding
the async_tx tree :

Hi Linus, please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx.git next

...to receive:

1/ An overhaul of the amba-pl08x driver by Russell who caught a lot of
issues in this experimental driver that really should have been caught
before the initial merge.

2/ A collection of small updates and fixes across fsldma, dma40,
intel-mid, and iop-adma.

All but the last two amba-pl08x patches have appeared in a -next
release.

Thanks,
Dan 

-Dave Airlie has some drm fixes, fixes that are described as follows :

A bunch of radeon and nouveau fixes. Ben says this should fix any
corruption people are seeing with plymouth splash screens, and the radeon
fixes are scattered around, the main one being not enabling PCIE GEN2 mode
by default, seems like AGP PCIE vendors make crappy chipsets.

-Al Viro has also a pull request, this time for the vfs tree, which consists
mainly of “sweeping the misc stuff”; Tyler Hicks has a request himself,
this time for ecryptfs (.38-rc1), also for -rc1 there is Chris Mason and his collection
of btrfs updates (

Hi everyone,

The for-linus branch of the btrfs-unstable git tree:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable.git for-linus

Has our collection of features and fixes for 2.6.38-rc1.  The git tree
is actually against 2.6.36 and these commits have been tested against
.36, .37 and Linus' current git.  There's no particular reason for the
.36 part, other than it's what one of my build boxes was running.

The highlights this time around are LZO compression from Li Zefan and a
large collection of multi-device fixes from Miao Xie.  Liubo kicked in
the start of our forced-readonly support, which will be the building
block for ripping out a big collection of BUG_ONs and replacing them
with kinder gentler error messages.

Li Zefan also added readonly snapshot support, and I'll have the
corresponding btrfs-progs changes integrated this week.

This pull does have a duplicate for the btrfs ctree.c build fix that
Linus already has in his tree.  Git merge seems to do magic on this one,
it applies without doing a duplicate #include.

, also we have a
infiniband-related request from Roland Dreier and , last but not least,
it’s Al Viro again with autofs cleanups and fixes.

– Still in the updates/pull requests zone, here’s a list :

-Kukjin Kim – linux-samsung tree

-Arnaldo Carvalho de Melo – perf/urgent

-Greg Ungerer – m68knommu

-Michal Simek – arch/microblaze fixes for 2.6.38

-James Bottomley – PARISC fixes for 2.6.38-rc1

-John W. Linville – fixes for the wireless tree, aimed @ .38

-Guenter Roeck – hwmon changes for 2.6.38 and

-ACPICA patches by Len Brown for 2.6.38-merge .

-There it is, fellas, -rc1 is here! Read all about it from Linus’

announcement!

It's been two weeks, and the merge window for 2.6.38 is thus closed.
And an interesting merge window it has been.

This merge window saw the introduction of two of my favorite new features:

 - the use of group scheduling to give nicer interactive behavior in
the presence of "traditional" UNIX loads (ie terminal windows with
heavy loads like a "make -j8" or similar) by giving tty sessions
separate groups (the SCHED_AUTOGROUP config variable)

 - Nick's new (well, "new" - it's been brewing for a long time)
RCU-based path name lookup.

So the autogroup thing is really more of a technical gimmick than
anything else, but it really works very well for the kinds of things
it is designed for. If you still do "real work" in a terminal window,
you're likely to appreciate it. Compile in parallel in one window,
watch a movie in another, and the movie is really smooth. It can be
very noticeable indeed. It's not a panacea, but it's nice for what it
is.

The RCU-based name lookup is at the other end of the spectrum - the
absolute anti-gimmick. It's some seriously good stuff, and gets rid of
the last main global lock that really tends to hurt some kernel loads.
The dentry lock is no longer a big serializing issue. What's really
nice about it is that it actually improves performance a lot even for
single-threaded loads (on an SMP kernel), because it gets rid of some
of the most expensive parts of path component lookup, which was the
d_lock on every component lookup. So I'm seeing improvements of 30-50%
on some seriously pathname-lookup intensive loads.

So last cycle, we got rid of most of the BKL - which was really nice,
but practically speaking it was not a very important lock any more.
This cycle was different: Nick's series (and thanks to everybody else
who helped) really help a very real scalability and performance issue.
And we used to be rather good at pathname lookup before - now we're
just a whole lot better.

Now, those two are my personal favorites, but that's not to say that
you may care. Not all loads are all that name-lookup heavy, and the
scheduler auto-grouping may not matter for you. So to round the thing
up, we have a metric ton of other features, with drivers as usual
accounting for about half of the changes. The most noticeable part
during the merge window was the DRI updates, which caused some pain.
The most obvious fallout of that should all have been fixed, and we
should now have support for the AMD Fusion stuff along with some Fermi
acceleration support. And several updates to the Intel driver too.

But never fear. If you don't care about pathname lookup, scheduling or
graphics cards, I'm sure you can find changes to be excited about,
whatever your area of interest is. SCSI target infrastructure? Or all
the architecture updates (notably ARM and blackfin platform
additions)? Or just the sound and media drivers? Go look at your
favorite area in the git tree, I suspect it has gotten some love.

And as usual, report any regressions to the lists and the appropriate
authorities.

                    Linus 

-Ingo Molnar came up with a new set of fixes for the x86 tree, so did James Morris
for sthe security-testing tree, Rusty Russell has updates and fixes to lguest and virtio
while David Miller updated the networking tree
through a git pull request, summarized by himself as follows:

 1) Revert a netlink flag sanity check that is causing regressions in
   existing applications.

2) can_checksum_protocol() args were swapped, causing broken ipv6
   checksum handling with devices that cannot offload ipv6 checksums.
   Regression fix from Eric Dumazet.

3) CAN protocol sendmsg() doesn't validate sockaddr size, fix from
   Kurt Van Dijck.

4) Name space creation spams logs with useless ipv6 private extension
   messages, fix from Romain Francoise.

5) sctp SACK timer socket option is not properly named, but since it's
   been wrong for a long time provide a back-compat cpp define as well
   so we don't break existing apps.  Fix from Shan Wei.

6) NETIF_F_HW_VLAN_TX accidently masked out in network device offloading
   feature tests, regression fix from Jesse Gross.

7) iwmc3200wifi accidently returns ERR_PTR(0) on allocation failures,
   fix from Axel Lin.

8) rt2x00 leaks memory in firmware request error path, from Jesper Juhl.

9) Make IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK definition match spec, from
   Amitkumar Karwar.

10) Fix erroneous lockdep warnings in mac80211, from Johannes Berg.

11) In mac80211 aggregate code, handle black ack parameter of zero correctly,
    which means we should use maximum supported number of sub-frames.  Fix
    from Luciano Coelho.

12) Missing allocation failure checks in batman-adv meshing code, fix from
    Jesper Juhl.

13) TX checksumming bug fix in qeth from Frank Blaschka.

14) Fix error checking in cfcnfg_disconn_adapt_layer() CAIF protocol
    code, from Dan Carpenter.

15) vmxnet driver bug fixes from Shreyas Bhatewara, Guolin Yang,
    Matthieu Bucchianeri, and Dmitry Torokhov:
    1) Wrong variable used in ring size updates.
    2) ifconfig set MAC address setting gets lost
    3) NAPI needs to be disabled/enabled across suspend/resume.
    4) Command register access needs locking
    5) Too many MSI-X vectors allocated in single TX single RX queue case

16) Endianness fixes in ath9k_htc driver from Rajkumar Manoharan.

17) tx_complete_poll_work locking fix in ath5k driver from Bob Copeland.

18) iwlwifi EEPROM reading fix from Wey-Yi Guy.

19) LED, microcode loading, and duplex setting fixes for bnx2x from
    Yaniv Rosner and Eilon Greenstein.

20) ns83820 driver checks wrong pointer for NULL after alloc_etherdev(),
    fix from Jesper Juhl. 

-Here goes the final series of pull requests for this week :

-Ingo Molnar – scheduler and core fixes
-Jan Kara – quota fixes for -rc2
-Benjamin Herrenschmidt – powerpc fixes :

 Here's a bunch of powerpc stuff for you to pull. There's a whole series from
Anton which is in large part trivial cleanups, but it's all obvious enough
stuff or worthy enough fixes that I decided to not wait until the next merge
window (besides it's from Anton :-)

The rest is generally minor fixes. The two simple_write_to_buffer changes
from Akinobu were around for a while (and Andrew had picked them up already),
I just happen to have "missed" them in my collection for the previous batch.

-Takashi Iwai – sound fixes for 2.6.38-rc2

So, that’s it, enjoy your weekend!

Leave a comment