வேகமான கர்னல் தலைப்புகள், கர்னல் தொகுப்பை 50-80% வேகப்படுத்தும் இணைப்புகளின் தொகுப்பு

இங்கோ மோல்னார், நன்கு அறியப்பட்ட லினக்ஸ் கர்னல் டெவலப்பர் மற்றும் CFS Task Scheduler இன் ஆசிரியர் லினக்ஸ் கர்னல் டெவலப்மென்ட் மெயிலிங் பட்டியல் விவாதத்திற்கு பல இணைப்புகள் முன்மொழியப்பட்டது, இது கர்னல் மூலத்தில் உள்ள அனைத்து கோப்புகளிலும் பாதிக்கும் மேற்பட்டவற்றை பாதிக்கிறது மற்றும் கட்டமைப்பைப் பொறுத்து ஒட்டுமொத்த கர்னல் மறுகட்டமைப்பு வேகத்தை 50 -80% அதிகரிக்கும்.

தேர்வுமுறை செயல்படுத்தப்பட்டது இது மிகப்பெரிய மாற்றங்களைச் சேர்ப்பதோடு தொடர்புடையது என்பது குறிப்பிடத்தக்கது கர்னல் வளர்ச்சியின் வரலாற்றில்: அவை ஒரே நேரத்தில் 2297 இணைப்புகளைச் சேர்க்கத் தொடங்கி, 25 ஆயிரத்துக்கும் மேற்பட்ட கோப்புகளை மாற்றுகின்றன.

செயல்திறன் ஆதாயம் தலைப்பு கோப்பு கையாளும் முறையை மாற்றுவதன் மூலம் அடையப்படுகிறது. முப்பது வருட கர்னல் வளர்ச்சியின் போது, ​​கோப்புகளுக்கு இடையே அதிக எண்ணிக்கையிலான குறுக்கு-சார்புகள் இருப்பதால், தலைப்பு கோப்புகளின் நிலை மோசமான வடிவத்தை எடுத்துள்ளது என்பதைக் கவனத்தில் கொள்ள வேண்டும்.

தலைப்பு கோப்புகளின் மறுசீரமைப்பு ஒரு வருடத்திற்கு மேல் ஆனது படிநிலை மற்றும் சார்புகளின் குறிப்பிடத்தக்க மறுவடிவமைப்பு தேவை. மறுசீரமைப்பின் போது, ​​வெவ்வேறு கர்னல் துணை அமைப்புகளுக்கான வகை வரையறைகள் மற்றும் APIகளை பிரிக்கும் பணி செய்யப்பட்டது.

2020 ஆம் ஆண்டின் பிற்பகுதியில் இருந்து நான் பணியாற்றி வரும் எனது புதிய "ஃபாஸ்ட் கர்னல் ஹெடர்ஸ்" திட்டத்தின் முதல் பொதுப் பதிப்பை அறிவிப்பதில் மகிழ்ச்சி அடைகிறேன், இது லினக்ஸ் கர்னல் ஹெடர் படிநிலை மற்றும் தலைப்பு சார்புகளின் விரிவான மறுவேலை, இரட்டை நோக்கத்துடன்:

- கர்னல் உருவாக்கத்தை விரைவுபடுத்தவும் (முழுமையான மற்றும் அதிகரிக்கும் உருவாக்க நேரங்கள்)

- துணை அமைப்பு மற்றும் வரையறைகள் API இன் வகை துண்டித்தல்

பெரும்பாலான கர்னல் டெவலப்பர்களுக்குத் தெரியும், லினக்ஸ் கர்னலில் ~ 10,000 முக்கிய .h தலைப்புகள் உள்ளன, இதில் அடங்கும் / மற்றும் arch / * / include / hierarchies. கடந்த 30+ ஆண்டுகளில், அவை சிக்கலான மற்றும் வலிமிகுந்த குறுக்கு-சார்புகளின் தொகுப்பாக உருவாகியுள்ளன, அதை நாம் அன்புடன் 'சார்பு நரகம்' என்று அழைக்கிறோம்.

செய்யப்பட்ட மாற்றங்களில்: உயர்நிலை தலைப்பு கோப்புகளை ஒருவருக்கொருவர் பிரித்தல், தலைப்பு கோப்புகளை இணைக்கும் இன்லைன் செயல்பாடுகளை விலக்குதல், வகைகள் மற்றும் APIகளுக்கான தலைப்புக் கோப்புகளை மேப்பிங் செய்தல், தனித்தனி தலைப்புக் கோப்புகளை வழங்குதல் (சுமார் 80 கோப்புகள் மறைமுக சார்புகளைக் கொண்டிருந்தன, அவை அசெம்பிளியில் குறுக்கிடுகின்றன, பிற கோப்புகள் தலைப்புக் கோப்புகள் மூலம் வெளிப்படும்), சார்புகளை தானாகச் சேர்த்தல் ".h" மற்றும் ".c" கோப்புகள், தலைப்புக் கோப்புகளின் படிப்படியான மேம்படுத்தல், "CONFIG_KALLSYMS_FAST = y" பயன்முறையைப் பயன்படுத்துதல், ஆப்ஜெக்ட் கோப்புகளின் எண்ணிக்கையைக் குறைப்பதற்காக C கோப்புகளை அசெம்பிளி தொகுதிகளாகத் தேர்ந்தெடுத்து ஒருங்கிணைத்தல்.

