การเปิดตัว Linux 6.2 – กับเปลี่ยนแปลงสถาปัตยกรรม Arm, RISC-V และ MIPS

Linus Torvalds ได้เปิดตัว Linux 6.2 พร้อมกับการประกาศบน LKML ตามปกติ

Linux 6.1 รุ่นก่อนหน้านี้ได้เปิดตัวเป็น LTS (Long Term Support) kernel พร้อมรองรับภาษาโปรแกรม Rust และ KMSAN kernel memory sanitizer รวมถึงการปรับปรุง Multi-gen LRU (MG-LRU) เพื่อการจัดการ swap file/partition ที่ดีขึ้น และการเปลี่ยนแปลงอื่น ๆ อีกมากมาย

Linux 6.2 release

จุดเด่นของลินุกซ์ 6.2

การเปลี่ยนแปลงที่สำคัญใน Linux 6.2 ประกอบด้วย:

  • Linux 6.2 มีการปรับปรุงในการแก้ไขช่องโหว่ Retbleed ที่เกิดจาก speculative execution บน x86-64 และ ARM processors ให้เร็วขึ้น และ FineIBT –ซึ่งมีผลกระทบอย่างมากต่อประสิทธิภาพของระบบ แต่ Linux 6.2 ได้พัฒนาวิธีการแก้ไขที่เบากว่าด้วยการใช้ซอฟต์แวร์เท่านั้นสำหรับชุดคำสั่ง Skylake-based cores โดยที่การเปิดใช้งาน IBRS จะไม่มีผลกระทบต่อประสิทธิภาพอย่างมาก วิธีการใหม่นี้สามารถเปิดใช้งานได้ด้วยตัวเลือกบูต rebleed= stuff นอกจากนี้ ในการเผชิญกับช่องโหว่ FineIBT ที่เกิดขึ้นจาก speculative execution โดยมีผลกระทบต่อการใช้งานระบบ Linux 6.2 ได้เพิ่มฟีเจอร์ FineIBT mitigation โดยใช้ซอฟต์แวร์ kCFI implementation และใช้การสนับสนุน IBT ของฮาร์ดแวร์ (หากมี) เพื่อป้องกัน indirect branches โดยใช้ hash เพื่อตรวจสอบความถูกต้องของการเข้าถึงข้อมูลนี้ LWN มีรายละเอียดเพิ่มเติมเกี่ยวกับการปรับปรุงนี้
  • เครื่องมือ Runtime Verification (RV) – ระบบ Runtime Verification ซึ่งได้รวมกับ Linux 6.0 เป็นวิธีการ Lightweight ซึ่งช่วยเสริมเทคนิคการตรวจสอบอย่างละเอียดอ่อน (exhaustive verification techniques) เช่น model checking และ theorem proving ด้วยการใช้วิธีการที่มีประโยชน์กว่าสำหรับระบบที่ซับซ้อนมากขึ้น Linux 6.2 รวมเครื่องมือ RV runtime verification ที่ใช้เป็นอินเทอร์เฟซสำหรับตรวจสอบใน kernel RV monitors และ “Home” สำหรับการควบคุมจากผู้ใช้งานใน user-space monitors
  • มีการปรับปรุงส่วนแปลงไฟล์ exFAT บน Linux 6.2 เมื่อสร้างไฟล์และไดเร็กทอรีเป็นไปได้อย่างรวดเร็วมากขึ้น
  • (ตัวเลือก) การปรับปรุงการล็อก RCU ที่ดีขึ้น ช่วยประหยัดพลังงานได้มากขึ้น – เทคนิคการล็อก RCU นั้น มีการปรับปรุงการเรียกใช้งาน callback ด้วยการแบทชิ่งที่อยู่บนไทเมอร์ (timer-based RCU callback batching หรือ lazy callbacks) ที่ช่วยประหยัดพลังงานได้ประมาณ 5-10% ในอุปกรณ์ Android และ ChromeOS เนื่องจากมีการร้องขอใช้งาน RCU เมื่อระบบไม่มีภาระหน้าที่หนักหน่วง หรือไม่มีการใช้งาน (ค่าเริ่มต้น เป็น off แต่สามารถเปิดใช้งานได้ใน KConfig)

