рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛рдХреЛ рд╕рд╛рде рдкреНрдпрд╛рдЪрд╣рд░реВрдХреЛ рджреЛрд╕реНрд░реЛ рд╕рдВрд╕реНрдХрд░рдг

Ingo Molnar рд▓реЗ рдкреНрдпрд╛рдЪрд╣рд░реВрдХреЛ рд╕реЗрдЯрдХреЛ рджреЛрд╕реНрд░реЛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНтАНрдпреЛ рдЬрд╕рд▓реЗ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдкрджрд╛рдиреБрдХреНрд░рдорд▓рд╛рдИ рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рдЧрд░реЗрд░ рд░ рдХреНрд░рд╕-рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдШрдЯрд╛рдПрд░ рдХрд░реНрдиреЗрд▓рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдгрдХреЛ рд╕рдордпрд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдШрдЯрд╛рдЙрди рд╕рдХреНрдЫред рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг 5.16-rc8 рдХрд░реНрдиреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдХреВрд▓рди рдЧрд░реЗрд░, рдердк рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рдердкреЗрд░ рд░ рдХреНрд▓реНрдпрд╛рдЩреНрдЧ рдХрдореНрдкрд╛рдЗрд▓рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирд┐рд░реНрдорд╛рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реЗрд░ рдХреЗрд╣реА рджрд┐рди рдЕрдШрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрднрдиреНрджрд╛ рдлрд░рдХ рдЫред Clang рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, рдкреНрдпрд╛рдЪрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрджрд╛ CPU рд╕реНрд░реЛрдд рдЦрдкрддрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ 88% рд╡рд╛ 77% рд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдШрдЯреНрдпреЛред "make -j96 vmlinux" рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдХрд░реНрдиреЗрд▓рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджрд╛ рдирд┐рд░реНрдорд╛рдг рд╕рдордп 337.788 рдмрд╛рдЯ 179.773 рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдШрдЯрд╛рдЗрдпреЛред

рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрд▓реЗ GCC рдкреНрд▓рдЧрдЗрдирд╣рд░реВрдХреЛ рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рдкрдирд┐ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫ, рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдХреНрд░рдордорд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдПрдХрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рд╕рдЪреНрдпрд╛рдЙрдБрдЫ, рд░ "task_struct_per_task" рд╕рдВрд░рдЪрдирд╛рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдШреЛрд╖рдгрд╛рд╣рд░реВрд▓рд╛рдИ рдПрдХреАрдХреГрдд рдЧрд░реНрджрдЫред рдердк рд░реВрдкрдорд╛, linux/sched.h рд╣реЗрдбрд░ рдлрд╛рдЗрд▓рдХреЛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдЬрд╛рд░реА рд░рд╣реНрдпреЛ рд░ RDMA рд╕рдмрд╕рд┐рд╕реНрдЯрдо (infiniband) рдХреЛ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛ, рдЬрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрдХреЛ рддреБрд▓рдирд╛рдорд╛ 9% рд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдердк рдШрдЯрд╛рдЙрди рд╕рдореНрднрд╡ рдмрдирд╛рдпреЛред рдкреНрдпрд╛рдЪрд╣рд░реВрдХреЛред linux/sched.h рд╣реЗрдбрд░ рдлрд╛рдЗрд▓ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдХрд░реНрдиреЗрд▓ C рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдкреНрдпрд╛рдЪрдХреЛ рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрдХреЛ рддреБрд▓рдирд╛рдорд╛ ремрео% рдмрд╛рдЯ рейрем% рд╕рдореНрдо рдШрдЯрд╛рдЗрдПрдХреЛ рдЫ (рдореВрд▓ рдХрд░реНрдиреЗрд▓рдХреЛ рддреБрд▓рдирд╛рдорд╛ репреп% рдмрд╛рдЯ рейрем%)ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди