linux kernel - Correct usage of sched_setaffinity with two parameters -
मैंने हाल ही में set_setaffinity विधि के लिए यह प्रोटोटाइप पाया है:
extern long sched_setaffinity (pid_t) पीआईडी, कॉन्स्ट्रस्ट्रैक्ट सीपमास्क * न्यू_मास्क); मैं एक कार्य के संबंध स्थापित करने के लिए इसका उपयोग करने का प्रयास कर रहा हूं लेकिन यह काम नहीं करता। यह मेरा क्रियान्वयन है:
#define _GNU_SOURCE #include & lt; linux / sched.h & gt; #include & lt; linux / cpumask.h & gt; Int set_aff (pid_t pid, int कोर) {स्थिर DECLARE_BITMAP (cpu_possible_bits, CONFIG_NR_CPUS); स्ट्रिप cpumask * const task_cpumask = to_cpumask (cpu_possible_bits); Cpumask_set_cpu (कोर, टास्क_कामामास्क); Sched_setaffinity (pid, task_cpumask); वापसी 0; } मेरे कोड को किसी भी त्रुटि के बिना संकलित किया जाता है, लेकिन जब मैं इस विधि को कॉल करने की कोशिश करता हूं, तो यह टूट जाता है। क्या किसी को पता है क्यों?
क्या यह एक कर्नेल विधि के अंदर से करने का एक बेहतर तरीका है?
आपको यह कोशिश करनी चाहिए:
cpu_set_t cpuset; CPU_ZERO (& amp; cpuset); CPU_SET (1, और amp; cpuset); यदि (शेड_सेटफिनिटी (0, आकार (cpu_set_t), और amp; cpuset)) बाहर निकलें (1);
Comments
Post a Comment