From 0b638b9091a9be50262670f6b303e9e3b592a8a2 Mon Sep 17 00:00:00 2001 From: lucia <11452490+luciafu@user.noreply.gitee.com> Date: Sun, 17 Mar 2024 04:21:10 +0000 Subject: [PATCH] update news/README.md. Signed-off-by: lucia <11452490+luciafu@user.noreply.gitee.com> --- news/README.md | 1050 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1050 insertions(+) diff --git a/news/README.md b/news/README.md index 970e1ff..d20b959 100644 --- a/news/README.md +++ b/news/README.md @@ -6,6 +6,1056 @@ * [2023 年 - 上半年](2023-1st-half.md) * [2023 年 - 下半年](2023-2nd-half.md) +## 20240317:第 83 期 + +### 内核动态 + +#### RISC-V 架构支持 + +**[v1: riscv: Apply Zawrs when available](http://lore.kernel.org/linux-riscv/20240315134009.580167-7-ajones@ventanamicro.com/)** + +> Zawrs provides two instructions (wrs.nto and wrs.sto), where both are +> meant to allow the hart to enter a low-power state while waiting on a +> store to a memory location. +> + +**[v4: riscv: Optimize crc32 with Zbc extension](http://lore.kernel.org/linux-riscv/20240315063828.341306-1-xiao.w.wang@intel.com/)** + +> As suggested by the B-ext spec, the Zbc (carry-less multiplication) +> instructions can be used to accelerate CRC calculations. +> + +**[v3: riscv: sophgo: add dmamux support for Sophgo CV1800/SG2000 SoCs](http://lore.kernel.org/linux-riscv/IA1PR20MB4953E7BB0B270157C8D1DDACBB282@IA1PR20MB4953.namprd20.prod.outlook.com/)** + +> Add dma multiplexer support for the Sophgo CV1800/SG2000 SoCs. +> + +**[v2: Add board-id support for multiple DT selection](http://lore.kernel.org/linux-riscv/1710418312-6559-1-git-send-email-quic_amrianan@quicinc.com/)** + +> The software packages are shipped with multiple device tree blobs supporting +> multiple boards. For instance, suppose we have 3 SoC, each with 4 boards supported, +> along with 2 PMIC support for each case which would lead to total of 24 DTB files. +> + +**[v1: clk: starfive: jh7100: Use provided clocks instead of hardcoded names](http://lore.kernel.org/linux-riscv/898aa0925a9598d44721d00145015b215434cb3b.1710414195.git.geert@linux-m68k.org/)** + +> The Starfive JH7100 clock driver does not use the DT "clocks" property +> to find its external input clocks, but instead relies on the names of +> the actual external clock providers. +> + +**[v5: riscv: pwm: sophgo: add pwm support for CV1800](http://lore.kernel.org/linux-riscv/20240314100131.323540-1-qiujingbao.dlmu@gmail.com/)** + +> The Sophgo CV1800 chip provides a set of four independent +> PWM channel outputs. +> This series adds PWM controller support for Sophgo cv1800. +> + +**[v1: Add StarFive's StarLink-500 Cache Controller](http://lore.kernel.org/linux-riscv/20240314061205.26143-1-joshua.yeong@starfivetech.com/)** + +> StarFive's StarLink-500 Cache Controller flush/invalidates cache using non- +> conventional CMO method. This driver provides the cache handling on StarFive +> RISC-V SoC. +> + +**[v1: riscv: Define TASK_SIZE_MAX for __access_ok()](http://lore.kernel.org/linux-riscv/20240313180010.295747-1-samuel.holland@sifive.com/)** + +> TASK_SIZE_MAX should be set to the largest userspace address under any +> runtime configuration. This optimizes the check in __access_ok(), which +> no longer needs to compute the current value of TASK_SIZE. +> + +**[v1: riscv: uaccess: Allow the last potential unrolled copy](http://lore.kernel.org/linux-riscv/20240313103334.4036554-1-xiao.w.wang@intel.com/)** + +> When the dst buffer pointer points to the last accessible aligned addr, we +> could still run another iteration of unrolled copy. +> + +**[v1: riscv: uaccess: Relax the threshold for fast path](http://lore.kernel.org/linux-riscv/20240313091929.4029960-1-xiao.w.wang@intel.com/)** + +> The bytes copy for unaligned head would cover at most SZREG-1 bytes, so +> it's better to set the threshold as >= (SZREG-1 + word_copy stride size) +> which equals to 9*SZREG-1. +> + +**[v1: riscv: hwprobe: do not produce frtace relocation](http://lore.kernel.org/linux-riscv/20240313085843.17661-1-vladimir.isaev@syntacore.com/)** + +> Such relocation causes crash of android linker similar to one +> described in commit e05d57dcb8c7 +> ("riscv: Fixup __vdso_gettimeofday broke dynamic ftrace"). +> + +**[v4: riscv: hwprobe: export highest virtual userspace address](http://lore.kernel.org/linux-riscv/20240313084554.31925-1-cleger@rivosinc.com/)** + +> Some userspace applications (OpenJDK for instance) uses the free MSBs +> in pointers to insert additional information for their own logic and +> need to get this information from somewhere. +> + +**[v13: riscv: Create and document PR_RISCV_SET_ICACHE_FLUSH_CTX prctl](http://lore.kernel.org/linux-riscv/20240312-fencei-v13-0-4b6bdc2bbf32@rivosinc.com/)** + +> Improve the performance of icache flushing by creating a new prctl flag +> PR_RISCV_SET_ICACHE_FLUSH_CTX. The interface is left generic to allow +> for future expansions such as with the proposed J extension [1]. +> + +**[v1: riscv: Add tracepoints for SBI calls and returns](http://lore.kernel.org/linux-riscv/20240312212441.2322765-1-samuel.holland@sifive.com/)** + +> These are useful for measuring the latency of SBI calls. The SBI HSM +> extension is excluded because those functions are called from contexts +> such as cpuidle where instrumentation is not allowed. +> + +**[v1: riscv: Do not save the scratch CSR during suspend](http://lore.kernel.org/linux-riscv/20240312195641.1830521-1-samuel.holland@sifive.com/)** + +> While the processor is executing kernel code, the value of the scratch +> CSR is always zero, so there is no need to save the value. Continue to +> write the CSR during the resume flow, so we do not rely on firmware to +> initialize it. +> + +**[v12: riscv: Create and document PR_RISCV_SET_ICACHE_FLUSH_CTX prctl](http://lore.kernel.org/linux-riscv/20240312-fencei-v12-0-0f340f004ce7@rivosinc.com/)** + +> Improve the performance of icache flushing by creating a new prctl flag +> PR_RISCV_SET_ICACHE_FLUSH_CTX. The interface is left generic to allow +> for future expansions such as with the proposed J extension [1]. +> + +**[v1: clocksource/drivers/timer-sun4i: Partially convert to a platform driver](http://lore.kernel.org/linux-riscv/20240312192519.1602493-1-samuel.holland@sifive.com/)** + +> Fix this by wrapping the timer initialization in a platform driver. +> builtin_platform_driver_probe() must be used because the driver uses +> timer_of_init(), which is marked as __init. +> + +**[v2: drivers/perf: riscv: Disable PERF_SAMPLE_BRANCH_* while not supported](http://lore.kernel.org/linux-riscv/20240312012053.1178140-1-pulehui@huaweicloud.com/)** + +> RISC-V perf driver does not yet support branch sampling. Although the +> specification is in the works [0], it is best to disable such events +> until support is available, otherwise we will get unexpected results. +> + +**[v2: bpf-next: bpf: make tracing program support multi-link](http://lore.kernel.org/linux-riscv/20240311093526.1010158-1-dongmenglong.8@bytedance.com/)** + +> For now, the BPF program of type BPF_PROG_TYPE_TRACING is not allowed to +> be attached to multiple hooks, and we have to create a BPF program for +> each kernel function, for which we want to trace, even through all the +> program have the same (or similar) logic. +> + +#### 进程调度 + +**[v2: sched/fair: simplify __calc_delta()](http://lore.kernel.org/lkml/20240315020234.22092-1-daweilics@gmail.com/)** + +> Commit 5e963f2bd4654a202a8a05aa3a86cb0300b10e6c ("sched/fair: Commit to +> EEVDF") removed __calc_delta()'s use case where the input weight is not +> equal to NICE_0_LOAD. +> + +**[v1: sched: Improve rq selection for a blocked task when its affinity changes](http://lore.kernel.org/lkml/20240313085817.48892-1-zegao@tencent.com/)** + +> We observered select_idle_sibling() is likely to return the *target* cpu +> early which is likely to be the previous cpu this task is running on even +> + +**[v1: sched/headers: do not set last_queued to 0 in arrive](http://lore.kernel.org/lkml/20240313023920.3338035-1-quic_yingangl@quicinc.com/)** + +> This change leaves enqueue/dequeue on last_queued only, and +> correct the pcount accounting. +> + +#### 内存管理 + +**[v1: mm: memcg: add NULL check to obj_cgroup_put()](http://lore.kernel.org/linux-mm/20240316015803.2777252-1-yosryahmed@google.com/)** + +> 9 out of 16 callers perform a NULL check before calling +> obj_cgroup_put(). Move the NULL check in the function, similar to +> mem_cgroup_put(). +> + +**[v1: sysctl: treewide: constify ctl_table argument of sysctl handlers](http://lore.kernel.org/linux-mm/20240315-sysctl-const-handler-v1-0-1322ac7cb03d@weissschuh.net/)** + +> * Patch 1 is a bugfix for the stack_erasing sysctl handler +> * Patches 2-10 change various helper functions throughout the kernel to +> be able to handle 'const ctl_table'. +> + +**[v1: mm: Increase folio batch size](http://lore.kernel.org/linux-mm/20240315140823.2478146-1-willy@infradead.org/)** + +> On a 104 thread, 2 socket Skylake system, Intel report a 4.7% performance +> reduction with will-it-scale page_fault2. This was due to reducing the +> size of the batch from 32 to 15. +> + +**[v2: mm: support multi-size THP numa balancing](http://lore.kernel.org/linux-mm/903bf13fc3e68b8dc1f256570d78b55b2dd9c96f.1710493587.git.baolin.wang@linux.alibaba.com/)** + +> Now the anonymous page allocation already supports multi-size THP (mTHP), +> but the numa balancing still prohibits mTHP migration even though it is an +> exclusive mapping, which is unreasonable. +> + +**[v2: Revert "mm: skip CMA pages when they are not available"](http://lore.kernel.org/linux-mm/20240315081803.2223-1-liuhailong@oppo.com/)** + +> This reverts +> commit b7108d66318a ("Multi-gen LRU: skip CMA pages when they are not eligible") +> commit 5da226dbfce3 ("mm: skip CMA pages when they are not available") +> + +**[v1: mm/madvise: make MADV_POPULATE_(READ|WRITE) handle VM_FAULT_RETRY properly](http://lore.kernel.org/linux-mm/20240314161300.382526-1-david@redhat.com/)** + +> Derrick reports that in some cases where pread() would fail with -EIO and +> mmap()+access would generate a SIGBUS signal, MADV_POPULATE_READ / +> MADV_POPULATE_WRITE will keep retrying forever and not fail with -EFAULT. +> + +**[v2: vmstat: Keep count of the maximum page reached by the kernel stack](http://lore.kernel.org/linux-mm/20240314145457.1106299-1-pasha.tatashin@soleen.com/)** + +> CONFIG_DEBUG_STACK_USAGE provides a mechanism to determine the minimum +> amount of memory left in a stack. Every time a new low-memory record is +> reached, a message is printed to the console. +> + +**[v1: cpufreq: dt: always allocate zeroed cpumask](http://lore.kernel.org/linux-mm/20240314125457.186678-1-m.szyprowski@samsung.com/)** + +> Commit 0499a78369ad ("ARM64: Dynamically allocate cpumasks and increase +> supported CPUs to 512") changed the handling of cpumasks on ARM 64bit, +> + +**[v1: selftests/mm: virtual_address_range: Switch to ksft_exit_fail_msg](http://lore.kernel.org/linux-mm/20240314122250.68534-1-dev.jain@arm.com/)** + +> mmap() must not succeed in validate_lower_address_hint(), for if it does, it +> is a bug in mmap() itself. Reflect this behaviour with ksft_exit_fail_msg(). +> While at it, do some formatting changes. +> + +**[v1: Add XSAVE layout description to Core files for debuggers to support varying XSAVE layouts](http://lore.kernel.org/linux-mm/20240314112359.50713-1-vigbalas@amd.com/)** + +> This patch proposes to add an extra .note section in the corefile to dump the CPUID information of a machine. This is being done to solve the issue of tools like the debuggers having to deal with coredumps from machines with varying XSAVE layouts in spite of having the same XCR0 bits. +> + +**[v1: selftests: mm: restore settings from only parent process](http://lore.kernel.org/linux-mm/20240314094045.157149-1-usama.anjum@collabora.com/)** + +> The atexit() is called from parent process as well as forked processes. +> Hence the child restores the settings at exit while the parent is still +> executing. Fix this by checking pid of atexit() calling process and only +> restore THP number from parent process. +> + +**[v1: Reliable testing for hugetlb](http://lore.kernel.org/linux-mm/20240314012506.1600378-1-willy@infradead.org/)** + +> We need to handle pages allocated by hugetlbfs differently in a number of +> places. If we have a reference to the folio, there are many methods which +> will work. If we don't, most of our previous attempts can misidentify a +> page which never belonged to hugetlb as belonging to hugetlb. +> + +**[v3: enable bs > ps in XFS](http://lore.kernel.org/linux-mm/20240313170253.2324812-1-kernel@pankajraghav.com/)** + +> This is the third version of the series that enables block size > page size +> (Large Block Size) in XFS. The context and motivation can be seen in cover +> letter of the RFC v1[1]. We also recorded a talk about this effort at LPC [3], +> if someone would like more context on this effort. +> + +**[v10: Support page table check PowerPC](http://lore.kernel.org/linux-mm/20240313042118.230397-1-rmclure@linux.ibm.com/)** + +> Support page table check on all PowerPC platforms. This works by +> serialising assignments, reassignments and clears of page table +> entries at each level in order to ensure that anonymous mappings +> have at most one writable consumer, and likewise that file-backed +> mappings are not simultaneously also anonymous mappings. +> + +**[v1: filemap: replace pte_offset_map() with pte_offset_map_nolock()](http://lore.kernel.org/linux-mm/20240313012913.2395414-1-zhangpeng362@huawei.com/)** + +> The vmf->ptl in filemap_fault_recheck_pte_none() is still set from +> handle_pte_fault(). But at the same time, we did a pte_unmap(vmf->pte). +> After a pte_unmap(vmf->pte) unmap and rcu_read_unlock(), the page table +> may be racily changed and vmf->ptl maybe fails to protect the actual +> page table. +> Fix this by replacing pte_offset_map() with pte_offset_map_nolock(). +> + +**[v3: Cover a guard gap corner case](http://lore.kernel.org/linux-mm/20240312222843.2505560-1-rick.p.edgecombe@intel.com/)** + +> For v3, the change is in the struct vm_unmapped_area_info zeroing patches. +> Per discussion[0], they are switched to a method of intializing the struct +> at the callers that also doesn't leave useless statements as cleanup, but +> is a bit easier to manually inspect for bugs. The arch's that acked the +> old versions are left separate. What's left after that happens in a +> treewide change. +> + +**[v6: zswap: replace RB tree with xarray](http://lore.kernel.org/linux-mm/20240312-zswap-xarray-v6-1-1b82027d7082@kernel.org/)** + +> Very deep RB tree requires rebalance at times. That +> contributes to the zswap fault latencies. Xarray does not +> need to perform tree rebalance. Replacing RB tree to xarray +> can have some small performance gain. +> + +**[v4: Fast kernel headers: split linux/mm.h](http://lore.kernel.org/linux-mm/20240312094133.2084996-1-max.kellermann@ionos.com/)** + +> This patch set aims to clean up the linux/mm.h header and reduce +> dependencies on it by moving parts out. +> + +**[v1: memtest: use {READ,WRITE}_ONCE in memory scanning](http://lore.kernel.org/linux-mm/20240312080422.691222-1-qiang4.zhang@intel.com/)** + +> memtest failed to find bad memory when compiled with clang. So use +> {WRITE,READ}_ONCE to access memory to avoid compiler over optimization. +> + +**[v2: Improved Memory Tier Creation for CPUless NUMA Nodes](http://lore.kernel.org/linux-mm/20240312061729.1997111-1-horenchuang@bytedance.com/)** + +> When a memory device, such as CXL1.1 type3 memory, is emulated as +> normal memory (E820_TYPE_RAM), the memory device is indistinguishable +> from normal DRAM in terms of memory tiering with the current implementation. +> + +**[v1: lib/test_hmm.c: handle src_pfns and dst_pfns allocation failure](http://lore.kernel.org/linux-mm/20240312005905.9939-1-duoming@zju.edu.cn/)** + +> The kcalloc() in dmirror_device_evict_chunk() will return null if +> the physical memory has run out. As a result, if src_pfns or dst_pfns +> is dereferenced, the null pointer dereference bug will happen. +> + +**[v2: mm/migrate: put dest folio on deferred split list if source was there.](http://lore.kernel.org/linux-mm/20240311195848.135067-1-zi.yan@sent.com/)** + +> Commit 616b8371539a6 ("mm: thp: enable thp migration in generic path") +> did not check if a THP is on deferred split list before migration, thus, +> the destination THP is never put on deferred split list even if the source +> THP might be. +> + +**[v1: Dynamic Kernel Stacks](http://lore.kernel.org/linux-mm/20240311164638.2015063-1-pasha.tatashin@soleen.com/)** + +> This feature allows to grow kernel stack dynamically, from 4KiB and up +> to the THREAD_SIZE. The intend is to save memory on fleet machines. From +> the initial experiments it shows to save on average 70-75% of the kernel +> stack memory. +> + +**[v4: Swap-out mTHP without splitting](http://lore.kernel.org/linux-mm/20240311150058.1122862-1-ryan.roberts@arm.com/)** + +> This series adds support for swapping out multi-size THP (mTHP) without needing +> to first split the large folio via split_huge_page_to_list_to_order(). It +> closely follows the approach already used to swap-out PMD-sized THP. +> + +**[v1: mm/slub: Simplify get_partial_node()](http://lore.kernel.org/linux-mm/20240311132720.37741-1-sxwjean@me.com/)** + +> Remove the check of !kmem_cache_has_cpu_partial() because it is always +> false, we've known this by calling kmem_cache_debug() before calling +> remove_partial(), so we can remove the check. +> + +**[v3: Memory management patches needed by Rust Binder](http://lore.kernel.org/linux-mm/20240311-alice-mm-v3-0-cdf7b3a2049c@google.com/)** + +> This patchset contains some abstractions needed by the Rust +> implementation of the Binder driver for passing data between userspace, +> kernelspace, and directly into other processes. +> + +#### 文件系统 + +**[v3: sysctl: treewide: prepare ctl_table_root for ctl_table constification](http://lore.kernel.org/linux-fsdevel/20240315-sysctl-const-ownership-v3-0-b86680eae02e@weissschuh.net/)** + +> The two patches were previously submitted on their own. +> In commit f9436a5d0497 +> ("sysctl: allow to change limits for posix messages queues") +> a code dependency was introduced between the two callbacks. +> This code dependency results in a dependency between the two patches, so +> now they are submitted as a series. +> + +**[v1: cifs: Move some extern decls from .c files to .h](http://lore.kernel.org/linux-fsdevel/4077775.1710524816@warthog.procyon.org.uk/)** + +> Move the following: +> +> extern mempool_t *cifs_sm_req_poolp; +> extern mempool_t *cifs_req_poolp; +> extern mempool_t *cifs_mid_poolp; +> extern bool disable_legacy_dialects; +> +> from various .c files to cifsglob.h. +> + +**[v1: fs,block: get holder during claim](http://lore.kernel.org/linux-fsdevel/20240315-freibad-annehmbar-ca68c375af91@brauner/)** + +> Now that we open block devices as files we need to deal with the +> realities that closing is a deferred operation. An operation on the +> block device such as e.g., freeze, thaw, or removal that runs +> concurrently with umount, tries to acquire a stable reference on the +> holder. +> + +**[v1: -next: fs: Add kernel-doc comments to cuse_process_init_reply()](http://lore.kernel.org/linux-fsdevel/20240315080253.2066-1-yang.lee@linux.alibaba.com/)** + +> This commit adds kernel-doc style comments with complete parameter +> descriptions for the function cuse_process_init_reply. +> + +**[v1: -next: fs: Add kernel-doc comments to proc_create_net_data_write()](http://lore.kernel.org/linux-fsdevel/20240315073805.77463-1-yang.lee@linux.alibaba.com/)** + +> This commit adds kernel-doc style comments with complete parameter +> descriptions for the function proc_create_net_data_write. +> + +**[v1: bit more FS_IOC_GETFSUUID, FS_IOC_GETFSSYSFSPATH](http://lore.kernel.org/linux-fsdevel/20240315035308.3563511-1-kent.overstreet@linux.dev/)** + +> implement FS_IOC_GETFSUUID, FS_IOC_GETFSSYSFSPATH a bit more +> +> also: https://evilpiepirate.org/git/bcachefs.git/commit/?h=bcachefs-sysfs-ioctls +> + +**[Fwd:GIT PULL: vfs uuid](http://lore.kernel.org/linux-fsdevel/CAH2r5mvXYwLJbKJhAVd34zyDcM4YNM5_n4G-aUNjrjG3VT5KQQ@mail.gmail.com/)** + +> Do you have sample programs for these programs (or even better +> mini-xfstest programs) that we can use to make sure this e.g. works +> for cifs.ko (which has similar concept to FS UUID for most remote +> filesystems etc.)? +> + +**[v2: xfs: allow cross-linking special files without project quota](http://lore.kernel.org/linux-fsdevel/20240314170700.352845-3-aalbersh@redhat.com/)** + +> There's an issue that if special files is created before quota +> project is enabled, then it's not possible to link this file. This +> works fine for normal files. This happens because xfs_quota skips +> special files (no ioctls to set necessary flags). The check for +> having the same project ID for source and destination then fails as +> source file doesn't have any ID. +> + +**[v1: afs: Revert "afs: Hide silly-rename files from userspace"](http://lore.kernel.org/linux-fsdevel/3085695.1710328121@warthog.procyon.org.uk/)** + +> This also reverts commit 5f7a07646655fb4108da527565dcdc80124b14c4 ("afs: Fix +> endless loop in directory parsing") as that's a bugfix for the above. +> + +**[GIT PULL: zonefs changes for 6.9-rc1](http://lore.kernel.org/linux-fsdevel/20240311000225.40819-1-dlemoal@kernel.org/)** + +> The following changes since commit 841c35169323cd833294798e58b9bf63fa4fa1de: +> +> Linux 6.8-rc4 (2024-02-11 12:18:13 -0800) +> +> are available in the Git repository at: +> +> ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs tags/zonefs-6.9-rc1 +> + +**[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. +> Earlier, polling task used to sleep, relying on interrupt to wake it up. +> This made some IO take very long when interrupt-coalescing is enabled in +> NVMe. +> + +#### 网络设备 + +**[v1: caif: Use UTILITY_NAME_LENGTH instead of hard-coding 16](http://lore.kernel.org/netdev/af10f5a3236d47fd183487c9dcba3b3b3c66b595.1710584144.git.christophe.jaillet@wanadoo.fr/)** + +> UTILITY_NAME_LENGTH is 16. So better use the former when defining the +> 'utility_name' array. This makes the intent clearer when it is used around +> line 260. +> + +**[v1: iproute2-next: arpd: create /var/lib/arpd on first use](http://lore.kernel.org/netdev/20240316091026.11164-1-mg@max.gautier.name/)** + +> The motivation is to build distributions packages without /var to go +> towards stateless systems, see link below (TL;DR: provisionning anything +> outside of /usr on boot). +> + +**[v1: net: tcp: Clear req->syncookie in reqsk_alloc().](http://lore.kernel.org/netdev/20240315224710.55209-1-kuniyu@amazon.com/)** + +> syzkaller reported a read of uninit req->syncookie. [0] +> +> Originally, req->syncookie was used only in tcp_conn_request() +> to indicate if we need to encode SYN cookie in SYN+ACK, so the +> field remains uninitialised in other places. +> + +**[v1: NXP S32G3 SoC initial bring-up](http://lore.kernel.org/netdev/20240315222754.22366-1-wafgo01@gmail.com/)** + +> This series brings up initial support for the NXP S32G3 SoC (8 x cortex-a53), used on the S32G-VNP-RDB3 board [1]. +> + +**[v11: net-next/bnx2x: refactor common code to bnx2x_stop_nic()](http://lore.kernel.org/netdev/20240315212625.1589-1-thinhtr@linux.ibm.com/)** + +> Refactor common code which disables and releases HW interrupts, deletes +> NAPI objects, into a new bnx2x_stop_nic() function. +> + +**[v11: net/bnx2x: Prevent access to a freed page in page_pool](http://lore.kernel.org/netdev/20240315205535.1321-1-thinhtr@linux.ibm.com/)** + +> Fix race condition leading to system crash during EEH error handling +> +> During EEH error recovery, the bnx2x driver's transmit timeout logic +> could cause a race condition when handling reset tasks. The +> bnx2x_tx_timeout() schedules reset tasks via bnx2x_sp_rtnl_task(), +> which ultimately leads to bnx2x_nic_unload(). +> + +**[v4: net: Report RCU QS for busy network kthreads](http://lore.kernel.org/netdev/cover.1710525524.git.yan@cloudflare.com/)** + +> This changeset fixes a common problem for busy networking kthreads. +> These threads, e.g. NAPI threads, typically will do: +> +> * polling a batch of packets +> * if there are more work, call cond_resched to allow scheduling +> * continue to poll more packets when rx queue is not empty +> + +**[v1: vfs, nfsd, nfs: implement directory delegations](http://lore.kernel.org/netdev/20240315-dir-deleg-v1-0-a1d6209a3654@kernel.org/)** + +> NFSv4.1 adds a new GET_DIR_DELEGATION operation, to allow clients +> to request a delegation on a directory. If the client holds a directory +> delegation, then it knows that nothing will change the dentries in it +> until it has been recalled. +> + +**[v1: net: always initialize sysctl ownership](http://lore.kernel.org/netdev/20240315-sysctl-net-ownership-v1-1-2b465555a292@weissschuh.net/)** + +> The sysctl core does not initialize these fields when the set_ownership +> callback is present. +> So always do it in the callback. +> + +**[v1: net: mlxbf_gige: open() should call request_irq() after NAPI init](http://lore.kernel.org/netdev/20240315145609.23950-1-davthompson@nvidia.com/)** + +> This patch fixes an exception that occurs during open() +> when kdump is enabled. +> + +**[v1: bpf-next: Enhancing selftests/xsk Framework: Maximum and Minimum Ring Configurations](http://lore.kernel.org/netdev/20240315140726.22291-1-tushar.vyavahare@intel.com/)** + +> Please find enclosed a patch set that introduces enhancements and new test +> cases to the selftests/xsk framework. These test the robustness and +> reliability of AF_XDP across both minimal and maximal ring size +> configurations. +> + +**[v2: net: hsr: Handle failures in module init](http://lore.kernel.org/netdev/3ce097c15e3f7ace98fc7fd9bcbf299f092e63d1.1710504184.git.fmaurer@redhat.com/)** + +> A failure during registration of the netdev notifier was not handled at +> all. A failure during netlink initialization did not unregister the netdev +> notifier. +> + +**[v1: net: Do not break out of sk_stream_wait_memory() with TIF_NOTIFY_SIGNAL](http://lore.kernel.org/netdev/20240315100159.3898944-1-s.hauer@pengutronix.de/)** + +> It can happen that a socket sends the remaining data at close() time. +> With io_uring and KTLS it can happen that sk_stream_wait_memory() bails +> out with -512 (-ERESTARTSYS) because TIF_NOTIFY_SIGNAL is set for the +> current task. This flag has been set in io_req_normal_work_add() by +> calling task_work_add(). +> + +**[v2: net: rds: introduce acquire/release ordering in acquire/release_in_xmit()](http://lore.kernel.org/netdev/ZfQUxnNTO9AJmzwc@libra05/)** + +> acquire/release_in_xmit() work as bit lock in rds_send_xmit(), so they +> are expected to ensure acquire/release memory ordering semantics. +> However, test_and_set_bit/clear_bit() don't imply such semantics, on +> top of this, following smp_mb__after_atomic() does not guarantee release +> ordering (memory barrier actually should be placed before clear_bit()). +> + +**[v3: net: i40e: Enforce software interrupt during busy-poll exit](http://lore.kernel.org/netdev/20240315092042.145669-1-ivecera@redhat.com/)** + +> As for ice bug fixed by commit b7306b42beaf ("ice: manage interrupts +> during poll exit") followed by commit 23be7075b318 ("ice: fix software +> generating extra interrupts") I'm seeing the similar issue also with +> i40e driver. +> + +**[v1: net-next: net: phy: aquantia: add support for AQR114C PHY ID](http://lore.kernel.org/netdev/20240315080657.3460084-1-frut3k7@gmail.com/)** + +> Add support for AQR114C PHY ID. This PHY advertise 10G speed +> but supports only up to 5G speed. +> + +**[v2: net-next: net: phy: don't resume device not in use](http://lore.kernel.org/netdev/AM9PR04MB8506791F9A2A1EF4B33AAAF4E2282@AM9PR04MB8506.eurprd04.prod.outlook.com/)** + +> In the case when an MDIO bus contains PHY device not attached to +> any netdev or is attached to the external netdev, controlled +> by another driver and the driver is disabled, the bus, when PM resume +> occurs, is trying to resume also the unattached phydev. +> + +**[v1: net: tools: ynl: add header guards for nlctrl](http://lore.kernel.org/netdev/20240315002108.523232-1-kuba@kernel.org/)** + +> I "extracted" YNL C into a GitHub repo to make it easier +> to use in other projects: https://github.com/linux-netdev/ynl-c +> + +**[v1: net: move dev->state into net_device_read_txrx group](http://lore.kernel.org/netdev/20240314200845.3050179-1-edumazet@google.com/)** + +> dev->state can be read in rx and tx fast paths. +> +> netif_running() which needs dev->state is called from +> - enqueue_to_backlog() [RX path] +> - __dev_direct_xmit() [TX path] +> + +**[v2: iproute2-next: Support for nexthop group statistics](http://lore.kernel.org/netdev/cover.1710427655.git.petrm@nvidia.com/)** + +> Next hop group stats allow verification of balancedness of a next hop +> group. The feature was merged in kernel commit 7cf497e5a122 ("Merge branch +> 'nexthop-group-stats'"). This patchset adds to ip the corresponding +> support. +> + +**[v1: net: packet: annotate data-races around ignore_outgoing](http://lore.kernel.org/netdev/20240314141816.2640229-1-edumazet@google.com/)** + +> ignore_outgoing is read locklessly from dev_queue_xmit_nit() +> and packet_getsockopt() +> +> Add appropriate READ_ONCE()/WRITE_ONCE() annotations. +> + +**[v1: net: provides dim profile fine-tuning channels](http://lore.kernel.org/netdev/1710421773-61277-1-git-send-email-hengqi@linux.alibaba.com/)** + +> The NetDIM library provides excellent acceleration for many modern +> network cards. However, the default profiles of DIM limits its maximum +> capabilities for different NICs, so providing a channel through which +> the NIC can be custom configured is necessary. +> + +**[v1: iproute2: ifstat: handle strdup return value](http://lore.kernel.org/netdev/20240314122040.4644-1-dkirjanov@suse.de/)** + +> get_nlmsg_extended missing the check as it's done +> in get_nlmsg +> + +**[v1: net/sched: Forbid assigning mirred action to a filter attached to the egress](http://lore.kernel.org/netdev/20240314111713.5979-1-renmingshuai@huawei.com/)** + +> As we all know the mirred action is used to mirroring or redirecting the +> packet it receives. +> + +**[v2: net: dsa: mt7530: prevent possible incorrect XTAL frequency selection](http://lore.kernel.org/netdev/=%3Futf-8%3Fq%3F=3C20240314-for-netnext-mt7530-better-fix-xtal-frequen%3F=%20=%3Futf-8%3Fq%3Fcy-v2-1-fe30795593df=40arinc9=2Ecom=3E%3F=/)** + +> On MT7530, the HT_XTAL_FSEL field of the HWTRAP register stores a 2-bit +> value that represents the frequency of the crystal oscillator connected to +> the switch IC. The field is populated by the state of the ESW_P4_LED_0 and +> ESW_P4_LED_0 pins, which is done right after reset is deasserted. +> + +**[v1: atm: Convert sprintf/snprintf to sysfs_emit](http://lore.kernel.org/netdev/20240314084417.1321811-1-lizhijian@fujitsu.com/)** + +> Per filesystems/sysfs.rst, show() should only use sysfs_emit() +> or sysfs_emit_at() when formatting the value to be returned to user space. +> + +**[v1: net: dsa: add return value check of genphy_read_status()](http://lore.kernel.org/netdev/20240314063008.11214-1-adiupina@astralinux.ru/)** + +> Need to check return value of genphy_read_status(), +> because higher in the call hierarchy is the +> dsa_register_switch() function, +> which is used in various drivers. +> + +**[v1: CAPI: return -ENOMEM when kmalloc failed](http://lore.kernel.org/netdev/20240314020103.54049-1-jiapeng.chong@linux.alibaba.com/)** + +> The driver is using -1 instead of the -ENOMEM defined macro to specify +> that a buffer allocation failed. +> + +**[v1: iproute2: ematch: support JSON output](http://lore.kernel.org/netdev/20240314002415.26518-1-stephen@networkplumber.org/)** + +> The ematch in filter was missing support JSON output +> and therefore would generate bogus output. +> + +**[v1: Documentation: networking: document CAN ISO-TP](http://lore.kernel.org/netdev/20240313223445.87170-1-valla.francesco@gmail.com/)** + +> While the in-kernel ISO-TP stack is fully functional and easy to use, no +> documentation exists for it. This patch adds such documentation, +> containing the very basics of the protocol, the APIs and a basic +> example. +> + +**[v4: ipsec-next: xfrm: Add Direction to the SA in or out](http://lore.kernel.org/netdev/515e7c749459afdd61af95bd40ce0d5f2173fc30.1710363570.git.antony.antony@secunet.com/)** + +> This patch introduces the 'dir' attribute, 'in' or 'out', to the +> xfrm_state, SA, enhancing usability by delineating the scope of values +> based on direction. An input SA will now exclusively encompass values +> pertinent to input, effectively segregating them from output-related +> values. This change aims to streamline the configuration process and +> improve the overall clarity of SA attributes. +> + +**[v3: net: veth: ability to toggle GRO and XDP independently](http://lore.kernel.org/netdev/20240313183759.87923-1-ignat@cloudflare.com/)** + +> It is rather confusing that GRO is automatically enabled, when an XDP program +> is attached to a veth interface. Moreover, it is not possible to disable GRO +> on a veth, if an XDP program is attached (which might be desirable in some use +> cases). +> + +**[v1: cxgb4: unnecessary check for 0 in the free_sge_txq_uld() function](http://lore.kernel.org/netdev/20240313153437.124749-1-m.lobanov@rosalinux.ru/)** + +> The free_sge_txq_old() function has an unnecessary txq check of 0. +> This check is not necessary, since the txq pointer is initialized by the +> uldtxq[i] address from the operation &txq_info->uldtxq[i], which ensures +> that txq is not equal to 0. +> + +**[v1: bpf-next: arm64: bpf: zero upper bits after rev32](http://lore.kernel.org/netdev/20240313140205.3191564-1-asavkov@redhat.com/)** + +> Commit d63903bbc30c7 ("arm64: bpf: fix endianness conversion bugs") +> added upper bits zeroing to byteswap operations, but it assumes they +> will be already zeroed after rev32, + +**[v1: netpoll: support sending over raw IP interfaces](http://lore.kernel.org/netdev/20240313124613.51399-1-mark@yotsuba.nl/)** + +> Currently, netpoll only supports interfaces with an ethernet-compatible +> link layer. Certain interfaces like SLIP do not have a link layer +> on the network interface level at all and expect raw IP packets, +> and could benefit from being supported by netpoll. +> + +**[v4: iwl-net: i40e: Prevent setting MTU if greater than MFS](http://lore.kernel.org/netdev/20240313090719.33627-2-e.velu@criteo.com/)** + +> Commit 6871a7de705 ("[intelxl] Use admin queue to set port MAC address +> and maximum frame size") from iPXE project set the MFS to 0x600 = 1536. +> See https://github.com/ipxe/ipxe/commit/6871a7de705 +> + +**[[v2 net PATCH] octeontx2-pf: Disable HW TSO for seg size < 16B](http://lore.kernel.org/netdev/20240313063306.32571-1-gakula@marvell.com/)** + +> Current NIX hardware do not support TSO for the +> segment size less 16 bytes. This patch disable hw +> TSO for such packets. +> + +**[v1: iproute2: constify tc XXX_util structures](http://lore.kernel.org/netdev/20240312221422.81253-1-stephen@networkplumber.org/)** + +> Constify the pointers to tc util struct. Only place it needs +> to mutable is when discovering and linking in new util structs. +> + +#### 安全增强 + +**[v3: checkpatch: add check for snprintf to scnprintf](http://lore.kernel.org/linux-hardening/20240315-snprintf-checkpatch-v3-1-a451e7664306@google.com/)** + +> I am going to quote Lee Jones who has been doing some snprintf -> +> scnprintf refactorings: +> +> "There is a general misunderstanding amongst engineers that +> {v}snprintf() returns the length of the data *actually* encoded into the +> destination array. +> + +**[v1: ubsan: Disable signed integer overflow sanitizer on GCC < 8](http://lore.kernel.org/linux-hardening/20240313181217.work.263-kees@kernel.org/)** + +> For opting functions out of sanitizer coverage, the "no_sanitize" +> attribute is used, but in GCC this wasn't introduced until GCC 8. +> Disable the sanitizer unless we're not using GCC, or it is GCC +> version 8 or higher. +> + +**[v1: hrtimer:Add get_hrtimer_cpu_base()](http://lore.kernel.org/linux-hardening/TYSPR04MB7084FCAF74B4CFA30D386B698A2A2@TYSPR04MB7084.apcprd04.prod.outlook.com/)** + +> On the Arm platform,arch_timer may occur irq strom, +> By using the next_timer of hrtimer_cpu_base, it is +> possible to quickly locate abnormal timers. +> As it is an out of tree modules,the function needs +> to be exproted. +> + +**[v1: gcc-plugins: disable plugins when gmp.h is unavailable](http://lore.kernel.org/linux-hardening/20240312-gcc-plugins-gmp-v1-0-c5e082437b9e@linutronix.de/)** + +> Without gmp.h the plugin build fails. +> + +**[v2: bcachefs: Prefer struct_size over open coded arithmetic](http://lore.kernel.org/linux-hardening/20240310110226.6366-1-erick.archer@gmx.com/)** + +> This is an effort to get rid of all multiplications from allocation +> functions in order to prevent integer overflows [1][2]. +> + +#### 异步 IO + +**[v2: io_uring/net: ensure async prep handlers always initialize ->done_io](http://lore.kernel.org/io-uring/472ec1d4-f928-4a52-8a93-7ccc1af4f362@kernel.dk/)** + +> If we get a request with IOSQE_ASYNC set, then we first run the prep +> async handlers. But if we then fail setting it up and want to post +> a CQE with -EINVAL, we use ->done_io. +> + +**[v1: io_uring/rw: return IOU_ISSUE_SKIP_COMPLETE for multishot retry](http://lore.kernel.org/io-uring/7225a4d1-a499-42e1-83a1-87223e83ba14@kernel.dk/)** + +> If read multishot is being invoked from the poll retry handler, then we +> should return IOU_ISSUE_SKIP_COMPLETE rather than -EAGAIN. If not, then +> a CQE will be posted with -EAGAIN rather than triggering the retry when +> the file is flagged as readable again. +> + +#### Rust For Linux + +**[v1: Rust block device driver API and null block driver](http://lore.kernel.org/rust-for-linux/20240313110515.70088-1-nmi@metaspace.dk/)** + +> This is the second version of the Rust block device driver API and the Rust null +> block driver. The context and motivation can be seen in cover letter of the RFC +> v1 [1]. If more context is required, a talk about this effort was recorded at +> LPC [2]. I hope to be able to discuss this series at LSF this year [3]. +> + +**[v3: Arc methods for linked list](http://lore.kernel.org/rust-for-linux/20240311-arc-for-list-v3-0-cba1883c62eb@google.com/)** + +> This patchset contains two useful methods for the Arc type. They will be +> used in my Rust linked list implementation, which Rust Binder uses. See +> the Rust Binder RFC [1] for more information. Both these commits and +> the linked list that uses them are present in the branch referenced by +> the RFC. +> + +#### BPF + +**[v3: bpf-next: selftests/bpf: scale benchmark counting by using per-CPU counters](http://lore.kernel.org/bpf/20240315213329.1161589-1-andrii@kernel.org/)** + +> When benchmarking with multiple threads (-pN, where N>1), we start +> contending on single atomic counter that both BPF trigger benchmarks are +> using, as well as "baseline" tests in user space (trig-base and +> trig-uprobe-base benchmarks). As such, we start bottlenecking on +> something completely irrelevant to benchmark at hand. +> + +**[v1: bpf-next: BPF raw tracepoint support for BPF cookie](http://lore.kernel.org/bpf/20240315204524.967664-1-andrii@kernel.org/)** + +> Add ability to specify and retrieve BPF cookie for raw tracepoint programs. +> Both BTF-aware (SEC("tp_btf")) and non-BTF-aware (SEC("raw_tp")) are +> supported, as they are exactly the same at runtime. +> + +**[v5: dwarves: pahole: Inject kfunc decl tags into BTF](http://lore.kernel.org/bpf/cover.1710532093.git.dxu@dxuuu.xyz/)** + +> This patchset teaches pahole to parse symbols in .BTF_ids section in +> vmlinux and discover exported kfuncs. Pahole then takes the list of +> kfuncs and injects a BTF_KIND_DECL_TAG for each kfunc. +> + +**[v2: bpf-next: bpf: Allow helper bpf_get_[ns_]current_pid_tgid() for all prog types](http://lore.kernel.org/bpf/20240315184849.2974556-1-yonghong.song@linux.dev/)** + +> Currently bpf_get_current_pid_tgid() is allowed in tracing, cgroup +> and sk_msg progs while bpf_get_ns_current_pid_tgid() is only allowed +> in tracing progs. +> + +**[v4: Extend HID-BPF kfuncs (was: allow HID-BPF to do device IOs)](http://lore.kernel.org/bpf/20240315-b4-hid-bpf-new-funcs-v4-0-079c282469d3@kernel.org/)** + +> New version of the sleepable bpf_timer code, without BPF changes, as +> they can now go through the HID tree independantly: +> +> https://lore.kernel.org/all/20240315-hid-bpf-sleepable-v4-0-5658f2540564@kernel.org/ +> +> For reference, the use cases I have in mind: +> + +**[v4: bpf-next: sleepable bpf_timer (was: allow HID-BPF to do device IOs)](http://lore.kernel.org/bpf/20240315-hid-bpf-sleepable-v4-0-5658f2540564@kernel.org/)** + +> New version of the sleepable bpf_timer code, without the HID changes, as +> they can now go through the HID tree independantly. +> + +**[v1: Introduce capable_any()](http://lore.kernel.org/bpf/20240315113828.258005-11-cgzones@googlemail.com/)** + +> This is especially helpful with regard to SELinux, where each audit +> message about a not allowed capability request will create a denial +> message. Using this new wrapper with the least invasive capability as +> left most argument (e.g. CAP_SYS_NICE before CAP_SYS_ADMIN) enables +> policy writers to only grant the least invasive one for the particular +> subject instead of both. +> + +**[v1: bpf: bpf_doc: use silent mode when exec make cmd](http://lore.kernel.org/bpf/20240315023443.2364442-1-liuhangbin@gmail.com/)** + +> This will distort the reStructuredText output and make latter rst2man +> failed like: +> bpf-helpers.rst:20: (WARNING/2) Field list ends without a blank line; unexpected unindent. +> + +**[v1: bpf: arena followups.](http://lore.kernel.org/bpf/20240315021834.62988-1-alexei.starovoitov@gmail.com/)** + +> A set of follow ups to clean up bpf_arena and adjust to the latest LLVM. +> + +**[v1: bpf: Temporarily disable atomic operations in BPF arena](http://lore.kernel.org/bpf/20240314174931.98702-1-puranjay12@gmail.com/)** + +> Currently, the x86 JIT handling PROBE_MEM32 tagged accesses is not +> equipped to handle atomic accesses into PTR_TO_ARENA, as no PROBE_MEM32 +> tagging is performed and no handling is enabled for them. +> + +**[v2: bpf-next: libbpf: Prevent null-pointer dereference when prog to load has no BTF](http://lore.kernel.org/bpf/20240314150438.232462-1-qmo@kernel.org/)** + +> In bpf_objec_load_prog(), there's no guarantee that obj->btf is non-NULL +> when passing it to btf__fd(), and this function does not perform any +> check before dereferencing its argument (as bpf_object__btf_fd() used to +> do). As a consequence, we get segmentation fault errors in bpftool (for +> example) when trying to load programs that come without BTF information. +> + +**[v2: tools/testing/selftests/bpf/test_tc_tunnel.sh: Prevent client connect before server bind](http://lore.kernel.org/bpf/20240314105911.213411-1-alessandro.carminati@gmail.com/)** + +> In some systems, the netcat server can incur in delay to start listening. +> When this happens, the test can randomly fail in various points. +> + +**[v1: bpf-next: bpf: preserve sleepable bit in subprog info](http://lore.kernel.org/bpf/20240314000127.3881569-1-andrii@kernel.org/)** + +> Copy over main program's sleepable bit into subprog's info. This might +> be important for, e.g., freplace cases. +> + +**[v1: bpf-next: Revert "libbpf: make uniform use of btf__fd() accessor inside libbpf"](http://lore.kernel.org/bpf/20240313172345.75270-1-quentin@isovalent.com/)** + +> There's no guarantee that obj->btf is non-NULL when passing it to +> btf__fd(), and this function doesn't perform any check before +> dereferencing its argument. +> + +**[v1: bpf-next: uprobes: two common case speed ups](http://lore.kernel.org/bpf/20240312210233.1941599-1-andrii@kernel.org/)** + +> This patch set implements two speed ups for uprobe/uretprobe runtime execution +> path for some common scenarios: BPF-only uprobes (patches #1 and #2) and +> system-wide (non-PID-specific) uprobes (patch #3). Please see individual +> patches for details. +> + +**[v4: Add minimal XDP support to TI AM65 CPSW Ethernet driver](http://lore.kernel.org/bpf/20240223-am65-cpsw-xdp-basic-v4-0-38361a63a48b@baylibre.com/)** + +> This patch adds XDP support to TI AM65 CPSW Ethernet driver. +> + +**[GIT PULL: Networking for v6.9](http://lore.kernel.org/bpf/20240312042504.1835743-1-kuba@kernel.org/)** + +> I get what looks like blk-iocost deadlock when I try to run +> your current tree on real Meta servers :( So tested the PR +> merged with your tree only on QEMU and on real HW pure net-next +> without pulling in your tree. +> + +**[v2: drivers/perf: riscv: Disable PERF_SAMPLE_BRANCH_* while not supported](http://lore.kernel.org/bpf/20240312012053.1178140-1-pulehui@huaweicloud.com/)** + +> RISC-V perf driver does not yet support branch sampling. Although the +> specification is in the works [0], it is best to disable such events +> until support is available, otherwise we will get unexpected results. +> + +**[v1: bpf-next: selftests/bpf: Add kprobe multi triggering benchmarks](http://lore.kernel.org/bpf/20240311211023.590321-1-jolsa@kernel.org/)** + +> Adding kprobe multi triggering benchmarks. It's useful now to bench +> new fprobe implementation and might be useful later as well. +> + +**[v2: bpf-next: bpf: hardcode BPF_PROG_PACK_SIZE to 2MB * num_possible_nodes()](http://lore.kernel.org/bpf/20240311122722.86232-1-puranjay12@gmail.com/)** + +> On some architectures like ARM64, PMD_SIZE can be really large in some +> configurations. Like with CONFIG_ARM64_64K_PAGES=y the PMD_SIZE is +> 512MB. +> + +**[v1: libbpf: ringbuf: allow to partially consume items](http://lore.kernel.org/bpf/20240310154726.734289-1-andrea.righi@canonical.com/)** + +> Instead of always consuming all items from a ring buffer in a greedy +> way, allow to stop when the callback returns a value > 0. +> + +### 周边技术动态 + +#### Qemu + +**[v1: Add support for RISC-V ACPI tests](http://lore.kernel.org/qemu-devel/20240315130519.2378765-1-sunilvl@ventanamicro.com/)** + +> Currently, bios-table-test doesn't support RISC-V. This series enables +> the framework changes required and basic testing. Things like NUMA +> related test cases will be added later. +> + +**[v4: target/riscv: Implement dynamic establishment of custom decoder](http://lore.kernel.org/qemu-devel/20240314092158.65866-1-eric.huang@linux.alibaba.com/)** + +> In this patch, we modify the decoder to be a freely composable data +> structure instead of a hardcoded one. It can be dynamically builded up +> according to the extensions. +> + +**[v14: for-9.0: riscv: set vstart_eq_zero on vector insns](http://lore.kernel.org/qemu-devel/20240313220141.427730-1-dbarboza@ventanamicro.com/)** + +> In this version we're fixing a redundant check in the vmvr_v helper that +> was pointed out by in v13. +> + +**[v13: for-9.0: riscv: set vstart_eq_zero on vector insns](http://lore.kernel.org/qemu-devel/20240313193059.405329-1-dbarboza@ventanamicro.com/)** + +> In this new version I added a new patch (patch 4) to handle the case +> pointed out by LIU Zhiwei in v12. I decided to do it in separate since +> it's a distinct case from what we're dealing with in patch 5. +> + +**[v3: target/riscv: raise an exception when CSRRS/CSRRC writes a read-only CSR](http://lore.kernel.org/qemu-devel/20240313015002.72717-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. +> + +**[v1: for-9.0: target/riscv: do not enable all named features by default](http://lore.kernel.org/qemu-devel/20240312203214.350980-1-dbarboza@ventanamicro.com/)** + +> Commit 3b8022269c added the capability of named features/profile +> extensions to be added in riscv,isa. To do that we had to assign priv +> versions for each one of them in isa_edata_arr[]. +> + +**[v2: Add RISC-V Server Platform Reference Board](http://lore.kernel.org/qemu-devel/20240312135222.3187945-1-fei2.wu@intel.com/)** + +> The RISC-V Server Platform specification[1] defines a standardized set +> of hardware and software capabilities, that portable system software, +> such as OS and hypervisors can rely on being present in a RISC-V server +> platform. +> + +**[v12: riscv: set vstart_eq_zero on vector insns](http://lore.kernel.org/qemu-devel/20240311180821.250469-1-dbarboza@ventanamicro.com/)** + +> In this new version we reworked the commit message of patch 4, as +> suggested by Richard, since the solution we went for in patch 3 +> trivialized the removal of 'brcond' since we're doing an early exit if +> vstart >= vl. +> + +**[v11: riscv: set vstart_eq_zero on vector insns](http://lore.kernel.org/qemu-devel/20240311135855.225578-1-dbarboza@ventanamicro.com/)** + +> In this new version, after the comments from LIU Zhiwei in v9 [1], I +> decided to ditch all the patches that were trying to integrate the tail +> update process in a single function. Handling the right value for NF for +> every single function is out of the scope for this bug fix. The patches +> might be useful in the future if we decide that such integration adds +> value, but for now it's too much. +> + +**[v10: riscv: set vstart_eq_zero on mark_vs_dirty](http://lore.kernel.org/qemu-devel/20240310115315.187283-1-dbarboza@ventanamicro.com/)** + +> This version has changes in the wording on patch 9 subject and commit +> msg. The previous subject, "target/riscv: Clear vstart_qe_zero flag", +> isn't accurate. We're not clearing (i.e. setting to false/zero) the +> flag, we're setting the flag to 'true' in the end of each insns. +> + +#### U-Boot + +**[v1: board: sophgo: milkv_duo: Add ethernet support for Milk-V Duo board](http://lore.kernel.org/u-boot/20240310055816.11575-1-seashell11234455@gmail.com/)** + +> This series add init code for cv1800b ethernet phy and enable ethernet +> support for Sophgo Milk-V Duo board. +> + + ## 20240310:第 82 期 ### 内核动态 -- Gitee