kernel weekly news – 19.03.2011

Posted: March 18, 2011 in kernel

Hello world! Welcome to this week’s KWN! Here’s the
news…

-Dave Airlie has one drm fix, but a very important one, since it fixes some nasty
hangs related to some older radeon GPUs; Chris Mason has btrfs updates,
mainly fixing some regressions:

 Hi everyone,

We've been working on a few important Btrfs regressions for the last two
weeks, and this pull request has the result.  Many thanks to Mitch
Harder and Xin Zhong for nailing down the btrfs_file_write looping.

Linus, please pull the master branch of the btrfs unstable tree:

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

These commits keep btrfs_file_write from looping forever when things go
wrong with copy_from_user, and they also make sure not to produce
partially up to date pages if copy_from_user gives us a short return.

Hammering on btrfs fiemap found another bug where we returned
overlapping extents, which made for incorrect results with the cp
program (destination files larger than the original).

This pull also has a commit to tweak our forced delalloc writeback while
we are trying to reclaim space.  With a number of writers determined to
fill the FS, we used to end up stuck in shrink_delalloc forever. 

-Wim Van Sebroeck announces watchdog updates and fixes for
2.6.38-rc8, Greg Kroah Hartman has an announcement himself,
namely 2.6.37.4 – here is the link for browsing the code :
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.37.y.git;a=summary,
also Greg updated the 2.6 32 branch – the rsult is 2.6.32.33,
and we have xen updates from Konrad Rzeszutek Wilk for
2.6.39.

-But the most important news this week is , no doubt, the release of 2.6.38 :

 Not a lot of changes since -rc8. Most notably perhaps some late nfs
and btrfs work, and a mips update. Along with some more vfs RCU lookup
fallout (which would only be noticeable with the filesystem exported
with nfsd, which is why nobody ever noticed).

And the usual driver updates, mostly media and GPU, but some
networking too. The appended shortlog is for the changes since -rc8,
and gives some feel for it. Nothing really too exciting, I think.

As to the "big picture", ie all the changes since 2.6.37, my personal
favorite remains the VFS name lookup changes. They did end up causing
some breakage, and Al has made it clear that he wants more cleanups,
but on the whole I think it was surprisingly smooth. I think we had
more problems with random other components (nasty memory corruption in
networking etc) than with the rather fundamental path lookup change.

So I'm hoping this ends up being a fairly calm release despite some
really deep changes like that.

                     Linus 

-Tejun Heo has workqueue changes for 2.6.39-rc1 :

 Nothing too important.  Other than addition of system_freezable_wq and
some cosmetic changes, there's no change to workqueue code itself.
All other changes are updates to the various workqueue users so that
they better utilize the new features and move away from the old APIs.

Most of flush_scheduled_work() and create_workqueue() users have been
converted and I'm planning on deprecating and/or removing them in the
opening devel cycle.  create_singlethread_workqueue() is the next but
that's gonna take some more time. 

-Tejun also announces percpu updates , also for 2.6.39-rc1 :

 Only four commits.  Two for aligning percpu readmostly subsection to
cacheline to avoid sharing a cacheline with rw data.  The other two
from Christoph implement this_cpu_cmpxchg_double() which is a rather
nasty operation which does cmpxchg on two long's, which x86 supports
with cmpxchg{8,16}b instructions.  This is used by sl?b allocators to
implement lockless operation and shows measurable performance
improvements in hot paths. 

-Stefano Sabellini has worked on xen also, and proposes some patches
and fixes for the pvhvm tree, v9fs benefits from the love of Eric Van
Hensbergen and Rolan Dreier has updates on infiniband for 2.6.39.

-Christoph Hellwig mailed the report on XFS status for February.
Here it is :

 February saw the stabilization of the Linux 2.6.38 tree, with just two
small XFS fixes going into Linus' tree, and the XFS development tree
has been similarly quite with just a few cleanups, and the delaylog option
propagated to the default operation mode.  A few more patches for the 2.6.39
merge window have been posted and/or discussed on the mailing list, but February
was a rather quite month in general.

On the user space side xfsprogs saw a few bug fixes, and a speedup for
phase2 of xfs_repair, xfsdump saw a bug fix and support for pruning the
inventory by session id, and xfstests saw it's usual stream of bug fixes
as well as two new test cases. 

-Ingo Molnar has a whole lot of updates for the tip section, including
perf, scheduler, timer, x86, asm, irq, basically most of the parts he’s
working on usually. Rafael J. Wysocki has power management updates
for 2.6.39, and the short story is like so:

 Hi Linus,

Please pull power management updates for 2.6.39 from:

git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6.git for-linus

They include:

* Wakeup sources framework fixes.

* PM core modification preventing sysfs files related to wakeup from being
  created for devices that can't wake up the system.

* Reduction of the number of power management Kconfig options.

* Runtime PM framework modification allowing pm_runtime_suspend() to succeed
  during system suspend.

* Removal of pm_flags.

* Support for device power domains in the core PM code.

* PM core and runtime PM framework modification making them treat subsystems
  in a consistent way.

* Introduction of struct syscore_ops for implementing core subsystems'
  suspend/resume and shutdown operations without using sysdevs.

* Various PM-related fixes. 

-James Morris has changes and improvements to the security subsystem (2.6.39) :

 Please pull the following changes for the 2.6.39 kernel.

Notable enhancements: 

