JrEvans

De ArchwikiFR
  1. pragma section-numbers on
  2. pragma keywords Linux, kernel, operating system, changes, changelog, file system, Linus Torvalds, open source, device drivers
  3. pragma description Summary of the changes and new features merged in the Linux kernel during the 4.14 development cycle

Linux 4.14 has been released on 12 Nov 2017.

Summary: This release includes support for bigger memory limits in x86 hardware (128PiB of virtual address space, 4PiB of physical address space); support for AMD Secure Memory Encryption; a new unwinder that provides better kernel traces and a smaller kernel size; support for the zstd compression algorithm has been added to Btrfs and Squashfs; support for zero-copy of data from user memory to sockets; support for Heterogeneous Memory Management that will be needed in future GPUs; better cpufreq behaviour in some corner cases; Longer-lived TLB entries by using the PCID CPU feature; asynchronous non-blocking buffered reads; and many new drivers and other improvements.

TableOfContents()

Prominent features

Bigger memory limits

Original x86-64 was limited by 4-level paging to 256 TiB of virtual address space and 64 TiB of physical address space. People are already bumping into this limit: some vendors offers servers with 64 TiB of memory today. To overcome the limitation upcoming hardware will introduce support for 5-level paging. It is a straight-forward extension of the current page table structures adding one more layer of translation. It bumps the limits to 128 PiB of virtual address space and 4 PiB of physical address space. This "ought to be enough for anybody" ©.

On x86, 5-level paging enables 56-bit userspace virtual address space. Not all user space is ready to handle wide addresses. It's known that at least some JIT compilers use higher bits in pointers. It collides with valid pointers with 5-level paging and leads to crashes. To mitigate this, the Linux kernel will not allocate virtual address space above 47-bit by default. Userspace can ask for allocation from full address space by specifying hint address above 47-bits.

Recommended LWN article: Five-level page tables

Code: commit, commit, commit, commit, merge

Add support for AMD Secure Memory Encryption

Secure Memory Encryption can be used to mark individual pages of memory as encrypted through the page tables. A page of memory that is marked encrypted will be automatically decrypted when read from DRAM and will be automatically encrypted when written to DRAM. Secure Memory Encryption can therefore be used to protect the contents of DRAM from physical attacks on the system.

Recommended LWN article: Two approaches to x86 memory encryption

AMD Memory encryption whitepaper: link

Code: 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, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Better kernel traces with the ORC unwinder

This release includes a new "unwinder". An "unwinder" is what prints the list of functions (aka. stack trace, callgraph, call stack...) that have been executed before reaching a determinate point of the code, and it's used, for example, the list of functions that lead to a crash when a kernel oopses. The new unwinder is called ORC, an alias for "Oops Rewind Capability", and has been developed as an simpler alternative to the DWARF debuginfo format.

Linux already has an unwinder, and while it usually works well, it isn't reliable in all situations, which causes troubles for modern functionality like live patching that requires completely reliable stack traces. It also requires a functionality called "frame pointers" (CONFIG_FRAME_POINTERS) to print complete call stacks. Frame pointers make GCC add instrumentation code to every function in the kernel, which increases the size of the kernel executable code by about 3.2%, resulting in a broad kernel-wide slowdown, and more for some workloads. This option is enabled by default in some Linux distros.

In contrast, the ORC unwinder does not need to insert code anywhere so it has no effect on text size or runtime performance, because the debuginfo (about 2-4MiB) is placed out of band. So the ORC unwinder provides a nice performance improvement across the board compared with frame pointers, while at the same time having reliable stack traces.

Recommended LWN article: The ORCs are coming

Recommended article: The Linux x86 ORC Stack Unwinder

Code: commit, commit

zstd compression in Btrfs and Squashfs

zstd offers a wide variety of compression speed and quality trade-offs. It can compress at speeds approaching lz4, and quality approaching lzma. zstd decompressions at speeds more than twice as fast as zlib, and decompression speed remains roughly the same across all compression levels. Because it is a big win in speed over zlib and in compression ratio over lzo, FB has been using it in production with great results. Support has also been added for squashfs. For benchmark numbers see the links.

Code: commit, commit, commit, commit


Zero-copy from user memory to sockets

Copying large buffers between user process and kernel can be expensive. Linux supports various interfaces that eschew copying, such as sendpage(2) and splice(2). The {{{MSG_ZEROCOPY}}} socket flag extends the underlying copy avoidance mechanism to common socket send calls. Copy avoidance is not a free lunch. As implemented, with page pinning, it replaces per byte copy cost with page accounting and completion notification overhead. As a result, {{{MSG_ZEROCOPY}}} is generally only effective at writes over around 10 KB.

Recommended LWN article: Zero-copy networking

Documentation: MSG_ZEROCOPY

Netdev talk: sendmsg copy avoidance with MSG_ZEROCOPY


Heterogeneous Memory Management for future GPUs

Today device driver expose dedicated memory allocation API through their device file, often relying on a combination of IOCTL and mmap calls. The device can only access and use memory allocated through this API. This effectively split the program address space into object allocated for the device and useable by the device and other regular memory (malloc, mmap of a file, share memory, ...) only accessible by CPU (or in a very limited way by a device by pinning memory). Allowing different isolated component of a program to use a device thus require duplication of the input data structure using device memory allocator. This is reasonable for simple data structure (array, grid, image, ...) but this get extremely complex with advance data structures. This is becoming a serious limitation on the kind of work load that can be offloaded to device like GPU.

New industry standard like C++, OpenCL or CUDA are pushing to remove this barrier. This require a shared address space between GPU device and CPU so that GPU can access any memory of a process (while still obeying memory protection like read only). This kind of feature is also appearing in various other operating systems. Heterogeneous Memory Management is a set of helpers to facilitate several aspects of address space sharing and device memory management.

Recommended LWN article: Heterogeneous memory management

Documentation: Documentation/vm/hmm.txt

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


Better cpufreq coordination with SMP

In Linux, notifications of task scheduler events are sent to the cpufreq subsystem, so that it can increase the frequency if needed, and achieve good interactivity. However, the cpufreq drivers are not called when the events are happening in different CPUs, for example, a new process being created in another CPU. This release makes task scheduler to update the cpufreq policies for remote CPUs as well. The schedutil, ondemand and conservative governors are updated to process cpufreq updates for remote CPUs (the intel_pstate driver is updated to always reject them).

Recommended LWN article: CPU frequency governors and remote callbacks

Code: commit, commit


Longer-lived TLB Entries with PCID

PCID is a hardware feature that has been available on Intel CPUs and that it attaches an address space tag to TLB entries and thus allows the hardware to skip TLB flushes when it context-switches. x86's PCID is far too short to uniquely identify a process, and it can't even really uniquely identify a running process because there are monster systems with over 4096 CPUs. To make matters worse, past attempts to use all 12 PCID bits have resulted in slowdowns instead of speedups.

This release uses PCID differently. It uses a PCID to identify a recently-used mm on a per-cpu basis. An mm has no fixed PCID binding at all; instead, it is given a fresh PCID each time it's loaded except in cases where the kernel wants to preserve the TLB, in which case it reuses a recent value.

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


Core (various)

* Asynchronous I/O: non-blocking buffered reads. Using a threadpool to emulate non-blocking operations on regular buffered files is a common pattern today (samba, libuv, etc...), but it leads to increased request latency due to additional synchronization between the threads or fast (cached data) request stuck behind slow requests. In this release, the preadv2(2) syscall with {{{RWF_NONBLOCK}}} lets userspace applications bypass enqueuing operation in the threadpool if it's already available in the pagecache commit, commit, commit, commit
* Control Groups (cgroup)
 * Implement cgroup v2 thread mode commit, commit, commit, commit, commit, commit
 * Adds a new cgroupfs mount option, {{{cpuset_v2_mode}}}, to enable cpuset controller to use v2 behavior in a v1 cgroup commit, commit
 * cgroup: introduce an ability to control the size of cgroup hierarchy. The {{{cgroup.max.descendants}}} file allows to set the maximum allowed number of descendant cgroups, the {{{cgroup.max.depth}}} file controls the maximum depth of the cgroup tree. A {{{cgroup.stat}}} file is added with some stats commit, commit, commit, commit
