मेरे पास ईएलएफ साझा लाइब्रेरी में बहुत सी कोड है जिसका उपयोग केवल लाइब्रेरी प्रारंभिक (इसे स्थिर प्रारंभकर्ताओं से कहा जाता है) के दौरान किया जाता है। अगर मैं इस कोड को अपने सेक्शन में डालता हूं (या शायद यह .init सेक्शन में जा सकता है), जो मैं __attribute__((section(".mysection")))
का उपयोग कर कर सकता हूं, क्या लाइब्रेरी लोड होने के बाद इस सेक्शन को पर्ज करने के लिए मजबूर करने का कोई तरीका है?रैम से फ्लश ईएलएफ अनुभाग
This question संबंधित है, लेकिन निष्कर्ष यह था कि कर्नेल स्मृति से कम होने पर अप्रयुक्त पृष्ठों को बाहर कर देगा, इसलिए स्पष्ट रूप से ऐसा करने की आवश्यकता नहीं है। हालांकि, मैं एक एम्बेडेड वातावरण में काम कर रहा हूं जहां स्मृति प्रीमियम पर है और डिस्क से कोड में पेजिंग की लागत (धीमी यूएसबी फ्लैश ड्राइव) अधिक है। इसलिए मैं स्पष्ट रूप से इस कोड को फ्लश करना चाहता हूं, जो मुझे पता है कि कर्नेल शायद किसी अन्य कोड को फ्लश करने का फैसला नहीं कर सकता है, जिसके परिणामस्वरूप अंततः पेजिंग की आवश्यकता हो सकती है।
मैं हूं निश्चित रूप से मुझे कर्नेल से स्मृति के कुछ क्षेत्रों में या बाहर पृष्ठ से पूछने के लिए एक सिस्कल के बारे में पढ़ना याद है, हालांकि मुझे इसे कहीं भी कोई संदर्भ नहीं मिल रहा है, इसलिए शायद मैंने इसे कल्पना की। क्या ऐसी किसी वस्तु का अस्तित्व है?
विशेष रूप से MADV_WILLNEED/MADV_DONTNEED पैरामीटर के साथ 'madvise' syscall, मैं यही सोच रहा था। हालांकि, मुझे अभी भी यह जानने में दिलचस्पी है कि किसी विशेष ईएलएफ अनुभाग को पर्ज करने के लिए मजबूर करने का कोई आसान तरीका है या नहीं। – jchl