
Ứng cử viên ra mắt thứ ba cho tương lai 6.18 đến Không ồn ào, với nhịp điệu bình thản mà hệ sinh thái hạt nhân rất trân trọng. Theo chính Linus Torvalds, số lượng ở mức vừa phải và chu kỳ đang diễn ra bình thường; nói cách khác, Linux 6.18-rc3 đánh bóng, sửa lỗi và điều chỉnh mà không cần thay đổi, tập trung vào các bản sửa lỗi được phân bổ trên toàn bộ cây.
Trong ghi chú ngắn gọn của mình, Torvalds chỉ ra rằng phần lớn gói này là các bản sửa lỗi SMB Direct, cả phía máy khách và máy chủ, với một số bản vá tinh chỉnh. Phần còn lại được phân phối như bình thường: khoảng một nửa ảnh hưởng đến trình điều khiển (cũng thêm liên kết DeviceTree) và Phần còn lại là các bản sửa lỗi khác nhau: XFS, mạng, io_uring, DRM, Rust Binder và công ty. Nếu bạn quan tâm đến những chi tiết cụ thể, có một bản ghi ngắn với hàng chục thay đổi mà chúng tôi xem xét theo từng hệ thống con bên dưới.
Các tính năng mới chính trong Linux 6.18-rc3
Khối SMB Direct nổi bật trong bản phân tích hàng tuần này. Cả máy khách và máy chủ SMB đều điều chỉnh tín dụng và hàng đợi để ngăn ngừa tình trạng hồi quy và thiếu hụt tài nguyên. Một số thành phần của hệ thống con này nâng cao tiêu chuẩn bằng cách đảm bảo rằng Cấu trúc gửi/xả dành đủ không gian và trạng thái ngắt kết nối sẽ đánh thức tất cả các luồng đang chờ một cách mạnh mẽ.
Ngoài ra, các bản sửa lỗi được đưa vào XFS để ngăn chặn các vòng lặp bận rộn trong bộ thu thập phân đoạn, lưu trữ các vùng mở trong i_private, thắt chặt việc xử lý các tùy chọn gắn kết không còn được khuyến khích và sửa các phần nhạy cảm của liên kết kiểm tra và chặnNhững thay đổi của XFS trong rc3 này tập trung vào tính ổn định và chẩn đoán rõ ràng cho các thông số cũ.
Nửa còn lại của chiếc bánh là sự kết hợp thông thường của các trình điều khiển và nền tảng: từ DRM/AMD và DRM/Xe đến Rockchip, thông qua mạng mlx5/mlx5e, Realtek và Micrel PHYs, UFS/Qualcomm, USB/xHCI DbC và nhiều hơn nữa. Đó là một rc3 "ống nước", trong đó Giá trị là tổng của các điều chỉnh nhỏ ngăn ngừa sự cố, rò rỉ bộ nhớ hoặc không khớp thời gian.
SMB và SMB Direct: tập trung vào tính mạnh mẽ
El viết tắt làm rõ nỗ lực của SMB Direct. Trong số những điểm quan trọng nhất:
- Máy khách và máy chủ SMB điều chỉnh không gian cho các Yêu cầu Công việc, ngăn ngừa tràn bộ nhớ và đảm bảo việc thoát QP (ib_drain_qp) an toàn. Bộ đếm được đưa vào và sử dụng. Tín dụng vận chuyển trên những con đường quan trọng.
- Máy chủ đơn giản hóa việc quản lý danh sách liên kết trên các đường dẫn gửi (flush/send_done) và khiến việc ngắt kết nối RDMA đánh thức tất cả các luồng ngay trong lần thử đầu tiên.
- Các dấu vết trong smb3_rw_credits được củng cố, các phần bao gồm được sắp xếp lại để các cấu trúc có sẵn trong các điểm theo dõi và Các loại đã ký trong cấu trúc tín dụng TCP là cố định.
Nhìn chung, những thay đổi của SMB Direct nhằm mục đích đảm bảo việc truyền tải RDMA dưới tải được mượt mà, hoạt động có thể dự đoán được và xử lý các trạng thái lỗi mà không để lại bất kỳ luồng treo nào. Đây là những điều chỉnh tuy tinh tế, tạo nên sự khác biệt trong môi trường hiệu suất cao.
Hệ thống tập tin và lưu trữ
Phần của hệ thống tập tin và khối bao gồm một số tác phẩm đáng chú ý:
- XFS: tránh các vòng lặp bận, vùng đệm, cấm __GFP_NOFAIL trong khởi tạo ngữ cảnh FS, cải thiện thông báo cho các tùy chọn không được khuyến khích và sửa khóa và bộ đếm sector.
- Btrfs: Sửa lỗi trong ref-verify (IS_ERR so với NULL), giải phóng một phần fs_info được khởi tạo khi gặp sự cố và sửa lỗi trong btrfs send để tránh lặp lại các thao tác rmdir với extrefs.
- EROFS: Tăng cường xử lý các tiện ích mở rộng được mã hóa độc hại để ngăn chặn các vòng lặp và hợp nhất các tìm kiếm nhìn lại trên các trang con bị hỏng.
- Lớp khối: Áp dụng căn chỉnh LBA khi sử dụng Thông tin bảo vệ (PI) để duy trì tính toàn vẹn cấp thấp.
Ngoài ra còn có hoạt động trong scsi/ufs/phy (liên kết cho các thiết bị tương thích mới), storvsc để ưu tiên các kênh có độ tương thích với CPU phát hành I/O, và các tinh chỉnh cho các trình điều khiển như qla4xxx. Đây là những thành phần, khi kết hợp lại, tăng cường tính ổn định và hiệu suất I/O trong những trường hợp thực tế.
Mạng: mlx5/mlx5e, liên kết, HSR và nhiều hơn nữa
Trên mạng, hình ảnh rất đa dạng, tập trung vào các trình điều khiển của hiệu suất cao và những góc ít người qua lại:
- mlx5/mlx5e: Mặt nạ thanh ghi PPHCR trong PCAM, bỏ qua các truy vấn nếu thiết bị không hỗ trợ thanh ghi và sửa lỗi RX khi tạo skb từ xdp_buff phi tuyến tính trong cả hàng đợi cũ và hàng đợi sải bước. Ngoài ra, Sửa lỗi IPsec trên thiết bị MPV và devcom trả về NULL khi có lỗi.
- Liên kết: Mảng phụ được cập nhật ở chế độ phát sóng và các trường hợp mất mát hoặc trùng lặp có thể xảy ra trong thông báo ngang hàng sẽ được khắc phục.
- HSR: Ngăn chặn việc tạo thiết bị với các thiết bị phụ từ các mạng khác, đóng đường dẫn cấu hình không nhất quán.
- Gro và gro_cells: hwtstamps được dọn sạch trên các đường dẫn tái sử dụng skbs và sự mất cân bằng khóa được sửa chữa trong gro_cells_receive.
- Khác: virtio-net xóa các trường băm không sử dụng; hibmcge chọn FIXED_PHY; dlink sử dụng dev_kfree_skb_any; stmmac/rk sửa lỗi chức năng chọn xung nhịp; enetc sửa lỗi bế tắc khóa MDIO và giá trị TRUESIZE.
Nhìn chung, ngăn xếp mạng nhận được các bản vá lỗi nhỏ giọt giúp ngăn ngừa các sự cố bất ngờ khi tải và xử lý các chi tiết trong đường dẫn dữ liệu, nếu chúng bị lỗi, dịch thành độ trễ, mất mát hoặc khối.
Đồ họa & Hiển thị: DRM/AMD, DRM/Xe, Rockchip & QR Panic
Không gian DRM cũng đang chuyển động, với những thay đổi về an ninh và ổn định:
- Hiển thị DRM/AMD: Sử dụng GFP_NOWAIT trong ngữ cảnh ngắt, tăng liên kết tối đa và tránh truy cập NULL trong liên kết→enc; ngoài ra, sửa lỗi con trỏ null trên các đường dẫn cụ thể.
- DRM/Xe: Bảo toàn cờ VM khi tạo lại và chia tách VM cho madvise và ẩn chức năng tự động đặt lại madvise sau cờ VM_BIND, loại bỏ các cạnh nguy hiểm.
- Rockchip: Sửa mặt nạ SCLIN cho RK3228 trong dw_hdmi.
- drm/panic: một số cải tiến cho “chế độ hoảng loạn” với logo và mã QR: tránh chồng chéo với logo, đảm bảo lề dọc dương, ngăn chia cho số 0 khi chiều rộng màn hình nhỏ hơn chiều rộng phông chữ và không vượt qua các trang có pixel 24 bit.
- Intel i915: Ngăn chặn rò rỉ đối tượng hoảng loạn khi phân bổ cấu trúc của nó.
Ngay cả Panthor (GPU) cũng đã được tinh chỉnh để ngăn chặn lỗi kernel panic làm mất một phần vùng VA, một lỗi khó chịu thường xuất hiện trong các trường hợp bộ nhớ bị phân mảnh. Đây là những thay đổi tuy tinh tế, ngăn chặn sự cố trên máy tính thực.
Chất kết dính rỉ sét và chất kết dính cổ điển
Rust Binder tiếp tục hoàn thiện với một số tinh chỉnh: cảnh báo về các ánh xạ mồ côi đã bị xóa, thông báo freeze_notif_done được gửi lại trong trường hợp có trạng thái bất ngờ, FreezeListener bị ngăn không cho xóa nếu có các bản sao đang chờ xử lý, và thông báo chỉ được báo cáo khi quy trình thực sự bị đóng băng. Đồng thời, Binder cổ điển cũng loại bỏ kiểm tra "invalid inc weak" không còn đóng góp gì nữa. Về phía chuỗi công cụ, objtool nhận ra một hàm Rust bổ sung là 'noreturn' và cảnh báo ngắn gọn trong Rust Binder đã được dọn dẹp.
io_uring, sqpoll và zc rx
Trong io_uring có một số điều chỉnh phẫu thuật: việc sử dụng sai Unlike() trong io_waitid_prep() đã được sửa, chú thích __must_hold đã được điều chỉnh, tự động cam kết bộ đệm cho các lệnh đa nhiệm uring_cmd đã được sửa và kế toán CPU sqpoll được đánh giá lại Để lại getrusage() cho lần khác và cập nhật stime thông minh hơn. Ngoài ra, một mục trong MAINTAINERS cho zcrx đã được thêm vào.
Kiến trúc và ACPI: RISC-V, arm64 và x86
các kiến trúc Chúng đa dạng và cụ thể:
- RISC-V: pgprot_dmacoherent() được định nghĩa cho các thiết bị không nhất quán, chi tiết về CPU bị vô hiệu hóa không được in trong DT, IRQ IPI được đăng ký với tên duy nhất, MAX_POSSIBLE_PHYSMEM_BITS được định nghĩa cho zsmalloc và Các macro kế thừa không cần thiết đã bị xóa. Cũng đã sửa lỗi sử dụng chưa được khởi tạo trong hwprobe và khóa khởi tạo muộn trong vDSO.
- arm64: Trong MTE, cảnh báo sẽ bị ẩn nếu trang đã được gắn thẻ trong copy_highpage().
- x86: Điều chỉnh thông báo RETBLEED cho Intel, sửa lỗi kiểm tra sửa đổi Entrysign cho Zen1/Naples và mã chết được dọn dẹp trong quá trình giảm thiểu.
- ACPI/properties: Đã sửa thứ tự đối số trong acpi_node_get_property_reference() và xóa cảnh báo khi IOMMU_API bị vô hiệu hóa trong RIMT.
Nó cũng sửa các lỗi lẻ như pcibios_align_resource() trong MIPS Malta để khóa phạm vi IO và tài nguyên bàn phím ngăn i8042 đăng ký. Đây là những thay đổi nhỏ tránh các tình huống bế tắc hoặc khởi tạo dễ vỡ.
Trình điều khiển và bus: SPI, serial, hwmon, GPIO, PCI/ASPM và các loại khác
RC này mang lại một điều tốt một loạt các sửa đổi trong trình điều khiển:
- SPI: Dirmap lỗi của Airoha hiện trả về lỗi, thêm hỗ trợ dual/quad trong exec_op, chuyển về chế độ không phải DMA nếu có sự cố xảy ra và sửa lỗi nháy nhiều mặt phẳng trên mỗi LUN; NXP FSPI đặt lại đồng hồ khi cần và giới hạn tần số theo nguồn, ngoài việc thêm độ trễ sau khi khóa DLL; Intel SPI còn bổ sung hỗ trợ cho mật độ 128M và nền tảng mới (Arrow Lake-H, Wildcat Lake).
- Serial và TTY: 8250_dw xử lý lỗi khi đặt lại; 8250_mtk kích hoạt xung nhịp baud và chuyển nó đến PM thời gian chạy; sc16is7xx xóa các baud không cần thiết đã kích hoạt; sh-sci sửa lỗi tràn FIFO.
- PCI/ASPM: Trên nền tảng DeviceTree, chỉ có L0 và L1 được bật, một quyết định thận trọng để tránh các trạng thái chưa được xác thực.
- GPIO: ACPI làm giảm mức độ nghiêm trọng của lỗi debounce; gpio-regmap thêm tham số fixed_direction_output; các mô-đun IDIO-16 xác định
địa chỉ hợp lệ tối đa và địa chỉ đường dây cố định. - Hwmon và pmbus: Đã sửa lỗi rò rỉ tham chiếu đến các nút con và cập nhật hệ số mô hình Max/ISL, cùng với thông tin chi tiết về trình điều khiển quạt GPD.
Song song với đó, các mô-đun tương thích DT được thêm vào SPI Cadence (ZynqMP/Versal-Net), Rockchip RK3506 và UFS QMP cho Kaanapali, ngoài các ID tùy chọn mới (Telit FN920C04 ECM, Quectel RG255C, UNISOC UIS7720). tinh chỉnh hỗ trợ cho phần cứng mới đến.
Bộ nhớ, tấm và mm/damon
Khu vực bộ nhớ cũng nhận được sự chú ý: các cuộc đua với obj_exts và điều kiện nhầm lẫn NULL được tránh trong slab; mm/mremap tính toán chính xác ánh xạ cũ sau DONTUNMAP; THP ngăn chặn việc tiêu thụ chất độc khi chia các trang lớn; DAMON dọn sạch rò rỉ ops_filter và tập trung logic mục tiêu hạn ngạch. Trong hugetlbfs, các khẳng định khóa được di chuyển sau khi trả về sớm trong huge_pmd_unshare().
Bảo mật, theo dõi và Kconfig
Những phần nhỏ nhưng quan trọng:
- lib/crypto: Poly1305 khôi phục các phụ thuộc với !KMSAN, tránh xung đột cấu hình.
- include/trace: Đã sửa lỗi trợ giúp đếm số lần khởi động không thành công; thêm điểm theo dõi SMB3 cho tín dụng đọc/ghi.
- Nhiều Kconfig: Trợ giúp CONFIG_XFS_RT được cải thiện và các bài kiểm tra/thống kê được điều chỉnh theo DEBUG_FS. Sửa lỗi phụ thuộc trong QCOMTEE và các nền tảng khác.
Đây là những thay đổi riêng biệt giúp ngăn ngừa sự cố trong quá trình cấu hình kernel và giúp chẩn đoán dễ dàng hơn khi có vấn đề gì đó không khởi động đúng cách. Tổng hợp những cải tiến về chất lượng cuộc sống này dẫn đến ít thời gian lãng phí hơn.
Bài đánh giá 6.18-rc3 này làm rõ trọng tâm: mạnh mẽ hơn là phô trương. Từ khối SMB Direct đến các tinh chỉnh XFS, cho đến vô số trình điều khiển và bản sửa lỗi về mạng, đồ họa và bộ nhớ, tất cả đều hướng đến một kernel đáng tin cậy hơn. Được thêm vào bản đồ phiên bản (với 6.17 là bản phát hành ổn định gần đây nhất và 6.12/6.6 là phiên bản LTS của tham chiếu), chúng ta có một bức tranh mạch lạc về trạng thái hiện tại: Lặp lại liên tục, hỗ trợ lâu dài ở những nơi quan trọng và một lộ trình di cư mà mỗi nhóm có thể vạch ra một cách bình tĩnh, biết được nhánh nào an toàn và nhánh nào vẫn còn trong giai đoạn sơ khai.
