توفر حزمة البرامج هذه الدعم الأساسي لتقنية Intel(R) Resource Director Technology (Intel(R) RDT) وIntel(R) I/O Resource Director Technology (Intel(R) I/O RDT) بما في ذلك: تقنية مراقبة ذاكرة التخزين المؤقت (CMT) ومراقبة النطاق الترددي للذاكرة (MBM)، وتقنية تخصيص ذاكرة التخزين المؤقت (CAT)، وتحديد أولويات التعليمات البرمجية والبيانات (CDP)، وتخصيص النطاق الترددي للذاكرة (MBA).
من حيث المبدأ، يتم برمجة التقنيات عبر السجلات المحددة للنموذج (MSR) على أساس خيط الأجهزة. يتم ترتيب الوصول إلى MSR عبر برنامج تشغيل نظام التشغيل القياسي: msr على Linux وcpuctl على FreeBSD. في التطبيقات المعمارية الأكثر شيوعًا، يتم الكشف عن وجود التقنيات عبر تعليمات CPUID.
في عدد محدود من الحالات الخاصة حيث لا يتم دعم CAT معماريًا على SKU معين (ولكن بدلاً من ذلك يوجد تطبيق غير معماري (خاص بالنموذج)) يمكن اكتشافه عبر سلسلة العلامة التجارية. تتم قراءة سلسلة العلامة التجارية هذه من CPUID ومقارنتها بجدول وحدات SKU المدعومة المعروفة. إذا لزم الأمر، يتم إجراء فحص نهائي لفحص MSR المحدد لاكتشاف قدرات الأجهزة، ومع ذلك فمن المستحسن استخدام تعداد CPUID حيثما كان ذلك ممكنًا.
من إصدار البرنامج v1.0.0، تضيف المكتبة خيارًا لاستخدام Intel(R) RDT عبر واجهات نظام التشغيل المتاحة (perf وresctrl على Linux). تكتشف المكتبة وجود هذه الواجهات وتسمح بتحديد الواجهة المفضلة من خلال خيار التكوين. ونتيجة لذلك، يمكن أيضًا استخدام الأدوات الموجودة مثل "pqos" أو "rdtset" لإدارة Intel(R) RDT بطريقة متوافقة مع نظام التشغيل. اعتبارًا من الإصدار v4.3.0، أصبحت واجهة نظام التشغيل هي الخيار الافتراضي. تمت إضافة أغلفة أدوات "pqos" للمساعدة في اختيار الواجهة. "pqos-os" و"pqos-msr" لعمليات واجهة نظام التشغيل وMSR على التوالي.
تمت إزالة خيار وقت ترجمة PID API وأصبحت واجهات برمجة التطبيقات متاحة دائمًا. لاحظ أن التشغيل السليم لواجهات برمجة التطبيقات هذه يعتمد على توفر واجهة نظام التشغيل واختيارها.
تتم صيانة حزمة البرامج هذه وتحديثها وتطويرها على https://github.com/intel/intel-cmt-cat
يوفر https://github.com/intel/intel-cmt-cat/wiki الأسئلة الشائعة وأمثلة الاستخدام والروابط المفيدة.
يرجى الرجوع إلى ملف التثبيت للحصول على تعليمات تثبيت الحزمة.
دليل "ليب":
يتضمن ملفات مكتبة البرامج التي توفر واجهات برمجة التطبيقات (API) للكشف عن التكنولوجيا ومراقبتها وتخصيصها. يرجى الرجوع إلى المكتبة README لمزيد من التفاصيل (lib/README).
دليل "lib/perl":
يتضمن غلاف Perl لمكتبة PQoS. يرجى الرجوع إلى الواجهة README لمزيد من التفاصيل (lib/Perl/README).
دليل "lib/python":
يتضمن غلاف مكتبة PQoS Python 3.x. يرجى الرجوع إلى الواجهة README لمزيد من التفاصيل (lib/python/README.md).
دليل "بكوس":
يتضمن ملفات مصدر للأداة المساعدة التي توفر الوصول إلى سطر الأوامر إلى Intel(R) RDT. ترتبط الأداة المساعدة بالمكتبة وتبرمج التقنيات عبر واجهات برمجة التطبيقات الخاصة بها. يرجى الرجوع إلى الأداة المساعدة README للحصول على مزيد من التفاصيل "pqos/README". توفر الصفحة اليدوية للأداة المساعدة "pqos" أيضًا معلومات حول استخدام الأداة: $ man pqos
دليل "ردتسيت":
يتضمن ملفات مصدر للأداة المساعدة التي توفر وظيفة تشبه "مجموعة المهام" لتكوين RDT. ترتبط الأداة المساعدة بالمكتبة وتبرمج التقنيات عبر واجهات برمجة التطبيقات الخاصة بها. يرجى الرجوع إلى الأداة المساعدة README للحصول على مزيد من التفاصيل "rdtset/README". توفر الصفحة اليدوية للأداة المساعدة "rdtset" أيضًا معلومات حول استخدام الأداة: $ man rdtset
دليل "آبكوس":
يتضمن ملفات مصدر لتطبيق يسمح بتجميع التطبيقات في مجموعات تعتمد على الأولوية. يتم تعيين تكوين Intel(R) RDT وIntel(R) SST لكل تجمع والذي يمكن تعيينه عند بدء التشغيل أو في وقت التشغيل من خلال REST API. يرجى الرجوع إلى التطبيق README لمزيد من التفاصيل "appqos/README".
دليل "appqos_client":
يتضمن ملفات المصدر لتطبيق ويب عميل App QoS. يوفر التطبيق واجهة مستخدم بسيطة لتكوين Intel(R) RDT وIntel(R) SST عن بعد على الأنظمة التي يتم فيها تشغيل App QoS. يرجى الرجوع إلى التطبيق README لمزيد من التفاصيل "appqos_client/README".
دليل "الأمثلة":
يتضمن أمثلة C وPerl لاستخدام Intel(R) RDT عبر واجهة برمجة تطبيقات المكتبة. يرجى الرجوع إلى ملف README لمزيد من التفاصيل "أمثلة/README".
دليل "snmp":
يتضمن وكيلًا فرعيًا لـ Net-SNMP AgentX مكتوبًا بلغة Perl لتوضيح استخدام واجهة برمجة تطبيقات Perl المجمعة لمكتبة PQoS. يرجى الرجوع إلى ملف README لمزيد من التفاصيل "snmp/README".
دليل "الأدوات":
يتضمن أداة membw للضغط على النطاق الترددي للذاكرة من خلال عمليات مختلفة.
دليل "srpm":
يتضمن ملفات *.src *.rpm و*.spec لحزمة البرامج.
ملف "سجل التغيير":
وصف موجز للتغييرات بين الإصدارات.
ملف "التثبيت":
تعليمات التثبيت.
ملف "الترخيص":
ترخيص الحزمة.
دليل "اختبار الوحدة":
اختبارات الوحدة
يمكن العثور على المنتجات المدعومة في الملحق أ الخاص بمواصفات بنية تقنية Intel® Resource Director Technology (Intel® RDT): https://www.intel.com/content/www/us/en/content-details/789566/intel-resource -مدير التكنولوجيا-intel-rdt-architecture-specification.html
يحتوي الملحق ب على قائمة بالمعالجات ذات ميزات Intel® RDT الخاصة بالطراز.
ملاحظة: يتطلب اكتشاف الميزات الخاصة بالنموذج تعيين متغير البيئة RDT_PROBE_MSR
عند استخدام المكتبة والأدوات المساعدة. تتوفر هذه الميزات فقط عند استخدام واجهة MSR. راجع قسم "الواجهات" أدناه لمزيد من المعلومات. راجع الويكي للحصول على أمثلة الاستخدام.
للحصول على تفاصيل إضافية عن Intel(R) RDT، يرجى الرجوع إلى أدلة تطوير برامج Intel(R) المعمارية المتوفرة على: https://www.intel.com/content/www/us/en/develop/download/intel-64-and -ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html يمكن تقديم معلومات محددة موجود في المجلد 3أ، الفصول 17.18 و17.19.
Linux هو نظام التشغيل الأساسي المدعوم في الوقت الحالي. يوجد منفذ FreeBSD للبرنامج ولكن نظرًا لنطاق التحقق المحدود، فهو تجريبي إلى حد ما في هذه المرحلة. على الرغم من أن معظم نواة Linux الحديثة تتضمن دعمًا لـ Intel(R) RDT، فإن حزمة برامج Intel(R) RDT تسبق هذه الامتدادات ويمكن أن تعمل مع دعم kernel أو بدونه. يستطيع برنامج Intel(R) RDT اكتشاف امتدادات kernel هذه والاستفادة منها عندما تكون متاحة لإضافة وظائف، ولكنه متوافق أيضًا مع النوى القديمة.
تم تقديم دعم Linux kernel لـ Intel(R) RDT في الأصل مع ملحقات استدعاء نظام Linux perf لـ CMT وMBM. وفي الآونة الأخيرة، أضافت واجهة Resctrl دعمًا لـ CAT وCDP وMBA. في نواة Linux الحديثة، يُنصح باستخدام واجهة kernel/OS عندما تكون متاحة. يمكن العثور على تفاصيل حول هذه الواجهات في resctrl_ui.txt. تظل حزمة البرامج هذه، Intel(R) RDT، تعمل بسلاسة في جميع إصدارات Linux kernel.
توفر مكتبة برامج Intel(R) RDT وأدواتها المساعدة واجهتين لبرمجة تقنيات Intel(R) RDT، وهما واجهات MSR ونظام التشغيل.
يتم استخدام واجهة MSR لتكوين النظام الأساسي عن طريق برمجة الأجهزة (MSR) مباشرة. هذه هي الواجهة القديمة ولا تتطلب دعم kernel لـ Intel(R) RDT ولكنها تقتصر على مراقبة الموارد وإدارتها على أساس كل مركز.
تمت إضافة واجهة نظام التشغيل لاحقًا إلى الحزمة، وعند تحديدها، ستستفيد المكتبة من امتدادات Linux kernel لبرمجة هذه التقنيات. يتيح ذلك مراقبة الموارد وإدارتها على أساس كل عملية أساسية/عملية ويجب استخدامها عند توفرها.
يرجى الاطلاع على الجداول أدناه للحصول على مزيد من المعلومات حول وقت إضافة دعم ميزة Intel(R) RDT (MSR ونظام التشغيل) إلى الحزمة.
نسخة إنتل (R) RDT | تم تمكين ميزة RDT | مطلوب إصدار النواة |
---|---|---|
0.1.3 | L3 القط، CMT، MBM | أي |
0.1.4 | L3 سي دي بي | أي |
0.1.5 | L2 كات | أي |
1.2.0 | ماجستير في إدارة الأعمال | أي |
2.0.0 | L2 سي دي بي | أي |
5.0.0 | الإدخال/الإخراج RDT | أي |
نسخة إنتل (R) RDT | تم تمكين ميزة RDT | مطلوب إصدار النواة | الواجهة الموصى بها |
---|---|---|---|
0.1.4 | CMT (الأداء) | 4.1 | ام اس ار (1) |
1.0.0 | إم بي إم (الأداء) | 4.7 | ام اس ار (1) |
1.1.0 | L3 CAT، L3 CDP، L2 CAT (Resctrl) | 4.10 | نظام التشغيل للتخصيص فقط (باستثناء ماجستير إدارة الأعمال) MSR للتخصيص + المراقبة (2) |
1.2.0 | ماجستير في إدارة الأعمال (ريسكترل) | 4.12 | نظام التشغيل للتخصيص فقط MSR للتخصيص + المراقبة (2) |
2.0.0 | CMT، MBM (Resctrl) | 4.14 | نظام التشغيل |
2.0.0 | L2 سي دي بي | 4.16 | نظام التشغيل |
3.0.0 | ماجستير في إدارة الأعمال CTRL (Resctrl) | 4.18 | نظام التشغيل |
مراجع:
التبعيات الوحيدة لـ Intel(R) RDT هي الوصول إلى مكتبات C وpthreads و:
تمكين دعم Intel(R) RDT في:
ملاحظة: لا توجد خيارات تكوين kernel مطلوبة قبل الإصدار 4.10.
باختصار، استخدام برنامج Intel(R) RDT أو PCM مع أطر عمل Linux perf وcgroup غير مسموح به في الوقت الحالي.
على الرغم من أن الأمر مخيب للآمال، إلا أنه غير مسموح باستخدام Linux perf لـ CMT وMBM وIntel(R) RDT لـ CAT وCDP. وذلك لأن أداء Linux يتجاوز تكوين CAT الحالي أثناء عملياته.
هناك عدد من الخيارات للاختيار من بينها للاستفادة من CAT:
الجدول 4. مصفوفة التشغيل البيني للبرمجيات
إنتل (R) آر دي تي | بي سي إم | أداء لينكس | مجموعة لينكس | Linux resctrl | |
---|---|---|---|---|---|
إنتل (R) آر دي تي | نعم(1) | نعم(2) | نعم(5) | لا | نعم(5) |
بي سي إم | نعم(2) | نعم | لا | لا | لا |
أداء لينكس | نعم(5) | لا | نعم | نعم(3) | نعم |
مجموعة لينكس | لا | لا | نعم | نعم(3) | لا |
ريسكتريل لينكس (4) | نعم(5) | لا | نعم | لا | نعم |
مراجع:
يمكن لمراقبة pqos من Intel(R) RDT اكتشاف عمليات مراقبة pqos الأخرى في النظام. يكتشف rdtset من Intel(R) RDT العمليات الأخرى التي بدأت مع rdtset ولن يستخدم موارد CAT/CDP الخاصة به.
يمكن لـ pqos من Intel(R) RDT اكتشاف أن PCM يراقب النوى ولن يحاول اختطاف النوى ما لم يتم إجباره. ومع ذلك، إذا تم بدء مراقبة pqos أولاً ثم بدأ PCM، فسيقوم الأخير باختطاف البنية التحتية للمراقبة من pqos لاستخدامها.
تصحيح نواة مجموعة Linux cgroup https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
إصدار نواة لينكس 4.10 وأحدث. يتوفر موقع wiki الخاص بـ Intel resctrl على: https://github.com/intel/intel-cmt-cat/wiki/resctrl
فقط مع إصدار Linux kernel 4.10 (والأحدث)، الإصدار 1.0.0 من Intel(R) RDT (والأحدث) مع واجهة نظام التشغيل المحددة، راجع خيار "-I" في "man pqos" أو "pqos-os".
PCM متاح على: https://github.com/opcm/pcm
الجدول 5. حالة تمكين برنامج Intel(R) RDT.
جوهر | مهمة | سي إم تي | إم بي إم | L3 كات | L3 سي دي بي | L2 كات | ماجستير في إدارة الأعمال | |
---|---|---|---|---|---|---|---|---|
إنتل (R) آر دي تي | نعم | نعم(7) | نعم | نعم | نعم | نعم | نعم | نعم |
أداء لينكس | نعم(6) | نعم | نعم(1) | نعم(2) | رقم (3) | رقم (3) | رقم (3) | لا |
مجموعة لينكس | لا | نعم | لا | لا | نعم(4) | لا | لا | لا |
ريسكتريل لينكس (5) | نعم | نعم | نعم(8) | نعم(8) | نعم | نعم | نعم | نعم(9) |
أسطورة:
مراجع:
يتم توفير هذا البرنامج من قبل شركة INTEL "كما هو". لا يتم منح أي ترخيص، صريحًا أو ضمنيًا، بالإغلاق الحكمي أو غير ذلك، لأي من حقوق الملكية الفكرية من خلال الاستخدام. باستثناء ما هو منصوص عليه في شروط وأحكام البيع الخاصة بشركة Intel، لا تتحمل شركة Intel أي مسؤولية على الإطلاق وتخلي شركة Intel مسؤوليتها عن أي ضمان صريح أو ضمني يتعلق ببيع و/أو استخدام منتجات Intel بما في ذلك المسؤولية أو الضمانات المتعلقة بالملاءمة لـ غرض خاص أو قابلية التسويق أو انتهاك أي براءة اختراع أو حقوق الطبع والنشر أو غيرها من حقوق الملكية الفكرية.