diff --git a/_posts/2024-05-04-01-57-27-rvlwn-89.md b/_posts/2024-05-04-01-57-27-rvlwn-89.md new file mode 100644 index 000000000..e0f986812 --- /dev/null +++ b/_posts/2024-05-04-01-57-27-rvlwn-89.md @@ -0,0 +1,1025 @@ +--- +layout: weekly +author: '呀呀呀' +title: 'RISC-V Linux 内核及周边技术动态第 89 期' +draft: false +group: 'news' +album: 'RISC-V Linux' +license: 'cc-by-nc-nd-4.0' +permalink: /rvlwn-89/ +description: 'RISC-V Linux 内核及周边技术动态第 89 期' +category: + - 开源项目 + - Risc-V +tags: + - Linux + - RISC-V +--- + +> 时间:20240428
+> 编辑:晓怡
+> 仓库:[RISC-V Linux 内核技术调研活动](https://gitee.com/tinylab/riscv-linux)
+> 赞助:PLCT Lab, ISCAS + +## 内核动态 + +### RISC-V 架构支持 + +**[v9: riscv: rtc: sophgo: add rtc support for CV1800](http://lore.kernel.org/linux-riscv/20240428060848.706573-1-qiujingbao.dlmu@gmail.com/)** + +> Real Time Clock (RTC) is an independently powered module +> within the chip, which includes a 32KHz oscillator and +> a Power On Reset/POR submodule. It can be used for time +> display and timed alarm generation. +> + +**[v1: riscv: sophgo: Add SG2042 external hardware monitor support](http://lore.kernel.org/linux-riscv/IA1PR20MB49532A8A0C52FE5C599B6D13BB142@IA1PR20MB4953.namprd20.prod.outlook.com/)** + +> Add support for the onboard hardware monitor for SG2042. +> +> Related SBI patch: +> + +**[v1: riscv: sophgo: add spi nor support for cv1800 series](http://lore.kernel.org/linux-riscv/20240427075426.662671-1-qiujingbao.dlmu@gmail.com/)** + +> add spi nor support for cv1800 series +> + +**[v2: clk: thead: Add support for TH1520 AP_SUBSYS clock controller](http://lore.kernel.org/linux-riscv/20240426-th1520-clk-v2-v2-0-96b829e6fcee@tenstorrent.com/)** + +> This series adds support for the AP sub-system clock controller in the +> T-Head TH1520 [1]. Yangtao Li originally submitted this series in May +> work in progress to me. +> + +**[v1: kprobe/ftrace: bail out if ftrace was killed](http://lore.kernel.org/linux-riscv/20240426225834.993353-1-stephen.s.brennan@oracle.com/)** + +> If an error happens in ftrace, ftrace_kill() will prevent disarming +> kprobes. Eventually, the ftrace_ops associated with the kprobes will be +> freed, yet the kprobes will still be active, and when triggered, they +> will use the freed memory, likely resulting in a page fault and panic. +> + +**[v4: riscv: Support vendor extensions and xtheadvector](http://lore.kernel.org/linux-riscv/20240426-dev-charlie-support_thead_vector_6_9-v4-0-b692f3c516ec@rivosinc.com/)** + +> This patch series ended up much larger than expected, please bear with +> me! The goal here is to support vendor extensions, starting at probing +> the device tree and ending with reporting to userspace. +> + +**[v3: riscv: Apply Zawrs when available](http://lore.kernel.org/linux-riscv/20240426100820.14762-8-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. The instructions also both wait an +> implementation-defined "short" duration (unless the implementation +> terminates the stall for another reason). The difference is that while +> wrs.sto will terminate when the duration elapses, wrs.nto, depending on +> configuration, will either just keep waiting or an ILL exception will be +> raised. Linux will use wrs.nto, so if platforms have an implementation +> which falls in the "just keep waiting" category (which is not expected), +> then it should _not_ advertise Zawrs in the hardware description. +> + +**[v6: mm: jit/text allocator](http://lore.kernel.org/linux-riscv/20240426082854.7355-1-rppt@kernel.org/)** + +> The patches are also available in git: +> https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git/log/?h=execmem/v6 +> + +**[v15: riscv: sophgo: add clock support for sg2042](http://lore.kernel.org/linux-riscv/cover.1714101547.git.unicorn_wang@outlook.com/)** + +> This series adds clock controller support for sophgo sg2042. +> + +**[v9: add support for EXAR XR20M1172 UART](http://lore.kernel.org/linux-riscv/20240425183251.174412-1-rilian.la.te@ya.ru/)** + +> EXAR XR20M1172 UART is mostly SC16IS762-compatible, but +> it has additional register which can change UART multiplier +> to 4x and 8x, similar to UPF_MAGIC_MULTIPLIER does. +> + +**[v4: Add StarFive's StarLink Cache Controller](http://lore.kernel.org/linux-riscv/20240425104841.72379-1-joshua.yeong@starfivetech.com/)** + +> StarFive's StarLink Cache Controller flush/invalidates cache using non- +> conventional RISC-V Zicbom extension instructions. This driver provides the +> cache handling on StarFive RISC-V SoC. +> + +**[v1: Add I2C support on TH1520](http://lore.kernel.org/linux-riscv/20240425082138.374445-1-thomas.bonnefille@bootlin.com/)** + +> This adds I2C support in the device tree of the T-Head TH1520 RISCV-SoC +> and a default configuration for the BeagleV-Ahead. It appears that the +> TH1520 I2C is already supported in the upstream kernel through the +> Synopsis Designware I2C adapter driver. +> + +**[v1: riscv: prevent pt_regs corruption for secondary idle threads](http://lore.kernel.org/linux-riscv/20240424221927.900612-1-geomatsi@gmail.com/)** + +> Top of the kernel thread stack should be reserved for pt_regs. However +> this is not the case for the idle threads of the secondary boot harts. +> Their stacks overlap with their pt_regs, so both may get corrupted. +> + +**[v2: RISC-V: clarify what some RISCV_ISA* config options do](http://lore.kernel.org/linux-riscv/20240424-tabby-plural-5f1d9fe44f47@spud/)** + +> During some discussion on IRC yesterday and on Pu's bpf patch [1] +> I noticed that these RISCV_ISA* Kconfig options are not really clear +> about their implications. Many of these options have no impact on what +> userspace is allowed to do, for example an application can use Zbb +> regardless of whether or not the kernel does. +> + +**[v2: clock, reset: microchip: move all mpfs reset code to the reset subsystem](http://lore.kernel.org/linux-riscv/20240424-strangle-sharpener-34755c5e6e3e@spud/)** + +> Stephen and Philipp, while reviewing patches, said that all of the aux +> device creation and the register read/write code could be moved to the +> reset subsystem, leaving the clock driver with no implementations of +> reset_* functions at all. Move them. +> + +**[v3: Add StarFive's JH8100 StarLink Cache Controller](http://lore.kernel.org/linux-riscv/20240424075856.145850-1-joshua.yeong@starfivetech.com/)** + +> StarFive's JH8100 StarLink Cache Controller flush/invalidates cache using non- +> conventional RISC-V Zicbom extension instructions. This driver provides the +> cache handling on StarFive RISC-V SoC. +> + +**[v1: KVM: selftest: Define _GNU_SOURCE for all selftests code](http://lore.kernel.org/linux-riscv/20240423190308.2883084-1-seanjc@google.com/)** + +> Define _GNU_SOURCE is the base CFLAGS instead of relying on selftests to +> manually #define _GNU_SOURCE, which is repetitive and error prone. +> + +**[v3: Add support for a few Zc* extensions as well as Zcmop](http://lore.kernel.org/linux-riscv/20240423124326.2532796-1-cleger@rivosinc.com/)** + +> Add support for (yet again) more RVA23U64 missing extensions. Add +> support for Zcmop, Zca, Zcf, Zcd and Zcb extensions isa string parsing, +> hwprobe and kvm support. Zce, Zcmt and Zcmp extensions have been left +> out since they target microcontrollers/embedded CPUs and are not needed +> by RVA23U64. +> + +**[v3: sysctl: treewide: constify ctl_table argument of sysctl handlers](http://lore.kernel.org/linux-riscv/20240423-sysctl-const-handler-v3-0-e0beccb836e2@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'. +> * Patch 11 changes the signatures of all proc handlers through the tree. +> Some other signatures are also adapted, for details see the commit +> message. +> + +**[v3: perf kvm: Add kvm stat support on riscv](http://lore.kernel.org/linux-riscv/20240422080833.8745-1-liangshenlin@eswincomputing.com/)** + +> 'perf kvm stat report/record' generates a statistical analysis of KVM +> events and can be used to analyze guest exit reasons. This patch tries +> to add stat support on riscv. +> + +### 进程调度 + +**[v2: sched/eevdf: Prevent vlag from going out of bounds when reweight_eevdf](http://lore.kernel.org/lkml/20240422082238.5784-1-xuewen.yan@unisoc.com/)** + +> kernel encounters the following error when running workload: +> + +### 内存管理 + +**[v1: mm/pagemap: Make trylock_page return bool](http://lore.kernel.org/linux-mm/20240428014711.11169-1-gehao@kylinos.cn/)** + +> Make trylock_page return bool to align the return values of +> folio_trylock function and it also corresponds to its comment. +> + +**[v1: mm/rmap: change the type of we_locked from int to bool](http://lore.kernel.org/linux-mm/20240428012049.8182-1-gehao@kylinos.cn/)** + +> Change the type of we_locked from int to bool +> because folio_trylock return bool +> + +**[v11: mm: report per-page metadata information](http://lore.kernel.org/linux-mm/20240427202840.4123201-1-souravpanda@google.com/)** + +> Adds a global Memmap field to /proc/meminfo. This information can +> be used by users to see how much memory is being used by per-page +> metadata, which can vary depending on build configuration, machine +> architecture, and system use. +> + +**[v1: mm/slub: mark racy access on slab->freelist](http://lore.kernel.org/linux-mm/tencent_579220610AF1240FE3735A3443DBB01F9D07@qq.com/)** + +> In deactivate_slab(), slab->freelist can be changed concurrently. Mark +> data race on slab->freelist as benign using READ_ONCE. +> + +**[v1: mm/swapfile: mark racy access on si->highest_bit](http://lore.kernel.org/linux-mm/tencent_912BC3E8B0291DA4A0028AB424076375DA07@qq.com/)** + +> In scan_swap_map_slots(), si->highest_bit can by changed by +> swap_range_alloc() concurrently. All reads on si->highest_bit except one +> is either protected by lock or read using READ_ONCE. So mark the one racy +> read on si->highest_bit as benign using READ_ONCE. +> + +**[v2: memcg: reduce memory consumption by memcg stats](http://lore.kernel.org/linux-mm/20240427003733.3898961-1-shakeel.butt@linux.dev/)** + +> Most of the memory overhead of a memcg object is due to memcg stats +> maintained by the kernel. Since stats updates happen in performance +> critical codepaths, the stats are maintained per-cpu and numa specific +> stats are maintained per-node * per-cpu. This drastically increase the +> overhead on large machines i.e. large of CPUs and multiple numa nodes. +> + +**[v1: mm/damon: add a DAMOS filter type for page granularity access recheck](http://lore.kernel.org/linux-mm/20240426195247.100306-1-sj@kernel.org/)** + +> Add a new type of DAMOS filter, namely 'young' for such a case. It +> checks each page of DAMOS target region is accessed since the last +> check, and filters it out or in if 'matching' parameter is 'true' or +> 'false', respectively. +> + +**[v5: mm/rmap: do not add fully unmapped large folio to deferred split list](http://lore.kernel.org/linux-mm/20240426190253.541419-1-zi.yan@sent.com/)** + +> In __folio_remove_rmap(), a large folio is added to deferred split list +> if any page in a folio loses its final mapping. But it is possible that +> the folio is fully unmapped and adding it to deferred split list is +> unnecessary. +> + +**[v1: Make find_tcp_vma() more efficient](http://lore.kernel.org/linux-mm/ZivhG0yrbpFqORDw@casper.infradead.org/)** + +> Liam asked me if we could do away with the "bool *mmap_locked" +> parameter, and the problem is that some architctures don't support +> CONFIG_PER_VMA_LOCK yet. But we can abstract it ... something like this +> maybe? +> + +**[v1: mm: use memalloc_nofs_save() in page_cache_ra_order()](http://lore.kernel.org/linux-mm/20240426112938.124740-1-wangkefeng.wang@huawei.com/)** + +> See commit f2c817bed58d ("mm: use memalloc_nofs_save in readahead +> path"), ensure that page_cache_ra_order() do not attempt to reclaim +> file-backed pages too, or it leads to a deadlock, found issue when +> test ext4 large folio. +> + +**[v2: iommu/intel: Free empty page tables on unmaps](http://lore.kernel.org/linux-mm/20240426034323.417219-1-pasha.tatashin@soleen.com/)** + +> This series frees empty page tables on unmaps. It intends to be a +> low overhead feature. +> + +**[v1: mm/slub: Avoid recursive loop with kmemleak](http://lore.kernel.org/linux-mm/20240425205516.work.220-kees@kernel.org/)** + +> The system will immediate fill up stack and crash when both +> CONFIG_DEBUG_KMEMLEAK and CONFIG_MEM_ALLOC_PROFILING are enabled. +> Avoid allocation tagging of kmemleak caches, otherwise recursive +> allocation tracking occurs. +> + +**[v1: alloc_tag: Tighten file permissions on /proc/allocinfo](http://lore.kernel.org/linux-mm/20240425200844.work.184-kees@kernel.org/)** + +> The /proc/allocinfo file exposes a tremendous about of information about +> kernel build details, memory allocations (obviously), and potentially +> even image layout (due to ordering). As this is intended to be consumed +> by system owners (like /proc/slabinfo), use the same file permissions as +> there: 0400. +> + +**[v4: enable bs > ps in XFS](http://lore.kernel.org/linux-mm/20240425113746.335530-1-kernel@pankajraghav.com/)** + +> This is the fourth 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. +> + +**[v2: mm: add more readable thp_vma_allowable_order_foo()](http://lore.kernel.org/linux-mm/20240425035108.3063-1-wangkefeng.wang@huawei.com/)** + +> There are too many bool arguments in thp_vma_allowable_orders(), adding +> some more readable thp_vma_allowable_order_foo(), +> + +**[v1: mm/huge_memory: move writeback and truncation checks early](http://lore.kernel.org/linux-mm/20240424225736.1501030-1-mcgrof@kernel.org/)** + +> We should check as early as possible if we should bail due to writeback +> or truncation. This will allow us to add further sanity checks earlier +> as well. +> + +**[v3: slab: Introduce dedicated bucket allocator](http://lore.kernel.org/linux-mm/20240424213019.make.366-kees@kernel.org/)** + +> Series change history: +> + +**[v11: net-next:pull request: net: intel: start The Great Code Dedup + Page Pool for iavf](http://lore.kernel.org/linux-mm/20240424203559.3420468-1-anthony.l.nguyen@intel.com/)** + +> Not a secret there's a ton of code duplication between two and more Intel +> ethernet modules. Before introducing new changes, which would need to be +> copied over again, start decoupling the already existing duplicate +> functionality into a new module, which will be shared between several +> Intel Ethernet drivers. +> + +**[v3: clean-up for create_kmalloc_caches()](http://lore.kernel.org/linux-mm/20240424140422.12780-1-hyunminlr@gmail.com/)** + +> I am cleanning up unnecessary code in create_kmalloc_caches(). I added +> one more commit to remove the check for NULL kmalloc_cachee according to +> the review comments like below. +> + +**[v2: mm: migrate: support poison recover from migrate folio](http://lore.kernel.org/linux-mm/20240424135929.2847185-1-wangkefeng.wang@huawei.com/)** + +> The folio migration is widely used in kernel, memory compaction, memory +> hotplug, soft offline page, numa balance, memory demote/promotion, etc, +> but once access a poisoned source folio when migrating, the kerenl will +> panic. +> + +**[v1: mm: introduce per-order mTHP split counters](http://lore.kernel.org/linux-mm/20240424135148.30422-1-ioworker0@gmail.com/)** + +> At present, the split counters in THP statistics no longer include +> PTE-mapped mTHP. Therefore, we want to introduce per-order mTHP split +> counters to monitor the frequency of mTHP splits. This will assist +> developers in better analyzing and optimizing system performance. +> + +**[v1: selftests/mm: soft-dirty should fail if a testcase fails](http://lore.kernel.org/linux-mm/20240424105301.3157695-1-ryan.roberts@arm.com/)** + +> Previously soft-dirty was unconditionally exiting with success, even if +> one of it's testcases failed. Let's fix that so that failure can be +> reported to automated systems properly. +> + +**[v2: percpu: simplify the logic of pcpu_alloc_first_chunk()](http://lore.kernel.org/linux-mm/20240424082730.99945-1-ytcoode@gmail.com/)** + +> In the logic for hiding the end region of the chunk, there are several +> places where the same value 'region_bits - offset_bits' is calculated +> over and over again using different methods. Eliminating these redundant +> calculations can improve code readability. +> + +**[v1: branch prediction hint](http://lore.kernel.org/linux-mm/20240423192825.1273679-1-jeffxu@chromium.org/)** + +> This is followup patch on discussion happened during mseal v10 discussion [1] +> +> Add branch perdiction hint to mseal code. +> + +**[v2: ptdump: add non-leaf descriptor support](http://lore.kernel.org/linux-mm/20240423142307.495726312-1-mbland@motorola.com/)** + +> Add an optional note_non_leaf parameter to ptdump, causing note_page to +> be called on non-leaf descriptors. Implement this functionality on arm64 +> by printing table descriptors along with table-specific permission sets. +> + +### 网络设备 + +> * v3: [net-next: Introduce RVU representors](http://lore.kernel.org/netdev/20240428105312.9731-1-gakula@marvell.com/) +> +> This series adds representor support for each rvu devices. +> When switchdev mode is enabled, representor netdev is registered +> for each rvu device. +> + +**[v1: net-next: net: dsa: realtek: provide own phylink MAC operations](http://lore.kernel.org/netdev/E1s11qJ-00AHi0-Kk@rmk-PC.armlinux.org.uk/)** + +> Convert realtek to provide its own phylink MAC operations, thus +> avoiding the shim layer in DSA's port.c. We need to provide a stub for +> the mandatory mac_config() method for rtl8366rb. +> + +**[v2: net-next: net: dsa: mt7530: do not set MT7530_P5_DIS when PHY muxing is being used](http://lore.kernel.org/netdev/20240428-for-netnext-mt7530-do-not-disable-port5-when-phy-muxing-v2-1-bb7c37d293f8@arinc9.com/)** + +> DSA initalises the ds->num_ports amount of ports in +> dsa_switch_touch_ports(). When the PHY muxing feature is in use, port 5 +> won't be defined in the device tree. Because of this, the type member of +> the dsa_port structure for this port will be assigned DSA_PORT_TYPE_UNUSED. +> The dsa_port_setup() function calls ds->ops->port_disable() when the port +> type is DSA_PORT_TYPE_UNUSED. +> + +**[v1: stable,5.10: introduce stop timer to solve the problem of CVE-2024-26865](http://lore.kernel.org/netdev/20240428034948.3186333-1-shaozhengchao@huawei.com/)** + +> For the CVE-2024-26865 issue, the stable 5.10 branch code also involves +> this issue. However, the patch of the mainline version cannot be used on +> stable 5.10 branch. The commit 740ea3c4a0b2("tcp: Clean up kernel +> listener' s reqsk in inet_twsk_purge()") is required to stop the timer. +> + +**[[PATCH v4 net-next v4 0/6] Add TCP fraglist GRO support](http://lore.kernel.org/netdev/20240427182305.24461-1-nbd@nbd.name/)** + +> When forwarding TCP after GRO, software segmentation is very expensive, +> especially when the checksum needs to be recalculated. +> One case where that's currently unavoidable is when routing packets over +> PPPoE. Performance improves significantly when using fraglist GRO +> implemented in the same way as for UDP. +> + +**[v1: sctp: prefer struct_size over open coded arithmetic](http://lore.kernel.org/netdev/PAXPR02MB724871DB78375AB06B5171C88B152@PAXPR02MB7248.eurprd02.prod.outlook.com/)** + +> This is an effort to get rid of all multiplications from allocation +> functions in order to prevent integer overflows [1][2]. +> + +**[v1: bpf: Add BPF_PROG_TYPE_CGROUP_SKB attach type enforcement in BPF_LINK_CREATE](http://lore.kernel.org/netdev/20240426231621.2716876-1-sdf@google.com/)** + +> Syzkaller found a case where it's possible to attach cgroup_skb program +> to the sockopt hooks. Apparently it's currently possible to do that, +> but only when using BPF_LINK_CREATE API. The first patch in the series +> has more info on why that happens. +> + +**[v2: batman-adv: Add flex array to struct batadv_tvlv_tt_data](http://lore.kernel.org/netdev/AS8PR02MB723756E3D1366C4E8FCD14BF8B162@AS8PR02MB7237.eurprd02.prod.outlook.com/)** + +> The "struct batadv_tvlv_tt_data" uses a dynamically sized set of +> trailing elements. Specifically, it uses an array of structures of type +> "batadv_tvlv_tt_vlan_data". So, use the preferred way in the kernel +> declaring a flexible array [1]. +> + +**[v1: net-next: net: txgbe: use phylink_pcs_change() to report PCS link change events](http://lore.kernel.org/netdev/E1s0OH2-009hgx-Qw@rmk-PC.armlinux.org.uk/)** + +> Use phylink_pcs_change() when reporting changes in PCS link state to +> phylink as the interrupts are informing us about changes to the PCS +> state. +> + +**[v1: net-next: net: dsa: microchip: use phylink_mac_ops for ksz driver](http://lore.kernel.org/netdev/ZivP%2FR1IwKEPb5T6@shell.armlinux.org.uk/)** + +> Three of these cases are handled by shimming the existing DSA calls +> through ksz_dev_ops, and the final case is handled through a +> conditional in ksz_phylink_mac_config(). These can all be handled +> with separate phylink_mac_ops. +> + +**[v1: iwl-net: idpf: Interpret .set_channels() input differently](http://lore.kernel.org/netdev/20240426154125.235977-1-larysa.zaremba@intel.com/)** + +> Unlike ice, idpf does not check, if user has requested at least 1 combined +> channel. Instead, it relies on a check in the core code. Unfortunately, the +> check does not trigger for us because of the hacky .set_channels() +> interpretation logic that is not consistent with the core code. +> + +**[v2: net-next: ipv6: introduce dst_rt6_info() helper](http://lore.kernel.org/netdev/20240426151952.1995663-1-edumazet@google.com/)** + +> Instead of (struct rt6_info *)dst casts, we can use : +> +> #define dst_rt6_info(_ptr) \ +> container_of_const(_ptr, struct rt6_info, dst) +> +> Some places needed missing const qualifiers : +> +> ip6_confirm_neigh(), ipv6_anycast_destination(), +> ipv6_unicast_destination(), has_gateway() +> + +**[v3: Documentation: networking: document ISO 15765-2](http://lore.kernel.org/netdev/20240426151825.80120-1-valla.francesco@gmail.com/)** + +> While the in-kernel ISO 15765-2 (ISO-TP) stack is fully functional and +> easy to use, no documentation exists for it. +> + +**[v1: iwl: idpf: don't enable NAPI and interrupts prior to allocating Rx buffers](http://lore.kernel.org/netdev/20240426144408.1353962-1-aleksander.lobakin@intel.com/)** + +> Currently, idpf enables NAPI and interrupts prior to allocating Rx +> buffers. +> This may lead to frame loss (there are no buffers to place incoming +> frames) and even crashes on quick ifup-ifdown. +> + +**[v2: net-next: net: phy: micrel: Add support for PTP_PF_EXTTS for lan8814](http://lore.kernel.org/netdev/20240426140224.2201919-1-horatiu.vultur@microchip.com/)** + +> Extend the PTP programmable gpios to implement also PTP_PF_EXTTS +> function. The pins can be configured to capture both of rising +> and falling edge. Once the event is seen, then an interrupt is +> generated and the LTC is saved in the registers. +> + +**[[RFC net-next (what uAPI?) ice: add support for more than 16 RSS queues for VF](http://lore.kernel.org/netdev/73ac167e-abc5-4e7b-96e3-7c6689b5665a@intel.com/)** + +> Main aim for this RFC is to ask for the preferred uAPI, but let me start +> with some background. Then I describe considered uAPIs, from most +> readily available to most implementation-needed. +> + +**[v2: Series to deliver Ethernets for STM32MP13](http://lore.kernel.org/netdev/20240426125707.585269-1-christophe.roullier@foss.st.com/)** + +> STM32MP13 is STM32 SOC with 2 GMACs instances +> This board have 2 RMII phy: +> -Ethernet1: RMII with crystal +> -Ethernet2: RMII without crystal +> Rework dwmac glue to simplify management for next stm32 +> Add support for PHY regulator +> + +**[v1: net-next: mlxsw: Improve events processing performance](http://lore.kernel.org/netdev/cover.1714134205.git.petrm@nvidia.com/)** + +> Amit Cohen writes: +> +> Spectrum ASICs only support a single interrupt, it means that all the +> events are handled by one IRQ (interrupt request) handler. +> + +**[v1: net-next: ipv6: use call_rcu_hurry() in fib6_info_release()](http://lore.kernel.org/netdev/20240426104722.1612331-1-edumazet@google.com/)** + +> This is a followup of commit c4e86b4363ac ("net: add two more +> call_rcu_hurry()") +> +> fib6_info_destroy_rcu() is calling nexthop_put() or fib6_nh_release() +> + +**[v1: ipsec: xfrm: Correct spelling mistake in xfrm.h comment](http://lore.kernel.org/netdev/Zit-sTZoYp_JnQfd@Antony2201.local/)** + +> A spelling error was found in the comment section of +> include/uapi/linux/xfrm.h. Since this header file is copied to many +> userspace programs and undergoes Debian spellcheck, it's preferable to +> fix it in upstream rather than downstream having exceptions. +> +> This commit fixes the spelling mistake. +> + +**[v1: net: qede: avoid overruling error codes](http://lore.kernel.org/netdev/20240426091227.78060-1-ast@fiberby.net/)** + +> This series fixes the qede driver, so that +> qede_parse_flow_attr() and it's subfunctions +> + +**[v7: net-next: net/ipv4: add tracepoint for icmp_send](http://lore.kernel.org/netdev/20240426164730214uXfxoyj3x703nsAdqnGSr@zte.com.cn/)** + +> Introduce a tracepoint for icmp_send, which can help users to get more +> detail information conveniently when icmp abnormal events happen. +> + +**[v1: net: wwan: Add net device name for error message print](http://lore.kernel.org/netdev/PH0PR18MB447473BBD688DC4771435822DE162@PH0PR18MB4474.namprd18.prod.outlook.com/)** + +> > In my local, I got an error print in dmesg like below: +> > "sequence number glitch prev=487 curr=0" +> > After checking, it belongs to mhi_wwan_mbim.c. Refer to the usage of this +> > API in other files, I think we should add net device name print before +> > message context. +> > + +**[v13: ipsec-next: xfrm: Introduce direction attribute for SA](http://lore.kernel.org/netdev/cover.1714118266.git.antony.antony@secunet.com/)** + +> Inspired by the upcoming IP-TFS patch set, and confusions experienced in +> the past due to lack of direction attribute on SAs, add a new direction +> "dir" attribute. It aims to streamline the SA configuration process and +> enhance the clarity of existing SA attributes. +> + +**[v1: net-next: inet: use call_rcu_hurry() in inet_free_ifa()](http://lore.kernel.org/netdev/20240426070202.1267739-1-edumazet@google.com/)** + +> This is a followup of commit c4e86b4363ac ("net: add two more +> call_rcu_hurry()") +> + +**[v2: net-next: virtio_net: support getting initial value of irq coalesce](http://lore.kernel.org/netdev/20240426065441.120710-1-hengqi@linux.alibaba.com/)** + +> Patch 1 from Xuan: the virtnet cvq supports to get +> result from the device. +> + +**[[PATCH v3 net-next v3 0/6] Add TCP fraglist GRO support](http://lore.kernel.org/netdev/20240426065143.4667-1-nbd@nbd.name/)** + +> When forwarding TCP after GRO, software segmentation is very expensive, +> especially when the checksum needs to be recalculated. +> + +**[v1: net-next: net: give more chances to rcu in netdev_wait_allrefs_any()](http://lore.kernel.org/netdev/20240426064222.1152209-1-edumazet@google.com/)** + +> This came while reviewing commit c4e86b4363ac ("net: add two more +> call_rcu_hurry()"). +> + +### 安全增强 + +**[v1: clocksource/drivers/rda: Add sched_clock_register for RDA8810PL SoC](http://lore.kernel.org/linux-hardening/TYSPR04MB7084133A983DD3EBE69F4A808A142@TYSPR04MB7084.apcprd04.prod.outlook.com/)** + +> Add sched_clock_register during init +> bootup log before this patch: +> [ 8.044000] UBIFS (ubi0:4): Mounting in unauthenticated mode +> [ 8.044000] UBIFS error (ubi0:4 pid 176): ubifs_read_superblock: bad superblock, error 4 +> + +**[v3: perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*()](http://lore.kernel.org/linux-hardening/PAXPR02MB7248F46DEFA47E79677481B18B152@PAXPR02MB7248.eurprd02.prod.outlook.com/)** + +> This is an effort to get rid of all multiplications from allocation +> functions in order to prevent integer overflows [1]. +> + +**[v1: Input: ff-core - prefer struct_size over open coded arithmetic](http://lore.kernel.org/linux-hardening/AS8PR02MB72371E646714BAE2E51A6A378B152@AS8PR02MB7237.eurprd02.prod.outlook.com/)** + +> This is an effort to get rid of all multiplications from allocation +> functions in order to prevent integer overflows [1][2]. +> + +**[v1: hardening: Refresh KCFI options, add some more](http://lore.kernel.org/linux-hardening/20240426222940.work.884-kees@kernel.org/)** + +> Add some stuff that got missed along the way: +> +> - CONFIG_UNWIND_PATCH_PAC_INTO_SCS=y so SCS vs PAC is hardware +> selectable. +> + +**[v1: clk: bcm: Move a couple of __counted_by initializations](http://lore.kernel.org/linux-hardening/20240425-cbl-bcm-assign-counted-by-val-before-access-v1-0-e2db3b82d5ef@kernel.org/)** + +> This series addresses two UBSAN warnings I see on my Raspberry Pi 4 with +> recent releases of clang that support __counted_by by moving the +> initializations of the element count member before any accesses of the +> flexible array member. +> + +**[v4: net: dsa: lan9303: use ethtool_puts() for lan9303_get_strings()](http://lore.kernel.org/linux-hardening/20240425-strncpy-drivers-net-dsa-lan9303-core-c-v4-1-9fafd419d7bb@google.com/)** + +> This pattern of strncpy with some pointer arithmetic setting fixed-sized +> intervals with string literal data is a bit weird so let's use +> ethtool_puts() as this has more obvious behavior and is less-error +> prone. +> + +**[v1: wifi: nl80211: Avoid address calculations via out of bounds array indexing](http://lore.kernel.org/linux-hardening/20240424220057.work.819-kees@kernel.org/)** + +> Before request->channels[] can be used, request->n_channels must be set. +> + +**[v1: Annotate atomics for signed integer wrap-around](http://lore.kernel.org/linux-hardening/20240424191225.work.780-kees@kernel.org/)** + +> As part of enabling the signed integer overflow sanitizer for production +> use, we have to annotated the atomics which expect to use wrapping signed +> values. Do this for x86, arm64, and the fallbacks. Additionally annotate +> the first place anyone will trip over signed integer wrap-around: ipv4, +> which has traditionally included the comment hint about how to debug +> sanitizer issues. +> + +**[v1: ubsan: Avoid i386 UBSAN handler crashes with Clang](http://lore.kernel.org/linux-hardening/20240424162942.work.341-kees@kernel.org/)** + +> When generating Runtime Calls, Clang doesn't respect the -mregparm=3 +> option used on i386. Hopefully this will be fixed correctly in Clang 19: +> https://github.com/llvm/llvm-project/pull/89707 +> + +**[v7: arm64: qcom: add AIM300 AIoT board support](http://lore.kernel.org/linux-hardening/20240424024508.3857602-1-quic_tengfan@quicinc.com/)** + +> Add AIM300 AIoT support along with usb, ufs, regulators, serial, PCIe, +> and PMIC functions. +> AIM300 Series is a highly optimized family of modules designed to +> support AIoT applications. It integrates QCS8550 SoC, UFS and PMIC +> chip etc. +> + +**[v1: Introduce STM32 DMA3 support](http://lore.kernel.org/linux-hardening/20240423123302.1550592-1-amelie.delaunay@foss.st.com/)** + +> STM32 DMA3 is a direct memory access controller with different features +> depending on its hardware configuration. It is either called LPDMA (Low +> Power), GPDMA (General Purpose) or HPDMA (High Performance), and it can +> be found in new STM32 MCUs and MPUs. +> + +**[v5: checkpatch: add check for snprintf to scnprintf](http://lore.kernel.org/linux-hardening/20240422-snprintf-checkpatch-v5-1-f1e90bf7164e@google.com/)** + +> "There is a general misunderstanding amongst engineers that +> {v}snprintf() returns the length of the data *actually* encoded into the +> destination array. However, as per the C99 standard {v}snprintf() +> really returns the length of the data that *would have been* written if +> there were enough space for it. This misunderstanding has led to +> buffer-overruns in the past. It's generally considered safer to use the +> {v}scnprintf() variants in their place (or even sprintf() in simple +> cases). So let's do that." +> + +### 异步 IO + +**[v1: Read/Write with meta/integrity](http://lore.kernel.org/io-uring/20240425183943.6319-1-joshi.k@samsung.com/)** + +> This adds a new io_uring interface to specify meta along with +> read/write. Beyond reading/writing meta, the interface also enables +> (a) flags to control data-integrity checks, (b) application tag. +> + +**[v1: io_uring/rw: reinstate thread check for retries](http://lore.kernel.org/io-uring/8e74cff8-2a7f-4883-9bff-1fbc22570a47@kernel.dk/)** + +> Allowing retries for everything is arguably the right thing to do, now +> that every command type is async read from the start. But it's exposed a +> few issues around missing check for a retry (which cca6571381a0 exposed), +> and the fixup commit for that isn't necessarily 100% sound in terms of +> iov_iter state. +> + +### Rust For Linux + +**[v1: rust: add 'firmware' field support to module! macro](http://lore.kernel.org/rust-for-linux/20240426095627.37333-1-fujita.tomonori@gmail.com/)** + +> This adds 'firmware' field support to module! macro, corresponds to +> MODULE_FIRMWARE macro. +> + +**[v1: rust: hrtimer: introduce hrtimer support](http://lore.kernel.org/rust-for-linux/20240425094634.262674-1-nmi@metaspace.dk/)** + +> This patch adds support for intrusive use of the hrtimer system. For now, only +> one timer can be embedded in a Rust struct. +> + +**[v1: kbuild: rust: force `alloc` extern to allow "empty" Rust files](http://lore.kernel.org/rust-for-linux/20240422090644.525520-1-ojeda@kernel.org/)** + +> The reason is that we pass `-Zcrate-attr='feature(new_uninit)'` (together +> with `-Zallow-features=new_uninit`) to let non-`rust/` code use that +> unstable feature. +> + +### BPF + +**[v1: bpf-next: bpf: add support to read cpu_entry in bpf program](http://lore.kernel.org/bpf/20240427151825.174486-1-dev@der-flo.net/)** + +> Add new field "cpu_entry" to bpf_perf_event_data which could be read by +> bpf programs attached to perf events. The value contains the CPU value +> recorded by specifying sample_type with PERF_SAMPLE_CPU when calling +> perf_event_open(). +> + +**[v2: bpf-next: bpf_helpers.h: define bpf_tail_call_static when building with GCC](http://lore.kernel.org/bpf/20240426145158.14409-1-jose.marchesi@oracle.com/)** + +> The definition of bpf_tail_call_static in tools/lib/bpf/bpf_helpers.h +> is guarded by a preprocessor check to assure that clang is recent +> enough to support it. This patch updates the guard so the function is +> compiled when using GCC 13 or later as well. +> + +**[v1: bpf-next: libbpf: support "module:function" syntax for tracing programs](http://lore.kernel.org/bpf/cover.1714133551.git.vmalik@redhat.com/)** + +> In some situations, it is useful to explicitly specify a kernel module +> to search for a tracing program target (e.g. when a function of the same +> name exists in multiple modules or in vmlinux). +> + +**[v1: bpf-next: bpf: avoid casts from pointers to enums in bpf_tracing.h](http://lore.kernel.org/bpf/20240426092214.16426-1-jose.marchesi@oracle.com/)** + +> The BPF_PROG, BPF_KPROBE and BPF_KSYSCALL macros defined in +> tools/lib/bpf/bpf_tracing.h use a clever hack in order to provide a +> convenient way to define entry points for BPF programs as if they were +> normal C functions that get typed actual arguments, instead of as +> elements in a single "context" array argument. +> + +**[v8: dwarves: pahole: Inject kfunc decl tags into BTF](http://lore.kernel.org/bpf/cover.1714091281.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. +> + +**[v1: bpf-next: bpf: add mrtt and srtt as ctx->args for BPF_SOCK_OPS_RTT_CB](http://lore.kernel.org/bpf/20240425161724.73707-1-lulie@linux.alibaba.com/)** + +> These provides more information about tcp RTT estimation. The selftest for +> BPF_SOCK_OPS_RTT_CB is extended for the added args. +> + +**[v3: selftests/bpf: Add ring_buffer__consume_n test.](http://lore.kernel.org/bpf/20240425140627.112728-1-andrea.righi@canonical.com/)** + +> Add a testcase for the ring_buffer__consume_n() API. +> +> The test produces multiple samples in a ring buffer, using a +> sys_getpid() fentry prog, and consumes them from user-space in batches, +> rather than consuming all of them greedily, like ring_buffer__consume() +> does. +> + +**[v1: bpf_wq followup series](http://lore.kernel.org/bpf/20240425-bpf-next-v1-0-1d8330e6c643@kernel.org/)** + +> Few patches that should have been there from day 1. +> + +**[v1: bpf-next: use network helpers, part 3](http://lore.kernel.org/bpf/cover.1714014697.git.tanggeliang@kylinos.cn/)** + +> This patchset adds opts argument for __start_server, and adds setsockopt +> pointer together with optval and optlen into struct network_helper_opts +> to make start_server_addr helper more flexible. With these modifications, +> many duplicate codes can be dropped. +> + +**[v1: rethook: inline arch_rethook_trampoline_callback() in assembly code](http://lore.kernel.org/bpf/20240425000211.708557-1-andrii@kernel.org/)** + +> At the lowest level, rethook-based kretprobes on x86-64 architecture go +> through arch_rethoook_trampoline() function, manually written in +> assembly, which calls into a simple arch_rethook_trampoline_callback() +> function, written in C, and only doing a few straightforward field +> assignments, before calling further into rethook_trampoline_handler(), +> which handles kretprobe callbacks generically. +> + +**[v1: bpf-next: bpf: Add bpf_guard_preempt() convenience macro](http://lore.kernel.org/bpf/20240424225529.16782-1-alexei.starovoitov@gmail.com/)** + +> Add bpf_guard_preempt() macro that uses newly introduced +> bpf_preempt_disable/enable() kfuncs to guard a critical section. +> + +**[v3: bpf-next: bpf/verifier: range computation improvements](http://lore.kernel.org/bpf/20240424224053.471771-1-cupertino.miranda@oracle.com/)** + +> This is the third series of these patches. +> Thank you Eduard and Yonghong for your reviews. +> + +**[v5: bpf-next: Replace mono_delivery_time with tstamp_type](http://lore.kernel.org/bpf/20240424222028.1080134-1-quic_abchauha@quicinc.com/)** + +> Patch 1 :- This patch takes care of only renaming the mono delivery +> timestamp to tstamp_type with no change in functionality of +> existing available code in kernel also +> Starts assigning tstamp_type with either mono or real and +> introduces a new enum in the skbuff.h, again no change in functionality +> of the existing available code in kernel , just making the code scalable. +> + +**[v1: Objpool performance improvements](http://lore.kernel.org/bpf/20240424215214.3956041-1-andrii@kernel.org/)** + +> Improve objpool (used heavily in kretprobe hot path) performance with two +> improvements: +> - inlining performance critical objpool_push()/objpool_pop() operations; +> - avoiding re-calculating relatively expensive nr_possible_cpus(). +> + +**[v1: net-next: igc: Add Tx hardware timestamp request for AF_XDP zero-copy packet](http://lore.kernel.org/bpf/20240424210256.3440903-1-anthony.l.nguyen@intel.com/)** + +> This patch adds support to per-packet Tx hardware timestamp request to +> AF_XDP zero-copy packet via XDP Tx metadata framework. Please note that +> user needs to enable Tx HW timestamp capability via igc_ioctl() with +> SIOCSHWTSTAMP cmd before sending xsk Tx hardware timestamp request. +> + +**[v1: dwarves: btf_encoder: add "distilled_base" BTF feature to split BTF generation](http://lore.kernel.org/bpf/20240424155410.3420388-1-alan.maguire@oracle.com/)** + +> Adding "distilled_base" to --btf_features when generating split BTF will +> create split and .BTF.base BTF - the latter allows us to map references +> from split BTF to base BTF, even if that base BTF has changed. It does +> this by providing just enough information about the base types in the +> .BTF.base section. +> + +**[v2: bpf-next: bpf: support resilient split BTF](http://lore.kernel.org/bpf/20240424154806.3417662-1-alan.maguire@oracle.com/)** + +> Split BPF Type Format (BTF) provides huge advantages in that kernel +> modules only have to provide type information for types that they do not +> share with the core kernel; for core kernel types, split BTF refers to +> core kernel BTF type ids. +> + +**[v1: bpf-next: bpf: add a few more options for GCC_BPF in selftests/bpf/Makefile](http://lore.kernel.org/bpf/20240424084141.31298-1-jose.marchesi@oracle.com/)** + +> This little patch modifies selftests/bpf/Makefile so it passes the +> following extra options when invoking gcc-bpf: +> +> -gbtf +> This makes GCC to emit BTF debug info in .BTF and .BTF.ext. +> + +**[v2: bpf-next: Introduce bpf_preempt_{disable,enable}](http://lore.kernel.org/bpf/20240424031315.2757363-1-memxor@gmail.com/)** + +> This set introduces two kfuncs, bpf_preempt_disable and +> bpf_preempt_enable, which are wrappers around preempt_disable and +> preempt_enable in the kernel. These functions allow a BPF program to +> have code sections where preemption is disabled. There are multiple use +> cases that are served by such a feature, a few are listed below: +> + +**[v2: Dump off-cpu samples directly](http://lore.kernel.org/bpf/20240424024805.144759-1-howardchu95@gmail.com/)** + +> As mentioned in: https://bugzilla.kernel.org/show_bug.cgi?id=207323 +> +> Currently, off-cpu samples are dumped when perf record is exiting. This +> results in off-cpu samples being after the regular samples. Also, samples +> are stored in large BPF maps which contain all the stack traces and +> accumulated off-cpu time, but they are eventually going to fill up after +> running for an extensive period. This patch fixes those problems by dumping +> samples directly into perf ring buffer, and dispatching those samples to the +> correct format. +> + +**[v1: bpf-next: Add some 'malloc' failure checks](http://lore.kernel.org/bpf/20240424020444.2375773-1-chentao@kylinos.cn/)** + +> The "malloc" call may not be successful.Add the malloc +> failure checking to avoid possible null dereference. +> + +**[v1: bpf-next: check bpf_dummy_struct_ops program params for test runs](http://lore.kernel.org/bpf/20240424012821.595216-1-eddyz87@gmail.com/)** + +> When doing BPF_PROG_TEST_RUN for bpf_dummy_struct_ops programs, +> execution should be rejected when NULL is passed for non-nullable +> params, because for such params verifier assumes that such params are +> never NULL and thus might optimize out NULL checks. +> + +**[v1: net-next: selftests: net: extract BPF building logic from the Makefile](http://lore.kernel.org/bpf/20240423183542.3807234-1-kuba@kernel.org/)** + +> This has been sitting in my tree for a while. I will soon add YNL/libynl +> support for networking selftests. This prompted a small cleanup of +> the selftest makefile for net/. We don't want to be piling logic +> for each library in there. YNL will get its own .mk file which can +> be included. Do the same for the BPF building section, already. +> + +**[v1: dwarves: replace --btf_features="all" with "default"](http://lore.kernel.org/bpf/20240423160200.3139270-1-alan.maguire@oracle.com/)** + +> Use of "all" in --btf_features is confusing; use the "default" keyword +> to request default set of BTF features for encoding instead. Then +> non-standard features can be added in a more natural way; i.e. +> + +**[v4: net-next: dma: skip calling no-op sync ops when possible](http://lore.kernel.org/bpf/20240423135832.2271696-1-aleksander.lobakin@intel.com/)** + +> The series grew from Eric's idea and patch at [0]. The idea of using the +> shortcut for direct DMA as well belongs to Chris. +> + +**[v2: bpf-next: use network helpers, part 2](http://lore.kernel.org/bpf/cover.1713868264.git.tanggeliang@kylinos.cn/)** + +> This patchset uses more network helpers in test_sock_addr.c, but +> first of all, patch 2 is needed to make network_helpers.c independent +> of test_progs.c. Then network_helpers.h can be included into +> test_sock_addr.c without compile errors. +> + +**[v1: arch/Kconfig: Move SPECULATION_MITIGATIONS to arch/Kconfig](http://lore.kernel.org/bpf/20240423045548.1324969-1-song@kernel.org/)** + +> SPECULATION_MITIGATIONS is currently defined only for x86. As a result, +> IS_ENABLED(CONFIG_SPECULATION_MITIGATIONS) is always false for other +> archs. f337a6a21e2f effectively set "mitigations=off" by default on +> non-x86 archs, which is not desired behavior. Jakub observed this +> change when running bpf selftests on s390 and arm64. +> + +**[v10: bpf-next: BPF crypto API framework](http://lore.kernel.org/bpf/20240422225024.2847039-1-vadfed@meta.com/)** + +> This series introduces crypto kfuncs to make BPF programs able to +> utilize kernel crypto subsystem. Crypto operations made pluggable to +> avoid extensive growth of kernel when it's not needed. +> + +**[v1: libbpf: extending BTF_KIND_INIT to accommodate some unusual types](http://lore.kernel.org/bpf/20240422144538.351722-1-liuxin350@huawei.com/)** + +> In btf__add_int, the size of the new btf_kind_int type is limited. +> When the size is greater than 16, btf__add_int fails to be added +> and -EINVAL is returned. This is usually effective. +> + +## 周边技术动态 + +### Qemu + +**[v3: target/riscv: Raise exceptions on wrs.nto](http://lore.kernel.org/qemu-devel/20240424142808.62936-2-ajones@ventanamicro.com/)** + +> Implementing wrs.nto to always just return is consistent with the +> specification, as the instruction is permitted to terminate the +> stall for any reason, but it's not useful for virtualization, where +> we'd like the guest to trap to the hypervisor in order to allow +> scheduling of the lock holding VCPU. +> + +**[v2: target/riscv/kvm: tolerate KVM disable ext errors](http://lore.kernel.org/qemu-devel/20240422171425.333037-1-dbarboza@ventanamicro.com/)** + +> In this new version we changed the commit message a bit and we're now +> only handling the case for EINVAL. Both were suggested by Drew in v1. +> + +**[v1: target/riscv: change RISCV_EXCP_SEMIHOST exception number to 63](http://lore.kernel.org/qemu-devel/20240422135840.1959967-1-cleger@rivosinc.com/)** + +> The current semihost exception number (16) is a reserved number (range +> [16-17]). The upcoming double trap specification uses that number for +> the double trap exception. Since the privileged spec (Table 22) defines +> ranges for custom uses change the semihosting exception number to 63 +> which belongs to the range [48-63] in order to avoid any future +> collisions with reserved exception. +> + +**[v6: target/riscv/kvm/kvm-cpu.c: kvm_riscv_handle_sbi() fail with vendor-specific SBI](http://lore.kernel.org/qemu-devel/20240422114254.13839-1-alexei.filippov@syntacore.com/)** + +> kvm_riscv_handle_sbi() may return not supported return code to not +> trigger qemu abort with vendor-specific sbi. +> + +**[v5: target/riscv/kvm/kvm-cpu.c: kvm_riscv_handle_sbi() fail with vendor-specific sbi.](http://lore.kernel.org/qemu-devel/20240422112437.11079-1-alexei.filippov@syntacore.com/)** + +> kvm_riscv_handle_sbi() may return not supported return code to not +> trigger qemu abort with vendor-specific sbi. +> + +**[v4: riscv: thead: Add th.sxstatus CSR emulation](http://lore.kernel.org/qemu-devel/20240422065208.1953562-1-christoph.muellner@vrull.eu/)** + +> The th.sxstatus CSR can be used to identify available custom extension +> on T-Head CPUs. The CSR is documented here: +> https://github.com/T-head-Semi/thead-extension-spec/blob/master/xtheadsxstatus.adoc +> + +### U-Boot + +**[v3: riscv: Rename spl_soc_init() to spl_dram_init()](http://lore.kernel.org/u-boot/20240424074339.210851-1-lukas.funke-oss@weidmueller.com/)** + +> This patch series renames spl_soc_init() to spl_dram_init() since the +> purpose of the function is to initialization the DRAM on sifive/starfive +> boards. spl_dram_init() is a commonly used function for this purpose. +> + +**[RISC-V u-boot unable to boot QEMU using '-cpu max'](http://lore.kernel.org/u-boot/bed7e137-4613-4153-babc-3b8b7c911151@ventanamicro.com/)** + +> In QEMU we have a 'max' type CPU that implements (almost) all extensions that QEMU +> is able to emulate. Recently, in QEMU commit 249e0905d05, we bumped the extensions +> for this CPU. +> +