泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!
网站地址:https://tinylab.org

泰晓Linux知识星球:1300+知识点,520+用户
请稍侯

RISC-V Linux 内核及周边技术动态第 100 期

呀呀呀 创作于 2024/07/16

时间:20240714
编辑:晓瑜
仓库:RISC-V Linux 内核技术调研活动
赞助:PLCT Lab, ISCAS

内核动态

RISC-V 架构支持

v1: net-next: Add the dwmac driver support for T-HEAD TH1520 SoC.

There was discussion about the syscon for the APB registers in Jisheng’s v2.

GIT PULL: KVM/riscv changes for 6.11

We have the following KVM RISC-V changes for 6.11

v7: Add Svade and Svadu Extensions Support

Svade and Svadu extensions represent two schemes for managing the PTE A/D bit.

v4: RISC-V: Detect and report speed of unaligned vector accesses

Adds support for detecting and reporting the speed of unaligned vector accesses on RISC-V CPUs.

v4: Add board support for Sipeed LicheeRV Nano

Adds minimal device tree files for this board to make it boot to a basic shell.

v1: riscv/mm: Add soft-dirty page tracking support

This patch adds its standard handlers for PTE, PMD, and swap entry.

v4: RISC-V: Parse DT for Zkr to seed KASLR

Add functions to pi/fdt_early.c to help parse the FDT to check if the isa string has the Zkr extension.

v2: riscv: select ARCH_USE_SYM_ANNOTATIONS

commit 76329c693924 (“riscv: Use SYM_*() assembly macros instead of deprecated ones”), most riscv has been to converted the new style SYM_ assembler annotations.

v4: riscv: add initial support for SpacemiT K1

Add initial support for it to allow more people to participate in building drivers to mainline for it.

v1: riscv/purgatory: align riscv_kernel_entry

When alignment handling is delegated to the kernel, everything must be word-aligned in purgatory, since the trap handler is then set to the kexec one.

GIT PULL: RISC-V Sophgo Devicetrees for v6.11

Please pull dt changes for RISC-V/Sophgo.

v1: bpf-next: riscv, bpf: Optimize stack usage of trampoline

Only reserve space for stacked arguments when BPF_TRAMP_F_CALL_ORIG is set.

v3: riscv: stacktrace: Add USER_STACKTRACE support

Add RISC-V USER_STACKTRACE support, and fix the fp alignment bug in perf_callchain_user() by the way as Björn pointed out.

v1: riscv: cacheinfo: Add back init_cache_level() function

commit 5944ce092b97 (arch_topology: Build cacheinfo from primary CPU) removed the init_cache_level() function from arch/riscv/kernel/cacheinfo.c and relies on the init_cpu_topology() function in drivers/base/arch_topology.c to call fetch_cache_info() which in turn calls init_of_cache_level() to populate the cache hierarchy information.

v1: serial: 8250: don’t lost port’s default capabilities

Commit b0b8c84cf58d (“serial: of_serial: Handle auto-flow-control property”) added support for fifo-size and hw-flow-control properties to avoid adding new types to 8250.c for UARTs that are compatible with the standard types but that have different size fifo or support 16750 compatible auto flow control.

LoongArch 架构支持

v1: Add jump table support for objtool on LoongArch

This RFC version is based on Linux 6.10-rc7, there are no detailed commit messages for each patch for now and the code are relatively clear and simple.

GIT PULL: LoongArch KVM changes for v6.11

Add ParaVirt steal time support. Add some VM migration enhancement. Add perf kvm-stat support for loongarch.

GIT PULL: LoongArch KVM changes for v6.11

The following changes since commit 256abd8e550ce977b728be79a74e1729438b4948

v4: v1: LoongArch: Add AVEC irqchip support

Introduce the advanced extended interrupt controllers.

进程调度

v3: sched/fair: Defer CFS throttle to user entry

CFS tasks can end up throttled while holding locks that other, non-throttled tasks are blocking on.

v1: sched/ext: Add BPF function to fetch rq

rq contains many useful fields to implement a custom scheduler.

v6: Introduce –task-name and –fuzzy-name options in perf sched map

This patch-set aims to reduce the amount of output printed on the terminal when using perf sched map, allowing users to focus only on the tasks of interest.

v1: sched/autogroup: Improve readability and performance

This patch improves the readability and performance of the autogroup scheduling code.

内存管理

v2: binfmt_elf, coredump: Log the reason of the failed core dumps

A powerful way to diagnose crashes is to analyze the core dump produced upon the failure.

