From 7bd8d52c6c9db1a1a5fd8fd672765ca49b33d9f0 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Sat, 22 Jun 2024 08:50:23 +0200 Subject: [PATCH] Speed up closing all file descriptors in the child process (Fixes #835) When _SC_OPEN_MAX (max nr of open files limit per process) is a very big number, then closing all possible file handles can take a while. This change first tries to use the syscall close_range() if available, falling back to use /proc/self/fd to close only open file handles, and lastly falling back to the old way of closing all possible handles one after another. In general, the first or second approach should be available which speeds up the pty spawning. Refs JetBrains/pty4j#147 Copied from https://github.com/JetBrains/pty4j/commit/04685d870fd09371fe8580f664be5aea41de5b2c (which is EPL 1.0) Co-authored-by: Sergey Simonchik --- .../os/linux/aarch64/libspawner.so | Bin 29056 -> 25360 bytes .../os/linux/ppc64le/libspawner.so | Bin 75168 -> 75920 bytes .../os/linux/x86_64/libspawner.so | Bin 24040 -> 28640 bytes .../os/macosx/aarch64/libspawner.jnilib | Bin 53454 -> 53934 bytes .../os/macosx/x86_64/libspawner.jnilib | Bin 20184 -> 20664 bytes .../native_src/unix/exec_pty.c | 71 ++++++++++++++++-- 6 files changed, 63 insertions(+), 8 deletions(-) diff --git a/core/org.eclipse.cdt.core.linux.aarch64/os/linux/aarch64/libspawner.so b/core/org.eclipse.cdt.core.linux.aarch64/os/linux/aarch64/libspawner.so index a9919b4ca52ff01c8d2e2d098fa95d28211bc505..8ba80e4cd2b6aa6217f097dbe5c804f4d6c61540 100755 GIT binary patch literal 25360 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 Bir4@E literal 29056 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 diff --git a/core/org.eclipse.cdt.core.linux.ppc64le/os/linux/ppc64le/libspawner.so b/core/org.eclipse.cdt.core.linux.ppc64le/os/linux/ppc64le/libspawner.so index cddfefcb258365172804b56bc18cf99e6161bc4f..ccdfc2cff1c2343294491ecb0dad903e19d037d7 100755 GIT binary patch delta 9356 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 delta 7932 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 literal 24040 zcmeHve|S{Yo%cyXAYvd90a3JGe#8RSBp@JyNCp@flqieDrCQ!$m`r|Pm`NvhAaM;w zLu{tgw5hMU*{#nbYpa{Kbep##8(qOzk)+nv)KZ)Etu|G(GlsTNv8Jw)_w)Upb8haP z%4BNqUchS}zl1(#yGC@^h{? zIH6&`s)~j=QcO$$q+g%nC&T$lPD7HVYs=eaIi-&;V{{xmCCNfVt@k(3qjG-MD_;q2 zRr#g!OAa{zmxii3T({|$Mo+rHv@GHiT z%Bg&VWR6&nF+r5%ZxJPf7xv_pi%t3Bl8l_0OJ+fg<(C4I3zicB7d7iD{HXb;Dc0au zg5O&F*5kJkKM#I%z5B~QO+C2ncRRkf>yi8q5B=LaPqn=__20j|{nA4dpE>dI1&te? ze(V0bzPVrAvFDZFKDyTZtJAZuuE={Ncw*i^{r01UU)j+6)XBuYi$9$(yz1+J^ZE;w zp20i%r_Y#2>3!zB{BHt&`0cl9WlrPoZ^I$e#*;;F8u|gqrjpM}BY!##{ZiO5QsjF} z8u@Rep;N_DmFJo?@|UHdznI3(qBQao&?{2qdoYdsm(ed%$^Rt{-IvBrb((T^rIG)S zH1wi0`EE!fzc)?3$I{6A(#X?zH1JElB4DKQ&qZnc984qs#Wdx4JPrM!H1w~gp`S@Z zpO=PSl!ktN8v2nm^bj1D%0DYWHH6RJ zQNAZHV^q{Yj;;?>zCTdqDN**L;F0{VE@3e-s_2a>-{z|%JzLokUT@`|P|#av`ogBy zE4#Z~3a+_xY;L4WY0gcuu+cL&1vb%1AhHlh3T)8`u{1`On4En}TSx zTg-64x5tZHd9k4TIh5RPz+V%p3ls|m=V0RIh&fgW?mg$?0f)9KK`r`bxu~tKMdu8K z??A^vKMIDt=#lVJC`jEB6!_a;RbCwywGu&3MW<`1BcF=OfLU8zF6sa(0jU%24M-ro zfqD!fYAYpD2MP4hI&Y{p0P6wM8w>^fRUtt*bzS`SD5e?q*ER^#4=JB%hDCMAZ`J@u zhKy6jrl<`2f&?Q$6#5P%YR$T!Z%;tf`phZ}*$QtBa$;n!uZBt+2=1kN1^s(!h0pH~ z)YTDchVJl&MO{#h(VFUA{=&LY;d1z-9-|3?AW-fzeL#2BVH{G7014iMq#Biw7aKQk zTD#7>q;RQ~T2jdIHdE+7VWl$h456v1pj|SV@8o5ObNv(0$P`m}4v}$idUZ7>)hyvw zw8$mZ=TR;-z#2)XXEytD+n|j;n>FPv zZlkNIh#A8+`WI~SBR0C4T9`Yl#9%lHcOCMHVA$wtieR|~HoBVnm|kq7>p7GdD{S;^ zmXx;=8=dmjm&ZoeJ|f;08yyW`UE6K+$re?Joi_UUHhPtfo@=Am+URI->#DcWr&?4Y znr!qu8@<&=r!|wl+HG|E`mMu8r)OAw9kkKy> Y{X#7a*kz;JmuTHK`V5kb-{W>j7&}Gma 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 N71w(bSodW8{{tYsFE9WA diff --git a/core/org.eclipse.cdt.core.macosx/os/macosx/aarch64/libspawner.jnilib b/core/org.eclipse.cdt.core.macosx/os/macosx/aarch64/libspawner.jnilib index 274d27a42a8e9aef586a340396a254990701f6b4..b9886e7859de622f2ed27fd48d8b65edba1ff1a2 100755 GIT binary patch delta 7015 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 delta 5648 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 diff --git a/core/org.eclipse.cdt.core.macosx/os/macosx/x86_64/libspawner.jnilib b/core/org.eclipse.cdt.core.macosx/os/macosx/x86_64/libspawner.jnilib index f5fc0ca37d42d57b1fefdf7c13d9659445ef2ba6..1e2990419af2a6c86fac03b9e4154a1fc05d51ca 100755 GIT binary patch delta 6527 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 delta 5524 zcmaJ_eOOdg8o&1rqoTqLAA=yMpnMFUqD7%4;m6o$eqer=3J3@&!U$t&I?X6da+@a6 zV=cK>V-FSW+Af8qwyE@`RJ-j|Pmk>8vk&&rc4wD$sa%(R+GKz4xfj&=W3S%#{(kTK zp7Wmbp7)%4httQ!p6A7u=E$P)0>5@oR-Z-V4;?Lt_#{JR*VTvc$)Uh~5nY)o`<19Z zyVxx8e$mYKiT9h1OjmUwS_9$|JFbssgJPnoRkLo;ti)BTUl+obNX=q8`$}3aX0R09 z9io-3*Tsw3Y^N?$tYXJ?MG;1=U7`By31?Es(YY>35W43HLMz4tD8%A!Ss(}t@w6@m z#$d()7vZLBly*nsIT3djjZZ&d6@)eHiWtR=`Z2}>d7Z23%rjm;D}0l_ea`$$X4aQP zmY~yIG)TuyLupyid3?s(qgd|PY0{x-Z1vba=h$RH5DiVcV6}SlhNj@*(Z4X29{ESkr0j$5v(mZlMlOEIgKKdY9lBbL?aZJHkb=H-fVGzx9CQT#W$7pT=`)D56amcnneq{DvrHmm_Nk?tJPx}ur_v$vC5W# zz*m?y6oXdzqB0oELX5AjZ$;@M_bb(YyjWV~K8rHPbKkA_e?}W`-d@!bIb!Kj-c~JD zs%4N5f!529Y5XvOg+v^bRwS^slcurL5o@K=I2I9^5n4%O@`hE$u?3O!>%C}%=xfyI z`%#35o)kYEyUNS)EFGJ20xI+687+oY>eY>mk(O^;zd(+tTN!@e{<9QvY(#%MZaVt2>P z4PC9WCKKBiGcmM@voM#5wZ&wG{*3Ja&!r~zre$4r2(TrfrtvnYl z2%dap33cYp+oA?sPXT9ff9|zN?n1zK;mQNL?bNa}oGqF-$+?xZjgAiNMjOQIJ&pk-1n3-{ z#U4k$oawHi!F-Q3I){lv*C)HHNc9(}WOq5>c|8ou)^KKwH)p)S)g@2|E|J?g&NmS3 z1oWIGC|^*NFt#~9Cu1EquOfFOj?drf+1ahk=K3P&&pWC2QDN+z`1lnf)VEIhdz_m} zA@%F%SNf2NTaA5WoW_lP%Ech#B{HJd)P!WIV?0}ukPvkkF4`)4ESIgGux$}+Pl8!8 zjAt(=%rm~mdk_p>>?=WeV;uW;!Y1jU5!*P+*(zI(C{1H90ol@yv?GQq^8znus!S>*Wye@#Eni877h)AqEU$@b z@XVcj2;57p%p-8cK-y)s7(AfbNCKr8LqOn5R1LLkIoaqqc{Aq9k(g8w%8gJS^9}0H zoA)UaftZUZ<{UL9d8sjzMq={XiM=J}RTLtR;=UUQ1M7Awe?-qb7qWXD`Y<#-g$m{g zai^kdB^&K|GHCIzTc~=KYiKk)k)!C!<1nK5PAfO?hLPzQ4O3~06R(m>b&B?dmX*6zPhY|3g1 z;xH=zL1EEcWVe;i?E&7XO}T_|D&yhgRNvc*NDa=?D;zuQF5ab9ubA?6>QV>g@RVOe ziUR10@B238D57ZlzD;%)q7&u7NZ@;UU`n2L3|v#T!YI4*VF);B?`noNrAaDt~Kj?6+CHmfj_vu(!ss@29;l9%3hx z%`w+;w#t@P97|}6T+y*~axD8Hd6sl4lx3$Rim$O{kegUtN}70*{Q|OpolmJ1PqCcT ze6faArshZKvFh~sCR+w&#|e+)gyLmyrsj>`$O|25(szzwKc-qnoy4q^MplrPEOw9T{^X^S1m!AP+w?oqw{ z{6TNj&)9e7q%o1?=gphIjOlS=D9cFCl)lunwdr?@Pq2gOmaxC_)@KLs5u?mzSJLBC zGLQqS_nB_eWT0lPvfB?FNT8zdob4k0QI?buD{f=6GiExA;6Ie|AeXDST*Ku$E+67@ z1DBh)Ea7r9m*re;;j)U$tz6b{S<9u3%X%*DTt33(E-oK)^2c5-ALr7=<$f-kxO{@k zW-g!P@+mH#=CXy$!(1NW@>wohxjf3{F)m-=(g(T3J82eHbMDF^DP<9B$*gwzkjTJ( z&s&WWT zCNzgoG@-?W#tu0F*Ao;-xrNa68$f#q^%L?C`i2nw)C%+vYA5s=p;LrDB=mbi?-2T$ zPzRxYLaz||iO?}Z<4{?F!-Num?hG^&%p&FEgbE1R2^A6AN~n}j385W?)^t{8_la!f z^zC8v12!L7p!*Z{hv_TXfH#F+v~O!^Fg2Hiro!mb+tT=UBvBW$X%)3&ON$S4F(3y zOs?{iYG-XtUD-BuVm+jIw6xl;Ww@8~`f59-$?lqe!Re0`bV5fmgf9)kpG7E}P&WQJ zKq<%-eiX}U>KZC?g+Wm#wB*3pH50~1sheEkkfd3km2`sZ4r-6@D=AlKmx^un-NKtt z_vTTLb0B&PsJT@TbTEA`u{{ftovsI<8(2bODOx^KS|dE6E3ep6%yXrKdKqjTMG!}d zQLTbM)<4Q8wMZocQir}Mw~%n5Pb_qa1EX8S-q0>-Ky=|>7j_O^c{n%1fqnF{!nHu- zUG!~A-*ziBg&#i@=qlEDE`1N+s@Hf4ernR?B#sZRsu?QB))EW|P>5f+bQR(zZk#|& z5a{ETc%s(+U5&fQpWfL&X$pS~0IqxCObvYWqQ_OM@m&1Oq06W7;lDzCG0e60As7*F zukn11_i6*UPva$1)cC?8O;MPv26&J-PTk?ZPnBqPTbgR$s_|U2%IS2WfUXpk?;Z9} zRrvvp4``fe+&@`hUoZT~nSd`PG{=ASnij+}gZPXfK0AmP261Z;FS?zxDb@&Q$?ZB} zOAxOO;`SiEH;C^K;w?e^x!XB=5o2h-T_ v^D{c%df;yo>sYp!>6S+`^YTnqzI-V=vz!_2^`&JM#TB)sn`p diff --git a/core/org.eclipse.cdt.core.native/native_src/unix/exec_pty.c b/core/org.eclipse.cdt.core.native/native_src/unix/exec_pty.c index fb669736037..7a3a9303910 100644 --- a/core/org.eclipse.cdt.core.native/native_src/unix/exec_pty.c +++ b/core/org.eclipse.cdt.core.native/native_src/unix/exec_pty.c @@ -24,10 +24,72 @@ #include #include #include +#include +#include +#include /* from pfind.c */ extern char *pfind(const char *name, char *const envp[]); +static int sys_close_range_wrapper(unsigned int from_fd_inclusive) { + // Use fast `close_range` (https://man7.org/linux/man-pages/man2/close_range.2.html) if available. + // Cannot call `close_range` from libc, as it may be unavailable in older libc. +# if defined(__linux__) && defined(SYS_close_range) && defined(CLOSE_RANGE_UNSHARE) + return syscall(SYS_close_range, from_fd_inclusive, ~0U, CLOSE_RANGE_UNSHARE); +# else + errno = ENOSYS; + return -1; +# endif +} + +static int close_all_fds_using_parsing(unsigned int from_fd_inclusive) { + // If `opendir` is implemented using a file descriptor, we may close it accidentally. + // Let's close a few lowest file descriptors, in hope that `opendir` will use it. + int lowest_fds_to_close = 2; + for (int i = 0; i < lowest_fds_to_close; i++) { + close(from_fd_inclusive + i); + } + +#if defined(__APPLE__) +#define FD_DIR "/dev/fd" +#else +#define FD_DIR "/proc/self/fd" +#endif + + DIR *dirp = opendir(FD_DIR); + if (dirp == NULL) return -1; + + struct dirent *direntp; + + while ((direntp = readdir(dirp)) != NULL) { + if (isdigit(direntp->d_name[0])) { + int fd = strtol(direntp->d_name, NULL, 10); + if (fd >= from_fd_inclusive + lowest_fds_to_close && fd != dirfd(dirp)) { + close(fd); + } + } + } + + closedir(dirp); + + return 0; +} + +static void close_all_fds_fallback(unsigned int from_fd_inclusive) { + int fdlimit = sysconf(_SC_OPEN_MAX); + if (fdlimit == -1) fdlimit = 65535; // arbitrary default, just in case + for (int fd = from_fd_inclusive; fd < fdlimit; fd++) { + close(fd); + } +} + +static void close_all_fds() { + unsigned int from_fd = STDERR_FILENO + 1; + if (sys_close_range_wrapper(from_fd) == 0) return; + if (close_all_fds_using_parsing(from_fd) == 0) return; + close_all_fds_fallback(from_fd); +} + pid_t exec_pty(const char *path, char *const argv[], char *const envp[], const char *dirpath, int channels[3], const char *pts_name, int fdm, int console) { int pipe2[2]; @@ -107,14 +169,7 @@ pid_t exec_pty(const char *path, char *const argv[], char *const envp[], const c } /* Close all the fd's in the child */ - { - int fdlimit = sysconf(_SC_OPEN_MAX); - int fd = 3; - - while (fd < fdlimit) { - close(fd++); - } - } + close_all_fds(); if (envp && envp[0]) { execve(full_path, argv, envp);