рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реНрд╕рдЪреНрдпрд╛ рдкреБрдирд░реНрд░рдЪрдирд╛рд╕рд╣ рдкреЕрдЪрдЪреА рджреБрд╕рд░реА рдЖрд╡реГрддреНрддреА

рдЗрдВрдЧреЛ рдореЛрд▓реНрдирд╛рд░рдиреЗ рдкреЕрдЪреЗрд╕рдЪреНрдпрд╛ рд╕рдВрдЪрд╛рдЪреА рджреБрд╕рд░реА рдЖрд╡реГрддреНрддреА рд╕рд╛рджрд░ рдХреЗрд▓реА рдЬреА рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реНрд╕рдЪреНрдпрд╛ рдкрджрд╛рдиреБрдХреНрд░рдорд╛рдЪреА рдкреБрдирд░реНрд░рдЪрдирд╛ рдХрд░реВрди рдЖрдгрд┐ рдХреНрд░реЙрд╕-рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЪреА рд╕рдВрдЦреНрдпрд╛ рдХрдореА рдХрд░реВрди рдХрд░реНрдирд▓ рдкреБрдирд░реНрдмрд╛рдВрдзрдгреАрдЪрд╛ рд╡реЗрд│ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдХрд░реВ рд╢рдХрддреЗ. рдирд╡реАрди рдЖрд╡реГрддреНрддреА 5.16-rc8 рдХрд░реНрдирд▓рд╕рд╛рдареА рдЕрдиреБрдХреВрд▓ рдХрд░реВрди, рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдЬреЛрдбреВрди рдЖрдгрд┐ рдХреНрд▓реЕрдВрдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд╛рдкрд░реВрди рдмрд┐рд▓реНрдбрд┐рдВрдЧрд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд░реВрди рдХрд╛рд╣реА рджрд┐рд╡рд╕рд╛рдВрдкреВрд░реНрд╡реА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдЖрд╡реГрддреНрддреАрдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реА рдЖрд╣реЗ. рдХреНрд▓реЕрдВрдЧ рд╡рд╛рдкрд░рддрд╛рдирд╛, рдкреЕрдЪреЗрд╕ рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛рдиреЗ 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 рдлрд╛рдЗрд▓реНрд╕рдЪреА рд╕рдВрдЦреНрдпрд╛ рдкреЕрдЪреЗрд╕рдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдЖрд╡реГрддреНрддреАрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд 68% рд╡рд░реВрди 36% рдкрд░реНрдпрдВрдд рдХрдореА рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ (рдореВрд│ рдХрд░реНрдирд▓рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд 99% рдкрд╛рд╕реВрди 36% рдкрд░реНрдпрдВрдд).

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