intel_lpmd_config.xml(5) File Formats Manual intel_lpmd_config.xml(5)

intel_lpmd_config.xml - پرونده پیکربندی دیمن مدیریت توان مصرفی کم اینتل

$(TDCONFDIR)/etc/intel_lpmd/intel_lpmd_config.xml

intel_lpmd_config.xml یک پرونده پیکربندی برای دیمن مدیریت حالت توان مصرفی کم اینتل (Intel Low Power Mode Daemon) است. از این پرونده برای تعیین lp_mode_cpus جهت استفاده در حالت توان مصرفی کم، و همچنین روش محدود کردن کارها به این پردازنده‌ها استفاده می‌شود. همچنین مشخص می‌کند که آیا پایشگر HFI و پایشگر بهره‌وری پردازنده فعال باشند و چگونه کار کنند. مکان این پرونده به گزینه‌های پیکربندی استفاده‌شده در زمان ساخت بستگی دارد.

lp_mode_cpus مجموعه‌ای از پردازنده‌های فعال در زمان قرارگیری سیستم در حالت توان مصرفی کم است. این معمولاً برابر با گروهی از بهینه‌ترین پردازنده‌ها از نظر مصرف انرژی در پلتفرم است تا بیشترین میزان صرفه‌جویی در مصرف انرژی حاصل شود. در صورت عدم تعیین، ابزار intel_lpmd می‌تواند آن را به‌طور خودکار شناسایی کند. برای نمونه، در پلتفرم Intel Alderlake از یک ماژول E-core استفاده می‌کند و در پلتفرم Intel Meteorlake از هسته‌های Low Power E-core واقع بر روی SoC Die بهره می‌گیرد.

Mode روش مهاجرت وظایف (tasks) به lp_mode_cpus را مشخص می‌کند.

  • Mode 0: تنظیم cpuset روی lp_mode_cpus برای systemd. تمام وظایف ایجادشده توسط systemd تنها روی این پردازنده‌ها اجرا خواهند شد. این حالت تنها برای systemd مبتنی بر cgroup v2 پشتیبانی می‌شود.
  • Mode 1: جداسازی (Isolate) پردازنده‌های غیر lp_mode_cpus به‌گونه‌ای که وظایف تنها روی lp_mode_cpus زمان‌بندی شوند.
  • Mode 2: تزریق اجباری حالت بی‌کاری (idle injection) به پردازنده‌های غیر lp_mode_cpus و بهره‌گیری از زمان‌بند برای زمان‌بندی سایر وظایف روی lp_mode_cpus.

PerformanceDef رفتار پیش‌فرض را هنگام تنظیم حالت مصرف توان روی Performance مشخص می‌کند.

  • -1 : هرگز وارد حالت توان مصرفی کم نشود.
  • 0 : ورود/خروج فرصت‌طلبانه (opportunistic) به حالت توان مصرفی کم بر اساس درخواست HFI/بهره‌وری.
  • 1 : همیشه در حالت توان مصرفی کم بماند.

BalancedDef رفتار پیش‌فرض را هنگام تنظیم حالت مصرف توان روی Balanced مشخص می‌کند.

PowersaverDef رفتار پیش‌فرض را هنگام تنظیم حالت مصرف توان روی Power saver مشخص می‌کند.

HfiLpmEnable مشخص می‌کند که آیا پایشگر HFI می‌تواند نشانه‌های (hints) مربوط به حالت توان مصرفی کم را دریافت کند یا خیر.

HfiSuvEnable مشخص می‌کند که آیا پایشگر HFI می‌تواند نشانه‌های مربوط به حالت بقا (survivability mode) را دریافت کند یا خیر.

WLTHintEnable فعال‌سازی استفاده از نشانه‌های سخت‌افزاری نوع بار کاری (Workload type hints).

WLTProxyEnable فعال‌سازی استفاده از نشانه‌های نیابتی نوع بار کاری (Proxy Workload type hints).