v1: Address Space Isolation (ASI) 2024

This RFC demonstrates an implementation of Address Space Isolation (ASI), similar to Junaid Shahid’s proposal from 2022.

v1: mm/x86/pat: Only untrack the pfn range if unmap region

This patch is one patch of an old series [1] that got reposted standalone here, with the hope to fix some reported untrack_pfn() issues reported recently [2,3], where there used to be other fix [4] but unfortunately which looks like to cause other issues.

v3: Add XSAVE layout description to Core files for debuggers to support varying XSAVE layouts

This patch proposes to add an extra .note section in the corefile to dump the CPUID information of a machine.

v1: mm: Ignore data-race in __swap_writepage

Syzbot reported a possible data race:

v4: mm: swap: mTHP swap allocator base on swap cluster order

This is the short term solutions “swap cluster order” listed in my “Swap Abstraction” discussion slice 8 in the recent LSF/MM conference.

v1: Support direct I/O read and write for memory allocated by dmabuf

Use vm_insert_page to establish a mapping for the memory allocated by dmabuf, thus supporting direct I/O read and write; and fix the issue of incorrect memory statistics after mapping dmabuf memory.

v2: mm: shmem: Rename mTHP shmem counters

The legacy PMD-sized THP counters at /proc/vmstat include thp_file_alloc, thp_file_fallback and thp_file_fallback_charge, which rather confusingly refer to shmem THP and do not include any other types of file pages.

v10: mm: shrink skip folio mapped by an exiting process

This patch is that shrink skips the non-shared anonymous folio solely mapped by an exting process and this folio is only released directly in the process exiting flow, which will save swap-out time and alleviate the load of the process exiting.

v2: mm-unstable: mm/truncate: batch-clear shadow entries

Make clear_shadow_entry() clear shadow entries in struct folio_batch so that it can reduce contention on i_lock and i_pages locks, e.g.,

v1: mm/mmap: Align the length parameter of munmap with hugepage size

munmap hugepge mappings, if the length of the range to munmap is not aligned with hugepage size,munmap will fail.

v1: bpf-next: Harden and extend ELF build ID parsing logic

The goal of this patch set is to extend existing ELF build ID parsing logic, currently mostly used by BPF subsystem, with support for working in sleepable mode in which memory faults are allowed and can be relied upon to fetch relevant parts of ELF file to find and fetch .note.gnu.build-id information.

v1: mm/cma: export total and free number of pages for CMA areas

In addition to the number of allocations and releases, system management software may like to be aware of the size of CMA areas, and how many pages are available in it.

v1: Unmapping guest_memfd from Direct Map

This RFC series is a rough draft adding support for running non-confidential compute VMs in guest_memfd, based on prior discussions with Sean.

文件系统

v4: fs/file.c: optimize the critical section of file_lock in

These 3 patches are created to reduce the critical section of file_lock in alloc_fd() and close_fd().

v1: virtio-fs: Add ‘file’ mount option

We want to be able to mount filesystems that just consist of one regular file via virtio-fs, i.e. no root directory, just a file as the root node.

v4: fs: multigrain timestamp redux

The conversion of ctime to be a ktime_t value has been dropped, and we now use an unused bit in the nsec field as the QUERIED flag (like the earlier patchset did).

v3: man2: Document RWF_ATOMIC

We use RWF_ATOMIC as this is legacy name for similar feature proposed in the past.

v1: inotify: Added pid and uid information in inotify event.

The inotify event only contains file name information.

v3: kpageflags: detect isolated KPF_THP folios

Use folio_test_large_rmappable() instead to also include isolated folios.

v1: blk: optimization for classic polling

This removes the dependency on interrupts to wake up task.

网络设备

v4: net-next: net: dsa: vsc73xx: Implement VLAN operations

This patch series is a result of splitting a larger patch series [0], where some parts was merged before.

v10: net: af_packet: Handle outgoing VLAN packets without hardware offloading

The issue initially stems from libpcap.

v1: pull request (net-next): ipsec-next 2024-07-13

Support sending NAT keepalives in ESP in UDP states. Support IPsec crypto offload for IPv6 ESP and IPv4 UDP-encapsulated ESP data paths.

v4: net-next: flower: rework TCA_FLOWER_KEY_ENC_FLAGS usage

This series reworks the recently added TCA_FLOWER_KEY_ENC_FLAGS attribute, to be more like TCA_FLOWER_KEY_FLAGS, and use the unused u32 flags field in FLOW_DISSECTOR_KEY_ENC_CONTROL, instead of adding a new flags field as FLOW_DISSECTOR_KEY_ENC_FLAGS.

v1: bpf: xsk: require XDP_UMEM_TX_METADATA_LEN to actuate tx_metadata_len

Julian reports that commit 341ac980eab9 (“xsk: Support tx_metadata_len”) can break existing use cases which don’t zero-initialize xdp_umem_reg padding.

GIT PULL: Networking for v6.10-rc8 (follow up)

A quick follow up to yesterday’s PR. We got a regressions report for the bnxt patch as soon as it got to your tree. The ethtool fix is also good to have, although it’s an older regression.

v8: net-next: Introduce EN7581 ethernet support

Add airoha_eth driver in order to introduce ethernet support for Airoha EN7581 SoC available on EN7581 development board.

v1: net-next: bonding: Return TX congested if no active slave

We are seeing a rare TCP connection timeout after only 7.5 seconds of inactivity. This is mainly due to the ibmvnic driver hogging the RTNL lock for too long ( 2 seconds per ibmvnic device). We are working on getting the driver off the RTNL lock but figured the core of the issue should also be considered.

v1: ethtool-next: module-eeprom: treat zero arguments like any other arguments for hex dump

The code does not differentiate between user asking for page 0 and page not being set on the CLI at all. This is problematic because drivers don’t support old type of dumping for newer module types.

v12: net: phy: bcm5481x: add support for BroadR-Reach mode

v2: iproute2-next: tc: f_flower: add support for matching on tunnel metadata

extend TC flower for matching on tunnel metadata.

v1: net-next: bnx2x: turn off FCoE if storage MAC-address setup failed

This can lead to unexpected FCoE behavior (as address will be in unexpected state) without notice.

v3: net-next: net: ti: icssg-prueth: Split out common object into module

Fix this by building a new module (icssg.o) for all the common objects. Both the driver can then depend on this common module.

[Intel-wired-lan] v2: iwl-next: Add support for devlink health events

Reports for two kinds of events are implemented, Malicious Driver Detection (MDD) and Tx hang.

v5: iwl-next: igb: Add support for AF_XDP zero-copy

This is version 5 of the AF_XDP zero-copy support for igb. Since Sriram’s duties changed I am sending this instead. Additionally, I’ve tested this on real hardware, Intel i210 .

v4: ipsec-next: Support IPsec crypto offload for IPv6 ESP and IPv4 UDP-encapsulated ESP data paths

This patchset extends the crypto offload support to cover these two cases.

v5: MCTP over PCC

This series adds support for the Management Control Transport Protocol (MCTP) over the Platform Communication Channel (PCC) mechanism.

v3: net: bridge: mst: Check vlan state for egress decision

If a port is blocking in the common instance but forwarding in an MST instance, traffic egressing the bridge will be dropped because the state of the common instance is overriding that of the MST instance.

v9: af_packet: Handle outgoing VLAN packets without hardware offloading

The issue initially stems from libpcap. The ethertype will be overwritten as the VLAN TPID if the network interface lacks hardware VLAN offloading.

v3: net-next: mlx5 misc 2023-07-08 (sf max eq)

This V3 includes only 4 patches out of the original 10 in V2, since Jakub asked to split the series and fix the commit message of the first patch.

v2: net-next: eth: mlx5: expose NETIF_F_NTUPLE when ARFS is compiled out

Drivers which don’t support ARFS commonly still support NTUPLE filtering. mlx5 has a Kconfig option to disable ARFS (MLX5_EN_ARFS) and does not advertise NTUPLE filters as a feature at all when ARFS is compiled out.

linux-next: duplicate patch in the bpf-next tree

The following commit is also in the net tree as a different commit

v1: net-next: eth: bnxt: use the new RSS API

Convert bnxt from using the set_rxfh API to separate create/modify/remove callbacks.

[GIT PULL mlx5-next] Introduce auxiliary bus IRQs sysfs

Following the review of v10 and Greg’s request to send this via netdev. This is a pull request that includes the 2 patches of adding IRQs sysfs to aux dev subsystem based on mlx5-next tree (6.10-rc3).

v1: can: fsl,flexcan: add fsl,s32v234-flexcan and imx95 wakeup

安全增强

v4: Add per-core RAPL energy counter support for AMD CPUs

This patchset adds a new “power_per_core” PMU alongside the existing “power” PMU, which will be responsible for collecting the new “energy-per-core” event.

