diff --git a/_posts/2024-09-09-12-58-42-rvlwn-108.md b/_posts/2024-09-09-12-58-42-rvlwn-108.md new file mode 100644 index 000000000..d0748cf38 --- /dev/null +++ b/_posts/2024-09-09-12-58-42-rvlwn-108.md @@ -0,0 +1,748 @@ +--- +layout: weekly +author: '呀呀呀' +title: 'RISC-V Linux 内核及周边技术动态第 108 期' +draft: false +group: 'news' +album: 'RISC-V Linux' +license: 'cc-by-nc-nd-4.0' +permalink: /rvlwn-108/ +description: 'RISC-V Linux 内核及周边技术动态第 108 期' +category: + - 开源项目 + - Risc-V +tags: + - Linux + - RISC-V + - PREEMPT_RT + - PWM + - vmtest +--- + +> 时间:20240908
+> 编辑:晓瑜
+> 仓库:[RISC-V Linux 内核技术调研活动](https://gitee.com/tinylab/riscv-linux)
+> 赞助:PLCT Lab, ISCAS + +## 内核动态 + +### RISC-V 架构支持 + +**[v1: Allow to enable PREEMPT_RT.](http://lore.kernel.org/linux-riscv/20240906111841.562402-1-bigeasy@linutronix.de/)** + +> The printk bits required for PREEMPT_RT are sitting in linux-next. + +**[v1: pwm: Add pwm driver for Sophgo SG2042](http://lore.kernel.org/linux-riscv/cover.1725536870.git.unicorn_wang@outlook.com/)** + +> Add driver for pwm controller of Sophgo SG2042 SoC. + +**[v3: bpf-next: Local vmtest enhancement and RV64 enabled](http://lore.kernel.org/linux-riscv/20240905081401.1894789-1-pulehui@huaweicloud.com/)** + +> Patch 1-3 fix some problem about bpf selftests. Patch 4 add local rootfs +> image support for vmtest. Patch 5 enable cross-platform testing for +> vmtest. Patch 6-10 enable vmtest on RV64. + +**[v1: pinctrl: k210: Make (p)clk local to k210_fpioa_probe()](http://lore.kernel.org/linux-riscv/77f543046d4d5c19206f829ddcf8e093d3e3f6da.1725440917.git.geert+renesas@glider.be/)** + +> There were never any users of k210_fpioa_data.clk and +> k210_fpioa_data.pclk outside k210_fpioa_probe(). + +**[v1: add function arguments to ftrace](http://lore.kernel.org/linux-riscv/20240904065908.1009086-1-svens@linux.ibm.com/)** + +> These patches add support for printing function arguments in ftrace. + +**[v1: -next: riscv: Use LIST_HEAD() to simplify code](http://lore.kernel.org/linux-riscv/20240904013344.2026738-1-ruanjinjie@huawei.com/)** + +> list_head can be initialized automatically with LIST_HEAD() +> instead of calling INIT_LIST_HEAD(). + +**[GIT PULL: RISC-V Sophgo Devicetrees for v6.12](http://lore.kernel.org/linux-riscv/MA0P287MB28228F4FC59B057DF57D9A11FE9C2@MA0P287MB2822.INDP287.PROD.OUTLOOK.COM/)** + +> Please pull dt changes for RISC-V/Sophgo. + +**[v2: riscv: Disable preemption while handling PR_RISCV_CTX_SW_FENCEI_OFF](http://lore.kernel.org/linux-riscv/20240903-fix_fencei_optimization-v2-1-8025f20171fc@rivosinc.com/)** + +> The icache will be flushed in switch_to() if force_icache_flush is true, +> or in flush_icache_deferred() if icache_stale_mask is set. + +**[v2: i2c: designware: Group all DesignWare drivers under a single option](http://lore.kernel.org/linux-riscv/20240903142506.3444628-1-heikki.krogerus@linux.intel.com/)** + +> This is a proposal for Kconfig improvement regarding the Synopsys +> DesignWare I2C adapter driver. + +**[v4: riscv: spacemit: add pinctrl support to K1 SoC](http://lore.kernel.org/linux-riscv/20240903-02-k1-pinctrl-v4-0-d76c00a33b2b@gentoo.org/)** + +> This series adds pinctrl support to SpacemiT's K1 SoC, the controller +> uses a single register to describe all pin functions, including +> bias pull up/down, drive strength, schmitter trigger, slew rate, +> strong pull-up, mux mode. + +**[v1: pinctrl: Add T-Head TH1520 SoC pin controllers](http://lore.kernel.org/linux-riscv/20240902-th1520-pinctrl-v1-0-639bf83ef50a@tenstorrent.com/)** + +> This adds a pin control driver created by Emil for the T-Head TH1520 +> RISC-V SoC used on the Lichee Pi 4A and BeagleV Ahead boards and +> updates the device trees to make use of it. + +**[v1: -next: irqchip/sifive-plic: Make use of __assign_bit() API](http://lore.kernel.org/linux-riscv/20240902130824.2878644-1-lihongbo22@huawei.com/)** + +> We have for some time the __assign_bit() API to replace +> open coded + +**[v13: riscv: sophgo: add dmamux support for Sophgo CV1800/SG2000 SoCs](http://lore.kernel.org/linux-riscv/IA1PR20MB49539E5AB43E44E9DE5473F1BB922@IA1PR20MB4953.namprd20.prod.outlook.com/)** + +> Add dma multiplexer support for the Sophgo CV1800/SG2000 SoCs. + +**[v4: Enable serial NOR flash on RZ/G2UL SMARC EVK](http://lore.kernel.org/linux-riscv/20240901183422.31600-1-biju.das.jz@bp.renesas.com/)** + +> This patch series aims to enable serial NOR flash on RZ/G2UL SMARC EVK. + +### LoongArch 架构支持 + +**[v1: smp: Mark smp_prepare_boot_cpu() __init](http://lore.kernel.org/loongarch/20240907082720.452148-1-maobibo@loongson.cn/)** + +> Function smp_prepare_boot_cpu() is only called at boot stage, here +> mark it as __init. + +**[v1: Consolidate IO memcpy functions](http://lore.kernel.org/loongarch/20240906114151.519028-1-jvetter@kalrayinc.com/)** + +> Several architectures have almost the same implementation +> for__memcpy_toio, __memcpy_fromio and memset_io. + +**[v4: LoongArch/percpu: Simplify _percpu_read() and _percpu_write()](http://lore.kernel.org/loongarch/20240906065807.1103275-1-ubizjak@gmail.com/)** + +> _percpu_read() and _percpu_write() macros call __percpu_read() +> and __percpu_write() static inline functions that result in a single +> assembly instruction. + +**[v3: Add EDAC driver for loongson memory controller](http://lore.kernel.org/loongarch/20240903114714.11428-1-zhaoqunqin@loongson.cn/)** + +> Add a simple EDAC driver which report single bit errors (CE) only on +> loongson platform. + +**[v1: longsoon/percpu: Simplify _percpu_read() and _percpu_write()](http://lore.kernel.org/loongarch/20240903102342.36957-1-ubizjak@gmail.com/)** + +> _percpu_read() and _percpu_write() macros call __percpu_read() +> and __percpu_write() static inline functions that result in a single +> assembly instruction. + +### ARM 架构支持 + +**[v1: arm64: qcom: sda660-ifc6560: enable GPU and WiFi support](http://lore.kernel.org/linux-arm-kernel/20240907-sdm660-wifi-v1-0-e316055142f8@linaro.org/)** + +> Follow the MSM8998 example and limit num_context_banks on SDM630 / +> SDM660 platforms. + +**[v2: SLUB: Add support for per object memory policies](http://lore.kernel.org/linux-arm-kernel/20240906-strict_numa-v2-1-f104e6de6d1e@gentwo.org/)** + +> In SLUB the memory policies are applied on a +> per page frame / folio bases. + +**[GIT PULL: Allwinner SoC device tree changes for 6.12](http://lore.kernel.org/linux-arm-kernel/ZtnZRhTwsBeO7Qtb@wens.tw/)** + +> Here's the Allwinner device tree changes for 6.12. + +**[v1: arm64/mm: use lm_alias() with addresses passed to memblock_free()](http://lore.kernel.org/linux-arm-kernel/20240905130115.4135490-1-joey.gouly@arm.com/)** + +> This fixes the following splat at boot time (seen with CONFIG_DEBUG_VIRTUAL=y): + +**[v6: arm-cs-trace-disasm.py/perf must accommodate non-zero DSO text offset](http://lore.kernel.org/linux-arm-kernel/cover.1725493961.git.scclevenger@os.amperecomputing.com/)** + +**[v1: Correct perf sampling with guest VMs](http://lore.kernel.org/linux-arm-kernel/20240904204133.1442132-1-coltonlewis@google.com/)** + +> This series cleans up perf recording around guest events and improves +> the accuracy of the resulting perf reports. + +**[v1: irqchip/gic: prevent buffer overflow in gic_ipi_send_mask()](http://lore.kernel.org/linux-arm-kernel/048ff3bb-09d1-2e60-4f3b-611e2bfde7aa@omp.ru/)** + +> ARM GIC arch v2 spec claims support for just 8 CPU interfaces. + +**[v7: Marvell Odyssey uncore performance monitor support](http://lore.kernel.org/linux-arm-kernel/20240904182605.953927-1-gthiagarajan@marvell.com/)** + +> This series of patches introduces support for uncore performance monitor +> units (PMUs) on the Marvell Odyssey platform. + +**[v4: perf: Add Arm Network-on-Chip PMU driver](http://lore.kernel.org/linux-arm-kernel/cover.1725470837.git.robin.murphy@arm.com/)** + +**[v1: Add support for Ariaboard Photonicat RK3568](http://lore.kernel.org/linux-arm-kernel/20240904111456.87089-1-bigfoot@classfun.cn/)** + +> Add dts for Ariaboard Photonicat RK3568. + +**[v2: Do not shatter hugezeropage on wp-fault](http://lore.kernel.org/linux-arm-kernel/20240904100923.290042-1-dev.jain@arm.com/)** + +> It was observed at [1] and [2] that the current kernel behaviour of +> shattering a hugezeropage is inconsistent and suboptimal. + +**[v3: Add support for Kontron OSM-S i.MX8MP SoM and carrier boards](http://lore.kernel.org/linux-arm-kernel/20240904085415.645031-1-frieder@fris.de/)** + +> Patch 1: board DT bindings +> Patch 2: OSM-S i.MX8MP SoM and BL carrier board devicetrees +> Patch 3: i.MX8MP SMARC module and eval carrier board devicetrees + +**[v1: Add initial support for QCS8300](http://lore.kernel.org/linux-arm-kernel/20240904-qcs8300_initial_dtsi-v1-0-d0ea9afdc007@quicinc.com/)** + +> Add initial support for QCS8300 SoC and QCS8300 RIDE board. + +**[v5: can-next: can: rockchip_canfd: add support for CAN-FD IP core found on Rockchip RK3568](http://lore.kernel.org/linux-arm-kernel/20240904-rockchip-canfd-v5-0-8ae22bcb27cc@pengutronix.de/)** + +> This series adds support for the CAN-FD IP core found on the Rockchip +> RK3568. + +**[v4: clk: imx8qxp: Defer instead of failing probe](http://lore.kernel.org/linux-arm-kernel/DU0PR01MB9382A24116486931F28843BA9D9C2@DU0PR01MB9382.eurprd01.prod.exchangelabs.com/)** + +> When of_clk_parent_fill is ran without all the parent clocks having been +> probed then the probe function will return -EINVAL, making it so that +> the probe isn't attempted again. + +**[v2: mfd: syscon: Use regmap max_register_is_0 as needed](http://lore.kernel.org/linux-arm-kernel/20240903184710.1552067-1-nm@ti.com/)** + +> syscon has always set the optional max_register configuration of +> regmap to ensure the correct checks are in place. + +### X86 架构支持 + +**[v1: drm/etnaviv: Print error message when driver can't get pages](http://lore.kernel.org/lkml/20240908071950.200508-1-sui.jingfeng@linux.dev/)** + +> This error could happen when the GFP_HIGHUSER flag is set, such an error +> can also be seen on the X86 platform. + +**[v9: Dynamic Allocation of the reserved_mem array](http://lore.kernel.org/lkml/20240906185400.3244416-1-quic_obabatun@quicinc.com/)** + +> The reserved_mem array is used to store data for the different +> reserved memory regions defined in the DT of a device. + +**[v2: platform/x86:intel/pmc: Ignore all LTRs during suspend](http://lore.kernel.org/lkml/20240906184016.268153-1-xi.pardee@linux.intel.com/)** + +> Add support to ignore all LTRs before suspend and restore the previous +> LTR values after suspend. + +**[v3: mm: Introduce ADDR_LIMIT_47BIT personality flag](http://lore.kernel.org/lkml/20240905-patches-below_hint_mmap-v3-0-3cd5564efbbb@rivosinc.com/)** + +> Some applications rely on placing data in free bits addresses allocated +> by mmap. + +**[[RFC/PATCHSET 00/10] perf tools: Do not set attr.exclude_guest by default (v3)](http://lore.kernel.org/lkml/20240905202426.2690105-1-namhyung@kernel.org/)** + +> I found perf tools set exclude_guest bit inconsistently. + +**[v1: 6.10: 6.10.9-rc2 review](http://lore.kernel.org/lkml/20240905163542.314666063@linuxfoundation.org/)** + +> This is the start of the stable review cycle for the 6.10.9 release. + +**[v3: Adjustments for preferred core detection](http://lore.kernel.org/lkml/20240905163007.1350840-1-superm1@kernel.org/)** + +> Preferred core detection is fragile in that any CPU that reports +> less than 255 for any core is assumed to be a preferred core design. + +**[v3: nosnp sev command line support](http://lore.kernel.org/lkml/20240905143056.48216-1-papaluri@amd.com/)** + +> Provide "nosnp" boot option via "sev=nosnp" kernel command line to +> prevent SEV-SNP[1] capable host kernel from enabling SEV-SNP and +> initializing Reverse Map Table (RMP) [1]. + +**[v1: random: Include and resolve circular include dependency](http://lore.kernel.org/lkml/20240905122020.872466-1-ubizjak@gmail.com/)** + +> There were several attempts to resolve circular include dependency +> after the addition of percpu.h: 1c9df907da83 ("random: fix circular +> include dependency on arm64 after addition of percpu.h"), c0842fbc1b18 +> ("random32: move the pseudo-random 32-bit definitions to prandom.h") and +> finally d9f29deb7fe8 ("prandom: Remove unused include") that completely +> removes inclusion of . + +**[v1: KVM: VMX: Also clear SGX EDECCSSA in KVM CPU caps when SGX is disabled](http://lore.kernel.org/lkml/20240905120837.579102-1-kai.huang@intel.com/)** + +> When SGX EDECCSSA support was added to KVM in commit 16a7fe3728a8, it +> forgot to clear the X86_FEATURE_SGX_EDECCSSA bit in KVM CPU caps when +> KVM SGX is disabled. + +**[v1: rust: block: Use 32-bit atomics](http://lore.kernel.org/lkml/20240905061214.3954271-1-davidgow@google.com/)** + +> Not all architectures have core::sync::atomic::AtomicU64 available. In +> particular, 32-bit x86 doesn't support it. AtomicU32 is available +> everywhere, so use that instead. + +**[v6: x86/cacheinfo: Set the number of leaves per CPU](http://lore.kernel.org/lkml/20240905060036.5655-1-ricardo.neri-calderon@linux.intel.com/)** + +> This is the case +> of Intel Meteor Lake, which now is out in the world. + +**[v2: Enable measuring the kernel's Source-based Code Coverage and MC/DC with Clang](http://lore.kernel.org/lkml/20240905043245.1389509-1-wentaoz5@illinois.edu/)** + +> This series adds support for building x86-64 kernels with Clang's Source- +> based Code Coverage[1] in order to facilitate Modified Condition/Decision +> Coverage (MC/DC)[2] that provably correlates to source code for all levels +> of compiler optimization. + +**[[RFC/PATCH 0/5] perf: Relax privilege restriction on AMD IBS (v3)](http://lore.kernel.org/lkml/20240905031027.2567913-1-namhyung@kernel.org/)** + +> This is RFC v3 to allow AMD IBS to regular users on the default settings +> where kernel-level profiling is disabled (perf_event_paranoid=2). + +**[v7: x86/resctrl: Support AMD Assignable Bandwidth Monitoring Counters (ABMC)](http://lore.kernel.org/lkml/cover.1725488488.git.babu.moger@amd.com/)** + +> This series adds the support for Assignable Bandwidth Monitoring Counters +> (ABMC). It is also called QoS RMID Pinning feature + +**[v3: power: supply: extension API](http://lore.kernel.org/lkml/20240904-power-supply-extensions-v3-0-62efeb93f8ec@weissschuh.net/)** + +> Introduce a mechanism for drivers to extend the properties implemented +> by a power supply. + +**[v2: mm: Care about shadow stack guard gap when getting an unmapped area](http://lore.kernel.org/lkml/20240904-mm-generic-shadow-stack-guard-v2-0-a46b8b6dc0ed@kernel.org/)** + +> As covered in the commit log for c44357c2e76b ("x86/mm: care about shadow +> stack guard gap during placement") our current mmap() implementation does +> not take care to ensure that a new mapping isn't placed with existing +> mappings inside it's own guard gaps. + +**[v1: iommu/amd: Add parameter to limit V1 page-sizes to 4 KiB](http://lore.kernel.org/lkml/20240904125946.4677-1-joro@8bytes.org/)** + +> Add the 'pgsize_4k' as a valid value to the amd_iommu= command line +> parameter to limit the page-sizes used for V1 page-tables for 4 KiB. + +**[v1: TDX MMU Part 2](http://lore.kernel.org/lkml/20240904030751.117579-1-rick.p.edgecombe@intel.com/)** + +> This series picks up where “TDX MMU prep series part 1” left off in +> implementing the parts of TDX support that deal with shared and private +> memory. + +**[v8: Final pieces of Intel new families support](http://lore.kernel.org/lkml/20240903173443.7962-1-tony.luck@intel.com/)** + +> All except one of the precursor patches were merged to Linus' tree +> in the v6.11 merge window. + +**[v1: vdso: Use only headers from the vdso/ namespace](http://lore.kernel.org/lkml/20240903151437.1002990-1-vincenzo.frascino@arm.com/)** + +> The recent implementation of getrandom in the generic vdso library, +> includes headers from outside of the vdso/ namespace. + +**[v1: x86/percpu: Unify __pcpu_op{1,2}_N() macros to __pcpu_op_N()](http://lore.kernel.org/lkml/20240903115730.91423-1-ubizjak@gmail.com/)** + +> Unify __pcpu_op1_N() and __pcpu_op2_N() macros to __pcpu_op_N() +> by applying the macro only to asm mnemonic, not to the mnemonic +> plus its arguments. + +### 进程调度 + +**[v1: sched: Improve cache locality of RSEQ concurrency IDs](http://lore.kernel.org/lkml/20240904013127.75064-1-mathieu.desnoyers@efficios.com/)** + +> Intermittent workloads behaving in bursts spaced by more than 100ms +> on each CPU exhibit bad cache locality and degraded performance compared +> to purely per-cpu data indexing, because concurrency IDs are allocated +> over various CPUs and cores, therefore losing cache locality of the +> associated data. + +**[v3: sched/topology: optimize topology_span_sane()](http://lore.kernel.org/lkml/20240902183609.1683756-1-yury.norov@gmail.com/)** + +> The function may call cpumask_equal with tl->mask(cpu) == tl->mask(i), +> even when cpu != i. In such case, cpumask_equal() would always return +> true, and we can proceed to the next iteration immediately. + +### 内存管理 + +**[v1: maple_tree: Mark three functions as __maybe_unused](http://lore.kernel.org/linux-mm/20240907021506.4018676-1-Liam.Howlett@oracle.com/)** + +> People keep trying to remove three functions that are going to be used +> in a feature that is being developed. + +**[v4: implement async block discards and other ops via io_uring](http://lore.kernel.org/linux-mm/cover.1725621577.git.asml.silence@gmail.com/)** + +> There is an interest in having asynchronous block operations like +> discard and write zeroes. + +**[v1: mm/vmalloc.c: use helper function va_size()](http://lore.kernel.org/linux-mm/20240906102539.3537207-1-zhangpeng362@huawei.com/)** + +> Use helper function va_size() to improve code readability. No functional +> modification involved. + +**[v1: uprobes,mm: speculative lockless VMA-to-uprobe lookup](http://lore.kernel.org/linux-mm/20240906051205.530219-1-andrii@kernel.org/)** + +> Implement speculative (lockless) resolution of VMA to inode to uprobe, +> bypassing the need to take mmap_lock for reads, if possible. + +**[v1: mm: hwpoison: two more poison recovery](http://lore.kernel.org/linux-mm/20240906024201.1214712-1-wangkefeng.wang@huawei.com/)** + +> One more CoW path to support poison recorvery in do_cow_fault(), and +> the last copy_user_highpage() user is replaced to copy_mc_user_highpage() +> from copy_present_page() during fork to support poison recorvery too. + +**[v1: mm/show_mem.c: report alloc tags in human readable units](http://lore.kernel.org/linux-mm/20240906005337.1220091-1-kent.overstreet@linux.dev/)** + +> We already do this when reporting slab info - more consistent and more +> readable. + +**[v8: mm: enable large folios swap-in support](http://lore.kernel.org/linux-mm/20240906001047.1245-1-21cnbao@gmail.com/)** + +> Currently, we support mTHP swapout but not swapin. This means that once mTHP +> is swapped out, it will come back as small folios when swapped in. + +**[v1: arm64: Add infrastructure for use of AT_HWCAP3](http://lore.kernel.org/linux-mm/20240906-arm64-elf-hwcap3-v1-0-8df1a5e63508@kernel.org/)** + +> Since arm64 has now used all of AT_HWCAP2 it needs to either start using +> AT_HWCAP3 (which was recently added for PowerPC) or start allocating +> bits 32..61 of AT_HWCAP first. + +**[v3: tmpfs: Add case-insensitive support for tmpfs](http://lore.kernel.org/linux-mm/20240905190252.461639-1-andrealmeid@igalia.com/)** + +> This patchset adds support for case-insensitive file names lookups in +> tmpfs. + +**[v4: memcg: add charging of already allocated slab objects](http://lore.kernel.org/linux-mm/20240905173422.1565480-1-shakeel.butt@linux.dev/)** + +> At the moment, the slab objects are charged to the memcg at the +> allocation time. However there are cases where slab objects are +> allocated at the time where the right target memcg to charge it to is +> not known. + +**[v1: mm: migrate: simplify find_mm_struct()](http://lore.kernel.org/linux-mm/20240905153118.1205173-1-sunnanyong@huawei.com/)** + +> Use find_get_task_by_vpid() to replace the task_struct find logic in +> find_mm_struct(), note that this patch move the ptrace_may_access() +> call out from rcu_read_lock() scope, this is ok because it actually +> does not need it, find_get_task_by_vpid() already get the pid and task +> safely, ptrace_may_access() can use the task safely, like what +> sched_core_share_pid() similarly do. + +**[v1: mm: thp: simplify split_huge_pages_pid()](http://lore.kernel.org/linux-mm/20240905153028.1205128-1-sunnanyong@huawei.com/)** + +> The helper find_get_task_by_vpid() can totally replace the task_struct +> find logic in split_huge_pages_pid(), so use it to simplify the code. + +**[v2: mm: arm64: document why pte is not advanced in contpte_ptep_set_access_flags()](http://lore.kernel.org/linux-mm/20240905081124.9576-1-21cnbao@gmail.com/)** + +> According to David and Ryan, there isn't a bug here, even though we +> don't advance the PTE entry, because __ptep_set_access_flags() only +> uses the access flags from the entry. + +**[v4: slab: add struct kmem_cache_args](http://lore.kernel.org/linux-mm/20240905-work-kmem_cache_args-v4-0-ed45d5380679@kernel.org/)** + +> This is v4 which allows NULL to be passed in the struct kmem_cache_args +> argument of kmem_cache_create() and substitutes default parameters in +> this case. + +**[v1: mm: use unique zsmalloc caches names](http://lore.kernel.org/linux-mm/20240905064736.2250735-1-senozhatsky@chromium.org/)** + +> Each zsmalloc pool maintains several named kmem-caches for +> zs_handle-s and zspage-s. + +**[v1: mm/damon/vaddr: protect vma traversal in __damon_va_thre_regions() with rcu read lock](http://lore.kernel.org/linux-mm/20240905001204.1481-1-sj@kernel.org/)** + +> Traversing VMAs of a given maple tree should be protected by rcu read +> lock. However, __damon_va_three_regions() is not doing the protection. +> Hold the lock. + +**[v2: mm/hugetlb: simplify refs in memfd_alloc_folio](http://lore.kernel.org/linux-mm/1725481920-82506-1-git-send-email-steven.sistare@oracle.com/)** + +> The folio_try_get in memfd_alloc_folio is not necessary. Delete it, and +> delete the matching folio_put in memfd_pin_folios. + +**[v1: mm/mm_init.c: add zidcache to the init_reserved_page function](http://lore.kernel.org/linux-mm/20240904115541.6519-1-liuq131@chinatelecom.cn/)** + +> Each call to the init_reserved_page function will look up the +> corresponding zid for the given pfn parameter. + +**[v1: mm/slab: Optimize the code logic in find_mergeable()](http://lore.kernel.org/linux-mm/20240904074037.710692-1-xavier_qy@163.com/)** + +> We can first assess the flags, if it's unmergeable, there's no need +> to calculate the size and align. + +**[v1: dm verity: don't use WQ_MEM_RECLAIM](http://lore.kernel.org/linux-mm/20240904040444.56070-1-ebiggers@kernel.org/)** + +> Since dm-verity doesn't support writes, the kernel's memory reclaim code +> will never wait on dm-verity work. That makes the use of WQ_MEM_RECLAIM +> in dm-verity unnecessary. + +**[v1: RESEND: usb: gadget: dummy_hcd: execute hrtimer callback in softirq context](http://lore.kernel.org/linux-mm/20240904013051.4409-1-andrey.konovalov@linux.dev/)** + +> Commit a7f3813e589f ("usb: gadget: dummy_hcd: Switch to hrtimer transfer +> scheduler") switched dummy_hcd to use hrtimer and made the timer's +> callback be executed in the hardirq context. + +### 文件系统 + +**[v6: Hardware wrapped key support for QCom ICE and UFS core](http://lore.kernel.org/linux-fsdevel/20240906-wrapped-keys-v6-0-d59e61bc0cb4@linaro.org/)** + +> I took this work over from Gaurav Kashyap and integrated Eric's series +> into it for an easier discussion on the actual API to be used for +> wrapped keys as well as if and how to enable users to indicate whether +> wrapped keys should be used at all. + +**[v1: -next: ext4: don't pass full mapping flags to ext4_es_insert_extent()](http://lore.kernel.org/linux-fsdevel/20240906061401.2980330-1-yi.zhang@huaweicloud.com/)** + +> When converting a delalloc extent in ext4_es_insert_extent(), since we +> only want to pass the info of whether the quota has already been claimed +> if the allocation is a direct allocation from ext4_map_create_blocks(), +> there is no need to pass full mapping flags, so changes to just pass +> whether the EXT4_GET_BLOCKS_DELALLOC_RESERVE bit is set. + +**[v2: extensible syscalls: CHECK_FIELDS to allow for easier feature detection](http://lore.kernel.org/linux-fsdevel/20240906-extensible-structs-check_fields-v2-0-0f46d2de9bad@cyphar.com/)** + +> This is something that I've been thinking about for a while. + +**[v4: nfsd: implement the "delstid" draft](http://lore.kernel.org/linux-fsdevel/20240905-delstid-v4-0-d3e5fd34d107@kernel.org/)** + +> I've been working on some +> pynfs testcases for CB_GETATTR, and have found more bugs in our +> implementation. + +**[v5: fanotify: add pre-content hooks](http://lore.kernel.org/linux-fsdevel/cover.1725481503.git.josef@toxicpanda.com/)** + +**[v1: fs/pipe: Correct imprecise wording in comment](http://lore.kernel.org/linux-fsdevel/20240904-pipe-correct_imprecise_wording-v1-1-2b07843472c2@efficios.com/)** + +> The comment inaccurately describes what pipefs is - that is, a file +> system. + +**[v1: iomap: clean preallocated blocks in iomap_end() when 0 bytes was written.](http://lore.kernel.org/linux-fsdevel/20240903054808.126799-1-sunjunchao2870@gmail.com/)** + +> Recently, syzbot reported a issue as following: + +### 网络设备 + +**[v1: net-next: net: ibm: emac: modernize modules](http://lore.kernel.org/netdev/20240907222147.21723-1-rosenp@gmail.com/)** + +> Use devm and dev_* instead of printk. + +**[v1: net: hsr: prevent NULL pointer dereference in hsr_proxy_announce()](http://lore.kernel.org/netdev/20240907190341.162289-1-aha310510@gmail.com/)** + +> In the function hsr_proxy_annouance() added in the previous commit +> with ProxyNodeTable data"), the return value of the hsr_port_get_hsr() +> function is not checked to be a NULL pointer, which causes a NULL +> pointer dereference. + +**[v2: net-next: net: Convert using devm_clk_get_enabled()/devm_clk_get_optional_enabled()](http://lore.kernel.org/netdev/20240907031926.3591353-1-lizetao1@huawei.com/)** + +**[v11: ipsec-next: Add IP-TFS mode to xfrm](http://lore.kernel.org/netdev/20240907022412.1032284-1-chopps@chopps.org/)** + +> This patchset adds a new xfrm mode implementing on-demand IP-TFS. IP-TFS +> (AggFrag encapsulation) has been standardized in RFC9347. + +**[v5: net-next:pull request: ice: support devlink subfunction](http://lore.kernel.org/netdev/20240906223010.2194591-1-anthony.l.nguyen@intel.com/)** + +> Currently ice driver does not allow creating more than one networking +> device per physical function. + +**[v4: landlock: Signal scoping support](http://lore.kernel.org/netdev/cover.1725657727.git.fahimitahera@gmail.com/)** + +> This patch series adds scoping mechanism for signals. + +**[v1: bpf: sock_map: add a cond_resched() in sock_hash_free()](http://lore.kernel.org/netdev/20240906154449.3742932-1-edumazet@google.com/)** + +> Several syzbot soft lockup reports all have in common sock_hash_free() +> +> If a map with a large number of buckets is destroyed, we need to yield +> the cpu when needed. +> + +**[v4: ethtool-next: Introduce PHY listing and targeting](http://lore.kernel.org/netdev/20240906145719.387824-1-maxime.chevallier@bootlin.com/)** + +> This series adds the ethtool-side support to list PHYs associated to a +> netdevice, as well as allowing to target PHYs for some commands + +**[v1: net-next: RX software timestamp for all - round 3](http://lore.kernel.org/netdev/20240906144632.404651-1-gal@nvidia.com/)** + +> I know the series is more than 15 patches, but I didn't want to have a +> 4th round for a single patch. + +**[v10: net-next: net: stmmac: FPE via ethtool + tc](http://lore.kernel.org/netdev/cover.1725631883.git.0x1207@gmail.com/)** + +> Move the Frame Preemption(FPE) over to the new standard API which uses +> ethtool-mm/tc-mqprio/tc-taprio. + +**[v2: net: bpf: devmap: provide rxq after redirect](http://lore.kernel.org/netdev/20240906-devel-koalo-fix-ingress-ifindex-v2-0-4caa12c644b4@linutronix.de/)** + +> Add bugfix and related selftest. + +**[v1: lib80211: Use ERR_CAST() to return](http://lore.kernel.org/netdev/20240906114455.730559-1-roheetchavan@gmail.com/)** + +> Using ERR_CAST() is more reasonable and safer, When it is necessary +> to convert the type of an error pointer and return it. + +**[v1: ixgbe: Manual AN-37 for troublesome link partners for X550 SFI](http://lore.kernel.org/netdev/20240906104145.9587-1-jeffd@silicom-usa.com/)** + +> Some (Juniper MX5) SFP link partners exhibit a disinclination to +> autonegotiate with X550 configured in SFI mode. + +**[v6: net-next: Add support to PHYLINK for LAN743x/PCI11x1x chips](http://lore.kernel.org/netdev/20240906103511.28416-1-Raju.Lakkaraju@microchip.com/)** + +> Divide the PHYLINK adaptation and SFP modifications into two separate patch +> series. + +**[v2: net-next: net: ti: icssg-prueth: Make pa_stats optional](http://lore.kernel.org/netdev/20240906093649.870883-1-danishanwar@ti.com/)** + +> pa_stats is optional in dt bindings, make it optional in driver as well. + +**[v2: net: dsa: felix: ignore pending status of TAS module when it's disabled](http://lore.kernel.org/netdev/20240906093550.29985-1-xiaoliang.yang_1@nxp.com/)** + +> The TAS module could not be configured when it's running in pending +> status. + +**[v1: net: r8169: correct the reset timing of RTL8125 for link-change event](http://lore.kernel.org/netdev/20240906083539.154019-1-en-wei.wu@canonical.com/)** + +> The commit 621735f59064 ("r8169: fix rare issue with broken rx after +> link-down on RTL8125") set a reset work for RTL8125 in +> r8169_phylink_handler() to avoid the MAC from locking up, this +> makes the connection broken after unplugging then re-plugging the +> Ethernet cable. + +**[v1: net-next: bnxt_en: implement tcp-data-split ethtool command](http://lore.kernel.org/netdev/20240906080750.1068983-1-ap420073@gmail.com/)** + +> NICs that use the bnxt_en driver support tcp-data-split feature named +> HDS(header-data-split). + +### 安全增强 + +**[v2: -next: Introduce several opposite string choice helpers](http://lore.kernel.org/linux-hardening/20240905092540.2962122-1-lihongbo22@huawei.com/)** + +> Similar to the exists helper: str_enable_disable/ +> str_enabled_disabled/str_on_off/str_yes_no helpers, we can +> add the opposite helpers. That's str_disable_enable, +> str_disabled_enabled, str_off_on and str_no_yes. + +**[v10: Add support for aw96103/aw96105 proximity sensor](http://lore.kernel.org/linux-hardening/20240904113555.1538635-1-wangshuaijie@awinic.com/)** + +> Add drivers that support Awinic aw96103/aw96105 proximity sensors. + +**[v2: -next: coccinelle: Add some rules for string_chioces helpers.](http://lore.kernel.org/linux-hardening/20240904091451.3328272-1-lihongbo22@huawei.com/)** + +> We found that many of the detection rules for helpers in +> string_choices.h are missing. This series of patches is +> intended to complete these rules. + +### 异步 IO + +**[v1: [6.1][0/2] io_uring: Do not set PF_NO_SETAFFINITY on poller threads](http://lore.kernel.org/io-uring/20240906095321.388613-1-felix.moessbauer@siemens.com/)** + +> Setting the PF_NO_SETAFFINITY flag creates problems in combination with +> cpuset operations (see commit messages for details). + +### Rust For Linux + +**[v2: rust: Initial MIPS support](http://lore.kernel.org/rust-for-linux/20240905-mips-rust-v2-0-409d66819418@flygoat.com/)** + +> This series added MIPS arch support to rust for linux, +> hopefully MIPS is not too late to the party :-) + +**[v1: rust: lint improvements](http://lore.kernel.org/rust-for-linux/20240904204347.168520-1-ojeda@kernel.org/)** + +> This is a series that contains a series of lint-related things. + +**[v1: rust: arch/um: Rust modules support for UML](http://lore.kernel.org/rust-for-linux/62F5EEA0B866E9E0+20240903130606.292935-1-zig@iorw.io/)** + +> The series make Rust modules running under x86_64 UML, as a supplement +> for the previous work. + +**[v1: RESEND: block, rust: simplify validate_block_size() function](http://lore.kernel.org/rust-for-linux/005b6680-da19-495a-bc99-9ec3f66a5e74@p183/)** + +> Using range and contains() method is just fancy shmancy way of writing +> two comparisons. Using range doesn't prevent any bugs here because +> typing "=" in range can be forgotten just as easily as in "<=" operator. + +**[v1: block, rust: simplify validate_block_size() function](http://lore.kernel.org/rust-for-linux/CACVxJT-Hj6jdE0vwNrfGpKs73+ScTyxxxL8w_VXfoLAx79mr8w@mail.gmail.com/)** + +> Using range and contains() method is just fancy shmancy way of writing +> two comparisons which IMO is less readable. + +### BPF + +**[v2: bpf-next: bpftool: improve btf c dump sorting stability](http://lore.kernel.org/bpf/20240906132453.146085-1-mykyta.yatsenko5@gmail.com/)** + +> Existing algorithm for BTF C dump sorting uses only types and names of +> the structs and unions for ordering. + +**[v3: bpf-next: allow kfuncs in tracepoint and perf event](http://lore.kernel.org/bpf/20240905223812.141857-1-inwardvessel@gmail.com/)** + +> It is possible to call a cpumask kfunc within a raw tp_btf program but not +> possible within tracepoint or perf event programs. + +**[v1: bpf-next: bpf: change int cmd argument in __sys_bpf into typed enum bpf_cmd](http://lore.kernel.org/bpf/20240905210520.2252984-1-andrii@kernel.org/)** + +> This improves BTF data recorded about this function and makes +> debugging/tracing better, because now command can be displayed as +> symbolic name, instead of obscure number. + +**[v1: bpf-next: bpf: Check percpu map value size first](http://lore.kernel.org/bpf/20240905171406.832962-1-chen.dylane@gmail.com/)** + +> Percpu map is often used, but the map value size limit often ignored, +> like issue: https://github.com/iovisor/bcc/issues/2519. + +**[v1: net-next: Unmask upper DSCP bits - part 4 (last)](http://lore.kernel.org/bpf/20240905165140.3105140-1-idosch@nvidia.com/)** + +> This patchset finishes to unmask the upper DSCP bits in the IPv4 +> flow key in preparation for allowing IPv4 FIB rules to match on DSCP. No +> functional changes are expected. + + +**[v2: -next: perf stat: Support inherit events for bperf](http://lore.kernel.org/bpf/20240905115918.772234-1-wutengda@huaweicloud.com/)** + +> bperf (perf-stat --bpf-counter) has not supported inherit events +> during fork() since it was first introduced. + +**[v2: bpf-next: bpf: Allow skb dynptr for tp_btf](http://lore.kernel.org/bpf/20240905075622.66819-1-lulie@linux.alibaba.com/)** + +> This makes bpf_dynptr_from_skb usable for tp_btf, so that we can easily +> parse skb in tracepoints. This has been discussed in [0], and Martin +> suggested to use dynptr (instead of helpers like bpf_skb_load_bytes). + +**[v1: bpf-next: bpf: Follow up on gen_epilogue](http://lore.kernel.org/bpf/20240904180847.56947-1-martin.lau@linux.dev/)** + +> The set addresses some follow ups on the earlier gen_epilogue +> patch set. + +**[v1: bpf-next: xsk: bump xsk_queue::queue_empty_descs in xp_can_alloc()](http://lore.kernel.org/bpf/20240904162808.249160-1-maciej.fijalkowski@intel.com/)** + +> We have STAT_FILL_EMPTY test case in xskxceiver that tries to process +> traffic with fill queue being empty which currently fails for zero copy +> ice driver after it started to use xsk_buff_can_alloc() API. + +**[v5: uprobes: RCU-protected hot path optimizations](http://lore.kernel.org/bpf/20240903174603.3554182-1-andrii@kernel.org/)** + +> This patch set is heavily inspired by Peter Zijlstra's uprobe optimization +> patches ([0]) and continues that work, albeit trying to keep complexity to the +> minimum, and attepting to reuse existing primitives as much as possible. + +**[v1: rcu: Add light-weight readers for SRCU](http://lore.kernel.org/bpf/26cddadd-a79b-47b1-923e-9684cd8a7ef4@paulmck-laptop/)** + +> This series provides light-weight readers for SRCU. + +**[v2: bpf-next: bpf, arm64: Jit BPF_CALL to direct call when possible](http://lore.kernel.org/bpf/20240903094407.601107-1-xukuohai@huaweicloud.com/)** + +> Currently, BPF_CALL is always jited to indirect call. When target is +> within the range of direct call, BPF_CALL can be jited to direct call. + +**[v1: HID: HID: bpf: add a new hook to control hid-generic](http://lore.kernel.org/bpf/20240903-hid-bpf-hid-generic-v1-0-9511a565b2da@kernel.org/)** + +> This is a slight change from the fundamentals of HID-BPF. + +**[v1: bpf-next: libbpf: Add support for aliased BPF programs](http://lore.kernel.org/bpf/cover.1725016029.git.vmalik@redhat.com/)** + +> This adds libbpf support for creating multiple BPF programs having the +> same instructions using symbol aliases. + +## 周边技术动态 + +### Qemu + +**[v5: bsd-user: Comprehensive RISCV Support](http://lore.kernel.org/qemu-devel/20240907031927.1908-1-itachis@FreeBSD.org/)** + +> Key Changes Compared to Version 4: +> Minor formatting changes + +**[v7: riscv: QEMU RISC-V IOMMU Support](http://lore.kernel.org/qemu-devel/20240903201633.93182-1-dbarboza@ventanamicro.com/)** + +> In this new version the only significant code change was made in patch +> 3, where we're no longer modifying the host address with the translated +> address. + +**[v6: target/riscv: Add Smrnmi support.](http://lore.kernel.org/qemu-devel/20240902071358.1061693-1-tommy.wu@sifive.com/)** + +> This patchset added support for Smrnmi Extension in RISC-V. + +### U-Boot + +**[v5: efi: Add a test for EFI bootmeth](http://lore.kernel.org/u-boot/20240902011825.746421-1-sjg@chromium.org/)** + +> The test coverage for the EFI bootmeth is incomplete since it does not +> actually boot the application. +> This series creates a simple test for this purpose. + + +