Linux 4.7 was released on Sun, 24 Jul 2016.

Summary: This release adds support for the recent Radeon RX 480 GPUs, support for parallel pathname lookups in the same directory, a new experimental 'schedutils' frequency governor that should be faster and more accurate than existing governors, support for the EFI 'Capsule' mechanism for upgrading firmware, support for virtual USB Devices in USB/IP to make emulated phones behave as real USB devices, a new security module ' LoadPin ' that ensures that all kernel modules are loaded from the same filesystem, an interface to create histograms of events in the ftrace interface, support for attaching BPF programs to kernel tracepoints, support for callchains of events in the perf trace utility, stable support for the Android's sync_file fencing mechanism, and many other improvements and new drivers.

1. Prominent features

1.1. Support for Radeon RX480 GPUs

This release includes support for just released Radeon RX 480 GPUs in the amdgpu driver, which is the first device based on the new Polaris architecture. Support is on par with the rest of devices of the amdgpu driver.

Code: (merge)

1.2. Parallel directory lookups

The directory cache caches information about path names to make them quickly available for pathname lookup. This allows to speed up many common operations; for example, it allows to determine if a particular file or directory exists without having to read the disk. This cache uses a mutex to serialize lookup of names in the same directory.

In this release, the serializing mutex has been switched to a read-write semaphore, allowing for parallel pathname lookups in the same directory. Most workloads won't notice any improvement (cached pathname lookups are fast and having locking contention issues there is very rare), specific workloads that make very heavy use of pathname lookups in the same directory will be faster because they will be able to do them in parallel. Most filesystems have been converted to allow this feature.

Code: commit, commit, commit, commit, commit, commit

1.3. New 'schedutil" frequency governor

This release adds a new governor to the dynamic frequency scaling subsystem (cpufreq). There are two main differences between it and the existing governors. First, it uses information provided by the scheduler directly for making its decisions. Second, it can invoke cpufreq drivers and change the frequency to adjust CPU performance right away, without having to spawn work items to be executed in process context or similar.

What this means is that the latency to make frequency changes in the face of workload variations should be very small, and thanks to the information provided by the scheduler, it can make more accurate decisions. Note also that the schedutil governor, as included in this release is very simple and it's regarded as a foundation for improving on the integration of the scheduler with CPU power management; but it works and the preliminary results are encouraging. The governor shares some tunables management with other governors.

Recommended LWN article: Improvements in CPU frequency management

Code: commit

1.4. Histograms of events in ftrace

'Hist' triggers are a new addition to ftrace, the Linux tracing infrastructure available since 2.6.27 that it's embedded in the kernel and lives at /sys/kernel/debug/tracing/ . This release adds the "hist" command, which provides the ability to build "histograms" of events by aggregating event hits. As an example, let's say a user needs to get a list of bytes read from files from each process. You can get this information using hist triggers, with the following command command:

echo 'hist:key=common_pid.execname:val=count:sort=count.descending' > /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/trigger