* cpufreq: schedutil: Make iowait boost more energy efficient by doubling the boost for every consecutive iowait update, instead of going directly to the maximum commit
* gcc plugins
 * structleak: add option to force initialize all struct type variables passed by reference commit
 * randstruct: Enable function pointer struct detection commit
* PM: docs: Describe high-level PM strategies and sleep states commit
* futex: Allow for compiling out PI support commit
* Remove gperf usage from toolchain commit
* IRQ
 * debugfs: Triggering of interrupts from userspace commit
 * irq_sim: Add a simple interrupt simulator framework commit
* ipc: optimize semget/shmget/msgget for lots of keys commit
* lockdep: Add 'cross-release' support, which allows APIs like completions or page locks, where it's not the 'owner' who releases the lock, to be tracked too commit, commit, commit,commit
* Add zstd compression and decompression (FEATURED) commit
* Add xxhash hash algorithms (needed by zstd) commit
* Extend the sys_membarrier(2) ABI with the {{{MEMBARRIER_CMD_PRIVATE_EXPEDITED}}} variant. It executes faster than the non-expedited variant (no blocking), and it also works on {{{NOHZ_FULL}}} configurations commit
* prctl: Allow local {{{CAP_SYS_ADMIN}}} changing exe_file, used by checkpointing software commit
* task scheduler
 * Call the cpufreq callbacks for remote CPUs as well as local (FEATURED) commit, commit
 * Hotplug state fail injection commit
 * Improve the interrupt and rescheduling latency in systems that have a very long wakeup list commit,  commit
 * Add debugfs knob for "sched_debug" commit
 * Show task state in {{{/proc/sched_debug}}} commit
