के माध्यम से स्मृति को अनचेक के रूप में सेट करें, मैं उपयोगकर्ता-स्पेस प्रक्रिया के भीतर से अनचाहे (लिनक्स, x86-86) के रूप में स्मृति की एक श्रृंखला सेट करना चाहता हूं। This question करीब आता है, लेकिन केवल एमटीआरआर रजिस्टरों का उल्लेख करता है जो भौतिक स्मृति के साथ काम करते हैं। मैं पीएटी टेबल का उपयोग करके ऐसा करना चाहता हूं क्योंकि वे बेहतर अनाज वाले नियंत्रण की पेशकश करते हैं, वे पृष्ठ-दर-पृष्ठ आधार पर वर्चुअल मेमोरी को बिना किसी अक्षम करने की अनुमति देते हैं।x86 पीएटी तालिका
लिनक्स प्रलेखन, Documentation/x86/pat.txt, सुझाव देता है कि mmap
और SYNC
ध्वज के साथ कुछ होना चाहिए, लेकिन मुझे यह नहीं पता कि अभ्यास में यह कैसे किया जाए। आदर्श रूप से, मैं mprotect(address, range, O_UNCACHABLE)
जैसे कॉल का उपयोग करना चाहता हूं।
'पागलपन'/'mlock' पर्याप्त हैं? –
नहीं, ऐसा लगता है कि ये केवल वर्चुअल मैपिंग को प्रभावित करते हैं (चाहे पृष्ठ रैम या डिस्क पर हों), लेकिन वे कैशिंग को प्रभावित नहीं करते हैं ... – Wim
हां, मुझे गलत समझा गया। :( –