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.
Contents
-
Prominent features
- Support for Radeon RX480 GPUs
- Parallel directory lookups
- New 'schedutil" frequency governor
- Histograms of events in ftrace
- perf trace calls stack
- Allow BPF programs to attach to tracepoints
- EFI 'Capsule' firmware updates
- Support for creating virtual USB Device Controllers in USB/IP
- Android's sync_file fencing mechanism considered stable
- LoadPin, a security module to restrict the origin of kernel modules
- Core (various)
- File systems
- Memory management
- Block layer
- Security
- Tracing, perf, BPF
- Virtualization
- Networking
- Architectures
-
Drivers
- Graphics
- Storage
- Staging
- Networking
- Audio
- Input devices: Tablets, touch screens, keyboards, mouses
- TV tuners, webcams, video capturers
- USB
- Serial Peripheral Interface (SPI)
- Watchdog
- Serial
- ACPI, EFI, cpufreq, thermal, Power Management
- Real Time Clock (RTC)
- Voltage, current regulators, power capping, power supply
- Pin Controllers (pinctrl)
- Memory Technology Devices (MTD)
- Multi Media Card (mmc)
- Industrial I/O (iio)
- Multi Function Devices (MFD)
- Inter-Integrated Circuit (I2C)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- Clocks
- System On Chip specific Drivers
- PCI
- DMA Engine
- Various
- List of merges
- Other news sites
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
1.7. EFI 'Capsule' firmware updates
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
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
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
- 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
- Ceph
- ext4
Allow readdir()'s of large empty directories to be interrupted commit
- F2FS
- NFS
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
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
- SCTP
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
- TCP
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
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
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
- device tree sources
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
- 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 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 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 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
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
- ARC
- S390
- POWERPC
Introduce KVM_MAX_VCPU_ID to separate the vCPU numbering from the total number of vCPUs commit
11. Drivers
11.1. Graphics
Add Analogix ANX78XX bridge. ANX78XX is an ultra-low Full-HD SlimPort transmitter designed for portable devices. The ANX78XX transforms the HDMI output of an application processor to MyDP or DisplayPort commit
Add Allwinner A10 Display Engine support commit
Add Hisilicon kirin display driver (merge)
ARC PGU - bitstreamer on Synopsys ARC SDP boards commit
- amdgpu
(FEATURED) support for Polaris GPUs in the amdgpu driver, the new generation Radeon RX 480 GPUs. Support is on par with the rest of devices of the amdgpu driver (merge)
- GPUVM/Scheduler/Clock/Power improvements (see previous merge link)
Async pageflip (DRM_MODE_PAGE_FLIP_ASYNC) support commit
- New Mesa feature support
- i915
broxton: Enable runtime PM commit
Add DSI support for broxton commit
Add GEM debugging Kconfig option commit
Add fault injection support commit
Add module param "enable_dp_mst", enabled by default. Disabling the parameter forces newly connected DisplayPort sinks to report as not supporting multi-stream transport (MST), thus "forcing" the use of single-stream transport (SST) commit
Add more Kabylake PCIIDs more
- Nouveau (nvidia)
- radeon
- vc4
- vmwgfx
Add VMWare host messaging capability commit
- exynos
- msm
- atmel-hlcdc
- rockchip
Add Rockchip specific extensions for Analogix DP driver commit
- panel
Add support for Innolux AT070TN92 commit
- fsl-dcu
(FEATURED) Android's sync_file fencing mechanism considered stable commit, commit, commit, commit
Allow signals to interrupt drm_aux-dev reads/writes commit
Forbid legacy MAP functions for DRIVER_MODESET commit
fbdev: sh_mipi_dsi: remove driver commit
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:
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
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
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/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
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)
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