util_entry_threshold آستانه بهره‌وری سیستم برای ورود به حالت توان مصرفی کم را مشخص می‌کند. بار کاری سیستم زمانی مناسب با ظرفیت lp_mode_cpus در نظر گرفته می‌شود که بهره‌وری سیستم زیر این آستانه باشد. تنظیم روی 0 یا خالی گذاشتن آن، پایشگر بهره‌وری را غیرفعال می‌کند.

util_exit_threshold آستانه بهره‌وری پردازنده برای خروج از حالت توان مصرفی کم را مشخص می‌کند. بار کاری سیستم زمانی نامناسب با ظرفیت lp_mode_cpus در نظر گرفته می‌شود که بهره‌وری پرمشغله‌ترین پردازنده در lp_mode_cpus بالاتر از این آستانه باشد. تنظیم روی 0 یا خالی گذاشتن آن، پایشگر بهره‌وری را غیرفعال می‌کند.

EntryDelayMS فاصله زمانی نمونه‌برداری مورداستفاده توسط پایشگر بهره‌وری را هنگامی که سیستم بر اساس بهره‌وری سیستم می‌خواهد وارد حالت توان مصرفی کم شود مشخص می‌کند. تنظیم روی 0 یا خالی گذاشتن آن باعث می‌شود پایشگر بهره‌وری از فاصله زمانی پیش‌فرض، یعنی ۱۰۰۰ میلی‌ثانیه استفاده کند.

ExitDelayMS فاصله زمانی نمونه‌برداری مورداستفاده توسط پایشگر بهره‌وری را هنگامی که سیستم بر اساس بهره‌وری پردازنده می‌خواهد از حالت توان مصرفی کم خارج شود مشخص می‌کند. تنظیم روی 0 یا خالی گذاشتن آن باعث می‌شود پایشگر بهره‌وری از مقدار تطبیقی (adaptive) استفاده کند. فاصله زمانی تطبیقی بر اساس بهره‌وری پردازنده است. هرچه پردازنده پرکارتر باشد، پایشگر بهره‌وری از فاصله زمانی کوتاه‌تری استفاده می‌کند.

EntryHystMS یک آستانه هیسترزیس (hysteresis) را هنگامی که سیستم در حالت توان مصرفی کم است مشخص می‌کند. در صورت تنظیم، اگر میانگین زمان قبلی سپری‌شده در حالت توان مصرفی کم کمتر از این مقدار باشد، درخواست فعلی برای ورود به حالت توان مصرفی کم نادیده گرفته می‌شود زیرا انتظار می‌رود سیستم به‌زودی از حالت توان مصرفی کم خارج شود. تنظیم روی 0 یا خالی گذاشتن آن، این الگوریتم هیسترزیس را غیرفعال می‌کند.

ExitHystMS یک آستانه هیسترزیس را هنگامی که سیستم در حالت توان مصرفی کم نیست مشخص می‌کند. در صورت تنظیم، اگر میانگین زمان قبلی سپری‌شده خارج از حالت توان مصرفی کم کمتر از این مقدار باشد، درخواست فعلی برای خروج از حالت توان مصرفی کم نادیده گرفته می‌شود زیرا انتظار می‌رود سیستم به‌زودی وارد حالت توان مصرفی کم شود. تنظیم روی 0 یا خالی گذاشتن آن، این الگوریتم هیسترزیس را غیرفعال می‌کند.

IgnoreITMT جلوگیری از تغییر فلگ ITMT زمان‌بند. به این معنی که در حین انتقال به حالت توان مصرفی کم، فلگ ITMT تغییر نمی‌کند. این کار تأخیر را هنگام تعویض کاهش می‌دهد. این فلگ زمانی که پیکربندی از پیکربندی مبتنی بر «State» استفاده می‌کند استفاده نمی‌شود، جایی که این فلگ می‌تواند به ازای هر وضعیت تعریف شود.