v1: media: venus: hfi_cmds: struct hfi_session_release_buffer_pkt

This replaces the 1-element “fake” flexible array in struct hfi_session_release_buffer_pkt with a modern flexible array and adds the __counted_by annotation that was identified during the analysis.

v1: slab: Allow for type introspection during allocation

This is an RFC for some changes I’d like to make to the kernel’s allocators (starting with slab) that allow for type introspection, which has been a long-time gap in potential analysis capabilities available at compile-time.

异步 IO

v6: RESEND: io_uring: releasing CPU resources when polling

This set a signal “IORING_SETUP_HY_POLL” to application, aim to provide a interface for user to enable a new hybrid polling at io_uring level.

v6: io_uring: releasing CPU resources when polling

This set a signal “IORING_SETUP_HY_POLL” to application, aim to provide a interface for user to enable a new hybrid polling at io_uring level.

Rust For Linux

v4: Rust bindings for cpufreq and OPP core + sample driver

This adds initial rust bindings for two subsystems, cpufreq and operating performance points (OPP). The bindings are provided for most of the interface these subsystems expose.

v1: drm: panthor: add dev_coredumpv support

Dump the state of the GPU. This feature is useful for debugging purposes.

v3: drm/panic: Add a QR code panic screen

This series adds a new panic screen, with the kmsg data embedded in a QR code.

v1: rust: types: Add explanation for ARef pattern

As the usage of ARef and AlwaysRefCounted is growing, it makes sense to add explanation of the “ARef pattern” to cover the most “DO” and “DO NOT” cases when wrapping a self-refcounted C type.

v2: Support several Rust toolchain versions

A few things improved here and there, and rebased on top of rust-next.

v2: drm/panic: Add a qr_code panic screen

This series adds a new panic screen, with the kmsg data embedded in a QR-code.

BPF

v1: perf/bpf: Don’t call bpf_overflow_handler() for tracing events

It assumed that anytime event->prog is set bpf_overflow_handler() should be invoked to execute the attached bpf program.

v2: bpf-next: handle errno ENOTSUPP

v2: bpf-next: use network helpers, part 9

linux-next: duplicate patch in the bpf-next tree

The following commit is also in the net tree as a different commit (but the same patch)

[RFC PATCH bpf-next RESEND 00/16] bpf: Checkpoint/Restore In eBPF (CRIB)

This patch series adds a new bpf program type CRIB (Checkpoint/Restore In eBPF) for better checkpoint/restore of processes.

v4: bpf-next: Add return value range check for BPF LSM

LSM BPF prog returning a positive number attached to the hook file_alloc_security makes kernel panic.

v6: net-next: virtio/vsock: support datagrams

This series introduces support for datagrams to virtio/vsock.

v1: bpf: Checkpoint/Restore In eBPF (CRIB)

This patch series adds a new bpf program type CRIB (Checkpoint/Restore In eBPF) for better checkpoint/restore of processes.

v1: bpf: Ensure BPF programs testing skb context initialization

This commit addresses an issue where a netdevice was found to be uninitialized.

v16: net-next: Device Memory TCP

v14: Reduce overhead of LSMs with static calls

LSM hooks (callbacks) are currently invoked as indirect function calls. These callbacks are registered into a linked list at boot time as the order of the LSMs can be configured on the kernel command line with the “lsm=” command line parameter.

周边技术动态

Qemu

v2: qemu: target/riscv: Add Zilsd and Zcmlsd extension support

In this version of the patch:

  1. Adjusted the code formatting issue
  2. Optimize the processing of all instructions

v8: Add RISC-V ISA extension smcntrpmf support

This patch series adds the support for RISC-V ISA extension smcntrpmf (cycle and privilege mode filtering) [1].

v2: RISC-V: Add preliminary textra trigger CSR functions

This series support to write MHVALUE and MHSELECT fields into textra32 and textra64 trigger CSRs.

v5: target/riscv: Expose RV32 cpu to RV64 QEMU

v4: target/riscv: Support zimop/zcmop/zama16b/zabha

This patch set has been queued to alistair/riscv-to-apply.next, but it is still not merged by the master branch. I think we had better fix it before merging into the master.

v5: riscv: QEMU RISC-V IOMMU Support

In this new version changes based on the suggestions made in v4 were made.

Buildroot

package/gdb: add support for GDB 15.1

The patches from gdb 14.1 are all ported to 15.1, with some minor adaptation to 2 of them.

package/tig: new package

Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands.



Read Album:

Read Related:

Read Latest: