#pragma section-numbers on #pragma keywords Linux, kernel, operating system, changes, changelog, file system, Linus Torvalds, open source, device drivers #pragma description Summary of the changes and new features merged in the Linux kernel during the 4.5 development cycle Linux 4.5 [[https://lkml.org/lkml/2016/3/14/50|has been released]] on Sunday, 13 March. Summary: This release adds a new copy_file_range(2) system call that allows to make copies of files without transferring data through userspace; experimental Powerplay power management for modern Radeon GPUs; scalability improvements in the Btrfs free space handling; support GCC's Undefined Behavior Sanitizer (-fsanitize=undefined); Forwarded Error Correction support in the device-mapper's verity target; support for the MADV_FREE flag in madvise(); the new cgroup unified hierarchy is considered stable; scalability improvements for SO_REUSEPORT UDP sockets; scalability improvements for epoll, and better memory accounting of sockets in the memory controller. There are also new drivers and many other small improvements. <> = Prominent features = == Copy offloading with new copy_file_range(2) system call == Copying a file consists in reading the data from a file to user space memory, then copy that memory to the destination file. There is nothing wrong with this way of doing things, but it requires doing extra copies of the data to/from the process memory. In this release Linux adds a system call, copy_file_range(2), which allows to copy a range of data from one file to another, avoiding the mentioned cost of transferring data from the kernel to user space and then back into the kernel. This system call is only very [[https://lwn.net/Articles/658718/|slightly faster]] than {{{cp}}}, because the costs of these memory copies are barely noticeable compared with the time it takes to do the actual I/O, but there are some cases where it can help a lot more. In networking filesystems such as NFS, copying data involves sending the copied data from the server to the client through the network, then sending it again from the client to the new file in the server. But with copy_file_range(2), the NFS client can tell the NFS server to make a file copy from the origin to the destination file, without transferring the data over the network (for NFS, this also requires the server-side copy feature [[https://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-41#section-4|present in the upcoming NFS v4.2]], and also supported experimentally in this Linux release). In next releases, local filesystems such as Btrfs, and especialized storage devices that provide copy offloading facilities, could also use this system call to optimize the copy of data, or remove some of the present limitations (currently, copy offloading is limited to files on the same mount and superblock, and not in the same file). Recommended LWN articles: 1:[[https://lwn.net/Articles/659523/|copy_file_range()]]; 2:[[https://lwn.net/Articles/637436/|Copy offload]] Raw man page: [[http://git.kernel.org/cgit/docs/man-pages/man-pages.git/tree/man2/copy_file_range.2|copy_file_range.2]] Code: [[https://git.kernel.org/torvalds/c/29732938a6289a15e907da234d6692a2ead71855|commit]], [[https://git.kernel.org/torvalds/c/cb4c4e8091e86e08cb2d48e7ae6bf454245c36cb|commit]], [[https://git.kernel.org/torvalds/c/3db11b2eecc02dc0eee943e71822c6d929281aa7|commit]], [[https://git.kernel.org/torvalds/c/eac70053a141998c40907747d6cea1d53a9414be|commit]], [[https://git.kernel.org/torvalds/c/54dbc15172375641ef03399e8f911d7165eb90fb|commit]], [[https://git.kernel.org/torvalds/c/04b38d601239b4d9be641b412cf4b7456a041c67|commit]], [[https://git.kernel.org/torvalds/c/d79bdd52d8be70d0e7024ac6715eee860a19834a|commit]]; NFS code: [[https://git.kernel.org/torvalds/c/ffa0160a103917defd5d9c097ae0455a59166e03|commit]] == Experimental PowerPlay supports brings high performance to the amdgpu driver == Modern GPUs start running in low power, low performance modes. To get the best performance, they need to dynamically change its frequency. But doing that requires good power management. This release adds support for [[https://en.wikipedia.org/wiki/AMD_PowerPlay|PowerPlay]] in the amdgpu driver for discrete GPUs Tonga and Fiji, and integrated APUs Carrizo and Stoney. Powerplay is the brand name for a set of technologies for power management implemented in several of AMD CPUs and APUs; it has been available in the propietary Catalyst driver, and it aims to eventually replace the existing dynamic power management in the amdgpu driver. In the supported GPUs, performance will be much higher due to the ability to handle frequency changes. Powerplay support is not enabled by default for all kind of hardware supported in this release due to stability concerns; in these cases the use of Powerplay can be forced with the "amdgpu.powerplay=1" kernel option. Code: see [[https://lists.freedesktop.org/archives/dri-devel/2015-November/094230.html|link]] == Btrfs free space handling scalability improvements == Filesystems need to keep track of which blocks are being used and which ones are free. They also need to store information about the free space somewhere, because it's too costly to generate it from scratch. Btrfs has been able to store a cache of the available free space [[http://kernelnewbies.org/Linux_2_6_37#head-73fc3db571309a002aad2f56e930923422cff5d2|since 2.6.37]], but the implementation is a scalability bottleneck on large (+30T), busy filesystems. This release includes a new, experimental way of representing the free space cache that takes less work overall to update on each commit and fixes the scalability issues. This new code is experimental, and it's not the default yet. It can be enabled with the {{{-o space_cache=v2}}} mount option. On the first mount with the this option set, the new free space tree will be created and a read-only compatibility flag will be enabled (older kernels will be able to read, but not to write, to the filesystem). It is possible to revert to the old free space cache (and remove the compatibility flag) by mounting the filesystem with the options {{{-o clear_cache,space_cache=v1}}}. Code: [[https://git.kernel.org/torvalds/c/3e1e8bb770dba29645b302c5499ffcb8e3906712|commit]], [[https://git.kernel.org/torvalds/c/0f3312295d3ce1d82392244236a52b3b663480ef|commit]], [[https://git.kernel.org/torvalds/c/1abfbcdf56d9485f050149bc4968c1609f9a0773|commit]], [[https://git.kernel.org/torvalds/c/73fa48b674e819098c3bafc47618d0e2868191e5|commit]], [[https://git.kernel.org/torvalds/c/208acb8c72d7ace6b672b105502dca0bcb050162|commit]], [[https://git.kernel.org/torvalds/c/a5ed91828518ab076209266c2bc510adabd078df|commit]], [[https://git.kernel.org/torvalds/c/7c55ee0c4afba4434d973117234577ae6ff77a1c|commit]], [[https://git.kernel.org/torvalds/c/1e144fb8f4a4d6d6d88c58f87e4366e3cd02ab72|commit]], [[https://git.kernel.org/torvalds/c/70f6d82ec73c3ae2d3adc6853c5bebcd73610097|commit]] == Support for GCC's Undefined Behavior Sanitizer (-fsanitize=undefined) == UBSAN (Undefined Behaviour SANitizer) is a debugging tool available since GCC 4.9 (see [[https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html|-fsanitize=undefined documentation]]). It inserts instrumentation code during compilation that will perform checks at runtime before operations that could cause undefined behaviours. [[https://en.wikipedia.org/wiki/Undefined_behavior|Undefined behavior]] means that the semantics of certain operations is undefined, and the compiler presumes that such operations never happen because the programmer will take care of avoiding them, but if they happen the application can produce wrong results, crash or even allow security breaches; examples of undefined behaviour are using a non-static variable before it has been initialized, integer division by zero, signed integer overflows, dereferencing NULL pointers, etc. In this release, Linux supports compiling the kernel with the Undefined Behavior Sanitizer enabled with the {{{-fsanitize}}} options {{{shift, integer-divide-by-zero, unreachable, vla-bound, null, signed-integer-overflow, bounds, object-size, returns-nonnull-attribute, bool, enum}}} and, optionally, {{{alignment}}}. Most of the work is done by compiler, all the kernel does is to handle the printing of errors. Links: * [[http://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/|Red Hat Developer blog entry about ubsan]] * [[https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#index-fsanitize_003dundefined-947|GCC's -fsanitize documentation]] Code: [[https://git.kernel.org/torvalds/c/c6d308534aef6c99904bf5862066360ae067abc4|commit]] == Forwarded Error Correction support in the device-mapper's verity target == The device-mapper's "verity" target, used by popular platforms such as [[https://source.android.com/security/verifiedboot/|Android]] or Netflix, was merged [[http://kernelnewbies.org/Linux_3.4#head-011d0bd1a20451b0e374283b36a71d8e8f5b7ae1|in Linux 3.4]], and it allows that a file system hasn't been modified by checking every filesystem read attempt with a list of cryptographic hashes. This release adds [[https://en.wikipedia.org/wiki/Forward_error_correction|Forward Error Correction]] support to the verity target. This feature makes possible to recover from several consecutive corrupted data blocks, by using pregenerated error correction blocks that have relatively small space overhead and can be used to reconstruct the damaged blocks. This technique, found in DVDs, hard drives or satellite transmissions, will make possible to recover from errors in a verity-backed filesystem placed in slightly damaged media. Code: [[https://git.kernel.org/torvalds/c/a739ff3f543afbb4a041c16cd0182c8e8d366e70|commit]] == Add MADV_FREE flag to madvise(2) == [[http://man7.org/linux/man-pages/man2/madvise.2.html|madvise(2)]] is a system call used by processes to tell the kernel how they are going to use their memory, allowing the kernel to optimize the memory management according to these hints to achieve better overall performance. When an application wants to signal the kernel that it isn't going to use a range of memory in the near future, it can use the MADV_DONTNEED flag, so the kernel can free resources associated with it. Subsequent accesses in the range will succeed, but will result either in reloading of the memory contents from the underlying mapped file or zero-fill-on-demand pages for mappings without an underlying file. But there are some kind of apps (notably, memory allocators) that can reuse that memory range after a short time, and MADV_DONTNEED forces them to incur in page fault, page allocation, page zeroing, etc. For avoiding that overhead, other OS like BSDs [[https://www.freebsd.org/cgi/man.cgi?query=madvise&sektion=2|have supported MADV_FREE]], which just mark pages as available to free if needed, but it doesn't free them immediately, making possible to reuse the memory range without incurring in the costs of faulting the pages again. This release adds Linux support for this flag. Recommended LWN article: [[https://lwn.net/Articles/590991/|Volatile ranges and MADV_FREE]] Code: [[https://git.kernel.org/torvalds/c/854e9ed09dedf0c19ac8640e91bcc74bc3f9e5c9|commit]], [[https://git.kernel.org/torvalds/c/ef58978f1eaab140081ec1808d96ee06e933e760|commit]], [[https://git.kernel.org/torvalds/c/21f55b018ba57897f4d3590ecbe11516bdc540af|commit]], [[https://git.kernel.org/torvalds/c/64b42bc1cfdf6e2c3ab7315f2ff56c31cd257370|commit]], [[https://git.kernel.org/torvalds/c/10853a039208c4afaa322a7d802456c8dca222f4|commit]], [[https://git.kernel.org/torvalds/c/337ed7eb5fada305c7d5bf168cf5032f825faddf|commit]], [[https://git.kernel.org/torvalds/c/590a471ce92355bc6c93a48769e8616b80071991|commit]], [[https://git.kernel.org/torvalds/c/79cedb8f62f116e72079c4d424edbc3d90302333|commit]], [[https://git.kernel.org/torvalds/c/d5d6a443b24304711fe83b312d29ff26cfa03f0c|commit]], [[https://git.kernel.org/torvalds/c/44842045e4baaf406db2954dd2e07152fa61528d|commit]], [[https://git.kernel.org/torvalds/c/05ee26d9e7e29ab026995eab79be3c6e8351908c|commit]], [[https://git.kernel.org/torvalds/c/b8d3c4c3009d42869dc03a1da0efc2aa687d0ab4|commit]] == Better epoll multithread scalability == When multiple [[http://man7.org/linux/man-pages/man7/epoll.7.html|epoll]] file descriptors or epfds (the file descriptor returned from [[http://man7.org/linux/man-pages/man2/epoll_create.2.html|epoll_create(2)]] are added to a shared wakeup source, they are always added in a non-exclusive manner. This means that an event will wakeup all epfds, creating a scalability problem when many epfds are being used. This release introduces a new {{{EPOLLEXCLUSIVE}}} flag that can be passed as part of the {{{event}}} argument during an [[http://man7.org/linux/man-pages/man2/epoll_ctl.2.html|epoll_ctl(2)]] {{{EPOLL_CTL_ADD}}} operation. This new flag allows for exclusive wakeups when there are multiple epfds attached to a shared fd event source. In a modified version of [[https://en.wikipedia.org/wiki/Enduro/X|Enduro/X]], the use of the 'EPOLLEXCLUSIVE' flag reduced the length of this particular workload from 860s down to 24s. Recommended LWN article: [[https://lwn.net/Articles/633422/#excl|Epoll evolving: Better multi-threaded behavior]] Code: [[https://git.kernel.org/torvalds/c/df0108c5da561c66c333bb46bfe3c1fc65905898|commit]], [[https://git.kernel.org/torvalds/c/b6a515c8a0f6c2010a52793b43a79520bc95f994|commit]] == cgroup unified hierarchy is considered stable == cgroups, or control groups, are a feature [[http://kernelnewbies.org/Linux_2_6_24#head-5b7511c1e918963d347abc8ed4b75215877d3aa3|introduced in Linux 2.6.24]] which allow to allocate resources (such as CPU time, system memory, network bandwidth) among user-defined groups of processes running on a system. In the first implementation, cgroups allowed an arbitrary number of process hierarchies and each hierarchy could host any number of controllers. While this seemed to provide a high level of flexibility, in practice it had a number of problems, so in [[http://kernelnewbies.org/Linux_3.16#head-c8889cafd94fac58408ccc55a02589eda7608eb9|Linux 3.16]] a new, [[http://lwn.net/Articles/601840/|unified hierarchy]] was merged. But it was experimental, only available with the {{{-o __DEVEL__sane_behavior}}} mount option. In this release, the unified hierarchy is considered stable, and it's no longer hidden behind that developer flag. It can be mounted using the {{{cgroup2}}} filesystem type (unfortunately, the cpu controller for cgroup2 hasn't made it into this release, only memory and io controllers are available at the moment). For more details, including a detailed reasoning behind the migration to the unified hierarchy, see the cgroup2 documentation: [[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/cgroup-v2.txt|Documentation/cgroup-v2.txt]] Code: [[https://git.kernel.org/torvalds/c/34a9304a96d6351c2d35dcdc9293258378fc0bd8|(merge)]] == Performance improvements for SO_REUSEPORT UDP sockets == [[https://lwn.net/Articles/542629/|SO_REUSEPORT]] is a socket option available [[http://kernelnewbies.org/Linux_3.9#head-7f858c19da75698842d3571a2424c9b62d3f5b0a|since Linux 3.9]] that allows multiple listener sockets to bind to the same port. An use case for {{{SO_REUSEPORT}}} would be something like a web server binding to port 80 running with multiple threads, where each thread might have it's own listener socket. In this release, Linux includes two optimizations for {{{SO_REUSEPORT}}} sockets (in this release, only for UDP sockets): * Two new sockets options allow to define a classic or extended BPF program ({{{SO_ATTACH_REUSEPORT_CBPF}}} and {{{SO_ATTACH_REUSEPORT_EBPF}}}). These BPF programs can define how packets are assigned to the sockets placed in the {{{SO_REUSEPORT}}} group of sockets that are bound to the same port. * Faster lookup when selecting a {{{SO_REUSEPORT}}} socket for an incoming packet. Previously, the lookup process needed to consider all sockets, in this release an appropriate socket can be found much faster (see the commit link for benchmarks). Code: [[https://git.kernel.org/torvalds/c/ef456144da8ef507c8cf504284b6042e9201a05c|commit]], [[https://git.kernel.org/torvalds/c/e32ea7e747271a0abcd37e265005e97cc81d9df5|commit]], [[https://git.kernel.org/torvalds/c/538950a1b7527a0a52ccd9337e3fcd304f027f13|commit]] == Proper control of socket memory usage in the memory controller == In past releases, socket buffers were accounted in the cgroup's memory controller, separately, without any pressure equalization between anonymous memory, page cache, and the socket buffers. When the socket buffer pool was exhausted, buffer allocations would fail and cause network performance to tank, regardless of whether there was still memory available to the group or not. Likewise, struggling anonymous or cache workingsets could not dip into an idle socket memory pool. Because of this, the feature was not usable for many real life applications. In this release, the new unified memory controller will account all types of memory pages it is tracking on behalf of a cgroup in a single pool. Upon pressure, the VM reclaims and shrinks and puts pressure on whatever memory consumer in that pool is within its reach. When the VM has trouble freeing memory, the network code is instructed to stop growing the cgroup's transmit windows. Overhead is only incurred when a non-root control group is created and the memory controller is instructed to track and account the memory footprint of that group. cgroup.memory=nosocket can be specified on the boot commandline to override any runtime configuration and forcibly exclude socket memory from active memory resource control. Code: [[https://git.kernel.org/torvalds/c/7d828602e5ef3297a69392a2d31264e4ab9c8bb7|commit]], [[https://git.kernel.org/torvalds/c/8c2c2358b236530bc2c79b4c2a447cbdbc3d96d7|commit]], [[https://git.kernel.org/torvalds/c/931f3f4beb031cd483c1c8ab159ef1f8bdbe8888|commit]], [[https://git.kernel.org/torvalds/c/3d596f7b907b0281b997cf30c92994a71ad0a1a9|commit]], [[https://git.kernel.org/torvalds/c/af95d7df4059cfeab7e7c244f3564214aada7dad|commit]], [[https://git.kernel.org/torvalds/c/80f23124f57c77915a7b4201d8dcba38a38b23f0|commit]], [[https://git.kernel.org/torvalds/c/e805605c721021879a1469bdae45c6f80bc985f4|commit]], [[https://git.kernel.org/torvalds/c/baac50bbc3cdfd184ebf586b1704edbfcee866df|commit]], [[https://git.kernel.org/torvalds/c/80e95fe0fdcde2812c341ad4209d62dc1a7af53b|commit]], [[https://git.kernel.org/torvalds/c/7941d2145abc4def5583f9d8d0b2e02647b6d1de|commit]], [[https://git.kernel.org/torvalds/c/1109208766d9fa7059a9b66ad488e66d99ce49af|commit]], [[https://git.kernel.org/torvalds/c/f7e1cb6ec51b041335b5ad4dd7aefb37a56d79a6|commit]], [[https://git.kernel.org/torvalds/c/8e8ae645249b85c8ed6c178557f8db8613a6bcc7|commit]] = Drivers and architectures = All the driver and architecture-specific changes can be found in the [[http://kernelnewbies.org/Linux_4.5-DriversArch|Linux_4.5-DriversArch]] page = Core (various) = * Allow to preconfigure tune the ASLR randomness. Two sysctls {{{/proc/sys/vm/mmap_rnd_bits and /proc/sys/vm/mmap_rnd_compat_bits}}} (for 32bit processes and 32bit-on-64bit-kernel) can be used to tune it. Recommended LWN article: [[https://lwn.net/Articles/667790/|Increasing the range of address-space layout randomization]]. Code: [[https://git.kernel.org/torvalds/c/d07e22597d1d355829b7b18ac19afa912cf758d1|commit]], [[https://git.kernel.org/torvalds/c/e0c25d958f78acfd5c97df5776eeba3e0684101b|commit]], [[https://git.kernel.org/torvalds/c/8f0d3aa9de57662fe35d8bacfbd9d7ef85ffe98f|commit]], [[https://git.kernel.org/torvalds/c/9e08f57d684ac2f40685f55f659564bfd91a971e|commit]] * fuse: add support for {{{SEEK_HOLE}}} and {{{SEEK_DATA}}} in [[http://man7.org/linux/man-pages/man2/lseek.2.html|lseek(2)]] [[https://git.kernel.org/torvalds/c/0b5da8db145bfd44266ac964a2636a0cf8d7c286|commit]] * fcntl: allow to set O_DIRECT flag on pipe (will be used by CRIU to migrate packetized pipes) [[https://git.kernel.org/torvalds/c/0dbf5f20652108106cb822ad7662c786baaa03ff|commit]] * futex: Allow {{{FUTEX_CLOCK_REALTIME}}} with {{{FUTEX_WAIT}}} op [[https://git.kernel.org/torvalds/c/337f13046ff03717a9e99675284a817527440a49|commit]] * RCU: Add {{{rcupdate.rcu_normal}}} kernel parameter to suppress expedited grace periods, that is, to treat requests for expedited grace periods as if they were requests for normal grace periods. Useful for extreme real-time workloads [[https://git.kernel.org/torvalds/c/5a9be7c628c5273f84abacebf7faf2488376e0f0|commit]] * RCU: Add kernel parameter {{{rcupdate.rcu_normal_after_boot}}} that disables expedited grace periods just before init is spawned [[https://git.kernel.org/torvalds/c/3e42ec1aa716f10c68294b8492ae3ea684528699|commit]] * Allow disabling mandatory file locking at compile time (appears to be almost unused and buggy and there appears no real interest in doing anything with it). Recommended LWN article: [[https://lwn.net/Articles/667210/|Optional mandatory locking]]. [[https://git.kernel.org/torvalds/c/9e8925b67a809bb27ce4b7d352d67f25cf1d7fc5|commit]] * vfio: No-IOMMU mode. Only with an IOMMU can userspace access to DMA capable devices be considered secure, but some people still want to do it [[https://git.kernel.org/torvalds/c/03a76b60f8ba27974e2d252bc555d2c103420e15|commit]] * workqueues: implement a workqueue lockup detector [[https://git.kernel.org/torvalds/c/82607adcf9cdf40fb7b5331269780c8f70ec6e35|commit]] * sysctl: enable strict writes by default. File position will be respected when doing multiple writes to a sysctl, instead of rewriting the content with each write [[https://git.kernel.org/torvalds/c/41662f5cc55335807d39404371cfcbb1909304c4|commit]] * scripts: add {{{prune-kernel}}} script to clean up old kernel images [[https://git.kernel.org/torvalds/c/b64e86cdf6a9d772c47b8e594dd173b86270fd1b|commit]] * configfs: Add support for binary attributes [[https://git.kernel.org/torvalds/c/03607ace807b414eab46323c794b6fb8fcc2d48c|commit]] *workqueues: Add debug facility, enabled with the {{{workqueue.debug_force_rr_cpu}}} kernel parameter, which forces workqueue items to be run in foreign CPUs [[https://git.kernel.org/torvalds/c/f303fccb82928790ec58eea82722bd5c54d300b3|commit]] = File systems = * XFS * Introduce per-inode [[http://kernelnewbies.org/Linux_4.0#head-fe050921ca23e738d347755a42f15f9972767e44|DAX]] enablement, because rather than just being able to turn DAX on and off via a mount option, some applications may only want to enable DAX for certain performance critical files in a filesystem. When this flag is set on a directory, it acts as an "inherit flag". That is, inodes created in the directory will automatically inherit the on-disk inode DAX flag, enabling administrators to set up directory hierarchies that automatically use DAX. Setting this flag on an empty root directory will make the entire filesystem use DAX by default [[https://git.kernel.org/torvalds/c/58f88ca2df7270881de2034c8286233a89efe71c|commit]] * Extensive CRC validation during log recover, needed in some storage devices such as persistent memory [[https://git.kernel.org/torvalds/c/7088c4136fa1cba26531fde40bdcfcf3d2ccd533|commit]], [[https://git.kernel.org/torvalds/c/6528250b712102a7481c28db535ef251459d1868|commit]] * Add a mechanism to inject CRC errors into log records to facilitate testing torn write detection during log recovery [[https://git.kernel.org/torvalds/c/609adfc2ed5ba16700f125da0b656248bd9d4316|commit]] * ext4 * Add project quota support [[https://git.kernel.org/torvalds/c/689c958cbe6be4f211b40747951a3ba2c73b6715|commit]], [[https://git.kernel.org/torvalds/c/040cb3786d9b25293b8b0b05b90da0f871e1eb9b|commit]], [[https://git.kernel.org/torvalds/c/9b7365fc1c82038faa52d56173b20221cf422cbe|commit]] * F2FS * Introduce new option {{{data_flush}}} mount option, which enables data flushing before checkpoint in order to persist data of regular and symlink [[https://git.kernel.org/torvalds/c/343f40f0a70eb7cee9cc8d6fcfbb3917252a5245|commit]] * Add new ioctl {{{F2FS_IOC_DEFRAGMENT}}}, which supports file defragment in a specified range of regular file [[https://git.kernel.org/torvalds/c/d323d005ac4a2d413128267af76bb9d71f7303da|commit]] * CIFS * Allow using {{{O_DIRECT}}} with option {{{cache=loose}}} [[https://git.kernel.org/torvalds/c/882137c4d64175e2bb38cd842e25d54e6de31da8|commit]] * Make echo interval tunable with echo_interval mount option [[https://git.kernel.org/torvalds/c/adfeb3e00e8e1b9fb4ad19eb7367e7c272d16003|commit]] * GFS2 * Extended attribute readahead optimizations [[https://git.kernel.org/torvalds/c/c8d577038449a718ad0027d1790b6ef4441715d4|commit]], [[https://git.kernel.org/torvalds/c/39b0555f7a1f96ecd303103df15596db49c36c65|commit]] * Rework how GFS2's NFS cookies are managed. This fixes readdir problems with nfs-over-gfs2 [[https://git.kernel.org/torvalds/c/471f3db2786bc32011d6693413eb93b0c3da2579|commit]] * FAT * Support preallocation via the [[http://man7.org/linux/man-pages/man2/fallocate.2.html|fallocate(2)]] on VFAT [[https://git.kernel.org/torvalds/c/b13bb33eacb7266d66a3adf03adaa0886d091789|commit]] * NFS * Support server-supplied layoutstats sampling period [[https://git.kernel.org/torvalds/c/d0379a5d066a998b0210a81dc52e266ce4daaa36|commit]] * Allow the combination pNFS and labeled NFS [[https://git.kernel.org/torvalds/c/95864c9154c1385c33e6782f4467c8f1422c1c90|commit]] * Ceph * Asynchronous IO support [[https://git.kernel.org/torvalds/c/c8fe9b17d055fe80e1a1591f5900ce41fbf6b796|commit]] * Initial CEPH_FEATURE_FS_FILE_LAYOUT_V2 support, a format change of MClientReply/MclientCaps [[https://git.kernel.org/torvalds/c/5ea5c5e0a7f70b256417d3b6e36bd9851504babd|commit]] = Memory management = * pipes: limit the per-user amount of pages allocated in pipes. It is possible for a single process to cause an OOM condition by filling large pipes with data that are never read. This release makes possible to enforce a per-user soft limit above which new pipes will be limited to a single page (4KB), as well as a hard limit above which no new pipes may be created for this user. The limit are controlled by two new sysctls : {{{pipe-user-pages-soft}}}, and {{{pipe-user-pages-hard}}}. Both may be disabled by setting them to zero. The default soft limit allows the default number of FDs per process (1024) to create pipes of the default size (64kB). The hard limit is disabled by default to avoid breaking existing applications that make intensive use of pipes (eg: for [[http://linux.die.net/man/2/splice|splice(2)]]) [[https://git.kernel.org/torvalds/c/759c01142a5d0f364a462346168a56de28a80f52|commit]] * proc: Currently, {{{/proc/pid/smaps}}} will always show {{{Swap: 0 kB}}} for shmem-backed mappings, even if the mapped portion does contain shmem-backed pages that were swapped out. This release accounts for shmem swap [[https://git.kernel.org/torvalds/c/c261e7d94f0dd33a34b6cf98686e8b9699b62340|commit]] * proc: There are several shortcomings with the accounting of shared memory (SysV shm, shared anonymous mapping, mapping of a tmpfs file). The values in {{{/proc//status}}} and {{{statm}}} don't allow to distinguish between shmem memory and a shared mapping to a regular file, even though theirs implication on memory usage are quite different. This release adds a breakdown of {{{VmRSS}}} in {{{/proc//status}}} via new fields {{{RssAnon, RssFile and RssShmem}}}. These fields tell the user the memory occupied by private anonymous pages, mapped regular files and shmem, respectively [[https://git.kernel.org/torvalds/c/eca56ff906bdd0239485e8b47154a6e73dd9a2f3|commit]], [[https://git.kernel.org/torvalds/c/8cee852ec53fb530f10ccabf1596734209ae336b|commit]] * vmstats: replace {{{THP_SPLIT}}} with tree events: {{{THP_SPLIT_PAGE, THP_SPLIT_PAGE_FAILED}}} and {{{THP_SPLIT_PMD}}} [[https://git.kernel.org/torvalds/c/122afea9626ab3f717b250a8dd3d5ebf57cdb56c|commit]] * Revert {{{/proc//maps [stack:TID]}}} annotation [[https://git.kernel.org/torvalds/c/65376df582174ffcec9e6471bf5b0dd79ba05e4a|commit]] = Block layer = * Enable DAX (page cache bypass) for raw block devices. This capability is targeted primarily to hypervisors wanting to provision persistent memory for guests. It can be disabled / enabled dynamically via the new {{{BLKDAXSET}}} ioctl. This feature is experimental and cause data loss, it needs to be enabled explicitely [[https://git.kernel.org/torvalds/c/5a023cdba50c5f5f2bc351783b3131699deb3937|commit]], [[https://git.kernel.org/torvalds/c/03cdadb04077b9311bbc67d98cc5401aff76482d|commit]] * raid5-cache: add journal hot add/remove support [[https://git.kernel.org/torvalds/c/f6b6ec5cfac306c1eea66f074050864efcb11851|commit]] * lightnvm: Allow to initialize a Open-Channel SSD with a defined on-disk format, that keeps a small set of metadata to bring up the media manager on top of the device [[https://git.kernel.org/torvalds/c/e3eb3799f7e0d0924ceeba672ab271865de2802d|commit]], [[https://git.kernel.org/torvalds/c/5569615424613aa006005f18b03a3a12738a47d7|commit]] * lightnvm: support factory reset [[https://git.kernel.org/torvalds/c/8b4970c41f88ad772771f87b1c82c395248a84d8|commit]] * dm verity: add {{{ignore_zero_blocks}}} feature, which makes dm-verity not verify blocks that are expected to contain zeroes and always return zeroes instead. This may be useful if the partition contains unused blocks that are not guaranteed to contain zeroes [[https://git.kernel.org/torvalds/c/0cc37c2df4fa0aa702f9662edce4b7ce12c86b7a|commit]] * drbd: Backport the {{{events2}}} command [[https://git.kernel.org/torvalds/c/a29728463b254ce81ecefdf20c1a02e01d9361da|commit]] and the "status" command [[https://git.kernel.org/torvalds/c/a55bbd375d1802141f0f043e2cd08f85c23d6209|commit]] * drbd: make drbd known to {{{lsblk}}} [[https://git.kernel.org/torvalds/c/63a7c8ad92af5f57d4a2c5be223d6ca424c3670b|commit]] = Cryptography = * talitos: add algorithms: ecb(aes), ctr(aes), ecb(des), cbc(des), ecb(des3_ede) [[https://git.kernel.org/torvalds/c/5e75ae1b3cef6455b131835621216cb92060da34|commit]] * rsa: adds PKCS#1 v1.5 standard RSA padding [[https://git.kernel.org/torvalds/c/3d5b1ecdea6fb94f8c61554fcb2ba776a2d3d0e6|commit]] * qat: Support for Intel C3xxx with Intel Quick Assist Technology for accelerating crypto and compression workloads [[https://git.kernel.org/torvalds/c/9809ebcd0e8cacb20a938e7a9fab68ea47e80f82|commit]], [[https://git.kernel.org/torvalds/c/890c55f4dc0e60a4ba71ab9b6877f69ff7053213|commit]], [[https://git.kernel.org/torvalds/c/8b206f2d666f41f0aa83dec83504801ee945d3dc|commit]] * qat: Support for Intel C62x with Intel Quick Assist Technology for accelerating crypto and compression workloads [[https://git.kernel.org/torvalds/c/a6dabee6c8ba770bab7a3ec63b6a5c1059331d5c|commit]] * atmel-aes: add new version available with SAMA5D2 devices [[https://git.kernel.org/torvalds/c/973e209d743e22e9d514cd3378281608845456f6|commit]], add support to GCM mode [[https://git.kernel.org/torvalds/c/d4419548dba9575934fee6d9fa20a480257889b2|commit]] = Security = * Extended Verification Module: Allow to load an x509 certificate from the kernel onto the ".evm" trusted keyring [[https://git.kernel.org/torvalds/c/2ce523eb8976a12de1a4fb6fe8ad0b09b5dafb31|commit]], [[https://git.kernel.org/torvalds/c/7626676320f398980a6bb4490fd58e924c888f6a|commit]] * Integrity Measurement Architecture * Allow to update multiple times the IMA policy. The new rules get appended to the original policy. Users must have in mind that the rules are scanned in FIFO order so it's necessary to be careful when designing and adding new ones [[https://git.kernel.org/torvalds/c/38d859f991f3a05b352a06f82af0baa1acf33e02|commit]] * Allow the root user to read the current IMA policy rules. It is often useful to be able to read back the IMA policy, and even more important after introducing the ability to update the IMA policy [[https://git.kernel.org/torvalds/c/80eae209d63ac6361c7b445f7e7e41f39c044772|commit]] * keys: forbid to remove certain keys. A new key flag named {{{KEY_FLAG_KEEP}}} is added to prevent userspace from being able to unlink, revoke, invalidate or timed out a key on a keyring. When this flag is set on the keyring, all keys subsequently added are flagged. In addition, when this flag is set, the keyring itself can not be cleared [[https://git.kernel.org/torvalds/c/d3600bcf9d64d88dc1d189a754dcfab960ce751f|commit]] * keys: enable to use TPM2 authorization policies to seal trusted keys [[https://git.kernel.org/torvalds/c/5beb0c435bdde35a09376566b0e28f7df87c9f68|commit]] * keys: Allow to select hash algorithm for TPM2 chips. For TPM 1.x the only allowed value is sha1. For TPM 2.x the allowed values are sha1, sha256, sha384, sha512 and sm3-256 [[https://git.kernel.org/torvalds/c/5ca4c20cfd37bac6486de040e9951b3b34755238|commit]] * selinux: Make validatetrans decisions available through selinuxfs. "/validatetrans" is added to selinuxfs for this purpose. This functionality is needed by file system servers implemented in userspace or kernelspace without the VFS layer [[https://git.kernel.org/torvalds/c/f9df6458218f4fe8a1c3bf0af89c1fa9eaf0db39|commit]] = Tracing and perf tool = * Allow using trace events fields as sort order keys, making {{{perf evlist --trace_fields}}} show those, and then the user can select a subset and use like: {{{perf top -e sched:sched_switch -s prev_comm,next_comm}}}. That works as well in {{{perf report}}} when handling files containing tracepoints. Support for things like {{{perf report -s 'switch.*' --stdio}}} is also possible [[https://git.kernel.org/torvalds/c/c7c2a5e40f17ab3b14716d4f08d03792a9b683e7|commit]], [[https://git.kernel.org/torvalds/c/60517d28fbd91629686dcf9a39aef4e068a3d5f6|commit]], [[https://git.kernel.org/torvalds/c/a34bb6a08d6020bde0475bc901793771858a1112|commit]], [[https://git.kernel.org/torvalds/c/5d0cff93bb7aa85349230d4e29902b2648640c53|commit]], [[https://git.kernel.org/torvalds/c/3b099bf5898ac1bf44d822f0bc15a7517e6fa117|commit]], [[https://git.kernel.org/torvalds/c/2e422fd1e4b0a1c0ca11d360be2147c87911dd1a|commit]], [[https://git.kernel.org/torvalds/c/d49dadea78624353d1df660efb49f187bd5c5971|commit]], [[https://git.kernel.org/torvalds/c/4c96bee03247c6eab27287fa66457a231b9fab79|commit]], [[https://git.kernel.org/torvalds/c/775d8a1b0d75211cc6123915c6b5b688f2002478|commit]] * BPF programs can now to specify {{{perf probe}}} tunables via its section name, separating {{{key=val}}} values using semicolons. A {{{exec}}} key is used to specify an user executable which allows to attach BPF programs at uprobe events [[https://git.kernel.org/torvalds/c/361f2b1d1d7231b8685d990b886f599378a4d5a5|commit]]; a {{{module}}} key is used to allow users to attach BPF programs to symbols in modules [[https://git.kernel.org/torvalds/c/5dbd16c0c9d17ab1ab2226a5926482c26c0287ed|commit]], an {{{inline}}} key that allows to specify whether to probe at inline symbols or not and a {{{force}}} key to forcibly add events with existing name" [[https://git.kernel.org/torvalds/c/03e01f568759ddbfdaff892e299758e7771a3478|commit]] * Allow BPF scriptlets to specify arguments to be fetched using DWARF info, using a prologue generated at compile/build time. {{{perf probe}}} various options can be used to list functions, or see what variables can be collected at any given point [[https://git.kernel.org/torvalds/c/a08357d8dc7d3025d1094f727ad1f7e837766f93|commit]], [[https://git.kernel.org/torvalds/c/bfc077b4cf106793b30bf942e426ee99f1f4ac44|commit]], [[https://git.kernel.org/torvalds/c/d35b32891a61f1d3909bdc5280badf309adc4693|commit]] * Introduce the {{{perf stat record/report}}} commands. At the moment {{{record}}} creates a simple (header only) perf.data file [[https://git.kernel.org/torvalds/c/4979d0c7d0c73a3e799d4dcfbacd3cd11cc55638|commit]], [[https://git.kernel.org/torvalds/c/664c98d4e1c2ff60627d78d4c8ae81cd2df13783|commit]], [[https://git.kernel.org/torvalds/c/ba6039b6c8fcc24de7d6ab7b0bada4becaf84a2c|commit]], [[https://git.kernel.org/torvalds/c/89af4e05c21d68f22e07fe66940ea675615a49ed|commit]] * Add initial {{{perf config}}} command, for now just with a {{{--list}}} command to the contents of the configuration file in use [[https://git.kernel.org/torvalds/c/30862f2c5725c46afcfab5af710fdf5163bf0f81|commit]], [[https://git.kernel.org/torvalds/c/7d6852432acb3b09fc3ec45dd65421d34eebe3b5|commit]] * Introduce a new callchain mode: {{{folded ( perf report -g folded)}}} to print callchains in a line, facilitating {{{perf report}}} output processing by other tools, such as [[http://www.brendangregg.com/blog|Brendan Gregg]]'s flamegraph tools [[https://git.kernel.org/torvalds/c/2c6caff2b26fde8f3f87183f8c97f2cebfdbcb98|commit]], [[https://git.kernel.org/torvalds/c/8c430a34869946f1f5852f02d910ceef80040be5|commit]], [[https://git.kernel.org/torvalds/c/26e779245dd6f5270c0696860438e5c03d0780fd|commit]] * perf script: If no script is specified for stat data, display stat events in raw form [[https://git.kernel.org/torvalds/c/36e33c53f4b693d96fb8dd4529fe14306d4e3e76|commit]] * perf script: Add Python support for stat events [[https://git.kernel.org/torvalds/c/aef90263561a87ae6d9c6a0f4071d825ce636eef|commit]], [[https://git.kernel.org/torvalds/c/b8a1962d17b4e3cfdd7b7dc9ebd94affbcb4c1c5|commit]] * perf record: Add {{{--buildid-all}}} option to record build-id of all DSOs regardless whether it's actually hit or not [[https://git.kernel.org/torvalds/c/6156681b73f2fffe56493e9a50518c0cbfcd8ba3|commit]] * perf record: Add {{{record.build-id}}} config option, which can be set to three different options, see commit for more details [[https://git.kernel.org/torvalds/c/7a29c087ff80f5d534bd6729c852099fc572c8d0|commit]] * perf record: Support custom vmlinux path, when vmlinux is needed as the source of DWARF info to generate prologue for BPF programs [[https://git.kernel.org/torvalds/c/7efe0e034c713716060bc7794c7e332589980c70|commit]] * perf report/top: Add {{{--raw-trace}}} option [[https://git.kernel.org/torvalds/c/053a3989e12fdf3be45c00ec1cb0ce09fba0ee4a|commit]] * perf report: {{{--call-graph}}} option add support for how to display callchain values. Possible values are {{{percent, period}}} and {{{count. percent}}} is same as before and it's the default behavior. {{{period}}} displays the raw period value. {{{count}}} displays the number of occurrences [[https://git.kernel.org/torvalds/c/f2af008695e0b54a58b76caecd52af7e6c97fb29|commit]] * perf report: Change default to use event group view. If users want to keep the original behavior, they can set the report.group config variable to false and/or use {{{--no-group}}} option [[https://git.kernel.org/torvalds/c/1e9abf8b03c8f9352f54171647296c41317679a4|commit]] * perf build: Introduce {{{FEATURES_DUMP}}} make variable to specify a file where to write the {{{make feature-dump}}} output [[https://git.kernel.org/torvalds/c/96b9e70b8e6cd65f71ee71889143976f3afb038a|commit]]; support the {{{O}}} make variable [[https://git.kernel.org/torvalds/c/eb807730c034090599135bc03578015ebf8974af|commit]], [[https://git.kernel.org/torvalds/c/c15e758c4bd7fbe38983e36258541ffcf81e1500|commit]] * Add {{{file_only}}} config option to strlist [[https://git.kernel.org/torvalds/c/dd8232bc9d13b729d92590b55befd14e49f81eca|commit]] * bpf: add show_fdinfo handler for maps [[https://git.kernel.org/torvalds/c/f99bf205dab026ef434520198af2fcb7dae0efdb|commit]] = Virtualization = * paravirtualized [[https://lwn.net/Articles/590243/|queued spinlock]]: * Allow limited lock stealing, which allows one attempt for the lock waiter to steal the lock when entering the PV slowpath [[https://git.kernel.org/torvalds/c/1c4941fd53afb46ab15826628e4819866d008a28|commit]] * Queue node adaptive spinning [[https://git.kernel.org/torvalds/c/cd0272fab785077c121aa91ec2401090965bbc37|commit]] * Collect slowpath lock statistics [[https://git.kernel.org/torvalds/c/45e898b735620f426eddf105fc886d2966593a58|commit]] * Xen * Convert the backend driver into an multiqueue driver and exposing more than one queue to the frontend [[https://git.kernel.org/torvalds/c/038a75afc54d4b4dc9794213bb16e88c1a31a752|(merge)]] * user-mode-linux: Add seccomp support [[https://git.kernel.org/torvalds/c/c50b4659e444b020657e01bdf769c965e5597cb0|commit]] = Networking = * Add generic [[http://kernelnewbies.org/Linux_3.11#head-e655ee02ba64c3261bf702eb01402464561efa1f|device polling]] support for all drivers that support NAPI, instead of requiring specific support in each driver [[https://git.kernel.org/torvalds/c/85c72ba1ed0c116adabf312ba64e61934557527e|(merge)]] * Add the ability to destroy a TCP socket using the netlink socket diag interface. It causes all blocking calls on the socket to fail fast with {{{ECONNABORTED}}} and causes a protocol close of the socket. It informs the other end of the connection by sending a RST, i.e., initiating a TCP ABORT. Recommended LWN article: [[https://lwn.net/Articles/666220/|SOCK_DESTROY: an old Android patch aims upstream]]. [[https://git.kernel.org/torvalds/c/64be0aed59ad519d6f2160868734f7e278290ac1|commit]], [[https://git.kernel.org/torvalds/c/6eb5d2e08f071c05ecbe135369c9ad418826cab2|commit]], [[https://git.kernel.org/torvalds/c/c1e64e298b8cad309091b95d8436a0255c84f54a|commit]], [[https://git.kernel.org/torvalds/c/08ff924e7fa7b826396f5ef1cb15656db7fb6545|commit]] * IPv4: Make TCP keepalive settings per-namespace [[https://git.kernel.org/torvalds/c/13b287e8d1cad951634389f85b8c9b816bd3bb1e|commit]], {{{tcp_keepalive_probes}}} sysctl knob [[https://git.kernel.org/torvalds/c/9bd6861bd4326e3afd3f14a9ec8a723771fb20bb|commit]], {{{tcp_keepalive_intvl}}} sysctl knob [[https://git.kernel.org/torvalds/c/b840d15d39128d08ed4486085e5507d2617b9ae1|commit]] * IPv6 * Add a new address generator mode, using the stable address generator with an automatically generated secret. This is intended as a default address generator mode for device types with no EUI64 implementation. The new generator is used for {{{ARPHRD_NONE}}} interfaces initially, adding default IPv6 autoconf support to e.g. tun interfaces [[https://git.kernel.org/torvalds/c/cc9da6cc4f56e05cc9e591459fe0192727ff58b3|commit]] * Add the support for adding expire value to routes [[https://git.kernel.org/torvalds/c/32bc201e1974976b7d3fea9a9b17bb7392ca6394|commit]] * Add {{{IPV6_HDRINCL}}} option for raw sockets, it indicates the application provides the IPv6 header on all outgoing data. It's equivalent to the [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms738574%28v=vs.85%29.aspx|Windows option]] with the same name [[https://git.kernel.org/torvalds/c/715f504b118998c41a2079a17e16bf5a8a114885|commit]] * ILA: Add generic ILA translation facility to avoid a big performance hit in the receive path. This table can be configured with identifier to locator mappings, and can be queried to resolve a mapping. Queries can be parameterized based on interface, direction (incoming or outoing), and matching locator. The table is implemented using rhashtable and is configured via netlink (through {{{ip ila ..}}} in iproute) [[https://git.kernel.org/torvalds/c/7f00feaf107645d95a6d87e99b4d141ac0a08efd|commit]] * Multi Protocol Label Switching: support for dead routes ({{{RTNH_F_DEAD}}} and {{{RTNH_F_LINKDOWN}}} flags on mpls routes). Also adds code to ignore dead routes during route selection [[https://git.kernel.org/torvalds/c/c89359a42e2a49656451569c382eed63e781153c|commit]] * Enable child sockets to inherit the L3 master device index. Enabling this option allows a "global" listen socket to work across L3 master domains (e.g., VRFs) with connected sockets derived from the listen socket to be bound to the L3 domain in which the packets originated. A sysctl setting ({{{tcp_l3mdev_accept}}}) is added to control the behavior which is similar to sk_mark and sysctl_tcp_fwmark_accept [[https://git.kernel.org/torvalds/c/6dd9a14e92e54895e143f10fef4d0b9abe109aa9|commit]] * SCTP: dynamically enable or disable "potentially failed" state via a sysctl [[https://git.kernel.org/torvalds/c/566178f853c1aa57be9c16007c7cca07df5d51b6|commit]] * Wireless * Add support for aborting an ongoing scan using the command {{{NL80211_CMD_ABORT_SCAN}}} in the nl80211 interface [[https://git.kernel.org/torvalds/c/91f123f20d64c99db0ce8d2bbc5bb82012d3cc1a|commit]], [[https://git.kernel.org/torvalds/c/91d3ab46730379e89e1e908c6f62fbcadb3d8f08|commit]] * mac80211_hwsim: Advertise support for VHT IBSS [[https://git.kernel.org/torvalds/c/00eeccc4a9a84afe819062df13cdb47159919a7c|commit]] * Netfilter * nftables: add netdev packet forwarding support. You can use this to forward packets from ingress to the egress path of the specified interface. This provides a fast path to bounce packets from one interface to another specific destination interface [[https://git.kernel.org/torvalds/c/39e6dea28adc874f7021e5580c13cab0b58407ea|commit]] * nftables: add netdev packet duplication support. You can use this to duplicate packets and inject them at the egress path of the specified interface. This duplication allows you to inspect traffic from the dummy or any other interface dedicated to this purpose [[https://git.kernel.org/torvalds/c/502061f81d3eb4518d2e72178e494a8547788ad0|commit]] * nftables: add byte/packet counter matching support [[https://git.kernel.org/torvalds/c/48f66c905a976bf0ff092fc24f08d9addd82a245|commit]] * nftables: Allow to invert limit expression in nf_tables, so we can throttle overlimit traffic [[https://git.kernel.org/torvalds/c/c7862a5f0de5f521c545f3436f0aa190964342dd|commit]] * nftables: Add support for mangling packet payload. Checksum for the specified base header is updated automatically if requested, however no updates for any kind of pseudo headers are supported, meaning no stateless NAT is supported [[https://git.kernel.org/torvalds/c/7ec3f7b47b8d9ad7ba425726f2c58f9ddce040df|commit]] * Add cgroup2 support to iptables [[https://git.kernel.org/torvalds/c/c38c4597e4bf3e99860eac98211748e1ecb0e139|commit]] * meta: Allow to redirect bridged packets to local machine [[https://git.kernel.org/torvalds/c/b4aae759c22e71a3c32144f0b3bc4f2fa4aaae98|commit]] * Add new {{{NFTA_SET_USERDATA}}} attribute to store user data in sets [[https://git.kernel.org/torvalds/c/e6d8ecac9e68265aee9be711c5bd29406129666f|commit]] * Infiniband *Add configfs for RDMA communication manager (CM) [[https://git.kernel.org/torvalds/c/045959db65c67d7189dc89ecddb5fa10aafa449d|commit]] *Add cross-channel support, allowing to execute WQEs that involve synchronization of I/O operations’ on different QPs. This capability enables to program complex flows with a single function call, hereby significantly reducing overhead associated with I/O processing [[https://git.kernel.org/torvalds/c/8a06ce59a4cd034c52c59c44ff6b0785a3969409|commit]] * Add sysfs files to show attributes of net device and gid type to each GID in the GID table [[https://git.kernel.org/torvalds/c/470be516a226e851d62a8d3d31dc162500b84487|commit]] * Add RoCE V2 support [[https://git.kernel.org/torvalds/c/7766a99fdcd30c78fc8299db9102e3624232007c|commit]] * debugging: add support for injecting errors in netdev notifier events [[https://git.kernel.org/torvalds/c/02fff96a79775b7adc34eb599fc6b0476ccda520|commit]], add support for CHANGEUPPER notifier error injection [[https://git.kernel.org/torvalds/c/c39d0454ec9b703d3540dd10a2e9692f89aa48ab|commit]] * Add clsact qdisc, a generalization of the ingress qdisc as a qdisc holding only classifiers [[https://git.kernel.org/torvalds/c/1f211a1b929c804100e138c5d3d656992cfd5622|commit]] * Generic Network Virtualization Encapsulation (geneve) * Add UDP port offload for Ethernet devices [[https://git.kernel.org/torvalds/c/a8170d2b9e8d38a1f3fa3b40b6f8cd34a87d5382|commit]] * bonding * Add 802.3ad support for 100G speeds [[https://git.kernel.org/torvalds/c/3952af4d50343728e54bf93880e0ecb9c42c47aa|commit]] * Implement lower state change propagation [[https://git.kernel.org/torvalds/c/f7c7eb7f7af7f87e0fc150994785fd139576e43a|commit]] * IPv6 over Low power Wireless Personal Area Network (6lowpan) * Generic Header Compression support ([[http://tools.ietf.org/html/rfc7400|RFC 7400]]) [[https://git.kernel.org/torvalds/c/c39da3bb5b978ca03f1702c99965f3db1204516a|commit]], [[https://git.kernel.org/torvalds/c/70cc86752e59ec26fcd31679b1eef23e8cb4b516|commit]], [[https://git.kernel.org/torvalds/c/20616a5a1e3bb47c385c6d5f27520e7a3cc82864|commit]], [[https://git.kernel.org/torvalds/c/2f4799478c94928802c79edd12711a0e9e8b6f1b|commit]], [[https://git.kernel.org/torvalds/c/7e568f50c19c731938fee24a0f048f35120080f3|commit]], [[https://git.kernel.org/torvalds/c/43f26e17d02f5c772cedc3ee16b192ed79764474|commit]], [[https://git.kernel.org/torvalds/c/5e5c08cbee7d75d026ff50a5051f2ed19b4ba301|commit]] * Add debugfs support [[https://git.kernel.org/torvalds/c/00f59314111a6b18ee65b238b38c470dbdbf3be5|commit]], [[https://git.kernel.org/torvalds/c/b1815fd949e5bd06d118019acf68f87c9414f705|commit]] * Bluetooth * Add support for sending to monitor channel system notes as text strings for debugging purposes [[https://git.kernel.org/torvalds/c/dd31506d4aece48943802c2bca3f1f7d2e7266b4|commit]] * Add support for controller specific logging to allow userspace to log per controller [[https://git.kernel.org/torvalds/c/ac71494934c475e3f51e5e3e64a12f57618d82a4|commit]] * Add support for Get Advertising Size Information command, which allows to retrieve size information for advertising data and scan response data fields depending on the selected flags [[https://git.kernel.org/torvalds/c/40b25fe5dc57a6557b96241b75ae63dce716a487|commit]] * Add support for bluetooth v4.1 Start Limited Discovery command [[https://git.kernel.org/torvalds/c/78b781ca0d35191ebf8d8cad8beec810270f0f2e|commit]] * batman-adv: export single hop neighbor list via debugfs [[https://git.kernel.org/torvalds/c/7587405ab93e5383e64ac311f460c30a02a8e9cb|commit]] * nfc: netlink: Add support for missing HCI event {{{EVT_CONNECTIVITY}}} and forward it to userspace [[https://git.kernel.org/torvalds/c/9afec6d3866b8451abcf1a7a1a381a3be6c83386|commit]] * SCTP: allow setting {{{SCTP_SACK_IMMEDIATELY}}} by the application [[https://git.kernel.org/torvalds/c/27f7ed2b11d42ab6d796e96533c2076ec220affc|commit]] * Near Field Communication: support ISO14443 Type4A tags [[https://git.kernel.org/torvalds/c/ce2e56cdfbb010e22073d303161e74c144ebe731|commit]] * ethtool: Add support for phy statistics [[https://git.kernel.org/torvalds/c/f3a4094558ddf8afa8bb58250d548e15e059c65a|commit]] * Add sysctl {{{max_skb_frags}}} to configure the maximum numbers of fragments per skb [[https://git.kernel.org/torvalds/c/5f74f82ea34c0da80ea0b49192bb5ea06e063593|commit]] = List of merges = * [[https://git.kernel.org/torvalds/c/19ccb28e296d5afa299db1003d37e5d37994d46e|Pull vfs compat_ioctl fixes ]] * [[https://git.kernel.org/torvalds/c/32fb378437a1d716e72a442237d7ead1f435ecf0|Pull vfs RCU symlink updates ]] * [[https://git.kernel.org/torvalds/c/ddf1d6238dd13a3bd948e8fcb1109798ef0af49b|Pull vfs xattr updates ]] * [[https://git.kernel.org/torvalds/c/9061cbe62adeccf8c986883bcd40f4aeee59ea75|Pull RCU updates ]] * [[https://git.kernel.org/torvalds/c/24af98c4cf5f5e69266e270c7f3fb34b82ff6656|Pull locking updates ]] * [[https://git.kernel.org/torvalds/c/5cb52b5e1654f3f1ed9c32e34456d98559c85aa0|Pull perf updates ]] * [[https://git.kernel.org/torvalds/c/4bd20db2c027eab7490e3c0466734738bef2dd24|Pull RAS updates ]] * [[https://git.kernel.org/torvalds/c/af345201ea948d0976d775958d8aa22fe5e5ba58|Pull scheduler updates ]] * [[https://git.kernel.org/torvalds/c/4f19b8803bddbecbd8c3ac44a2cfadd9d2b85b8f|Pull x86 apic updates ]] * [[https://git.kernel.org/torvalds/c/88cbfd07119e394b9cbb1a4a764056c4b37e8378|Pull x86 asm updates ]] * [[https://git.kernel.org/torvalds/c/67c707e451e12f59e57bca6cf33b5803cb74b022|Pull x86 cleanups ]] * [[https://git.kernel.org/torvalds/c/671d5532aaad777782b66eff71bc4dfad25f942d|Pull x86 cpu updates ]] * [[https://git.kernel.org/torvalds/c/6896d9f7e7ee98d772224a539b7581a1e6dd6b2c|Pull x86 fpu updates ]] * [[https://git.kernel.org/torvalds/c/0ffedcda63f56eaca99a77392b9f057dfb738817|Pull x86 mm updates ]] * [[https://git.kernel.org/torvalds/c/ae8a52185e5c070cf4510b323dbc1b9e46b897d6|Pull x86 platform updates ]] * [[https://git.kernel.org/torvalds/c/b4cee21ee057ff3e5c9014fb6a175bd932c5ce62|Pull timer updates ]] * [[https://git.kernel.org/torvalds/c/3d116a66ed9df0271b8d267093b3bfde2be19b3a|Pull irq updates ]] * [[https://git.kernel.org/torvalds/c/0f8c7901039f8b1366ae364462743c8f4125822e|Pull workqueue update ]] * [[https://git.kernel.org/torvalds/c/8c930204ce76eddeb2e1af66a75f0ab2506c76e2|Pull libata updates ]] * [[https://git.kernel.org/torvalds/c/fb591fbd0aee437faada42b0473835bcbaf0eb38|Pull MMC updates ]] * [[https://git.kernel.org/torvalds/c/581dbc8bfc47ab16c69a67cc20dafea378ddbc60|Pull pin control updates ]] * [[https://git.kernel.org/torvalds/c/e795e5f4e01de550bd8947a7db910daaf7773198|Pull regmap updates ]] * [[https://git.kernel.org/torvalds/c/2634bf2550f4dd7d2d4373725dbe4c4d2a6499fd|Pull hwmon updates ]] * [[https://git.kernel.org/torvalds/c/d870a9d5e31ea69a1ceb7555d0d79364c442c5c0|Pull EDAC updates ]] * [[https://git.kernel.org/torvalds/c/2c487121e3c4f87e82cff493872675bde52e47fc|Pull LED subsystem updates ]] * [[https://git.kernel.org/torvalds/c/47c62e4be78303ef52ffa8134026919d0890c5a9|Pull media updates ]] * [[https://git.kernel.org/torvalds/c/03891f9c853d5c4473224478a1e03ea00d70ff8d|Pull device mapper updates ]] * [[https://git.kernel.org/torvalds/c/c5c80bd923d34f7dc70e7b23eb427cd284989a1b|Pull MIPS fixes ]] * [[https://git.kernel.org/torvalds/c/fa5fd7c628412ee09ccf5e1d6eebe1dba916b8ee|Pull arm64 updates ]] * [[https://git.kernel.org/torvalds/c/541d284be0fcca3d3990e6dd89b091aec66849c6|Pull arm/arm64 perf updates ]] * [[https://git.kernel.org/torvalds/c/01e9d22638f387b5413163d1030169b6478c09c5|Pull ARM updates ]] * [[https://git.kernel.org/torvalds/c/c3ce79d6a89e25fe0db1851b1b72e6d0dffc8a66|Pull component updates ]] * [[https://git.kernel.org/torvalds/c/c9bed1cf51011c815d88288b774865d013ca78a8|Pull xen updates ]] * [[https://git.kernel.org/torvalds/c/1baa5efbeb6eb75de697f7b5931094be33f12005|Pull KVM updates ]] * [[https://git.kernel.org/torvalds/c/4f31d774dd5239e563f22ffe1403292414e6f779|Pull UML updates ]] * [[https://git.kernel.org/torvalds/c/065019a38feab5f2659cbd44080d528f8dff0b00|Pull file locking updates ]] * [[https://git.kernel.org/torvalds/c/fce205e9da8e063aa1cf3d6583c1a9ed2b82f3f0|Pull vfs copy_file_range updates ]] * [[https://git.kernel.org/torvalds/c/33caf82acf4dc420bf0f0136b886f7b27ecf90c5|Pull misc vfs updates ]] * [[https://git.kernel.org/torvalds/c/4d58967783611c5676820b8d47a9b6b0bb456995|Pull GFS2 updates ]] * [[https://git.kernel.org/torvalds/c/420d12d6ade1e9c02b98fb9a381a17d7ccc7d35e|Pull configfs updates ]] * [[https://git.kernel.org/torvalds/c/60b7eca1dc2ec066916b3b7ac6ad89bea13cb9af|Pull UBI/UBIFS updates ]] * [[https://git.kernel.org/torvalds/c/c597b6bcd5c624534afc3df65cdc42bb05173bca|Pull crypto update ]] * [[https://git.kernel.org/torvalds/c/aee3bfa3307cd0da2126bdc0ea359dabea5ee8f7|Pull networking updates ]] * [[https://git.kernel.org/torvalds/c/34a9304a96d6351c2d35dcdc9293258378fc0bd8|Pull cgroup updates ]] * [[https://git.kernel.org/torvalds/c/c17488d06666153a14dd3f21bd10eba58383f6c1|Pull tracing updates ]] * [[https://git.kernel.org/torvalds/c/67990608c8b95d2b8ccc29932376ae73d5818727|Pull oower management and ACPI updates ]] * [[https://git.kernel.org/torvalds/c/237f38c3b3ab08eadecc89b7c9647b1cdb996bbe|Pull USB updates ]] * [[https://git.kernel.org/torvalds/c/67ad058d97b8cff441211b791d97e5f776b81210|Pull tty/serial updates ]] * [[https://git.kernel.org/torvalds/c/39272dde8ffcfd1322209e05f3f8fa4d14f796de|Pull staging driver updates ]] * [[https://git.kernel.org/torvalds/c/4c257ec37bc365614933c7f0a7fe9b0688dfd1e7|Pull char/misc updates ]] * [[https://git.kernel.org/torvalds/c/d6a322774cb7096ca683fc46ddc9482e02ee6133|Pull dmaengine updates ]] * [[https://git.kernel.org/torvalds/c/1c5ff2ab7bba6757e7663302c5905e6404de324a|Pull input updates ]] * [[https://git.kernel.org/torvalds/c/ac53b2e053fffc74372da94e734b92f37e70d32c|Pull MTD updates ]] * [[https://git.kernel.org/torvalds/c/50ae833e471fe1a1a906a0342bdaa690e69fcc19|Pull spi updates ]] * [[https://git.kernel.org/torvalds/c/77a76b04d2be1c45b8fd746b7ef754525029340c|Pull second batch of media updates ]] * [[https://git.kernel.org/torvalds/c/cbd88cd4c07f9361914ab7fd7e21c9227986fe68|Pull s390 updates ]] * [[https://git.kernel.org/torvalds/c/d080827f850ba4df5b955d5ca8c8c0fc92fe18c0|Pull libnvdimm updates ]] * [[https://git.kernel.org/torvalds/c/1289ace5b4f70f1e68ce785735b82c7e483de863|Pull first round of SCSI updates ]] * [[https://git.kernel.org/torvalds/c/f9a03ae123c92c1f45cd2ca88d0f6edd787be78c|Pull f2fs updates ]] * [[https://git.kernel.org/torvalds/c/7fdec82af6a9e190e53d07a1463d2a9ac49a8750|Pull xfs updates ]] * [[https://git.kernel.org/torvalds/c/b14bf630be972aceb0c8981f9794e612cbb141f7|Pull backlight updates ]] * [[https://git.kernel.org/torvalds/c/5c43019f25977fb6119dff471d592321ed0d2333|Pull power supply and reset updates ]] * [[https://git.kernel.org/torvalds/c/cf8d7e3850ee44dc2f0a69405d731af62528a948|Pull MFD updates ]] * [[https://git.kernel.org/torvalds/c/5339f9d4c2ceccab00b28d65bd5c2b2cd6a3de05|Pull DeviceTree updates ]] * [[https://git.kernel.org/torvalds/c/32250e4a5fa0b618044afa59fba01093a4bcb14a|Pull i2c updates ]] * [[https://git.kernel.org/torvalds/c/75f26df6ae6f8787fc6198609c8be17400a69e25|Pull NFS client updates ]] * [[https://git.kernel.org/torvalds/c/c2848f2eef4dd08b0fd2a8eba1694fd8e77ddb67|Pull HID updates ]] * [[https://git.kernel.org/torvalds/c/0f0836b7eb1b9d14862ee40c7856227a3ead70db|Pull livepatching updates ]] * [[https://git.kernel.org/torvalds/c/875fc4f5ddf35605581f9a5900c14afef48611f2|Merge first akpm patch-bomb ]] * [[https://git.kernel.org/torvalds/c/1d3671df72e0fe28d7cc686cb432e87c06f4accc|Pull UDF fixes and quota cleanups ]] * [[https://git.kernel.org/torvalds/c/4b43ea2a7c763ab4a1fef69b7c7e2cb091fdea6c|Pull regulator updates ]] * [[https://git.kernel.org/torvalds/c/3c28c9ccafd8bfb30ede7f36bf099b071b977209|Pull md updates ]] * [[https://git.kernel.org/torvalds/c/cc80fe0eefbbbd7b4e32f631bb2fa639d76af075|Pull nfsd updates ]] * [[https://git.kernel.org/torvalds/c/37cea93b99d2d89bef3adcb4632d71e1f377c447|Pull VFIO updates ]] * [[https://git.kernel.org/torvalds/c/f689b742f217b2ffe7925f8a6521b208ee995309|Pull powerpc updates ]] * [[https://git.kernel.org/torvalds/c/d45187aaf0e256d23da2f7694a7826524499aa31|Pull dmi updates ]] * [[https://git.kernel.org/torvalds/c/ece6267878aed4eadff766112f1079984315d8c8|Pull clk framework updates ]] * [[https://git.kernel.org/torvalds/c/e535d74bc50df2357d3253f8f3ca48c66d0d892a|Pull documentation updates ]] * [[https://git.kernel.org/torvalds/c/a016af2e70bfca23f2f5de7d8708157b86ea374d|Pull sound updates ]] * [[https://git.kernel.org/torvalds/c/6606b342febfd470b4a33acb73e360eeaca1d9bb|Pull watchdog updates ]] * [[https://git.kernel.org/torvalds/c/58cf279acac3080ce03eeea5ca268210b3165fe1|Pull GPIO updates ]] * [[https://git.kernel.org/torvalds/c/0cbeafb245ca568bc0765645aa64f0451b716657|Merge second akpm patch-bomb ]] * [[https://git.kernel.org/torvalds/c/a4eff16c54886c11972d6396ce8447b99e097343|Pull parsic updates ]] * [[https://git.kernel.org/torvalds/c/12768c1e2c83b05ea1658470045789a14b6edf4c|Pull kselftest updates ]] * [[https://git.kernel.org/torvalds/c/984065055e6e39f8dd812529e11922374bd39352|Pull drm updates ]] * [[https://git.kernel.org/torvalds/c/2d663b55816e5c1d211a77fff90687053fe78aac|Pull audit updates ]] * [[https://git.kernel.org/torvalds/c/d43fb9f3c5dff281dd72bea5cd2e91386fdc33a8|Pull fbdev updates ]] * [[https://git.kernel.org/torvalds/c/c38dec71664dadb15094151f53886abb69f8f9e6|Pull RTC updates ]] * [[https://git.kernel.org/torvalds/c/c1a198d9235b9e7d6942027374e44f78ebdcb455|Pull btrfs updates ]] * [[https://git.kernel.org/torvalds/c/d90f351a9bec6af3e8e7cefbbff94072461c3c9a|Pull AVR32 updates ]] * [[https://git.kernel.org/torvalds/c/d05d82f7110b08fd36178a641b69a1f206e1142b|Pull arch/tile updates ]] * [[https://git.kernel.org/torvalds/c/a200dcb34693084e56496960d855afdeaaf9578f|Pull virtio barrier rework+fixes ]] * [[https://git.kernel.org/torvalds/c/99e38df892234aa985185fc776647bad6f9bd7a7|Pull IOMMU updates ]] * [[https://git.kernel.org/torvalds/c/7c24d9f3b27b198c3c4dfc8327a25fb077a96219|Pull core block updates ]] * [[https://git.kernel.org/torvalds/c/d36ccdbd1ca1050ad4e7b9b16ced848132533f6e|Pull security subsystem update ]] * [[https://git.kernel.org/torvalds/c/2b4015e9fb335aa6982a68dbe6e4158d6c1b10ee|Pull x86 platform driver updates ]] * [[https://git.kernel.org/torvalds/c/d9569f003cfc0228e132749ae6fd81cb29dc6c70|Pull kbuild updates ]] * [[https://git.kernel.org/torvalds/c/af75d517a8b83cea88d8039beca1213813eb35f0|Pull kconfig updates ]] * [[https://git.kernel.org/torvalds/c/90bf353bc1451b71067b12541db08ab7774723eb|Pull misc kbuild updates ]] * [[https://git.kernel.org/torvalds/c/9fa686068a32ddf256df03982b3e3967c18654a8|Pull dmaengine fixes ]] * [[https://git.kernel.org/torvalds/c/71e4634e00119b2fb8dd0da99b3f5ebbb49cc872|Pull SCSI target updates ]] * [[https://git.kernel.org/torvalds/c/e3de671dd6784e30821e64f67f854b90b4496a68|Pull asm-generic updates ]] * [[https://git.kernel.org/torvalds/c/5083c54264d21bf9b8a4766068f51581854d772c|Pull ARM SoC cleanups ]] * [[https://git.kernel.org/torvalds/c/6b5a12dbca7a8681ecb78dbebaedc1f8364ebd10|Pull ARM SoC multiplatform code updates ]] * [[https://git.kernel.org/torvalds/c/1305eda751d7df3069b1fcb6f62036185acd24a0|Pull ARM SoC platform updates ]] * [[https://git.kernel.org/torvalds/c/6d1c244803f2c013fb9c31b0904c01f1830b73ab|Pull ARM DT updates ]] * [[https://git.kernel.org/torvalds/c/62c79bb3a99fb46a8624f9c7e86fa5ee2f936360|Pull ARM 64-bit DT updates ]] * [[https://git.kernel.org/torvalds/c/f9cd69fe5eb6347b4de56458d0378bc0fa44bce9|Pull ARM SoC defconfig updates ]] * [[https://git.kernel.org/torvalds/c/03d7d12415e3a4791994e566f1245838bc505c6b|Pull ARM 64-bit defconfig updates ]] * [[https://git.kernel.org/torvalds/c/9638685e32af961943b679fcb72d4ddd458eb18f|Pull ARM SoC driver updates ]] * [[https://git.kernel.org/torvalds/c/3549d82279370295a11f1dec0284a9922c903b9a|Pull SH driver updates ]] * [[https://git.kernel.org/torvalds/c/30f05309bde49295e02e45c7e615f73aa4e0ccc2|Pull more power management and ACPI updates ]] * [[https://git.kernel.org/torvalds/c/278e5acae1321978686e85ca92906054a36aa19b|Pull h8300 updates ]] * [[https://git.kernel.org/torvalds/c/859e762544902c3e09b3f8d994aab80ea5ff5042|Pull pwm updates ]] * [[https://git.kernel.org/torvalds/c/d43421565bf0510d35e6a39ebf96586ad486f3aa|Pull PCI updates ]] * [[https://git.kernel.org/torvalds/c/5c89e9ea7ef1feaa147325b2ab47a89a147fb903|Pull fuse updates ]] * [[https://git.kernel.org/torvalds/c/e9f57ebcba563e0cd532926cab83c92bb4d79360|Pull overlayfs updates ]] * [[https://git.kernel.org/torvalds/c/eae21770b4fed5597623aad0d618190fa60426ff|Merge third patch-bomb ]] * [[https://git.kernel.org/torvalds/c/404a47410c26a115123885977053e9a1a4460929|Expose an interface to allow users to mark several accesses together as]] * [[https://git.kernel.org/torvalds/c/641203549a21ba6a701aecd05c3dfc969ec670cc|Pull block driver updates ]] * [[https://git.kernel.org/torvalds/c/0a13daedf7ffc71b0c374a036355da7fddb20d6d|Pull lightnvm fixes and updates ]] * [[https://git.kernel.org/torvalds/c/3e1e21c7bfcfa9bf06c07f48a13faca2f62b3339|Pull NVMe updates ]] * [[https://git.kernel.org/torvalds/c/eadee0ce6fd33defe449c97e671bf83fa230b5de|Pull more vfs updates ]] * [[https://git.kernel.org/torvalds/c/d5ffdf8b4ac6e6db5702ba31870c476d5fa30660|Pull more xfs updates ]] * [[https://git.kernel.org/torvalds/c/391f2a16b74b95da2f05a607f53213fc8ed24b8e|Pull ext4 updates ]] * [[https://git.kernel.org/torvalds/c/2101ae42899a14fe7caa73114e2161e778328661|Pull more btrfs updates ]] * [[https://git.kernel.org/torvalds/c/e7cc3edd1758f9aab39f5afcd988ffed55cb26ca|Pull sound fixes ]] * [[https://git.kernel.org/torvalds/c/48162a203e1d0762569d9e7d2de153d9135b35f8|Pull crypto fixes ]] * [[https://git.kernel.org/torvalds/c/2c9b3ebd5913c2d1371b749a8057ac32972b410d|Pull MMC fixes ]] * [[https://git.kernel.org/torvalds/c/4adea1fd2773a88c30ecd77d4e5d256fa40908e2|Pull more SCSI updates ]] * [[https://git.kernel.org/torvalds/c/5430dfe90db8a4443fa7f9b62c77e82f768dd797|Pull more input updates ]] * [[https://git.kernel.org/torvalds/c/79d245327f61ff21e7b9427c61fded5442734233|Pull ARM SoC support for Tegra platforms ]] * [[https://git.kernel.org/torvalds/c/b82dde0230439215b55e545880e90337ee16f51a|Pull ia64 copy_file_range syscall update ]] * [[https://git.kernel.org/torvalds/c/20c759ca98468d96d1fff8bd5e6753f458dbbfbd|Merge small final update ]] * [[https://git.kernel.org/torvalds/c/cc673757e24d018d64ff8038e28835db1e2902c4|Pull final vfs updates ]] * [[https://git.kernel.org/torvalds/c/b3e27d5d4a29bcc8e057b496d5ef5194addaaac0|Pull NTB updates ]] * [[https://git.kernel.org/torvalds/c/048ccca8c1c8f583deec3367d7df521bb1f542ae|Pull rdma updates ]] * [[https://git.kernel.org/torvalds/c/772950ed21c36f4157ff34e7d10fb61975f64558|Pull SMB3 fixes ]] * [[https://git.kernel.org/torvalds/c/00e3f5cc305c8a056a22cecedab3a71d59dae1fc|Pull Ceph updates ]] * [[https://git.kernel.org/torvalds/c/c52cb4311f20538fcb69420e55a19ac622546a08|Pull 9p updates ]] * [[https://git.kernel.org/torvalds/c/81f05fee8c063cfc1614ddba1ce88cb1129f263d|Pull thermal management updates ]] * [[https://git.kernel.org/torvalds/c/e1c10879ed59436cde537b723545430b04d4dec0|Pull x86 platform driver updates ]] * [[https://git.kernel.org/torvalds/c/e2464688b59c6ae9928f385dabf5355e30cff298|Pull MIPS updates ]] = Other news sites = * LWN's 4.5 merge window [[https://lwn.net/Articles/671470/|1]], [[https://lwn.net/Articles/672344/|2]] and [[https://lwn.net/Articles/673312/|3]] * Phoronix [[http://www.phoronix.com/scan.php?page=article&item=linux-45-features|The Many New Features & Improvements Of The Linux 4.5 Kernel]] * linuxfr.org [[http://linuxfr.org/news/sortie-du-noyau-linux-4-5|Sortie du noyau Linux 4.5]]