मैंने चारों ओर गुगली की है और पाया है कि अधिकांश लोग kmallocस्मृति के भौतिक भौतिक ब्लॉक प्राप्त करने की गारंटी देते हैं। हालाँकि, ऐसा भी लगता है कि kmallocयदि कोई सन्निहित भौतिक अवरोध जो आप चाहते हैं वह नहीं मिल सकता है।
स्मृति के एक सन्निहित ब्लॉक होने के क्या फायदे हैं? विशेष रूप से, मुझे सिस्टम कॉल में मेमोरी के एक आकस्मिक भौतिक ब्लॉक की आवश्यकता क्यों होगी ? क्या कोई कारण है जो मैं अभी उपयोग नहीं कर सका ?
अंत में, अगर मुझे सिस्टम कॉल की हैंडलिंग के दौरान मेमोरी आवंटित करनी थी, तो क्या मुझे निर्दिष्ट करना चाहिए ? क्या एक सिस्टम कॉल को परमाणु संदर्भ में निष्पादित किया जाता है?vmallocGFP_ATOMIC
GFP_ATOMIC
आवंटन उच्च-प्राथमिकता है और नींद नहीं आती है। यह बाधा हैंडलर, निचले हिस्सों और अन्य स्थितियों में उपयोग करने का झंडा है जहां आप सो नहीं सकते हैं।
GFP_KERNELयह एक सामान्य आवंटन है और ब्लॉक हो सकता है। यह प्रक्रिया संदर्भ कोड में उपयोग करने वाला झंडा है जब यह सोने के लिए सुरक्षित है।
vmallocकर्नेल 5.2 (Q2 2019) के साथ तेज़ है