kernel news – 24.07.2012

Posted: July 24, 2012 in kernel

-Ingo Molnar updates core/iommu, RCU, perf, smp/hotplug, x86/{asm,debug,platform,reboot,uv} for 3.6,
Rafael J. Wysocki has PM updates for 3.6, Chris Ball updates MMC for -rc1, the security
subsystem gets updated by James Morris and Benjamin Herrenschmidt updates powerpc:

Here’s the powerpc batch for 3.6 merge window. Notable highlights:

– iommu improvements from Anton removing the per-iommu global lock
in favor of dividing the DMA space into pools, each with its own lock,
and hashed on the CPU number. Along with making the locking more fine
grained, this gives significant improvements in multiqueue networking

– Still from Anton, we know provide a vdso based variant of getcpu
which makes sched_getcpu with the appropriate glibc patch something
like 18 times faster.

– More anton goodness (he’s been busy !) in other areas such as a
faster __clear_user and copy_page on P7, various perf fixes to improve
sampling quality, etc…

– One more step toward removing legacy i2c interfaces by using
new device-tree based probing of platform devices for the AOA audio

– A nice series of patches from Michael Neuling that helps avoiding
confusion between register numbers and litterals in assembly code,
trying to enforce the use of “%rN” register names in gas rather than
plain numbers.

– A pile of FSL updates

– The usual bunch of small fixes, cleanups etc…

You may spot a change to drivers/char/mem. The patch got no comment or
ack from outside, it’s a trivial patch to allow the architecture to
skip creating /dev/port, which we use to disable it on ppc64 that don’t
have a legacy brige. On those, IO ports 0…64K are not mapped in kernel
space at all, so accesses to /dev/port cause oopses (and yes, distros
-still- ship userspace that bangs hard coded ports such as kbdrate).


-Paul Mundt has sh updates, Artem Bityutskiy updates UBIFS, Avi Kivity updates KVM,
Linus Walleij updates pinctrl, GFS2 gets updated by Steven Whitehouse, and
Konrad Rzeszutek Wilk is here with Xen updates:

…three nice features and various bug-fixes. A nice summary of them is included
in the git tag. A shorter summary is that two of them are patches mainly for
enterprise machines – to collect MCE data and also offline/online CPUs. Then there is
performance improvements to minimize the amount of traps done to the hypervisor.
And then there are some little fixes. The biggest one is to make PVonHVM guest able
to successfully do an kexec 100% instead of “most” of the time – there were certain
pages that ended up being stamped by the hypervisor after the new kernel was booted –
the patches fix that.

-Roland Dreier steps up with Infiniband fixes, Al Viro has quite a big
pile of VFS changes, like this:

This one is *big* and changes quite a few things around VFS. What’s in there:

* the first of two really major architecture changes – death to
open intents. The former is finally there; it was very long in making,
but with Miklos getting through really hard and messy final push in
fs/namei.c, we finally have it. Unlike his variant, this one doesn’t
introduce struct opendata; what we have instead is ->atomic_open()
taking preallocated struct file * and passing everything via its fields.
Instead of returning struct file *, it returns -E… on error, 0 on success
and 1 in “deal with it yourself” case (e.g. symlink found on server,
etc.). See comments before fs/namei.c:atomic_open(). That made a lot of
goodies finally possible and quite a few are in that pile: ->lookup(),
->d_revalidate() and ->create() do not get struct nameidata * anymore;
->lookup() and ->d_revalidate() get lookup flags instead, ->create()
gets “do we want it exclusive” flag. With the introduction of new helper
(kern_path_locked()) we are rid of all struct nameidata instances outside
of fs/namei.c; it’s still visible in namei.h, but not for long. Come the
next cycle, declaration will move either to fs/internal.h or to fs/namei.c
itself. [me, miklos, hch]

