31964
Comment: more stuff....-rc1 is near it seems
|
880
Linux 5.0
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Comprehensible changelog of the linux kernel, inspired by [http://wiki.dragonflybsd.org/index.php/DragonFly_Status Dragonfly's status]. Other places to get news about the linux kernel are [http://www.kernel-traffic.org Kernel traffic], [http://lwn.net/Kernel/ LWN kernel status], [http://lwn.net/Articles/driver-porting/ LWN driver porting guide] and [http://lwn.net/Articles/2.6-kernel-api/ LWN list of API changes in 2.6] - many articles here link to LWN and much of the 2.6.x changelog was restored from them (you may be be interested in subscribing so Jonathan can keep up the good work ;) ). Before adding things here look at the RULES section at the end of the page!! | #pragma keywords Linux, Kernel, Operative System, Linus Torvalds, Open Source, drivers, filesystems, network, memory management, scheduler, preemtion, locking #pragma description Summary of the changes and new features merged in the Linux Kernel during the 2.6.x and 3.x development Changes done in each Linux kernel release. Other places to get news about the Linux kernel are [[http://lwn.net/Kernel/|LWN kernel status]], [[http://www.h-online.com/open/features/|H-Online]], or the Linux Kernel mailing list (there is a web interface in [[http://www.lkml.org|www.lkml.org]]). List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules! |
Line 3: | Line 5: |
This page tracks the current stable and development releases. Changes made to older 2.6.x releases can be found in the Linux26Changes page | You can discuss the latest Linux kernel changes on the [[http://forum.kernelnewbies.org/list.php?4|New Linux Kernel Features Forum]]. |
Line 5: | Line 7: |
===== 2.6.15 ===== * '''STILL NOT RELEASED!''' * VFS changes: The "shared subtree" patches have been merged. Consider the following situation: a process wants to clone its own namespace, but still wants to access the CD that got mounted recently. Shared subtree semantics provide the necessary mechanism to accomplish the above. It provides the necessary building blocks for features like per-user-namespace and versioned filesystem. [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/sharedsubtree.txt Documentation], original [http://marc.theaimsgroup.com/?l=linux-fsdevel&m=110565591630267&w=2 Alexander Viro's RFC]. Patches: * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=07b20889e3052c7e77d6a6a54e7e83446eb1ba8 beginning of the shared-subtree proper]: A private mount does not forward or receive propagation. This patch provides user the ability to convert any mount to private * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=03e06e68ff76294e53ffa898cb844d2a997b043e introduce shared mounts]: This creates shared mounts. A shared mount when bind-mounted to some mountpoint, propagates mount/umount events to each other. All the shared mounts that propagate events to each other belong to the same peer-group. * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a58b0eb8e64b78d9315a5491955e78b1391d42e5 introduce slave mounts]: A slave mount always has a master mount from which it receives mount/umount events. Unlike shared mount the event propagation does not flow from the slave mount to the master. * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5afe00221389998a25d611dc7941c06580c29eb6 handling of shared mounts]: This makes bind, rbind, move, clone namespace and umount operations aware of the semantics of slave mount * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b90fa9ae8f51f098ee480bbaabd6867992e9fc58 shared mount handling: bind and rbind]: Implement handling of MS_BIND in presense of shared mounts * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9676f0c6389b62bd6b24d77d4b3abdbcfa32d0f2 unbindable mounts]: An unbindable mount does not forward or receive propagation. Bind semantics: It is invalid to bind mount an unbindable mount. Move semantics: It is invalid to move an unbindable mount under shared mount. Clone-namespace semantics: If a mount is unbindable in the parent namespace, the corresponding cloned mount in the child namespace becomes unbindable too. Note: there is subtle difference, unbindable mounts cannot be bind mounted but can be cloned during clone-namespace. * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2144440327fa01b2f3f65e355120a78211685702 shared mount handling: move]: Implement handling of mount --move in presense of shared mounts * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a05964f3917c7c55368c229d7985f8e7c9977e97 shared mount handling: umount]: An unmount of a mount creates a umount event on the parent. If the parent is a shared mount, it gets propagated to all mounts in the peer group * Page table scalability improvements: Currently, a single page table lock is used to protect all operations on an address space's page tables. This has been detected to cause scalability problems in largue multiprocessor systems ej: 512-cpu SGI altix, specially in heavily multithreaded workloads (threads of a same process share the same address space and hence the same page table lock). With this patch, a separate spinlock per page-table page is used, to guard the page table entries in that page. Splitting the lock is not quite for free: another cacheline access. So for now enable it by config for machines with 4 or more CPUs. While this (and many other scalability changes) may look high-end oriented now, remember that cheap multi-core desktops CPUs are there. [http://lwn.net/Articles/157151/ (LWN article)] [http://marc.theaimsgroup.com/?l=linux-kernel&m=112603203327134&w=2 (benchmark vs SGI's "reduced locking by using atomic page table operations" non-merged approach)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c21e2f2441dc5fbb957b030333f5a3f2d02dea7 (commit)] * .text page fault SMP scalability optimization: This fixes a case where large systems wouldn't scale well while faulting in the .text. The reason was a useless overwrite of the same pte from all cpu [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1a44e149084d772a1bcf4cdbdde8a013a8a1cfde (commit)] * Swaptoken tuning: It turns out that the original swap token implementation, by Song Jiang, only enforced the swap token while the task holding the token is handling a page fault, this patch approximates that, like the page fault code does. It has the effect of automatically, and gradually, disabling the enforcement of the swap token when there is little or no paging going on, and "turning up" the intensity of the swap token code the more the task holding the token is thrashing [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fcdae29aa7a5c79f245110f6680afdc1858d3626 (commit)] * Demand faulting for huge pages [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c887265977213985091476be40ab11dfdcb4caf (commit)] * Add generic memory add/remove and supporting functions for memory hotplug [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3947be1969a9ce455ec30f60ef51efb10e4323d1 (commit)] * "Cooperating processes" for the anticipatory I/O scheduler: Introduce the notion of cooperating processes (those that submit requests close to one another), and use these statistics to make better choices about whether or not to do anticipatory waiting [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f5b3db0017f8415301f3427b30263186e8478c3f (commit)] * Generic dispatch queue: Implements generic dispatch queue which can replace all dispatch queues implemented by each iosched [http://marc.theaimsgroup.com/?l=linux-kernel&m=112238633622498&w=2 (mailing list)] [http://lwn.net/Articles/157208/ (LWN article)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8922e16cf6269e668123acb1ae1fdc62b7a3a4fc (commit)] * Reimplement elevator online switching code [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cb98fc8bb9c141009e2bda99c0db39d387e142cf (commit)] * Implement nice support across physical cpus on SMP to obtain good distribution of tasks of different nice values [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b910472dd3b7c1d51af9a594a759f642520c33e1 (commit)] * IPv4/IPv6: UFO (UDP Fragmentation Offload) Scatter-gather approach: UFO is a feature wherein the Linux kernel network stack will offload the IP fragmentation functionality of large UDP datagram to hardware. This will reduce the overhead of stack in fragmenting the large UDP datagram to MTU sized packets [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e89e9cf539a28df7d0eb1d0a545368e9920b34ac (commit)] * Randomize the port selected on bind() for connections to help with possible security attacks. It should also be faster in most cases because there's no need for a global lock [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6df716340da3a6fdd33d73d7ed4c6f7590ca1c42 (commit)] * PPP MPPE encryption module, it implements the Microsoft Point-to-Point Encryption method as a PPP compressor/decompressor. This is necessary for Linux clients and servers to interoperate with Microsoft Point-to-Point Tunneling Protocol (PPTP) servers (either Microsoft PPTP servers or the poptop project) which use MPPE to encrypt data when creating a VPN [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b3f9b92a6ec1a9a5e4b4b36e484f2f62cc73277c (commit)] * IPV6: RFC3484 compliant source address selection [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=072047e4de3800905e09d0f8ef0e1cc4e91a601e (commit)] * make /proc/mounts pollable [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5addc5dd8836aa061f6efc4a0d9ba6323726297a (commit)] * ppc64: support 64k pages. Adds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel base page size to 64K. The resulting kernel still boots on any hardware. On current machines with 4K pages support only, the kernel will maintain 16 "subpages" for each 64K page transparently [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3c726f8dee6f55e96475574e9f645327e461884c (commit)] * ppc64: CPU freq support using 970FX powertune facility for iMac G5 and SMU based single CPU desktop [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4350147a816b9c5b40fa59e4fa23f17490630b79 (commit)] * ppc64: Adds the ability to the SMU driver to recover missing calibration partitions from the SMU chip itself. It also adds some dynamic mecanism to /proc/device-tree so that new properties are visible to userland [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=183d020258dfd08178a05c6793dae10409db8abb (commit)] * ppc64: This adds a new thermal control framework for Powermac, along with the implementation for Powermac8,1, Powermac8,2 (iMac G5 rev 1 and 2), and Powermac9,1 (latest single CPU desktop) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75722d3992f57375c0cc029dcceb2334a45ceff1 (commit)] * Add the infrastructure to support hotplug CPU on ARM [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a054a811597a17ffbe92bc4db04a4dc2f1b1ea55 (commit)], support for local timers [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=37ee16ae93a3e4ae7dd51beb81d249f5f12a55c2 (commit)] and optimized SHA1 implementation [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c09f98271f685af349d3f0199360f1c0e85550e0 (commit)] * x86 hot plug CPU support of physical add of new processors (hotplug add/remove of already existing CPUs was already supported) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f40a72a7e819789f66910c8cd60aab005cdb413 (commit)] * Support for shared HPET interrupts: The driver previously acknowledged interrupts for both edge and level interrupts, but didn't actually allow a shared interrupt in the latter case [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0d29086177aaa1e7d14e6ebb7fc067b3ca6d5c11 (commit)] * Add LSM hooks for key management facilities (see link) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=29db9190634067c5a328ee5fcc2890251b836b4b (commit)] * RCU torture-testing kernel module: This adds a tristate CONFIG_RCU_TORTURE_TEST, which enables an intense torture test of the RCU infratructure. This is needed for testing due to the continued changes to the RCU infrastructure [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a241ec65aeac3d69a08a7b153cccbdb7ea35063f (commit)] * Driver Core: add the ability for class_device structures to be nested: Allows struct class_device to be nested, so that another struct class_device can be the parent of a new one, instead of only having the struct class be the parent [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=51d172d5f3a193e4b8f76179b2e55d7a36b94117 (commit)] * Add vmalloc_node(size, node) (allocate necessary memory on the specified node) and get_vm_area_node(size, flags, node) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=930fc45a49ddebe7555cc5c837d82b9c27e65ff4 (commit)] * Process Events Connector: It reports fork, exec, id change, and exit events for all processes to userspace. Applications that may find these events useful include accounting/auditing (e.g. ELSA), system activity monitoring (e.g. top), security, and resource management (e.g. CKRM) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f46080c41d5f3f7c00b4e169ba4b0b2865258bf (commit)] * Add sysfs support for ide tape [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5dee80ad69439ad8dccf8fa4d7fed0068aec9cf (commit)], raid5 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3f294f4fb6f2ba887b717674da26c21f3d57f3fc (commit)], md [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eae1701fbd264cfc7efbaf7cd4cd999760070e27 (commit)], [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=86e6ffdd243a06663713e637ee683fb27dce8e0c (commit)] * fbcon: Add support for console rotation. Can be enabled with a boot option fbcon=rotate:n, where n = 0 - normal, n = 1 - 90 degrees (clockwise), n = 2 - 180 degrees (upside down), n = 3 - 270 degrees (counterclockwise); or at runtime with "echo n > /sys/class/graphics/fb[num]/con_rotate" to set the angle of rotation of the current console or "echo n > /sys/class/graphics/fb[num]/con_rotate_all" to set the angle of rotation globally [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e4fc27618b75234b721c4a13d0e0d9d07e75e641 (commit)] * Add "revision" support for having multiple revisions for each match/target in arp_tables and ip6_tables [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6b7d31fcdda5938e5d3f1f8b0922cc25aa200dfc (commit)] * Support for the Artemis and ATIK astronomical based USB CCD cameras [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c9c7746dd333c12f482af2f1e63ea7eafc7cd529 (commit)] * USB: delete the bluetty driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a6c82600d4058346ea6fd801bc21d7abcc1350d8 (commit)] * Nokia 7600/6230(i)/6170/66x0 DKU2 USB driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=50260b69bbec383058875de26dbde28b1a6f8d00 (commit)] * Nvidia Geforce 7800 series (7800, 7800 GTX, 7800 GO and 7800 GTX GO cards) framebuffer support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7015faa7df829876a0f931cd18aa6d7c24a1b581 (commit)], Mystique AGP support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=63921fbfbd87ec745e65d2e9aecdfdc9a4ce73f2 (commit)], add partial support for GMA900 within the i915GM chipset [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3a59026ba111d85b1a86af0f1c4e5a8ef1242d82 (commit)] * MPC8xx PCMCIA support (PowerPC 8xx series PCMCIA controller) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=de957c89b7dadb3147e885d7b6eb9db73d0eea57 (commit)] * Adds a RapidIO subsystem to the kernel. RIO is a switched fabric interconnect used in higher-end embedded applications [http://www.rapidio.org http://www.rapidio.org] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=394b701ce4fbfde919a9bcbf84cb4820a7c6d47c (commit)] * MTD: add Resident Flash Disk (RFD) support. This type of flash translation layer (FTL) is used by the Embedded BIOS by General Software. [http://www.gensw.com/pages/prod/bios/rfd.htm http://www.gensw.com/pages/prod/bios/rfd.htm] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e27a9960af0506d84b9ca9dd3874b7d88901f230 (commit)] and add initial support for OneNAND flash chips, a new flash technology from Samsung with integrated SRAM buffers and logic interface [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cd5f6346bc28a41375412b49b290d22ee4e4bbe8 (commit)] * Support for SA1100 Jornada flash device support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=183e1a349466a1b90430a58f3efad25a3e555cb2 (commit)] * MIPS updates: resurrect Cobalt support for 2.6 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c4ed38a0c6e2e5c4906296758f816ee71373792f (commit)], Base Au1200 support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e3ad1c23ba72214669b364c6fa304531dc768c3e (commit)], support for BCM1480 family of chips [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f137e463b50aadba91bd116f99c59ccb9c15a12f (commit)] * Add support for the Sharp SL-6000x (Tosa) series of PDAs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8459c159f7de832eaf888398d2abf466c388dfa6 (commit)] and support MMC, IRDA and UDC, also add a platform device for the keyboard driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a93876c16275376c4f9f1630ce24036d329fa7a0 (commit)] and add support for sharp zaurus SL-5500 touchscreen [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1753298947afe5eb56da755bc057f1868f345ec1 (commit)] and its PCMCIA slot [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=77bb86a1b9f8b872d8efc33c4f4359f809220252 (commit)] * Superhyway support for SH4-202 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5cb9783536a41df9f9cba5b0a1d78047ed787f7 (commit)] * Add support for the AMCC PowerPC 440SPe SoC, including PCI Express in root port mode [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0f7b8bc57ee90138a7c429951457027a90c326f (commit)] * SELinux: Enables files created on a MLS-enabled SELinux system to be accessible on a non-MLS SELinux system [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e517a0cd859ae0c4d9451107113fc2b076456f8f (commit)] * SHM_NORESERVE flags for shmget(): Similar to MAP_NORESERVE for shared memory segments. This is mainly to avoid abuse of OVERCOMMIT_ALWAYS and this flag is ignored for OVERCOMMIT_NEVER [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf8f972d3a1daf969cf44f64cc36d53bfd76441f (commit)] ===== 2.6.14 ===== * Released October 27, 2005 [http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.14 changelog] * Numa-aware slab allocator: It creates slabs on multiple nodes and manages slabs in such a way that locality of allocations is optimized. Each node has its own list of partial, free and full slabs. All object allocations for a node occur from node specific slab lists [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e498be7dafd72fd68848c1eef1575aa7c5d658df (commit - benchmarks)] * Lazy page table copies in fork() for VMAs without anonymous pages (the ones with anonymous pages are still copied): Defer copying of ptes until fault time when it is possible to reconstruct the pte from backing store, speeding up fork() greatly specially for processes using lots of shared memory [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d992895ba2b27cf5adf1ba0ad6d27662adc54c5e (commit)] * Add /proc/$PID/smaps: This file will shows how much memory is resident in each mapping. Useful for people who want to perform memory consumption analysis [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e070ad49f31155d872d8e96cab2142840993e3c0 (commit)] * Add /proc/$PID/numa_maps: This file will show on which nodes pages reside [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6e21c8f145f5052c1c2fb4a4b41bee01c848159b (commit)] * Lock-free file descriptor look-up [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ab2af1f5005069321c5d130f09cce577b03f43ef (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b835996f628eadb55c5fb222ba46fe9395bf73c7 (commit)] * Four-level page table support for the ppc64 architecture: extends the usable user address range to 44 bits (16T). [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e28f7faf05159f1cfd564596f5e6178edba6bd49 (commit)] * Support hotplug cpu on 32-bit SMP powermacs: When a cpu is off-lined, it is put into sleep mode with interrupts disabled. It can be on-lined again by asserting its soft-reset pin, which is connected to a GPIO pin [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=31139971b3dc9fbb2e8a8572fb81e6e8470f363a (commit)] * Add TASK_NONINTERACTIVE task state bit to the cpu scheduler: It can be used by blocking points to mark the task's wait as "non-interactive". This does not mean the task will be considered a CPU-hog - the wait will simply not have an effect on the waiting task's priority - positive or negative alike [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d79fc0fc6645b0cf5cd980da76942ca6d6300fa4 (commit)] * [http://www.ietf.org/rfc/rfc2637.txt PPTP] (Point-to-Point Tunneling Protocol) conntrack support and NAT helper added to allow proper management of multiple NAT'd PPTP connections. PPTP, a Microsoft-designed protocol, is used in many places to provide VPN access due to the native support in Microsoft Windows. [http://en.wikipedia.org/wiki/PPTP Wikipedia article] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=926b50f92a30090da2c1a8675de954c2d9b09732 (commit)] * DCCP: "Datagram Congestion Control Protocol". Datagram protocol (like UDP), but with a congestion control mechanism. [http://lwn.net/Articles/149756/ (LWN article)] Currently a [http://www.icir.org/kohler/dcp/draft-ietf-dccp-spec-11.txt RFC draft] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7c657876b63cb1d8a2ec06f8fc6c37bb8412e66c (commit)] * Implement SKB fast cloning: Protocols that make extensive use of SKB cloning, for example TCP, eat at least 2 allocations per packet sent as a result. To cut the kmalloc() count in half, we implement a pre-allocation scheme wherein we allocate 2 sk_buff objects in advance, then use a simple reference count to free up the memory at the correct time [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d179cd12928443f3ec29cfbc3567439644bd0afc (commit)] * Add netlink connector: userspace <-> kernel space easy to use communication module which implements easy to use bidirectional message bus using netlink as its backend [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7672d0b54411371e0b6a831c1cb2f0ce615de6dc (commit)], also a "async connector mode" [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=acd042bb2de50d4e6fb969281a00cc8b8b71e46d (commit)] * IPV6: Support several new sockopt / ancillary data in Advanced API (RFC3542): IPV6_RECVPKTINFO, IPV6_PKTINFO, IPV6_RECVHOPOPTS, IPV6_HOPOPTS, IPV6_RECVDSTOPTS, IPV6_DSTOPTS, IPV6_RTHDRDSTOPTS, IPV6_RECVRTHDR, IPV6_RTHDR, IPV6_RECVHOPOPTS, IPV6_HOPOPTS, IPV6_{RECV,}TCLASS [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=333fad5364d6b457c8d837f7d05802d2aaf8a961 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=41a1f8ea4fbfcdc4232f023732584aae2220de31 (commit)] * [http://fuse.sourceforge.net/ FUSE]: Allows to implement a fully functional filesystem in a userspace program [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d8a5ba45457e4a22aa39c939121efd7bb6c76672 (commit)] * [http://v9fs.sourceforge.net/ 9P support]: Linux port of the [http://www.cs.bell-labs.com/sys/doc/9.html Plan9]'s [http://plan9.bell-labs.com/sys/man/5/INDEX.html 9P protocol] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=93fa58cb831337fdf5d36b3b913441100a484dae (commit)] * [http://relayfs.sourceforge.net/ RelayFS]: Relayfs is just a bunch of per-cpu kernel buffers that can be efficiently written into from kernel code. These buffers are represented as files which can be mmap'ed and directly read from in user space. The purpose of this setup is to provide the simplest possible mechanism allowing potentially large amounts of data to be logged in the kernel and 'relayed' to user space." [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e82894f84dbba130ab46c97748c03647f8204f92 (commit)] * securityfs filesystem [http://lwn.net/Articles/153366/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b67dbf9d4c1987c370fd18fdc4cf9d8aaea604c2 (commit)] * Suspend support for CIFS filesystem [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ede1327ea4ca8019ec6df24b3e837def091c26b8 (commit)] * Enable atomic inode security labeling on ext3 and ext2: it enables atomic security labeling of newly created inodes by altering the fs code to invoke a new LSM hook to obtain the security attribute to apply to a newly created inode and to set up the incore inode security state during the inode creation transaction. This parallels the existing processing for setting ACLs on newly created inodes [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5e41ff9e0650f327a6c819841fa412da95d57319 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=10f47e6a1b8b276323b652053945c87a63a5812d (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ac50960afa31877493add6d941d8402fa879c452 (commit)] * SELinux memory improvements: Reduce access rules memory usage by 20x [http://www.livejournal.com/users/james_morris/6197.html James Morris explanation] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=782ebb992ec20b5afdd5786ee8c2f1b58b631f24 (commit)] * NTFS: Support journals ($Logfile) which have been modified by chkdsk. This means users can boot into Windows after we marked the volume dirty. The Windows boot will run chkdsk and then reboot. The user can then immediately boot into Linux rather than having to do a full Windows boot first before rebooting into Linux [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e7a1033b946f4f2622f2b338ab107f559aad542c (commit)] * SAS transport class [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c7ebbbce366c02e5657ac6b6059933fe0353b175 (commit)] * Remove ACPI S4 BIOS support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b01d8684e9e5b04270970c97df856d47668267e3 (commit)] * [http://ipw2100.sourceforge.net/ ipw2100] and [http://ipw2200.sourceforge.net/ ipw2200] wireless drivers (intel centrino) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2c86c275015c880e810830304a3a4ab94803b38b (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=43f66a6ce8da299344cf1bc2ac2311889cc88555 (commit)] * [http://hostap.epitest.fi/ HostAP]: Adds support to work as "Wireless Access Point" [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ff1d2767d5a43c85f944e86a45284b721f66196c (commit)] * [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.Extensions.html Wireless extensions] API update to version 19 [http://marc.theaimsgroup.com/?l=linux-netdev&m=112568599006559&w=2 (mail)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6582c164f2b3b6e58d1f13c1c031b19ee691eb14 (commit)] * ISA DMA suspend for x86/x86-64 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=795312e763569ce4df67e7a0ca726a9901358fa2 (commit)] - [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7dc24db1757f950f8bd21b7191106d4bf5134be7 (commit)] * PCI: Support PCI PM CAP version 3 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3fe9d19f9e86a55679f5f2b38ec0a43a1a510cee (commit)] * Keys: Add possessor permissions to keys. It adds extra permission grants to keys for the possessor of a key in addition to the owner, group and other permissions bits. This makes SUID binaries easier to support without going as far as labelling keys and key targets using the LSM facilities [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=664cceb0093b755739e56572b836a99104ee8a75 (commit)] * Driver for the IBM Hard Drive Active Protection System (HDAPS), an accelerometer found in most modern Thinkpads [http://lwn.net/Articles/155440/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=860e1d6b46bd4cbc67d8d065f0f682143513382f (commit)] * Add Apple USB touchpad driver for the USB touchpad which can be found on post-February 2005 Apple Powerbooks [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f7214ff4e8248513ec626212b2c1a3ca0b2a0888 (commit)] * Spinlock consolidation [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fb1c8f93d869b34cacb8b8932e2b83d96a19d720 (commit)] * Largefile support for accounting: The accounting subsystem in the kernel can not correctly handle files larger than 2GB. This fixes it by adding the O_LARGEFILE flag [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6c9c0b52b8c6b68b05bb06efd7079a8fc5e9ba60 (commit)] * Detect soft lockups, new debug feature (CONFIG_DETECT_SOFTLOCKUP). When enabled then per-CPU watchdog threads are started, which try to run once per second. If they get delayed for more than 10 seconds then a callback from the timer interrupt detects this condition and prints out a warning message and a stack dump [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8446f1d391f3d27e6bf9c43d4cbcdac0ca720417 (commit)] * Add kzalloc(): new function, it allows to obtain pre-zeroed memory [http://lwn.net/Articles/147014/ (LWN article)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dd3927105b6f65afb7dac17682172cdfb86d3f00 (commit)] * Add schedule_timeout_{,un}interruptible() [http://lwn.net/Articles/149019 (LWN article)] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=64ed93a268bc18fa6f72f61420d0e0022c5e38d1 (commit)] TODO: * Import relevant data from [http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/2.6.14-rc5-mm1/broken-out/post-halloween-doc.patch davej's post halloween document] or remaining stuff from [http://kernelnewbies.org/status/latest.html Kernelnewbies status] * Find links to corresponding changesets (!!) * Keep track of what gets changed |
<<Include(Linux_5.0)>> |
Changes done in each Linux kernel release. Other places to get news about the Linux kernel are LWN kernel status, H-Online, or the Linux Kernel mailing list (there is a web interface in www.lkml.org). List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules!
You can discuss the latest Linux kernel changes on the New Linux Kernel Features Forum.
Linux 5.0 has been released on Sun, 3 Mar 2019.
Summary: This release includes support for energy-aware scheduling which wakes up tasks to the more energy-efficient CPUs in phones; it also includes adiantum file system encryption for low power devices; it adds support in the amdgpu driver for AMD Freesync (variable refresh rate); it adds support for Receive Offload and MSG_ZEROCOPY support in UDP; it adds support for ARM pointer authentication; it adds support for the cpuset resource controller (which can constraint the CPU and memory node placement of tasks) in cgroupv2; it adds support for namespacing support for binderfs, which lets to run multiple instances of android; it adds support for swap files in btrfs; and it also adds many new drivers and other improvements.
Contents
-
Coolest features
- New version 5.0
- Energy-aware Scheduling for Arm big.LITTLE
- Adiantum file system encryption for low power devices
- Support for AMDGPU FreeSync
- UDP Generic Receive Offload and MSG_ZEROCOPY support
- Support cpuset resource controller in cgroupv2
- Btrfs swap file support
- binderfs, a binder filesystem to run multiple instances of Android
- ARM pointer authentication
- Core (various)
- File systems
- Memory management
- Block layer
- Tracing, perf and BPF
- Virtualization
- Cryptography
- Security
- Networking
- Architectures
-
Drivers
- Graphics
- Storage
- Drivers in the Staging area
- Networking
- Audio
- Tablets, touch screens, keyboards, mouses
- TV tuners, webcams, video capturers
- Universal Serial Bus
- 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)
- Multi Media Card (MMC)
- Memory Technology Devices (MTD)
- Industrial I/O (iio)
- Inter-Integrated Circuit (I2C)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- Leds
- DMA engines
- Cryptography hardware acceleration
- PCI
- Clock
- Various
- List of merges
- Other news sites
1. Coolest features
1.1. New version 5.0
This release increases the major version number to 5. This change does not mean anything and does not affect programs in any way, it just makes Linus happy.
1.2. Energy-aware Scheduling for Arm big.LITTLE
This release includes the energy-aware scheduling feature, which lets the task scheduler to take scheduling decisions that will result in lower power usage on asymmetric SMP platforms - such as waking up tasks to the more energy-efficient CPUs first. This feature is important to achieve better power management in phones using Arm's big.LITTLE CPUs. This feature is a simplified version of the energy-aware scheduling that is currently part of the AOSP Common Kernel.
Recommended LWN article: Energy-aware scheduling on asymmetric systems
Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
1.3. Adiantum file system encryption for low power devices
This release adds support for the Adiantum encryption. Note that this encryption mode is not added to ecryptfs but to fscrypt, the kernel funcionality which filesystems (currently ext4, f2fs and ubifs) can hook into to support transparent encryption of files and directories.
Adiantum was developed to provide filesystem encryption for low-end Android devices that lack AES instructions. On ARM Cortex-A7, on 4096-byte messages Adiantum encryption is about 4 times faster than AES-256-XTS encryption; decryption is about 5 times faster. See the google security blog or the Adiantum paper for more details.
Recommended LWN article: Adiantum: encryption for the low end
1.4. Support for AMDGPU FreeSync
This release adds support for FreeSync, an adaptive synchronization technology for LCDs that support a dynamic refresh rate, aimed at providing a low monitor latency and a smooth, virtually stutter-free viewing experience. It also helps improve battery life by reducing the refresh rate of the panel when not receiving new images.
Variable refresh rate capable displays can dynamically adjust their refresh rate by extending the duration of their vertical front porch until page flip or timeout occurs. This can reduce or remove stuttering and latency in scenarios where the page flip does not align with the vblank interval. An example scenario would be an application flipping at a constant rate of 48Hz on a 60Hz display. The page flip will frequently miss the vblank interval and the same contents will be displayed twice. This can be observed as stuttering for content with motion. If variable refresh rate was active on a display that supported a variable refresh range from 35Hz to 60Hz no stuttering would be observable for the example scenario.
Code: commit, DRM API commit, commit, commit, commit, commit
1.5. UDP Generic Receive Offload and MSG_ZEROCOPY support
This release adds support of GRO (Generic Receive Offload) in the UDP implementation. A new sockopt (UDP_GRO) has been added to enable GRO support. Future enachements will enable UDP GSO offload on more virtual devices eventually even on forwarded packets.
This release also expands MSG_ZEROCOPY support for UDP. Recommended LWN article: Zero-copy networking
Code: GRO commit, commit, commit, commit, commit, commit, commit, commit, commit, msg_zerocopy commit, commit, commit
1.6. Support cpuset resource controller in cgroupv2
The cpuset controller provides a mechanism for constraining the CPU and memory node placement of tasks to only the resources specified in the cpuset interface files in a task's current cgroup. This is especially valuable on large NUMA systems where placing jobs on properly sized subsets of the systems with careful processor and memory placement to reduce cross-node memory access and contention can improve overall system performance.
This release enables cpuset controller in cgroup v2, with a minimal set of features.
Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
1.7. Btrfs swap file support
Btrfs removed support for swap files a decade ago. However, now the proper restrictions are in place, Btrfs can support swap files. The swap file must be fully allocated as "nocow" with no compression on one device.
Code: commit
1.8. binderfs, a binder filesystem to run multiple instances of Android
This release includes binderfs, a pseudo-filesystem for the Android Binder IPC driver. Each ipc namespace will mount a new binderfs instance. It is backwards compatible, and it allows to run multiple of Android. Each binderfs mount initially only contains a binder-control device. It can be used to dynamically allocate new binder IPC devices via ioctls.
Code: commit
1.9. ARM pointer authentication
The ARMv8.3 Pointer Authentication extension adds primitives that can be used to mitigate certain classes of attack where an attacker can corrupt the contents of some memory (e.g. the stack). The extension uses a Pointer Authentication Code (PAC) to determine whether pointers have been modified unexpectedly. A PAC is derived from a pointer, another value (such as the stack pointer), and a secret key held in system registers.
The extension adds instructions to insert a valid PAC into a pointer, and to verify/remove the PAC from a pointer. The PAC occupies a number of high-order bits of the pointer, which varies dependent on the configured virtual address size and whether pointer tagging is in use. A subset of these instructions have been allocated from the HINT encoding space. In the absence of the extension (or when disabled), these instructions behave as NOPs. Applications and libraries using these instructions operate correctly regardless of the presence of the extension.
For more details see the documentation: Documentation/arm64/pointer-authentication.txt
Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
2. Core (various)
(FEATURED) task scheduler: Introduces Energy Aware Scheduling for CFS tasks on platforms with asymmetric CPU topologies (e.g. Arm big.LITTLE) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
fanotify: Currently, the fanotify API does not provide a means for user space applications to receive events when a file has been opened specifically for execution. New event masks FAN_OPEN_EXEC and FAN_OPEN_EXEC_PERM have been introduced in this release for this purpose commit, commit, commit, commit
(FEATURED) Enable cpuset controller in default hierarchy commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
(FEATURED) binder: implement binderfs, a pseudo-filesystem for the Android Binder IPC driver which can be mounted per-ipc namespace allowing to run multiple instances of Android. Each binderfs mount initially only contains a binder-control device. It can be used to dynamically allocate new binder IPC devices via ioctls commit
cgroup: Add named hierarchy disabling to cgroup_no_v1 boot param commit
(FEATURED) fscrypt: add support for the Adiantum encryption mode. Adiantum is a tweakable, length-preserving encryption mode with security provably reducible to that of XChaCha12 and AES-256, subject to a security bound. It's also a true wide-block mode, unlike XTS commit
epoll: some miscellaneous optimizations commit, commit, commit, commit, commit, commit, commit
file locks: avoid thundering-herd wake-ups commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Conclude the main part of the system call rework for 64-bit time_t for the year-2034 problem. Recommended LWN article: Approaching the kernel year-2038 end game. merge
Spread IRQs to all available NUMA nodes commit
Build: add -Werror=implicit-int commit and -Werror=strict-prototypes flags unconditionally commit
sysctl: add panic_print sysctl to configure which information to print at panic time commit
scripts: add a tool to produce a compile_commands.json file commit
tools: Add 'firmware' category and add ihex2fw tool commit
rcutorture: Add initrd support for systems lacking dracut commit, remove cbflood facility commit
3. File systems
- BTRFS
- CIFS
A DFS cache so that DFS links can be resolved even when hosts are down, and DFS failover so that if the DFS target we are connected to is down cifs will try to reconnect to a different target if there are any commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Use a compound for setting an xattr commit
Add smb3.1.1 to default dialect list commit
- F2FS
Add an ioctl() to explicitly trigger fsck later commit
- AUTOFS
Add strictexpire mount option commit
4. Memory management
Add a new software tag-based mode to KASAN. The plan is to implement HWASan for the kernel with the incentive, that it's going to have comparable to KASAN performance, but in the same time consume much less memory, trading that off for somewhat imprecise bug detection and being supported only for arm64 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
Fragmentation avoidance improvements, reducing fragmentation events by over 90%, resulting in better transparent hugepage (THP) usage commit, commit, commit, commit
Speed up mremap(2) by 20x on large regions by copying page tables at the PMD level even for non-THP systems, for now on x86 commit, commit, commit
kmemleak: add config to select auto scan commit
Change mincore() to count "mapped" pages rather than "cached" pages commit This was later reverted and different solution is in the works for 5.1+ commit More on LWN Defending against page-cache attacks and Fixing page-cache side channels, second attempt
Kernel Samepage Merging (KSM): replace jhash2 with xxhash, which is about 5 times faster in the 64bit version commit, commit
Transparent Huge Pages: provide a consistent API to query the THP status both for each VMA and process wide as well commit, commit, commit
Improved reporting of memory offlining failures commit commit commit commit commit commit
Mark devm_memremap_pages() hmm_devmem_{add, add_resource} EXPORT_SYMBOL_GPL with implications for out-of-tree non-GPL HMM (Heterogeneous Memory Management) drivers commit commit commit commit commit commit commit More on LWN Heterogeneous memory management meets EXPORT_SYMBOL_GPL()
Improve Out Of Memory (OOM) reports, include victim's memcg commit commit
Fix a long-standing issue where waiting for a page to migrate will effectively disrupt the migration, resulting in e.g. memory offline failures for busy pages such as those containing shared libraries commit
zram improvements, including the ability to mark a zram slot as idle, which is cleared once there is IO for the slot, which can help estimate wasted memory, and perform writeback that will free it. Also introduce writeback limits, see the respective commits for details. commit commit commit commit commit commit commit commit
THP eligibility reporting in /proc/pid/smaps and /proc/pid/status that allows precisely determining for each process and mapping if THP is disabled due to madvise(MADV_NOHUGEPAGE) or prctl(PR_SET_THP_DISABLE) commit commit, commit
page-alloc: reduce zone->lock contention commit
5. Block layer
Add support for multiple queue maps for blk-mq. Since blk-mq was introduced, it's only support a single queue map. This means you can have 1 set of queues, and the mapping purely depends on what CPU an IO originated from. With this patch set, drivers can implement mappings that depend on both CPU and request type - and they can have multiple sets of mappings. NVMe is used as a proof of concept commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Remove all the non-mq code. Remaining drivers have been converted 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
Export hctx->type in debugfs instead of sysfs commit
Export blk-wbt's internal states via debugfs commit
Give a interface to adjust io timeout by device commit
drbd: introduce P_ZEROES (REQ_OP_WRITE_ZEROES on the "wire") commit
raid6: add option to skip algo benchmarking commit
null_blk: Add conventional zone configuration for zoned support commit
zram idle page writeback. On zram-swap usecase, zram has usually many idle/huge swap pages. It's pointless to keep in memory(ie, zram). To solve the problem, this feature introduces idle/huge page writeback to backing device so the goal is to save more memory space on embedded system commit, commit, commit, commit, commit, commit, commit
6. Tracing, perf and BPF
- BPF
Support raw tracepoints in modules commit
Add perf-based event notification for sock_ops. The eBPF kernel module can thus be designed to apply any desired filters to the bpf_sock_ops and trigger a perf-event notification based on the verdict from the filter. The uspace component can use these perf-event notifications to either read any state managed by the eBPF kernel module, or issue a TCP_INFO netlink call if desired commit, commit
Add support for mapinmap in libbpf, a helper for libbpf which would allow it to load map-in-map(BPF_MAP_TYPE_ARRAY_OF_MAPS and BPF_MAP_TYPE_HASH_OF_MAPS) commit, commit
Introduce bpf_line_info. It will be useful for introspection purpose commit, commit, commit, commit, commit, commit
Add func info support to the kernel so we can get better ksym's for bpf function calls. Basically, function call types are passed to kernel and the kernel extract function names from these types in order to contruct ksym for these functions commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add BPF_F_ANY_ALIGNMENT , an "any alignment" flags to tell the verifier to forcefully disable it's alignment checks completely. It's needed by SPARC commit
Support socket lookup in CGROUP_SOCK_ADDR progs commit
Support of BPF_ALU | BPF_ARSH commit, commit, commit, commit, commit, commit, commit
Add skb->tstamp r/w access from tc clsact and cg skb progs commit
sockmap, metadata support for reporting size of msg commit
Allow BPF read access to qdisc pkt_len commit
- bpftool
Add loadall command commit
Add pinmaps argument to the load/loadall commit
Support loading flow dissector commit
Add a command to dump the trace pipe commit
Add an option to prevent auto-mount of bpffs, tracefs commit
Add owner_prog_type and owner_jited to bpftool output commit
Add BPF_MAP_TYPE_QUEUE and BPF_MAP_TYPE_STACK to bpftool-map commit
- perf
Reduce data loss when profiling highly parallel CPU bound workloads commit, commit, commit
annotate: Compute average IPC and IPC coverage per symbol commit
annotate: Introduce basic support for ARC to be able to use anotation via stdio interface commit
bench: Add epoll parallel epoll_wait benchmark commit
bench: Add epoll_ctl(2) benchmark commit
cs-etm: Add configuration for ETMv3 trace protocol commit
cs-etm: Add support for ETMv3 trace decoding commit
cs-etm: Add support for PTMv1.1 decoding commit
cs-etm: Support for ARM A32/T32 instruction sets in CoreSight trace commit
report: Display average IPC and IPC coverage per symbol commit, commit
Add Hygon Dhyana support commit
Support 'srccode' output commit
top: Allow passing a kallsyms file commit
trace: Allow asking for not suppressing common string prefixes commit
trace: Allow configuring default for perf_event_attr.inherit commit
trace: Allow configuring if the syscall duration should be printed commit
trace: Allow configuring if the syscall start timestamp should be printed commit
trace: Allow configuring if zeroed syscall args should be printed commit
trace: Allow selecting use the use of the ordered_events code commit
trace: Allow specifying a set of events to add in perfconfig commit
trace: Allow suppressing the syscall argument names commit
Add JSON metrics for Cascadelake server commit
Unify dynamic event interface on ftrace. Currently ftrace has 3 dynamic event interfaces, kprobes, uprobes and synthetic. This series unifies those dynamic event interfaces to "dynamic_events" so that we can add other dynamic events easily on same interface, e.g. function events. The older interfaces are left on the tracefs for backward compatibility commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add tracefs file buffer_percentage that allows users to specify how much of the buffer (percentage of pages) need to be filled before waking up a task blocked on a per cpu trace_pipe_raw file commit
7. Virtualization
virtio-net: ethtool configurable LRO commit
kvm: introduce manual dirty log reprotect commit
um: Add support for DISCARD in the UBD Driver commit
vfio_pci: Add NVIDIA GV100GL [Tesla V100 SXM2] subdriver commit
virtio_blk: add discard and write zeroes support commit
- virtio-gpu
Implement packed ring support in virtio driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
8. Cryptography
Support incremental algorithm dumps commit
(FEATURED) adiantum: add Adiantum support commit
chacha: add XChaCha12 support commit
chacha20-generic: add XChaCha20 support commit
9. Security
Add seccomp trap to userspace. It introduces a means for syscalls matched in seccomp to notify some other task that a particular filter has been triggered. The motivation for this is primarily for use with containers. For example, if a container does an init_module(), we obviously don't want to load this untrusted code, which may be compiled for the wrong version of the kernel anyway. Instead, we could parse the module image, figure out which module the container is trying to load and load it on the host. As another example, containers cannot mknod(), since this checks capable(CAP_SYS_ADMIN). However, harmless devices like /dev/null or /dev/zero should be ok for containers to mknod, but we'd like to avoid hard coding some whitelist in the kernel. Another example is mount(), which has many security restrictions for good reason, but configuration or runtime knowledge could potentially be used to relax these restrictions. Recommended LWN article: Deferring seccomp decisions to user space. commit, commit, commit, commit
Add platform/firmware keys support for kernel verification by IMA commit, commit, commit, commit, commit, commit, commit
selinux: always allow mounting submounts commit
tpm2: add new tpm2 commands according to TCG 1.36 commit
10. Networking
- UDP
(FEATURED) Enable MSG_ZEROCOPY for udp sockets commit, commit, commit
(FEATURED) UDP: Generic Receive Offload support commit, commit, commit, commit, commit, commit, commit, commit, commit
Introduces ICMP error handling for UDP tunnels and encapsulations commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- TCP
Improve xfrm policy lookup performance when a lot of (several hundred or even thousands) inexact policies exist on a system commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
VRF: allow simultaneous service instances in default and other VRFs. It provides this isolation for stream sockets subject to the existing kernel parameter net.ipv4.tcp_l3mdev_accept not being set, given that this is documented as allowing a single service instance to work across all VRF domains. Similarly, net.ipv4.udp_l3mdev_accept is checked for datagram sockets, and net.ipv4.raw_l3mdev_accept is introduced for raw sockets. The functionality applies to UDP & TCP services as well as those using raw sockets, and is for IPv4 and IPv6 commit, commit, commit, commit, commit, commit, commit, commit, commit
namespaces: ease the interpretation of nsid received in netlink messages from other netns (when the user uses NETLINK_F_LISTEN_ALL_NSID) commit, commit, commit, commit
neighbor: Add protocol attribute to neighbor entries for easier tracking of how each was created commit
devlink: Add 'fw_load_policy' generic parameter which gives the ability to control this option which allows the user to choose between different loading policies supported by the driver commit
- bridge
Add a new bridge option which can control learning from link-local packets, by default learning is on to be consistent and avoid breaking users expectations. If the new no_linklocal_learn option is enabled then the bridge will stop learning from link-local packets commit, commit, commit
Add support for bridge fdb get similar to route get commit, commit, commit, commit
sched: gred: introduce per-virtual queue attributes commit, commit, commit, commit, commit, commit, commit, commit
vxlan: Add VRF support for VXLAN underlay commit, commit, commit, commit
vlan: add support for tunnel offload commit
- netfilter
- Wireless
Add support to notify radar event info received from STA commit
Let userspace learn about iftype changes by sending a notification when handling the NL80211_CMD_SET_INTERFACE command commit
Announce radios/interfaces when switching namespaces, so userspace can rely on these events to discover radios properly commit
Add a new "peer measurement" API, that can be used to measure certain things related to a peer. Right now, only implement FTM (flight time measurement) over it, but the idea is that it'll be extensible to also support measuring the necessary things to calculate e.g. angle-of-arrival for WiGig commit, commit
mac80211_hwsim: allow configurable cipher types commit, allow setting iftype support commit
mesh: advertise gates in mesh formation commit, commit, commit
rtnetlink wifi simulation device commit
sctp: add subscribe per asoc and sockopt SCTP_EVENT (rfc6525#section-6.2) commit, commit, commit, commit
- NC-SI (Network Controller Sideband Interface)
- Infiniband
11. Architectures
11.1. ARM
New SoCs
Qualcomm QCS404 (4x Cortex-A53), it has two EVBs, EVB-1000 and EVB-4000 commit, commit
Allwinner T3 (rebranded R40) and f1c100s (armv5) commit, commit
NXP/Freescale i.MX7ULP (1x Cortex-A7 + 1x Cortex-M4, graphics, etc) + i.MX7ULP EVK board commit, commit, commit
NXP LS1028A (2x Cortex-A72), LX2160A (16x Cortex-A72) + NXP LX2160AQDS and LX2160ARDB boards commit, commit, commit, commit
i.MX8 (NXP, 4x Cortex-A53 + Cortex-M4, 4K video playback offload). This is the first i.MX 64-bit SoC and i.MX8M EVK board commit, commit, commit
RDA Micro RDA8810PL (Cortex-A5 w/ integrated Vivante GPU, 256MB RAM, Wifi). Include DTs for two boards with this SoC, OrangePi 2G and OrangePi i96 commit, commit, commit, commit
- New platforms
Rockchip: Gru Scarlet (RK3188 Tablet) commit
Amlogic: Phicomm N1 (S905D), Libretech S805-AC commit, commit
Broadcom: Linksys EA6500 v2 Wi-Fi router (BCM4708) commit
PXA: First PXA3xx DT board: Raumfeld commit
Aspeed: Facebook Backpack-CMM BMC commit
Allwinner t3-cqa3t-bv3 (T3/R40) and Lichee Pi Nano (F1C100s) commit, commit
Marvell Macchiatobin Single Shot (Armada 8040, no 10GbE) commit
i.MX: mtrion emCON-MX6, imx6ul-pico-pi, imx7d-sdb-reva commit, commit, commit
VF610: Liebherr's BK4 device, ZII SCU4 AIB board commit, commit
i.MX7D PICO Hobbit baseboard commit
rockchip: add BQ Edison 2 QC devicetree commit
ls1012a: Add FRWY-LS1012A board support commit
Qualcomm: Remove of Arrow SD600 commit
(FEATURED) Add support for the ARMv8.3 pointer authentication extension, enabling userspace return address protection with GCC 7 and above commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for speculation barrier instruction As part of the fallout from specdown and meltre, Armv8.5 introduces an architected Speculation Barrier (SB) instruction. Unlike CSDB, this is not retrofitted to existing CPUs, so we need to plumb in an HWCAP and make use of the alternatives framework to patch it over our current DSB; ISB sequence on CPUs that support it commit, commit, commit
Add support for 52-bit userspace VAs to systems that have ARMv8.2-LVA and are running with a 48-bit VA_BITS and a 64KB page size. If no hardware support is present, the kernel runs with a 48-bit VA space for userspace. Userspace can exploit this feature by providing an address hint to mmap where addr[51:48] != 0. Otherwise all the VA mappings will behave in the same way as a 48-bit VA system (this is to maintain compatibility with software that assumes the maximum VA size on arm64 is 48-bit) commit, commit, commit, commit, commit, commit, commit,
Add support for per-task stack canaries. See blog post commit
Apply r/o permissions of VM areas also to their linear aliases commit
- crypto
- arm64
Add kaslr support commit
Add kernel signature verification support commit
Enable KEXEC_FILE config commit
Add memory hotplug support commit
Enable per-task stack canaries commit
perf: Add support for Armv8.1 PMCEID register format commit
crypto: add NEON accelerated XOR implementation commit
crypto: add XChaCha12 support commit
crypto: add XChaCha20 support commit
crypto: add NEON-accelerated NHPoly1305 commit
11.2. X86
Add WBNOINVD feature definition commit
resctrl: adds support for AMD64 architectural extensions for Platform Quality of Service. These extensions are intended to provide for the monitoring of the usage of certain system resources by one or more processors and for the separate allocation and enforcement of limits on the use of certain system resources by one or more processors commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
speculation: Add support for STIBP always-on preferred mode commit
amd_nb: Add PCI device IDs for family 17h, model 30h commit
- platform
KVM/Hyper-v: Add HV ept tlb range flush hypercall support in KVM commit, commit, commit, commit, commit, commit, commit, commit
KVM/hyper-v: Implement KVM_GET_SUPPORTED_HV_CPUID commit, commit, commit, commit, commit, commit
KVM: Add CPUID support for new instruction WBNOINVD commit
- crypto
Add Processor Trace enabling in KVM guests. Intel Processor Trace is an extension of Intel Architecture that captures information about software execution using dedicated hardware facilities that cause only minimal performance perturbation to the software being traced commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
11.3. CSKY
Add perf support for C-SKY commit
CPU-hotplug supported for SMP commit
Basic ftrace supported commit
ftrace call graph supported commit
stacktrace supported commit
11.4. MIPS
Enable Undefined Behavior Sanitizer UBSAN commit
Enable dead code elimination commit
Loongson: Add Loongson-3A R2.1 basic support commit
Enable IOREMAP_PROT config option for MIPS cpus (allows the users of ptrace to access memory mapped by the ptraced process using the same cache coherency attributes as the original process) commit
11.5. NDS32
Power management support commit
* Hardware prefetcher support commit
11.6. POWERPC
perf: Wire up PMI throttling commit
8xx: Enable 512k hugepage support with HW assistance commit
8xx: Enable 8M hugepage support with HW assistance commit
Implement Spectre variant 2 workarounds for NXP PowerPC Book3E processors commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Implement CONFIG_DEBUG_VIRTUAL commit
11.7. XTENSA
Implement jump_label support commit
Implement syscall tracepoints commit
Implement tracehook functions and enable HAVE_ARCH_TRACEHOOK commit
Support memtest commit
11.8. RISCV
Add audit support commit
11.9. ARC
- perf
- fixes
Allow disabling auto regfile save on interrupts commit
Relinquish mmap_sem if early exit due to signal arriving during handle_mm_fault() commit
prevent PREFETCHW from "bleeding" past end of buffer (causing stray dirty cache line writebacks) in memset commit, memcpy commit
Reclaim 256M of reserved memory on HSDK commit
Avoid tripping lockdep detector in show_regs()commit, commit
Ensure slab allocations are 8 byte aligned (vs. 4) to handle any embedded atomic64_t commit
12. Drivers
12.1. Graphics
(FEATURED) A DRM API for adaptive sync and variable refresh rate support. Adaptive sync is part of the DisplayPort specification and allows for graphics adapters to drive displays with varying frame timings. Variable refresh rate (VRR) is essentially the same, but defined for HDMI commit, commit, commit, commit, commit
VESA has developed an industry standard Display Stream Compression (DSC) for interoperable, visually lossless compression over display links to address the needs for higher resolution displays. This patch series enables DSC on Gen 10 eDP and Gen 11 eDP/DP panels. This implementation is based on VESA DP 1.4 and DSC specifications commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add fourcc for Mali linear tiled formats commit
Add a new plane property to send damage during plane update commit
Add an hx8367d tinydrm driver commit
Introduced new XYUV scan-in format for framebuffer commit
fbdev: add config option to center the bootup logo commit
- vgem
render node support commit
- Intel
Add new Amber Lake PCI ID commit
Add plane alpha blending support commit
Expose planar format support on gen11 commit
Add AVI infoframe support for LSPCON commit
Add CRTC output format YCBCR 4:2:0 commit, YCBCR 4:4:4 commit
Add YCBCR 4:2:0/4:4:4 support for LSPCON commit
Show actual alongside requested frequency in debugfs/i915_rps_boost_info commit
- amdgpu
(FEATURED) Add support for Freesync 2 HDR and Content to Display Mapping commit
ABM support in DC commit
KFD support for vega12/polaris12 commit
DCC scanout on GFX9 commit
Updated SMU firmware for GFX8 chips commit
XGMI PSP + hive reset support commit
- Powerplay updates for newer Polaris
Cursor plane update fast path commit
kfd dma-buf support commit
Add new VegaM pci id commit
Add DC feature mask module parameter commit
Add support for doorbell BOs. This allows user mode to map doorbell pages into GPUVM address space. That way GPUs can submit to user mode queues (self-dispatch) commit
- panels
- bochs
Add edid support commit
- synopsys
add dual-dsi support commit
- vmwgfx
- nouveau
- msm
- tegra
- exynos
- rcar-du
- rockchip
- vc4
- v3d
- mali-dp
Add support for linear tiled formats commit
- sun4i
- meson
12.2. Storage
NVMe over Fabrics TCP host and the target drivers. Now NVMe over Fabrics can run on every Ethernet port in the world. The implementation conforms to NVMe over Fabrics 1.1 specification (which will include already publicly available NVMe/TCP transport binding, TP 8000) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
nvme: implement Enhanced Command Retry commit
nvme: support traffic based keep-alive commit
nvmet: support for traffic based keep-alive commit
- scsi
hisi_sas: Add support for DIF feature for v2 hw commit
lpfc: add Trunking support commit
megaraid_sas: Add support for FW snap dump commit
qedi: add module param to set ping packet size commit
smartpqi: add ofa support commit
smartpqi: add smp_utils support commit
smartpqi: add support for huawei controllers commit
smartpqi: add sysfs attributes commit
target: add device vendor_id configfs attribute commit
target: add emulate_pr backstore attr to toggle PR support commit
target: drop unused pi_prot_format attribute storage commit
ufs: Add UFS platform driver for Cadence UFS commit
12.3. Drivers in the Staging area
media: add Rockchip VPU JPEG encoder driver commit
Add support for the Intel IPU3 (Image Processing Unit) ImgU which is essentially a modern memory-to-memory ISP. It implements raw Bayer to YUV image format conversion as well as a large number of other pixel processing algorithms for improving the image quality commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Remove the mt29f_spinand driver commit
android: ion: Add per-heap counters commit
iio:ad2s90: Move out of staging commit
rtl8188eu: Add device code for D-Link DWA-121 rev B1 commit
12.4. Networking
- Bluetooth
Add USR vendor id and use it in r8169 and w6692 driver commit
RDMA/hns: implement the SRQ(Share Receive Queue) feature commit, commit, commit, commit
Infiniband: Add support for immediate data to the SRP drivers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- ath10k
- bnx2x
- bnxt_en
- brcmfmac
- can
cxgb4: Add new T6 PCI device ids 0x608a commit
- dpaa2-eth
e1000e: extend PTP gettime function to read system clock commit
- iwlwifi
ixgbe: allow IPsec Tx offload in VEPA mode commit
ixgbevf: add support for software timestamps commit
- mlxsw
spectrum: Expose discard counters via ethtool commit
Add Multicast routing support for Spectrum-2 commit
spectrum_acl: Add Bloom filter support to reduce the number of lookups in the algorithmic TCAM (A-TCAM) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Prepare for VLAN-aware bridge w/VxLAN commit, commit, commit, commit, commit
Add VxLAN support with VLAN-aware bridges commit, commit, commit, commit, commit, commit, commit, commit
Add VxLAN learning support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- mt76x0
mwifiex: add NL80211_STA_INFO_RX_BITRATE support commit
hinic:add rx checksum offload for HiNIC commit
- mlx5
Adds the support of mlx5 Multi Packet WQE (TX descriptor) - ConnectX-5 and above - for XDP TX, which allows to overcome the 70Mpps PCIe bottleneck of conventional TX queues (single TX descriptor per packet), and achieve the 100Mpps milestone with the MPWQE approach commit, commit, commit, commit, commit, commit, commit, commit, commit
Core generic EQ API for RDMA ODP commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add the support for mlx5 VF LAG, which provdies load-balancing and high-availability capabilities for VFs associated with different physical ports of the same Connect-X card commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add the support for mlx5 gre offloads commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Support for tunnels over VLAN tc offloads commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Enrich DEVX support in few aspects: it enables interoperability between DEVX and verbs and improves mechanism for controlling privileged DEVX commands commit, commit, commit, commit, commit, commit, commit
Add packet based credit mode, an alternative end-to-end credit mode for QPs set during their creation. Credits are transported from the responder to the requester to optimize the use of its receive resources. In packet-based credit mode, credits are issued on a per packet basis commit, commit, commit
Implementation of IBTA CapabilityMask2 commit, commit, commit, commit, commit, commit
Use extended destination feature for single/multidestination scenarios that have a single encap destination commit, commit, commit
Add support for mlx5 uplink representors commit, commit, commit, commit, commit, commit, commit, commit, commit
Increase VF representors' SQ size to 128 commit
Monitor counters commands support commit
ethtool, Support user configuration for RX hash fields commit
Attach a DEVX counter via raw flow creation commit
Add support for PCIe power slot exceeded error in PME commit
Add support for plugged-disabled cable status in PME commit
fsl_ucc_hdlc: add BQL support commit
- aquantia
dsa: mv88e6xxx: Add support for SERDES on ports 2-8 for 6390X commit
- hns3
Add complete reset support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Additions/optimizations related to HNS3 H/W err handling commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Provide some reset interfaces for RAS & RoCE commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Adds support of debugfs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add support for ethtool -K to enable/disable HW GRO commit
Adds support to dump(using ethool-d) PCIe regs in HNS3 PF driver commit
Enable HW GRO for Rev B(=0x21) HNS3 hardware commit
Support "ethtool -d" for HNS3 VF driver commit
phy: Add support for resolving 5G and 2.5G autoneg commit
phy: bcm7xxx: Add entry for BCM7255 commit
aqc111: Add support for Aquantia AQtion USB to 5/2.5GbE devices commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- nfp
- octeontx2-af
NPC MCAM support and FLR handling commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
NIX and NPC enhancements commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, * octeontx2-af: Enable mkex profile commit
qed*: Doorbell overflow recovery commit, commit, commit, commit, commit, commit, commit
qede: Add a statistic for a case where driver drops tx packet due to memory allocation failure commit
qtnfmac: add support for Topaz chipsets commit
r8169: Add support for new Realtek Ethernet commit
stmmac: dwmac-mediatek: add support for mt2712 commit
tg3: extend PTP gettime function to read system clock commit
12.5. Audio
fireface: add support for Fireface 800 with MIDI functionality only commit
fireface: add support for packet streaming on Fireface 800 commit
fireface: add support for second optical interface for ADAT stream commit
firewire-tascam: add new hwdep ioctl command to get state image commit
hda: Add jack button support commit
hda: Support led audio trigger commit
hda: hdmi - Add Tegra186 and Tegra194 support commit
hda: realtek - Support Dell headset mode for New AIO platform commit
hda: add support for Huawei WMI micmute LED commit
- ASoC
Add AMD ACP3x support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Intel: hdac_hdmi: add Icelake support commit
Intel: kbl_rt5660: Add a new machine driver for kbl with rt5660 commit
ak4118: Add support for AK4118 S/PDIF transceiver commit
audio-graph-card: merge audio-graph-scu-card commit
dmic: introduce module_param wakeup_delay commit
meson: add axg spdif input commit
meson: axg-toddr: add support for spdifin backend commit
pxa: remove raumfeld machine driver commit
qdsp6: q6afe-dai: add support to Display port RX dais commit
qdsp6: q6asm-dai: Add support to compress offload commit
qdsp6: q6asm: add support to MP3 format commit
rsnd: add SSIU BUSIF support commit
rsnd: add TDM Split mode support commit
rt5660: Add a new ACPI match ID commit
rt5663: Add regulator support commit
sdm845: Add support for Secondary MI2S interface commit
simple-card: merge simple-scu-card commit
simple-scu-card: add dai-link support commit
12.6. Tablets, touch screens, keyboards, mouses
- Input
Enable High Resolution Wheel Scrolling on some or many Microsoft mice of the last decade and Logitech mice with the required feature support. It is exposed for userspace as REL_WHEEL_HI_RES and REL_HWHEEL_HI_RES commit, commit, commit, commit, commit, commit, commit, commit
Add official Raspberry Pi's touchscreen driver commit
elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G commit
xpad: add support for SteelSeries Stratus Duo commit
elantech: enable 3rd button support on Fujitsu CELSIUS H780 commit
Add ACPI ID for touchpad in Lenovo V330-15ISK commit
- HID
12.7. TV tuners, webcams, video capturers
add SECO cec driver commit
cec: add debug_phys_addr module option commit
imx214: Add imx214 camera sensor driver commit
mt9m111: add support to select formats and fps for {Q,SXGA} commit
mt9m111: support log_status ioctl and event interface commit
ov2640: support log_status ioctl and event interface commit
ov5640: Add 60 fps support commit
ov7670: support log_status ioctl and event interface commit
ov772x: support log_status ioctl and event interface commit
platform: Add Aspeed Video Engine driver commit
rc: add driver for Xbox DVD Movie Playback Kit commit
rtl28xxu: add support for Sony CXD2837ER slave demod commit
seco-cec: add Consumer-IR support commit
sun6i: Add A31 compatible commit
sun6i: Add support for Allwinner CSI V3s commit
usb: dvb-usb: remove old friio driver commit
uvcvideo: Add support for the CNF4 format commit
v4l: ioctl: Allow drivers to fill in the format description commit
venus: add support for key frame commit
vicodec: Add support for 4 planes formats commit
vicodec: Add support of greyscale format commit
video-i2c: support changing frame interval commit
12.8. Universal Serial Bus
serial: mos7840: add a product ID for the new product commit
serial: option: add Fibocom NL678 series commit
serial: pl2303: add ids for Hewlett-Packard HP POS pole displays commit
serial: pl2303: add new PID to support PL2303TB commit
chipidea: imx: add HSIC support commit
dwc3: debugfs: Dump internal LSP and ep registers commit
dwc3: drd: Add support for DR detection through extcon commit
renesas_usbhs: add support for RZ/G2E commit
12.9. Serial Peripheral Interface (SPI)
Add MXIC controller driver commit
Add QuadSPI driver for Atmel SAMA5D2 commit
add support for octal mode I/O data transfer commit
lpspi: Add slave mode support commit
npcm: add NPCM PSPI controller driver commit
12.10. Watchdog
12.11. Serial
serial: lantiq: Add CCF support commit
serial: sccnxp: Allow to use non-standard baud rates commit
tty/serial: Add RISC-V SBI earlycon support commit
tty: serial: Add RDA8810PL UART driver commit
12.12. ACPI, EFI, cpufreq, thermal, Power Management
Add security support for nvdimm based on Intel DSM spec v1.8. The passphrase is protected by encrypted-key and managed through the kernel key management framework. The security features supported are security state show, passphrase enable/update, passphrase disable, crypto erase, overwrite, and master passphrase enable/update and erase. Instead of allowing the security DSMs being issued via ioctl, the features are managed through a sysfs attribute that accept the relevant keyid for the encrypted-key(s) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
12.13. Real Time Clock (RTC)
abx80x: Implement RTC_VL_READ,CLR ioctls commit
Add i.MX system controller RTC support commit
pcf85363: Add support for NXP pcf85263 rtc commit
sun6i: Add support for all known pre-H6 variants commit
sun6i: Add support for different variants commit
12.14. Voltage, current regulators, power capping, power supply
- power
supply: Add Spreadtrum SC27XX fuel gauge unit driver commit
supply: add AC power supply driver for AXP813 commit
supply: bq24190_charger: add support for bq24192 variant commit
supply: bq24190_charger: add support for bq24196 variant commit
supply: sc2731_charger: Add charger status detection commit
supply: sc27xx: Add fuel gauge low voltage alarm commit
- regulator
12.15. Pin Controllers (pinctrl)
Add RZ/A2 pin and gpio controller commit
actions: Add Actions Semi S700 pinctrl driver commit
mediatek: Add initial pinctrl driver for MT6797 SoC commit
mediatek: add pinctrl support for MT7629 SoC commit
ocelot: add MSCC Jaguar2 support commit
sunxi: add support for suniv F1C100s (newer F-series SoCs) commit
12.16. Multi Media Card (MMC)
Add new Alcor Micro Cardreader SD/MMC driver commit
sdhci-of-esdhc: add hs400 mode support commit
sdhci_am654: Add Initial Support for AM654 SDHCI driver commit
12.17. Memory Technology Devices (MTD)
Add support for reading MTD devices via the nvmem API commit
maps: Get rid of the latch-addr-flash driver commit
spi-nor: Add Winbond w25q128jv support commit
spi-nor: Add support for IS25LP032/064 commit
spi-nor: Add support for is25lp016d commit
spi-nor: Add support for mx25u12835f commit
spinand: Add initial support for Toshiba TC58CVG2S0H commit
spinand: add support for GigaDevice GD5FxGQ4xA commit
spinand: winbond: Add support for W25N01GV commit
12.18. Industrial I/O (iio)
accel: kxcjk-1013: Add the "KXJ2109" ACPI HID commit
accel: kxcjk1013: Add KIOX0009 ACPI Hardware-ID commit
accel: kxcjk1013: Add KIOX010A ACPI Hardware-ID commit
adc128s052: add ACPI _HID AANT1280 commit
adc: Add ad7124 support commit
adc: exynos-adc: Add S5PV210 variant commit
adc: meson-saradc: add support for the chip's temperature sensor commit
imu: st_lsm6dsx: add hw FIFO support to i2c controller commit
imu: st_lsm6dsx: add i2c embedded controller support commit
light: Add support for vishay vcnl4035 commit
magnetometer: Add driver support for PNI RM3100 commit
magnetometer: ak8975: Add the "AKM9911" ACPI HID commit
magnetometer: st_magn: add LSM9DS1 support commit
potentiometer: Add driver for Microchip MCP41xxx/42xxx commit
potentiometer: tpl0102: add IIO_AVAIL_RANGE support commit
st-accel: add support for lis3de commit
adc:ad7949: Add AD7949 ADC driver family commit
dac:ad5686: Add AD5310R support commit
dac:ti-dac7311 Add driver for Texas Instrument DAC7311 commit
12.19. Inter-Integrated Circuit (I2C)
ismt: Add support for Intel Cedar Fork commit
12.20. Hardware monitoring (hwmon)
Adds a hwmon driver to support the OCC on POWER8 and POWER9 processors commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
k10temp: Add support for AMD family 17h, model 30h CPUs commit
k10temp: Add Hygon Dhyana support commit
lm75: Add STLM75 support commit
ntc_thermistor: add support for B57891S0103 from Epcos commit
12.21. General Purpose I/O (gpio)
12.22. Leds
trigger: Introduce audio mute LED trigger commit
12.23. DMA engines
mediatek: Add MediaTek Command-Queue DMA controller for MT6765 SoC commit
sh: Remove R-Mobile APE6 support commit
dmatest: Add support for multi channel testing commit
12.24. Cryptography hardware acceleration
caam/jr: add support for Chacha20 + Poly1305 commit
caam/qi2: add support for Chacha20 + Poly1305 commit
cavium/nitrox: Added AEAD cipher support commit
cavium/nitrox: Enabled Mailbox support commit
ccree: add support for CryptoCell 703 commit and CryptoCell 713 commit
12.25. PCI
switchtec: Add MRPC DMA mode support commit
imx: Add multi-pd support commit
amlogic: Add the Amlogic Meson PCIe controller driver commit
12.26. Clock
bd718x7: Initial support for ROHM bd71837/bd71847 PMIC clock commit
imx: Add clock driver for i.MX8MQ CCM commit, commit, commit, commit
imx: add imx7ulp clk support commit, commit, commit, commit, commit, commit, commit,
imx: add imx8qxp driver commit, commit, commit, commit, commit
meson: Add vid_pll divider driver commit
qcom: Add graphics clock controller driver for SDM845 commit
qcom: Add lpass clock controller driver for SDM845 commit
qcom: smd: Add support for QCS404 rpm clocks commit
qoriq: add more chips support commit
sunxi-ng: Add support for H6 DE3 clocks commit
rda: Add clock driver for RDA8810PL SoC commit
12.27. Various
EDAC, synopsys: Add ECC support for ZynqMP DDR controller commit
EDAC, synopsys: Add Error Injection support for ZynqMP DDR controller commit
Fonts: New Terminus large console font commit
HID: input: support Microsoft wireless radio control hotkey commit
ISDN: eicon: Remove driver commit
cpufreq: qcom-hw: Add support for QCOM cpufreq HW driver commit
cpuidle: Add cpuidle.governor= command line parameter commit
crypto: chacha20-generic - add HChaCha20 library function commit
drivers/perf: Add Cavium ThunderX2 SoC UNCORE PMU driver commit
drivers/perf: xgene: Add CPU hotplug support commit
drivers: base: Introducing software nodes to the firmware node framework commit
firmware: add Intel Stratix10 service layer driver commit
firmware: add remote status update client support commit
firmware: imx: add SCU power domain driver commit
fpga: add intel stratix10 soc fpga manager driver commit
hwspinlock: add STM32 hwspinlock device commit
i3c: Add core I3C infrastructure commit
i3c: master: Add driver for Cadence IP commit
i3c: master: Add driver for Synopsys DesignWare IP commit
iommu/vt-d: Add scalable mode support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
irqchip/irq-imx-gpcv2: Add support for i.MX8MQ commit
irqchip/sun4i: Add support for Allwinner ARMv5 F1C100s commit
irqchip: Add RDA8810PL interrupt driver commit
irqchip: Add driver for Cirrus Logic Madera codecs commit
irqchip: Add driver for imx-irqsteer controller commit
mailbox: tegra-hsp: Add support for shared mailboxes commit
memory: pl353: Add driver for arm pl353 static memory controller commit
memory: tegra: Introduce Tegra20 EMC driver commit
misc/pvpanic: add support to get pvpanic device info FDT commit
misc: cardreader: add new Alcor Micro Cardreader PCI driver commit
pcmcia: add MAX1600 library commit
phy: add driver for Freescale i.MX8MQ USB3 PHY commit
phy: cadence: Add driver for Sierra PHY commit
phy: sun4i-usb: add support for H6 USB2 PHY commit
phy: ti: introduce phy-gmii-sel driver commit
pinctrl: imx: add imx8qxp driver commit
ptp: add PTP_SYS_OFFSET_EXTENDED ioctl commit
soc/tegra: pmc: Add sysfs entries for reset info commit
soc: amlogic: Add Meson Clock Measure driver commit
soc: imx: gpcv2: add support for i.MX8MQ SoC commit
soc: mediatek: Add Mediatek CMDQ helper commit
i3c: Add sysfs ABI spec commit
thunderbolt: Export IOMMU based DMA protection support to userspace commit
ASoC: rsnd: Add r8a774c0 support commit
mei: me: add denverton innovation engine device IDs commit
13. List of merges