What this strange command does is to write a command to the trigger file of the sys_enter_read event (the one corresponding to a process entering the read() system call, that is, trying to read a file). Triggering this event will run the following hist command ( hist: ) that means the following: for each hit on the event, get the PID ( common_pid (you can see all the possible fields to query in /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/format ) and convert it to process names ( .execname suffix); this will be used as key ( key= ) in the histogram. The val=count parameter makes the hist command to also query the count field, which in the sys_enter_read event it means the number of bytes read. Finally, after the : separator, the sort=count.descending makes the command sort the result by the field count in descending order. This is the resulting output (note that the hits for the same PID will be aggregated):

{{{ # cat /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/hist # trigger info: hist:keys=common_pid.execname:vals=count:sort=count.descending:size=2048 [active]

{ common_pid: gnome-terminal [ 3196] } hitcount: 280 count: 1093512 { common_pid: Xorg [ 1309] } hitcount: 525 count: 256640 { common_pid: compiz [ 2889] } hitcount: 59 count: 254400 { common_pid: bash [ 8710] } hitcount: 3 count: 66369 { common_pid: dbus-daemon-lau [ 8703] } hitcount: 49 count: 47739 { common_pid: irqbalance [ 1252] } hitcount: 27 count: 27648 { common_pid: 01ifupdown [ 8705] } hitcount: 3 count: 17216 { common_pid: dbus-daemon [ 772] } hitcount: 10 count: 12396 { common_pid: Socket Thread [ 8342] } hitcount: 11 count: 11264 { common_pid: nm-dhcp-client. [ 8701] } hitcount: 6 count: 7424 { common_pid: gmain [ 1315] } hitcount: 18 count: 6336 . . . { common_pid: postgres [ 1892] } hitcount: 2 count: 32 { common_pid: postgres [ 1891] } hitcount: 2 count: 32 { common_pid: gmain [ 8704] } hitcount: 2 count: 32 { common_pid: upstart-dbus-br [ 2740] } hitcount: 21 count: 21 { common_pid: nm-dispatcher.a [ 8696] } hitcount: 1 count: 16 { common_pid: indicator-datet [ 2904] } hitcount: 1 count: 16 { common_pid: gdbus [ 2998] } hitcount: 1 count: 16 { common_pid: rtkit-daemon [ 2052] } hitcount: 1 count: 8 { common_pid: init [ 1] } hitcount: 2 count: 2

Totals: Hits: 2116 Entries: 51 Dropped: 0



}}}

This output shows what processes are reading files, how much (count), and how often they try to read (hitcount, which wasn't specified but it is included by default). For more information about hist and its possibilities, see the hist triggers documentation in Documentation/trace/events.txt, or read this recommended blog post from Brendan Egg Hist Triggers in Linux 4.7. For development context of the feature, also see this recommended LWN article: Ftrace and histograms: a fork in the road. For more documentation on ftrace, see Documentation/trace/ftrace.txt or this recommended LWN article.

Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

1.5. perf trace calls stack

In this release, perf trace adds the ability of printing a userspace callchain each time an system call is hit. An example of a callchain for a recvmsg() syscall issued by gnome-shell:

{{{3292.421 ( 0.002 ms): gnome-shell/2287 recvmsg(fd: 11<socket:[35818]>, msg: 0x7ffc5ea266e0 ) = 32

GI_libc_recvmsg+0x2d (/usr/lib64/libpthread-2.22.so) _xcb_in_read+0xa7 (/usr/lib64/libxcb.so.1.1.0) poll_for_next_event+0x68 (/usr/lib64/libxcb.so.1.1.0) poll_for_event+0xb8 (/usr/lib64/libX11.so.6.3.0) poll_for_response+0xab (/usr/lib64/libX11.so.6.3.0) _XEventsQueued+0x5d (/usr/lib64/libX11.so.6.3.0) XPending+0x57 (/usr/lib64/libX11.so.6.3.0) gdk_event_source_check+0x51 (/usr/lib64/libgdk-3.so.0.1800.9) g_main_context_check+0x1b1 (/usr/lib64/libglib-2.0.so.0.4600.2) g_main_context_iterate.isra.29+0x120 (/usr/lib64/libglib-2.0.so.0.4600.2) g_main_loop_run+0xc2 (/usr/lib64/libglib-2.0.so.0.4600.2) meta_run+0x2c (/usr/lib64/libmutter.so.0.0.0) main+0x3f7 (/usr/bin/gnome-shell) libc_start_main+0xf0 (/usr/lib64/libc-2.22.so) [0x2909] (/usr/bin/gnome-shell)}}}

You can try it with commands such as # trace --call dwarf ping 127.0.0.1 . You can also only print callchains for a single event, for example: perf trace --event sched:sched_switch/call-graph=fp/ -a sleep 1 . Tracing page faults (option -F/--pf ) also support it, for example, tracing write syscalls and major page faults with callchains while starting firefox, limiting the stack to 5 frames, can be done with # perf trace -e write --pf maj --max-stack 5 firefox . An excerpt of a system wide perf trace --call dwarf session can be found here.

1.6. Allow BPF programs to attach to tracepoints

Tracepoints are a sort of dynamic printf()s that developers introduce in their code so that they can be used later to analyse the system behaviour. Tracepoints can be accessed from several utilities: LTTng, perf, SystemTap, ftrace...but they couldn't be accessed by BPF programs.

This release adds a new type of BPF program ( BPF_PROG_TYPE_TRACEPOINT ) that can be used to build BPF programs that can be attached to kernel tracepoints. This makes possible to build programs that collect data from tracepoints and process them in the BPF program. This is a faster alternative to access tracepoints than kprobes, it can make the tracing programs more stable, and allows to build more complex tracing tools.

Recommended LWN article: Tracepoints with BPF

Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

This release adds support for the the EFI Capsule mechanism, which allows to pass data blobs to the EFI firmware. The firmware then parses them and makes some decision based upon their contents. The most common use case is to bundle a flashable firmware image into a capsule that the firmware can use to upgrade in the next boot the existing version in the flash. Users can upload capsule by writting the firmware to the /dev/efi_capsule_loader device

Recommended blog: Better Firmware Updates in Linux using UEFI Capsules

Code: commit, commit

1.8. Support for creating virtual USB Device Controllers in USB/IP

USB/IP allows to shared USB devices over the network. The USB devices need, however, to be real devices. This release brings the ability to create virtual USB Device Controllers without needing any physical USB device, using the USB gadget subsystem.

This feature has several uses; for example, it makes possible to improve phone emulation in development environments. Emulated phones can be now connected to developer's machine or another virtual machine as if it would be a physical phone. It is also useful for testing USB and for educational purposes.

Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

1.9. Android's sync_file fencing mechanism considered stable

In this release, the sync_file code that was in the staging/ directory has been moved to the real kernel. The Linux Kernel only had an implicit fencing mechanism where the fence are attached directly to buffers and userspace is unaware of what is happening; explicit fencing is not supported.

sync_file is a explicit fencing mechanism designed for Android that help the userspace handles fences directly. Instead of attaching a fence to the buffer a producer driver, it sends the fence related to the buffer to userspace via a sync_file, which can then be sent to the consumer, that will not use the buffer for anything before the fence(s) signals. With this explicit fencing we have a global mechanism that optimizes the flow of buffers between consumers and producers, avoid a lot of waiting. So instead of waiting for a buffer to be processed by the GPU before sending it to DRM in an Atomic IOCTL we can get a sync_file fd from the GPU driver at the moment we submit the buffer processing. The compositor then passes these fds to DRM in a atomic commit request, that will not be displayed until the fences signal, i.e, the GPU finished processing the buffer and it is ready to display.

Documentation: Documentation/sync_file.txt

Code: commit, commit, commit, commit

1.10. LoadPin, a security module to restrict the origin of kernel modules

LoadPin is a new Linux Security Module that ensures all files loaded by the kernel (kernel modules, firmware, kexec images, security policies) all originate from the same filesystem. The expectation is that the filesystem is backed by a read-only device such as a CDROM or dm-verity (this feature comes from ChromeOS, where the device as a whole is verified cryptographically via dm-verity). This allows systems that have a verified and/or unchangeable filesystem to enforce module and firmware loading restrictions without needing to sign the files individually.

Recommended LWN article: The LoadPin security module

Code: commit, commit

2. Core (various)

(FEATURED) Parallel directory lookups commit, commit, commit, commit, commit, commit

printk: make the NMI backtraces safe on all architectures and make all NMI messages almost safe on all architectures. Also make NMI buffer size configurable commit, commit, commit, commit

procfs: expose umask in /proc/PID/status , because it's not possible to read the process umask without also modifying it, which is what umask(2) does commit

Add RWF_DSYNC and RWF_SYNC flag for preadv2()/pwritev2() . This is the per-I/O equivalent of O_DSYNC and O_SYNC , and very useful for all kinds of file servers and storage targets commit

CPU accounting controller: Split cpuacct.usage into user usage and sys usage commit

GDB scripts: add a Radix Tree Parser commit, add cpu iterators commit, add io resource readers commit, add mount point list command commit, provide kernel list item generators commit, provide linux constants commit,

Improve the sigaltstack(2) interface by adding the SS_AUTODISARM flag. When this flag is set, sigaltstack(2) will be disabled when entering the signal handler; when leaving the signal handler, the sigaltstack is restored. This makes safe to use swapcontext() in a sighandler that works on sigaltstack(). Without this flag, the subsequent signal will corrupt the state of the switched-away sighandler. The inspiration is more robust dosemu signal handling commit, commit, commit, commit, commit, commit

The kernel and some modules make many symbols available for other modules to use via EXPORT_SYMBOL() and variants. Depending on the set of modules being selected in your kernel configuration, many of those exported symbols might never be used. This release adds a new configuration option ( CONFIG_TRIM_UNUSED_KSYMS ) that allows for unused exported symbols to be dropped from the build. In turn, this provides the compiler more opportunities (especially when using LTO) for optimizing the code and reducing binary size commit

Initial infrastructure to migrate the kernel documentation to reStructuredText format (recommended LWN article (merge)

3. File systems

XFS Add configurable error handling for metadata write errors. The default error handling behaviour from "retry forever" to "retry until unmount then fail" commit, commit, commit, commit, commit, commit, commit

Btrfs Add support for renameat2() RENAME_EXCHANGE (atomically exchanges paths), and RENAME_WHITEOUT (used to support overlayfs) commit Introduce new ioctl which allows device delete by devid commit Allow balancing to dup with multi-device commit

OCFS2 When storage down, all nodes will fence self due to write timeout. With this release, all nodes will keep going until storage back online, except if the following issue happens, then all nodes will do as before to fence self commit, commit, commit, commit, commit, commit

Ceph Multi-filesystem support (multiple namespaces within the same Ceph cluster) commit A major OSD client update, which has evolved significantly over the last couple years, with lots of additional behaviors commit

ext4 Allow readdir()'s of large empty directories to be interrupted commit

F2FS Add fault injection support commit, commit, commit, commit, commit Add proc entry to show valid block bitmap for user to be aware of fragmentation commit Speedup fallocate commit

NFS Add support for NFS/RDMA over IPv6 commit, commit Support for the NFS v4.2 COPY operation. Linux 4.5 added the copy_file_range(2) system call, and it also added support in NFS for the CLONE operation present in the NFS v4.2 draft, which allows to clone ranges of a file into another. This release adds support for the COPY operation, which allows to make copies of entire files commit



4. Memory management

Support bigger cache working sets and protect against writes. Due to problems with some specific PostgreSQL workloads, two changes have been made to the memory management code: 1) stop promoting pages that are written or rewritten to the active list of file pages, because there are good chances that the data may not be read again, or they may even be rewritten again before they are read, so these pages may occupy space in the active file list that could be used by pages that are read frequently 2) remove the enforcement that requires the inactive file list have a minimum size of 50% of the file cache. With the workingset refault measurement, the system can afford (on a larger systems) to make the inactive file list smaller. This release allows to increase the active list on the same ratios used for anonymous memory, which should help things like database workloads, where only half the page cache could be used to cache the database working set commit, commit, commit

A set of microoptimizations described as "Another year, another round of page allocator optimisations focusing this time on the alloc and free fast paths". See first commit for details and benchmarks commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Add CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE , which sets the default policy setting for memory hotplug onlining policy ( /sys/devices/system/memory/auto_online_blocks ) which determines what happens to newly added memory regions commit. A new kernel command line, memhp_default_state=online/offline command line parameter to tweak this behaviour at boot time commit

Reduce latency of direct async compaction, which also means a higher chance of succeeding until it detects contention commit, commit, commit

Rework OOM detection to make it more reliable (recommended LWN article) [https://git.kernel.org/torvalds/c/b6459cc154e804f0de0d61fa023c4946b742cc96 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

slab allocator (not to confuse with the default slub allocator): reduce lock contention in alloc path to improve concurrent allocation. Performance is improved greatly (roughly more than 50%) for the object class whose size is more than 128 bytes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Provide new sysctl /proc/sys/vm/stat_refresh ; when read or written anything it will force an immediate update of per-cpu into global vmstats: useful to avoid a sleep(2) or whatever before checking counts when testing; eg. cat /proc/sys/vm/stat_refresh /proc/meminfo commit

Provides optional config CONFIG_SLAB_FREELIST_RANDOM to randomize the SLAB freelist. This security feature reduces the predictability of the kernel SLAB allocator against heap overflows rendering attacks much less stable commit

Enable RLIMIT_DATA by default with workaround for valgrind commit

KASAN: initial memory quarantine implementation, which isolates freed objects in a separate queue. The objects are returned to the allocator later when they are required; this to detect use-after-free errors commit

compressed swap: add z3fold, a special purpose allocator for storing compressed pages. It is designed to store up to three compressed pages per physical page. It is a ZBUD derivative which allows for higher compression ratio keeping the simplicity and determinism of its predecessor commit

zram: introduce per-device debug_stat in /sys/block/zram<id>/debug_stat commit

vmscan: consider classzone_idx in compaction_ready commit

5. Block layer

Device DAX (/dev/dax) for persistent memory: Device DAX is the device-centric analogue of filesystem DAX ( CONFIG_FS_DAX ). It allows memory ranges to be allocated and mapped to without need of an intervening file system. Device DAX is strict, precise and predictable. Specifically this interface: Guarantees fault granularity with respect to a given page size set at configuration time, and enforces deterministic behaviour by being strict about what fault scenarios are supported commit, commit, commit, commit

Async discard support commit

libnvdimm: report multiple 'NVDIMM Control Region Structure' instances per-DIMM commit

Device Mapper multipath: make fast code-paths lockless, to significantly improve large NUMA performance when using blk-mq commit

Add a write_cache sysfs file that will display whether the device has write back caching enabled or not. It will return "write back" for the former case, and "write through" for the latter. Writing to this file can change the kernels view of the device, but it doesn't alter the device state commit

UBI: Add ro-mode sysfs attribute commit

6. Security

(FEATURED) New Linux Security Module, LoadPin , which enforces that kernel-loaded files (modules, firmware, etc) must all come from the same filesystem, with the expectation that such a filesystem is backed by a read-only device such as dm-verity or CD-ROM. This allows systems that have a verified and/or unchangeable filesystem to enforce module and firmware loading restrictions without needing to sign the files individually commit, commit

SELinux: restrict kernel module loading commit

Keys: Adds userspace access to Diffie-Hellman computations through a new keyctl() syscall command ( KEYCTL_DH_COMPUTE ) to calculate shared secrets or public keys using input parameters stored in the keyring commit

Keys: Add a facility whereby proposed new links to be added to a keyring can be vetted, permitting them to be rejected if necessary. This can be used to block public keys from which the signature cannot be verified or for which the signature verification fails. It could also be used to provide blacklisting commit, commit

Keys: Big keys stored encrypted commit

IMA: Add a config option ( IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY ) that, when enabled, allows keys to be added to the IMA keyrings by userspace - with the restriction that each must be signed by a key in the system trusted keyrings commit

IMA: add support for creating files using the mknodat syscall commit

audit: add tty field to LOGIN event commit

7. Tracing, perf, BPF

tracing: With a new tracing option event-fork which, when set, will have tasks with PIDs in set_event_pid, when they fork, to have their child PIDs added to set_event_pid and the child will be traced as well commit, commit

(FEATURED) Hist triggers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

(FEATURED) perf trace: Add support for callchains, with e.g. perf trace --call dwarf ping 127.0.0.1 . An example of system-wide perf trace --call dwarf can be seen here (You may need to bump the number of mmap pages with --mmap-pages ) commit, commit, commit, commit

perf trace: Add --max-stack knob to limit the depth of callchains commit; and also a --min-stack knob, to show syscalls that had a userspace callchain leading to it at least min-stack deep commit

perf bpf: Automagically create a 'bpf-output' event, easing the setup of BPF C "scripts" that produce output via the perf ring buffer. Now it is just a matter of calling any perf tool, such as 'trace', with a C source file that references the __bpf_stdout__ output channel and that channel will be created and connected to the script commit

(FEATURED) perf bpf: allow bpf programs attach to tracepoints commit, (merge)

perf: Allow to set a maximum allowed stack in /proc/sys/kernel/perf_event_max_stack commit

perf trace: "beautify" several syscall arguments in the output commit, commit, commit, commit, commit

perf: Adds an extension to the --itrace argument that skips 'n' events (instructions, branches or transactions) at the beginning commit

perf mem: Add -U and -K as alias of --all-user and --all-kernel commit

perf jit: Add support for using TSC as a timestamp. Use of TSC is selected by an environment variable JITDUMP_USE_ARCH_TIMESTAMP and flagged in the jitdump file with flag JITDUMP_FLAGS_ARCH_TIMESTAMP commit

perf record: Add --timestamp-filename option to append timestamp to output file name, e.g. perf.data.2015122622265847 . Will be useful after funcionality is introduced to make perf.data file snapshots commit

perf record: Add new --switch-output . It allows to generate multiple perf.data files, timestamp prefixed, and perf record will switch to a new one when receiving the SIGUSR2 signal commit

perf report: Add srcline_from and srcline_to branch sort keys that allow to show the source lines of a branch commit

perf sched map: Display only given cpus with option --cpus commit, allow requesting that some CPUs or PIDs be highlighted with --color-pids and --color-cpus commit, commit

perf script: Add support for backtraces in Perl, like in Python commit

perf script: Add --max-stack knob to limit the depth of callchains commit

perf script: Enable database export to output sampled callchains commit, commit, commit

BPF Add support for further security hardening of JIT generated images through generic support for blinding constants. A new /proc/sys/net/core/bpf_jit_harden file is provided that admins can tweak along with /proc/sys/net/core/bpf_jit_enable , so that for cases where JIT should be enabled for performance reasons, the generated image can be further hardened with blinding constants for unpriviledged users ( bpf_jit_harden == 1), with trading off performance for these, but not for privileged ones. bpf_hit_harden enables blinding for all users. This functionality provides a generic eBPF byte-code level based blinding implementation, which is then just transparently JITed. JIT compilers need to make only a few changes to integrate this facility commit Extended BPF carried over two instructions from classic to access network packet data: LD_ABS and LD_IND . They're highly optimized in JITs, but due to their design they have to do length check for every access. This releases incorporates direct packet access, which eliminates the overhead commit Add event output helper for notifications/sampling/logging commit



8. Virtualization

KVM Create debugfs dir and stat files for each VM, named after its PID and file descriptor. The directories contain the same kind of files that are already in the KVM debugfs directory, but the data exported through them is now VM specific commit Add kvm_stat vm monitor script commit, commit

virtio: add noring tool, useful to measure testing framework overhead commit

Hyper-V: Implement APIs to support "in place" consumption of vmbus packets, which help batched in-place processing of vmbus packets commit

Hyper-V: Implement support for VF drivers on hv_netvsc commit

xen-netback: support for control ring commit, commit, commit, commit

um: add extended processor state save/restore support commit

9. Networking

Add support for partial Generic Segmentation Offload. The basic idea is that the kernel can support a broader range of devices for segmentation if the kernel uses fixed outer headers and have the hardware only really deal with segmenting the inner header commit

Generic Routing Encapsulation (GRE): Add support for Generic Receive Offload/Generic Segmentation Offload of IPv6 GRE traffic commit

Generic Receive Offload: Allow TCP to aggregate TCP frames with a fixed IPv4 ID field. As a result the kernel should now be able to aggregate flows that were converted from IPv6 to IPv4. Also force the IP ID to be incrementing by 1 unless the DF bit is set in the outer IPv4 header to avoid creating overlapping series of IP IDs that could possibly be fragmented if the frame goes through GRO and is then resegmented via GSO commit

Infiniband IPoIB: Currently an IPoIB interface will always be created with a device address based on its node GUID without a way to change that. This release adds the ability to set the device address of an IPoIB interface by value commit IPoIB: Add readout of statistics using ethtool commit Support new type of join-state for multicast. There are four types for MCG, FullMember, NonMember and SendOnlyNonMember . This release adds a new type: SendOnlyFullMember , which allows host to send join request as sendonly, it will cause the group to be created but without getting packets from this multicast back to the host commit netlink: Add a new local service operation, IP to GID resolution commit

Wireless Allow a scan request for a specific BSSID to be optimized by the user space by requesting to set the Probe Request frame BSSID field (Address 3) to the specified BSSID instead of the wildcard BSSID. This prevents other APs from replying which reduces airtime need and latency in getting the response from the target AP through commit, commit Add support for Aggregationg of MAC Service Data Unit tx. Requires software tx queueing and fast-xmit support commit Add fast-rx path commit hwsim: Support a hw scan request for a specific BSSID commit Add support for NL80211_STA_INFO_RX_DURATION . If present, this attribute contains the aggregate PPDU duration (in microseconds) for all the frames from the peer. This is useful to help understand the total time spent transmitting by all of the connected peers commit Extend the NL80211_CMD_CONNECT command to allow the NL80211_ATTR_PREV_BSSID attribute to be used similarly to way this was already allowed with NL80211_CMD_ASSOCIATE . This allows user space to request reassociation (instead of association) when already connected to an AP, providing an option to reassociate within an ESS without having to disconnect and associate with the AP commit Legacy clients don't support P2P power save mechanisms, and thus if a P2P GO has a legacy client connected to it, it has to make some changes in the PS behavior. To handle this, this release adds an attribute to specify whether a station supports P2P PS or not commit

devlink: Add userspace API for configuration of shared buffers and a monitoring interface commit, commit

bridge: export per-vlan stats in netlink commit

Add receive path support for IPv6 with foo-over-UDP commit, commit, commit, commit

Add fair queuing framework, based on a generalization of the codel algorithm, so codel can be reused by others commit

fq_codel qdisc: add memory limitation per queue commit

ila: Support checksum neutral ILA as described in the ILA draft commit

Support Generic Segmentation Offload/Generic Receive Offload in ip4ip6 commit and ip6ip6 commit

Support for Generic Segmentation Offload in ip6gre commit

Add support for foo-over-UDP/Generic UDP Encapsulation encapsulation in IPv6 Generic Route Encapsulation commit

Add support for foo-over-UDP/Generic UDP Encapsulation in IPv6 tunnels commit

geneve: change to use UDP socket Generic Receive Offload commit

IP Virtual Server Allow SIP connections originating from real-servers to be load balanced by the SIP persistence engine as is already implemented in the other direction commit Release connections immediately for One-packet-scheduling (OPS) for improved performancecommit

SCTP Add sctp_diag module to implement diag interface on sctp commit, commit Add support for RPS and RFS commit

Adds support for NETIF_F_TSO_MANGLEID if a given tunnel supports NETIF_F_TSO . This way if needed a device can then later enable the TCP Segmentation Offload with IP ID mangling and the tunnels on top of that device can then also make use of the IP ID mangling as well commit

Add SOCK_RCU_FREE socket flag that UDP sockets and TCP listeners can set so that their lookup can use traditional RCU rules, without refcount changes. The UDP stack is instructed to not use SLAB_DESTROY_BY_RCU , in order to speedup rx processing for traffic encapsulated in UDP; performance for a single UDP socket receiving flood traffic from many RX queues/cpus is increased. TCP listeners are changed to use SOCK_RCU_FREE as well to avoid touching sk_refcnt under synflood. Peak performance under SYNFLOOD is increased by ~33% commit, commit, commit, commit, commit

Add rate limiting on ACK sent on behalf of SYN_RECV to better resist to SYNFLOOD targeting one or few flows commit, commit

Add support for skip-sw flag to tc u32 classifier. commit

L3 master device: l3mdev: Allow send on enslaved interface commit

Netfilter bridge: add a nf_afinfo for the ethernet bridge, which enables queuing to userspace for the AF_BRIDGE family commit bridge: pass L2 header and VLAN as netlink attributes in queues to userspace commit nftables: add connlabel set support commit

TCP Make the TCP code more preemptible (merge) Improve even more the resistance to synflood (performance under synflood goes from 3.2 Mpps to 6 Mpps) commit, commit

Enable TX timestamping via cmsg. Currently, SOL_TIMESTAMPING can only be enabled using setsockopt. This is very costly when users want to sample writes to gather TX timestamps. This release adds support for enabling SO_TIMESTAMPING via control messages. For more details see the documentation. commit, commit, commit, commit, commit, commit, commit, commit

UDP: Add Generic Receive Offload functions to UDP socket and removes udp_offload infrastructure commit, commit

veth: Update features to include all tunnel Generic Segmentation Offload types commit

vxlan Change vxlan to use UDP socket Generic Receive Offload commit Implement VXLAN-GPE commit

rtnetlink: add new RTM_GETSTATS message to dump link stats. RTM_NEWLINK also dumps stats today, but it's too heavy commit

ethtool: add support for 25G/50G/100G speed modes commit

Bluetooth: Allow setting BT_SECURITY_FIPS with setsockopt for an L2CAP socket commit

ppp: add rtnetlink device creation support commit

10. Architectures

ARM device tree sources Add Aspeed ast2500 device tree commit, add Aspeed ast2400 device tree commit, commit Add Oxford Semiconductor OX810SE dtsi commit Add Western Digital My Book World Edition device tree commit Add support for dra72-evm rev C (SR2.0) commit Amazon Kindle Fire (first generation) codename kc1 basic support commit Add DTS for Baltos IR2110 commit Add DTS for Baltos IR3220 commit am335x: Add initial support for ICEv2 board commit db600c: add board support with serial commit exynos: Add exynos3250-artik5 dtsi file for ARTIK5 module commit imx6: Add DTS for Embest MarS Board commit, add support for more Ka-Ro electronics modules commit, add support for the Ka-Ro electronics 'MB7' baseboard commit imx6ul-pico-hobbit: Add initial support commit imx6ul: add support for Ka-Ro electronics TXUL modules commit imx: add Boundary Devices Nitrogen6_MAX QP board commit, add Boundary Devices Nitrogen6_SoloX board commit Introduce MPS2 AN385/AN386 commit Introduce MPS2 AN399/AN400 commit kirkwood: Add DTS for Linksys EA4200v2/EA4500 commit orion5x: add device tree for kurobox-pro commit realview: DT support for the PBA8 and PBX-A9 commit, support all the RealView EB board variants commit rockchip: add MiQi board from mqmaker commit socfpga: Add samtec VIN|ING board commit sun4i: Add dts file for Dserve DSRV9703C tablet commit sun5i: Add dts for Difrence DIT4350 tablet commit sun6i: Add dts for Colorfly e708 q1 tablet commit sun8i: Add Orange Pi PC support commit, add dts file for the Orange Pi One SBC commit, add dts file for the Polaroid MID2809PXE4 tablet commit, add dts for Orange Pi 2 SBC commit, base Orange Pi Plus dts on the Orange Pi 2 dts commit sunxi: Add a olinuxino-lime2-emmc commit vf610-zii-dev: Add ZII development board. commit ipq4019: Add support for IPQ4019 DK01 board commit qcom: ipq4019: Add basic board/dts support for IPQ4019 SoC commit Remove pci=firmware command line parameter handling commit socfpga: Enable Arria10 L2 cache ECC on startup commit socfpga: Enable Arria10 OCRAM ECC on startup commit socfpga: Initialize Arria10 OCRAM ECC on startup commit vexpress/mps2: introduce MPS2 platform commit

coresight: new stm driver for CoreSight STM component commit; tmc: implement the AUX area interfaces required to use the TMC (configured as an ETF) from the Perf sub-system commit, etb10: splitting sysFS "status" entry commit, etm4x: adding config and traceid registers commit, etm4x: implementing the perf PMU API commit, etm4x: implementing user/kernel mode tracing commit Add EFI GOP framebuffer support commit, commit

ARM64 Add NUMA support commit Add NUMA balancing support commit perf: Add Broadcom Vulcan PMU support commit Add acpi=on cmdline option to prefer ACPI boot over DT commit kaslr: increase randomization granularity commit Add support for hibernate/suspend-to-disk commit kvm: allows KVM CPU hotplug commit device tree source amlogic: Add P200/P201 boards commit, add Hardkernel ODROID-C2 commit Add dts files for LG Electronics's lg1312 SoC commit Add initial dts for Hisilicon Hip06 D03 board commit Add LS1043a-QDS board support commit marvell: initial DT description of Armada 7K/8K CP110 master commit rockchip: Add rk3368 GeekBox dts commit, add core dtsi file for RK3399 SoCs commit, add dts file for RK3399 evaluation board commit tegra: Add support for Google Pixel C commit

x86 Addition of support of the SGI/UV4 platform (merge) RAS: Add SMCA support to AMD Error Injector commit Add explicit KASAN checks to user memory access API to ensure that userspace writes to (or reads from) a valid kernel memory commit stm class: Support devices that override software assigned masters commit perf Add Intel Goldmont CPU support commit Add LBR filter support for Intel Silvermont and Airmont CPUs commit rapl: Add missing Intel Broadwell model commit rapl: Support Intel Skylake RAPL domains commit Make the Intel RAPL PMU driver modular commit, make the Intel uncore PMU driver modular commit, modularize driver commit msr: Add AMD IRPERF (Instructions Retired) performance counter commit vdso: Remove direct HPET access through the vDSO commit intel_th: pci: Add Intel Broxton-M SOC support commit KVM svm: Add interrupt injection via AVIC commit KVM: Detect and Initialize AVIC support commit chrome Add Chrome OS keyboard backlight LEDs support commit chromeos_laptop - Add Elan touchpad for Wolf commit, add elan trackpad option for C720 commit, add Leon Touch commit Add the Power Management Controller driver for Intel Core SoC architecture. This driver can utilize debugging capabilities and supported features as exposed by the Power Management Controller commit fujitsu-laptop: Support radio LED commit

MIPS Add support for relocatable kernel so it can be loaded someplace besides the default 1MB. The relocations make the kernel binary about 15% larger, but are discarded at runtime commit, commit, commit, commit, commit, commit, commit,commit Add KASLR support using relocatable support commit,commit Add perf counter feature commit Add support for extending builtin cmdline commit seccomp: Support compat with both O32 and N32 commit ath79: Add support for DTB passed using the UHI boot protocol commit, remove the builtin DTB support commit, add zboot debug serial support commit, add initial support for DPT-Module commit, Dragino MS14 (Dragino 2) commit and Onion Omega commit BMIPS: Add BCM6358 support commit, commit, add Whirlwind (BMIPS5200) initialization code commit, add support for BCM63268 commit Lantiq: Add support for device tree file from boot loader commit Add basic Loongson 3A support commit, commit Add support for CN73xx, CN75xx and CN78xx commit Octeon: Add DTS for D-Link DSR-1000N commit Detect DSP v3 support commit Detect MIPSr6 Virtual Processor support commit Enable ptrace hw watchpoints on MIPS R6 commit Probe the M6250 CPU commit, and the P6600 core commit Support sending SIG_SYS to 32bit userspace from 64bit kernel commit qca: introduce AR9331 devicetree commit ralink: add MT7628 EPHY LEDs pinmux support commit smp-cps: Add nothreads kernel parameter commit smp-cps: Support MIPSr6 Virtual Processors commit MIPS64: Support a maximum at least 48 bits of application virtual memory commit

POWERPC Add live patching support for ppc64le commit, commit, commit Support for Power ISA 3.0 (Power9) Radix Tree MMU commit (and others) perf: Add support for sampling interrupt register state commit perf: Add support for unwinding perf-stackdump commit, commit Add support for userspace Power9 copy paste, an optimised mechanism for a userspace application to copy a cacheline commit

PA-RISC Add native high-resolution timing code for sched_clock() and other timing functions based on the processor internal cr16 cycle counters commit Add syscall tracepoint support commit Add ARCH_TRACEHOOK and regset support commit

ARC Add eznps platform commit, commit, commit Make vmalloc size configurable commit Introduce HS38 specific include DTS ... commit

S390 dasd: Add new ioctl BIODASDCHECKFMT to check a range of tracks on a DASD volume for correct formatting commit dasd: add query host access to volume support commit

POWERPC Introduce KVM_MAX_VCPU_ID to separate the vCPU numbering from the total number of vCPUs commit



11. Drivers

11.1. Graphics

11.2. Storage

NVMe: Allow user initiated rescan commit

SCSI Disable automatic target scan commit tcm_qla2xxx Add SCSI command jammer/discard capability commit hpsa: add sas_address to sysfs device attibute commit ibft: Expose iBFT ACPI header via sysfs commit lpfc: Add support for SmartSAN 2.0 commit ncr5380: Remove disused atari_NCR5380.c core driver commit cxgbit: Add Chelsio iSCSI target offload driver commit hisi_sas: add v2 hw support for >4 SATA phys commit snic: Added additional stats commit scsi_debug: add multiple queue support commit

libata: Support Zone ATA Command support for Shingled Magnetic Recording devices (merge) Implement NCQ autosense commit

skd: remove broken discard support commit

11.3. Staging

iio: adis16204: Remove adis16204 driver commit

iio: adis16220: Remove adis16220 driver commit

android: remove timed output/gpio driver commit

11.4. Networking

Bluetooth: Add support for Intel Bluetooth device 8265 (8087:0a2b) commit

Bluetooth: hci_bcm: Add BCM2E71 ACPI ID commit

Infiniband Move hfi1 driver (for Intel Omni-Path HFI Silicon 100 Series) out of staging commit mlx5: Add Scatter FCS support for Raw Packet QP commit

NFC: pn533: add I2C phy driver commit

Re-enable 8192eu support commit

ath10k: implement push-pull tx commit, commit, commit, enable set_tsf vdev command to WMI 10.4 commit, commit, introduce Extended Resource Config support for 10.4 commit, remove MSI range support commit, enable debugfs provision to enable Peer Stats feature commit

ath9k: Add a module parameter to invert LED polarity commit

bnx2fc: Add driver tunables. commit

bnxt_en: Add BCM57314 device ID. commit, add basic EEE support commit, commit, commit

brcmfmac: Add 4356 sdio support commit, add support for nl80211 BSS_SELECT feature commit

cxgb4vf: Add support to enable logging of firmware mailbox commands for VF commit

cxgb4: Add device id of T540-BT adapter commit

emac: add Atheros AR8035 phy initialization code commit

dsa: Add mdio device support to Marvell switches commit

gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U) commit

i40e/i40evf: Add support for GSO partial with UDP_TUNNEL_CSUM and GRE_CSUM commit, add support for IPIP and SIT offloads commit, allow up to 12K bytes of data per Tx descriptor instead of 8K commit

i40e: Add DeviceID for X722 QSFP+ commit, add VF promiscuous mode driver support commit, add allmulticast support for the VF commit, add device IDs for X722 commit, add promiscuous on VLAN support commit, commit, add support for configuring VF RSS commit, add vf-true-promisc-support priv flag commit, enable Geneve offload for FW API ver > 1.4 for XL710/X710 devices commit, support trusted VF commit

i40evf: Add driver support for promiscuous mode commit, allow PF driver to configure RSS commit

ibmvnic: enable RX checksum offload commit

igb/igbvf: Add support for GSO partial commit

ifb: support more features commit

intel: Add support for IPv6 IP-in-IP offload commit

iwlwifi: turn on SGI support for VHT 160 MHz commit, add a debugfs hook for LQM commit, mvm: add LQM vendor command and notification commit, mvm: add support for new TX CMD API commit, mvm: allow a debug knob for Tx A-MSDU even if rate control forbids it commit, mvm: enable TCP/UDP checksum support for 9000 family commit, mvm: implement driver RX queues sync command commit, mvm: support dumping UMAC internal txfifos commit, mvm: support p2p device frames tx on dqa queue #2 commit

ixgbe/ixgbevf: Add support for GSO partial commit

ixgbe: Add support for x550em_a-based KR backplane devices commit, add support for SGMII backplane interface commit, add support for generic Tx checksums commit, add support for redirect action to cls_u32 offloads commit, add support for single-port X550 device commit, add support for toggling VLAN filtering flag via ethtool commit, add support for x550em_a 10G MAC type commit, extend cls_u32 offload to support UDP headers commit, add WoL support for some 82599 subdevice IDs commit

ixgbevf: Add support for generic Tx checksums commit, add the device ID's presented while running on Hyper-V commit, support Windows hosts (Hyper-V) commit, add support for per-queue ethtool stats commit

mlxsw: add support for config and control of shared buffers commit, commit, commit, commit, spectrum: Add IEEE 802.1Qaz ETS support commit, spectrum: Add IEEE 802.1Qbb PFC support commit, spectrum: Add support for PAUSE frames commit, spectrum: Add support for physical port names commit, spectrum: Allow setting maximum rate for a TC commit

mrf24j40: apply the security-enabled bit on secured outbound frames commit

mwifiex: add pcie usb/uart firmware download support commit

hsr: Added support for HSR v1 commit

mlx4_en: Add support for UDP tunnel segmentation with outer checksum offload commit, add support for inner IPv6 checksum offloads and TSO commit

mlx5: E-Switch, Add promiscuous and allmulti FDB flowtable groups commit, E-Switch, Implement promiscuous rx modes vf request handling commit, E-Switch, Implement trust vf ndo commit, E-Switch, Introduce VST vport ingress/egress ACLs commit

mlx5: Flow steering, Add vport ACL support commit, introduce device queue counters commit

mlx5e: Add accelerated RFS support commit, add ethtool counter for RX buffer allocation failures commit, add ethtool support for dump module EEPROM commit, add ethtool support for rxvlan-offload (vlan stripping) commit, add fragmented memory support for RX multi packet WQE commit, add per priority group to PPort counters commit, add support for RXALL netdev feature commit, add support for UDP tunnel segmentation with outer checksum offload commit, CQE compression commit, create aRFS flow tables commit, enable CQE compression when PCI is slower than link commit, enabling aRFS mechanism commit, expand WQE stride when CQE compression is enabled commit, Hardware offloaded flower filter statistics support commit, support RX multi-packet WQE (Striding RQ) commit

Add Qualcomm IPC router commit

bcmgenet: add BQL support commit

dsa: Provide CPU port statistics to master netdev commit, mv88e6131: enable hardware bridging commit, mv88e6xxx: add STU capability commit

hns: add a new dsaf mode for debug port commit, add attribute cpld_ctrl for dsaf port node commit, add attribute port-idx-in-ae in enet node. commit, add attribute port-mode-offset for dsaf port node commit, add attribute port-rst-offset for dsaf port node commit, add attribute reset-field-offset for dsaf node commit, add support of pause frame ctrl for HNS V2 commit, add syscon operation for dsaf commit, separate debug dsaf device from service dsaf device commit

w5100: support SPI interface mode commit, support W5500 commit

nfp: allow ring size reconfiguration at runtime commit

qed/qede: Add SR-IOV support, adding a new PCI device ID for a VF that is shared between all the various PFs that support IOV (merge); add tunneling support for VXLAN, GRE and GENEVE tunnels to be used over this driver. With this support, adapter can perform TSO offload, inner/outer checksums offloads on TX and RX for encapsulated packets (merge); bandwidth configuration support for the PF on the link change notification or on explicit request of bandwidth update from the management firmware (merge); allow various RSS-related configuration via ethtool (merge)

ravb: Add dma queue interrupt support commit

rtlwifi: btcoexist: Implement antenna selection commit

r8152: Add support for setting pass through MAC address on RTL8153-AD commit

stmmac: add GMAC4 support commit, commit, commit

wil6210: Add PBSS (Personal Basic Service Set) support commit, add support for discovery mode during scan commit, add P2P support commit, commit, add support for device led configuration commit, add support for platform specific notification events commit

wcn36xx: Implement multicast filtering commit

11.5. Audio

dice: add support for M-Audio Profire 610 and perhaps 2626 commit

hda: Add PCI ID for Intel Kabylake commit, commit

hda/realtek - Add support for ALC295/ALC3254 commit, add support for new codecs ALC700/ALC701/ALC703 commit,new codecs support for ALC234/ALC274/ALC294 commit

hda: add AMD Stoney PCI ID with proper driver caps commit

ASoC Add max98371 codec driver commit Intel: Add Broxton-P machine driver commit, add Broxton DSP support commit, skylake: Add multichannel support for HDMI commit add support for TAS5720 digital amplifier commit bcm2835: Add S16_LE support via packed DMA transfers commit, add 24bit support commit cs47l24: Add support for audio trace firmware commit da7219: Add initial ACPI id for device commit dmaengine_pcm: Add support for packed transfers commit hdac_hdmi: Add multichannel support commit, add link management commit mediatek: Add HDMI dai-links in the mt8173-rt5650-rt5676 machine driver commit, add second I2S on mt8173-rt5650 machine driver commit, HDMI audio LR channel swapped commit pcm5102a: Add support for PCM5102A codec commit tas571x: added support for TAS5721 commit, implemented digital mute commit tlv320aic32x4: Add 96k sample rate commit, add SPI support commit wm_adsp: Add support for TLV based binary controls commit



11.6. Input devices: Tablets, touch screens, keyboards, mouses

HID: Asus X205TA keyboard driver commit

HID: asus: add support for VivoBook E200HA commit

xpad: Xbox One Elite controller support commit, add more third-party controllers commit

11.7. TV tuners, webcams, video capturers

TW686x frame grabber driver commit

adv7180: Add cropcap operation commit, add g_std operation commit, add g_tvnorms operation commit

az6027: Add support for Elgato EyeTV Sat v3 commit

dib0700: add USB ID for another STK8096-PVR ref design based card commit

em28xx: add support for Hauppauge WinTV-dualHD DVB tuner commit, add missing USB IDs commit

i2c: saa7115: Support CJC7113 detection commit

mceusb: add support for Adaptec eHome receiver commit, add support for SMK eHome receiver commit

media: Support Intersil/Techwell TW686x-based video capture cards commit

smipcie: add support for TechnoTrend S2-4200 Twin commit

v4l: vsp1: Add Z-order support for DRM pipeline commit, add global alpha support for DRM pipeline commit, add support for the RPF alpha multiplier on Gen3 commit

11.8. USB

(FEATURED) Support for creating virtual USB Device Controllers in USB/IP commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Add driver for UCSI commit

xhci: Add NVIDIA Tegra XUSB controller driver commit, commit

ohci-jz4740: Remove obsolete driver commit

serial: option: add ZTE device ids commit, https://git.kernel.org/torvalds/c/f0d09463c59c2d764a6c6d492cbe6d2c77f27153 commit]

serial: option: add support for Cinterion PH8 and AHxx commit

serial: ti_usb_3410_5052: add MOXA UPORT 11x0 support commit

11.9. Serial Peripheral Interface (SPI)

pic32-sqi: add SPI driver for PIC32 SQI controller. commit

spi-pic32: Add PIC32 SPI master driver commit

11.10. Watchdog

f71808e_wdt: Add F81865 support commit

pic32-dmt: Add PIC32 deadman timer driver commit

pic32-wdt: Add PIC32 watchdog driver commit

renesas-wdt: add driver commit

11.11. Serial

tty: serial: meson: Implement earlycon support commit

tty: serial: msm: Support more bauds commit

mps2-uart: add MPS2 UART driver commit, add support for early console commit

mxs-auart: add Alphascale ASM9260 support commit

pic32_uart: Add PIC32 UART driver commit

11.12. ACPI, EFI, cpufreq, thermal, Power Management

ACPI Add full ACPI 6.1 support along with some previously missing bits of ACPI 6.0 support commit, commit Implement Generic Event Device in ACPI 6.1, which allows platforms to handle platform interrupts in ACPI ASL statements commit Allows users to easily find the hardware version reported by ACPI _HRV object by looking at the sysfs hrv commit Convert initrd table override to table upgrade mechanism commit

nfit: add sysfs dimm 'family' and 'dsm_mask' attributes commit and export subsystem ids as attributes commit; disable vendor-specific commands commit

EFI (FEATURED) Add 'capsule' update support. The EFI capsule mechanism allows data blobs to be passed to the EFI firmware. A common use case is performing firmware updates. Users can upload capsule by writting the firmware to the /dev/efi_capsule_loader device commit, commit Add EFI Bootloader Control module. If reboot is invoked with a string argument NNN, "NNN" is copied to the "LoaderEntryOneShot" EFI variable, to be read by the bootloader. If the string matches one of the boot labels defined in its configuration, the bootloader will boot once to that label. The "LoaderEntryRebootReason" EFI variable is set with the reboot reason: "reboot" or "shutdown". The bootloader reads this reboot reason and takes particular action according to its policy commit Implement generic support for the Memory Attributes table commit

Thermal Add ACPI INT340X thermal driver. Newer laptops and tablets that use ACPI may have thermal sensors and other devices with thermal control capabilities outside the core CPU/SOC, for thermal safety reasons. They are exposed for the OS to use via the INT3400 ACPI device object as the master, and INT3401~INT340B ACPI device objects as the slaves. This driver exposes the temperature information and cooling ability from these objects to userspace via the normal thermal framework. This means that a wide range of applications and GUI widgets can show the information to the user or use this information for making decisions. For example, the Intel Thermal Daemon can use this information to allow the user to select his laptop to run without turning on the fans commit Add temperature sensor support for tango SoC commit generic-adc: Add ADC-based thermal sensor driver commit rockchip: Support RK3366 SoCs in the thermal driver commit tegra: add PM support commit tegra: add Tegra132 specific SOC_THERM driver commit tegra: add Tegra210 specific SOC_THERM driver commit tegra: add a debugfs to show registers commit

cpufreq (FEATURED) schedutil: New governor based on scheduler utilization data commit acpi-cpufreq: Support for fast frequency switching to provide a method for switching CPU frequencies from interrupt context and update the cpufreq core to support that method if available commit intel_pstate: For platforms which are controlled via remove node manager, enable ACPI _PPC performance limits by default. These platforms are mostly categorized as enterprise server or performance servers commit

devfreq Add new passive governor. It sets the frequency based on the frequency of its parent devfreq device. This governor does not change the frequency by itself through sysfs entries. The passive governor recommends that devfreq device uses the OPP table to get the frequency/voltage commit event: Add new EXYNOS NoC (Network On Chip) Probe DEVFREQ event Driver. It provides NoC (Network on Chip) Probe counters to measure the bandwidth of AXI bus commit exynos: Add generic exynos bus frequency driver commit exynos: Add support of bus frequency of sub-blocks using passive governor commit exynos: Remove unused exynos4/5 busfreq driver commit

intel_idle: add Broxton support commit

powercap: adds a new platform domain (AKA PSys) to the current power capping Intel RAPL driver commit

11.13. Real Time Clock (RTC)

m41t80: add alarm functionality commit, add wakealarm functionality commit

rv3029: Add support of RV3049 commit

11.14. Voltage, current regulators, power capping, power supply

regulator fan53555: Add support for FAN53555BUC18X type commit, add support for FAN53555UC13X type commit lp873x: Add support for lp873x PMIC regulators commit max77620: Add support for device specific ramp rate setting commit max8973: add support for junction thermal warning commit pv88080: new regulator driver commit qcom_spmi: Add support for pm8994 commit



11.15. Pin Controllers (pinctrl)

amd: Add device HID for future AMD GPIO controller commit

amlogic: Add support for Amlogic Meson GXBB SoC commit

Add support for pin control (pin muxing and pin configuration) for Baytrail platform commit, commit, commit, commit, commit, commit

ns2: add pinmux driver support for Broadcom NS2 SoC commit

sh-pfc: Add drive strength support commit,

sh-pfc: r8a7790: Implement voltage switching for SDHI commit

sh-pfc: r8a7795: Add drive strength support commit

11.16. Memory Technology Devices (MTD)

ifc: Add support for IFC controller version 2.0 commit

brcmnand: Add support for v6.2 controllers commit

m25p80: add support for mmap read request commit

nand: enable ECC pipelining commit

spi-nor: support GigaDevice gd25lq64c commit

11.17. Multi Media Card (mmc)

sh_mobile_sdhi: Add UHS-I mode support commit

tmio, sh_mobile_sdhi: Add support for variable input clock frequency commit

tmio: Add UHS-I mode support commit

usdhi6rol0: add support for UHS modes commit

11.18. Industrial I/O (iio)

core: mounting matrix support commit

tools: generic_buffer: auto-enable channels commit

Add max44000 driver for Maxim Integrated's MAX44000 ambient and infrared proximity sensor device commit, commit, commit, commit

Add Vishay VEML6070 UV A light sensor driver commit

Add channel for UV index commit

accel: Add support for the h3lis331dl accelerometer commit

adc: add NXP LPC18xx ADC driver commit

adc: rockchip_saradc: add saradc support for rk3399 commit

dac: Add support for the AD5592R/AD5593R ADCs/DACs commit

dac: add NXP LPC18xx DAC driver commit

humidity: Add support for AM2315 commit, add triggered buffer support for AM2315 commit

imu: Add initial support for Bosch BMI160 commit

inv_mpu6050: Add explicit support for MPU9150 commit

light: new driver for the ROHM BH1780 commit

magn: bmc150: Introduce SPI support commit

mma8452: add support for FXLS8471Q commit, add support for runtime power management commit

potentiometer: add driver for Maxim Integrated DS1803 commit, add driver for Microchip MCP413X/414X/415X/416X/423X/424X/425X/426X commit

pressure: bmp280: add ability to control oversampling rate commit, add support for BMP180 commit

pressure: hp03: Add Hope RF HP03 sensor support commit

st_gyro: Add lsm9ds0-gyro support commit

adis: Add support for manual self-test flag clear commit

ak8975: add mounting matrix support commit

imu: mpu6050: enhance mounting matrix support commit

magnetometer:ak8975: power regulator support commit, triggered buffer support commit

pressure:ms5611: oversampling rate support commit

hp206c: Initial support for reading sensor values commit

ti-adc081c: Add support for adc101c and adc121c commit

ti-adc081c: Initial triggered buffer support commit

11.19. Multi Function Devices (MFD)

hi655x: Add MFD driver for hi655x commit

max77620: Add core driver for MAX77620/MAX20024 commit

11.20. Inter-Integrated Circuit (I2C)

i801: Add runtime PM support with autosuspend commit

octeon: Add support for cn78xx chips commit, enable High-Level Controller commit

rcar: add DMA support commit

tegra: enable multi-master mode for tegra210 commit

11.21. Hardware monitoring (hwmon)

it87: Add support for IT8628E commit, add support for VIN7 to VIN10 on IT8620E commit, add support for all PWM channels on IT8620E commit, add support for second Super-IO chip commit, support automatic PWM control on newer chips commit, support disabling fan control for all pwm control and chips commit, support up to 6 temperature sensors on IT8620E commit

max31722: Add support for MAX31722/MAX31723 temperature sensors commit

11.22. General Purpose I/O (gpio)

Loongson1: add Loongson1 GPIO driver commit

amdpt: Add a new ACPI HID commit

dwapb: Add ACPI device ID for DWAPB GPIO controller on X-Gene platforms commit

gpio-it87: Add support for IT8620 and IT8628 commit

pca953x: add PCAL9535 interrupt support for Galileo Gen2 commit

tegra: Add support for gpio debounce commit

xgene: Enable ACPI support for X-Gene GFC GPIO driver commit

xlp: Add GPIO driver support for Broadcom Vulcan ARM64 commit

11.23. Clocks

microchip: Add Microchip PIC32 clock driver. commit

axs10x: Add I2S PLL clock driver commit

Add Oxford Semiconductor OXNAS Standard Clocks commit

Add artpec-6 clock controller commit

hisilicon: add CRG driver for hi3519 soc commit

mvebu: new driver for Armada AP806 system controller commit, new driver for Armada CP110 system controller commit

renesas: r8a7795: Add CSI2 clocks commit,add VIN clocks commit

rockchip: Add support for multiple clock providers commit, add clock controller for the RK3399 commit, add new pll-type for rk3399 and similar socs commit

sunxi: Add PLL3 clock commit, add TCON channel1 clock commit, add display and TCON0 clocks driver commit, add sun6i/8i display support commit

tegra: Add interface to enable hardware control of SATA/XUSB PLLs commit

driversi/mps2: add MPS2 Timer driver commit

Add NPS400 timers driver commit

11.24. System On Chip specific Drivers

brcmstb: add SoC driver to brcmstb commit

mediatek: PMIC wrap: add MT2701/7623 support commit

qcom: smd: Support multiple channels per sdev commit

qcom: smd: Support opening additional channels commit

renesas: rcar-sysc: Add support for R-Car E2 power areas commit, add support for R-Car H1 power areas commit, add support for R-Car H2 power areas commit, add support for R-Car H3 power areas commit, add support for R-Car M2-N power areas commit, add support for R-Car M2-W power areas commit, enable Clock Domain for I/O devices commit

rockchip: power-domain: add support for sub-power domains commit

11.25. PCI

Add driver for the PCI Express Downstream Port Containment extended capability. DPC is an optional capability to contain uncorrectable errors below a port commit

Add Intel Thunderbolt device IDs commit

armada: Add driver for Marvell Armada 7K/8K PCIe controller commit

imx6: Add initial imx6sx support commit

tegra: Support per-lane PHYs commit

11.26. DMA Engine

mpc512x: Implement additional chunk sizes for DMA transfers commit

mv_xor: add support for Armada 3700 SoC commit

qcom_hidma: add debugfs hooks commit

qcom_hidma: add support for object hierarchy commit

tegra-adma: Add support for Tegra210 ADMA commit

vdma: Add 64 bit addressing support to the driver commit

vdma: Add Support for Xilinx AXI Central Direct Memory Access Engine commit

vdma: Add Support for Xilinx AXI Direct Memory Access Engine commit

vdma: Add clock support commit

11.27. Various

mcb: export bus information via sysfs commit

memory: Add support for Samsung Exynos SROM driver commit

memory: omap-gpmc: Introduce GPMC to NAND interface commit

memory: omap-gpmc: Support WAIT pin edge interrupts commit

memory: omap-gpmc: Support general purpose input for WAITPINs commit

memory: samsung: exynos-srom: Add support for bank configuration commit

EDAC, altera: Add Arria10 L2 Cache ECC handling commit

EDAC, altera: Add Arria10 OCRAM ECC support commit

EDAC, ie31200_edac: Add Skylake support commit

HSI: omap-ssi: add clk change support commit

cxl: Allow initialization on timebase sync failures commit

can: sja1000: plx_pci: Add support for Marathon CAN-bus-PCIe card commit

mxc-scc: add basic crypto driver for the MXC SCC commit

iommu/arm-smmu: Support SMMUv1 64KB supplement commit

iommu/mediatek: Add 4GB mode support commit

irda: sh_irda: remove driver commit

hwrng: hisi - Add support for Hisilicon SoC RNG commit

irqchip/gic-v3: Add support for partitioned PPIs commit

irqchip: Add LPC32xx interrupt controller driver commit

irqchip: Add Layerscape SCFG MSI controller support commit

irqchip: Add per-cpu interrupt partitioning library commit

irqchip: add nps Internal and external irqchips commit

leds: trigger: Introduce a kernel panic LED trigger commit

mailbox/omap: add support for suspend/resume commit

phy: Add Nvidia Tegra XUSB pad controller support commit

phy: Add support for NS2 SATA3 PHY in Broadcom SATA3 PHY driver commit

phy: bcm-ns-usb2: new driver for USB 2.0 PHY on Northstar commit

phy: exynos-mipi-video: Add support for Exynos 5420 and 5433 SoCs commit

phy: phy-mt65xx-usb3: add support for mt2701 platform commit

phy: rcar-gen3-usb2: add extcon support commit

phy: tegra: Add Tegra210 support commit

reset: Add Oxford Semiconductor Reset Controller driver commit

reset: hisilicon: add reset controller driver for hisilicon SOCs commit

thunderbolt: Support 1st gen Light Ridge controller commit

w1: add ability to set (SRAM) and store (EEPROM) configuration for temp sensors like DS18B20 commit

w1: enable active pullup for DS2482 by default commit

12. List of merges

13. Other news sites