ããã«ã¡ã¯ã
ãã®åé¡ã¯ãv2.3.3ãšv2.4.0ã®éã®ã³ãããce3dda9a1747cc6a4c044eafe5a2eb653c974919ã«ãã£ãŠçºçããŸããã 次ã®äŸãèããŠã¿ãŸãããïŒ foo.c.zip ã
éåžžã«å€ãã®ã«ãŒã«ãè¿œå ãããŸãã ãããŠãäžèšã®ã³ãããåŸãçŽ100åé
ãåäœããŸãã
v2.4.1ã䜿çšããfoo.c
å®è¡æéïŒ 0.448
v2.3.3ã䜿çšããfoo.c
å®è¡æéïŒ 0.077
å°ãæãäžããŠã¿ããšãdb_col_transaction_startïŒïŒãæ¢åã®ãã£ã«ã¿ãŒã³ã¬ã¯ã·ã§ã³ãã³ããŒããarch_filter_rule_addïŒïŒã䜿çšããŠãã£ã«ã¿ãŒã«ãŒã«ãè€è£œããŠããããšãããããŸããã ãã ããarch_filter_rule_addïŒïŒã¯arch_syscall_translateïŒïŒãåŒã³åºããarch_syscall_resolve_nameïŒïŒã¯OïŒæå®ãããã¢ãŒããã¯ãã£ã§ã®ã·ã¹ãã ã³ãŒã«ã®æ°ïŒã§æ©èœããŸãã ãããã£ãŠãå°ãªããšã1ã€ã®ã«ãŒã«ãè¿œå ããããšã¯ãIMOãæ¬åœã«æªãOïŒãã§ã«è¿œå ãããã«ãŒã«ã®æ°*䜿çšãããŠããã¢ãŒããã¯ãã£äžã®ã·ã¹ãã ã³ãŒã«ã®æ°ïŒã§æ©èœããŸãã
äžèšã®äŸã§arch_filter_rule_addïŒïŒã®åŒã³åºãåæ°ãæ°ããŸããããããã¯201152
ã«çžåœããŸãã
ãã®ã³ãããåã®arch_filter_rule_addïŒïŒã®åŒã³åºãæ°ã¯896
ãã ãŸããã³ãŒãããç解ã§ããããšãããdb_col_transaction_startïŒïŒãæ¢åã®ãã£ã«ã¿ãŒã³ã¬ã¯ã·ã§ã³ãã³ããŒããarch_filter_rule_addïŒïŒã䜿çšããŸããã ããã«ãããèŠç©ãããåŸãããŸããOïŒãã§ã«è¿œå ãããã«ãŒã«ã®æ°+ç¹å®ã®ã¢ãŒããã¯ãã£äžã®ã·ã¹ãã ã³ãŒã«ã®æ°ïŒã®åšãã«ã«ãŒã«ãè¿œå ããæéãããã¯ã¯ããã«åªããŠããŸãã
ãã ããIMOã§ã¯ãnåã®ã«ãŒã«ã®è¿œå ãOïŒn ^ 2ïŒã§æ©èœããããããã§ã«è¿œå ãããŠããã«ãŒã«ã®æ°ãšã¯é¢ä¿ãããŸããã ããããããã¯å¥ã®è°è«ã®ãããã¯ã§ãããããå°ããªãã£ã«ã¿ãŒããŸãã«ããçæãããªããã£ã«ã¿ãŒã§ã¯åé¡ã«ãªããªãã¯ãã§ãã
ãªããã®åé¡ãéèŠãªã®ã§ããïŒ
äžéšã®ãã£ã«ã¿ãŒã§ã¯ãããã°ã©ã PIDãå®è¡ããå¿
èŠããããŸãïŒããšãã°ãã¹ã¬ãããããèªäœã«ã®ã¿ã·ã°ãã«ãéä¿¡ã§ããããã«ããïŒã ãããã£ãŠãå¶éãããããã°ã©ã ãããªãã®åæ°å®è¡ããå¿
èŠãããå Žåãããã¯éåžžã«ç®ã«èŠãããªãŒããŒãããã«ãªããŸãã ç§ã¯çŽ300ã®ã«ãŒã«ã®ãã£ã«ã¿ãŒãæã£ãŠãããlibseccompã®ãªãŒããŒãããã¯ãµã³ãããã¯ã¹åãããããã»ã¹ã®å®è¡ããšã«çŽ0.16ç§ã§ãïŒç§ã¯ããã»ã¹ãæ°ååå®è¡ããŸãïŒã
ãããããé¡ãããŸãïŒ
ããã«ã¡ã¯@varqoxã
ã¯ããsyscallãªãŸã«ããŒé¢æ°ã¯ããã€ãã®æ¹åã䜿çšããå¯èœæ§ããããŸããå®éãã³ãŒããèŠããšã次ã®ãããªããã€ãã®ã³ã¡ã³ãã衚瀺ãããŸãã
/* XXX - plenty of room for future improvement here */
ãã®ã³ãŒãã®æ¹åãæ€èšãããå Žåã¯ããã«ãã䜿çšããå¿ èŠããããŸãã
@pcmooreãè¿°ã¹ãããã«ãlibseccompã䜿çšããŠseccompãã£ã«ã¿ãŒã®_äœæ_ãé«éåããããã®ååãªæ©äŒããããŸãã äžèšã®èª¿æ»ã§ã¯ãæ¹åã䜿çšã§ããããã€ãã®é åã®1ã€ã«ã€ããŠæŠèª¬ããŸããã ããã¯ç§ã®ãŠãŒã¶ãŒã«ãšã£ãŠã¯åé¡ã§ã¯ãªãã£ãã®ã§ãç§ã¯ããã«çŠç¹ãåãããŠããŸããã
_runtime_ã®ããã©ãŒãã³ã¹ã«é¢ããŠãç§ã¯çŸåšãfoo.cã§æäŸãããããªå€§ããªãã£ã«ã¿ãŒã«ãã€ããªããªãŒã䜿çšããããšã«åãçµãã§ããŸãã 瀟å ã®ã客æ§ãšã®æåã®çµæã¯ææã«èŠããŸãããå€åã«ããäžåºŠç®ãåããããšæããŸãã ãã«ãªã¯ãšã¹ãhttps://github.com/seccomp/libseccomp/pull/152ãåç §ããŠãã ãã
OKãã·ã¹ãã ã³ãŒã«ã®è§£æ±ºã¯æ¹åãããå¯èœæ§ããããšæããŸãããããã¯åé¡ã®æ ¹æ¬çãªåå ã§ã¯ãããŸããã ããã¯ãç§ãèŠãŠããããã«ãdb_col_transaction_startïŒïŒã§ã®ã¹ãããã·ã§ããã®äœæã§ãã arch_filter_rule_addïŒïŒãåŒã³åºãããŸãããããã¯å ã®ã«ãŒã«ã§è§£æ±ºãããsyscallã解決ããããã«äœéã§ãã
ç§ã¯ããã次ã®ããã«èŠãŠããŸãïŒçŸåšã®ãã£ã«ã¿ãŒã®ã»ããå šäœïŒå¥åstruct db_filterïŒããã¹ãŠã®ã«ãŒã«ã§è€è£œãããã®ã§ãæ¢åã®ãã£ã«ã¿ãŒãå©çšããã®ã§ã¯ãªãããã¹ãŠã®ãã£ã«ã¿ãŒãæåãã_æ§ç¯_ãããã¹ãŠã®ãã£ã«ã¿ãŒã_ã³ããŒ_ããŸãã ãŒãããæ§ç¯ããå¿ èŠã¯ãããŸãããã³ããŒãå¿ èŠãªãã£ã«ã¿ãŒãå®å šã«æ§ç¯ã§ããŸãã äœããèŠéãããããããŸããããdb_col_transaction_startïŒïŒé¢æ°ã«å€ãã®æ¹åãè¡ãããŠããããã§ãã
å éšlibseccompdbã³ã¬ã¯ã·ã§ã³ã«ãã¹ãŠã®ç¶æ ãããããããããè€è£œããã®ã¯ç°¡åãªäœæ¥ã§ã¯ãããŸãããå ã®ã«ãŒã«ããã³ã¬ã¯ã·ã§ã³ãåçæããæ¹ãã¯ããã«ç°¡åã§ãïŒã³ãŒãã®èŠ³ç¹ããïŒã å ã®ã«ãŒã«ã远跡ããããšã§ãæ¢åã®ã«ãŒã«ããåé€ãããæ©èœãæäŸã§ããŸãïŒå°æ¥ã®æ©èœã®å¯èœæ§ïŒã
ããã¯ããã©ã³ã¶ã¯ã·ã§ã³ã³ãŒããæ¹åã§ããªãã£ããšèšã£ãŠããã®ã§ã¯ãªããééããªãæ¹åã§ããŸãããçŸåšã®ã³ãŒãã¯ãäž»ã«åçŽããšããçç±ãããçŸåšã®ã³ãŒããšåãã§ãã
ãã®å€æŽã«ããããŠãŒã¶ãŒããã®ã¿ã€ã ã¢ãŠããçºçããŠããŸãã ããã¯æ¬åœã«ç©äºãæ¡éãã«é ãããŸããã
å¥ã®èããšããŠããããããããå€æŽããŠãããªãŒå šäœã§ã¯ãªãããã©ã³ã¶ã¯ã·ã§ã³ã®éå§æã«ã®ã¿ã«ãŒã«ãè€è£œãã倱æãããã©ã³ã¶ã¯ã·ã§ã³ã§ã®ã¿ããªãŒãåäœæããããšãã§ããŸãã ããã¯å®ç§ã§ã¯ãããŸããããããã¯ããªãã®æéãåãæ»ãã¯ãã§ãã
ã³ã³ãããšexecããã»ã¹ã®éå§æéãå€§å¹ ã«äœäžãããŠãŒã¶ãŒã2.3åã«åºå®ããããããäœããè¡ãå¿ èŠããããŸãã
åé¡ã®_ "巚倧ãª" _æ§è³ªã«ã€ããŠãã以äžã³ã¡ã³ãããã€ããã¯ãããŸããããã®èŠç¹ã¯ãã§ã«äœåºŠãäœæãããŠãããçžå¯Ÿçãªãã®ãšãŠãŒã¹ã±ãŒã¹ã«äŸåãããã®ã®äž¡æ¹ã§ãããšèããŠããŸãã ãã ããv2.4ããåã®libseccompãªãªãŒã¹ã¯ãå ¬éãããŠããæœåšçãªè匱æ§ã«å¯ŸããŠè匱ã§ããããšããã¹ãŠã®äººã«æãåºãããããšæããŸããïŒåé¡ïŒ139ïŒã
ãã®åé¡ãæžå¿µããŠãã人ã®ããã«ãçŸåšãv2.5ãªãªãŒã¹ã®ããŒã¯ãä»ããããŠããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ãè¡ã£ããšããããã€ããŒãªãªãŒã¹ã§ããã©ãŒãã³ã¹ã«ã倧ããªã圱é¿ãããããŠãŒã¹ã±ãŒã¹ã«äŸåããŠãããšèšã£ãŠãããå¹ãé£ã°ããŠã圹ã«ç«ã¡ãŸããã ãã£ã¹ããªãã¥ãŒã·ã§ã³ã2.4ã«æŽæ°ããããšäººã ãæ°ã¥ãå§ããã®ã§ããããçå£ã«åãæ¢ããŠãã ãã
@crosbymichaelå€æŽã¯åãªããªãã¡ã¯ã¿ãªã³ã°ã§ã¯ãªããåé¡ãä¿®æ£ããã«ãŒãã«ã®å€æŽããµããŒãããå¿ èŠããããŸããïŒç¹ã«ã32ãããx86ã®ãœã±ããã·ã¹ãã ã³ãŒã«ãªã©ãå€éåãšçŽæ¥åŒã³åºãã®äž¡æ¹ã®ã·ã¹ãã ã³ãŒã«ããµããŒãããå¿ èŠããããŸãïŒã
ç§ã¯ãããå¹ãé£ã°ããŠããŸãããç§ã¯ãã®åé¡ã解決ããæ¹æ³ãèãç¶ããŠããïŒäžèšã®ã³ã¡ã³ããåç §ïŒãããã次ã®ãã€ããŒãªãªãŒã¹ã®äœããšããŠããŒã¯ãããšããäºå®ã ãã®æç¹ã§ãããªãã®ã³ã¡ã³ããçççã§ãããšèªèããªãããã«ããã®ã¯é£ããã§ãããããããªãã®æå³ã§ãªãå Žåã¯ãå°æ¥ã³ã¡ã³ããããšãã«ãã£ãšæ³šæãæãããšããå§ãããŸãã ãã®åé¡ã®é²æç¶æ³ã«äžæºãããå Žåã¯ãã¬ãã¥ãŒã®ããã«ããã/ PRãéä¿¡ããŠãã€ã§ããµããŒãã§ããŸãã
èªåèªèº«ãšããã解決ããããšèããŠããä»ã®äººã«æ³šæããŠãã ãã...
ç§ã¯æè¿ããã©ã³ã¶ã¯ã·ã§ã³ã«é¢ããŠç§ãã¡ãè¡ãããšãè¡ãçç±ãæãåºããŸããïŒãã¹ãŠãåãã£ãŠã³ããŒããŸãïŒã ãããè¡ãã®ã¯ã倱æããã«ãã©ã³ã¶ã¯ã·ã§ã³ãããŒã«ããã¯ã§ããå¿
èŠãããããã§ãã ã©ãããŠïŒ
éåžžã®seccomp_rule_addïŒïŒæäœã§ã¯ãé害ãçºçããå Žåã§ããã£ã«ã¿ãŒããã®ãŸãŸç¶æããå¿
èŠããããŸãã éåžžã®ã«ãŒã«è¿œå ã®äžéšãšããŠãã«ãããŒããã©ã³ã¶ã¯ã·ã§ã³ïŒããšãã°ãx86 / s390 / s390xãªã©ã®socket / ipc syscallsïŒã«å€±æããå Žåããã©ã³ã¶ã¯ã·ã§ã³ã®éå§æã«å¿
ããã£ã«ã¿ãŒã«æ»ããå¿
èŠããããŸãïŒã¡ã¢ãªã®è² è·ãªã©ã«é¢ä¿ãªãïŒã
ã«ãŒã«ãªãã§ããªãŒãè€è£œããããšã¯ãããªãŒã®æ§è³ªãšããªãŒå ã®ãªã³ã¯ã®ããã«åŒãç¶ãå°é£ã§ãããå éšãã©ã³ã¶ã¯ã·ã§ã³ãäœæããå¿ èŠãããå Žåã¯ãã€éžæã§ããããéžæã§ããå€ãã®å Žåã¯ã¹ãããã§ããŸããäžèŠãªå Žåã
ç§ã¯ããã調ã¹ãã®ã«ããå°ãæéãè²»ãããŸããããã«ãŒã«ã®è¿œå äžã«æ±ºå®æšãç Žå£çã«å€æŽããæ¹æ³ã®ããããã©ã³ã¶ã¯ã·ã§ã³ã§ã«ãŒã«ã®è¿œå ãã©ããããããšãåé¿ã§ãããã©ããã¯ããããŸããã ã€ãŸãããã©ã³ã¶ã¯ã·ã§ã³ã®äœ¿çšãå éšã§å¶éããæ¹æ³ãèŠã€ãã代ããã«ããã©ã³ã¶ã¯ã·ã§ã³ãé«éåããæ¹æ³ãèŠã€ããå¿ èŠããããŸãããããããããšã«ã解決çãèŠã€ãããšæããŸããã·ã£ããŠããªãŒã§ãã
çŸåšãæ°ãããã©ã³ã¶ã¯ã·ã§ã³ãäœæãããã³ã«æ°ããããªãŒãæ§ç¯ããæåãããšç Žæ£ããŸãããããŸã§èŠãŠããããã«ãäžéšã®ãŠãŒã¹ã±ãŒã¹ã§ã¯éåžžã«é ããªãå¯èœæ§ããããŸãã ç§ã®èãã§ã¯ãã³ãããæã«éè€ããªãŒãç Žæ£ãã代ããã«ãéè€ããªãŒã«è¿œå ããã°ããã®ã«ãŒã«ãè¿œå ããŠïŒçŸåšã®ãã£ã«ã¿ãŒã®ã³ããŒã«ããïŒã次ã®åŠçãé«éåããããã«ãã·ã£ããŠãã©ã³ã¶ã¯ã·ã§ã³ããšããŠä¿æããããšããŸãããã©ã³ã¶ã¯ã·ã§ã³ã¹ãããã·ã§ããã ããã€ãã®ã¡ã¢ïŒ
db_col_transaction_start()
ã¯ãã·ã£ããŠãã©ã³ã¶ã¯ã·ã§ã³ãååšããå Žåã¯ããã䜿çšããããšããŸãããååšããªãå Žåã¯çŸåšã®åäœã«ãã©ãŒã«ããã¯ããå¿
èŠããããŸããdb_col_transaction_abort()
ã¯ãçŸåšãšåãããã«åäœããã¯ãã§ãã ããã¯ã倱æãããã©ã³ã¶ã¯ã·ã§ã³ã¯ã·ã£ããŠãã©ã³ã¶ã¯ã·ã§ã³ãã¯ãªã¢ããŸããïŒãã£ã«ã¿ãŒã埩å
ããã«ã¯ããªãŒåããå¿
èŠããããŸãïŒã次ã«æåãããã©ã³ã¶ã¯ã·ã§ã³ã¯ã·ã£ããŠã埩å
ããããšãæå³ããŸãã 倱æãããã©ã³ã¶ã¯ã·ã§ã³ã¯ãããã倧ããªåé¡ã«ãªããªãããã«ååãªé »åºŠã§ããå¿
èŠããããŸããä»å€ã®å€é£åŸãã°ããæéããã£ãã®ã§ãäžèšã®ã·ã£ããŠãã©ã³ã¶ã¯ã·ã§ã³ã®ã¢ã€ãã¢ãå®è£ ããããã®ç°¡åãªãã¹ãäœæããŸããã ã³ãŒãã¯ãŸã ç²éã§ãããç§ã®ãã¹ãïŒä»¥äžïŒã¯ããã«ç²éã§ããããã®ã¢ãããŒãã§ããã©ãŒãã³ã¹ãåäžããŠããããã§ãã
# time for i in {0..20000}; do /bin/true; done
real 0m10.479s
user 0m7.641s
sys 0m3.924s
# time for i in {0..20000}; do ./42-sim-adv_chains > /dev/null; done
real 0m16.303s
user 0m12.584s
sys 0m4.501s
time for i in {0..20000}; do ./42-sim-adv_chains > /dev/null; done
real 0m15.021s
user 0m11.540s
sys 0m4.387s
ãã¹ãã®ãªãŒããŒããããå·®ãåŒããšããã®ããã¹ããã§ããã©ãŒãã³ã¹ãçŽ20ïŒ åäžããããšãããããŸãããè€éãªãã£ã«ã¿ãŒã»ããã®ã¡ãªããã¯ãããããåªããŠããïŒã¯ããã«åªããŠããïŒïŒãšæããŸãã
@varqoxããã³/ãŸãã¯@crosbymichaelããããå°ãã¯ãªãŒã³ã¢ããããŠãPRãäœæããããã䜿çšã®ç°å¢ã§ããããã¹ãã§ããŸããïŒ
ç§ã®ãµã³ãã«ãã¹ãã±ãŒã¹ã¯ãã§ã«ããã«ãããŸãïŒ
ããã«ã¡ã¯ã
ãã®åé¡ã¯ãv2.3.3ãšv2.4.0ã®éã®ã³ãããce3dda9ã«ãã£ãŠçºçããŸããã 次ã®äŸãèããŠã¿ãŸãããïŒ foo.c.zip ã
éåžžã«å€ãã®ã«ãŒã«ãè¿œå ãããŸãã ãããŠãäžèšã®ã³ãããåŸãçŽ100åé ãåäœããŸããv2.4.1ã䜿çšãã
foo.c
å®è¡æéïŒ0.448
v2.3.3ã䜿çšããfoo.c
å®è¡æéïŒ0.077
ããããPRã®æºåãã§ãããããã«ãèªåã®ç°å¢ã§ãã¹ãã§ããŸãã
ããã«ã¡ã¯@varqox ãã¯ããå ã®ã¬ããŒãã«ãã¹ãã±ãŒã¹ãå«ãŸããŠããã®ãèŠãŸããããå®éã®äœ¿çšã§ã©ã®ããã«æ©èœããããèããããšæã£ãŠããŸãã PRïŒ180ãè©ŠããŠãå ±åããŠããã ããã°å¹žãã§ããããããšãããããŸãã
ããã«ã¡ã¯@pcmoore ã
ãã®PRãããŠãããŠããããšãã
ç§ã¯ããªãã®PRïŒ180ãäœæããŠãã¹ãããŸãããããã®çµæã¯ç§ã®ãã¹ãã±ãŒã¹ã«ãšã£ãŠææã§ãã 顧客ãdockerãã«ã¹ãã§ãã¯ã䜿çšãã libseccomp 2.4.x
ã®ããã©ãŒãã³ã¹ã®åé¡ã«æ©ãŸãããŠããããããã®åé¡ãç£èŠããŠããŸãã
ç§ã®ãã¹ãã±ãŒã¹ã§ã¯ããã®PRã®ããã©ãŒãã³ã¹ã¯libseccomp 2.3.3
ã«å¹æµããŸãã 詳现ã¯ä»¥äžã®éãã§ãã
MacBookProäžã®Ubuntu19.04 VMïŒ2 CPUã2Gã¡ã¢ãªïŒïŒ15ã€ã³ãã2015幎åã°ïŒ
ã«ãŒãã«5.0.0-32-ãžã§ããªãã¯
Docker CE 19.03.2
20åã®ã³ã³ãããæºåããŸãã
for i in $(seq 1 20)
do
docker run -d --name bb$i busybox sleep 3d
done
ãã¹ãŠã®ã³ã³ããã§åæã«docker exec
ãèµ·åããŠãã¹ããå®è¡ããŸã
for i in $(seq 1 20)
do
/usr/bin/time -f "%E real" docker exec bb$i true &
done
0:01.05 real
0:01.12 real
0:01.16 real
0:01.20 real
0:01.23 real
0:01.27 real
0:01.31 real
0:01.35 real
0:01.37 real
0:01.38 real
0:01.40 real
0:01.41 real
0:01.40 real
0:01.40 real
0:01.45 real
0:01.46 real
0:01.47 real
0:01.48 real
0:01.48 real
0:01.49 real
0:00.98 real
0:01.63 real
0:01.67 real
0:01.95 real
0:02.55 real
0:02.70 real
0:02.70 real
0:02.96 real
0:03.04 real
0:03.16 real
0:03.17 real
0:03.21 real
0:03.23 real
0:03.27 real
0:03.24 real
0:03.29 real
0:03.27 real
0:03.29 real
0:03.28 real
0:03.27 real
0:00.95 real
0:01.12 real
0:01.20 real
0:01.23 real
0:01.28 real
0:01.29 real
0:01.31 real
0:01.37 real
0:01.38 real
0:01.40 real
0:01.43 real
0:01.43 real
0:01.44 real
0:01.45 real
0:01.42 real
0:01.47 real
0:01.48 real
0:01.48 real
0:01.48 real
0:01.50 real
configure.ac
2.4.1
ãAC_INIT
ã«èšå®ããŸããã/usr/local/lib
ã«ã€ã³ã¹ããŒã«ãããŠããŸãããã¹ãäžã«ã«ã¹ã¿ã ãã«ãã䜿çšãããŠããããšã確èªããããã«ã ldd /usr/bin/runc
ãå®è¡ããŠæ€èšŒããŸãããããã¯çŽ æŽãããã§ããå©ããŠãããŠããããšã@xinfengliuïŒ
ããã«ã¡ã¯@pcmoore ã
ãã®PRãããããšãã
ç§ã®å Žåãlibseccompã®ããã©ãŒãã³ã¹ãv2.3.3ãšåçã®ã¬ãã«ã«åŸ©å
ããŸãã
g++ foo.c -lseccomp -o foo -O3
for ((i=0; i<10; ++i)); do time ./foo; done
./foo 0.01s user 0.00s system 98% cpu 0.018 total
./foo 0.02s user 0.00s system 98% cpu 0.020 total
./foo 0.02s user 0.00s system 98% cpu 0.019 total
./foo 0.02s user 0.00s system 98% cpu 0.018 total
./foo 0.02s user 0.00s system 98% cpu 0.019 total
./foo 0.02s user 0.00s system 98% cpu 0.019 total
./foo 0.02s user 0.00s system 98% cpu 0.019 total
./foo 0.02s user 0.00s system 98% cpu 0.019 total
./foo 0.02s user 0.00s system 98% cpu 0.018 total
./foo 0.02s user 0.00s system 98% cpu 0.019 total
å¹³åïŒ 0.0188 s
./foo 0.19s user 0.00s system 99% cpu 0.195 total
./foo 0.19s user 0.00s system 99% cpu 0.194 total
./foo 0.19s user 0.00s system 99% cpu 0.193 total
./foo 0.19s user 0.00s system 99% cpu 0.196 total
./foo 0.19s user 0.00s system 99% cpu 0.195 total
./foo 0.20s user 0.00s system 99% cpu 0.196 total
./foo 0.19s user 0.00s system 99% cpu 0.194 total
./foo 0.20s user 0.00s system 99% cpu 0.197 total
./foo 0.19s user 0.00s system 99% cpu 0.195 total
./foo 0.19s user 0.00s system 99% cpu 0.194 total
å¹³åïŒ 0.1949 s
./foo 0.01s user 0.01s system 98% cpu 0.012 total
./foo 0.01s user 0.00s system 97% cpu 0.013 total
./foo 0.01s user 0.00s system 96% cpu 0.013 total
./foo 0.01s user 0.01s system 97% cpu 0.014 total
./foo 0.01s user 0.00s system 97% cpu 0.012 total
./foo 0.01s user 0.00s system 98% cpu 0.013 total
./foo 0.01s user 0.00s system 98% cpu 0.012 total
./foo 0.01s user 0.00s system 98% cpu 0.013 total
./foo 0.01s user 0.00s system 97% cpu 0.013 total
./foo 0.01s user 0.00s system 97% cpu 0.011 total
å¹³åïŒ 0.0126 s
ãã®PRã¯ããã®åæãã¹ãã§v2.3.3ãããããããé«éåãããŠããããã§ãã
Measured: 0.0052 s
Measured: 0.0040 s
Measured: 0.0046 s
Measured: 0.0042 s
Measured: 0.0038 s
Measured: 0.0038 s
Measured: 0.0039 s
Measured: 0.0036 s
Measured: 0.0042 s
Measured: 0.0044 s
Measured: 0.0036 s
Measured: 0.0037 s
Measured: 0.0044 s
Measured: 0.0035 s
Measured: 0.0035 s
Measured: 0.0035 s
Measured: 0.0040 s
Measured: 0.0037 s
Measured: 0.0043 s
Measured: 0.0042 s
Measured: 0.0035 s
Measured: 0.0034 s
Measured: 0.0038 s
Measured: 0.0035 s
Measured: 0.0035 s
Measured: 0.0037 s
Measured: 0.0038 s
å¹³åïŒ 0.0039 s
Measured: 0.0496 s
Measured: 0.0480 s
Measured: 0.0474 s
Measured: 0.0475 s
Measured: 0.0479 s
Measured: 0.0479 s
Measured: 0.0492 s
Measured: 0.0485 s
Measured: 0.0491 s
Measured: 0.0490 s
Measured: 0.0484 s
Measured: 0.0483 s
Measured: 0.0480 s
Measured: 0.0482 s
Measured: 0.0474 s
Measured: 0.0483 s
Measured: 0.0507 s
Measured: 0.0472 s
Measured: 0.0482 s
Measured: 0.0471 s
Measured: 0.0498 s
Measured: 0.0489 s
Measured: 0.0474 s
Measured: 0.0494 s
Measured: 0.0483 s
Measured: 0.0498 s
Measured: 0.0492 s
å¹³åïŒ 0.0466 s
Measured: 0.0058 s
Measured: 0.0059 s
Measured: 0.0054 s
Measured: 0.0046 s
Measured: 0.0059 s
Measured: 0.0048 s
Measured: 0.0045 s
Measured: 0.0051 s
Measured: 0.0052 s
Measured: 0.0053 s
Measured: 0.0048 s
Measured: 0.0048 s
Measured: 0.0045 s
Measured: 0.0044 s
Measured: 0.0044 s
Measured: 0.0059 s
Measured: 0.0044 s
Measured: 0.0046 s
Measured: 0.0046 s
Measured: 0.0044 s
Measured: 0.0044 s
Measured: 0.0062 s
Measured: 0.0047 s
Measured: 0.0044 s
Measured: 0.0044 s
Measured: 0.0044 s
Measured: 0.0044 s
å¹³åïŒ 0.0049 s
åæãã¹ãã§ã¯PRã¯v2.3.3ãããè¯ãæéãäžããŸãããå®éã®äžçã§ã¯å°ãé ããªããŸãïŒãããããããè€éãªã«ãŒã«ãš2ã€ã®å€§ããªãã£ã«ã¿ãŒãããŒãžããããã®seccomp_mergeïŒïŒã®å®è¡ãåå ã§ãïŒã ãã ããããã§ãv2.4.2ã®çŽ10åã®ã¹ããŒãã¢ãããåŸãããŸãã
ããã©ãŒãã³ã¹ã確èªããŠããã ãããããšãããããŸã@varqoxïŒ @drakenclimberãæåŸã®ã³ã¡ã³ãã«å¿çãããšããã«ïŒãããŠåœŒãæèµ·ããå¯èœæ§ã®ããæ®ãã®åé¡ãä¿®æ£ããŸãïŒããããããŒãžããŸãã
ãããæ°ã«ããªãã§ãã ããã @ drakenclimberãPRãæ¿èªæžã¿ãšããŠããŒã¯ããããšã«æ°ã¥ããŸããã å ã«é²ãã§ããããããŒãžããŸãã
PRïŒ180ãããŒãžããã°ãããªã®ã§ãããã©ãŒãã³ã¹ã®åé¡ãæ®ã£ãŠããããšã«æ°ä»ããå Žåã¯ãã³ã¡ã³ãããããå床éãããããŠããããã¯ããŒãºãšããŠããŒã¯ã§ãããšæããŸãã çããã®å¿èãšå©ãã«æè¬ããŸãïŒ
@pcmooreãããã®å€æŽãããã«ãªãªãŒã¹ããäºå®ã§ããïŒ
ããã¯çŸåšãlibseccomp v2.5ãªãªãŒã¹ãã€ã«ã¹ããŒã³ã®äžéšã§ãã以äžã®ãªã³ã¯ã䜿çšããŠãv2.5ãªãªãŒã¹ã«åããé²æç¶æ³ã远跡ã§ããŸãã
æãåèã«ãªãã³ã¡ã³ã
ãã®å€æŽã«ããããŠãŒã¶ãŒããã®ã¿ã€ã ã¢ãŠããçºçããŠããŸãã ããã¯æ¬åœã«ç©äºãæ¡éãã«é ãããŸããã