From cd115343c60b870d3820c57f391475ce51009ae2 Mon Sep 17 00:00:00 2001 From: yooyoyo <11251868+yooyoyo@user.noreply.gitee.com> Date: Sun, 26 Mar 2023 09:21:17 +0000 Subject: [PATCH] update news/README.md. Signed-off-by: yooyoyo <11251868+yooyoyo@user.noreply.gitee.com> --- news/README.md | 1022 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1022 insertions(+) diff --git a/news/README.md b/news/README.md index b8f7267..24f6e10 100644 --- a/news/README.md +++ b/news/README.md @@ -4,6 +4,1028 @@ * [2022 年](2022.md) +## 20230326:第 39 期 + +### 内核动态 + +#### RISC-V 架构支持 + +**[v9: riscv: Use PUD/P4D/PGD pages for the linear mapping](http://lore.kernel.org/linux-riscv/20230324155421.271544-1-alexghiti@rivosinc.com/)** + +> This patchset intends to improve tlb utilization by using hugepages for +> the linear mapping. +> + +**[v7: function_graph: Support recording and printing the return value of function](http://lore.kernel.org/linux-riscv/20230324123731.3801920-1-pengdonglin@sangfor.com.cn/)** + +> When using the function_graph tracer to analyze system call failures, +> it can be time-consuming to analyze the trace logs and locate the kernel +> function that first returns an error. This change aims to simplify the +> process by recording the function return value to the 'retval' member of +> 'ftrace_graph_ent' and printing it when outputing the trace log. +> + +**[v1: RISC-V: convert new selectors of RISCV_ALTERNATIVE to dependencies](http://lore.kernel.org/linux-riscv/20230324121240.3594777-1-conor.dooley@microchip.com/)** + +> for-next contains two additional extensions that select +> RISCV_ALTERNATIVE. RISCV_ALTERNATIVE no longer needs to be selected by +> individual config options as it is now selected for !XIP_KERNEL builds +> by the top level RISCV option. +> These extensions rely on the alternative framework, so convert the +> "select"s to "depends on"s instead. +> + +**[v1: RISC-V: align Svpbmt Kconfig help text with other extensions](http://lore.kernel.org/linux-riscv/20230324092840.3504267-1-conor.dooley@microchip.com/)** + +> Other extensions only capitalise the first letter in Kconfig text +> menus, and provide a short comment about the extension's meaning. +> Do the same for Svpbmt. +> While editing one of the lines, reformat the "spelling" of 64-bit. +> + +**[v4: -next: riscv: jump_label: Optimize the code size with compressed instruction](http://lore.kernel.org/linux-riscv/20230324082320.290410-1-guoren@kernel.org/)** + +> Reduce the size of the static branch instruction and prevent atomic +> update problems when CONFIG_RISCV_ISA_C=y. It also reduces the jump +> range from 1MB to 4KB, but 4KB is enough for the current riscv +> requirement. +> + +**[v11: -next: riscv: Add independent irq/softirq stacks](http://lore.kernel.org/linux-riscv/20230324071239.151677-1-guoren@kernel.org/)** + +> This patch series adds independent irq/softirq stacks to decrease the +> press of the thread stack. Also, add a thread STACK_SIZE config for +> users to adjust the proper size during compile time. +> + +**[v1: riscv: dts: starfive: jh7110: Correct the properties of S7 core](http://lore.kernel.org/linux-riscv/20230324064651.84670-1-hal.feng@starfivetech.com/)** + +> The S7 core has no L1 data cache and MMU, so delete some +> related properties. +> + +**[v8: riscv: Optimize function trace](http://lore.kernel.org/linux-riscv/20230324033342.3177979-1-suagrfillet@gmail.com/)** + +> The first 3 independent patches has been picked in the V7 version of +> this series, this version continues the following 4 patches. +> + +**[v8: Add Ethernet driver for StarFive JH7110 SoC](http://lore.kernel.org/linux-riscv/20230324022819.2324-1-samin.guo@starfivetech.com/)** + +> This series adds ethernet support for the StarFive JH7110 RISC-V SoC, +> which includes a dwmac-5.20 MAC driver (from Synopsys DesignWare). +> This series has been tested and works fine on VisionFive-2 v1.2A and +> v1.3B SBC boards. +> + +**[v4: Kconfig: introduce HAS_IOPORT option and select it as necessary](http://lore.kernel.org/linux-riscv/20230323163354.1454196-1-schnelle@linux.ibm.com/)** + +> We introduce a new HAS_IOPORT Kconfig option to indicate support for I/O +> Port access. In a future patch HAS_IOPORT=n will disable compilation of +> the I/O accessor functions inb()/outb() and friends on architectures +> which can not meaningfully support legacy I/O spaces such as s390. +> + +**[v16: -next: riscv: Add vector ISA support](http://lore.kernel.org/linux-riscv/20230323145924.4194-1-andy.chiu@sifive.com/)** + +> This patchset is implemented based on vector 1.0 spec to add vector support +> in riscv Linux kernel. There are some assumptions for this implementations. +> + +**[v2: riscv: export cpu/freq invariant to scheduler](http://lore.kernel.org/linux-riscv/20230323123924.3032174-1-suagrfillet@gmail.com/)** + +> RISC-V now manages CPU topology using arch_topology which provides +> CPU capacity and frequency related interfaces to access the cpu/freq +> invariant in possible heterogeneous or DVFS-enabled platforms. +> + +**[v7: RISC-V Hibernation Support](http://lore.kernel.org/linux-riscv/20230323045604.536099-1-jeeheng.sia@starfivetech.com/)** + +> This series adds RISC-V Hibernation/suspend to disk support. +> Low level Arch functions were created to support hibernation. +> swsusp_arch_suspend() relies code from __cpu_suspend_enter() to write +> cpu state onto the stack, then calling swsusp_save() to save the memory +> image. +> + +**[v1: RISC-V: KVM: Require alternatives](http://lore.kernel.org/linux-riscv/20230322192858.1189272-1-ajones@ventanamicro.com/)** + +> KVM makes use of riscv_has_extension_unlikely() to check for the +> svinval extension. riscv_has_extension_unlikely() is built on +> alternatives, which means KVM should ensure alternatives support +> is available. +> + +**[v1: riscv: require alternatives framework when selecting FPU support](http://lore.kernel.org/linux-riscv/20230322120907.2968494-1-Jason@zx2c4.com/)** + +> When moving switch_to's has_fpu() over to using riscv_has_extension_ +> likely() rather than static branchs, the FPU code gained a dependency on +> the alternatives framework. If CONFIG_RISCV_ALTERNATIVE isn't selected +> when CONFIG_FPU is, then has_fpu() returns false, and switch_to does not +> work as intended. So select CONFIG_RISCV_ALTERNATIVE when CONFIG_FPU is +> selected. +> + +**[v6: Add DMA driver for StarFive JH7110 SoC](http://lore.kernel.org/linux-riscv/20230322094820.24738-1-walker.chen@starfivetech.com/)** + +> This patch series adds dma support for the StarFive JH7110 RISC-V +> SoC. The first patch adds device tree binding. The second patch includes +> dma driver. The last patch adds device node of dma to JH7110 dts. +> + +**[v2: Enable I2S support for RK3588/RK3588S SoCs](http://lore.kernel.org/linux-riscv/20230321215624.78383-1-cristian.ciocaltea@collabora.com/)** + +> There are five I2S/PCM/TDM controllers and two I2S/PCM controllers embedded in +> the RK3588 and RK3588S SoCs. Furthermore, RK3588 provides four additional +> I2S/PCM/TDM controllers. +> + +**[v3: Use dma_default_coherent for devicetree default coherency](http://lore.kernel.org/linux-riscv/20230321110813.26808-1-jiaxun.yang@flygoat.com/)** + +> This series split out second half of my previous series +> "v1: MIPS DMA coherence fixes". +> +> It intends to use dma_default_coherent to determine the default coherency of +> devicetree probed devices instead of hardcoding it with Kconfig options. +> + +**[v6: hwmon: Add StarFive JH71X0 temperature sensor](http://lore.kernel.org/linux-riscv/20230321022644.107027-1-hal.feng@starfivetech.com/)** + +> This adds a driver for the temperature sensor on the JH7100 and JH7110, +> RISC-V SoCs by StarFive Technology Co. Ltd.. The JH7100 is used on the +> BeagleV Starlight board and StarFive VisionFive board. The JH7110 is +> used on the StarFive VisionFive 2 board. +> + +**[v2: Add timer driver for StarFive JH7110 RISC-V SoC](http://lore.kernel.org/linux-riscv/20230320135433.144832-1-xingyu.wu@starfivetech.com/)** + +> This patch serises are to add timer driver for the StarFive JH7110 +> RISC-V SoC. The first patch adds documentation to describe device +> tree bindings. The subsequent patch adds timer driver and support +> JH7110 SoC. The last patch adds device node about timer to JH7110 +> dts. +> + +**[v1: -next: support allocating crashkernel above 4G explicitly on riscv](http://lore.kernel.org/linux-riscv/20230320204244.1637821-1-chenjiahao16@huawei.com/)** + +> On riscv, the current crash kernel allocation logic is trying to +> allocate within 32bit addressible memory region by default, if +> failed, try to allocate without 4G restriction. +> + +**[v6: Basic clock, reset & device tree support for StarFive JH7110 RISC-V SoC](http://lore.kernel.org/linux-riscv/20230320103750.60295-1-hal.feng@starfivetech.com/)** + +> This patch series adds basic clock, reset & DT support for StarFive +> JH7110 SoC. +> +> You can simply review or test the patches at the link [1]. +> +> [1]: https://github.com/hal-feng/linux/commits/visionfive2-minimal +> + +**[v1: riscv: mm: execute local TLB flush after populating vmemmap](http://lore.kernel.org/linux-riscv/20230320065324.1045276-1-vincent.chen@sifive.com/)** + +> The vmemmap_populate() creates VA to PA mapping for the VMEMMAP area, where +> all "strcut page" are located once CONFIG_SPARSEMEM_VMEMMAP is defined. +> These "struct page" are later initialized in the zone_sizes_init() +> function. However, during this process, no sfence.vma instruction is +> executed for this VMEMMAP area. +> + +**[v1: Deduplicating RISCV cmpxchg.h macros](http://lore.kernel.org/linux-riscv/20230318080059.1109286-1-leobras@redhat.com/)** + +> While studying riscv's cmpxchg.h file, I got really interested in +> understanding how RISCV asm implemented the different versions of +> {cmp,}xchg. +> +> When I understood the pattern, it made sense for me to remove the +> duplications and create macros to make it easier to understand what exactly +> changes between the versions: Instruction sufixes & barriers. +> + +#### 进程调度 + +**[v1: sched/topology: add for_each_numa_cpu() macro](http://lore.kernel.org/lkml/20230325185514.425745-1-yury.norov@gmail.com/)** + +> for_each_cpu() is widely used in kernel, and it's beneficial to create +> a NUMA-aware version of the macro. +> +> Recently added for_each_numa_hop_mask() works, but switching existing +> codebase to it is not an easy process. +> + +**[v2: sched/core: Reduce cost of sched_move_task when config autogroup](http://lore.kernel.org/lkml/20230321064459.39421-1-wuchi.zero@gmail.com/)** + +> Some sched_move_task calls are useless because that +> task_struct->sched_task_group maybe not changed (equals task_group +> of cpu_cgroup) when system enable autogroup. So do some checks in +> sched_move_task. +> + +**[v1: sched: core: Optimize the structure of 'tg_cfs_schedulable_down' function](http://lore.kernel.org/lkml/20230319200255.3640-1-kunyu@nfschina.com/)** + +> Optimize if branches and define in the branch statement +> block parent_quota variable. +> + +#### 内存管理 + +**[v1: regmap: Add basic maple tree register cache](http://lore.kernel.org/linux-mm/20230325-regcache-maple-v1-0-1c76916359fb@kernel.org/)** + +> The current state of the art for sparse register maps is the rbtree cache. +> This works well for most applications but isn't always ideal for sparser +> register maps since the rbtree can get deep, requiring a lot of walking. +> Fortunately the kernel has a data structure intended to address this very +> problem, the maple tree. Provide an initial implementation of a register +> cache based on the maple tree to start taking advantage of it. +> + +**[v3: userfaultfd: convert userfaultfd functions to use folios](http://lore.kernel.org/linux-mm/20230325065608.601391-1-zhangpeng362@huawei.com/)** + +> This patch series converts several userfaultfd functions to use folios. +> +> Change log: +> + +**[v7: -next: Delay the initialization of zswap](http://lore.kernel.org/linux-mm/20230325071420.2246461-1-liushixin2@huawei.com/)** + +> In the initialization of zswap, about 18MB memory will be allocated for +> zswap_pool. Since some users may not use zswap, the zswap_pool is wasted. +> Save memory by delaying the initialization of zswap until enabled. +> + +**[v9: tracing/user_events: Remote write ABI](http://lore.kernel.org/linux-mm/20230324223028.172-1-beaub@linux.microsoft.com/)** + +> As part of the discussions for user_events aligned with user space +> tracers, it was determined that user programs should register a aligned +> value to set or clear a bit when an event becomes enabled. Currently a +> shared page is being used that requires mmap(). Remove the shared page +> implementation and move to a user registered address implementation. +> + +**[v1: mm/damon/sysfs: make more kobj_type structures constant](http://lore.kernel.org/linux-mm/20230324-b4-kobj_type-damon2-v1-1-48ddbf1c8fcf@weissschuh.net/)** + +> Since commit ee6d3dd4ed48 ("driver core: make kobj_type constant.") +> the driver core allows the usage of const struct kobj_type. +> +> Take advantage of this to constify the structure definition to prevent +> modification at runtime. +> + +**[v2: mm: Be less noisy during memory hotplug](http://lore.kernel.org/linux-mm/20230323174349.35990-1-krckatom@amazon.de/)** + +> Turn a pr_info() into a pr_debug() to prevent dmesg spamming on systems +> where memory hotplug is a frequent operation. +> + +**[v1: selftests/mm: Implement support for arm64 on va](http://lore.kernel.org/linux-mm/20230323105243.2807166-1-chaitanyas.prakash@arm.com/)** + +> The va_128TBswitch selftest is designed and implemented for PowerPC and +> x86 architectures which support a 128TB switch, up to 256TB of virtual +> address space and hugepage sizes of 16MB and 2MB respectively. Arm64 +> platforms on the other hand support a 256Tb switch, up to 4PB of virtual +> address space and a default hugepage size of 512MB when 64k pagesize is +> enabled. +> + +**[v8: convert read_kcore(), vread() to use iterators](http://lore.kernel.org/linux-mm/cover.1679566220.git.lstoakes@gmail.com/)** + +> While reviewing Baoquan's recent changes to permit vread() access to +> vm_map_ram regions of vmalloc allocations, Willy pointed out [1] that it +> would be nice to refactor vread() as a whole, since its only user is +> read_kcore() and the existing form of vread() necessitates the use of a +> bounce buffer. +> + +**[v1: Make rstat flushing IRQ and sleep friendly](http://lore.kernel.org/linux-mm/20230323040037.2389095-1-yosryahmed@google.com/)** + +> Currently, if rstat flushing is invoked using the irqsafe variant +> cgroup_rstat_flush_irqsafe(), we keep interrupts disabled and do not +> sleep for the entire flush operation, which is O(# cpus * # cgroups). +> This can be rather dangerous. +> + +**[v1: iov_iter: Add an iterator-of-iterators](http://lore.kernel.org/linux-mm/3416400.1679508945@warthog.procyon.org.uk/)** + +> Trond Myklebust wrote: +> +> > Add an enum iter_type for ITER_ITER ? :-) +> +> Well, you asked for it... It's actually fairly straightforward once +> ITER_PIPE is removed. +> + +**[v1: memcg v1: provide read access to memory.pressure_level](http://lore.kernel.org/linux-mm/20230322142525.162469-1-flosch@nutanix.com/)** + +> cgroups v1 has a unique way of setting up memory pressure notifications: +> the user opens "memory.pressure_level" of the cgroup they want to +> monitor for pressure, then open "cgroup.event_control" and write the fd +> (among other things) to that file. memory.pressure_level has no other +> use, specifically it does not support any read or write operations. +> Consequently, no handlers are provided, and the file ends up with +> permissions 000. However, to actually use the mechanism, the subscribing +> user must have read access to the file and open the fd for reading, see +> memcg_write_event_control(). +> + +**[v2: Providing mount in memfd_restricted() syscall](http://lore.kernel.org/linux-mm/cover.1679428901.git.ackerleytng@google.com/)** + +> This patchset builds upon the memfd_restricted() system call that was +> discussed in the 'KVM: mm: fd-based approach for supporting KVM' patch +> series, at +> https://lore.kernel.org/lkml/20221202061347.1070246-1-chao.p.peng@linux.intel.com/T/#m7e944d7892afdd1d62a03a287bd488c56e377b0c +> + +**[v1: MAINTAINERS: add myself as vmalloc reviewer](http://lore.kernel.org/linux-mm/55f663af6100c84a71a0065ac0ed22463aa340de.1679421959.git.lstoakes@gmail.com/)** + +> I have recently been involved in both reviewing and submitting patches to +> the vmalloc code in mm and would be willing and happy to help out with +> review going forward if it would be helpful! +> + +#### 文件系统 + +**[v6: ext4: Convert inode preallocation list to an rbtree](http://lore.kernel.org/linux-fsdevel/cover.1679731817.git.ojaswin@linux.ibm.com/)** + +> This patch series aim to improve the performance and scalability of +> inode preallocation by changing inode preallocation linked list to an +> rbtree. I've ran xfstests quick on this series and plan to run auto group +> as well to confirm we have no regressions. +> + +**[v2: Convert most of ext4 to folios](http://lore.kernel.org/linux-fsdevel/20230324180129.1220691-1-willy@infradead.org/)** + +> On top of next-20230321, this converts most of ext4 to use folios instead +> of pages. It does not enable large folios although it fixes some places +> that will need to be fixed before they can be enabled for ext4. It does +> not convert mballoc to use folios. write_begin() and write_end() still +> take a page parameter instead of a folio. +> + +**[v1: fsdax: force clear dirty mark if CoW](http://lore.kernel.org/linux-fsdevel/1679653680-2-1-git-send-email-ruansy.fnst@fujitsu.com/)** + +> XFS allows CoW on non-shared extents to combat fragmentation[1]. The +> old non-shared extent could be mwrited before, its dax entry is marked +> dirty. To be able to delete this entry, clear its dirty mark before +> invalidate_inode_pages2_range(). +> +> [1] https://lore.kernel.org/linux-xfs/20230321151339.GA11376@frogsfrogsfrogs/ +> + +**[v1: netfs: Pass a pointer to virt_to_page()](http://lore.kernel.org/linux-fsdevel/20230324102728.712018-1-linus.walleij@linaro.org/)** + +> Like the other calls in this function virt_to_page() expects +> a pointer, not an integer. +> +> However since many architectures implement virt_to_pfn() as +> a macro, this function becomes polymorphic and accepts both a +> (unsigned long) and a (void *). +> +> Fix this up with an explicit cast. +> + +**[v1: Legacy mount option "sloppy" support](http://lore.kernel.org/linux-fsdevel/167963629788.253682.5439077048343743982.stgit@donald.themaw.net/)** + +> There's been some recent discussion about support of the "sloppy" +> mount option. +> +> It's an option that people want to get rid of from time to time and +> when we do we get complaints and end up having to re-instate it. +> +> I think the (fairly) recent mount API changes are the best way to +> eliminate the need for this option over time. +> + +**[v1: vfs: handle sloppy option in fs context monolithic parser](http://lore.kernel.org/linux-fsdevel/167963635629.253682.12145104262169969353.stgit@donald.themaw.net/)** + +> The sloppy option doesn't make sense for fsconfig() and knowedge of how +> to handle this case needs to be present in the caller. It does make +> sense in the legacy options parser, generic_parse_monolithic(), so it +> should allow for it. +> + +**[v1: fs/buffer: adjust the order of might_sleep() in __getblk_gfp()](http://lore.kernel.org/linux-fsdevel/20230323093752.17461-1-gouhao@uniontech.com/)** + +> If 'bh' is found in cache, just return directly. +> might_sleep() is only required on slow paths. +> + +**[v1: fsdax: unshare: zero destination if srcmap is HOLE or UNWRITTEN](http://lore.kernel.org/linux-fsdevel/1679483469-2-1-git-send-email-ruansy.fnst@fujitsu.com/)** + +> unshare copies data from source to destination. But if the source is +> HOLE or UNWRITTEN extents, we should zero the destination, otherwise the +> result will be unexpectable. +> + +**[v1: fsdax: dedupe should compare the min of two iters' length](http://lore.kernel.org/linux-fsdevel/1679469958-2-1-git-send-email-ruansy.fnst@fujitsu.com/)** + +> In an dedupe corporation iter loop, the length of iomap_iter decreases +> because it implies the remaining length after each iteration. The +> compare function should use the min length of the current iters, not the +> total length. +> + +**[v1: splice: report related fsnotify events](http://lore.kernel.org/linux-fsdevel/20230322062519.409752-1-cccheng@synology.com/)** + +> The fsnotify ACCESS and MODIFY event are missing when manipulating a file +> with splice(2). +> + +**[v2: Add results of early memtest to /proc/meminfo](http://lore.kernel.org/linux-fsdevel/20230321103430.7130-1-tomas.mudrunka@gmail.com/)** + +> Currently the memtest results were only presented in dmesg. +> This adds /proc/meminfo entry which can be easily used by scripts. +> + +**[v1: fuse uring communication](http://lore.kernel.org/linux-fsdevel/20230321011047.3425786-1-bschubert@ddn.com/)** + +> This adds support for uring communication between kernel and +> userspace daemon using opcode the IORING_OP_URING_CMD. The basic +> appraoch was taken from ublk. The patches are in RFC state - +> I'm not sure about all decisions and some questions are marked +> with XXX. +> + +**[v1: Split a folio to any lower order folios](http://lore.kernel.org/linux-fsdevel/20230321004829.2012847-1-zi.yan@sent.com/)** + +> File folio supports any order and people would like to support flexible orders +> for anonymous folio[1] too. Currently, split_huge_page() only splits a huge +> page to order-0 pages, but splitting to orders higher than 0 is also useful. +> This patchset adds support for splitting a huge page to any lower order pages +> and uses it during folio truncate operations. +> + +**[v3: mm: memory-failure: Move memory failure sysctls to its own file](http://lore.kernel.org/linux-fsdevel/20230320074010.50875-1-wangkefeng.wang@huawei.com/)** + +> The sysctl_memory_failure_early_kill and memory_failure_recovery +> are only used in memory-failure.c, move them to its own file. +> + +**[v1: fs: allow to tuck mounts explicitly](http://lore.kernel.org/linux-fsdevel/20230202-fs-move-mount-replace-v1-0-9b73026d5f10@kernel.org/)** + +> Various distributions are adding or are in the process of adding support +> for system extensions and in the future configuration extensions through +> various tools. A more detailed explanation on system and configuration +> extensions can be found on the manpage which is listed below at [1]. +> + +**[v1: 5.10: xfs backports for 5.10.y (from v5.15.103)](http://lore.kernel.org/linux-fsdevel/20230318101529.1361673-1-amir73il@gmail.com/)** + +> Following backports catch up with recent 5.15.y xfs backports. +> +> Patches 1-3 are the backports from the previous 5.15 xfs backports +> round that Chandan requested for 5.4 [1]. +> +> Patches 4-14 are the SGID fixes that I collaborated with Leah [2]. +> Christian has reviewed the backports of his vfs patches to 5.10. +> + +**[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: net-next: Support MACsec VLAN](http://lore.kernel.org/netdev/20230326072636.3507-1-ehakim@nvidia.com/)** + +> Dear maintainers, +> +> This patch series introduces support for hardware (HW) offload MACsec +> devices with VLAN configuration. The patches address both scenarios +> where the VLAN header is both the inner and outer header for MACsec. +> + +**[v1: return errors other than -ENOMEM to socket](http://lore.kernel.org/netdev/97f19214-ba04-c47e-7486-72e8aa16c690@sberdevices.ru/)** + +> this patchset removes behaviour, where error code returned from any +> transport was always switched to ENOMEM. This works in the same way as +> patch from Bobby Eshleman: +> commit c43170b7e157 ("vsock: return errors other than -ENOMEM to socket"), +> but for receive calls. +> +> vsock_test suite is also updated. +> + +**[v5: net-next: allocate multiple skbuffs on tx](http://lore.kernel.org/netdev/b0d15942-65ba-3a32-ba8d-fed64332d8f6@sberdevices.ru/)** + +> This adds small optimization for tx path: instead of allocating single +> skbuff on every call to transport, allocate multiple skbuff's until +> credit space allows, thus trying to send as much as possible data without +> return to af_vsock.c. +> + +**[v19: net-next: vmxnet3: Add XDP support.](http://lore.kernel.org/netdev/20230325172828.24923-1-witu@nvidia.com/)** + +> The patch adds native-mode XDP support: XDP DROP, PASS, TX, and REDIRECT. +> +> Background: +> The vmxnet3 rx consists of three rings: ring0, ring1, and dataring. +> For r0 and r1, buffers at r0 are allocated using alloc_skb APIs and dma +> mapped to the ring's descriptor. If LRO is enabled and packet size larger +> than 3K, VMXNET3_MAX_SKB_BUF_SIZE, then r1 is used to mapped the rest of +> the buffer larger than VMXNET3_MAX_SKB_BUF_SIZE. Each buffer in r1 is +> allocated using alloc_page. So for LRO packets, the payload will be in one +> buffer from r0 and multiple from r1, for non-LRO packets, only one +> descriptor in r0 is used for packet size less than 3k. +> + +**[v1: net: stmmac: don't reject VLANs when IFF_PROMISC is set](http://lore.kernel.org/netdev/20230325112815.3053288-1-vladimir.oltean@nxp.com/)** + +> First, take the case of a Linux bridge. If the kernel is compiled with +> CONFIG_BRIDGE_VLAN_FILTERING=y, then this bridge shall have a VLAN +> database. The bridge shall try to call vlan_add_vid() on its bridge +> ports for each VLAN in the VLAN table. It will do this irrespectively of +> whether that port is *currently* VLAN-aware or not. So it will do this +> even when the bridge was created with vlan_filtering 0. +> But the Linux bridge, in VLAN-unaware mode, configures its ports in +> promiscuous (IFF_PROMISC) mode, so that they accept packets with any +> MAC DA (a switch must do this in order to forward those packets which +> are not directly targeted to its MAC address). +> + +**[v1: driver core: class: mark the struct class for sysfs callbacks as constant](http://lore.kernel.org/netdev/20230325084537.3622280-1-gregkh@linuxfoundation.org/)** + +> struct class should never be modified in a sysfs callback as there is +> nothing in the structure to modify, and frankly, the structure is almost +> never used in a sysfs callback, so mark it as constant to allow struct +> class to be moved to read-only memory. +> +> While we are touching all class sysfs callbacks also mark the attribute +> as constant as it can not be modified. The bonding code still uses this +> structure so it can not be removed from the function callbacks. +> + +**[v2: net-next: tools: ynl: fill in some gaps of ethtool spec](http://lore.kernel.org/netdev/20230324225656.3999785-1-sdf@google.com/)** + +> I was trying to fill in the spec while exploring ethtool API for some +> related work. I don't think I'll have the patience to fill in the rest, +> so decided to share whatever I currently have. +> + +**[v1: net-next: net: phy: bcm7xxx: use devm_clk_get_optional_enabled to simplify the code](http://lore.kernel.org/netdev/5603487f-3b80-b7ec-dbd2-609fa8020e58@gmail.com/)** + +> Use devm_clk_get_optional_enabled to simplify the code. +> + +**[v4: net-next: ynl: add support for user headers and struct attrs](http://lore.kernel.org/netdev/20230324191900.21828-1-donald.hunter@gmail.com/)** + +> Add support for user headers and struct attrs to YNL. This patchset adds +> features to ynl and add a partial spec for openvswitch that demonstrates +> use of the features. +> + +**[v1: net-next: tools: ynl: default to treating enums as flags for mask generation](http://lore.kernel.org/netdev/20230324190356.2418748-1-kuba@kernel.org/)** + +> I was a bit too optimistic in commit bf51d27704c9 ("tools: ynl: fix +> get_mask utility routine"), not every mask we use is necessarily +> coming from an enum of type "flags". We also allow flipping an +> enum into flags on per-attribute basis. That's done by +> the 'enum-as-flags' property of an attribute. +> + +**[v6: net-next: pds_core driver](http://lore.kernel.org/netdev/20230324190243.27722-1-shannon.nelson@amd.com/)** + +> This patchset implements a new driver for use with the AMD/Pensando +> Distributed Services Card (DSC), intended to provide core configuration +> services through the auxiliary_bus and through a couple of EXPORTed +> functions for use initially in VFio and vDPA feature specific drivers. +> + +**[v1: net-next: selftests: tls: add a test for queuing data before setting the ULP](http://lore.kernel.org/netdev/20230324181757.2407412-1-kuba@kernel.org/)** + +> Other tests set up the connection fully on both ends before +> communicating any data. Add a test which will queue up TLS +> records to TCP before the TLS ULP is installed. +> + +**[v1: net-next: net: phy: move getting (R)MII refclock to phylib](http://lore.kernel.org/netdev/0c529488-0fd8-19e1-c5a9-9cf1fab78ed3@gmail.com/)** + +> >From c578be6534254bfc3fd627d9d7be07b1bb46f92c Mon Sep 17 00:00:00 2001 +> Few PHY drivers (smsc, bcm7xxx, micrel) get and enable the (R)MII +> reference clock in their probe() callback. Move this common +> functionality to phylib, this allows to remove it from drivers. +> + +**[v1: net-next: net/core: add optional threading for backlog processing](http://lore.kernel.org/netdev/20230324171314.73537-1-nbd@nbd.name/)** + +> When dealing with few flows or an imbalance on CPU utilization, static RPS +> CPU assignment can be too inflexible. Add support for enabling threaded NAPI +> for backlog processing in order to allow the scheduler to better balance +> processing. This helps better spread the load across idle CPUs. +> + +**[v1: net: ice: make writes to /dev/gnssX synchronous](http://lore.kernel.org/netdev/20230324162056.200752-1-mschmidt@redhat.com/)** + +> The current ice driver's GNSS write implementation buffers writes and +> works through them asynchronously in a kthread. That's bad because: +> - The GNSS write_raw operation is supposed to be synchronous[1][2]. +> - There is no upper bound on the number of pending writes. +> Userspace can submit writes much faster than the driver can process, +> consuming unlimited amounts of kernel memory. +> + +**[v4: vdpa_sim: add support for user VA](http://lore.kernel.org/netdev/20230324153607.46836-1-sgarzare@redhat.com/)** + +> This series adds support for the use of user virtual addresses in the +> vDPA simulator devices. +> +> The main reason for this change is to lift the pinning of all guest memory. +> Especially with virtio devices implemented in software. +> + +**[v1: net: vsock/loopback: use only sk_buff_head.lock to protect the packet queue](http://lore.kernel.org/netdev/20230324115450.11268-1-sgarzare@redhat.com/)** + +> pkt_list_lock was used before commit 71dc9ec9ac7d ("virtio/vsock: +> replace virtio_vsock_pkt with sk_buff") to protect the packet queue. +> After that commit we switched to sk_buff and we are using +> sk_buff_head.lock in almost every place to protect the packet queue +> except in vsock_loopback_work() when we call skb_queue_splice_init(). +> + +**[v1: wpan-next: ieee802154: Handle imited devices](http://lore.kernel.org/netdev/20230324110558.90707-1-miquel.raynal@bootlin.com/)** + +> As rightly pointed out by Alexander a few months ago, ca8210 devices +> will not support sending frames which are not pure datagrams (hardMAC +> wired to the softMAC layer). In order to not confuse users and clarify +> that scanning and beaconing is not supported on these devices, let's add +> a flag to prevent them to be used with the new APIs. +> + +**[v4: bpf-next: xsk: allow remap of fill and/or completion rings](http://lore.kernel.org/netdev/20230324100222.13434-1-nunog@fr24.com/)** + +> The remap of fill and completion rings was frowned upon as they +> control the usage of UMEM which does not support concurrent use. +> At the same time this would disallow the remap of these rings +> into another process. +> +> A possible use case is that the user wants to transfer the socket/ +> UMEM ownership to another process (via SYS_pidfd_getfd) and so +> would need to also remap these rings. +> + +**[v1: Introduce a generic regmap-based MDIO driver](http://lore.kernel.org/netdev/20230324093644.464704-1-maxime.chevallier@bootlin.com/)** + +> When the Altera TSE PCS driver was initially introduced, there were +> comments by Russell that the register layout looked very familiar to the +> existing Lynx PCS driver, the only difference being that the TSE PCS +> driver is memory-mapped whereas the Lynx PCS driver sits on an MDIO bus. +> + +**[[PATCH RESEND net-next 0/3] Constify a few sfp/phy fwnodes](http://lore.kernel.org/netdev/ZB1sBYQnqWbGoasq@shell.armlinux.org.uk/)** + +> This series constifies a bunch of fwnode_handle pointers that are only +> used to refer to but not modify the contents of the fwnode structures. +> +> RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ +> FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last! +> + +**[v1: net-next: Constify a few sfp/phy fwnodes](http://lore.kernel.org/netdev/ZB1rNMAJ9oLr8myx@shell.armlinux.org.uk/)** + +> This series constifies a bunch of fwnode_handle pointers that are only +> used to refer to but not modify the contents of the fwnode structures. +> +> RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ +> FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last! +> + +**[v2: net: dsa: b53: mdio: add support for BCM53134](http://lore.kernel.org/netdev/20230324084138.664285-1-noltari@gmail.com/)** + +> This is based on the initial work from Paul Geurts that was sent to the +> incorrect linux development lists and recipients. +> I've simplified his patches by adding BCM53134 to the is531x5() block since it +> seems that the switch doesn't need a special RGMII config. +> + +**[v1: next: rtlwifi: Replace fake flex-array with flex-array member](http://lore.kernel.org/netdev/ZBz4x+MWoI%2Ff65o1@work/)** + +> Zero-length arrays as fake flexible arrays are deprecated and we are +> moving towards adopting C99 flexible-array members instead. +> + +**[v2: net-next: net: phy: Improved PHY error reporting in state machine](http://lore.kernel.org/netdev/20230323214559.3249977-1-f.fainelli@gmail.com/)** + +> When the PHY library calls phy_error() something bad has happened, and +> we halt the PHY state machine. Calling phy_error() from the main state +> machine however is not precise enough to know whether the issue is +> reading the link status or starting auto-negotiation. +> + +**[v3: net, refcount: Address dst_entry reference count scalability issues](http://lore.kernel.org/netdev/20230323102649.764958589@linutronix.de/)** + +> This is version 3 of this series. Version 2 can be found here: +> +> https://lore.kernel.org/lkml/20230307125358.772287565@linutronix.de +> +> Wangyang and Arjan reported a bottleneck in the networking code related to +> struct dst_entry::__refcnt. Performance tanks massively when concurrency on +> a dst_entry increases. +> + +**[v2: net-next: sfc: support TC decap rules](http://lore.kernel.org/netdev/cover.1679603051.git.ecree.xilinx@gmail.com/)** + +> This series adds support for offloading tunnel decapsulation TC rules to +> ef100 NICs, allowing matching encapsulated packets to be decapsulated in +> hardware and redirected to VFs. +> For now an encap match must be on precisely the following fields: +> ethertype (IPv4 or IPv6), source IP, destination IP, ipproto UDP, +> UDP destination port. This simplifies checking for overlaps in the +> driver; the hardware supports a wider range of match fields which +> future driver work may expose. +> + +**[v2: net: vmxnet3: use gro callback when UPT is enabled](http://lore.kernel.org/netdev/20230323200721.27622-1-doshir@vmware.com/)** + +> Currently, vmxnet3 uses GRO callback only if LRO is disabled. However, +> on smartNic based setups where UPT is supported, LRO can be enabled +> from guest VM but UPT devicve does not support LRO as of now. In such +> cases, there can be performance degradation as GRO is not being done. +> + +#### Rust For Linux + +**[v2: rust: macros: Allow specifying multiple module aliases](http://lore.kernel.org/rust-for-linux/20230224-rust-macros-v2-1-7396e8b7018d@asahilina.net/)** + +> Modules can (and usually do) have multiple alias tags, in order to +> specify multiple possible device matches for autoloading. Allow this by +> changing the alias ModuleInfo field to an Option>. +> + +#### 安全增强 + +**[[RFC/RFT,V2 0/3] Add compiler support for Kernel Control Flow Integrity](http://lore.kernel.org/linux-hardening/20230325081117.93245-1-ashimida.1990@gmail.com/)** + +> This series of patches is mainly used to support the control flow +> integrity protection of the linux kernel [1], which is similar to +> -fsanitize=kcfi in clang 16.0 [2,3]. +> + +**[v1: next: uapi: net: ipv6: Replace fake flex-array with flex-array member](http://lore.kernel.org/linux-hardening/ZBy5bNygP5yxnE9k@work/)** + +> Zero-length arrays as fake flexible arrays are deprecated and we are +> moving towards adopting C99 flexible-array members instead. +> + +**[v1: next: wifi: rndis_wlan: Replace fake flex-array with flexible-array member](http://lore.kernel.org/linux-hardening/ZBtIbU77L9eXqa4j@work/)** + +> Zero-length arrays as fake flexible arrays are deprecated and we are +> moving towards adopting C99 flexible-array members instead. +> +> Address the following warning found with GCC-13 and +> -fstrict-flex-array=3 enabled: +> drivers/net/wireless/rndis_wlan.c:2902:23: warning: array subscript 0 is outside array bounds of ‘struct ndis_80211_auth_request[0]’ [-Warray-bounds=] +> + +#### 异步 IO + +**[v1: io_uring/rw: transform single vector readv/writev into ubuf](http://lore.kernel.org/io-uring/43cb1fb7-b30b-8df1-bba6-e50797d680c6@kernel.dk/)** + +> It's very common to have applications that use vectored reads or writes, +> even if they only pass in a single segment. Obviously they should be +> using read/write at that point, but... +> +> Vectored IO comes with the downside of needing to retain iovec state, +> and hence they require and allocation and state copy if they end up +> getting deferred. Additionally, they also require extra cleanup when +> completed as the memory as the allocated state memory has to be freed. +> + +**[v1: liburing: add multishot timeout support](http://lore.kernel.org/io-uring/20230323233632.2376374-1-davidhwei@meta.com/)** + +> Single change to sync the new IORING_TIMEOUT_MULTISHOT flag with kernel. +> +> Mostly unit tests for multishot timeouts. +> + +**[v1: block/io_uring: pass in issue_flags for uring_cmd task_work handling](http://lore.kernel.org/io-uring/c56fc63e-7e6b-480e-dfdc-417b00802f11@kernel.dk/)** + +> io_uring_cmd_done() currently assumes that the uring_lock is held +> when invoked, and while it generally is, this is not guaranteed. +> Pass in the issue_flags associated with it, so that we have +> IO_URING_F_UNLOCKED available to be able to lock the CQ ring +> appropriately when completing events. +> + + +#### BPF + +**[v1: bpf-next: Don't invoke KPTR_REF destructor on NULL xchg](http://lore.kernel.org/bpf/20230325213144.486885-1-void@manifault.com/)** + +> When a map value is being freed, we loop over all of the fields of the +> corresponding BPF object and issue the appropriate cleanup calls +> corresponding to the field's type. If the field is a referenced kptr, we +> atomically xchg the value out of the map, and invoke the kptr's +> destructor on whatever was there before. +> + +**[v1: bpf-next: First set of verifier/*.c migrated to inline assembly](http://lore.kernel.org/bpf/20230325025524.144043-1-eddyz87@gmail.com/)** + +> This is a follow up for RFC [1]. It migrates a first batch of 38 +> verifier/*.c tests to inline assembly and use of ./test_progs for +> actual execution. The migration is done by a python script (see [2]). +> +> Each migrated verifier/xxx.c file is mapped to progs/verifier_xxx.c +> plus an entry in the prog_tests/verifier.c. One patch per each file. +> + +**[v1: bpf-next: libbpf: synchronize access to print function pointer](http://lore.kernel.org/bpf/20230325010845.46000-1-inwardvessel@gmail.com/)** + +> This patch prevents races on the print function pointer, allowing the +> libbpf_set_print() function to become thread safe. +> + +**[v2: bpf-next: veristat: add better support of freplace programs](http://lore.kernel.org/bpf/20230324232745.3959567-1-andrii@kernel.org/)** + +> Teach veristat how to deal with freplace BPF programs. As they can't be +> directly loaded by veristat without custom user-space part that sets correct +> target program FD, veristat always fails freplace programs. This patch set +> teaches veristat to guess target program type that will be inherited by +> freplace program itself, and subtitute it for BPF_PROG_TYPE_EXT (freplace) one +> for the purposes of BPF verification. +> + +**[v1: bpf-next: bpftool: Add inline annotations when dumping program CFGs](http://lore.kernel.org/bpf/20230324230209.161008-1-quentin@isovalent.com/)** + +> This set contains some improvements for bpftool's "visual" program dump +> option, which produces the control flow graph in a DOT format. The main +> objective is to add support for inline annotations on such graphs, so that +> we can have the C source code for the program showing up alongside the +> instructions, when available. The last commits also make it possible to +> display the line numbers or the bare opcodes in the graph, as supported by +> regular program dumps. +> + +**[v3: Add ftrace direct call for arm64](http://lore.kernel.org/bpf/20230324171451.2752302-1-revest@chromium.org/)** + +> This series adds ftrace direct call support to arm64. +> This makes BPF tracing programs (fentry/fexit/fmod_ret/lsm) work on arm64. +> + +**[v1: capability: test_deny_namespace breakage due to capability conversion to u64](http://lore.kernel.org/bpf/20230324123626.2177476-1-sashal@kernel.org/)** + +> Commit f122a08b197d ("capability: just use a 'u64' instead of a 'u32[2]' +> array") attempts to use BIT_LL() but actually wanted to use BIT_ULL(), +> fix it up to make the test compile and run again. +> + +**[v4: bpf-next: bpf-nex: Add socket destroy capability](http://lore.kernel.org/bpf/20230323200633.3175753-1-aditi.ghag@isovalent.com/)** + +> This patch adds the capability to destroy sockets in BPF. We plan to use +> the capability in Cilium to force client sockets to reconnect when their +> remote load-balancing backends are deleted. The other use case is +> on-the-fly policy enforcement where existing socket connections prevented +> by policies need to be terminated. +> + +**[v2: bpf-next: bpf: add bound tracking for BPF_MOD](http://lore.kernel.org/bpf/20230324045842.729719-1-xukuohai@huaweicloud.com/)** + +> dst_reg is marked as unknown when BPF_MOD instruction is verified, causing +> the following bpf prog to be incorrectly rejected. +> + +**[v12: bpf-next: Transit between BPF TCP congestion controls.](http://lore.kernel.org/bpf/20230323032405.3735486-1-kuifeng@meta.com/)** + +> Previously, BPF struct_ops didn't go off, as even when the user +> program creating it was terminated, none of these ever were pinned. +> For instance, the TCP congestion control subsystem indirectly +> maintains a reference count on the struct_ops of any registered BPF +> implemented algorithm. Thus, the algorithm won't be deactivated until +> someone deliberately unregisters it. For compatibility with other BPF +> programs, bpf_links have been created to work in coordination with +> struct_ops maps. This ensures that the registration and unregistration +> of these respective maps is carried out at the start and end of the +> bpf_link. +> + +**[v1: bpf-next: bpf: remember meta->iter info only for initialized iters](http://lore.kernel.org/bpf/20230322232502.836171-1-andrii@kernel.org/)** + +> For iter_new() functions iterator state's slot might not be yet +> initialized, in which case iter_get_spi() will return -ERANGE. This is +> expected and is handled properly. But for iter_next() and iter_destroy() +> cases iter slot is supposed to be initialized and correct, so -ERANGE is +> not possible. +> + +**[v3: bpf-next: bpf: Use bpf_mem_cache_alloc/free in bpf_local_storage](http://lore.kernel.org/bpf/20230322215246.1675516-1-martin.lau@linux.dev/)** + +> This set is a continuation of the effort in using +> bpf_mem_cache_alloc/free in bpf_local_storage [1] +> +> Major change is only using bpf_mem_alloc for task and cgrp storage +> while sk and inode stay with kzalloc/kfree. The details is +> in patch 2. +> +> [1]: https://lore.kernel.org/bpf/20230308065936.1550103-1-martin.lau@linux.dev/ +> + +**[v2: bpf-next: error checking where helpers call bpf_map_ops](http://lore.kernel.org/bpf/20230322194754.185781-1-inwardvessel@gmail.com/)** + +> Within bpf programs, the bpf helper functions can make inline calls to +> kernel functions. In this scenario there can be a disconnect between the +> register the kernel function writes a return value to and the register the +> bpf program uses to evaluate that return value. +> + +**[v3: bpf-next: XDP-hints kfuncs for Intel driver igc](http://lore.kernel.org/bpf/167950085059.2796265.16405349421776056766.stgit@firesoul/)** + +> Implemented XDP-hints metadata kfuncs for Intel driver igc. +> +> Primarily used the tool in tools/testing/selftests/bpf/ xdp_hw_metadata, +> when doing driver development of these features. Recommend other driver +> developers to do the same. In the process xdp_hw_metadata was updated to +> help assist development. I've documented my practical experience with igc +> and tool here[1]. +> + +**[v1: net-next: virtio_net: refactor xdp codes](http://lore.kernel.org/bpf/20230322030308.16046-1-xuanzhuo@linux.alibaba.com/)** + +> Due to historical reasons, the implementation of XDP in virtio-net is relatively +> chaotic. For example, the processing of XDP actions has two copies of similar +> code. Such as page, xdp_page processing, etc. +> + +**[v10: bpf-next: Transit between BPF TCP congestion controls.](http://lore.kernel.org/bpf/20230321232813.3376064-1-kuifeng@meta.com/)** + +> Major changes: +> +> - Create bpf_links in the kernel for BPF struct_ops to register and +> unregister it. +> +> - Enables switching between implementations of bpf-tcp-cc under a +> name instantly by replacing the backing struct_ops map of a +> bpf_link. +> + +**[v2: bpf-next: bpf: Support ksym detection in light skeleton.](http://lore.kernel.org/bpf/20230321203854.3035-1-alexei.starovoitov@gmail.com/)** + +> v1->v2: update denylist on s390 +> +> Patch 1: Cleanup internal libbpf names. +> Patch 2: Teach the verifier that rdonly_mem != NULL. +> Patch 3: Fix gen_loader to support ksym detection. +> Patch 4: Selftest and update denylist. +> + +**[v3: bpf-next: bpf-next: Add socket destroy capability](http://lore.kernel.org/bpf/20230321184541.1857363-1-aditi.ghag@isovalent.com/)** + +> This patch adds the capability to destroy sockets in BPF. We plan to use +> the capability in Cilium to force client sockets to reconnect when their +> remote load-balancing backends are deleted. The other use case is +> on-the-fly policy enforcement where existing socket connections prevented +> by policies need to be terminated. +> + +**[v2: bpf: xdp: bpf_xdp_metadata use EOPNOTSUPP for no driver support](http://lore.kernel.org/bpf/167940675120.2718408.8176058626864184420.stgit@firesoul/)** + +> When driver doesn't implement a bpf_xdp_metadata kfunc the fallback +> implementation returns EOPNOTSUPP, which indicate device driver doesn't +> implement this kfunc. +> + +**[v1: tracing: Refuse fprobe if RCU is not watching](http://lore.kernel.org/bpf/20230321020103.13494-1-laoar.shao@gmail.com/)** + +> It hits below warning on my test machine when running +> selftests/bpf/test_progs, +> + +**[v2: bpf-next: net: skbuff: skb bitfield compaction - bpf](http://lore.kernel.org/bpf/20230321014115.997841-1-kuba@kernel.org/)** + +> I'm trying to make more of the sk_buff bits optional. +> Move the BPF-accessed bits a little - because they must +> be at coding-time-constant offsets they must precede any +> optional bit. While at it clean up the naming a bit. +> + +### 周边技术动态 + +#### Qemu + +**[v4: for-8.1: target/riscv: rework CPU extensions validation](http://lore.kernel.org/qemu-devel/20230322222004.357013-1-dbarboza@ventanamicro.com/)** + +> In this version I simplified the logic used in write_misa() after +> reviews from Weiwei Li. The patch that handled RVV activation was +> removed, making RVV a regular MISA bit to activate/deactivate. +> + +**[v3: target/riscv: reduce overhead of MSTATUS_SUM change](http://lore.kernel.org/qemu-devel/20230322121240.232303-1-fei2.wu@intel.com/)** + +> Kernel needs to access user mode memory e.g. during syscalls, the window +> is usually opened up for a very limited time through MSTATUS.SUM, the +> overhead is too much if tlb_flush() gets called for every SUM change. +> + +**[v3: qemu: linux-user: Emulate /proc/cpuinfo output for riscv](http://lore.kernel.org/qemu-devel/324c2fd4-7044-0dd9-7ad9-b716fbefa5d9@gmail.com/)** + +> RISC-V does not expose all extensions via hwcaps, thus some userspace +> applications may want to query these via /proc/cpuinfo. +> + ## 20230319:第 38 期 ### 内核动态 -- Gitee