NT Synchronization Primitive Driver

⭐⭐⭐⭐ (4星)
来源: LWN.net | 日期: 2026-03-25
Linux内核
Wine
Windows API
驱动开发
性能优化

摘要

Linux内核新驱动 /dev/ntsync 实现 Windows NT 同步原语,大幅提升 Wine 性能,部分游戏帧率提升 50-150%。

背景

Wine 项目在用户空间模拟 Windows API。NT 同步原语传统上通过 RPC 到专用"内核"进程实现,但更现代的应用程序使用这些 API 更频繁,RPC 开销已成为瓶颈。

性能提升

游戏原始帧率ntsync后提升
Dirt 3110.6860.7678%
Resident Evil 22677196%
Tiny Tina's Wonderlands130360177%

技术亮点

  • 实现对象: semaphore、mutex、event 等同步原语
  • 等待模式: 支持 wait-for-any 和 wait-for-all
  • 性能优化: 每个对象只有单个 spinlock;wait-for-all 使用设备级锁
  • 线程管理: 用户空间模拟器管理线程 ID 和废弃 mutex 检测
  • 设计决策: 使用 misc 设备,便于创建多个自包含的"上下文"
核心价值: NT 同步 API 太复杂,无法在现有原语上实现而不牺牲正确性。新驱动直接在 Linux 内核实现这些问题接口。

链接

原文链接

Linux Plumbers Conference 2023 演讲