linux2022
2
考慮 lfring
是個 lock-free ring buffer 實作,並支援 multiple-producer/multiple-consumer (MPMC) 的情境。測試程式的參考輸出:
執行過程不會觸發任何 assert
失敗。
lfring
目前只支援 x86-64 架構,可在 Linux 和 macOS 執行,程式碼可見 gist (部分程式碼隱蔽)
需要補完的函式列表: (留意 DDD
, KKK
, TTT
, HHH
等處)
請補完程式碼,使得執行符合預期。作答規範:
延伸閱讀:
延伸問題:
git log include/linux/kfifo.h lib/kfifo.c
並觀察修改記錄
spin_unlock_irqrestore
的使用lfring
移植到 Linux 核心,並提供對應的測試及效能評比程式