* objtool: Add ORC unwind table generation (FEATURED) commit
* Greatly improve quota scalability (100% improvement for file creation and about 50% improvement for file unlink in some 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
* driver core: emit uevents when device is bound to a driver commit
* power management: Extend generic power domain debugfs commit
* firmware: delete in-kernel firmware commit


File systems

* BTRFS
 * Add zstd support (FEATURED) commit
 * Allow a degraded read-write mount if all the raid profile constraints are met commit, commit
 * Improve ssd allocation algorithms commit
 * Allow defrag compress to override NOCOMPRESS attribute commit
 * Convert prelimary reference tracking to use rbtrees (prep work for better extent reference tracking) commit
 * Deprecate userspace transaction ioctls commit
* EXT4
 * Scalability improvements when allocating inodes commit
 * Backward compatibility support for Lustre ea_inode implementation commit
* XFS
 * Disable per-inode DAX flag, as it can crash commit
* F2FS
 * Support {{{F2FS_IOC_FS{GET,SET}XATTR}}} commit
 * Support inode checksum commit
 * Introduce {{{discard_granularity}}} sysfs entry commit
 * Support project quota commit
 * Support journalled quota commit
 * Expose features to sysfs entry commit or via ioctl commit
 * Add app/fs io stat commit
 * Enhance on-disk inode structure scalability commit
 * Introduce {{{gc_urgent}}} mode for background GC commit
* CIFS
 * Enable xattr support on SMB2+ commit, commit
 * SMB3: Add support for multidialect negotiate (SMB2.1 and later) commit
* SQUASHFS
 * Add zstd support (FEATURED) commit
* AUTOFS4
 * Make dev ioctl version and ismountpoint user accessible commit
 * Make disc device user accessible commit


Memory management

* Heterogeneous Memory Management (FEATURED) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* Second step of Transparent Huge Page swap optimization. In the first step, the splitting huge page is delayed from almost the first step of swapping out to after allocating the swap space for the THP and adding the THP into the swap cache. In the second step, the splitting is delayed further to after the swapping out finished. Swap out throughput of THP improves 42% in some benchmarks commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* Virtual memory based swap readahead. The traditional approach is readahead based on the placement of pages in the swap device; this release does swap readahead based on the placement of swapped pages in virtual memory. This approach causes extra overhead in traditional HDDs, which is why it's only enabled for SSDs. A sysfs knob, {{{/sys/kernel/mm/swap/vma_ra_enabled}}}, has been added that allows to enable it manually; swap readahead statistics are also available commit, commit, commit, commit, commit
* percpu: replace percpu area map allocator with bitmap allocator. There now exist use cases that allocate a million or more objects, which made the previous implementation inadequate 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
* Memory hotplug: remove zone restrictions and allow explicit onlining type on any memblock, regardless of the physical adress commit, commit
* Separate NUMA statistics from zone statistics for improved scalability commit, commit, commit
* Transparent huge pages migration without breaking the huge page first commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* hugetlb: when clearing a huge page from the begin to the end, it is possible that the begin of the huge page is evicted from the CPU cache, and it is possible for the application to access the begin of the huge page after clearing the huge page. This release clears the huge page from the end to the beginning commit
* madvise(2): introduce {{{MADV_WIPEONFORK}}}, which result in a memory area being empty in the child process after fork. It differs from {{{MADV_DONTFORK}}} in that if a child process accesses memory that was {{{MADV_WIPEONFORK}}}, it will get zeroes, but the address ranges are still valid. It only works on private, anonymous VMAs. It is similar to the OpenBSD minherit syscall with {{{MAP_INHERIT_ZERO}}} commit, commit
* swap: choose swap device according to numa node to improve performance commit
* shmem: add hugetlbfs support to {{{memfd_create(2)}}}, adding a new flag, {{{MFD_HUGETLB}}}. It is useful for the Oracle garbage collection commit
* Add {{{/proc/pid/smaps_rollup}}}, a new proc file. Some systems (eg Android) regularly samples the memory usage in {{{/proc/pid/smaps}}} to determine aggregate memory statistics (e.g., total PSS) of a process. For very large processes, that can be too slow, as printing the information in {{{/proc/pid/smaps}}} can be too slow. The new file contains most of the fields of {{{/proc/pid/smaps}}}, but instead of a set of fields for each VMA, it contains one synthetic smaps-format entry representing the whole process. In the single smaps_rollup synthetic entry, each field is the summation of the corresponding field in all of the real-smaps VMAs. The same format is preserved so thatuserspace parsers can repurpose parsers with minimal fuss commit
* SLUB: add free list pointer obfuscation inspired from PaX. It adds nearly zero overhead and frustrates the very common heap overflow exploitation method of overwriting freelist pointers commit
* SLUB: add a naive detection of double free or corruption similar to "fasttop" check in GNU C Library allocator commit
* userfaultfd: enable zeropage support for shmem commit, commit, commit, commit, commit, commit, commit
* userfaultfd: allow to request for a signal to the faulting process, instead of the page-fault event. Dealing with page-fault event using a monitor thread can be an overhead in these cases commit
* userfaultfd: provide pid in userfault msg, it could be useful for calculating downtime during postcopy live migration per vCPU commit, commit
* zRam: support writing incompressible pages to disk commit, commit, commit, commit, commit, commit, commit, commit, commit


* z3fold: use per-cpu unbuddied lists for improved scalability commit


Block layer

* Add a DAX common 4k zero page commit, commit, commit, commit, commit
* blktrace: Support for cgroup info commit, commit
* bfq: boost throughput with flash-based non-queueing devices commit
* Device Mapper: dm integrity: count and display checksum failures commit
* md: Support for multiple partial parity logs commit, commit
* loop: add ioctl for changing logical block size commit
* drbd: new disk-option disable-write-same commit
* null_blk: add configfs interface commit, add interface to power on disk commit, badbblocks support commit, bandwidth control commit, emulate cache commit, support discard commit, support memory backed store commit
* skd: Convert to blk-mq commit, remove SG IO support commit

Tracing, perf and BPF

* perf 
 * Record the branch type and then show statistics and info about in callchain entries. A new option {{{save_type}}} is added in {{{--branch-filter}}} option for perf record. It is also possible now for {{{--branch-history}}} to work without callgraphs commit, commit, commit, commit, commit, commit, commit, commit
 * Add the new sample type for physical address to allow the tracing/profiling of physical memory addresses (with new option {{{--phys-data}}}), where the PMU supports it commit, commit, commit, commit, commit
 * Implement a visual marker for fused x86 instructions in the annotate TUI browser, available now in 'perf report' commit, commit
 * Export some PMU capability details in the new {{{/sys/bus/event_source/devices/cpu/caps/}}} sysfs directory commit
 * Add initial support for namespaces, using setns to access files in namespaces, grabbing their build-ids, etc commit, commit, commit, commit, commit
 * pipe mode: process tracing data in 'perf annotate' pipe mode commit
 * Add header record types to pipe-mode commit, commit
 * perf annotater: Support {{{--show-nr-samples}}} option commit, commit
 * perf annotate browser: Circulate percent, total-period and nr-samples view commit
 * perf buildid-cache: Cache debuginfo commit
 * perf report: Enable finding kernel inline functions commit
 * perf script: Add support for exporting to sqlite3 commit
 * perf trace: Support syscall name globbing commit, commit
 * perf tools: Add support for printing new mem_info encodings commit


* BPF
 * Add support for {{{sys_enter_*}}} and {{{sys_exit_*}}} tracepoints commit
 * Allow selecting numa node during map creation commit, commit
 * Add new jump instructions ({{{BPF_J{LT,LE,SLT,SLE}}}) to eBPF in order to reduce register pressure by avoiding {{{BPF_J{GT,GE,SGT,SGE}}}} rewrites and result in shorter BPF programs, less stack usage and less verification complexity commit, commit, commit, commit, commit, commit, commit, commit, commit
 * Add bpf device maps and XDP_REDIRECT, which can be used to build arbitrary switching frameworks using XDP commit, commit, commit, commit, commit, commit, commit, commit, commit
 * Implements a sockmap and socket redirect helper using a model similar to XDP netdev redirect. A sockmap is a BPF map

type that holds references to sock structs. Then with a new sk redirect bpf helper BPF programs can use the map to redirect skbs between sockets. To use this infrastructure a new BPF program {{{BPF_PROG_TYPE_SK_SKB}}} is added that allows users to reference sock details, such as port and ip address fields, to build useful socket layer program commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

 * Add option to set mark and priority in addition to bound device for newly created sockets. Also, allow the bpf programs to use the {{{get_current_uid_gid}}} helper meaning socket marks, priority and device can be set based on the uid/gid of the running process commit, commit, commit, commit, commit, commit, commit


Virtualization

* XEN: introduce the  frontend for the newly introduced PV Calls procotol commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* hv_sock: implements Hyper-V transport for Virtual Sockets (AF_VSOCK) commit

Security

* seccomp
 * Improved logging: admins can permit or quiet logging of specific seccomp actions; applications can request logging of all actions (except for {{{RET_ALLOW}}}); it makesit possible for devsto request logging of specific syscalls commit, commit, commit, commit, commit, commit
 * Implement {{{SECCOMP_RET_KILL_PROCESS}}} action ({{{SECCOMP_RET_KILL}}} is aliased to {{{SECCOMP_RET_KILL_THREAD}}}) commit, commit, commit, commit
* Introduce v3 namespaced file capabilities that allows to change file capabilities inside a namespace, without leaking the capability outside of the namespace. For more information, read the recommended LWN article. commit
* exec: Use sane stack rlimit under secureexec commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* AppArmor
 * Add mediation of mountpoints and signals commit, commit
 * Add support for absolute root view based labels commit
 * Add base infastructure for socket mediation commit
* Selinux
 * Generalize support for NNP/nosuid SELinux domain transitions commit
 * Allow per-file labeling for cgroupfs commit


* audit: Reduce overhead using a coarse clock commit
* Extract early boot entropy from the passed cmdline commit


Networking

* Introduce zerocopy socket send flag {{{MSG_ZEROCOPY}}} (FEATURED) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* Support RX checksum with IPsec crypto offload for esp4/esp6 commit, commit
* Generic Routing Encapsulation: Add ERSPAN type II tunnel support. One of the purposes is for Linux box to be able to receive ERSPAN monitoring traffic sent from the Cisco switch, by creating a ERSPAN tunnel device. In addition, the patch also adds ERSPAN TX, so Linux virtual switch can redirect monitored traffic to the ERSPAN tunnel device commit
* IPv6 Segment Routing
 * Add support for advanced local segment processing, as specified in most recent specifications of IPv6 SR commit, commit, commit, commit, commit
 * Support encapsulation of IPv4 packets commit
 * Implements the T.Encaps.L2 SR function, enabling to encapsulate an L2 Ethernet frame within an IPv6+SRH packet commit 
 * Update the seg6local lightweight tunnel, and mainly implement four new actions: End.T, End.DX2, End.DX4 and End.DT6 commit, commit, commit
* sched actions: improve dump performance by adding support for filtering based on time since last used commit, commit, commit, commit
* NCSI: VLAN Filtering Support commit
* unix sockets: drop obsolete fd-recursion limits. All unix sockets now account inflight FDs to the respective sender. There is no known way for a local user to exceed those limits or exploit the accounting commit
* UDP: Allow to switch off UDP-based tunnel offloads per device commit, commit, commit, commit, commit, commit
* Distributed Switch Architecture: learning static FDB entries via the switchdev notification chain rather then by using bridge bypass SELF flag commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit


* IPv6: optimization: avoid overhead when no custom FIB rules are installed commit
* IPv6: Add sysctl for per namespace flow label reflection commit
* Allow IPsec GSO for local sockets commit
* Allow generic XDP to work on virtual devices commit
* Network Service Header (NSH) is a new protocol for service function chaining, it can be handled as a L3 protocol like IPv4 and IPv6; Eth + NSH + Inner packet or VxLAN-gpe + NSH + Inner packet are two typical use cases commit, commit, commit, commit
* Infiniband
 * RDMA Netlink Device Client, needed to properly integrate coming RDMAtool into iproute2 package which is based on netlink commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
 * New ioctl API for the RDMA ABI merge, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
 * cma: Set default gid type to RoCEv2 commit
 * Add support for RoCEv2 multicast commit, commit, commit
 * Hardware tag matching support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
 * ipoib: Enable ioctl for to IPoIB rdma netdevs commit
* ethtool: add support for forward error correction mode setting on a link commit
* geneve: add rtnl changelink support commit
* macvlan: add offload features for encapsulation commit
* tap: XDP support commit
* netfilter
 * netfilter: nf_tables: support for recursive chain deletion commit, commit, commit
 * xt_hashlimit: add rate match mode that allows matching on the current packet/byte rate without rate limiting. The main difference between the existing algorithm and the new one is that the existing algorithm rate-limits the flow whereas the new algorithm classifies the flow based on whether it is above or below a certain rate commit
 * nftables: tcp mss mangling support commit, commit, commit, commit
 * nftables: Attach process info to {{{NFT_MSG_NEWGEN}}} notifications, this is helpful for 'nft monitor' to track which process caused a given change to the ruleset commit
 * nftables: add FIB expression to the netdev table. The lookup will be delegated to the IPv4 or IPv6 FIB depending on the protocol of the packet commit
 * nft_limit: Add a stateful limit named object type, this allows to create limit policies that you can identify via name commit
* TCP
 * Add software rx timestamp for TCP commit
 * Add related fields into {{{SCM_TIMESTAMPING_OPT_STATS}}} control msg commit
 * Adjust tail loss probe timeout commit
 * Remove prequeue support commit, commit
 * Remove unused mib counters commit
 * tcp_diag: report TCP MD5 signing keys and addresses commit
* Transformation (xfrm)
 * Support setting an output mark. On systems that use mark-based routing (eg Android) it may be necessary for routing lookups to use marks in order for packets to be routed correctly commit
 * Add support for network devices capable of removing the ESP trailer commit
 * Remove flow cache (no longer needed) commit
 * Add xdst pcpu cache commit
* irda: move to staging, will be removed in future releases commit, commit, commit
* Remove software UDP fragmentation offload code. gives little other than bugs commit, commit, commit, commit

Architectures

* ARM
 * eBPF JIT compiler commit
 * crypto: ghash: add NEON accelerated fallback for vmull.p64 commit
 * coresight tmc: Add support for Coresight SoC 600 components commit, commit
 * Device Tree Sources (both 32 and 64 bit)
  * Renesas R-Car D3 (R8A77995) commit
  * TI DT76x commit, commit
  * MediaTek mt2712e commit
  * Qualcomm IPQ8074 commit
  * Marvell Armada 8080 commit
  * Uniphier PXs3 commit
  * TI AM335x Moxa UC-8100-ME-T open platform commit
  * TI AM57xx Beaglebone X15 Rev C commit
  * Microchip/Atmel sama5d27 SoM1 EK commit, commit
  * Broadcom Raspberry Pi Zero W commit
  * Gemini-based D-Link DIR-685 router commit
  * Toradex Apalis module + Apalis and Ixora carrier boards commit, commit
  * Freescale i.MX53-based Beckhoff CX9020 Embedded PC commit
  * Mediatek mt7623-based BananaPi R2 commit, commit
  * Bananapi M3, M2M and M64 commit, commit
  * NanoPi A64 commit
  * A64-OLinuXino commit
  * Rockchip RK3329 Pine64/Rock64 board support commit
  * Haikou baseboard with RK3399-Q7 SoM commit
  * RK3399 Sapphire module on Excavator carrier (RK3399 reference design) commit, commit
  * Theobroma Systems RK3399-Q7 SoM commit
  * ZTE ZX296718 PCBOX Board commit
  * BCM53573: Add Broadcom BCM947189ACDBMR board support commit
  * a64: add DTSI file for AXP803 PMIC commit
  * Add dts file for MT7622 reference board variant 1 commit, commit
  * renesas: Add Renesas Draak board support commit
  * dts: uniphier: remove sLD3 SoC support commit
* ARM64
 * VMAP_STACK support, allowing the kernel stacks to be allocated in the vmalloc space with a guard page for trapping stack overflows commit, commit
 * Initial support for persistent memory on ARM: DC CVAP instruction exposed to user space (HWCAP) and the in-kernel pmem API implemented commit, commit, commit
 * Support mremap() for vDSO commit
 * perf: add support for Cortex-A35 commit, add support for Cortex-A73 commit
 * perf: Allow more than one cycle counter to be used commit
 * crypto
  * Add non-SIMD generic fallback for crct10dif commit, aes-ce-cipher commit, aes-blk, commit, ghash-ce commit, arm64/sha2-ce commit, sha1-ce commit, aes-bs commit, aes-ce-ccm commit, crc32 commit
  * gcm: implement native driver using v8 Crypto Extensions commit
  * ghash - add NEON accelerated fallback for 64-bit PMULL commit
 * raid6: use faster multiplication for ARM NEON delta syndrome commit, implement recovery using ARM NEON intrinsics commit


* X86
 * Enable PCID optimized TLB flushing on newer Intel CPUs (FEATURED) commit, commit, commit, commit, commit, commit, commit, commit
 * Add 5-level paging support (FEATURED) commit, commit, commit, commit
 * Add 'encrypted memory' support, which is a new hardware feature on upcoming AMD CPUs ('Secure Memory Encryption', SME) (FEATURED) 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, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
 * Add the ORC unwinder and asm code unwind hints commit, commit
 * Implement fast refcount overflow protection. It does not have a noticeable performance impact, but it doesn't have the fuller checking either commit
 * Complete rewrite of the Cache Quality Monitoring (CQM) facility. The CQM support has been integrated into the Resource Director Technology (RDT) facility, which is the obvious choise as in hardware CQM is part of RDT. This allowed to add Memory Bandwidth Monitoring support on top commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
 * intel_th: Add Cannon Lake PCH-LP support commit, add Cannon Lake PCH-H support commit, add Cedar Fork PCH support commit, add Lewisburg PCH support commit
 * intel_rdt: Add command line options for resource director technology commit, turn off most RDT features on Skylake commit
 * Remove lguest support commit
 * KVM
  * Add 5 level EPT & Shadow page table support commit
  * SVM: Enable Virtual GIF feature commit
  * Add spinlock optimization framework commit
  * hyperv: Hyper-V TSC frequency MSRs commit
  * nVMX: emulate EPTP switching VMFUNC commit, commit, commit
  * nVMX: nested INVPCID support commit
  * nVMX: Add support for fast unprotection of nested guest page tables commit
 * hyper-v
  * Implement rep hypercalls commit
  * Introduce fast hypercall implementation commit
  *  Use hypercall for remote TLB flush commit
 * perf vendor events: Add Skylake server event list commit, commit


* MIPS
 * Device Tree Source
  * NI 169445 board support commit
  * ralink: Add Mediatek MT7628A SoC commit
  * Add Vocore2 board commit
  * Add Onion Omega2+ board commit
 * Add DWARF unwinding to assembly commit
 * math-emu: Add severak FP emu debugfs statistics commit, commit, commit
 * CPS: Detect CPUs in secondary clusters commit
 * CPS: Cluster support for topology functions commit
 * bpf: Implement JLT, JLE, JSLT and JSLE ops in the eBPF JIT commit
 * Remove unused R6000 support commit
* PARISC
 * Add support for self-extracting kernel commit, commit
 * Enable UBSAN support commit
 * PDT: Add full support for memory failure via Page Deallocation Table (PDT) commit, commit
 * lantiq: Add a GPHY driver which uses the RCU syscon-mfd commit
 * Add HWPOISON page fault handler code commit
* POWERPC
 * perf: access via perf to a new type of PMU (IMC) on Power9, which can count both core events as well as nest unit events (Memory controller etc) commit, commit, commit, commit
 * perf vendor events: Add POWER9 PMU events commit
 * Size of vmalloc area is increased to 56T on 64-bit hash MMU systems. This avoids problems with the percpu allocator on systems with very sparse NUMA layouts commit
 * random: Use darn instruction for get_random_seed() on Power9 commit
 * Add support for powercap framework commit, add support to clear sensor groups data commit, support to set power-shifting-ratio commit
 * Implement STRICT_KERNEL_RWX on PPC32 commit
 * hugetlb: Add support for reserving gigantic huge pages via kernel command line commit
 * Enable removal of memory for use in memory tracing commit
 * Add Power9 scheduler topology, to capture the fact that pairs of cores may share an L2 cache commit
 * Power9 support for VAS, which is a new mechanism for accessing coprocessors, and initial support for using it with the NX compression accelerator commit, commit, commit, commit, commit, commit, commit, commit
 * Add emulation for the addpcis instruction commit
 * Support for guests under PowerVM to use the Power9 XIVE interrupt controller commit
 * Enable PCI peer-to-peer commit
 * KVM: Book3S HV: Report storage key support to userspace commit
 * xmon: Add ISA v3.0 SPRs to SPR dump commit, add AMR, UAMOR, AMOR, IAMR to SPR dump commit
* S390
 * Add support for IBM z14 machines commit
 * Add IBM z14 TLB flushing improvements for KVM guests commit, commit
 * Add support for the TOD clock epoch extension commit
 * Add NIAI spinlock hints for IBM z14 commit
 * KVM
  * Multiple Epoch Facility support commit
  * Support Configuration z/Architecture Mode commit
 * topology: enable/disable dynamically commit
 * vmcp: make use of contiguous memory allocator commit
 * dasd: Add discard support for FBA devices commit, blk-mq conversion commit, add average request times to dasd statistics commit
* SPARC
 * Add 16GB hugepage support commit
 * Use register window state adjustment instructions when available commit
 * Add VCC console concentrator driver commit
 * Support cpu 'poke' hypercall commit
 * Optimized memcpy, memset, copy_to_user, copy_from_user for M7/M8 commit
* ARC
 * Initial port for HSDK board commit
 * plat-eznps: new command line argument for HW scheduler at MTM commit


Drivers

Graphics

* Enhanced syncobj APIs (wait/signal/reset/create signalled), useful for Vulkan commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* dma-buf/sync_file: Allow multiple sync_files to wrap a single dma-fence commit
* Add YCBCR 4:2:0 support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* Format modifier/blob plane property added commit
* atomic: initial support for asynchronous plane update commit
* bridge
 * Add Synopsys Designware MIPI DSI host bridge driver commit
* tiny
 * Add Pervasive Displays RePaper displays commit
 * Add support for LEGO MINDSTORMS EV3 LCD commit
* i915
 * Lots of GEN10/CNL support patches
 * Add support for drm syncobjs commit
 * GVT vGPU 48-bit ppgtt support commit
 * GVT performance improvements commit, commit
 * NOA change ioctl commit
 * CCS (color compression) scanout support commit, commit, commit, commit, commit
 * GPU reset improvements commit, commit
 * Let user specify override VBT via firmware load commit
 * debugfs: Export per-engine reset count info to debugfs commit, report execlists irq bit in debugfs commit, add slice and subslice information to debugfs commit
* amdgpu
 * Initial hugepage support commit, commit
 * Vega10 improvements
 * Command submission overhead improvements commit
 * amdgpu: Disabling Power Gating for Stoney platform commit
 * powerplay: add CZ profile support commit
 * powerplay: add avfs profiling_info_v4_2 support on Vega10 commit, add profile mode for vega10 commit, add support for 3DP 4K@120Hz on vega10 commit, added didt support for vega10 commit, enable ACG feature on vega10 commit
 * Reduce internal gart to 256M (this does not affect the ttm GTT pool size) commit
 * Add new gttsize module parameter to configure the size of the GTT domain commit
 * Expose VM fragment size as module parameter commit
 * Add vis_vramlimit module parameter to Restrict visible VRAM for testing commit
 * Add sdma_phase_quantum module parameter to make SDMA phase quantum configurable commit
* amdkfd
 * Add new IOCTL to set a Scratch memory VA commit
 * Support image tiling mode commit
* nouveau
 * GP108 modesetting support commit
 * Allow temperature readouts on maxwell2 GPUs commit
* vmwgfx
 * Add fence fd support commit, commit
* msm
 * Add modeset module param commit
* exynos
 * NV12MT support commit
* tegra
 * PRIME mmap support commit
 * Support render node commit
* sun4i
 * hdmi: Implement I2C adapter for A10s DDC bus commit
 * HDMI CEC support commit
* omapdrm
 * Support for HDMI hot plug detection commit, commit, commit
 * OMAP5 DSI supportcommit
* stm
 * Add STM32 DSI controller driver commit
 * ltdc: Add panel-bridge support commit
* dw_hdmi
 * Add support for Rockchip RK3399 commit
 * HDMI CEC support commit
* atmel-hlcdc
 * Add 8-bit color support commit
   
* vc4
 * New ioctl to attach a label to a buffer object commit
 * HDMI CEC support commit, commit
 * Allow userspace to dictate rendering order on submit ioctl commit
* fbcon: Make fbcon a built-time depency for fbdev commit
* fbcon: add fbcon=margin:<color> command line option commit

Storage

* ata: mediatek: add support for MediaTek SATA controller commit
* cs5536: add support for IDE controller variant commit
* nvme
 * Add support for FW activation without reset commit
 * Add support for NVMe 1.3 Timestamp Feature commit
 * pci: implement the HMB entry number and size limitations commit
* SCSI
 * hisi_sas: add v2 hw DFX feature commit
 * hisi_sas: support zone management commands commit
 * hpsa: add support for legacy boards commit
 * lpfc: Add Buffer to Buffer credit recovery support commit
 * qla2xxx: Add LR distance support from nvram bit commit
 * qla2xxx: Add ability to autodetect SFP type commit
 * qla2xxx: Add support for minimum link speed commit
 * qla2xxx: Enable Async TMF processing commit
 * smartpqi: add in new controller ids commit
 * smartpqi: add pqi reset quiesce support commit
 * Show .retries and .jiffies_at_alloc in debugfs commit
 * cciss: Drop obsolete driver commit


Drivers in the Staging area

* Add driver for Realtek RTL8822BE 802.11ac PCIe wireless network adapters commit, commit, commit, commit, commit, commit, commit
* typec: fusb302: Add support for USB2 charger detection through extcon commit
* media: cxd2099: Add module parameter for buffer mode commit
* pi433: New driver commit


Networking

* Bluetooth
 * Add support of 13d3:3494 RTL8723BE device commit
 * btusb: Add support of all Foxconn (105b) Broadcom devices commit
 * btusb: add ID for LiteOn 04ca:3016 commit
 * hci_bcm: Add serdev support commit
* Infiniband
 * mlx4: Add resource utilization support commit
 * hfi1: Add 16B RC/UC support commit, add 16B UD support commit, add 16B trace support commit, add support to process 16B header errors commit, add support to receive 16B bypass packets commit, add support to send 16B bypass packets commit, add kernel receive context info to debugfs commit
 * mlx4: Add inline-receive support commit, add support for RSS QP commit, add support for WQ indirection table related verbs commit, add support for WQ related verbs commit, dd user mac FW update support commit
 * mlx5: Add debug control parameters for congestion control commit, add delay drop configuration and statistics commit, add multicast flow steering support for underlay QP commit, add raw ethernet local loopback support commit, add support for QP with a given source QPN commit, add support for multi underlay QP commit, add support to dropless RQ commit, add raw ethernet local loopback firmware command commit, separate between E-Switch and MPFS commit, commit, add PCIe outbound stalls counters infrastructure commit
 * mlx5e: Add PCIe outbound stalls counters commit, add RX buffer fullness counters commit, add outbound PCI buffer overflow counter commit, enable local loopback in loopback selftest commit, IPoIB, Add support for get_link_ksettings in ethtool commit, support RSS for GRE tunneled packets commit, support TSO and TX checksum offloads for GRE tunnels commit
 * qedr: notify user application if DPM is supported commit, notify user application of supported WIDs commit
 * vmw_pvrdma: Add RoCEv2 support commit
* amd-xgbe: Add additional ethtool statistics commit, add hardware features debug output commit, add per queue Tx and Rx statistics commit, add support for VXLAN offload capabilities commit, add support to handle device renaming commit
* aquantia: Switch to use napi_gro_receive commit
* ath10k: add initial USB support commit, add tdls support for 10.4 firmwares commit, add queue restarts stats counter commit
* ath9k: Add Dell Wireless 1802 with wowlan capability commit
* bnxt: Add PCIe device IDs for bcm58802/bcm58808 commit, allow the user to set ethtool stats-block-usecs to 0 commit, implement ndo_bridge_{get|set}link methods commit, add TC flower offload flow_alloc/free FW cmds commit, add code to query TC flower offload stats commit, add support for port_attr_get and and get_phys_port_name commit, add support to enable VF-representors commit, add vf-rep RX/TX and netdev implementation commit, add TC flower filter offload support commit
* brcmfmac: Add support for CYW4373 SDIO/USB chipset commit
* cxgb4: core hardware/firmware support for Forward Error Correction on a link commit, ethtool forward error correction management support commit
* dpaa_eth: enable Rx hashing control commit
* usb: add device id for TP-LINK UE300 USB 3.0 Ethernet commit
* qualcomm: rmnet: Initial implementation commit
* e1000e: Initial Support for IceLake commit
* fsl/fman: enable FMan Keygen commit
* hv_netvsc: Add ethtool handler to set and get UDP hash levels commit
* i40e/i40evf: support for VF VLAN tag stripping control commit
* ibmvnic: Implement ethtool .get_channels commit, .get_ringparam commit, implement per-queue statistics reporting commit
* igb: support BCM54616 PHY commit
* iwlwifi: add support of FPGA fw commit, add new PCI ID for 7265D commit, mvm: add debugfs to force CT-kill commit
* ixgbe: add initial support for xdp redirect commit
* liquidio: added support for ethtool --set-channels feature commit, added support for ethtool --set-ring feature commit, support new firmware statistic fw_err_pki commit
* mlxsw
 * Support for IPv6 Unicast routes offload merge, merge
 * Add IPv4 host dpipe table merge, merge
 * Offloading matches on ip ttl and tos commit, commit, commit, commit, commit, commit
 * Offloading GRE tunnels merge
 * Traps enhancements merge
 * spectrum: Introduce multichain TC offload merge
 * Add IPv6 host dpipe table merge
 * Add IPv4 host dpipe table merge
* mvneta: Driver and hardware supports IPv6 offload, so enable it commit
* hinic: Initialize hw interface commit
* mediatek: add support for MediaTek MT7622 SoC commit
* arc_emac: Add support for ndo_do_ioctl net_device_ops operation commit
* dsa: mv88e6xxx: add Energy Detect ops commit
* stmmac: dwmac-rk: Add rv1108 gmac support commit, add Adaptrum Anarion GMAC glue layer commit, dwmac-rk: Add RK3128 GMAC support commit
* fec: Allow reception of frames bigger than 1522 bytes commit
* hns3: Add driver for Hisilicon HNS3 HCLGE Acceleration Engine & Compatibility Layer and Hisilicon HNS3 Ethernet Device Support commit, commit, commit, commit, commit, commit, commit, commit, commit
* hns: Add self-adaptive interrupt coalesce support in hns driver commit
* mvpp2: add support for TX interrupts and RX queue distribution modes commit, software tso support commit
* phy: Add rockchip PHY driver support commit
* phy: add I2C mdio bus commit
* qcom/emac: add software control for pause frame mode commit
* qualcomm: rmnet: Implement ndo_get_iflink commit
* netvsc: allow controlling send/recv buffer size commit, transparent VF management commit
* nfp: add basic SR-IOV ndo functions commit, add ethtool statistics for representors commit, report MAC statistics in ethtool commit
* phylink: add in-band autonegotiation support for 10GBase-KR mode commit, add module EEPROM support commit, add phylink infrastructure commit, add support for MII ioctl access to Clause 45 PHYs commit
* qed: Add setter APIs support for RX flow classification commit, add support for Energy efficient ethernet commit, add support for vf coalesce configuration commit
* qede: Add ethtool support for Energy efficient ethernet commit, add getter APIs support for RX flow classification commit
* qtnfmac: implement cfg80211 channel_switch handler commit, implement cfg80211 dump_survey handler commit, implement reporting current channel commit, implement scan timeout commit, introduce counter for Rx underflow events commit
* r8152: add Linksys USB3GIGV1 id commit
* ravb: add wake-on-lan support via magic packet commit
* rndis_host: support Novatel Verizon USB730L commit
* rsi: support legacy power save, U-APSD, rf-kill and AP mode commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* sfc: Add ethtool -m support for QSFP modules commit, add SFP module support commit, add sfp-bus to bridge between network devices and sfp cages commit
* sunvnet: add support for IPv6 checksum offloads commit

192f68cf35f5eefe28ce8acbb9a3dfc747149b64 commit]

* wil6210: add statistics for suspend time commit, support FW RSSI reporting commit

Audio

* firewire-motu: add support for MOTU Audio Express commit
* hda: Implement mic-mute LED mode enum commit, realtek - Enable jack detection function for Intel ALC700 commit, add Cannonlake PCI ID commit, realtek - Add support for ALC236/ALC3204 commit
* ice1712: Add support for STAudio ADCIII commit
* ASoC
 * Intel: Add Kabylake machine driver for RT5663 commit, Headset button support in kabylake machine driver commit, add Geminilake platform support commit
 * Intel: cannonlake: Add support  commit, commit,  commit, commit
 * Intel: kbl: Add Multi-Playback & Echo-reference commit, commit, commit
 * tlv320aic32x4: Add support for tlv320aic32x6 commit
 * codecs: add wm8524 codec driver commit
 * codecs: msm8916-wcd-analog: add MBHC support commit
 * cs43130: Add support for CS43130 codec commit
 * cygnus: Add support for 384kHz frame rates commit
 * qcom: apq8016-sbc: Add support to Headset JACK commit
 * rockchip: Add support for DMIC codec commit, add support for DP codec commit
 * rt274: add acpi id commit, add rt274 codec driver commit
 * rt5514: Add the I2S ASRC support commit, support the DSP recording continuously after the hotwording triggered commit, support the TDM docking mode commit
 * samsung: i2s: Support more resolution rates commit
 * sun4i-i2s: Add support for H3 commit
 * tlv320aic3x: Support for OCMV configuration commit

Tablets, touch screens, keyboards, mouses

* axp20x-pek: add support for AXP221 PEK commit
* PS/2 gpio bit banging driver for serio bus commit
* atmel_mxt_ts: add support for reset line commit
* elan_i2c: support touchpads with two physical buttons commit
* Add power key driver for Rockchip RK805 PMIC commit
* Add a driver for PWM controllable vibrators commit
* goodix: add support for capacitive home button commit
* HID
 * multitouch: Support Asus T304UA media keys commit
 * multitouch: support buttons and trackpoint on Lenovo X1 Tab Gen2 commit
 * input: map digitizer battery usage commit
 * asus: Add T100CHI bluetooth keyboard dock special keys mapping commit, add support for T100 touchpad commit, add T100CHI bluetooth keyboard dock touchpad support commit

TV tuners, webcams, video capturers

* v4l: Add packed Bayer raw12 pixel formats commit
* Added support for the TerraTec T1 DVB-T USB tuner [IT9135 chipset] commit
* adv7180: add missing adv7180cp, adv7180st i2c device IDs commit
* camms: Qualcom camss driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
* cec-pin: add low-level pin hardware support commit
* coda: add h264 and mpeg4 profile and level controls commit
* ddbridge: Kconfig option to control the MSI modparam default commit, support MaxLinear MXL5xx based cards (MaxS4/8) commit, support for CineS2 V7(A) and DuoFlex S2 V4 hardware commit
* stv0910: add multistream (ISI) and PLS capabilities commit
* MaxLinear MxL5xx DVB-S/S2 tuner-demodulator driver commit
* Add ST STV0910 DVB-S/S2 demodulator frontend driver commit
* Add ST STV6111 DVB-S/S2 tuner frontend driver commit
* i2c: Add Omnivision OV5670 5M sensor support commit
* i2c: adv748x: add adv748x driver commit
* omap3isp: add CSI1 support commit
* ov5645: Add control to export CSI2 link frequency commit, add control to export pixel clock frequency commit
* Add Amlogic Meson AO CEC Controller driver commit
* remote control
 * add zx-irdec remote control driver commit
 * gpio-ir-tx: add new driver commit
 * mtk-cir: add support for MediaTek MT7622 SoC commit
 * pwm-ir-tx: add new driver commit
* s5p-jpeg: Add support for resolution change event commit, decode 4:1:1 chroma subsampling format commit
* smiapp: add CCP2 support commit
* Add support for CSI-1 and CCP2 busses commit
* vsp1: Add pipe index argument to the VSP-DU API commit, add support for header display lists in continuous mode commit, add support for multiple DRM pipelines commit, add support for multiple LIF instances commit, add support for new VSP2-BS, VSP2-DL and VSP2-D instances commit, add support for the BRS entity commit

Universal Serial Bus

* serial: option: add support for D-Link DWM-157 C1 commit
* chipidea: Add support for Tegra20/30/114/124 commit
* gadget: add RNDIS configfs options for class/subclass/protocol commit, f_hid: {GET,SET} PROTOCOL Support commit, f_midi: add super speed support commit, udc: renesas_usb3: add support for R-Car M3-W commit, renesas_usb3: add debugfs to set the b-device mode commit, renesas_usb3: add support for R-Car H3 ES2.0 commit
* xhci: rcar: Add support for R-Car H3 ES2.0 commit
* mtu3: add a vbus debugfs interface commit
* phy: Add USB charger support commit
* xhci: Support enabling of compliance mode for xhci 1.1 commit

Serial Peripheral Interface (SPI)

* loopback-test: implement testing with no CS commit

Watchdog

* octeon-wdt: Add support for 78XX SOCs commit
* octeon-wdt: Add support for cn68XX SOCs commit

ACPI, EFI, cpufreq, thermal, Power Management

* efi: Enable reset attack mitigation commit
* ACPI
 * Prefer suspend-to-idle over S3 on some systems that do not work well commit
 * Support Apple _DSM properties commit
 * Recognize Apple SPI and I2C slaves commit
 * Extend ACPI sysfs to provide access to boot error region commit
 * Add support for the SDEI table commit
* cpufreq
 * intel_pstate: Do not use PID-based P-state selection commit, improve IO performance with per-core P-states commit
 * governor: Drop min_sampling_rate commit
 * dbx500: Delete obsolete driver commit
* libnvdimm, nfit: export an 'ecc_unit_size' sysfs attribute commit
* pm-graph: AnalyzeBoot v2.1 commit, AnalyzeSuspend v4.7 commit
* thermal
 * int3400_thermal: process "thermal table changed" event commit
 * mediatek: add Mediatek thermal driver for mt2712 commit
 * rockchip: Support the RK3328 SOC in thermal driver commit
 * uniphier: add UniPhier thermal driver commit

Real Time Clock (RTC)

* Add Realtek RTD1295 commit
* ds1307: add basic support for ds1341 chip commit
* goldfish: Add RTC driver for Android emulator commit
* m41t80: remove debug sysfs attribute commit
* s35390a: implement ioctls commit
* sun6i: Add support for the external oscillator gate commit

Voltage, current regulators, power capping, power supply

* power/supply:
 * Add support for MAX1721x standalone fuel gauge commit
 * bq24190_charger: Add power_supply_battery_info support commit
 * bq27xxx: Add chip IDs for previously shadowed chips commit
 * ltc2941-battery-gauge: Add LTC2942 support commit
 * ltc2941-battery-gauge: Add LTC2944 support commit
* power: wm831x_power: Support USB charger current limit management commit
* regulator
 * Add support for stm32-vrefbuf commit
 * mt6380: Add support for MT6380 commit
 * rk808: Add regulator driver for RK805 commit
 * rn5t618: add RC5T619 PMIC support commit

Pin Controllers (pinctrl)

* Add pinctrl driver for the RK805 PMIC commit
* add a Gemini SoC pin controller commit
* aspeed: g4: Add USB device and host support commit, g5: Add USB device and host support commit
* imx: add imx7ulp driver commit
* intel: Add Intel Cannon Lake PCH-H pin controller support commit, add Intel Denverton pin controller support commit, add Intel Lewisburg GPIO support commit
* rockchip: Add rk3128 pinctrl support commit
* sh-pfc: Initial R8A77995 PFC support commit
* sprd: Add Spreadtrum pin control driver commit
* sunxi: add support of R40 to A10 pinctrl driver commit
* uniphier: add UniPhier PXs3 pinctrl driver commit

Multi Media Card (MMC)

* renesas-sdhi: add support for R-Car Gen3 SDHI DMAC commit
* dw_mmc-k3: add sd support for hi3660 commit
* sdhci-xenon: Support HS400 Enhanced Strobe feature commit
* sunxi: Add support for A83T eMMC (MMC2) commit
* host: Add CQE interface commit

Memory Technology Devices (MTD)

* create per-device and module-scope debugfs entries commit
* nand: hynix: add support for 20nm NAND chips commit
* nand: qcom: Support for IPQ8074 QPIC NAND controller commit, support for IPQ4019 QPIC NAND controller commit
* spi-nor: add support for Microchip sst26vf064b QSPI memory commit, Add support for Intel Denverton SPI serial flash controller commit

Industrial I/O (iio)

* Add LTC2471/LTC2473 driver commit
* accel: st_accel_spi: add support to H3LIS331DL, LIS331DL, LIS3LV02DL commit
* adc: Add support for DLN2 ADC commit 
* adc: New driver for Cirrus Logic EP93xx ADC commit
* adc: at91-sama5d2_adc: add hw trigger and buffer support commit
* adc: stm32: add optional st,min-sample-time-nsecs commit, add support for lptimer triggers commit
* adc:ltc2497: Add support for board file based iio consumer mapping commit
* adc: ti-ads1015: add threshold event support commit
* chemical: ccs811: Add support for AMS CCS811 VOC sensor commit, add triggered buffer support commit
* counter: Add support for STM32 LPTimer commit
* dac: stm32: add support for stm32f4 commit
* humidity: hts221: support active-low interrupts commit, support open drain mode commit
* imu: st_lsm6dsx: support open drain mode commit
* magnetometer: add support to LIS2MDL commit, ak8974: support AMI306 variant commit
* srf08: add sensor type srf10 commit, add support for srf02 in i2c mode commit, add triggered buffer support commit
* trigger: Add STM32 LPTimer trigger driver commit 
* trigger: stm32-timer: add support for STM32H7 commit

Multi Function Devices (MFD)

* Add ROHM BD9571MWV-M MFD PMIC driver commit
* Add STM32 LPTimer driver commit
* axp20x: Add support for AXP813 PMIC commit
* hi6421-pmic: Add support for HiSilicon Hi6421v530 commit
* intel-lpss: Add missing PCI ID for Intel Sunrise Point LPSS devices commit
* rk808: Add RK805 support commit
* Add support for TPS68470 device commit

Pulse-Width Modulation (PWM)

* Add STM32 LPTimer PWM driver commit
* Add ZTE ZX PWM device driver commit
* rockchip: Add rk3328 support commit

Inter-Integrated Circuit (I2C)

* Add Intel Cherry Trail Whiskey Cove SMBUS controller driver commit
* Add Spreadtrum I2C controller driver commit
* altera: Add Altera I2C Controller driver commit
* i2c-stm32f7: add driver commit
* i801: Add support for Intel Cedar Fork commit
* rk3x: add support for rv1108 commit

Hardware monitoring (hwmon)

* aspeed-pwm-tacho) cooling device support commit
* jc42: Add support for CAT34TS02C commit, add support for GT30TS00, GT34TS02, and CAT34TS04 commit
* ltq-cputemp: add cpu temp sensor driver commit
* pmbus: Add IBM Common Form Factor (CFF) power supply driver commit, add debugfs for status registers commit, add support for Intel VID protocol VR13 commit, add support for Texas Instruments tps53679 device commit, lm25066: Add support for TI LM5066I commit
* da9052: Add support for TSI channel commit

