ಫಾಸ್ಟ್ ಕರ್ನಲ್ ಹೆಡರ್‌ಗಳು, ಕರ್ನಲ್ ಸಂಕಲನವನ್ನು 50-80% ರಷ್ಟು ವೇಗಗೊಳಿಸುವ ಪ್ಯಾಚ್‌ಗಳ ಸೆಟ್

ಇಂಗೋ ಮೊಲ್ನಾರ್, ಪ್ರಸಿದ್ಧ ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ಡೆವಲಪರ್ ಮತ್ತು CFS ಟಾಸ್ಕ್ ಶೆಡ್ಯೂಲರ್‌ನ ಲೇಖಕ ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ಡೆವಲಪ್‌ಮೆಂಟ್ ಮೇಲಿಂಗ್ ಪಟ್ಟಿ ಚರ್ಚೆಗಾಗಿ ಹಲವಾರು ಪ್ಯಾಚ್‌ಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ, ಇದು ಕರ್ನಲ್ ಮೂಲದಲ್ಲಿರುವ ಎಲ್ಲಾ ಫೈಲ್‌ಗಳ ಅರ್ಧಕ್ಕಿಂತ ಹೆಚ್ಚು ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ ಮತ್ತು ಸಂರಚನೆಯ ಆಧಾರದ ಮೇಲೆ ಒಟ್ಟಾರೆ ಕರ್ನಲ್ ಮರುನಿರ್ಮಾಣ ವೇಗ 50 -80% ಹೆಚ್ಚಳವನ್ನು ಒದಗಿಸುತ್ತದೆ.

ಆಪ್ಟಿಮೈಸೇಶನ್ ಅಳವಡಿಸಲಾಗಿದೆ ಇದು ದೊಡ್ಡ ಬದಲಾವಣೆಗಳ ಸೇರ್ಪಡೆಯೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದೆ ಎಂಬುದು ಗಮನಾರ್ಹವಾಗಿದೆ ಕರ್ನಲ್ ಅಭಿವೃದ್ಧಿಯ ಇತಿಹಾಸದಲ್ಲಿ: ಅವರು ಏಕಕಾಲದಲ್ಲಿ 2297 ಪ್ಯಾಚ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಹೊರಟರು, 25 ಸಾವಿರಕ್ಕೂ ಹೆಚ್ಚು ಫೈಲ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿದರು.

ಕಾರ್ಯಕ್ಷಮತೆಯ ಲಾಭ ಹೆಡರ್ ಫೈಲ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ವಿಧಾನವನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ ಸಾಧಿಸಲಾಗುತ್ತದೆ. ಮೂವತ್ತು ವರ್ಷಗಳ ಕರ್ನಲ್ ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ, ಫೈಲ್‌ಗಳ ನಡುವೆ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಅಡ್ಡ-ಅವಲಂಬನೆಗಳ ಉಪಸ್ಥಿತಿಯಿಂದಾಗಿ ಹೆಡರ್ ಫೈಲ್‌ಗಳ ಸ್ಥಿತಿಯು ನಿರಾಶಾದಾಯಕ ಆಕಾರವನ್ನು ಪಡೆದುಕೊಂಡಿದೆ ಎಂದು ಗಮನಿಸಬೇಕು.

ಹೆಡರ್ ಫೈಲ್‌ಗಳ ಪುನರ್ರಚನೆಯು ಒಂದು ವರ್ಷವನ್ನು ತೆಗೆದುಕೊಂಡಿತು ಮತ್ತು ಕ್ರಮಾನುಗತ ಮತ್ತು ಅವಲಂಬನೆಗಳ ಗಮನಾರ್ಹ ಮರುವಿನ್ಯಾಸ ಅಗತ್ಯವಿದೆ. ಪುನರ್ರಚನೆಯ ಸಮಯದಲ್ಲಿ, ವಿವಿಧ ಕರ್ನಲ್ ಉಪವ್ಯವಸ್ಥೆಗಳಿಗೆ ಪ್ರಕಾರದ ವ್ಯಾಖ್ಯಾನಗಳು ಮತ್ತು API ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುವ ಕೆಲಸವನ್ನು ಮಾಡಲಾಯಿತು.

2020 ರ ಅಂತ್ಯದಿಂದ ನಾನು ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ನನ್ನ ಹೊಸ "ಫಾಸ್ಟ್ ಕರ್ನಲ್ ಹೆಡರ್ಸ್" ಯೋಜನೆಯ ಮೊದಲ ಸಾರ್ವಜನಿಕ ಆವೃತ್ತಿಯನ್ನು ಘೋಷಿಸಲು ನಾನು ಸಂತೋಷಪಡುತ್ತೇನೆ, ಇದು ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ಹೆಡರ್ ಶ್ರೇಣಿ ಮತ್ತು ಹೆಡರ್ ಅವಲಂಬನೆಗಳ ಸಮಗ್ರ ಪುನರ್ನಿರ್ಮಾಣವಾಗಿದೆ, ಇದರ ಎರಡು ಗುರಿ:

- ಕರ್ನಲ್ ನಿರ್ಮಾಣವನ್ನು ವೇಗಗೊಳಿಸಿ (ಸಂಪೂರ್ಣ ಮತ್ತು ಹೆಚ್ಚುತ್ತಿರುವ ನಿರ್ಮಾಣ ಸಮಯಗಳು)

- ಉಪವ್ಯವಸ್ಥೆಯ ಡಿಕೌಪ್ಲಿಂಗ್ ಮತ್ತು ಪರಸ್ಪರ ವ್ಯಾಖ್ಯಾನಗಳ API

ಹೆಚ್ಚಿನ ಕರ್ನಲ್ ಡೆವಲಪರ್‌ಗಳು ತಿಳಿದಿರುವಂತೆ, Linux ಕರ್ನಲ್‌ನಲ್ಲಿ ಸುಮಾರು ~ 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" ಆಜ್ಞೆಯೊಂದಿಗೆ ಕರ್ನಲ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಮರುನಿರ್ಮಿಸಿದಾಗ, ಪ್ಯಾಚಿಂಗ್ 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. ಡೇಟಾದ ಉದ್ದೇಶ: ನಿಯಂತ್ರಣ SPAM, ಕಾಮೆಂಟ್ ನಿರ್ವಹಣೆ.
  3. ಕಾನೂನುಬದ್ಧತೆ: ನಿಮ್ಮ ಒಪ್ಪಿಗೆ
  4. ಡೇಟಾದ ಸಂವಹನ: ಕಾನೂನುಬದ್ಧ ಬಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
  5. ಡೇಟಾ ಸಂಗ್ರಹಣೆ: ಆಕ್ಸೆಂಟಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು (ಇಯು) ಹೋಸ್ಟ್ ಮಾಡಿದ ಡೇಟಾಬೇಸ್
  6. ಹಕ್ಕುಗಳು: ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಮರುಪಡೆಯಬಹುದು ಮತ್ತು ಅಳಿಸಬಹುದು.