# 第 7, 8 週課堂問答簡記 :::warning 線上討論: [https://meet.google.com/ean-rqef-zik](https://meet.google.com/ean-rqef-zik) (使用 Google Meet 時,請關閉 YouTube) ::: ## Eddielin0926 [quiz4](https://hackmd.io/@eddielin0926/2022q1-quiz4) * 在 [sched.h](https://github.com/torvalds/linux/blob/5bfc75d92efd494db37f5c4c173d3639d4772966/include/asm-generic/bitops/sched.h) 中看到 `ffs` 的應用 * TODO: bitmap 到底在 scheduler 中如何使用? ## steven1lung [quiz4](https://hackmd.io/@steven1lung/linux2022-quiz4) * 從[最早的 commit](https://github.com/torvalds/linux/commit/e506ea451254ab17e0bf918ca36232fec2a9b10c) 去看,是將 `READ_ONCE` 跟 `WRITE_ONCE` 從 `linux/compiler.h` 移走,直接寫在一個新檔案 rwonce.h 裡。這樣是為了之後讓不同的微處理器架構去定義實作自己的 `READ_ONCE` 巨集 ## sternacht [quiz4](https://hackmd.io/@sternacht09/H1jHtVNGc) * `ACCESS_ONCE` 巨集的定義 ## ganoliz [quiz4](https://hackmd.io/@ganoliz/Linux2022q1_quiz4) * user-level thread 示意圖 ## Kevin-Shih [quiz4](https://hackmd.io/@Kevin-Shih/linux2022q1-quiz4) * [kernel/sched/fair.c](https://github.com/torvalds/linux/blob/master/kernel/sched/fair.c#L196) 程式碼片段中有出現類似的形式 `1 + ilog2(cpus)` ,用於一段更新一些 `tunable parameters` 的函數,其中一種 policy 採用與 cpu 數量成對數關係的預測方式 * TODO: 搭配 Linux CPU 排程器書籍提到的 sysctl_sched_min_granularity 來探討 ## kevinshieh0225 [quiz4](https://hackmd.io/@Masamaloka/linux2022-quiz4) ## ccs100203 [quiz4](https://hackmd.io/@cccccs100203/linux2022-quiz4) * `ACCESS_ONCE` 巨集的定義 ## bakudr18 [quiz4](https://hackmd.io/@bakudr18/r1b8zzCbc) * coroutine * `READ_ONCE` 巨集的考量 [quiz3](https://hackmd.io/@bakudr18/SkvYGt1-c) ## qwe661234 [fibdrv](https://hackmd.io/@qwe661234/linux2022q1-homework3) ## LJP-TW [fibdrv](https://hackmd.io/@LJP/Byjtmukf9) ## kdnvt [fibdrv](https://hackmd.io/@kdnvt/fibdrv) ## kevinshieh0225 [fibdrv](https://hackmd.io/@Masamaloka/linux2022-quiz3) ## yaohwang99 [fibdrv](https://hackmd.io/@yaohwang99/linux2022-fibdrv) ## freshLiver [quiz4](https://hackmd.io/@freshLiver/linux2022q1-hw4-quiz) * 若存在比 fls 還要快速的實作方式,就會使用對應的 ilog 方式處理,例如在 `arch/x86/include/asm/bitops.h` 就用 `BSLR` 指令 * Intel64 與 AMD64 的 BSR 指令在 x 為 0 時會有不同的表現 ## laneser [quiz2](https://hackmd.io/@laneser/linux2022-quiz2) ## tinyynoob [quiz2](https://hackmd.io/@tinyynoob/linux2022q1-quiz2) ## steven1lung [quiz2](https://hackmd.io/@steven1lung/SJAMABy-9) ## hankluo6 [quiz2](https://hackmd.io/@hankluo6/linux2022-quiz2)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.