General Purpose I/O (gpio)

* vf610: add imx7ulp support commit
* Add support for TPS68470 GPIOs commit
* it87: add support for IT8772F Super I/O commit
* Add gpio driver support for ThunderX and OCTEON-TX commit

Leds

* as3645a: Add LED flash class driver commit
* pca955x: add GPIO support commit

DMA engines

* sun6i: support V3s SoC variant commit
* Add driver for Altera / Intel mSGDMA IP core commit
* bcm-sba-raid: Add debugfs support commit
* ioatdma: Add intr_coalesce sysfs entry commit
* dmatest: add support for memset test commit

Cryptography hardware acceleration

* nx: Add P9 NX support for 842 compression engine commit
* atmel-ecc - introduce Microchip / Atmel ECC driver commit
* axis - add ARTPEC-6/7 crypto accelerator driver commit
* brcm - Support more FlexRM rings than SPU engines commit
* caam/jr - add support for DPAA2 parts commit
* ccp - Add XTS-AES-256 support for CCP version 5 commit, add support for RSA on the CCP commit, introduce the AMD Secure Processor device commit
* stm32 - Support for STM32 HASH module commit
* sun4i-ss - support the Security System PRNG commit
* csrypto: ccp - Expand RSA support for a v5 ccp commit

PCI