การเปลี่ยนแปลง Arm ใน Linux 6.2

    • Allwinner
      • Allwinner A100 – MIPI DSI (DHPY) driver
      • Allwinner H616  – USB PHY driver
      • Allwinner A31 – Camera sensor driver code was now split into a bridge and a separate processor driver
      • Allwinner F1C100S – Add LRADC (KEYADC), CIR (infrared receiver), I2C, PWM
      • Clock driver
        • Fixed header guard for V3S clocks
        • Add IR module clock for F1C100S
      • IOMMU driver for Sun50i – Remove IOMMU_DOMAIN_IDENTITY as it has not been working forever, various other fixes
      • New boards and devices – None this time around
    • Rockchip
      • ASoC – Support for Rockchip RK3588
      • IOMMU – Page table permission bit fix
      • Clock driver – Support for the clock and reset unit of the Rockchip rk3588
      • Rockchip DesignWare PCIe controller driver – Base DT schema on common Synopsys schema.
      • Timers – Add DT bindings for the Rockchip rk3128 timer
      • Crypto support for rk3399 and rk3328
      • Second I2S controller for rk3568
      • Cache properties to follow the binding for rk3308 and rk3328
      • Device support updates for:
        • SOQuartz: PCIe2, video output, gpu, HDMI sound
        • Rock 3A: eth regulator, eth clock input, Wifi+Bt, I2S, PCIe3
        • Minor extensions for Rock960 (HDMI supplies), rk3566-roc-pc (PCIe2), Rock 4C+ (thermal support), Pinephone Pro (Wifi+Bt)
      • New devices and boards
    • Amlogic
      • Amlogic Meson G12 – Support for the DDR PMU present
      • ARM64 DT changes for Linux 6.2:
        • meson-gxl: add SPI pinctrl nodes for CLK
        • meson-gxbb: add SPI pinctrl nodes for CLK
        • Enable active coling using gpio-fan on Odroid N2/N2+
        • remove clock-frequency from rtc
        • Update cache properties for amlogic
      • New device – ODROID Go Ultra portable game console (S922X)
    • Samsung
      • IOMMU – Fix driver initialization sequence (Exynos)
      • DTS ARM64 change for Linux 6.2 – Correct pin drive strength macros (names) and values used on Tesla FSD SoC
    • Qualcomm
      • New SoCs:
        • MSM8996 Pro (Snapdragon 821)
        • SM6115 (Snapdragon 662)
        • SM4250 (Snapdragon 460)
        • SM6375 (Snapdragon 695)
        • SDM670 (Snapdragon 670)
        • MSM8976 (Snapdragon 652)
        • MSM8956 (Snapdragon 650)
        • SA8540P automotive SoC
      • Qualcomm PCIe controller driver – Add SC8280XP/SA8540P basic interconnect support.
      • PHY driver
        • Qualcomm SM8450 PCIe1 PHY support in EP mode
        • Qualcomm SC8280XP PCIe PHY support (including x4 mode)
        • Fixed Qualcomm SC8280XP USB4-USB3-DP PHY DT bindings
      • DMA engine – Qualcomm SDM670, SM6115 and SM6375 GPI controller support
      • Clock driver
        • Global clock controller for Qualcomm SM8550
        • Display clock controller for Qualcomm SC8280XP
        • RPMh clock controller for Qualcomm QDU1000 and QRU1000 SoCs
      • Regulator – Support for Qualcomm PM8550
      • Socinfo – Added knowledge about MSM8956, MSM8976, SM6115, SM4250, SM8150, SA8155 and SM8550.
      • Qualcomm 802.11ax WiFi (ath11k) – Supports configuring channel dwell time during scan.
      • Arm64 DTS updates for Linux 6.2
        • Add a description of the Vision Mezzanine for the RB5 board and the Navigation Mezzanine for the SDM845 RB3.
        • SC8280XP adds L3 and DDR scaling support, resulting in good performance improvement. PCIe and UFS are marked DMA coherent, resolving data
          corruption issues. Reference clocks for UFS phy and device are corrected, to resolve issues seen in combinations with some bootloaders where it’s not sufficient to rely on the bootloader state.
        • RTC description is added to the SA8295P ADP board.
        • SM6115: GPI, PRNG, tsens, WCN, cpufreq, I2C/SPI and display blocks are added.
        • SM6375: QUP blocks are described, allowing the addition of touchscreen and remoteprocs for ADSP and CDSP are introduced.
        • SM8250 Coresight components are described
        • SM8450 sound and Soundwire blocks are described, and enabled on HDK. CPU supply clock is described, to satisfy the DT binding and the
          opp-framework.
        • A wide variety of updates to align with DeviceTree bindings across many/most platforms is introduced, and incorrectly styled comments are
          adjusted across the tree.
        • Apps RSC is added to the cluster-idle power-domain across SM8150, SM8250, SM8350 and SM8450, to ensure sleep and wake votes are flushed as
          the last core is being powered down.
        • Remoteproc firmware patches are aligned with agreed upon structure used in linux-firmware across Inforce 6560, Lenovo Miix 630, various Sony
          Xperia devices and Samsung Galaxy Book2 (although these are not available in linux-firmware today).
        • IPQ8074 CPU: clocks are added, thermal zones are introduced and vqmmc supply is specified for the HK01 board.
        • Alcatel OneTouch Idol 3 gains LED nodes and Samsung Galaxy A3U gained vibrator support.
        • A new CPU frequency table is introduced for MSM8996Pro, to properly describe it separately of MSM8996. The GPU opp-table is extended as well.
        • SC7180: USB is marked as a wakeup source, USB gains required-opps to ensure that the core voltage rail is voted for as needed. The description of the fingerprint sensor in Trogdor is corrected.
        • SC7280: Wake-on-WLAN is introduced, and PHY parameters for the SNPS USB PHY is defined across SC7280.
        • The memory map across Google Herobrine is adjusted, to regain unused memory on the WiFi SKUs. A LTE SKU of the Evoker board is introduced
          and the bard gains touchscreen. NVME support is disabled on Villager boards, as it’s not used.
        • NVMe, SDX55 (5G) and WiFi enabled on the Lenovo Thinkpad X13s and Compute Reference Device. ADCs and thermal zones are introduced for the same. Lenovo Thinkpad X13s gains LID switch support.
        • Fairphone FP3 gains touchscreen support.
        • Fairphone FP4 got SD-card support.
        • The round-robin ADC is enabled across DB845c, OnePlus devices and Pocophone F1 devices.
        • The DisplayPort controller on SDM845 is introduced.
        • SM6350 gains SDHCI support and on Sony Xperia 10 III sd-card, touchscreen and GPI DMA is enabled.
        • UFS PHY register ranges are corrected across SM8150, SM8250, SM8350 and SM8450.
        • Sony Xperia 1 II got NFC support and Sony Xperia 5 III got PMIC regulators defined and USB definition corrected, to enable USB3.
        • The SDHCI controller is described for SM8450 and microSD support is enabled for the HDK and QRD devices.
        • SM8450 also gains camera CCI interface and display clock controller.
      • Arm defconfig updates
        • Enable remaining Qualcomm TLMM pinctrl drivers in the qcom_defconfig
      • Arm64 defconfig updates
        • Enable Globalc Clock Controller (GCC) and TLMM pinctrl for SM6115 and SM4250.
        • Enable more Qualcomm TLMM pinctrl drivers, and the Qualcomm crypto drivers.
        • Make the SC7180 and SM8450 interconnect drivers builtin, in order to ensure that a console will be registered before init needs it.
      • New devices and boards
        • Sony phones: Xperia 10 IV, 5 IV, X, and X compact
        • OnePlus phones: One, 3, 3T, and Nord N100
        • Xiaomi Poco F1 and Mi6
        • Huawei Watch
        • Google Pixel 3a
        • New variants of the Herobrine and Trogdor Chromebook motherboards
        • Qdrive-3 development platform based on SA8540P automotive SoC
    • MediaTek
      • IOMMU – Improve safety from invalid DTS input; smaller fixes and improvements
      • MediaTek PCIe Gen3 controller driver – Add MT7986 and MT8195 support
      • ASoC – Support  Mediatek systems with multiple DMICs
      • DRM
        • Fixup of DPI and HDMI
        • Move panel connector to head
        • Add MT8188 DPI support
        • Add MT8195 AFBC support
      • Net stack
        • Mediatek MT7986: add RX wireless Ethernet dispatch support
        • Mediatek (mtk_eth_soc) – improve PCS implementation, add DSA untag support, enable flow offload support
        • MediaTek Wi-Fi 7 (802.11be) devices
        • MediaTek WiFi (mt76)
          • Enable Wireless Ethernet Dispatch (WED) offload support
          • Add ack signal support
          • Enable coredump support
          • remain_on_channel support
      • Regulator – Support for Mediatek MT6357
      • Thermal – Add DT bindings and compatible for the Mediatek SoCs MT7981 and MT7983
      • GPIO – Add support for HW quirks for Mediatek MT2701
      • Clock – Frequency hopping controller hardware on MediaTek MT8186
      • New device – Mediatek Helio X10-based Sony Xperia M5 phone.
    • Other new Arm hardware platforms and SoCs
      • Apple – The Apple T6000 (M1 Pro), T6001 (M1 Max), and T6002 (M1 Ultra) chips now have initial support.
      • Aspeed – 2x Aspeed BMC users
      • Broadcom – 2x Wifi routers
      • Marvell – Zyxel NSA310S NAS (88F6702A)
      • NXP:
        • i.MX 6: Kobo Aura2 ebook reader
        • i.MX 8: 2x development boards
      • Renesas – Added RZ/G2UL (r9a07g043) support reorganized in order to share most of the DTS description between the Arm/RISC-V and added the RZ/Five SMARC EVK board support.
      • STMicro – STM32MP1 testbench board from DHCOR
      • Uniphier – 2x Uniphier Pro5 development boards
      • Texas Instruments – K3 based BeagleBone AI-64 board

