description: update 20211017

This commit is contained in:
Cheng Jian
2021-11-17 20:50:53 +08:00
parent 9cbe9172c7
commit 07e25bb10a
3 changed files with 62 additions and 5 deletions
+53
View File
@@ -1,3 +1,56 @@
# 4.19.91-25.rc1
-------
| TASK | COMMIT | DESCRIPTION |
|:----:|:------:|:-----------:|
| fix #35853724 | 381737f2a880 Intel: EDAC/i10nm: Retrieve and print retry_rd_err_log registers<br>38cb8c19f7c1 Intel: EDAC/i10nm: Fix NVDIMM detection<br> | NA |
| fix #35398311 | c947cb0a5f77 Intel: Fix backport issue for MCA recovery<br> | NA |
| fix #37134350 | 26c8e3a221e4 genirq/affinity: Remove const qualifier from node_to_cpumask argument<br>9e3ec8a680cb genirq/affinity: Spread vectors on node according to nr_cpu ratio<br>ccc8e52abf94 genirq/affinity: Improve __irq_build_affinity_masks()<br> | NA |
| to #35694563 | 224a71bf9573 virtio-mem: retry fake-offlining via alloc_contig_range() on ZONE_MOVABLE<br>299c51b990db virtio-mem: factor out handling of fake-offline pages in memory notifier<br>e0611398c1b0 virtio-mem: factor out fake-offlining into virtio_mem_fake_offline()<br> | NA |
| to #29682075 | f6bdc31ab338 anolis: mm: use __GFP_MEMALLOC in vmemmap_alloc_block<br> | NA |
| to #35694563 | 1e32c0ef5d7e virtio-mem: more precise calculation in virtio_mem_mb_state_prepare_next_mb()<br>b1ce2fe76d9f virtio-mem: don't special-case ZONE_MOVABLE<br> | NA |
| fix #36837630 | e211d288a948 anolis: mm, kidled: fix race when free idle age<br> | NA |
| fix #36834759 | 8defdd1135e2 anolis: mm, kidled: skip node which has none memory<br> | NA |
| to #36645663 | 07c80d75e5c8 ck: crypto: fix the sm4 avx/avx2 related configs error<br> | NA |
| fix #36584405 | 5dab673f0a89 ck: Revert "ck: sched: keep task's min runtime without group_identity"<br> | NA |
| to #30401861 | d236107a4cca ck: pidfd: fix missing syscall number under unistd.h<br>1473573c1405 ck: arm64: selecting ANON_INODES by default<br>94989c47e1c2 fork: return proper negative error code<br>41145ff4ceef pidfd: fix a poll race when setting exit_state<br>b6f862a0b042 tools headers UAPI: Sync linux/sched.h with the kernel<br>9984f9537f93 fork: don't check parent_tidptr with CLONE_PIDFD<br>1e15fe94312c copy_process(): don't use ksys_close() on cleanups<br>c29a0b31c2be pid: use pid_has_task() in pidfd_open()<br>863440d8ea73 pidfd: check pid has attached task in fdinfo<br>74144fab06ca pidfd: add NSpid entries to fdinfo<br>61e64d79bfd0 fork: fix pidfd_poll()'s return type<br>d049096508b2 fork: do not release lock that wasn't taken<br>005efef8ec66 ck: pidfd: add read support<br>20ffcc4750fc x86 & arm64: wire-up pidfd_open()<br>cab8d141ef75 pid: add pidfd_open()<br>e0240e4eebb7 pidfd: add polling support<br>1aa70b513373 clone: add CLONE_PIDFD<br> | NA |
| to #36549273 | 7ae705493254 configs: x86: enable CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 and CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64<br>7396a12cc6c6 crypto: x86/sm4 - add AES-NI/AVX2/x86_64 implementation<br>e97257f622f4 crypto: x86/sm4 - export reusable AESNI/AVX functions<br>30445725335c crypto: tcrypt - Fix missing return value check<br>836236b47a33 crypto: tcrypt - add the asynchronous speed test for SM4<br>e706c71859d4 crypto: x86/sm4 - add AES-NI/AVX/x86_64 implementation<br>6b76cd825d5e crypto: tcrypt - include 1420 byte blocks in aead and skcipher benchmarks<br>a0c4d4747dad crypto: tcrypt - add block size of 1472 to skcipher template<br>624566691cb0 crypto: testmgr - update sm4 test vectors<br> | NA |
| to #33971655 | c888605b8fbb x86/alternatives: Adapt assembly for PIE support<br>f182be20a170 x86/paravirt: Adapt assembly for PIE support<br>ec1120928bf3 x86/power/64: Adapt assembly for PIE support<br>8cdda25da739 x86/boot/64: Adapt assembly for PIE support<br>83da1d9b96d0 x86/acpi: Adapt assembly for PIE support<br>8de236716c29 x86/CPU: Adapt assembly for PIE support<br>b41d36d74f33 x86: pm-trace - Adapt assembly for PIE support<br>23b94fbb1a14 x86/entry/64: Adapt assembly for PIE support<br>eb4fe54b4e1b x86: relocate_kernel - Adapt assembly for PIE support<br>26b481608ce2 x86: Add macro to get symbol address for PIE support<br>9728560db7a2 x86/crypto: Adapt assembly for PIE support<br> | NA |
| fix #34359599 | 1d45c19e7f6b ck: sched: make ID_LOOSE_EXPEL defined with CONFIG_GROUP_IDENTITY on<br> | NA |
| to #36339403 | 67a739d8157a ck: sched: keep task's min runtime without group_identity<br> | NA |
| to #3642990 | 3da4093f342c ovl: show "userxattr" in the mount data<br>9441b835db45 ovl: do not fail because of O_NOATIME<br>8b2734fd05d5 ovl: fix unneeded call to ovl_change_flags()<br>e6bc60542703 ovl: check permission to open real file<br>471c4dfa2a36 ovl: fix out of bounds access warning in ovl_check_fb_len()<br>311697ed7d87 ovl: potential crash in ovl_fid_to_fh()<br>371ad222fee4 ovl: replace zero-length array with flexible-array member<br>0d55fc08a652 ovl: do not get metacopy for userxattr<br>ed15fc339b98 ovl: do not fail when setting origin xattr<br>eeed0825e845 ovl: user xattr<br>d483f6bc3321 ovl: rearrange ovl_can_list()<br>530127111a1d ovl: enumerate private xattrs<br>7dfe9cafbec1 ovl: pass ovl_fs down to functions accessing private xattrs<br>c9973790004d ovl: remove not used argument in ovl_check_origin<br>15c2d38fe18f ovl: ignore failure to copy up unknown xattrs<br>b397ec443f23 ovl: fix typo in MODULE_PARM_DESC<br>9c4860b4b405 ovl: simplify i_ino initialization<br>c767a266f9a3 ovl: fix out of date comment and unreachable code<br>8c50335363bc ovl: factor out helper ovl_get_root()<br>f45a4e1faf68 ovl: drop flags argument from ovl_do_setxattr()<br>9615abf9e96e ovl: adhere to the vfs_ vs. ovl_do_ conventions for xattrs<br>281bae3716df ovl: use ovl_do_getxattr() for private xattr<br>49d27b6f94ec ovl: make sure that real fid is 32bit aligned in memory<br>60ce93a051eb ovl: fold ovl_getxattr() into ovl_get_redirect_xattr()<br>e6eb72a22c91 ovl: clean up ovl_getxattr() in copy_up.c<br> | NA |
| to #36429909 | 4c386d33905b duplicate ovl_getxattr()<br> | NA |
| fix #35082431 | d01cefeaeb90 alinux: x86: Avoid nmi_enter() when INT3 in user mode<br> | NA |
| to #36202664 | 2393118f41af ck: scripts: sign-file - support the sm2-with-sm3 signature based on openssl version less than 3.x<br> | NA |
| fix #36105170 | ab35c15be7da blkcg: don't offline parent blkcg first<br>5159272cc47d blkcg: rename blkcg->cgwb_refcnt to ->online_pin and always use it<br> | NA |
| fix #35744872 | 439582136879 configs: enable CONFIG_FUSE_DAX<br> | NA |
| fix #35619302 | 3a5496d1b6b7 ck: mm: fix livelock caused by iterating multi order entry<br> | NA |
| fix #35744872 | a5c002cdf47f ck: Virtiofs: fix null pointer deference in directIO<br>f16d1a3f3ea5 virtiofs: add logic to free up a memory range<br>9f96a8a5fd8e virtiofs: maintain a list of busy elements<br>1ec9cae189a1 virtiofs: serialize truncate/punch_hole and dax fault path<br>2baf5259c7c4 virtiofs: define dax address space operations<br>ce9ed51dd691 virtiofs: add DAX mmap support<br>d308dd71691c virtiofs: implement dax read/write operations<br>496a702a66ac virtiofs: introduce setupmapping/removemapping commands<br>972e9dc1547d virtiofs: implement FUSE_INIT map_alignment field<br>502f15bc9251 virtiofs: keep a list of free dax memory ranges<br>5fae5e55565a virtiofs: add a mount option to enable dax<br>6f617d928b45 virtiofs: set up virtio_fs dax_device<br>2d12efc06709 virtiofs: provide a helper function for virtqueue initialization<br>2fabc3b78967 dax: Create a range version of dax_layout_busy_page()<br>7f6d6e9a67bc dax: Modify bdev_dax_pgoff() to handle NULL bdev<br>b2c4fdbfe436 virtio: Implement get_shm_region for MMIO transport<br>91564fc10cfe virtio: Implement get_shm_region for PCI transport<br>d78a6b697e5f virtio: Add get_shm_region method<br>bad129af9a09 dax: Pass dax_dev instead of bdev to dax_writeback_mapping_range()<br>d69b8a069fd1 fuse: multiplex cached/direct_io file operations<br> | NA |
| fix #36151764 | 0589f0763a6c io_uring: fix sq array offset calculation<br> | NA |
| to #36007933 | c877abb799e0 blk-iocost: ioc_pd_free() shouldn't assume irq disabled<br>12cb09bddd7d iocost: Fix check condition of iocg abs_vdebt<br> | NA |
| to #36117883 | ea190c4ff388 x86/microcode/AMD: Increase microcode PATCH_MAX_SIZE<br> | NA |
| fix #35866848 | abee86566234 x86,swiotlb: Adjust SWIOTLB bounce buffer size for SEV guests<br> | NA |
| fix #36019170 | 47941d0ccd0e rcu: Fix missed wakeup of exp_wq waiters<br>7265538f5586 rcu: Allow only one expedited GP to run concurrently with wakeups<br> | NA |
| fix #35930387 | 009499a9a1f1 alinux: proc/stat: Add the missing rcu unlock.<br> | NA |
| to #35989509 | 428bde530317 ck: pkcs7: make parser enable SM2 and SM3 algorithms combination<br> | NA |
| to #35303411 | 514c0671cefd crypto: sm2 - fix a memory leak in sm2<br> | NA |
| fix #35400096 | e98264e8e580 ck: cgroup: Fix possible migration exception in cgroup_migrate_execute()<br> | NA |
| fix #35728503 | 45dcc5fff8d1 alinux: cpuacct: fix cgroup usage overflow when sirq grows<br> | NA |
| to #35370297 | 9a763b1e936a alinux: Add a boot command line for rich container.<br>813e19373449 alinux: cpuacct: fix enumeration sequence error for sched sli latency<br>6f9a5a6da054 alinux: cpuinfo: Add cpuinfo support of cpu quota<br>c77196316181 alinux: make the rich container support k8s.<br>7d0cf98b61c6 alinux: sysctl: use config to set the default value of rich container<br>c35a862436cb alinux: configs: set default value of configs.<br>1c2f1fae971b alinux: configs: Add RICH_CONTAINER_CG_SWITCH and SCHEDSTATS_DEFAULT<br>602db1deb650 alinux: sched: Introduce load 1/5/15 for running tasks<br>914bbe8cf2ed alinux: sched/fair: Add sched_cfs_statistics to export some<br>5920bd2d39aa alinux: sched/fair: Add parent_wait_contrib statistics<br>1700df0e13dc alinux: Revert "sched/debug: Use task_pid_nr_ns in /proc/$pid/sched"<br>cdc9eb6fee09 alinux: sched: introduce asynchronous cgroup load calculation.<br>e47e4fe549b6 alinux: sched: Add SLI switch for cpuacct<br>510516052255 alinux: fs,quota: Restrict privileged hardlimit in rich container<br>578b6500b78e alinux: pidstat: Add task uptime support for rich container<br>b4e34e698e0e alinux: proc/uptime: Add uptime support for rich container<br>71e79a5621a2 alinux: proc/loadavg: Add load support for rich container<br>15cc61e847ec alinux: proc/stat: Add top support for rich<br>8432ec854a05 alinux: cpuset: fix frame size longer than 2048 in update_cpumasks_hier<br> | NA |
| fix #35812045 | 57cca8af6ecb alinux: blk-throttle: fix race bug that loses wakeup event<br> | NA |
| fix #35589883 | 54cc60582886 fuse: Protect ff->reserved_req via corresponding fi->lock<br>af7f039bec44 fuse: Protect fi->nlookup with fi->lock<br>6fb3647f546a fuse: Introduce fi->lock to protect write related fields<br>7d85b97f4533 fuse: Convert fc->attr_version into atomic64_t<br>c347648ccfed fuse: Add fuse_inode argument to fuse_prepare_release()<br>9c647d4bbfbe fuse: extract fuse_find_writeback() helper<br>fc7b132f6371 fuse: split out readdir.c<br> | NA |
| to #35398311 | 3a9d29efb831 mm,hwpoison: send SIGBUS with error virutal address<br>b35e2ae86b79 mm/hwpoison: do not lock page again when me_huge_page() successfully recovers<br>a41983f95b85 mm,hwpoison: return -EHWPOISON to denote that the page has already been poisoned<br>e5bdd6a15be7 mm/memory-failure: use a mutex to avoid memory_failure() races<br>9977876f007b x86/mce: Take action on UCNA/Deferred errors again<br>91773ff58d08 printk: Prepare for nested printk_nmi_enter()<br> | NA |
| fix #35757972 | 66d7fa0aa580 alinux: x86/perf: fix build error for Zhaoxin CPU<br> | NA |
| fix #35566063 | e03c9f8a3e76 fuse: do not take fc->lock in fuse_request_send_background()<br>2125a19af844 fuse: introduce fc->bg_lock<br>dfe7c6d812d6 fuse: add locking to max_background and congestion_threshold changes<br>09a7a625d070 fuse: use list_first_entry() in flush_bg_queue()<br> | NA |
| to #29433829 | 3493dece593b alinux: sched: introduce ID_EXPELLER_SHARE_CORE feature<br> | NA |
| to #33635513 | b93db24770e2 cpupower: Add cpuid cap flag for MSR_AMD_HWCR support<br>63c9b5bd508d cpupower: Remove family arg to decode_pstates()<br>d4425b6f9baa cpupower: Condense pstate enabled bit checks in decode_pstates()<br>bbf31a3af2a9 cpupower: Update family checks when decoding HW pstates<br>5fbaa8317bf0 cpupower: Remove unused pscur variable.<br>a878ab56119d cpupower: Add CPUPOWER_CAP_AMD_HW_PSTATE cpuid caps flag<br>f05c2351dd5e cpupower: Correct macro name for CPB caps flag<br>f1d445f9245d cpupower: Update msr_pstate union struct naming<br>030bdd166f3b cpupower: mperf_monitor: Update cpupower to use the RDPRU instruction<br>47272f8e4266 cpupower: mperf_monitor: Introduce per_cpu_schedule flag<br>4904bff8ae16 cpupower: Move needs_root variable into a sub-struct<br> | NA |
| fix #33526792 | c0c4265611d0 alinux: io_uring: fix a race of kthread park and wait for completion<br> | NA |
| to #33617702 | 40af84221636 alinux: io_uring: allow sqthread to inherit cpuacct from its creator<br> | NA |
| to #34231634 | 8753cd00b15d alinux: io_uring: lift nice value of sqthread<br> | NA |
| to #33526792 | 69dede69cc25 alinux: io_uring: rename sqthread's task name<br>085449597291 alinux: io_uring: submit sqes in the original context when waking up sqthread<br>42ba4cc0fa03 alinux: io_uring: add support for us granularity of io_sq_thread_idle<br>92502e7cb79e io_uring: check kthread parked flag before sqthread goes to sleep<br>0d3ffaf20317 io_uring: check sqring and iopoll_list before shedule<br> | NA |
| fix #35026402 | 6865037ec2e5 alinux: memcg: Restrict memcg zombie scan interval<br> | NA |
# ck-release-23...ck-release-24
-------
@@ -267,7 +267,7 @@ Linux 一开始是在一台i386上的机器开发的, i386 的硬件页表是2
| 2021/06/30 | "Matthew Wilcox (Oracle)" <willy@infradead.org> | [Folio conversion of memcg](https://lwn.net/Articles/1450196) | NA | v3 ☐ | [PatchWork v13b](https://patchwork.kernel.org/project/linux-mm/cover/20210712194551.91920-1-willy@infradead.org/) |
| 2021/07/19 | "Matthew Wilcox (Oracle)" <willy@infradead.org> | [Folio support in block + iomap layers](https://lwn.net/Articles/1450196) | NA | v15 ☐ | [PatchWork v15,00/17](https://patchwork.kernel.org/project/linux-mm/cover/20210712194551.91920-1-willy@infradead.org/) |
| 2021/07/15 | "Matthew Wilcox (Oracle)" <willy@infradead.org> | [Memory folios: Pagecache edition](https://patchwork.kernel.org/project/linux-mm/cover/20210715200030.899216-1-willy@infradead.org) | NA | v14c ☑ 5.16-rc1 | [PatchWork v14c,00/39](https://patchwork.kernel.org/project/linux-mm/cover/20210715200030.899216-1-willy@infradead.org) |
| 2021/11/10 | David Howells <dhowells@redhat.com> | [netfs, 9p, afs, ceph: Support folios, at least partially](https://patchwork.kernel.org/project/linux-mm/cover/163649323416.309189.4637503793406396694.stgit@warthog.procyon.org.uk) | NA | v5 | [PatchWork v4,0/5](https://patchwork.kernel.org/project/linux-mm/cover/163649323416.309189.4637503793406396694.stgit@warthog.procyon.org.uk)<br>*-*-*-*-*-*-*-* <br>[PatchWork v5,0/4](https://patchwork.kernel.org/project/linux-mm/cover/163657847613.834781.7923681076643317435.stgit@warthog.procyon.org.uk) |
| 2021/11/10 | David Howells <dhowells@redhat.com> | [netfs, 9p, afs, ceph: Support folios, at least partially](https://www.phoronix.com/scan.php?page=news_item&px=AFS-9p-NETFS-Folios-Linux-5.16) | NA | v5 ☑ 5.16-rc1 | [PatchWork v4,0/5](https://patchwork.kernel.org/project/linux-mm/cover/163649323416.309189.4637503793406396694.stgit@warthog.procyon.org.uk)<br>*-*-*-*-*-*-*-* <br>[PatchWork v5,0/4](https://patchwork.kernel.org/project/linux-mm/cover/163657847613.834781.7923681076643317435.stgit@warthog.procyon.org.uk)<br>*-*-*-*-*-*-*-* <br>[Merge tag](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0f7ddea6225b9b001966bc9665924f1f8b9ac535) |
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
@@ -1536,6 +1536,9 @@ active 头(热烈使用中) > active 尾 > inactive 头 > inactive 尾(被驱逐
Google 测试多代 LRU 为 Linux 带来更好的性能提升, 参见 [Google Proposes Multi-Generational LRU For Linux To Yield Much Better Performance](https://www.phoronix.com/scan.php?page=news_item&px=Linux-Multigen-LRU).
["MGLRU" Code Updated For More Performant Linux Page Reclamation](https://www.phoronix.com/scan.php?page=news_item&px=Multigen-LRU-v5)
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|:----:|:----:|:---:|:----:|:---------:|:----:|
| 2021/11/11 | Yu Zhao <yuzhao@google.com> | [Multigenerational LRU Framework(https://lwn.net/Articles/856931) | 将 LRU 的列表划分为多代老化. 通过 CONFIG_LRU_GEN 来控制. | v3 ☐ | [Patchwork v1,00/14](https://lore.kernel.org/patchwork/patch/1394674)<br>*-*-*-*-*-*-*-*<br>[PatchWork v2,00/16](https://lore.kernel.org/patchwork/cover/1412560)<br>*-*-*-*-*-*-*-*<br>[2021/05/20 PatchWork v3,00/14](https://patchwork.kernel.org/project/linux-mm/cover/20210520065355.2736558-1-yuzhao@google.com)<br>*-*-*-*-*-*-*-*<br>[2021/08/18 PatchWork v4,00/11](https://patchwork.kernel.org/project/linux-mm/cover/20210818063107.2696454-1-yuzhao@google.com)<br>*-*-*-*-*-*-*-*<br>[2021/11/11 PatchWork v5,00/10](https://patchwork.kernel.org/project/linux-mm/cover/20211111041510.402534-1-yuzhao@google.com) |
@@ -3344,9 +3347,9 @@ DAMON 利用两个核心机制 : **基于区域的采样**和**自适应区域
| 2021/10/19 | SeongJae Park <sjpark@amazon.com> | [Introduce DAMON-based Proactive Reclamation](https://lwn.net/Articles/863753) | 该补丁集改进了用于生产质量的通用数据访问模式内存管理的引擎, 并在其之上实现了主动回收. | v4 ☑ 5.16-rc1 | [PatchWork RFC,00/13](https://patchwork.kernel.org/project/linux-mm/cover/20210720131309.22073-1-sj38.park@gmail.com)<br>*-*-*-*-*-*-*-* <br>[PatchWork RFC,v2,00/14](https://patchwork.kernel.org/project/linux-mm/patch/20210608115254.11930-15-sj38.park@gmail.com)<br>*-*-*-*-*-*-*-* <br>[PatchWork RFC,v3,00/15](https://patchwork.kernel.org/project/linux-mm/cover/20210720131309.22073-1-sj38.park@gmail.com)<br>*-*-*-*-*-*-*-* <br>[PatchWork v4 00/15](https://patchwork.kernel.org/project/linux-mm/cover/20211019150731.16699-1-sj@kernel.org) |
| 2021/08/31 | SeongJae Park <sjpark@amazon.com>/<sj38.park@gmail.com>/<sjpark@amazon.de> | [mm/damon/vaddr: Safely walk page table](https://patchwork.kernel.org/project/linux-mm/patch/20210831161800.29419-1-sj38.park@gmail.com) | 提交 linux-mm 的 [3f49584b262c ("mm/damon: implement primitives for the virtual memory address spaces")](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3f49584b262c) 尝试使用 follow_invalidate_PTE() 查找任意虚拟地址的 PTE 或 PMD, 但没有正确锁定. 此提交通过在正确的锁定(保持 mmap 读取锁定)下使用另一个页面表遍历函数来解决此问题, 并使用了更通用的 walk_page_range(). | v1 ☐ | [PatchWork v2](https://patchwork.kernel.org/project/linux-mm/patch/20210831161800.29419-1-sj38.park@gmail.com) |
| 2021/09/17 | SeongJae Park <sjpark@amazon.com> | [mm, mm/damon: Trivial fixes](https://patchwork.kernel.org/project/linux-mm/cover/20210917123958.3819-1-sj@kernel.org) | DAMON 的 fix 补丁. | v1 ☐ | [PatchWork 0/5](https://patchwork.kernel.org/project/linux-mm/cover/20210917123958.3819-1-sj@kernel.org) |
| 2021/10/01 | SeongJae Park <sjpark@amazon.com> | [Implement Data Access Monitoring-based Memory Operation Schemes](https://patchwork.kernel.org/project/linux-mm/cover/20211001125604.29660-1-sj@kernel.org) | 实现了 DAMON 的基于数据访问监视的操作方案 (DAMOS).<br>DAMON 可以用作支持数据访问的内存管理优化的原语. 因此, 希望进行此类优化的用户应该运行 DAMON, 读取监视结果, 分析并优化内存管理方案.<br>然而, 在许多其他情况下, 用户只是希望系统对具有特定时间的特定访问频率的特定大小的内存区域应用内存管理操作. 例如, “page out a memory region than 100mib only rare visits more than 2 minutes”, 或者 “Do not use THP For a memory region than 2mib rarely visits more than 1 seconds”. 为了使工作更容易且不冗余, 这个补丁集实现了 DAMON 的一个新特性, 称为基于数据访问监视的操作方案 (DAMOS). 使用该特性, 用户可以以简单的方式描述常规方案, 并要求 DAMON 自行执行这些方案.<br>DAMOS 对于内存管理优化是准确和有用的.<br>1. THP 的一个实验性的基于 damon 的操作方案 'ethp' 减少了 76.15% 的 THP 内存开销, 同时保留了 51.25% 的 THP 加速.<br>2. 另一个实验性的基于 damon 的 "主动回收" 实现 "prcl", 减少了 93.38% 的 residential sets 和 23.63% 的内存占用, 而在最好的情况下只产生 1.22% 的运行时开销 (parsec3/freqmine). | v1 | [2020/12/16 PatchWork RFC,v15.1,0/8](https://patchwork.kernel.org/project/linux-mm/cover/20201216084404.23183-1-sjpark@amazon.com)<br>*-*-*-*-*-*-*-* <br>[2021/10/01 PatchWork 0/7](https://patchwork.kernel.org/project/linux-mm/cover/20211001125604.29660-1-sj@kernel.org) |
| 2021/10/01 | SeongJae Park <sjpark@amazon.com> | [Implement Data Access Monitoring-based Memory Operation Schemes](https://patchwork.kernel.org/project/linux-mm/cover/20211001125604.29660-1-sj@kernel.org) | 实现了 DAMON 的基于数据访问监视的操作方案 (DAMOS).<br>DAMON 可以用作支持数据访问的内存管理优化的原语. 因此, 希望进行此类优化的用户应该运行 DAMON, 读取监视结果, 分析并优化内存管理方案.<br>然而, 在许多其他情况下, 用户只是希望系统对具有特定时间的特定访问频率的特定大小的内存区域应用内存管理操作. 例如, “page out a memory region than 100mib only rare visits more than 2 minutes”, 或者 “Do not use THP For a memory region than 2mib rarely visits more than 1 seconds”. 为了使工作更容易且不冗余, 这个补丁集实现了 DAMON 的一个新特性, 称为基于数据访问监视的操作方案 (DAMOS). 使用该特性, 用户可以以简单的方式描述常规方案, 并要求 DAMON 自行执行这些方案.<br>DAMOS 对于内存管理优化是准确和有用的.<br>1. THP 的一个实验性的基于 damon 的操作方案 'ethp' 减少了 76.15% 的 THP 内存开销, 同时保留了 51.25% 的 THP 加速.<br>2. 另一个实验性的基于 damon 的 "主动回收" 实现 "prcl", 减少了 93.38% 的 residential sets 和 23.63% 的内存占用, 而在最好的情况下只产生 1.22% 的运行时开销 (parsec3/freqmine). | v1 ☑ 5.16-rc1 | [2020/12/16 PatchWork RFC,v15.1,0/8](https://patchwork.kernel.org/project/linux-mm/cover/20201216084404.23183-1-sjpark@amazon.com)<br>*-*-*-*-*-*-*-* <br>[2021/10/01 PatchWork 0/7](https://patchwork.kernel.org/project/linux-mm/cover/20211001125604.29660-1-sj@kernel.org) |
| 2021/10/08 | SeongJae Park <sjpark@amazon.com> | [mm/damon/dbgfs: Implement recording feature](https://patchwork.kernel.org/project/linux-mm/patch/20211008094509.16179-1-sj@kernel.org) | 为 'damon-dbgfs' 实现 'recording' 特性<br>用户空间可以通过 'damon_aggregate' 跟踪点事件获得监视结果. 为了简单起见, 跟踪点事件有一些重复的信息, 比如 'target_id' 和 'nr_regions'. 这造成它的大小比实际需要的要大. 另外, 对于一些简单的用例, 处理跟踪点可能会很复杂. 为了给用户空间提供一种更有效和简单的监控结果的方法, 这个提交实现了 'damon-dbgfs' 中的 'recording' 特性. 该特性通过一个名为 'record' 的新 debugfs 文件导出到用户空间, 该文件位于 '/damon/' 目录下. 该文件允许用户以简单格式在常规二进制文件中记录监视的访问模式. 记录的结果首先写入内存缓冲区并批处理刷新到文件中. 用户可以通过读取和写入 record 文件来获取和设置缓冲区的大小和结果文件的路径. | v1 ☐ | [PatchWork 1/4](https://patchwork.kernel.org/project/linux-mm/patch/20211008094509.16179-1-sj@kernel.org) |
| 2021/10/08 | SeongJae Park <sjpark@amazon.com> | [DAMON: Support Physical Memory Address Space Monitoring](https://www.phoronix.com/scan.php?page=news_item&px=DAMON-Physical-Monitoring) | 允许物理地址空间监控. | v1 | [PatchWork RFC,v9,00/10](https://patchwork.kernel.org/project/linux-mm/cover/20201007071409.12174-1-sjpark@amazon.com)<br>*-*-*-*-*-*-*-* <br>[PatchWork RFC,v10,00/13](https://patchwork.kernel.org/project/linux-mm/cover/20201216094221.11898-1-sjpark@amazon.com))<br>*-*-*-*-*-*-*-* <br>[PatchWork 0/7](https://patchwork.kernel.org/project/linux-mm/cover/20211012205711.29216-1-sj@kernel.org)|
| 2021/10/12 | SeongJae Park <sjpark@amazon.com> | [DAMON: Support Physical Memory Address Space Monitoring](https://www.phoronix.com/scan.php?page=news_item&px=DAMON-Physical-Monitoring) | 允许物理地址空间监控. | v1 ☑ 5.16-rc1 | [PatchWork RFC,v9,00/10](https://patchwork.kernel.org/project/linux-mm/cover/20201007071409.12174-1-sjpark@amazon.com)<br>*-*-*-*-*-*-*-* <br>[PatchWork RFC,v10,00/13](https://patchwork.kernel.org/project/linux-mm/cover/20201216094221.11898-1-sjpark@amazon.com))<br>*-*-*-*-*-*-*-* <br>[PatchWork 0/7](https://patchwork.kernel.org/project/linux-mm/cover/20211012205711.29216-1-sj@kernel.org)|
| 2021/10/12 | Xin Hao <xhao@linux.alibaba.com> | [mm/damon/dbgfs: add region_stat interface](https://patchwork.kernel.org/project/linux-mm/patch/20211012054948.90381-1-xhao@linux.alibaba.com) | DAMON 中使用 damon-dbgfs 操作带来了很大的便利, 有时候如果我希望能够查看任务的划分区域 nr_access 等值, 当前这不能直接通过 dbgfs 接口查看, 所以添加一个接口 "region_stat" 来显示. | v1 ☐ | [PatchWork](https://patchwork.kernel.org/project/linux-mm/patch/20211012054948.90381-1-xhao@linux.alibaba.com/) |
| 2021/10/13 | Xin Hao <xhao@linux.alibaba.com> | [mm/damon: Adjust the size of kbuf array to avoid overflow](https://patchwork.kernel.org/project/linux-mm/patch/20211013114854.15705-1-xhao@linux.alibaba.com) | NA | v1 ☐ | [PatchWork](https://patchwork.kernel.org/project/linux-mm/patch/20211013114854.15705-1-xhao@linux.alibaba.com) |
| 2021/10/16 | Xin Hao <xhao@linux.alibaba.com> | [mm/damon/core: Optimize kdamod.%d thread creation code](https://patchwork.kernel.org/project/linux-mm/patch/20211016165914.96049-1-xhao@linux.alibaba.com) | 当 ctx->adaptive_targets 列表为空, 无需创建并调用kdamond. 只有当 ctx->adaptive_targets 列表不为空, 且 ctx->kdamond 指针为 NULL 时, 才调用__damon_start函数. | v1 ☐ | [PatchWork v1](https://patchwork.kernel.org/project/linux-mm/patch/20211016165616.95849-1-xhao@linux.alibaba.com)<br>*-*-*-*-*-*-*-* <br>[PatchWork v2](https://patchwork.kernel.org/project/linux-mm/patch/20211016165914.96049-1-xhao@linux.alibaba.com) |
+3 -2
View File
@@ -1011,6 +1011,7 @@ ARM64 机器(如 kunpeng920)和 x86 机器(如 Jacobsville)具有一定的硬件
[Cluster-Aware Scheduling Lands In Linux 5.16](https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.16-Sched-Core)
| 计划 | 任务 | 描述 |
|:---:|:----:|:---:|
| 第一个系列 | 增加 cluster 调度域 | 让拓扑域感知 cluster 的存在, 在 sysfs 接口中提供 cluster 的信息(包括 id 和 cpumask 等), 并添加 CONFIG_SCHED_CLUSTER, 可以在 cluster 之间实现负载平衡, 从而使大量工作负载受益. 测试表明, 在 Jacobsville 上增加 25.1% 的 SPECrate mcf, 在 kunpeng920 上增加 13.574% 的 mcf. |
@@ -1019,8 +1020,8 @@ ARM64 机器(如 kunpeng920)和 x86 机器(如 Jacobsville)具有一定的硬件
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|:----:|:----:|:----:|:---:|:----------:|:---:|
| 2021/09/20 | Barry Song <song.bao.hua@hisilicon.com> | [scheduler: expose the topology of clusters and add cluster scheduler](https://lore.kernel.org/patchwork/cover/1415806) | 增加了 cluster 层次的 CPU select. 多个架构都是有 CLUSTER 域的概念的, 比如 Kunpeng 920 一个 NODE(DIE) 24个 CPU 分为 8 个 CLUSTER, 整个 DIE 共享 L3 tag, 但是一个 CLUSTER 使用一个 L3 TAG. 这种情况下对于有数据共享的进程, 在一个 cluster 上运行, 通讯的时延更低. | RFC v6 ☐ | [2020/12/01 PatchWork RFC,v2,0/2](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201201025944.18260-1-song.bao.hua@hisilicon.com)<br>*-*-*-*-*-*-*-* <br>[2021/03/01 PatchWork RFC,v4,0/4](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210301225940.16728-1-song.bao.hua@hisilicon.com)<br>*-*-*-*-*-*-*-* <br>[2021/03/19 PatchWork RFC,v5,0/4](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210319041618.14316-1-song.bao.hua@hisilicon.com)<br>*-*-*-*-*-*-*-* <br>[2021/09/20 PatchWork v6,0/4](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210420001844.9116-1-song.bao.hua@hisilicon.com) |
| 2021/06/15 | Peter Zijlstra | [Represent cluster topology and enable load balance between clusters](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210820013008.12881-1-21cnbao@gmail.com) | 第一个系列(series): 让拓扑域感知 cluster 的存在, 在 sysfs 接口中提供 cluster 的信息(包括 id 和 cpumask 等), 并添加 CONFIG_SCHED_CLUSTER, 可以在 cluster 之间实现负载平衡, 从而使大量工作负载受益. 测试表明, 在 Jacobsville 上增加 25.1% 的 SPECrate mcf, 在 kunpeng920 上增加 13.574% 的 mcf. | RFC ☑ [5.16-rc1](https://lore.kernel.org/lkml/163572864855.3357115.17938524897008353101.tglx@xen13/) | [2021/09/20 PatchWork 0/3](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210820013008.12881-1-21cnbao@gmail.com), [2021/09/20 PatchWork RESEND,0/3](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210924085104.44806-1-21cnbao@gmail.com), [LKML](https://lkml.org/lkml/2021/9/24/178), [LWN](https://lwn.net/Articles/866914) |
| 2021/09/20 | Barry Song <song.bao.hua@hisilicon.com> | [scheduler: expose the topology of clusters and add cluster scheduler](https://lore.kernel.org/patchwork/cover/1415806) | 增加了 cluster 层次的 CPU select. 多个架构都是有 CLUSTER 域的概念的, 比如 Kunpeng 920 一个 NODE(DIE) 24个 CPU 分为 8 个 CLUSTER, 整个 DIE 共享 L3 tag, 但是一个 CLUSTER 使用一个 L3 TAG. 这种情况下对于有数据共享的进程, 在一个 cluster 上运行, 通讯的时延更低. | RFC v6 ☐ | [2020/12/01 PatchWork RFC,v2,0/2](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201201025944.18260-1-song.bao.hua@hisilicon.com)<br>*-*-*-*-*-*-*-* <br>[2021/03/01 PatchWork RFC,v4,0/4](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210301225940.16728-1-song.bao.hua@hisilicon.com)<br>*-*-*-*-*-*-*-* <br>[2021/03/19 PatchWork RFC,v5,0/4](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210319041618.14316-1-song.bao.hua@hisilicon.com)<br>*-*-*-*-*-*-*-* <br>[2021/09/20 PatchWork v6,0/4](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210420001844.9116-1-song.bao.hua@hisilicon.com) |
| 2021/06/15 | Peter Zijlstra | [Represent cluster topology and enable load balance between clusters](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210820013008.12881-1-21cnbao@gmail.com) | 第一个系列(series): 让拓扑域感知 cluster 的存在, 在 sysfs 接口中提供 cluster 的信息(包括 id 和 cpumask 等), 并添加 CONFIG_SCHED_CLUSTER, 可以在 cluster 之间实现负载平衡, 从而使大量工作负载受益. 测试表明, 在 Jacobsville 上增加 25.1% 的 SPECrate mcf, 在 kunpeng920 上增加 13.574% 的 mcf. 但是社区测试在 alder lake 上造成了一定的性能回归, [Linux 5.16's New Cluster Scheduling Is Causing Regression, Further Hurting Alder Lake](https://www.phoronix.com/scan.php?page=article&item=linux-516-regress&num=1), [Windows 11 Better Than Linux Right Now For Intel Alder Lake Performance](https://www.phoronix.com/scan.php?page=article&item=alderlake-windows-linux&num=1) | RFC ☑ [5.16-rc1](https://lore.kernel.org/lkml/163572864855.3357115.17938524897008353101.tglx@xen13/) | [2021/09/20 PatchWork 0/3](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210820013008.12881-1-21cnbao@gmail.com), [2021/09/20 PatchWork RESEND,0/3](https://patchwork.kernel.org/project/linux-arm-kernel/cover/20210924085104.44806-1-21cnbao@gmail.com), [LKML](https://lkml.org/lkml/2021/9/24/178), [LWN](https://lwn.net/Articles/866914) |