[英]Can we write to jiffies variable
來自http://www.makelinux.net/ldd3/chp-7-sect-1.shtml
不用說,
jiffies
和jiffies_64
必須被認為是只讀的
我寫了一個程序來驗證,它成功地更新了jiffies
值。
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/jiffies.h>
static int __init test_hello_init(void)
{
jiffies = 0;
pr_info("jiffies:%lu\n", jiffies);
return 0;
}
static void __exit test_hello_exit(void)
{
}
MODULE_LICENSE("GPL");
module_init(test_hello_init);
module_exit(test_hello_exit);
該模塊成功地將jiffies
設置為零。 我錯過了什么嗎?
您正在閱讀的內容只是一個警告。 這是您(內核模塊開發人員)與內核之間的不成文契約。 您不應該修改jiffies
的值,因為這不是由您決定的,並且由內核根據一組您不必擔心的復雜規則進行更新。 jiffies
值由調度程序內部使用,因此修改它可能會發生不好的事情。 您在模塊中看到的變量可能只是真實變量的線程本地副本,因此修改可能無效。 無論如何,你不應該這樣做。 它僅作為附加信息提供給您,您的模塊可能需要了解這些信息以實現某些邏輯。
當然,由於您使用的是 C 語言,因此變量沒有“權限”的概念。 任何映射到內存可讀和可寫區域的內容都可以修改,您甚至可以通過先更改權限來修改只讀內存中的數據。 如果你願意,你可以做各種各樣的壞事。 有很多事情你不應該改變,即使你有能力這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.