{"id":96477,"date":"2020-10-12T13:42:06","date_gmt":"2020-10-12T11:42:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-5-9"},"modified":"2020-10-12T13:42:06","modified_gmt":"2020-10-12T11:42:06","slug":"reliz-yadra-linux-5-9","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/reliz-yadra-linux-5-9","title":{"rendered":"Odyssey roadmap: what else do we want from the connection pooler. Andrey Borodin (2019)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>After two months of development, Linus Torvalds <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2020\/10\/11\/275\">presented<\/a><\/noindex> announced the release of the kernel <noindex><a rel=\"nofollow\" href=\"https:\/\/kernel.org\/\">Linux 5.9<\/a><\/noindex>Among the most notable changes are: a restriction on importing symbols from proprietary modules into GPL modules, acceleration of context-switching operations using the FSGSBASE processor instruction, support for kernel image compression via Zstd, a reworking of priority scheduling for threads in the kernel, support for the PRP (Parallel Redundancy Protocol), bandwidth-aware scheduling in the deadline scheduler, proactive memory page packing, the capability flag CAP_CHECKPOINT_RESTOR, the close_range() system call, improved performance for dm-crypt, removal of code for 32-bit Xen PV guest systems, a new slab memory management mechanism, the 'rescue' option in Btrfs, and support for inline encryption in ext4 and F2FS.<\/p>\n<p>The new version includes 16,074 fixes from 2,011 developers,<br \/>\nThe size of the patch is 62 MB (changes affected 14,548 files, with 782,155 lines of code added and 314,792 lines removed). About 45% of all changes presented in 5.9<br \/>\nare related to device drivers, approximately 15% of the changes pertain<br \/>\nto the update of architecture-specific code, 13%<br \/>\nconcerns the network stack, 3% relates to file systems and 3% to internal<br \/>\nkernel subsystems.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/kernelnewbies.org\/Linux_5.9\">Key<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/828385\/\">innovations<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> <b>Memory and system services<\/b>\n<ul>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53485\">The protection against the use of GPL wrappers to bind proprietary drivers to kernel components exported only for GPL-licensed modules has been tightened. The TAINT_PROPRIETARY_MODULE flag is now inherited in all modules that import symbols from modules with this flag. If a GPL module attempts to import symbols from a non-GPL module, that GPL module will inherit the TAINT_PROPRIETARY_MODULE label and will not be able to access kernel components available only to GPL-licensed modules, even if the module previously imported symbols from the 'gplonly' category. The reverse block (exporting only EXPORT_SYMBOL_GPL in modules that imported EXPORT_SYMBOL_GPL), which could disrupt the operation of proprietary drivers, is not implemented (only the proprietary module flag is inherited, but not GPL binding).<\/a><\/noindex> protection against the use of GPL wrappers to bind proprietary drivers with kernel components exported only for GPL-licensed modules. The TAINT_PROPRIETARY_MODULE flag is now inherited in all modules importing symbols from modules with this flag. If a GPL module attempts to import symbols from a non-GPL module, this GPL module will inherit the TAINT_PROPRIETARY_MODULE tag and will not be able to access kernel components available only for GPL-licensed modules, even if it previously imported symbols from the 'gplonly' category. The reverse blocking (exporting only EXPORT_SYMBOL_GPL in modules that imported EXPORT_SYMBOL_GPL), which could break proprietary drivers, is not implemented (only the proprietary module flag is inherited, but not the GPL binding).\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=facdaa917c4d5a376d09d25865f5a863f906234a\">Added<\/a><\/noindex> preemptive memory page packing. <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/817905\/\">preventive memory page packaging<\/a><\/noindex> in the background, allowing an increase in the number of large memory pages available to the core. Preliminary estimates suggest that background packing with minimal overhead can reduce delays in allocating large memory pages (huge-page) by 70-80 times compared to the previously used on-demand packing mechanism. To set limits on the external fragmentation that kcompactd will ensure, the sysctl vm.compaction_proactiveness has been added.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=48f7ddf785af24aa380f3282d8d4400883d0099e\">Added<\/a><\/noindex> support for kernel image compression using the algorithm <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=45058\">Zstandard<\/a><\/noindex> (zstd) algorithm has been added.\n<li class=\"l\"> Support for the processor instruction <noindex><a rel=\"nofollow\" href=\"https:\/\/software.intel.com\/security-software-guidance\/best-practices\/guidance-enabling-fsgsbase\">FSGSBASE<\/a><\/noindex>, allowing reading and modifying the contents of the FS\/GS registers from user space. In the kernel, FSGSBASE is used to accelerate context-switching operations by eliminating unnecessary MSR write operations for GSBASE, and in user space, it allows avoiding unnecessary system calls to modify FS\/GS.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=a7e1f67ed29f\">Added<\/a><\/noindex> the 'allow_writes' parameter, which allows for the prohibition of MSR register changes by user space and restricts access to the contents of those registers to read operations, as altering MSR could lead to issues. By default, writing is not yet prohibited, and altering MSR is logged, but in the future, access is planned to be switched to read-only mode by default.\n<li class=\"l\"> In the asynchronous input\/output interface <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50631#io_uring\">io_uring<\/a><\/noindex> full support for asynchronous buffered read operations has been added, which do not require kernel threads. Write support is expected in the next release.\n<li class=\"l\"> In the deadline I\/O scheduler <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=65065fd70b5a\">implemented<\/a><\/noindex> bandwidth-aware scheduling, <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/821578\/\">allowing<\/a><\/noindex> correct decisions to be made on asymmetric systems, such as ARM-based systems with  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.arm.com\/why-arm\/technologies\/dynamiq\">DynamIQ<\/a><\/noindex> and big.LITTLE architecture, combining powerful and less powerful energy-efficient CPU cores on the same chip. In particular, the new mode allows avoiding mismatches during scheduling when a slow CPU core lacks sufficient resources to complete a task on time.\n<li class=\"l\"> The energy consumption model in the kernel (Energy Model framework) now  <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/linus\/7b7570ad0d76\">describes<\/a><\/noindex> not only CPU power consumption behavior but also encompasses peripheral devices.\n<li class=\"l\"> The system call close_range() has been implemented, allowing a process to close a range of open file descriptors at once.\n<li class=\"l\"> From the implementation of the text console and the fbcon driver, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53714\">the code has been removed<\/a><\/noindex>, providing the ability for programmatic backward text scrolling (CONFIG_VGACON_SOFT_SCROLLBACK) beyond the volume of video memory in text mode VGA.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/818388\/\">Reworked<\/a><\/noindex> the algorithm for priority assignment for threads within the kernel. The new version ensures better consistency across all kernel subsystems when assigning priorities to real-time tasks.\n<li class=\"l\"> Added sysctl <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=1f73d1abe5836bd8ffe747ff5cb7561b17ce5bc6\">sched_uclamp_util_min_rt_default<\/a><\/noindex>  to manage CPU frequency forcing parameters for real-time tasks (for example, it allows dynamic changes in behavior when executing real-time tasks to save energy when switching to battery power or in mobile systems).\n<li class=\"l\"> Preparation has been conducted for the implementation of support for Transparent Huge Pages technology in the page cache.\n<li class=\"l\"> New flags FAN_REPORT_NAME and FAN_REPORT_DIR_FID have been implemented in the fanotify mechanism to transmit information about the parent name and unique identifier FID when events occur for creation, deletion, or movement of directory elements and objects not related to directories.\n<li class=\"l\"> For cgroups, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52790\">is implemented<\/a><\/noindex> a new slab memory controller, which is notable for transferring slab accounting from the memory page level to the kernel object level, enabling shared use of slab pages across different cgroups instead of allocating separate slab caches for each cgroup. The proposed approach improves the efficiency of slab usage, reduces the size of memory used for slab by 30-45%, significantly decreases the overall memory consumption by the kernel, and lowers memory fragmentation.\n<li class=\"l\"> In the sound subsystem, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53404\">ALSA,<\/a><\/noindex> and  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53508\">the USB stack,<\/a><\/noindex>in accordance with <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53342\">recently accepted<\/a><\/noindex> recommendations for using inclusive terminology in the Linux kernel, with the removal of politically incorrect terms. The code has been cleansed of the use of the words &#171;slave&#187;, &#171;master&#187;, &#171;blacklist&#187;, and &#171;whitelist&#187;.\n<\/ul>\n<li class=\"l\"> <b>Virtualization and Security<\/b>\n<ul>\n<li class=\"l\"> When building the kernel using the Clang compiler, <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/linus\/f0fe00d4972a\">a new feature has emerged<\/a><\/noindex> the ability to configure (CONFIG_INIT_STACK_ALL_ZERO) automatic initialization to zero of all variables stored in the stack (specified during compilation with &#171;-ftrivial-auto-var-init=zero&#187;).\n<li class=\"l\"> In the seccomp subsystem, when using the process control mode in user space, <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=c97aedc52dce4c87d4c44de4e6af941cd102600c\">has added<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=7cf97b12545503992020796c74bd84078eb39299\">of<\/a><\/noindex> Substitution in the monitored process of file descriptors to fully emulate system calls that lead to the creation of file descriptors. This functionality is in demand in isolated container systems and sandbox implementations for Chrome.\n<li class=\"l\"> Support for restricting system calls using the seccomp subsystem has been added for xtensa and csky architectures. Additional support for the auditing mechanism has been implemented for xtensa.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/linus\/74858abbb103\">Added<\/a><\/noindex> A new capability flag CAP_CHECKPOINT_RESTORE has been introduced, allowing access to features related to freezing and restoring process states without granting additional privileges.\n<li class=\"l\"> GCC 11 has implemented all the necessary features for<br \/>\nthe KCSAN (Kernel Concurrency Sanitizer) debugging tool, designed for dynamically detecting race conditions within the kernel. Thus, KCSAN can now be used with kernels built with GCC. <\/p>\n<li class=\"l\"> For AMD Zen and newer CPU models <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/linus\/dea286bb71baded7d2fb4f090e3b9fd2c1ccac58\">has added<\/a><\/noindex> support for the P2PDMA technology has been added, allowing DMA for direct data transfer between the memory of two devices connected to the PCI bus.\n<li class=\"l\"> In dm-crypt, a mode has been added that reduces latency by performing cryptographic data processing without using work queues. This mode is also necessary for proper operation with <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52092\">zoned<\/a><\/noindex> block devices (devices with zones that must be written sequentially, updating the entire group of blocks). Efforts have been made to increase throughput and reduce latency in dm-crypt.\n<li class=\"l\"> Code for supporting 32-bit guest systems running in paravirtualization mode under the Xen hypervisor has been removed. Users of such systems should switch to using 64-bit kernels in guest environments or use full (HVM) or hybrid (PVH) virtualization modes instead of paravirtualization (PV).\n<\/ul>\n<li class=\"l\"> <b>Disk subsystem, input\/output, and file systems<\/b>\n<ul>\n<li class=\"l\"> In the Btrfs file system, <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/linus\/74ef00185eb864252156022ff129b01549504175\">within<\/a><\/noindex> the &#171;rescue&#187; mount option, unifying access to all other recovery options. Support for the &#171;alloc_start&#187; and &#171;subvolrootid&#187; options has been removed, and the &#171;inode_cache&#187; option has been deprecated. Performance optimization has been implemented, especially improving the speed of fsync() operations. <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=137c541821a83debb63b3fa8abdd1cbc41bdf3a1\">Added<\/a><\/noindex> the ability to use alternative checksum types other than CRC32c.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=690b25675f5c9c082cb1b902e6d21dd956754e7e\">Added<\/a><\/noindex> the ability to use inline encryption in file systems ext4 and F2FS, which can be enabled with the &#171;inlinecrypt&#187; mount option. The inline encryption mode allows the use of mechanisms built into the storage controller to perform transparent encryption and decryption of input\/output.\n<li class=\"l\"> In XFS  <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=5631c5e0eb9035d92ceb20fcd9cdb7779a3f5cc7\">ensured<\/a><\/noindex>  inode flushing in fully asynchronous mode, not blocking processes during memory cleanup operations. A long-standing issue with quotas has been resolved, which incorrectly tracked warnings about exceeding soft limits and inode count restrictions. Unified support for DAX for ext4 and xfs has been implemented.\n<li class=\"l\"> In Ext4 <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=cfd73237722135807967f389bcbda558a60a30d6\">within<\/a><\/noindex> lazy loading of block allocation bitmaps. Combined with the limitation on scanning uninitialized groups, the optimization has reduced the mounting time of very large partitions.\n<li class=\"l\"> In F2FS <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/linus\/9af846486d781a63de025a5f502c515268e48790\">implemented<\/a><\/noindex> ioctl F2FS_IOC_SEC_TRIM_FILE, allowing the use of TRIM\/discard commands for physically zeroing out specified data in a file, such as removing access keys without leaving residual data on the storage.<br \/>\nIn F2FS, there is also <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/linus\/0e5e81114de1c4ac32e36f057256653a04f27a33\">implemented<\/a><\/noindex> a new garbage collection mode GC_URGENT_LOW, working more aggressively by skipping certain idle state checks before starting the garbage collector.<\/p>\n<li class=\"l\"> In bcache, the bucket_size for extents has been increased from 16 to 32 bits in preparation for enabling support for zoned device caching.\n<li class=\"l\"> In the SCSI subsystem, the capability of using inline encryption based on built-in hardware encryption provided by UFS controllers has been added (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/scsi\/ufs.txt\">Universal Flash Storage<\/a><\/noindex>).\n<li class=\"l\"> A new kernel command line parameter &#171;debugfs&#187; has been added, allowing management of the availability of the similarly named pseudo-FS.\n<li class=\"l\"> In the NFSv4.2 client, support for extended file attributes (xattr) has been ensured.\n<li class=\"l\"> In dm-dust <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=0c248ea27fc88cf8a3035ba0ed75b210be9abf80\">implemented<\/a><\/noindex> an interface for outputting a list of all detected bad blocks on the disk at once (&#171;dmsetup message dust1 0 listbadblocks&#187;).\n<li class=\"l\"> For md\/raid5, a parameter \/sys\/block\/md1\/md\/stripe_size has been added for configuring the STRIPE block size.\n<li class=\"l\"> For NVMe storage devices <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=240e6ee272c07a2636dfc7d65f5bbb18377c49e5\">has added<\/a><\/noindex> support for zoning commands for the storage device (ZNS, NVM Express Zoned Namespace), enabling the division of storage space into zones that comprise groups of blocks for better management of data placement on the storage.\n<\/ul>\n<li class=\"l\"> <b>Network subsystem<\/b>\n<ul>\n<li class=\"l\"> In Netfilter <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=f53b9b0bdc59c0823679f2e3214e0d538f5951b9\">has added<\/a><\/noindex> the ability to drop packets before route checking (the REJECT statement can now be used not only in INPUT, FORWARD, and OUTPUT chains but also at the PREROUTING stage for icmp and tcp).\n<li class=\"l\"> In nftables  <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/linus\/8e6cf365e1d5c70e275a77a3c5ad7e3dc685474c\">has added<\/a><\/noindex> the ability to audit events related to configuration changes.\n<li class=\"l\"> In nftables in the netlink API <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=74cccc3d38438b346e40a4f8133cff3f0839ff84\">has added<\/a><\/noindex> support for anonymous chains, the names of which are dynamically assigned by the kernel. When the rule associated with an anonymous chain is removed, the chain itself is automatically deleted.\n<li class=\"l\"> Support for iterators has been added to BPF for traversing, filtering, and modifying elements of associative arrays (maps) without copying data to user space. Iterators can be used for TCP and UDP sockets, allowing BPF programs to iterate over lists of open sockets and extract the necessary information from them.\n<li class=\"l\"> A new type of BPF program, BPF_PROG_TYPE_SK_LOOKUP, has been added, which runs when the kernel looks for a suitable listening socket for an incoming connection. Using such a BPF program, one can create handlers that decide which socket to associate with the connection, unrestricted by the bounds of the bind() system call. For instance, one can bind a single socket to a range of addresses or ports. Additionally, support for the SO_KEEPALIVE flag has been added in bpf_setsockopt(), and support for BPF_CGROUP_INET_SOCK_RELEASE handlers has been implemented, which are called when a socket is released.\n<li class=\"l\"> Support for the protocol <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Parallel_Redundancy_Protocol\">PRP<\/a><\/noindex> (Parallel Redundancy Protocol), which allows for transparent switching to a backup channel in case of failure of any network components based on Ethernet.\n<li class=\"l\"> In the mac80211 stack <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=f96622749a67d40ad5efe8a58d5fc95313097aa0\">has added<\/a><\/noindex> support for four-way WPA\/WPA2-PSK channel negotiation in access point mode.\n<li class=\"l\"> The ability to switch the qdisc (queuing discipline) scheduler to use the FQ-PIE (Flow Queue PIE) algorithm by default has been added, aimed at reducing the negative impact of intermediate packet buffering on border network devices (bufferbloat) in cable modem networks.\n<li class=\"l\"> New capabilities have been added to MPTCP (MultiPath TCP), a TCP protocol extension for managing TCP connections with packet delivery over multiple routes through different network interfaces associated with different IP addresses. Support for syn cookie, DATA_FIN, automatic buffer tuning, socket diagnostics, and the use of the REUSEADDR, REUSEPORT, and V6ONLY flags in setsockopt has been added.\n<li class=\"l\"> For virtual routing tables (VRF - Virtual Routing and Forwarding) that enable multiple routing domains to operate on a single system, a &#171;strict&#187; mode has been implemented. In this mode, a virtual table can be associated only with a routing table that is not used in other virtual tables.\n<li class=\"l\"> In the wireless driver ath11k <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=c5625abaf8266307d2237a75143b27be7afafcdf\">has added<\/a><\/noindex> support for the 6GHz frequency and <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=9d11b7bff9508101d05f06e461ab81b5f0dc90ae\">spectral scanning<\/a><\/noindex>.\n<\/ul>\n<li class=\"l\"> <b>Hardware<\/b>\n<ul>\n<li class=\"l\"> Support code for the UniCore architecture, developed at the microprocessor center of Peking University and included in the Linux kernel in 2011, has been removed. This architecture has been unsupported since 2014 and lacks support in GCC.\n<li class=\"l\"> Support for the RISC-V architecture has been implemented <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/html\/v4.17\/dev-tools\/kcov.html\">kcov<\/a><\/noindex> (debugfs interface for analyzing kernel code coverage), kmemleak (memory leak detection system), stack protection, jump labels, and tickless operations (signal-independent timer multitasking).\n<li class=\"l\"> Support for queues for spinlock has been implemented for the PowerPC architecture, significantly improving performance in lock conflict situations.\n<li class=\"l\"> For ARM and ARM64 architectures, the <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/cpu-freq\/governors.txt\">schedutil<\/a><\/noindex> (cpufreq governor) mechanism is enabled by default, which uses information directly from the scheduler to make decisions about frequency changes and can immediately interact with cpufreq drivers to dynamically adjust the frequency, swiftly tuning CPU parameters to current load conditions.\n<li class=\"l\"> In the DRM driver i915 for Intel graphics cards, support for chips based on the <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Rocket_Lake\">Rocket Lake<\/a><\/noindex> microarchitecture has been included, and initial support for discrete cards <noindex><a rel=\"nofollow\" href=\"https:\/\/www.theverge.com\/2020\/1\/9\/21058422\/intel-dg1-discrete-gpu-graphics-card-announcement-ces-2020\">Intel Xe DG1<\/a><\/noindex>.\n<li class=\"l\"> has been added in the amdgpu driver with initial support for AMD GPU <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/torvalds\/c\/206739119508d5ab4b42ab480ff61a7e6cd72d7c\">Navi 21<\/a><\/noindex> (Navy Flounder) and <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/torvalds\/c\/9555152beb1143c85c03f9b9de59863cbbe89f4b\">Navi 22<\/a><\/noindex> (Sienna Cichlid). Support for UVD\/VCE video encoding and decoding acceleration engines for Southern Islands GPUs (Radeon HD 7000) has been added.<br \/>\nA property has been added for rotating the display by 90, 180, or 270 degrees. <\/p>\n<p>Interestingly, the driver for AMD GPUs <noindex><a rel=\"nofollow\" href=\"https:\/\/www.phoronix.com\/scan.php?page=news_item&#038;px=Linux-5.9-AMDGPU-Stats\">is<\/a><\/noindex> the largest driver in the kernel \u2014 it contains about 2.71 million lines of code, which is approximately 10% of the total size of the kernel (27.81 million lines). Of this, 1.79 million lines correspond to automatically generated header files with data for GPU registers, while the C code comprises 366 thousand lines (for comparison, the Intel i915 driver includes 209 thousand lines, while Nouveau includes 149 thousand).<\/p>\n<li class=\"l\"> In the Nouveau driver <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=12885ecbfe62df4358d452080d3b8feef54ec8cb\">has added<\/a><\/noindex> support for frame-by-frame integrity checking using <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/NVIDIA\/open-gpu-doc\/blob\/master\/Display-CRC\/display-crc.txt\">CRC<\/a><\/noindex> (Cyclic Redundancy Checks) in the display engines of NVIDIA GPUs. The implementation is based on documentation provided by NVIDIA.\n<li class=\"l\"> Drivers for LCD panels have been added: Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33, and Xingbangda XBD599.\n<li class=\"l\"> In the ALSA sound subsystem, support for <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/tiwai\/sound.git\/commit\/?h=for-next&#038;id=951894cf30f417443d9e0eda33312613c2a7edf6\">Intel Silent Stream<\/a><\/noindex> (a mode for maintaining constant power for external HDMI devices to eliminate latency when playback starts) and  <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/tiwai\/sound.git\/commit\/?h=for-next&#038;id=c7440acc859778eed74b223fc41f094133aeaaf0\">a new device<\/a><\/noindex> for controlling the backlighting of the microphone activation and mute buttons has been implemented, as well as support for new hardware, including the controller <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/tiwai\/sound.git\/commit\/?h=for-next&#038;id=61eee4a7fc406f94e441778c3cecbbed30373c89\">Loongson 7A1000<\/a><\/noindex>.\n<li class=\"l\"> Support for ARM boards, devices, and platforms has been added: Pine64 PinePhone v1.2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630 (used in Sony Xperia 10, 10 Plus, XA2, XA2 Plus, and XA2 Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, five new boards based on NXP i.MX6, MikroTik RouterBoard 3011, Xiaomi Libra, Microsoft Lumia 950, Sony Xperia Z5, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine v3, Renesas RZ\/G2H.\n<\/ul>\n<\/ul>\n<p>At the same time, the Latin American Free Software Foundation <noindex><a rel=\"nofollow\" href=\"http:\/\/www.fsfla.org\/ikiwiki\/selibre\/linux-libre\/\">has formed<\/a><\/noindex><br \/>\nvariant <noindex><a rel=\"nofollow\" href=\"http:\/\/www.fsfla.org\/ikiwiki\/selibre\/linux-libre\/\">fully free kernel 5.9<\/a><\/noindex> \u2014 <noindex><a rel=\"nofollow\" href=\"http:\/\/linux-libre.fsfla.org\/pub\/linux-libre\/releases\/5.9-gnu\/\">Linux-libre 5.9-gnu<\/a><\/noindex>, cleaned of firmware and driver elements containing non-free components or code segments whose scope is limited by the manufacturer. In this release, blob loading has been disabled in the drivers for WiFi rtw8821c and MediaTek mt8183 SoC. The code for cleaning blobs in the drivers and subsystems Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw (Spectrum3), r8169 (rtl8125b-2), and x86 touchscreen has been updated.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53830\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.9. \u0421\u0440\u0435\u0434\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u0437 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 GPL-\u043c\u043e\u0434\u0443\u043b\u0438, \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 FSGSBASE, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0436\u0430\u0442\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0430 \u044f\u0434\u0440\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Zstd, \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432 \u044f\u0434\u0440\u0435, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 PRP (Parallel Redundancy Protocol), \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-96477","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/reliz-yadra-linux-5-9\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.9 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/reliz-yadra-linux-5-9\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-12T11:42:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-12T11:42:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Linux Kernel 5.9 Release | ProHoster","description":"After two months of development, Linus Torvalds announced the release of the Linux kernel.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/reliz-yadra-linux-5-9","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.9 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/reliz-yadra-linux-5-9","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-12T11:42:06+00:00","article:modified_time":"2020-10-12T11:42:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"96477","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:42:30","updated":"2022-10-03 19:48:34","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/96477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=96477"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/96477\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=96477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=96477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=96477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}