* the second major change: behaviour of final fput(). Now we
have __fput() done without any locks held by caller *and* not from deep
in call stack. That obviously lifts a lot of constraints on the locking
in there. Moreover, it’s legal now to call fput() from atomic contexts
(which has immediately simplified life for aio.c). We also don’t need
anti-recursion logics in __scm_destroy() anymore. There is a price,
though – the damn thing has become partially asynchronous. For fput()
from normal process we are guaranteed that pending __fput() will be done
before the caller returns to userland, exits or gets stopped for ptrace.
For kernel threads and atomic contexts it’s done via schedule_work(),
so theoretically we might need a way to make sure it’s finished; so far
only one such place had been found, but there might be more. There’s
flush_delayed_fput() (do all pending __fput()) and there’s __fput_sync()
(fput() analog doing __fput() immediately). I hope we won’t need them
often; see warnings in fs/file_table.c for details. [me, based on task_work
series from Oleg merged last cycle]

* sync series from Jan

* large part of “death to sync_supers()” work from Artem; the only
bits missing here are exofs and ext4 ones. As far as I understand, those
are going via the exofs and ext4 trees resp.; once they are in, we can
put ->write_super() to the rest, along with the thread calling it.

* preparatory bits from unionmount series (from dhowells).

* assorted cleanups and fixes all over the place, as usual.

This is not the last pile for this cycle; there’s at least jlayton’s
ESTALE work and fsfreeze series (the latter – in dire need of
fixes, so I’m not sure it’ll make the cut this cycle). I’ll
probably throw symlink/hardlink restrictions stuff from Kees into
the next pile, too. Plus there’s a lot of misc patches I hadn’t
thrown into that one – it’s large enough as it is…

-For those of you interested in hardware monitoring, Guenter Roeck has
lots of updates for hwmon, Arnd Bergmann updates arm-soc

Here are the main changes for the arm-soc tree for the 3.6 merge window.
All dependencies are merged already, but there are a few small branches
that I’d like to give some more time in linux-next before sending them to
you. We’ve been discussing some large-scale reorganizations where lots
of files get moved around and were thinking about sending them at the
end of the merge window, but right now it seems a bit premature.
We’ll see how that goes.

There are about 600 changesets in here, and a bunch of simple
conflicts between the 15 branches, but so far no conflicts with
stuff that you have merged already. For reference, you can check
the “for-linus” branch in the same tree to see how we resolved
the conflicts.

-Konrad Rzeszutek Wilk is back with a list of changes regarding
Xen since kernel 3.5:

– Less MSR traps when using AMD machines – so better performance. [andre]
– The APIC IPI interface works – which means that ‘perf’ in the initial
domain works. So no more lockups. Also with some tweaks, that means kdb
can work as well [ben]
– Static analyzer fixes in hvc [dan]
– The march to make HVM domains driver domains continue – the XenBus
in the initial domain can now search for it in another domain instead
of assuming its in the initial domain [daniel]. Marek also expanded netfront
to now work in initial domain. [marek]
– Memory reported by ‘xm list’ for the initial domain now matches what
the kernel has been booted with. In the past it would be around 1GB
less due to the kernel releasing memory that fall within
E820 gaps/PCI space [david and me]
– The bootup on two-socket or more of AMD cpus works correctly (I put
in a temporary way in v3.4) but Lin implemented the correct way [lin, jeremy and me]
– Make xen-blkfront capable of unloading. This requires some extra
infrastructure work to handle delayed grants [jan]
– Fixes in the hvc drivers for PVonHVM guests started with ‘xm’ (not xl!) would
fail during migration. [me]
– Fix in blkback with discard operation in 32/64 (so 32-bit guest, 64-bit dom0) mix would fail.
– Support for ‘perf’ to work in the initial domain [lin]
– PVonHVM guests on their reboot would not release properly event channels
so would consume additional memory [stefano]
– Make it possible for the upstream QEMU run in the initial domain along with
blkfront (and blkback) to allow QCOW images to be mapped [stefano]
– Fix for mulitple PCI domains to not crash during bootup [zhang]
– Fix to make FLR actually do properly FLR in xen-pciback. [me]

-Vinod Koul has slave-dmaengine updates, James Bottomley updates SCSI and
Bob Liu has Blackfin updates.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s