मैं एक कर्नेल मॉड्यूल में दो समय बिंदुओं के बीच घड़ी काउंटर के अंतर को मापने की कोशिश कर रहा हूँ। मैं get_ccnt()
नामित निम्नलिखित फ़ंक्शन का उपयोग एक निश्चित समय पर एक घड़ी काउंटर मूल्य प्राप्त करने के:मल्टीकोर घड़ी काउंटर स्थिरता
static __inline__ long long int get_ccnt(void)
{
#if defined(__i386__)
long long int x;
__asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
return x;
#elif defined(__x86_64__)
unsigned int hi, lo;
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
return ((long long int)lo)|(((long long int)hi)<<32);
#endif
}
क्या मैं चिंता का विषय है, मैं हिमाचल प्रदेश EliteBook 2530p का उपयोग कर रहा है, जिसमें इंटेल कोर 2 डुओ SL9400 (spec. reference)
मैंने सुना है कि Nehalem
के बाद CPUs सभी कोरों पर लगातार घड़ी काउंटर है। (यदि मुझे गलत लगता है, तो कृपया इसे इंगित करें।) लेकिन, इंटेल कोर 2 डुओ SL 9400 का कोड नाम Penryn
है।
इस प्रकार, मुझे लगता है कि एक कर्नेल मॉड्यूल एक और करने के लिए दो समय बिंदुओं के बीच, तो दो कोर के बीच स्थिरता समझौता किया है एक कोर से ले जाता है और मैं एक सही घड़ी अंतर नहीं प्राप्त कर सकते हैं।
यह सही है कि मैं क्या सोच रहा हूँ? यदि ऐसा है, तो इसे ठीक करने का कोई तरीका है (उदाहरण के लिए कोर को कोर को स्थानांतरित करने के लिए कर्नेल मॉड्यूल को ठीक करें?)
मुझे पता चला [इस] (https://aufather.wordpress.com/2010/09/08/high-performance-time-measuremen-in-linux/) लेख। – LPs
बहुत बहुत धन्यवाद। ऐसा लगता है कि वह किसी प्रोसेसर को एक निश्चित CPU एफ़िनिटी को बाध्य करके समस्या को हल करने का प्रयास करता है। मैं इसे बाद में कोशिश करूँगा। – Jeon
आपका ऐप बहु-थ्रेडेड होने पर भी "कोर के बीच स्विचिंग" नहीं होना चाहिए। (प्रत्येक थ्रेड स्वतंत्र रूप से चलता है।) यदि विभिन्न कोरों पर दो धागे को प्रोफाइल करने का प्रयास कर रहे हैं, तो आप प्रत्येक कोर के उपयोग को स्वतंत्र रूप से समय दे सकते हैं और कुल परिणामों को एक साथ जोड़ सकते हैं। (मान लीजिए कि आप आरडीटीएससी के साथ रहना चाहते हैं।) या सभी धागे को उसी कोर पर बल दें। अन्यथा, मुख्य धागे पर आरडीटीएससी करने से किसी अन्य धागे की परवाह किए बिना, उस थ्रेड पर वापस जाने के लिए सही समय बीतने चाहिए। हालांकि यह लगभग हर मामले में जिटर देगा, क्योंकि कर्नेल/ओएस आवंटित करता है और फिट बैठता है। – rdtsc