States امکان تعریف وضعیت‌های توان مصرفی کم به ازای هر پلتفرم را فراهم می‌کند. هر وضعیت دارای یک شرط ورود و مجموعه‌ای از پارامترها برای استفاده است.

می‌تواند چندین پیکربندی State وجود داشته باشد. هر پیکربندی برای یک پلتفرم معتبر است. یک هدر State پارامترهایی را تعریف می‌کند که برای تطبیق با یک پلتفرم استفاده می‌شوند. CPUFamily نسل پردازنده برای تطبیق.

CPUModel مدل پردازنده برای تطبیق.

CPUConfig پیکربندی پردازنده‌ها و TDP را برای تطبیق با انواع (skews) مختلف همان مدل و نسل پردازنده تعریف می‌کند. قالب رشته پیکربندی پردازنده به‌صورت xPyEzL-tdpW است. برای نمونه: 12P8E2L-28W، پلتفرمی را با ۶ هسته P با قابلیت چندریسمانی هم‌زمان (hyper-threading) فعال، ۸ هسته E، ۲ هسته LPE و TDP برابر با ۲۸ وات تعریف می‌کند. این پیکربندی اجازه استفاده از نویسه عمومی "*" را برای تطبیق با هر ترکیبی می‌دهد.

هر «State» شرایط ورود و پارامترهای مورداستفاده را تعریف می‌کند. ID یک شناسه یکتا برای وضعیت.

Name یک نام برای وضعیت.

EntrySystemLoadThres آستانه بار ورودی سیستم بر حسب درصد. بهره‌وری سیستم بر اساس تعداد پردازنده‌های فعال در یک پیکربندی متفاوت است. این مقدار از sysfs در مسیر /proc/stat محاسبه می‌شود. برای ورود به این وضعیت، بهره‌وری سیستم باید کمتر یا مساوی با این مقدار باشد.

EnterCPULoadThres آستانه بار ورودی پردازنده بر حسب درصد. بهره‌وری هر پردازنده نیز از /proc/stat به دست می‌آید. برای ورود به این وضعیت، بهره‌وری هر پردازنده فعال باید کمتر یا مساوی با این مقدار باشد. گزینه EnterCPULoadThres قبل از EntrySystemLoadThres برای تطبیق یک وضعیت بررسی می‌شود.

WLTType مقدار نوع بار کاری برای ورود به این وضعیت. در صورت تعریف این مقدار، محرک‌های ورود مبتنی بر بهره‌وری استفاده نمی‌شوند. برای استفاده از این، گزینه WLTHintEnable باید فعال باشد تا اعلان‌های سخت‌افزاری فعال شوند.

ActiveCPUs پردازنده‌های فعال در این وضعیت. این فهرست می‌تواند با کاما جدا شود یا از "-" برای یک محدوده استفاده کند. داشتن پردازنده‌های فعال در یک وضعیت اختیاری است.

EPP مقدار EPP اعمال‌شونده برای این وضعیت. مقدار -1 برای نادیده گرفتن.

EPB مقدار EPB اعمال‌شونده برای این وضعیت. مقدار -1 برای نادیده گرفتن.

ITMTState تنظیم وضعیت فلگ ITMT. مقدار -1 برای نادیده گرفتن.

IRQMigrate مهاجرت IRQها به پردازنده‌های فعال در این وضعیت. مقدار -1 برای نادیده گرفتن.

MinPollInterval حداقل فاصله نظرسنجی (polling interval) بر حسب میلی‌ثانیه.

MaxPollInterval حداکثر فاصله نظرسنجی بر حسب میلی‌ثانیه. این گزینه در صورتی که حداکثری مد نظر نباشد اختیاری است.

PollIntervalIncrement میزان افزایش فاصله نظرسنجی بر حسب میلی‌ثانیه. اگر این مقدار -1 باشد، افزایش نظرسنجی به‌صورت تطبیقی بر اساس بهره‌وری خواهد بود.

قالب پرونده پیکربندی با مشخصات XML مطابقت دارد.

