Size: 42880
Comment:
|
Size: 53679
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 119: | Line 119: |
= Tracing, perf and BPF = * Add {{{rtla(1)}}} tool, a meta-tool including a set of commands that aims to analyze the real-time properties of Linux. But instead of testing Linux as a black box, rtla leverages kernel tracing capabilities to provide precise information about the properties and root causes of unexpected results. In this release it presents an interface to the osnoise and timerlat tracers. In the future, it will also serve as home to the rtsl and other latency/noise tracers [[https://git.kernel.org/linus/79ce8f43ac5ac16d6d63729e858da42b0460d87b|commit]], [[https://git.kernel.org/linus/b1696371d865fa28bd20adb13d1820ef031f2ee2|commit]], [[https://git.kernel.org/linus/0605bf009f18d558758df9edef59698bf1389b28|commit]], [[https://git.kernel.org/linus/1eceb2fc2ca549a170d7ee7cd1fde2daeda646ac|commit]], [[https://git.kernel.org/linus/829a6c0b5698c7d51aa2bcd16963fcd9de295476|commit]], [[https://git.kernel.org/linus/a828cd18bc4ad72ff6d64c0dd23dc814a6741fed|commit]], [[https://git.kernel.org/linus/1eeb6328e8b3a917ba0be4965f272147dbd4cf55|commit]], [[https://git.kernel.org/linus/d40d48e1f1f25abe755521e33a67f5d2b8b9443c|commit]], [[https://git.kernel.org/linus/496082df01bb08a40f9207d918734cf908c5f107|commit]], [[https://git.kernel.org/linus/b1be48307de4ccb315036c58bb1363a93c27d188|commit]], [[https://git.kernel.org/linus/e7041c6b3c123ef2160ff7a948e458f8241e4e03|commit]], [[https://git.kernel.org/linus/29380d4055e524de918c76a861df17d14a4b7224|commit]], [[https://git.kernel.org/linus/df337d014b573fe567cd190753a4f5fa69281870|commit]], [[https://git.kernel.org/linus/5dce5904e3b9bc11d9635dd3458c7ff32caebb59|commit]] * tracing: '__rel_loc' relative dynamic array attribute support [[https://git.kernel.org/linus/05770dd0ad110854c7157d95700d7c89979cdb3e|commit]], [[https://git.kernel.org/linus/55de2c0b5610cba5a5a93c0788031133c457e689|commit]], [[https://git.kernel.org/linus/b466b13321648d3bd7bfceb9afcba5302b585cf8|commit]], [[https://git.kernel.org/linus/cd7729043b31b32b34daaa6775e255b76de7f976|commit]], [[https://git.kernel.org/linus/7c689c839734a23eda855e69a56ed4795533bf71|commit]] * BPF: Introduce composable bpf types [[https://git.kernel.org/linus/d639b9d13a39cf15639cbe6e8b2c43eb60148a73|commit]], [[https://git.kernel.org/linus/48946bd6a5d695c50b34546864b79c1f910a33c1|commit]], [[https://git.kernel.org/linus/3c4807322660d4290ac9062c034aed6b87243861|commit]], [[https://git.kernel.org/linus/c25b2ae136039ffa820c26138ed4a5e5f3ab3841|commit]], [[https://git.kernel.org/linus/20b2aff4bc15bda809f994761d5719827d66c0b4|commit]], [[https://git.kernel.org/linus/cf9f2f8d62eca810afbd1ee6cc0800202b000e57|commit]], [[https://git.kernel.org/linus/34d3a78c681e8e7844b43d1a2f4671a04249c821|commit]], [[https://git.kernel.org/linus/216e3cd2f28dbbf1fe86848e0e29e6693b9f0a20|commit]], [[https://git.kernel.org/linus/9497c458c10b049438ef6e6ddda898edbc3ec6a8|commit]] * BPF CO-RE (COmpile once - Run Everywhere) support [[https://git.kernel.org/linus/74753e1462e77349525daf9eb60ea21ed92d3a97|commit]], [[https://git.kernel.org/linus/8293eb995f349aed28006792cad4cb48091919dd|commit]], [[https://git.kernel.org/linus/29db4bea1d10b73749d7992c1fc9ac13499e8871|commit]], [[https://git.kernel.org/linus/46334a0cd21bed70d6f1ddef1464f75a0ebe1774|commit]], [[https://git.kernel.org/linus/fbd94c7afcf99c9f3b1ba1168657ecc428eb2c8d|commit]], [[https://git.kernel.org/linus/c5a2d43e998a821701029f23e25b62f9188e93ff|commit]], [[https://git.kernel.org/linus/03d5b99138dd8c7bfb838396acb180bd515ebf06|commit]], [[https://git.kernel.org/linus/1e89106da25390826608ad6ac0edfb7c9952eff3|commit]], [[https://git.kernel.org/linus/d0e928876e30b18411b80fd2445424bc00e95745|commit]], [[https://git.kernel.org/linus/be05c94476f3cf4fdc29feab4ed1053187323296|commit]], [[https://git.kernel.org/linus/19250f5fc0c283892a61f3abf9d65e6325f63897|commit]], [[https://git.kernel.org/linus/bc5f75da977b2a4d9aa6827081e6c2ddd3347328|commit]], [[https://git.kernel.org/linus/d82fa9b708d7d8a9c275d86c4388d24ecc63206c|commit]], [[https://git.kernel.org/linus/650c9dbd101ba7d7180f4e77deb1c273f4ea5ca3|commit]], [[https://git.kernel.org/linus/26b367e3663931f2fee5f0786a1eff712e67b0bf|commit]], [[https://git.kernel.org/linus/3268f0316af629474ec4fa8d9b4e6f618cb96794|commit]], [[https://git.kernel.org/linus/098dc5335a2083223c80d058ab4d23f6ce120b97|commit]] * perf evlist: Allow setting arbitrary leader [[https://git.kernel.org/linus/ecdcf630d71f3b4c64097cad0add561cd5010c02|commit]], [[https://git.kernel.org/linus/94dbfd6781a0e87b6faa6012810eb22e7d5b8a70|commit]] * tracing: Add {{{ustring operation}}} to filtering string pointers [[https://git.kernel.org/linus/f37c3bbc635994eda203a6da4ba0f9d05165a8d6|commit]] * BPF: adds unstable conntrack lookup helpers using BPF kfunc support * BPF: Sleepable local storage [[https://git.kernel.org/linus/0fe4b381a59ebc53522fce579b281a67a9e1bee6|commit]] * bpf: Add helpers to access traced function arguments [[https://git.kernel.org/linus/bb6728d756112596881a5fdf2040544031905840|commit]], [[https://git.kernel.org/linus/2b070c2bc885977ca8fe76ba8f6b9d73d8d20e39|commit]], [[https://git.kernel.org/linus/5edf6a1983b90371da888ca86493937ec1c8a2b5|commit]], [[https://git.kernel.org/linus/f92c1e183604c20ce00eb889315fdaa8f2d9e509|commit]], [[https://git.kernel.org/linus/006004b715569f742535f70f3f06b41d8135486c|commit]] * BPF: Support BTF_KIND_TYPE_TAG for btf_type_tag attributes. The main motivation for btf_type_tag is to bring kernel annotations __user, __rcu etc. to btf. With such information available in btf, bpf verifier can detect mis-usages and reject the program. For example, for __user tagged pointer, developers can then use proper helper like bpf_probe_read_kernel() etc. to read the data [[https://git.kernel.org/linus/8c42d2fa4eeab6c37a0b1b1aa7a2715248ef4f34|commit]], [[https://git.kernel.org/linus/2dc1e488e5cdfd937554ca81fd46ad874d244b3f|commit]], [[https://git.kernel.org/linus/3da5ba6f0509ace03cad38b554c89797129e90be|commit]], [[https://git.kernel.org/linus/0dc85872203bf7b15c56c7eb228b8f3fabb17ac2|commit]], [[https://git.kernel.org/linus/6aa5dabc9d0ef722905e4ca4f9751d70cf3ec8a4|commit]], [[https://git.kernel.org/linus/846f4826d18e660ab668eb26e83c6adf0ceb24d2|commit]], [[https://git.kernel.org/linus/26c79fcbfa64b18ca1407a3be7ac3442aef51073|commit]], [[https://git.kernel.org/linus/5698a42a73a1d9cb7efd31ca1bf35daa87f5e1a9|commit]], [[https://git.kernel.org/linus/3f1d0dc0ba290aab357083a0abfe267c8cffdc8d|commit]], [[https://git.kernel.org/linus/d52f5c639dd8605d2563b77b190e278f615a2b8a|commit]] * BPF: Add bpf_loop helper. One of the complexities of using for loops in bpf programs is that the verifier needs to ensure that in every possibility of the loop logic, the loop will always terminate. As such, there is a limit on how many iterations the loop can do. The bpf_loop helper moves the loop logic into the kernel and can thereby guarantee that the loop will always terminate. The bpf_loop helper simplifies a lot of the complexity the verifier needs to check, as well as removes the constraint on the number of loops able to be run [[https://git.kernel.org/linus/e6f2dd0f80674e9d5960337b3e9c2a242441b326|commit]], [[https://git.kernel.org/linus/4e5070b64b375a9c1f570893cfceeba108382bef|commit]], [[https://git.kernel.org/linus/f6e659b7f97c76d0471d12bf274ea2a097cf3c5c|commit]], [[https://git.kernel.org/linus/ec151037af4f56065d5b258af82f13dbbf279ebd|commit]] * perf: Support event alias in form foo-bar-baz [[https://git.kernel.org/linus/864bc8c905261f264c3ea357027cf555fe51c5a3|commit]], [[https://git.kernel.org/linus/34fa67e72085201ea94b5332eae316951331958f|commit]], [[https://git.kernel.org/linus/b4a7276c5e9a79c238a2fad4fb9498dd3558ad2e|commit]] * perf stat: Support {{{--cputype}}} option for hybrid events [[https://git.kernel.org/linus/e69dc84282fb474cb87097c6c945d8f90e05a4d9|commit]] * perf ftrace: Implement function latency histogram [[https://git.kernel.org/linus/416e15ad17f84358ba3eca6b82378be97c793c62|commit]], [[https://git.kernel.org/linus/a9b8ae8ae347941fefd6596f62586b13ae032e4b|commit]], [[https://git.kernel.org/linus/53be50282269b46c678ae5a9f54acf7416a10dbb|commit]], [[https://git.kernel.org/linus/177f4eac7fb7fe5c70fef30dd6c4ef8f81cf7776|commit]], [[https://git.kernel.org/linus/9c5c605219578b8167b649245e00d6407f2c18da|commit]] * libbpf: Deprecate {{{bpf_prog_load_xattr()}}} API [[https://git.kernel.org/linus/74d9807023573ba2d82ec3f505f6aa0c7076918c|commit]], [[https://git.kernel.org/linus/dbdd2c7f8cec2d09ae0e1bd707ae6050fa1c105f|commit]], [[https://git.kernel.org/linus/a15d408b839af421fba0a2ff6df193c13ef753d4|commit]], [[https://git.kernel.org/linus/045b233a29a2ea3a168296f000cd5b1c08c4a2f7|commit]], [[https://git.kernel.org/linus/00872de6e1b004377f6036f95db43e2145606eb2|commit]], [[https://git.kernel.org/linus/186d1a86003ddcf0ec9e85e17ece868663106639|commit]], [[https://git.kernel.org/linus/527024f7aeb683ce7ef49b07ef7ce9ecf015288d|commit]], [[https://git.kernel.org/linus/c58f9815ba9735752d3735efb915e8878604684b|commit]], [[https://git.kernel.org/linus/c93faaaf2f67ba5396840316651cdc7640d9fa9e|commit]] * libbpf: Enhance and rework logging controls [[https://git.kernel.org/linus/4cf23a3c6359556a1cca489cf2b901e2b904c4b0|commit]], [[https://git.kernel.org/linus/0ed08d6725b5116aaad7a0082d721286e0a43dca|commit]], [[https://git.kernel.org/linus/1a190d1e8eb9ff84354e38f7482dc77b626f3cc9|commit]], [[https://git.kernel.org/linus/e0e3ea888c69b4ea17133b8ac8dfd5066a759b5a|commit]], [[https://git.kernel.org/linus/ad9a7f96445b70c415d8e193f854321b110c890a|commit]], [[https://git.kernel.org/linus/2eda2145ebfc76569fd088f46356203fc0c785a1|commit]], [[https://git.kernel.org/linus/b3ce907950350a58880b94fed2b6022f160b8b9a|commit]], [[https://git.kernel.org/linus/e7b924ca715f0d1c0be62b205c36c4076b335421|commit]], [[https://git.kernel.org/linus/dc94121b5ca17adaaabb7959c10d9c6ea504f7b1|commit]], [[https://git.kernel.org/linus/57e889269af3dd0609933e2550c4baee7a7eb84c|commit]], [[https://git.kernel.org/linus/3fc5fdcca144badbaf29b62aacbf7877f2f39a74|commit]], [[https://git.kernel.org/linus/b59e4ce8bcaab6445f4a0d37a96ca8953caaf5cf|commit]] * libbpf: Add runtime APIs to query libbpf version [[https://git.kernel.org/linus/7615209f42a1976894cd0df97a380a034911656a|commit]] * Revamp and fix libbpf's feature-probing APIs [[https://git.kernel.org/linus/878d8def0603eebf11e19903e7a8886b3e9728e4|commit]], [[https://git.kernel.org/linus/5a8ea82f9d25e88e502d1c3a1a9ba639f69a63c0|commit]], [[https://git.kernel.org/linus/e967a20a8fabc6442a78e2e2059e63a4bb6aed08|commit]] * libbpf: Use probe_name for legacy kprobe [[https://git.kernel.org/linus/71cff670baff5cc6a6eeb0181e2cc55579c5e1e0|commit]], [[https://git.kernel.org/linus/51a33c60f1c22c0d2dafad774315ba1537765442|commit]] |
Linux 5.17 changelog
Summary:
Contents
1. Prominent features
== ==
2. Core (various)
fscache, cachefiles: Rewrite, significantly simplifying the code compared to what's upstream, removing the complex operation scheduling and object state machine in favour of something much smaller and simpler commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, 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
devtmpfs: default mount with noexec and nosuid commit
fuse,virtiofs: support per-file DAX commit, commit, commit, commit, commit, commit, commit
irq: [PCI]MSI refactoring which aims to provide the ability of expanding MSI-X vectors after enabling MSI-X commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- RCU
Tasks updates commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
RCU no-CB CPUs updates, most notably the ability to offload CPUs that are in de-offloaded state at boot time commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Remove CONFIG_RCU_FAST_NO_HZ support commit, commit, commit, commit
- Task scheduler
- cgroup
signals: requeuing undeliverable signals commit, commit, commit
topology: only export used sysfs attributes commit, commit, commit
- io_uring
vfs: Extend the mapping infrastructure in order to support mapped mounts of mapped filesystems in the future commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
fanotify: Add FAN_RENAME event to report extra info records about new and old parent+name details. This new event was designed as a replacement for the "inotify way" of joining the MOVED_FROM/MOVED_TO events using a cookie commit, commit, commit, commit, commit, commit, commit, commit, commit
module: add in-kernel support for decompressing for security purposes commit
Build: introduce debug.config for CI-like setup commit
3. File systems
- BTRFS
Speedup directory logging/fsync by copying index keys only. This reduces the amount of logged metadata by about half, and therefore the time spent logging or fsyncing large directories commit, commit
Enable adding of a device when balance is paused (i.e an fs is mounted with skip_balance options) commit, commit, commit
Allow defrag to be interruptible commit
Make send work with concurrent block group relocation commit
btrfs: remove reada infrastructure commit
- CEPH
- CIFS
- XFS
- EXT4
- DLM
- EROFS
- F2FS
- FUSE
- KSMBD
- NFS
- UBIFS
Export filesystem error counters commit
4. Memory management
Batch of memory folio patches commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Segregate a struct slab from struct page commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Extend vmalloc support for constrained allocations commit, commit, commit, commit
Support for anonymous VMA naming. It adds a field to /proc/pid/maps and /proc/pid/smaps to show a userspace-provided name for anonymous vmas. The names of named anonymous vmas are shown as [anon:<name>]. Userspace can set the name for a region of memory by calling prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, start, len, (unsigned long)name); commit, commit, commit
- cgroup
kcsan: Support detecting a subset of missing memory barriers 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
- damon
Adds set_mempolicy_home_node syscall to set a home node for the MPOL_BIND and MPOL_PREFERRED_MANY memory policy. Users should use this syscall after setting up a memory policy for the specified range. The syscall allows specifying a home node/preferred node from which kernel will fulfill memory allocation requests first. This helps applications to hint at a memory allocation preference node and fallback to _only_ a set of nodes if the memory is not available on the preferred node. Fallback allocation is attempted from the node which is nearest to the preferred node commit, commit, commit
device-dax: Introduce compound pages in devmap in order to minimize 'struct page' overhead commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
sysctl: change watermark_scale_factor max limit to 30% commit
vmstat: add events for THP max_ptes_* commit
Introduce PAGE_TABLE_CHECK debug option to check user page table entries at the time they are added and removed, in order to catch memory corruption issues related to double mapping commit, commit, commit, commit
Migration: support multiple target nodes demotion commit
5. Block layer
Memory folio support in block + iomap layers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
md: drop queue limitation for RAID1 and RAID10 commit
Remove the rsxx driver commit
6. Tracing, perf and BPF
Add rtla(1) tool, a meta-tool including a set of commands that aims to analyze the real-time properties of Linux. But instead of testing Linux as a black box, rtla leverages kernel tracing capabilities to provide precise information about the properties and root causes of unexpected results. In this release it presents an interface to the osnoise and timerlat tracers. In the future, it will also serve as home to the rtsl and other latency/noise tracers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
tracing: 'rel_loc' relative dynamic array attribute support commit, commit, commit, commit, commit
BPF: Introduce composable bpf types commit, commit, commit, commit, commit, commit, commit, commit, commit
BPF CO-RE (COmpile once - Run Everywhere) support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
tracing: Add ustring operation to filtering string pointers commit
- BPF: adds unstable conntrack lookup helpers using BPF kfunc support
BPF: Sleepable local storage commit
bpf: Add helpers to access traced function arguments commit, commit, commit, commit, commit
BPF: Support BTF_KIND_TYPE_TAG for btf_type_tag attributes. The main motivation for btf_type_tag is to bring kernel annotations user, rcu etc. to btf. With such information
available in btf, bpf verifier can detect mis-usages and reject the program. For example, for user tagged pointer, developers can then use proper helper like bpf_probe_read_kernel() etc. to read the data commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
BPF: Add bpf_loop helper. One of the complexities of using for loops in bpf programs is that the verifier needs to ensure that in every possibility of the loop logic, the loop will always terminate. As such, there is a limit on how many iterations the loop can do. The bpf_loop helper moves the loop logic into the kernel and can thereby guarantee that the loop will always terminate. The bpf_loop helper simplifies a lot of the complexity the verifier needs to check, as well as removes the constraint on the number of loops able to be run commit, commit, commit, commit
perf: Support event alias in form foo-bar-baz commit, commit, commit
perf stat: Support --cputype option for hybrid events commit
perf ftrace: Implement function latency histogram commit, commit, commit, commit, commit
libbpf: Deprecate bpf_prog_load_xattr() API commit, commit, commit, commit, commit, commit, commit, commit, commit
libbpf: Enhance and rework logging controls commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
libbpf: Add runtime APIs to query libbpf version commit
Revamp and fix libbpf's feature-probing APIs commit, commit, commit