- Improved mmap support for Smack
- Pathname hooks for CacheFiles (previously unmediated for pathname security)
- Improved management & error handling for keys
- Pass the last pathname component to LSM when creating an inode, to 
  allow it to be used in labeling decisions; implementation for SELinux
- New sb_remount LSM hook; implementation for SELinux to refuse remounts
  if mount labels change
- Misc. fixes and cleanups for AppArmor, SELinux networking, IMA and 
  TOMOYO 

-Colin Cross has ARM Tegra updates (.39), Michal Simek has Microblaze changes
(also 2.6.39) , Al Viro has announced the first part of his series of vfs fixes , Grant
Likely announces devicetree fixes for .39, Geert Uytterhoeven has m68k fixes
also for .39 and Guenter Roeck has hwmon updates and improvements for 2.6.39
as well.

-David Miller has quite a few networking fixes :

 I just did a test merge of this work into your tree and it went without
any conflicts, so it should go easy for you too.

1) The long awaited addition of Jozsef Kadlecsik's totally awesome
   "ipset" to netfilter.

2) Several major changes to our routing infrastructure:

   a) Routing metrics are stored in inetpeer cache and are COW'able.

   b) PMTU and redirect information can be stored in the inetpeer
      cache as well.  IPV4 is fully converted over to this scheme.

      Changes 'a' and 'b' are significant because it paves the way
      to be able to legitimately remove the ipv4 routing cache once
      we can get the FIB backend efficient enough.

   c) Route flow lookup keys and compacted, and optimized for the
      individual address families.  On ipv4 this means the (often
      on-stack) flow keys are 32 bytes in size, instead of the
      whopping 60 bytes they used to be.

   d) Instead of returning an error code, and writing the resulting
      route entry pointer on the callers stack by reference, we
      return error encoded pointers instead.

   e) We had two ipv4 routing table lookup algorithms, selected
      at compile time, one based upon a set of hash tables and
      another based upon the LC-trie data structure.  After many
      years it is time to stop having two sets of code to update
      when fixes or API changes take place, and settle on the
      LC-trie.  fib_hash has therefore been completely removed.

   f) Several optimizations to the slow paths of IPV4 routing lookups,
      in particular caching of per-nexthop source address selection
      values in the FIB table entries.

   g) The routing cache entry data structure, struct rtable, has
      been completely stripped of extraneous and unnecessary members.

3) The initial TCP congestion window is increased to 10, as per
   draft-hkchu-tcpm-initcwnd-01

4) Multi-threaded sending on UDP sockets are significantly improved
   by eliminating the use of shared socket state in the non-cork
   cases of I/O.  From Herbert Xu.

5) Several fixes to the Hystart mechanism of CUBIC TCP congestion
   control.  From Stephem Hemminger, Sangtae Ha, and Lucas Nussbaum.

6) Many cleanups and improvements to IPVS support in netfilter from
   Simon Horman, Julian Anastasov, and many others.

7) Add the XEN network backend driver, from Ian Campbell.

8) Numerous cleanups, simplifications, and fixes to the TIPC stack
   from Allan Stephens and Paul Gortmaker.

9) Support for extended sequence numbers in IPSEC, from Steffen
   Klassert.

10) Socket filters can now be used with AF_UNIX sockets.  From
    Alban Crequy.

11) Socket filter running no longer blocks softirqs, as they are fully
    re-entrant and lock-less.  From Eric Dumazet.

12) Support for network device groups, which allows manipulation of
    settings on a group basis, from Vlad Dogaru.

13) Add HW based qos support, in that we can now use the skb->priority
    field to steer packets to individual HW TX queues.  From John
    Fastabend.

14) Convert PPP away from direct SKB list implementation details as
    much as possible, with much help from Paul Mackerras.

15) RPS can now be accelerated directly in hardware, thanks to
    Ben Hutchings.

16) New packet schedulers, CHOKe and SFB, From Stephen Hemminger and
    Eric Dumazet.

17) Consolidation of how bonding binds master and slave devices, as well	
    as how RX packet processing works.  From Jiri Pirko and others.

18) Harmonization of network device checksum offload setting
    management, from Michał Mirosław.

19) Support correlated packet loss support to the network emulator
    packet scheduler, from Stephen Hemminger and based upon work done
    by Stefano Salsano and Fabio Ludovici.

20) An entry in the ip_tos2prio[] table has been wrong for ~8 years :-)
    Thanks to Dan Siemon and Eric Dumazet.

21) As usual the wired and wireless developers have been busy little
    bees fixing bugs, improving performance, and adding new features.
    See the changelog for details.

Please pull, thanks a lot. 

-watchdog fixes are announced by Wim van Sebroeck for -rc1, m68knommu
updates by Greg Ungerer, Paul Mundt has fbdev and sh updates , also for -rc1
, Guan Xuetao has a pull request to add unicore32 support and David Brown
has MSM fixes for .39 .

-Marcello Tosatti has updated the kvm tree with some updates aimed at
2.6.39, Trond Myklebust has a pull request with NFS client changes, Chris
Metcalf announces updates for arch/tile (.39), linux-fs receives some updates
from Jan Kara aimed at -rc1 and James Bottomley announces SCSI updates.

-As the closing of the edition is nearing, here are last-minute informations:
-Tony Lindgren – omap changes for 2.6.39 merge window
-Jiri Kosina – HID and trivial updates
-Artem Bityutskiy – UBI and UBIFS changes for 2.6.39

-That’s it for this week, enjoy your weekend!

Leave a comment