การปรับปรุง RISC-V

  • Allwinner D1 – MIPI DSI driver, ASoC support
  • Renesas – RZ/Five SMARC EVK board support.
  • StarFive – JH7100 source gets reorganized in order to support the VisionFive V1 board.
  • KVM:
    • Allow unloading KVM module
    • Allow KVM user-space to set mvendorid, marchid, and mimpid
    • Several fixes and cleanups
  • Support for the T-Head PMU via the perf subsystem
  • ftrace support for rv32
  • Support for non-volatile memory devices
  • Various fixes and cleanups
  • Device tree updates:
    • dt-bindings:
      • New compatibles to support the StarFive VisionFive & T-Head CPU cores
      • A fix for the PolarFire SoC’s pwm binding, merged through my tree as suggested by the PWM maintainers
      • Microchip:
        • Non-urgent fix for the node address not matches the reg in a way that the checkers don’t complain about
        • Add GPIO controlled LEDs for Icicle
        • Support for the “CCC” clocks in the FPGA fabric.
        • A fix for the Icicle’s pwm-cells
        • Removal of some unused PCI clocks
      • StarFive – Addition of the VisionFive DT

หมายเหตุ บางอัพเดตสำหรับ RISC-V พบในอัพเดตของ ARM SoC จาก Arnd Bergmann น่าจะเป็นเพราะบางบริษัทใช้ไดรเวอร์เดียวกันสำหรับ RISC-V และ Arm SoCs และ Arnd ดูเหมือนจะดูแลการอัพเดต Device Trees สำหรับ RISC-V ด้วย

การเปลี่ยนแปลง MIPS

มีการรวมการอัปเดตบางอย่างสำหรับสถาปัตยกรรม MIPS:

  • Ingenic – Ingenic JZ4755 dmaengine support
  • DT cleanups
  • Fix for early use of kzalloc on mt7621 platform
  • Cleanups and fixes

นอกจากนี้ยังสามารถดู Linux 6.2 changelog ที่มี commit messages เพิ่มเติม ได้จากการใช้คำสั่ง git log v6.1..v6.2-rc8 --statหรือรายละเอียดเพิ่มเติมได้ที่เว็บไซต์ KernelNewbies

แปลจากบทความภาษาอังกฤษ : Linux 6.2 release – Main changes, Arm, RISC-V, and MIPS architectures

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
โฆษณา