crontab 放置進程,定時透過系統呼叫(如開啟檔案)喚醒核心模組。缺點:需啟動新進程、載入執行檔,僅為喚醒已駐留記憶體的模組。
tq_struct 結構,含目標函數指標queue_task 將任務放入 tq_timer 列表,下個定時器中斷執行tq_timer 實現週期性執行rmmod 移除模組前檢查引用計數器,為零則呼叫 cleanup_module 清除模組記憶體。但系統不會檢查定時器任務列表是否仍有該模組函數指標。
極短時間後定時器中斷觸發,嘗試呼叫已不存在的函數指標 → 輕則報錯,重則跳入其他程式碼導致災難性後果。且無簡單方法從任務列表註銷任務。
sleep_on(或 module_sleep_on)讓 rmmod 進程睡眠rmmod 進程被喚醒,確認安全後完成卸載