* mediatek: Add controller support for MT2712 and MT7622 commit, add MSI support for MT2712 and MT7622 commit
* rockchip: Add per-lane PHY support commit
* qcom: Add support for IPQ8074 PCIe controller commit
* DPC: Add eDPC support commit
* layerscape: Add support for ls1088a commit, add support for ls2088a commit

Clock

* sunxi-ng: Add interface to query or configure MMC timing modes commit, support R40 SoC commit, add sun4i/sun7i CCU driver commit
* meson: gxbb-aoclk: Add CEC 32k clock commit
* axs10x: introduce AXS10X pll driver commit
* renesas: rcar-usb2-clock-sel: Add R-Car USB 2.0 clock selector PHY commit, add support for SCCG/Clean peripheral clocks commit, cpg-mssr: Add R8A77995 support commit
* ARC: clk: introduce HSDK pll driver commit
* mb86s7x: Drop non-building driver commit
* stm32h7: Add stm32h743 clock driver commit
* at91: add audio pll clock drivers commit
* imx-tpm: Add imx tpm timer support commit


Various

* hwrng: mx-rngc - add a driver for Freescale RNGC commit
* fpga manager: Add altera-ps-spi driver for Altera FPGAs commit
* fpga manager: Add Altera CvP driver commit
* iommu/mediatek: Add mt2712 IOMMU support commit
* irqchip: Add UniPhier AIDET irqchip driver commit
* irqchip/armada-370-xp: Enable MSI-X support commit
* irqchip/gic-v3: Advertise GICv4 support to KVM commit
* irqchip/ls-scfg-msi: Add LS1043a v1.1 MSI support commit, add LS1046a MSI support commit, add MSI affinity support commit
* mailbox: bcm-flexrm-mailbox: Add debugfs support commit
* MCB: add support for SC31 to mcb-lpc commit
* libnvdimm, pfn, dax: show supported dax/pfn region alignments in sysfs commit
* of: overlay: add overlay symbols to live device tree commit
* phy: phy-mt65xx-usb3: add SATA PHY support commit
* phy: qcom-qmp: Add support for IPQ8074 commit
* phy: rockchip-inno-usb2: add support of usb2-phy for rv1108 SoCs commit
* phy: phy-mt65xx-usb3: add PCIe PHY support commit
* phy: sun4i-usb: Support A83T USB PHYs commit
* phy: ralink-usb: add driver for Mediatek/Ralink commit
* phy: add the mvebu cp110 comphy driver commit
* phy: Add an USB PHY driver for the Lantiq SoCs using the RCU module commit
* remoteproc: qcom: Add support for SSR notifications commit
* remoteproc: imx_rproc: add a NXP/Freescale imx_rproc driver commit
* reset: uniphier: remove sLD3 SoC support commit
* ARC: reset: introduce HSDKv1 reset driver commit
* reset: Add a reset controller driver for the Lantiq XWAY based SoCs commit
* rpmsg: glink: Add announce_create ops and preallocate intents commit, add support for transport version negotiation commit, introduce glink smem based transport commit, add rx done command commit, add support for TX intents commit
* soc: qcom: GLINK SSR notifier commit
* soc: mediatek: add SCPSYS power domain driver for MediaTek MT7622 SoC commit
* soc: Add Amlogic SoC Information driver commit
* spmi: pmic-arb: add support for HW version 5 commit
* tty: serial: owl: Implement console driver commit
* serial: stm32: add RTS support commit, add fifo support commit
* Introduce 8250_men_mcb commit
* tty: goldfish: Implement support for kernel 'earlycon' parameter commit
* w1: add hwmon temp support for w1_therm commit, Add 1w slave driver for DS28E05 EEPROM commit



