2015-01-17 6 views
6

मैं उपयोगकर्ता के बारे में निम्न लिंक आई/ओ पर पढ़ा है।कर्नेल उपयोगकर्ता आई/ओ अनुप्रयोग विकास

मैं मेजबान से अतिथि (QEmu में) मेमोरी मैप करने के लिए ivshmem डिवाइस का उपयोग कर रहा हूं। क्लाइंट ड्राइवर जो मैं उपयोग कर रहा हूं वह कर्नेल_मॉड्यूल/uio/uio_ivshmem.c https://www.gitorious.org/nahanni/guest-code से है।

मुझे कई मेहमानों के बीच स्मृति साझा करने में सफलता मिली है, और मैं ऊपर से गिट रिपोजिटरी से ivshmem-server का उपयोग करके मेजबान से अतिथि तक इंटरप्ट भी जारी कर सकता हूं।

लेकिन मैं यह नहीं समझ सकता कि अतिथि से लिखने के लिए अतिथि से "बाधित" कैसे हो सकता है। अर्थात। दूसरे अतिथि को संकेत दें कि इसे पढ़ना चाहिए कि पहले अतिथि ने क्या लिखा है।

मैं क्या गलत कर रहा हूं? क्या यूआईओ का उपयोग करके इंटरप्ट भेजने का कोई तरीका है या क्या मुझे केवल प्राप्त हो सकता है? मुझे और कैसे पता होना चाहिए कि मुझे लिखना/पढ़ना है?

+0

क्या? यह अंतर प्रक्रिया नहीं है, यह अंतर-वीएम है। सुनिश्चित नहीं है कि आपका क्या मतलब है, लेकिन यह गलत हो सकता है। – netigger

उत्तर

2

ठीक है, अब मुझे पता चला है कि मैं इंटरप्ट क्यों भेज सकता हूं।

मैंने परीक्षण अनुप्रयोगों का उपयोग करने का प्रयास किया, लेकिन, जैसा कि आप इस (http://lists.gnu.org/archive/html/qemu-devel/2014-08/msg05388.html) पोस्ट में पढ़ सकते हैं, कर्नेल में एक पैच uio_ivshmem.c तोड़ दिया।

इस पैच ने ivshmem को BAR0 को मानचित्र करने में असमर्थ बनाया, जिसका उपयोग इंटरप्ट भेजने के लिए किया जाता है। बीएआर 2 अभी भी ठीक है और डेटा साझा करने के लिए इस्तेमाल किया जा सकता है, हालांकि हस्तक्षेप काम नहीं करेगा।

संबंधित मुद्दे