diff --git a/news/README.md b/news/README.md index 452460aa0068c7de34af06434c9ed8eb8dee7ba2..79352eb1d9e292ab1d11dab40ca764c003cbb788 100644 --- a/news/README.md +++ b/news/README.md @@ -6,3 +6,652 @@ * [2023 年 - 上半年](2023-1st-half.md) * [2023 年 - 下半年](2023-2nd-half.md) * [2024 年 - 上半年](2024-1st-half.md) + + +## 20240609:第 95 期 + +### 内核动态 + +#### RISC-V 架构支持 + +**[v2: riscv: Improve exception and system call latency](http://lore.kernel.org/linux-riscv/20240607061335.2197383-1-cyrilbur@tenstorrent.com/)** + +> Many CPUs implement return address branch prediction as a stack. The +> RISCV architecture refers to this as a return address stack (RAS). + +**[v3: vmalloc: Modify the alloc_vmap_area() error message for better diagnostics](http://lore.kernel.org/linux-riscv/8a4c62ea-f0be-1644-5c33-18072c1c82de@os.amperecomputing.com/)** + +> This message is misleading because 'vmalloc=' is supported on arm32, x86 +> platforms and is not a valid kernel parameter on a number of other +> platforms (in particular its not supported on arm64,alpha,loongarch,arc, +> csky,hexagon,microblaze,mips,nios2,openrisc,parisc,m64k,powerpc,riscv,sh, +> um,xtensa,s390,sparc). With the update, the output gets modified to +> include the function parameters along with the start and end of the +> virtual memory range allowed. + +**[v16: riscv: sophgo: add clock support for sg2042](http://lore.kernel.org/linux-riscv/cover.1717661798.git.unicorn_wang@outlook.com/)** + +> This series adds clock controller support for sophgo sg2042. + +**[v1: riscv: Per-thread envcfg CSR support](http://lore.kernel.org/linux-riscv/20240605205658.184399-1-samuel.holland@sifive.com/)** + +> This series (or equivalent) is a prerequisite for both user-mode pointer +> masking and CFI support, as those are per-thread features are controlled +> by fields in the envcfg CSR. + +**[v7: Linux RISC-V IOMMU Support](http://lore.kernel.org/linux-riscv/cover.1717612298.git.tjeznach@rivosinc.com/)** + +> This patch series introduces support for RISC-V IOMMU architected +> hardware into the Linux kernel. + +**[v5: Add Svade and Svadu Extensions Support](http://lore.kernel.org/linux-riscv/20240605121512.32083-1-yongxuan.wang@sifive.com/)** + +> Svade and Svadu extensions represent two schemes for managing the PTE A/D +> bit. When the PTE A/D bits need to be set, Svade extension intdicates that +> a related page fault will be raised. + +**[v4: riscv: Memory Hot(Un)Plug support](http://lore.kernel.org/linux-riscv/20240605114100.315918-1-bjorn@kernel.org/)** + +> Memory Hot(Un)Plug support (and ZONE_DEVICE) for the RISC-V port + +**[v0: RISCV: Report vector unaligned accesses hwprobe](http://lore.kernel.org/linux-riscv/20240604162457.3757417-1-jesse@rivosinc.com/)** + +> Detected if a system traps into the kernel on an vector unaligned access. +> Add the result to a new key in hwprobe. + +**[v2: riscv: sophgo: add thermal sensor support for cv180x/sg200x SoCs](http://lore.kernel.org/linux-riscv/SG2PR01MB4218013241B3EED779D3BAE8D7F82@SG2PR01MB4218.apcprd01.prod.exchangelabs.com/)** + +> This series implements driver for Sophgo cv180x/sg200x on-chip thermal +> sensor and adds thermal zones for CV1800B SoCs. + +**[v6: Add support for a few Zc* extensions, Zcmop and Zimop](http://lore.kernel.org/linux-riscv/20240604124550.3214710-1-cleger@rivosinc.com/)** + +> Add support for (yet again) more RVA23U64 missing extensions. Add +> support for Zimop, Zcmop, Zca, Zcf, Zcd and Zcb extensions ISA string +> parsing, hwprobe and kvm support. Zce, Zcmt and Zcmp extensions have +> been left out since they target microcontrollers/embedded CPUs and are +> not needed by RVA23U64. + +**[v2: Add the core reset for UARTs of StarFive JH7110](http://lore.kernel.org/linux-riscv/20240604084729.57239-1-hal.feng@starfivetech.com/)** + +> The UART of StarFive JH7110 needs two reset signals (apb, core) to +> initialize. This patch series adds the missing core reset. + +**[v2: riscv: stacktrace: Add USER_STACKTRACE support](http://lore.kernel.org/linux-riscv/20240604034729.841930-1-ruanjinjie@huawei.com/)** + +> Currently, userstacktrace is unsupported for riscv. So use the +> perf_callchain_user() code as blueprint to implement the +> arch_stack_walk_user() which add userstacktrace support on riscv. +> Meanwhile, we can use arch_stack_walk_user() to simplify the implementation +> of perf_callchain_user(). + +**[v6: RISC-V: ACPI: Add external interrupt controller support](http://lore.kernel.org/linux-riscv/20240601150411.1929783-1-sunilvl@ventanamicro.com/)** + +> This series adds support for the below ECR approved by ASWG. +> The series primarily enables irqchip drivers for RISC-V ACPI based +> platforms. +> The series can be broadly categorized like below. + + +#### LoongArch 架构支持 + +**[v1: loongarch: Only select HAVE_OBJTOOL and allow ORC unwinder if the inline assembler supports R_LARCH_{32,64}_PCREL](http://lore.kernel.org/loongarch/20240604150741.30252-1-xry111@xry111.site/)** + +> GAS <= 2.41 does not support generating R_LARCH_{32,64}_PCREL for +> "label - ." and it generates R_LARCH_{ADD,SUB}{32,64} pairs instead. +> objtool cannot handle R_LARCH_{ADD,SUB}{32,64} pair in __jump_table +> (static key implementation) and etc. + +**[v1: LoongArch: KVM: Discard dirty page tracking on readonly memslot](http://lore.kernel.org/loongarch/20240604121502.1985410-1-maobibo@loongson.cn/)** + +> For readonly memslot such as UEFI bios or UEFI var space, guest can +> not write this memory space directly. So it is not necessary to track +> dirty pages for readonly memslot. Here there is such optimization +> in function kvm_arch_commit_memory_region(). + +#### 进程调度 + +**[v1: sched: Initialize the vruntime of a new task when it is first enqueued](http://lore.kernel.org/lkml/20240606121133.2218723-1-zhangqiao22@huawei.com/)** + +> When create a new task, we initialize vruntime of the new task +> at sched_cgroup_fork(). However, the timing of executing this +> action is too early and may not be accurate. + +**[v1: sched/fair: Prevent cpu_busy_time from exceeding actual_cpu_capacity](http://lore.kernel.org/lkml/20240606070645.3295-1-xuewen.yan@unisoc.com/)** + +> Because the effective_cpu_util() would return a util which +> maybe bigger than the actual_cpu_capacity, this could cause +> the pd_busy_time calculation errors. + +#### 内存管理 + +**[v1: mm: sparse: clarify a variable name and its value](http://lore.kernel.org/linux-mm/20240608152114.867961-1-lsahn@wewakecorp.com/)** + +> Setting 'limit' variable to 0 might seem like it means "no limit". But +> in the memblock API, 0 actually means the 'MEMBLOCK_ALLOC_ACCESSIBLE' +> enum, which limits the physical address range based on +> 'memblock.current_limit'. This can be confusing. + +**[v2: mm: zswap: handle incorrect attempts to load of large folios](http://lore.kernel.org/linux-mm/20240608023654.3513385-1-yosryahmed@google.com/)** + +> Zswap does not support storing or loading large folios. Until proper +> support is added, attempts to load large folios from zswap are a bug. + +**[v2: mm: introduce pmd|pte_needs_soft_dirty_wp helpers and utilize them](http://lore.kernel.org/linux-mm/20240607211358.4660-1-21cnbao@gmail.com/)** + +> This patchset introduces the pte_need_soft_dirty_wp and pmd_need_soft_dirty_wp +> helpers to determine if write protection is required for softdirty tracking. + +**[v2: Introduce a store type enum for the Maple tree](http://lore.kernel.org/linux-mm/20240607185257.963768-1-sidhartha.kumar@oracle.com/)** + +> This series implements two work items: "aligning mas_store_gfp() with +> mas_preallocate()" and "enum for store type". + +**[v7: enable bs > ps in XFS](http://lore.kernel.org/linux-mm/20240607145902.1137853-1-kernel@pankajraghav.com/)** + +> This is the seventh version of the series that enables block size > page size +> (Large Block Size) in XFS targetted for inclusion in 6.11. + +**[v1: 6.6.y: mm: ratelimit stat flush from workingset shrinker](http://lore.kernel.org/linux-mm/171776806121.384105.7980809581420394573.stgit@firesoul/)** + +> One of our workloads (Postgres 14 + sysbench OLTP) regressed on newer +> upstream kernel and on further investigation, it seems like the cause is +> the always synchronous rstat flush in the count_shadow_nodes() added by +> the commit f82e6bf9bb9b ("mm: memcg: use rstat for non-hierarchical +> stats"). + +**[v1: rust: alloc: add __GFP_HIGHMEM flag](http://lore.kernel.org/linux-mm/20240607-highmem-v1-1-d18c5ca4072f@google.com/)** + +> Make it possible to allocate memory that doesn't need to mapped into the +> kernel's address space. This flag is useful together with +> Page::alloc_page . + +**[v1: mm: zswap: add VM_BUG_ON() if large folio swapin is attempted](http://lore.kernel.org/linux-mm/20240606184818.1566920-1-yosryahmed@google.com/)** + +> With ongoing work to support large folio swapin, it is important to make +> sure we do not pass large folios to zswap_load() without implementing +> proper support. + +**[v1: mm: zswap: limit number of zpools based on CPU and RAM](http://lore.kernel.org/linux-mm/20240606165303.431215-1-flintglass@gmail.com/)** + +> This patch limits the number of zpools used by zswap on smaller systems. + +**[v2: mm/memblock: Add "reserve_mem" to reserved named memory at boot up](http://lore.kernel.org/linux-mm/20240606150143.876469296@goodmis.org/)** + +> Reserve unspecified location of physical memory from kernel command line + +**[v1: support large folio swap-out and swap-in for shmem](http://lore.kernel.org/linux-mm/cover.1717673614.git.baolin.wang@linux.alibaba.com/)** + +> Shmem will support large folio allocation to get a better performance, +> however, the memory reclaim still splits the precious large folios when trying +> to swap-out shmem, which may lead to the memory fragmentation issue and can not +> take advantage of the large folio for shmeme. + +**[v1: mm: introduce pmd|pte_need_soft_dirty_wp helpers for softdirty write-protect](http://lore.kernel.org/linux-mm/20240606034016.82559-1-21cnbao@gmail.com/)** + +> This patch introduces the pte_need_soft_dirty_wp and +> pmd_need_soft_dirty_wp helpers to determine if write protection is +> required for softdirty tracking. This can enhance code readability +> and improve its overall appearance. + + +**[v3: maple_tree: modified return type of mas_wr_store_entry()](http://lore.kernel.org/linux-mm/20240606014656.7491-1-rgbi3307@gmail.com/)** + +> Since the return value of mas_wr_store_entry() is not used, +> the return type can be changed to void. + +**[v13: mm: report per-page metadata information](http://lore.kernel.org/linux-mm/20240605222751.1406125-1-souravpanda@google.com/)** + +> This patch adds 2 fields to /proc/vmstat that can used as shown +> below: + +**[v1: mm/mm_init.c: don't initialize page->lru again](http://lore.kernel.org/linux-mm/20240605221436.24627-1-richard.weiyang@gmail.com/)** + +> After init_reserved_page(), we expect __init_single_page() has done its +> work to the page, which already initialize page->lru properly. + +**[v1: Enable P2PDMA in Userspace RDMA](http://lore.kernel.org/linux-mm/20240605192934.742369-1-martin.oliveira@eideticom.com/)** + +> This patch series enables P2PDMA memory to be used in userspace RDMA +> transfers. + +**[v1: ML infrastructure in Linux kernel](http://lore.kernel.org/linux-mm/20240605110219.7356-1-slava@dubeyko.com/)** + +> Initiate a discussion related to an unified +> infrastructure for ML workloads and user-space drivers. + +**[v2: -next: mm/hugetlb_cgroup: rework on cftypes](http://lore.kernel.org/linux-mm/20240605070133.1941677-1-xiujianfeng@huawei.com/)** + +> This patchset provides an intuitive view of the control files through +> static templates of cftypes, improve the readability of the code. + +**[v1: mm/mm_init.c: simplify logic of deferred_[init|free]_pages](http://lore.kernel.org/linux-mm/20240605010742.11667-1-richard.weiyang@gmail.com/)** + +> Function deferred_[init|free]_pages are only used in +> deferred_init_maxorder(), which makes sure the range to init/free is +> within MAX_ORDER_NR_PAGES size. + + +**[v3: ioctl()-based API to query VMAs from /proc//maps](http://lore.kernel.org/linux-mm/20240605002459.4091285-1-andrii@kernel.org/)** + +> Implement binary ioctl()-based interface to /proc//maps file to allow +> applications to query VMA information more efficiently than reading *all* VMAs +> nonselectively through text-based interface of /proc//maps file. + +#### 文件系统 + +**[v1: fs: allow listmount() with reversed ordering](http://lore.kernel.org/linux-fsdevel/20240607-vfs-listmount-reverse-v1-0-7877a2bfa5e5@kernel.org/)** + +> A few smaller cleanups included in this series. + +**[[PATCHES]v1: rework of struct fd handling](http://lore.kernel.org/linux-fsdevel/20240607015656.GX1629371@ZenIV/)** + +> Experimental series trying to sanitize the handling +> of struct fd. Lightly tested, in serious need of review. + +**[v4: Improve readability of copy_tree](http://lore.kernel.org/linux-fsdevel/20240606173912.99442-1-jemmywong512@gmail.com/)** + +> This involves renaming the opaque variables (e.g., p, q, r, s) +> to be more descriptive, aiming to make the code easier to understand. + +**[v5: fs: Improve eventpoll logging to stop indicting timerfd](http://lore.kernel.org/linux-fsdevel/20240606172813.2755930-1-isaacmanjarres@google.com/)** + +> This change addresses this problem by changing the way eventpoll +> wakesources are named + +**[v1: vfs: add rcu-based find_inode variants for iget ops](http://lore.kernel.org/linux-fsdevel/20240606140515.216424-1-mjguzik@gmail.com/)** + +> Instantiating a new inode normally takes the global inode hash lock +> twice: + +**[v2: Employ \`copy mount tree from src to dst` concept in copy_tree](http://lore.kernel.org/linux-fsdevel/20240606052351.32223-1-jemmywong512@gmail.com/)** + +> Variable names in copy_tree (e.g., p, q, r, s) are opaque; +> renaming them to be more descriptive +> would aim to make the code easier to understand. + +**[v1: possible way to deal with dup2() vs. allocated but still not opened descriptors](http://lore.kernel.org/linux-fsdevel/20240605022855.GV1629371@ZenIV/)** + +> It's outside of POSIX scope and any userland code that might +> run into it is buggy. However, we need to make sure that nothing breaks +> kernel-side. We used to have interesting bugs in that area and so did +> *BSD kernels. + +**[v1: fs_parse: add uid & gid option parsing helpers](http://lore.kernel.org/linux-fsdevel/8b06d4d4-3f99-4c16-9489-c6cc549a3daf@redhat.com/)** + +> Multiple filesystems take uid and gid as options, and the code to +> create the ID from an integer and validate it is standard boilerplate +> that can be moved into common parsing helper functions, so do that for +> consistency and less cut&paste. + +**[[HACK PATCH] fs: dodge atomic in putname if ref == 1](http://lore.kernel.org/linux-fsdevel/20240604132448.101183-1-mjguzik@gmail.com/)** + +> The struct used to be refcounted with regular inc/dec ops, atomic usage +> showed up in commit 03adc61edad4 ("audit,io_uring: io_uring openat +> triggers audit reference count underflow"). + +**[v1: NFSv4: set sb_flags to second superblock](http://lore.kernel.org/linux-fsdevel/20240604112636.236517-1-lilingfeng@huaweicloud.com/)** + +> Added sb_flags parameter to d_automount callback function and +> fs_context_for_submount(). +> NFSv4 uses this parameter to set the second superblock. + +**[v2: printk: add threaded printing + the rest](http://lore.kernel.org/linux-fsdevel/20240603232453.33992-1-john.ogness@linutronix.de/)** + +> This is v2 of a series to implement threaded console printing as well +> as some other minor pieces (such as proc and sysfs support). This +> series is only a subset of the original v1 [0]. + +**[v1: iomap: keep on increasing i_size in iomap_write_end()](http://lore.kernel.org/linux-fsdevel/20240603112222.2109341-1-yi.zhang@huaweicloud.com/)** + +> Commit '943bc0882ceb ("iomap: don't increase i_size if it's not a write +> operation")' breaks xfs with realtime device on generic/561, the problem +> is when unaligned truncate down a xfs realtime inode with rtextsize > 1 +> fs block, xfs only zero out the EOF block but doesn't zero out the tail +> blocks that aligned to rtextsize, so if we don't increase i_size in +> iomap_write_end(), it could expose stale data after we do an append +> write beyond the aligned EOF block. + + +**[v1: sys_ringbuffer](http://lore.kernel.org/linux-fsdevel/20240603003306.2030491-1-kent.overstreet@linux.dev/)** + +> New syscall for mapping generic ringbuffers for arbitary (supported) +> file descriptors. + +**[v7: block atomic writes](http://lore.kernel.org/linux-fsdevel/20240602140912.970947-1-john.g.garry@oracle.com/)** + +> This series introduces a proposal to implementing atomic writes in the +> kernel for torn-write protection. + +**[v1: fs/ntfs3: dealing with situations where dir_search_u may return null](http://lore.kernel.org/linux-fsdevel/tencent_706EA97643BAE446F774577CA6D6536A0305@qq.com/)** + +> If hdr_find_e() fails to find an entry in the index buffer, dir_search_u() maybe +> return NULL. + +**[v1: readdir: Add missing quote in macro comment](http://lore.kernel.org/linux-fsdevel/20240602004729.229634-2-thorsten.blum@toblux.com/)** + +> Add a missing double quote in the unsafe_copy_dirent_name() macro +> comment. + +**[v1: blk: optimization for classic polling](http://lore.kernel.org/linux-fsdevel/3578876466-3733-1-git-send-email-nj.shetty@samsung.com/)** + +> This removes the dependency on interrupts to wake up task. Set task +> state as TASK_RUNNING, if need_resched() returns true, +> while polling for IO completion. + +#### 网络设备 + +**[v1: can: treewide: decorate flexible array members with __counted_by()](http://lore.kernel.org/netdev/20240609045419.240265-1-mailhol.vincent@wanadoo.fr/)** + +> A new __counted_by() attribute was introduced in [1]. It makes the +> compiler's sanitizer aware of the actual size of a flexible array +> member, allowing for additional runtime checks. + +**[v2: net-next: net: flow dissector: allow explicit passing of netns](http://lore.kernel.org/netdev/20240608221057.16070-1-fw@strlen.de/)** + +> Change since last version: +> fix kdoc comment warning reported by kbuild robot, no other changes, +> thus retaining RvB tags from Eric and Willem. + +**[v4: bpf-next: bpf: Support dumping kfunc prototypes from BTF](http://lore.kernel.org/netdev/cover.1717881178.git.dxu@dxuuu.xyz/)** + +> This patchset enables both detecting as well as dumping compilable +> prototypes for kfuncs. + +**[v2: net: bnxt_en: Cap the size of HWRM_PORT_PHY_QCFG forwarded response](http://lore.kernel.org/netdev/20240608191335.52174-1-michael.chan@broadcom.com/)** + +> Firmware interface 1.10.2.118 has increased the size of +> HWRM_PORT_PHY_QCFG response beyond the maximum size that can be +> forwarded. When the VF's link state is not the default auto state, +> the PF will need to forward the response back to the VF to indicate +> the forced state. This regression may cause the VF to fail to +> initialize. + +**[v6: af_packet: Handle outgoing VLAN packets without hardware offloading](http://lore.kernel.org/netdev/20240608025347.90680-1-chengen.du@canonical.com/)** + +> The issue initially stems from libpcap. The ethertype will be overwritten +> as the VLAN TPID if the network interface lacks hardware VLAN offloading. + +**[v1: net-next: net: dsa: generate port ifname if exists or invalid](http://lore.kernel.org/netdev/20240608014724.2541990-1-git@johnthomson.fastmail.com.au/)** + +> In the case where a DSA port (via DTB label) had an interface name +> that collided with an existing netdev name, register_netdevice failed +> with -EEXIST, and the port was not usable. + +**[v1: isdn: add missing MODULE_DESCRIPTION() macros](http://lore.kernel.org/netdev/20240607-md-drivers-isdn-v1-1-81fb7001bc3a@quicinc.com/)** + +> make allmodconfig && make W=1 C=1 reports: +> Add the missing invocations of the MODULE_DESCRIPTION() macro. + +**[v1: net/sched: initialize noop_qdisc owner](http://lore.kernel.org/netdev/20240607175340.786bfb938803.I493bf8422e36be4454c08880a8d3703cea8e421a@changeid/)** + +> When the noop_qdisc owner isn't initialized, then it will be 0, +> so packets will erroneously be regarded as having been subject +> to recursion as long as only CPU 0 queues them. + +**[v3: net-next: Enable PTP timestamping/PPS for AM65x SR1.0 devices](http://lore.kernel.org/netdev/20240607-iep-v3-0-4824224105bc@siemens.com/)** + +> This patch series enables support for PTP in AM65x SR1.0 devices. + +**[v5: iwl-net: ice: Do not get coalesce settings while in reset](http://lore.kernel.org/netdev/20240607121552.15127-1-dawid.osuchowski@linux.intel.com/)** + +> Getting coalesce settings while reset is in progress can cause NULL +> pointer deference bug. + +**[v4: can: m_can: don't enable transceiver when probing](http://lore.kernel.org/netdev/20240607105210.155435-1-martin@geanix.com/)** + +> The m_can driver sets and clears the CCCR.INIT bit during probe (both +> when testing the NON-ISO bit, and when configuring the chip). + +**[v4: iwl-next: ice: Add support for devlink local_forwarding param.](http://lore.kernel.org/netdev/20240607104349.823255-1-wojciech.drewek@intel.com/)** + +> Add support for driver-specific devlink local_forwarding param. +> Supported values are "enabled", "disabled" and "prioritized". +> Default configuration is set to "enabled". + +**[v3: net-next: net: core: Unify dstats with tstats and lstats, implement generic dstats collection](http://lore.kernel.org/netdev/20240607-dstats-v3-0-cc781fe116f7@codeconstruct.com.au/)** + +> The struct pcpu_dstats ("dstats") has a few variations from the other +> two stats types (struct pcpu_sw_netstats and struct pcpu_lstats), and +> doesn't have generic helpers for collecting the per-cpu stats into a +> struct rtnl_link_stats64. + +**[v5: Series to deliver Ethernet for STM32MP13](http://lore.kernel.org/netdev/20240607095754.265105-1-christophe.roullier@foss.st.com/)** + +> Rework dwmac glue to simplify management for next stm32 (integrate RFC from Marek) + +**[v20: net-next: Add Realtek automotive PCIe driver](http://lore.kernel.org/netdev/20240607084321.7254-1-justinlai0215@realtek.com/)** + +> This series includes adding realtek automotive ethernet driver +> and adding rtase ethernet driver entry in MAINTAINERS file. + +**[v6: net-next: net: ethernet: mtk_eth_soc: ppe: add support for multiple PPEs](http://lore.kernel.org/netdev/20240607082155.20021-1-eladwf@gmail.com/)** + +> Add the missing pieces to allow multiple PPEs units, one for each GMAC. +> mtk_gdm_config has been modified to work on targted mac ID, +> the inner loop moved outside of the function to allow unrelated +> operations like setting the MAC's PPE index. + +**[v1: CDC-NCM: add support for Apple's private interface](http://lore.kernel.org/netdev/20240607074117.31322-1-oleavr@frida.re/)** + +> This private interface lacks a status endpoint, presumably because there +> isn't a physical cable that can be unplugged, nor any speed changes to +> be notified about. + +**[v2: net-next: net: pse-pd: Add new PSE c33 features](http://lore.kernel.org/netdev/20240607-feature_poe_power_cap-v2-0-c03c2deb83ab@bootlin.com/)** + +> This patch series adds new c33 features to the PSE API. + +**[v13: net-next: Introduce PHY listing and link_topology tracking](http://lore.kernel.org/netdev/20240607071836.911403-1-maxime.chevallier@bootlin.com/)** + +> This is V13 for the link topology addition, allowing to track all PHYs +> that are linked to netdevices. + +**[v1: net: bnxt_en: Adjust logging of firmware messages in case of released token in __hwrm_send()](http://lore.kernel.org/netdev/20240607070613.12156-1-amishin@t-argos.ru/)** + +> In case of token is released due to token->state == BNXT_HWRM_DEFERRED, +> released token (set to NULL) is used in log messages. This issue is +> expected to be prevented by HWRM_ERR_CODE_PF_UNAVAILABLE error code. + +**[v5: net-next: locking: Introduce nested-BH locking.](http://lore.kernel.org/netdev/20240607070427.1379327-1-bigeasy@linutronix.de/)** + +> Disabling bottoms halves acts as per-CPU BKL. On PREEMPT_RT code within +> local_bh_disable() section remains preemtible. As a result high prior +> tasks (or threaded interrupts) will be blocked by lower-prio task (or +> threaded interrupts) which are long running which includes softirq +> sections. + +**[v2: net: gve: ignore nonrelevant GSO type bits when processing TSO headers](http://lore.kernel.org/netdev/20240607060958.2789886-1-joshwash@google.com/)** + +> TSO currently fails when the skb's gso_type field has more than one bit +> set. + +**[v3: ipsec-next: Add IP-TFS mode to xfrm](http://lore.kernel.org/netdev/m27cf1gv8v.fsf@ja.int.chopps.org/)** + +> This patchset adds a new xfrm mode implementing on-demand IP-TFS. IP-TFS +> (AggFrag encapsulation) has been standardized in RFC9347. + +#### 安全增强 + +**[v4: batman-adv: Add flex array to struct batadv_tvlv_tt_data](http://lore.kernel.org/linux-hardening/AS8PR02MB7237205E3231CD335CB988648BFB2@AS8PR02MB7237.eurprd02.prod.outlook.com/)** + +> The "struct batadv_tvlv_tt_data" uses a dynamically sized set of +> trailing elements. Specifically, it uses an array of structures of type +> "batadv_tvlv_tt_vlan_data". So, use the preferred way in the kernel +> declaring a flexible array . + +**[v1: mm/pstore: Reserve named unspecified memory across boots](http://lore.kernel.org/linux-hardening/20240603233330.801075898@goodmis.org/)** + +> Reserve unspecified location of physical memory from kernel command line + +**[v4: Hardening perf subsystem](http://lore.kernel.org/linux-hardening/AS8PR02MB7237F5BFDAA793E15692B3998BFD2@AS8PR02MB7237.eurprd02.prod.outlook.com/)** + +> This is an effort to get rid of all multiplications from allocation +> functions in order to prevent integer overflows . + +#### 异步 IO + +**[v1: Wait on cancelations at release time](http://lore.kernel.org/io-uring/20240604191314.454554-1-axboe@kernel.dk/)** + +> The idea is to ensure that we've done any fputs that we need +> to when a task using a ring exit, so that we don't leave references that +> will get put "shortly afterwards". + +**[v1: io_uring: check for non-NULL file pointer in io_file_can_poll()](http://lore.kernel.org/io-uring/d79f05cf-af34-43a3-a922-63a523050216@kernel.dk/)** + +> In earlier kernels, it was possible to trigger a NULL pointer +> dereference off the forced async preparation path, if no file had +> been assigned. The trace leading to that looks as follows: + +#### Rust For Linux + +**[v2: Rust bindings for cpufreq and OPP core + sample driver](http://lore.kernel.org/rust-for-linux/cover.1717750631.git.viresh.kumar@linaro.org/)** + +> This RFC adds initial rust bindings for two subsystems, cpufreq and operating +> performance points (OPP). The bindings are provided for most of the interface +> these subsystems expose. + +**[v1: Tracepoints and static branch/call in Rust](http://lore.kernel.org/rust-for-linux/20240606-tracepoint-v1-0-6551627bf51b@google.com/)** + +> An important part of a production ready Linux kernel driver is +> tracepoints. So to write production ready Linux kernel drivers in Rust, +> we must be able to call tracepoints from Rust code. This patch series +> adds support for calling tracepoints declared in C from Rust. + +**[v1: arch: um: rust: Add i386 support for Rust](http://lore.kernel.org/rust-for-linux/20240604224052.3138504-1-davidgow@google.com/)** + +> At present, Rust in the kernel only supports 64-bit x86, so UML has +> followed suit. + +**[v5: Rust block device driver API and null block driver](http://lore.kernel.org/rust-for-linux/20240603191455.968301-1-nmi@metaspace.dk/)** + +> This revision includes a check to validate the +> block size in the abstractions rather than in the driver. Also, the \`GenDisk\` +> type state was changed to a builder pattern. + +**[v3: net::phy add unified API for C22 and C45](http://lore.kernel.org/rust-for-linux/20240602231749.57111-1-fujita.tomonori@gmail.com/)** + +> add unified API for C22 and C45, reading/writing registers and +> genphy_read_status(). + +#### BPF + +**[v3: bpf: Using binary search to improve the performance of btf_find_by_name_kind](http://lore.kernel.org/bpf/20240608140835.965949-1-dolinux.peng@gmail.com/)** + +> Currently, we are only using the linear search method to find the type id +> by the name, which has a time complexity of O(n). This change involves +> sorting the names of btf types in ascending order and using binary search, +> which has a time complexity of O(log(n)). + +**[v1: bpf: don't call mmap_read_trylock() from IRQ context](http://lore.kernel.org/bpf/4b875158-1aa7-402e-8861-860a493c49cd@I-love.SAKURA.ne.jp/)** + +> syzbot is reporting that the same local lock is held when trying to +> hold mmap sem from both IRQ enabled context and IRQ context. + +**[v1: bpf-next: bpf: Track delta between "linked" registers.](http://lore.kernel.org/bpf/20240608004446.54199-1-alexei.starovoitov@gmail.com/)** + +> The "undo" pass was introduced in LLVM +> https://reviews.llvm.org/D121937 +> to prevent this optimization, but it cannot cover all cases. + +**[v1: ftrace: Skip __fentry__ location of overridden weak functions](http://lore.kernel.org/bpf/20240607115211.734845-1-zhengyejian1@huawei.com/)** + +> The case is that, based on current compiler behavior + +**[v3: bpftool: Query only cgroup-related attach types](http://lore.kernel.org/bpf/20240607111704.6716-1-tadakentaso@gmail.com/)** + +> From strace and kernel tracing, I found netkit returned ENXIO and this command failed. +> I think this AttachType(BPF_NETKIT_PRIMARY) is not relevant to cgroup. + +**[v11: net-next: Device Memory TCP](http://lore.kernel.org/bpf/20240607005127.3078656-1-almasrymina@google.com/)** + +**[GIT PULL: Networking for v6.10-rc3](http://lore.kernel.org/bpf/20240606162217.3203895-1-kuba@kernel.org/)** + +> Including fixes from BPF and big collection of fixes for WiFi core +> and drivers. + +**[v2: bpf-next: Regular expression support for test output matching](http://lore.kernel.org/bpf/20240606133032.265403-1-cupertino.miranda@oracle.com/)** + +> This is v2 on the regular expression for test output matching patches. + +**[v1: bpf-next: libbpf: auto-attach skeletons struct_ops](http://lore.kernel.org/bpf/20240605175135.117127-1-yatsenko@meta.com/)** + +> Similarly to \`bpf_program\`, support \`bpf_map\` automatic attachment in +> \`bpf_object__attach_skeleton\`. Currently only struct_ops maps could be +> attached. + +**[v2: bpf-next: libbpf: BTF field iterator](http://lore.kernel.org/bpf/20240605001629.4061937-1-andrii@kernel.org/)** + +> Add BTF field (type and string fields, right now) iterator support instead of +> using existing callback-based approaches, which make it harder to understand +> and support BTF-processing code. + +**[v1: bpf-next: uprobe, bpf: Add session support](http://lore.kernel.org/bpf/20240604200221.377848-1-jolsa@kernel.org/)** + +> this patchset is adding support for session uprobe attachment +> and using it through bpf link for bpf programs. + +**[v1: bpf: Support bpf shadow stack](http://lore.kernel.org/bpf/20240604175557.1339832-1-yonghong.song@linux.dev/)** + +> This works for all bpf selftests, but it is expensive. +> To avoid runtime kmalloc, we could preallocate some spaces, +> e.g., percpu pages to be used for stack. This should work +> for non-sleepable programs. + +**[v1: bpf: Support shadow stack](http://lore.kernel.org/bpf/20240604175552.1339642-1-yonghong.song@linux.dev/)** + +> Try to add 3rd argument to bpf program where the 3rd argument +> is the frame pointer to bpf program stack. + +### 周边技术动态 + +#### Qemu + +**[v1: target/riscv: support atomic instruction fetch (Ziccif)](http://lore.kernel.org/qemu-devel/20240607101403.1109-1-jim.shu@sifive.com/)** + +> Support 4-byte atomic instruction fetch when instruction is natural +> aligned. + + +**[v4: target/riscv: Support RISC-V privilege 1.13 spec](http://lore.kernel.org/qemu-devel/20240606135454.119186-1-fea.wang@sifive.com/)** + +> Based on the change log for the RISC-V privilege 1.13 spec, add the +> support for ss1p13. + +**[v4: target/riscv/kvm: QEMU support for KVM Guest Debug on RISC-V](http://lore.kernel.org/qemu-devel/20240606014501.20763-1-duchao@eswincomputing.com/)** + +> This series implements QEMU KVM Guest Debug on RISC-V, with which we +> could debug RISC-V KVM guest from the host side, using software +> breakpoints. + +**[v4: target/riscv: raise an exception when CSRRS/CSRRC writes a read-only CSR](http://lore.kernel.org/qemu-devel/20240604090434.37136-1-yumin686@andestech.com/)** + +> Both CSRRS and CSRRC always read the addressed CSR and cause any read side +> effects regardless of rs1 and rd fields. Note that if rs1 specifies a register +> holding a zero value other than x0, the instruction will still attempt to write +> the unmodified value back to the CSR and will cause any attendant side effects. + + +**[v5: RISC-V: Modularize common match conditions for trigger](http://lore.kernel.org/qemu-devel/20240604041445.244768-1-alvinga@andestech.com/)** + +> This series modularize the code for checking the privilege levels of +> type 2/3/6 triggers by implementing functions trigger_common_match() +> and trigger_priv_match(). + +**[v2: riscv-to-apply queue](http://lore.kernel.org/qemu-devel/20240603111643.258712-1-alistair.francis@wdc.com/)** + +> The following changes since commit 74abb45dac6979e7ff76172b7f0a24e869405184: + +#### Buildroot + +**[[branch/2024.02.x] package/bpftool: enable on riscv](http://lore.kernel.org/buildroot/20240603155720.28B757F8BE@busybox.osuosl.org/)** + +> bpftool supports RISC-V, including rv64 and rv32, so let's enable the +> bpftool package on RISC-V. + +#### U-Boot + +**[v1: Make U-Boot memory reservations coherent](http://lore.kernel.org/u-boot/20240607185240.1892031-1-sughosh.ganu@linaro.org/)** + +> The aim of this patch series is to fix the current state of +> incoherence between modules when it comes to memory usage.