List of merges

* Pull drm updates 
* Pull rdma updates 
* Pull hwmon updates 
* Pull documentation updates 
* Pull RCU updates 
* Pull perf updates 
* Pull scheduler updates 
* Pull x86 asm updates 
* Pull x86 boot updates 
* Pull x86 build updates 
* Pull x86 cpuid updates 
* Pull x86 debug updates 
* Pull x86 microcode loading updates 
* Pull x86 spinlock update 
* Pull syscall updates 
* Pull locking updates 
* Pull x86 mm changes 
* Pull timer fixes 
* Pull irq updates 
* Pull x86 cache quality monitoring update 
* Pull x86 apic updates 
* Pull m68k updates 
* Pull parisc updates 
* Pull alpha updates 
* Pull s390 updates 
* Pull arm64 updates 
* Pull USB/PHY driver updates 
* Pull tty/serial updates 
* Pull staging/IIO driver updates 
* Pull driver core update 
* Pull char/misc driver updates 
* Pull EDAC updates 
* Pull spi updates 
* Pull regulator updates 
* Pull pin control updates 
* Pull GPIO updates 
* Pull HID update 
* Pull power management updates 
* Pull ACPI updates 
* Pull device properties framework updates 
* Pull GFS2 updates 
* Pull XFS updates 
* Pull ext4 updates 
* Pull dlm updates 
* Pull file locking updates 
* Pull writeback error handling updates 
* Pull networking updates 
* Pull crypto updates 
* Merge updates 
* Pull percpu updates 
* Pull workqueue updates 
* Pull cgroup updates 
* Pull libata updates 
* Pull x86 platform updates 
* Pull EFI updates 
* Pull powerpc updates 
* Pull xen updates 
* Pull block layer updates 
* Pull MMC updates 
* Pull MD updates 
* Pull sound updates 
* Pull media updates 
* Pull mailbox updates 
* Pull input updates 
* Pull MFD updates 
* Pull backlight updates 
* Pull dmaengine updates 
* Pull LED updates 
* Pull DeviceTree updates 
* Pull quota scaling updates 
* Pull cifs update 
* Pull pstore update 
* Pull gcc plugins update 
* Pull secureexec update 
* Pull audit updates 
* Pull printk updates 
* Pull SCSI updates 
* Remove our use of 'gperf' for generating perfect hashes 
* Pull tracing updates 
* Pull kselftest updates 
* Pull KVM updates 
* Pull PCI updates 
* Pull ARC updates 
* Pull x86 platform driver updates 
* Merge more updates 
* Pull followup block layer updates 
* Pull btrfs updates 
* Pull nfsd updates 
* Pull i2c updates 
* Pull VFIO updates 
* Pull remoteproc updates 
* Pull rpmsg updates 
* Pull power supply and reset changes 
* Pull MTD updates 
* Pull IOMMU updates 
* Pull sparc updates 
* Pull ARM/arm64 SoC platform updates 
* Pull ARM SoC driver updates 
* Pull ARM/arm64 Devicetree updates 
* Pull pwm updates 
* Pull libnvdimm 
* Pull namespace updates 
* Pull NFS client updates 
* Pull thermal updates 
* Pull more s390 updates 
* Pull ARM updates 
* Pull perf tooling updates 
* Pull selinux updates 
* Pull dma-mapping updates 
* Pull ceph updates 
* Pull f2fs updates 
* Pull overlayfs updates 
* Pull fuse updates 
* Pull RTC updates 
* Pull clk updates 
* Pull modules updates 
* Pull watchdog updates 
* Pull fbdev updates 
* Pull device mapper updates 
* Pull Kbuild updates 
* Pull zstd support 
* Pull ipc compat cleanup and 64-bit time_t 
* Pull more set_fs removal 
* Pull mount flag updates 
* Pull nowait read support 
* Pull orangefs updates 
* Pull arch/nios2 update 
* Pull firmware removal 
* Pull more i2c updates 
* Pull MIPS updates 
* Pull more input updates 
* Pull UML updates 

Other news sites

* LWN's merge window part 1, part 2
* Phoronix The Exciting New Features Of The Linux 4.14 Kernel