弈城围棋
简介
弈城围棋是弈城围棋网推出的一款围棋学习和网络对战的 App. 它可安装在包括 Windows, Android, iOS, iPad, MacOS 在内的各个平台。
stateDiagram-v2
R: running
S: sleeping
D: disk sleep
T: stopped
t: tracing stop
X: dead
Z: zombie
P: parked
I: idle
R --> S: schedule_timeout()
R --> D: Wait for Disk I/O
R --> T: SIGTSTP
R --> t: gdb/strace
S --> R: wake_up_process()
D --> R: I/O Completed
T --> R: SIGCONT
T --> t: gdb/strace
T --> Z: SIGKILL But Sth Wrong with Its Parent
R --> Z: Exit But Sth Wrong with Its Parent
t --> T: Quit gdb
flowchart BT
App@{ img: "/images/dma-buf/window-content.png", label: "vram for rendering", pos: "d", w: 60, h: 60, constraint: "on" }
Window@{ img: "/images/dma-buf/window-frame.png", label: "vram for window frame", pos: "d", w: 60, h: 60, constraint: "on" }
subgraph app [glxgears]
BO_10
end
subgraph x11 [Xorg]
BO_20
BO_11
end
subgraph compositor [kwin_x11]
BO_21
end
App ~~~ BO_10 --Exporter--> App
App --Importer--> BO_11
Window ~~~ BO_20 --Exporter--> Window
Window --Importer--> BO_21
本文翻译 Daniel Vetter 于 2015 年 8 月 5 日发表在 LWN.net 的文章 “Atomic mode setting design overview, part 1”. 文章主要阐述了为什么要引入一个全新的 Kernel Display Driver 接口以及新老实现的一些细节。
之前一直有一个疑问:为什么在 drm_gpu_sheduler 的 run_job 路径里带 GFP_KERNEL 标志的内存申请可以造成死锁?, 直到了解内核内存 Pin 和 Shrink 的机制后,好像是明白了死锁的过程。