2011-10-12 15 views
5

मैं आरडीटीएससी का अध्ययन कर रहा हूं और वर्चुअलबॉक्स और वीएमवेयर जैसे वर्चुअल मशीनों के प्रयोजनों के लिए वर्चुअलाइज किया गया है। इंटेल/एएमडी ने इस निर्देश को वर्चुअलाइज करने की सभी परेशानी क्यों की?आरडीटीएससी आधुनिक प्रोसेसर पर वर्चुअलाइज्ड निर्देश क्यों है?

मुझे लगता है कि इसे आसानी से जाल के साथ अनुकरण किया जा सकता है और यह वास्तव में एक सुपर-सामान्य निर्देश नहीं है (मैंने परीक्षण किया है और वर्चुअल मशीन में सामान्य उपयोग के लिए कोई उल्लेखनीय धीमी गति नहीं है जहां हार्डवेयर आरडीटीएस वर्चुअलाइजेशन अक्षम है)।

हालांकि, मुझे पता है कि इंटेल/एएमडी इस निर्देश को वर्चुअलाइजिंग हार्डवेयर में जोड़ने के लिए सभी परेशानी नहीं कर पाएगा जब तक कि यह बहुत तेजी से निष्पादित करने में सक्षम नहीं था।

क्या किसी को पता है क्यों?

+0

ध्यान दें कि मेरे परीक्षणों के मुताबिक, एक मानक ईसी 2 उदाहरण पर आरडीटीएससी * वर्चुअलाइज्ड नहीं है (मैंने [इस सवाल के बारे में इस सवाल का उपयोग किया] [http: // security.stackexchange.com/questions/34523/is-it- अनुचित-to-use-haveged-as-a- स्रोत-of-entropy-on-virtual-machines) - यह भी टिप्पणी द्वारा पुष्टि की गई है [ यह धागा] (https://forums.aws.amazon.com/thread.jspa?messageID=221076&tstart=0#jive-message-231568) – Korny

उत्तर

7

आरडीटीएससी का उपयोग करने के लिए इसका सामान्य उपयोग ठीक समय की जानकारी प्राप्त करने के लिए किया जाता है, जहां वर्चुअलाइजेशन जाल का ओवरहेड काफी महत्वपूर्ण होगा। सबसे आम उपयोग दो आरडीटीएससी निर्देशों के बीच कोड के अनुक्रम के लिए समय के अंतर (चक्रों की संख्या) के रूप में समय के अंतर को लेकर, उनके बीच एक छोटी सी मात्रा के साथ होना चाहिए। तो पाइपलाइन नालियों/फ्लश का ओवरहेड भी काफी महत्वपूर्ण है।

इसके अलावा, चूंकि सभी निर्देश लगातार चल रहे काउंटर को पढ़ते हैं, वर्चुअलाइजिंग करना काफी आसान है - हार्डवेयर को केवल वीएम संदर्भ स्विच पर काउंटर वैल्यू को सहेजने/पुनः लोड करने की आवश्यकता होती है, और आरडीटीएससी निर्देश के लिए कुछ विशेष नहीं है अपने आप।

+0

ठीक है, मुझे लगता है कि आपको बहुत अच्छे समय के लिए वर्चुअलाइजेशन की आवश्यकता क्यों होगी निर्देशों का संक्षिप्त अनुक्रम। हालांकि, ऐसा करने का एकमात्र कारण मैं शोध उद्देश्यों, या साइड-चैनल हमलों के बारे में सोच सकता हूं। क्या कोई वैध कारण हैं? ऐसा लगता है कि rdtsc का वर्चुअलाइजेशन बुरा है –

+0

(अनुसंधान नहीं है ' टी वैध: पी, मेरा कहना था, "कोई अन्य पैर ठीक-ठीक समय के शोध के महत्वपूर्ण लेकिन असामान्य कार्य के अलावा कारणों को स्पष्ट करें? ") –

+0

ठीक है, अगर आप आरडीटीएससी को सही तरीके से वर्चुअलाइज नहीं करते हैं, तो प्रोग्राम के लिए यह एक आसान तरीका बन जाता है कि यह वर्चुअलाइजेशन के तहत चल रहा है, जिसे आप नहीं चाहते –

2

वीएम अलग-अलग टीएससी होने में सक्षम होना चाहिए क्योंकि वे अलग-अलग समय पर शुरू होते हैं। भौतिक सीपीयू में सिर्फ एक है, इसलिए कम से कम व्यक्तिगत, प्रति-वीएम टीएससी ऑफसेट प्राप्त करने के लिए कुछ आवश्यक है।

इसके अलावा, चूंकि वीएम के अंतर्निहित भौतिक CPUs का स्वामित्व नहीं है, यानी, वे हर समय उन्हें निष्पादित नहीं करते हैं, उनके टीएससी को किसी भी तरह से "चालू/बंद" अवधि को प्रतिबिंबित करना चाहिए और यह है वांछनीय है कि वे मूल्य wrt में अचानक बदल नहीं है वास्तविक समय, जिसे वीएम को मेजबान ओएस से अभी भी सही होना चाहिए, क्योंकि वहां बहुत सारे सॉफ़्टवेयर हैं जो वर्चुअलाइजेशन-पहले से ही हैं और संख्याएं बहुत दूर होने पर तोड़ सकती हैं।

मुझे लगता है कि आरडीटीएससी वर्चुअलाइज्ड होने के कारण हैं। लेकिन आप जो भी करते हैं, विवादित आवश्यकताओं को पूरा करना मुश्किल है और वे मामलों को जटिल बनाते हैं। आप वर्चुअलाइजेशन को छुपा नहीं सकते हैं और वीएम एक ही समय में निकट-मूल गति पर चलते हैं। व्यापार बंद हैं और कुछ चीजों को देना है।

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