இதன் விளைவாக, செயலாக்கப்பட்ட தலைப்பு கோப்புகளின் அளவைக் குறைக்கும் பணி அனுமதிக்கப்படுகிறதுபிந்தைய செயலாக்க நிலையில் 1-2 ஆர்டர்கள் அளவு.

  • எடுத்துக்காட்டாக, தேர்வுமுறைக்கு முன், "linux / gfp.h" என்ற தலைப்புக் கோப்பைப் பயன்படுத்துவதால், 13543 கோடுகள் சேர்க்கப்பட்டு 303 சார்ந்த தலைப்புக் கோப்புகள் சேர்க்கப்பட்டன, மேலும் தேர்வுமுறைக்குப் பிறகு அளவு 181 வரிகள் மற்றும் 26 சார்பு கோப்புகளாகக் குறைக்கப்பட்டது.
  • மற்றொரு எடுத்துக்காட்டு: இணைக்கப்படாத "கெர்னல் / pid.c" கோப்பை முன் செயலாக்கம் 94 ஆயிரம் கோடுகளை இணைக்கிறது, அவற்றில் பெரும்பாலானவை pid.c இல் பயன்படுத்தப்படவில்லை. தலைப்புக் கோப்புகளைப் பிரிப்பதன் மூலம் மூன்று முறை செயலாக்கப்பட்ட குறியீட்டின் அளவைக் குறைத்து, செயலாக்கப்பட்ட வரிகளின் எண்ணிக்கையை 36 ஆகக் குறைத்தது.

சோதனை அமைப்பில் "make -j96 vmlinux" கட்டளையுடன் கர்னல் முழுவதுமாக மறுகட்டமைக்கப்பட்ட போது, ​​patching ஆனது v5.16-rc7 கிளையின் தொகுக்கும் நேரத்தை 231,34 இலிருந்து 129,97, 15,5 வினாடிகள் (27,7 முதல் XNUMX பில்ட்கள் வரை) குறைத்தது. மணிநேரம்) மற்றும் உருவாக்கத்தின் போது CPU கோர் பயன்பாட்டின் செயல்திறனை அதிகரித்தது.

அதிகரிக்கும் தொகுப்புடன், தேர்வுமுறை விளைவு இன்னும் கவனிக்கத்தக்கது: தலைப்பு கோப்புகளில் மாற்றங்களைச் செய்த பிறகு கர்னலை மீண்டும் உருவாக்குவதற்கான நேரம் கணிசமாகக் குறைக்கப்பட்டது (112% முதல் 173% வரை, மாற்றப்பட்ட தலைப்புக் கோப்பைப் பொறுத்து) .

மேம்படுத்தல்கள் தற்போது ARM64, MIPS, Sparc மற்றும் x86 (32-bit மற்றும் 64-bit) கட்டமைப்புகளுக்கு மட்டுமே கிடைக்கின்றன.

இறுதியாக நீங்கள் அதைப் பற்றி மேலும் அறிய ஆர்வமாக இருந்தால், நீங்கள் விவரங்களை சரிபார்க்கலாம் பின்வரும் இணைப்பு.


உங்கள் கருத்தை தெரிவிக்கவும்

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்பட்ட முடியாது. தேவையான புலங்கள் குறிக்கப்பட்டிருக்கும் *

*

*

  1. தரவுக்கு பொறுப்பு: மிகுவல் ஏஞ்சல் கேடன்
  2. தரவின் நோக்கம்: கட்டுப்பாட்டு ஸ்பேம், கருத்து மேலாண்மை.
  3. சட்டபூர்வமாக்கல்: உங்கள் ஒப்புதல்
  4. தரவின் தொடர்பு: சட்டபூர்வமான கடமையால் தவிர மூன்றாம் தரப்பினருக்கு தரவு தெரிவிக்கப்படாது.
  5. தரவு சேமிப்பு: ஆக்சென்டஸ் நெட்வொர்க்குகள் (EU) வழங்கிய தரவுத்தளம்
  6. உரிமைகள்: எந்த நேரத்திலும் உங்கள் தகவல்களை நீங்கள் கட்டுப்படுத்தலாம், மீட்டெடுக்கலாம் மற்றும் நீக்கலாம்.