<Configuration>
	<!--
		CPU format example: 1,2,4..6,8-10
	-->
	<lp_mode_cpus>Example CPUs</lp_mode_cpus>
	<!--
		Mode values
		0: Cgroup v2
		1: Cgroup v2 isolate
		2: CPU idle injection
	-->
	<Mode>0|1|2</Mode>
	<!--
		Default behavior when Performance power setting is used
		-1: force off. (Never enter Low Power Mode)
		 1: force on. (Always stay in Low Power Mode)
		 0: auto. (opportunistic Low Power Mode enter/exit)
	-->
	<PerformanceDef>-1|0|1</PerformanceDef>
	<!--
		Default behavior when Balanced power setting is used
		-1: force off. (Never enter Low Power Mode)
		 1: force on. (Always stay in Low Power Mode)
		 0: auto. (opportunistic Low Power Mode enter/exit)
	-->
	<BalancedDef>-1|0|1</BalancedDef>
	<!--
		Default behavior when Power saver setting is used
		-1: force off. (Never enter Low Power Mode)
		 1: force on. (Always stay in Low Power Mode)
		 0: auto. (opportunistic Low Power Mode enter/exit)
	-->
	<PowersaverDef>-1|0|1</PowersaverDef>
	<!--
		Use HFI LPM hints
		0 : No
		1 : Yes
	-->
	<HfiLpmEnable>0|1</HfiLpmEnable>
	<!--
		Use HFI SUV hints
		0 : No
		1 : Yes
	-->
	<HfiSuvEnable>0|1</HfiSuvEnable>
	<!--
		System utilization threshold to enter LP mode
		from 0 - 100
	-->
	<util_entry_threshold>Example threshold</util_entry_threshold>
	<!--
		System utilization threshold to exit LP mode
		from 0 - 100
	-->
	<util_exit_threshold>Example threshold</util_exit_threshold>
	<!--
		Entry delay. Minimum delay in non Low Power mode to
		enter LPM mode.
	-->
	<EntryDelayMS>Example delay</EntryDelayMS>
	<!--
		Exit delay. Minimum delay in Low Power mode to
		exit LPM mode.
	-->
	<ExitDelayMS>Example delay</ExitDelayMS>
	<!--
		Lowest hyst average in-LP-mode time in msec to enter LP mode
		0: to disable hyst support
	-->
	<EntryHystMS>Example hyst</EntryHystMS>
	<!--
		Lowest hyst average out-of-LP-mode time in msec to exit LP mode
		0: to disable hyst support
	-->
	<ExitHystMS>Example hyst</ExitHystMS>
	<!--
		EPP to use in Low Power Mode
		0-255: Valid EPP value to use in Low Power Mode
		   -1: Don't change EPP in Low Power Mode
	-->
	<lp_mode_epp>-1 | EPP value</lp_mode_epp>
</Configuration>

