2009-07-20 30 views
5

Làm thế nào để mối quan hệ CPU của một quy trình được đặt trong mô-đun hạt nhân? Trong chế độ người dùng có một syscall sched_setaffinity, nhưng tôi đang tìm kiếm chế độ hạt nhân tương đương.Đặt mối quan hệ quá trình trong chế độ hạt nhân

Trong mã hạt nhân Linux, cũng có một hàm gọi là sched_setaffinity. Nó được gọi từ hàm sys_sched_setaffinity được gọi là system_call. Từ những gì nó có vẻ, đây là chức năng mà tôi muốn sử dụng. Thực tế là nó có cùng tên như gọi hệ thống làm cho tôi một chút khó chịu, mặc dù.

Nhưng như chúng ta đều biết, điều tốt nhất cần làm là chỉ cần thử nó. Vì vậy, tôi đã làm, và mô-đun của tôi được biên soạn. Tuy nhiên, khi tôi cố gắng tải mô-đun, nó phàn nàn rằng tên sched_setaffinity là không xác định.

Bất kỳ ý tưởng nào?

Trả lời

2

sched_setaffinity không được xuất sang mô-đun.

Nếu bạn sửa đổi /usr/src/linux/kernel/sched.c, bạn có thể làm cho sched_setaffinity được xuất sang mô-đun.

long sched_setaffinity(pid_t pid, const struct cpumask *in_mask) 
{ 
... 
} 
+EXPORT_SYMBOL_GPL(sched_setaffinity); 
+0

Điều đó có vẻ như vậy. Do tính chất của những gì tôi đang làm việc trên, nó không khả thi để sửa đổi hạt nhân. Tuy nhiên, cảm ơn rất nhiều. –

Các vấn đề liên quan