2009-07-20 18 views
5

में प्रोसेस एफ़िनिटी सेट करना कर्नेल मॉड्यूल में प्रक्रिया की सीपीयू एफ़िनिटी कैसे सेट की जा सकती है? उपयोगकर्ता मोड में एक syscall sched_setaffinity है, लेकिन मैं कर्नेल मोड समकक्ष की तलाश में हूं।कर्नेल मोड

लिनक्स कर्नेल कोड में, sched_setaffinity नामक एक फ़ंक्शन भी है। इसे sys_sched_setaffinity फ़ंक्शन से कहा जाता है जिसे system_call द्वारा बुलाया जाता है। ऐसा लगता है कि, यह वह कार्य है जिसे मैं उपयोग करना चाहता हूं। तथ्य यह है कि सिस्टम कॉल के समान नाम है, हालांकि मुझे थोड़ा असहज बनाता है।

लेकिन जैसा कि हम सभी जानते हैं, सबसे अच्छी बात यह है कि इसे आजमाएं। तो मैंने किया, और मेरे मॉड्यूल संकलित। हालांकि, जब मैं मॉड्यूल लोड करने का प्रयास करता हूं, तो यह शिकायत करता है कि sched_setaffinity नाम अपरिभाषित है।

कोई विचार?

उत्तर

2

sched_setaffinity मॉड्यूल में निर्यात नहीं किया गया है।

यदि आप /usr/src/linux/kernel/sched.c संशोधित करते हैं, तो आप मॉड्यूल में निर्यात किए जाने के लिए sched_setaffinity का कारण बन सकते हैं।

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

ऐसा लगता है। मैं जिस पर काम कर रहा हूं उसकी प्रकृति के कारण, कर्नेल को संशोधित करना संभव नहीं है। फिर भी, बहुत बहुत धन्यवाद। –

संबंधित मुद्दे