نمونه ۱: این حداقل پیکربندی است.

  • lp_mode_cpus: تنظیم نشده است. lp_mode_cpus را به‌طور خودکار شناسایی می‌کند.
  • Mode: 0. استفاده از cgroup-v2 systemd برای مهاجرت وظایف.
  • HfiLpmEnable: 0. نادیده گرفتن نشانه‌های حالت توان مصرفی کم HFI.
  • HfiSuvEnable: 0. نادیده گرفتن نشانه‌های حالت بقای HFI. با پاک بودن هر دو HfiLpmEnable و HfiSuvEnable، پایشگر HFI غیرفعال خواهد شد.
  • util_entry_threshold: 0. غیرفعال‌سازی پایشگر بهره‌وری.
  • util_exit_threshold: 0. غیرفعال‌سازی پایشگر بهره‌وری.
  • EntryDelayMS: 0. در صورت غیرفعال بودن پایشگر بهره‌وری تأثیری ندارد.
  • ExitDelayMS: 0. در صورت غیرفعال بودن پایشگر بهره‌وری تأثیری ندارد.
  • EntryHystMS: 0. در صورت غیرفعال بودن پایشگر بهره‌وری تأثیری ندارد.
  • ExitHystMS: 0. در صورت غیرفعال بودن پایشگر بهره‌وری تأثیری ندارد.
  • lp_mode_epp: -1. عدم تغییر EPP هنگام ورود به حالت توان مصرفی کم.
    <?xml version="1.0"?>
    <Configuration>
    	<lp_mode_cpus></lp_mode_cpus>
    	<Mode>0</Mode>
    	<HfiLpmEnable>0</HfiLpmEnable>
    	<HfiSuvEnable>0</HfiSuvEnable>
    	<util_entry_threshold>0</util_entry_threshold>
    	<util_exit_threshold>0</util_exit_threshold>
    	<EntryDelayMS>0</EntryDelayMS>
    	<ExitDelayMS>0</ExitDelayMS>
    	<EntryHystMS>0</EntryHystMS>
    	<ExitHystMS>0</ExitHystMS>
    	<lp_mode_epp>-1</lp_mode_epp>
    </Configuration>

نمونه ۲: این پیکربندی معمول است. آستانه‌های بهره‌وری و تأخیرها می‌توانند بر اساس نیاز متفاوت باشند.

  • lp_mode_cpus: تنظیم نشده است. lp_mode_cpus را به‌طور خودکار شناسایی می‌کند.
  • Mode: 0. استفاده از cgroup-v2 systemd برای مهاجرت وظایف.
  • HfiLpmEnable: 1. ورود/خروج به حالت توان مصرفی کم بر اساس نشانه‌های HFI.
  • HfiSuvEnable: 1. ورود/خروج به حالت بقا بر اساس نشانه‌های HFI.
  • util_entry_threshold: 5. ورود به حالت توان مصرفی کم زمانی که بهره‌وری سیستم کمتر از ۵٪ باشد.
  • util_exit_threshold: 95. خروج از حالت توان مصرفی کم زمانی که بهره‌وری هر یک از lp_mode_cpus بالاتر از ۹۵٪ باشد.
  • EntryDelayMS: 0. نمونه‌برداری مجدد در هر ۱۰۰۰ میلی‌ثانیه زمانی که سیستم خارج از حالت توان مصرفی کم است.
  • ExitDelayMS: 0. نمونه‌برداری مجدد تطبیقی بر اساس بهره‌وری lp_mode_cpus زمانی که سیستم در حالت توان مصرفی کم است.
  • EntryHystMS: 2000. نادیده گرفتن درخواست فعلی ورود به حالت توان مصرفی کم در صورتی که میانگین زمان قبلی سپری‌شده در حالت توان مصرفی کم کمتر از ۲۰۰۰ میلی‌ثانیه باشد.
  • ExitHystMS: 3000. نادیده گرفتن درخواست فعلی خروج از حالت توان مصرفی کم در صورتی که میانگین زمان قبلی سپری‌شده خارج از حالت توان مصرفی کم کمتر از ۳۰۰۰ میلی‌ثانیه باشد.
  • lp_mode_epp: -1. عدم تغییر EPP هنگام ورود به حالت توان مصرفی کم.
    <?xml version="1.0"?>
    <Configuration>
    	<lp_mode_cpus></lp_mode_cpus>
    	<Mode>0</Mode>
    	<HfiLpmEnable>1</HfiLpmEnable>
    	<HfiSuvEnable>1</HfiSuvEnable>
    	<util_entry_threshold>5</util_entry_threshold>
    	<util_exit_threshold>95</util_exit_threshold>
    	<EntryDelayMS>0</EntryDelayMS>
    	<ExitDelayMS>0</ExitDelayMS>
    	<EntryHystMS>2000</EntryHystMS>
    	<ExitHystMS>3000</ExitHystMS>
    	<lp_mode_epp>-1</lp_mode_epp>
    </Configuration>
1 Jun 2023