Revision 9aea5a65aa7a1af9a4236dfaeb0088f1624f9919 authored by Roland McGrath on 08 September 2010, 02:37:06 UTC, committed by Linus Torvalds on 10 September 2010, 15:10:26 UTC
An execve with a very large total of argument/environment strings can take a really long time in the execve system call. It runs uninterruptibly to count and copy all the strings. This change makes it abort the exec quickly if sent a SIGKILL. Note that this is the conservative change, to interrupt only for SIGKILL, by using fatal_signal_pending(). It would be perfectly correct semantics to let any signal interrupt the string-copying in execve, i.e. use signal_pending() instead of fatal_signal_pending(). We'll save that change for later, since it could have user-visible consequences, such as having a timer set too quickly make it so that an execve can never complete, though it always happened to work before. Signed-off-by: Roland McGrath <roland@redhat.com> Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 7993bc1
File | Mode | Size |
---|---|---|
Makefile | -rw-r--r-- | 574 bytes |
fabs.c | -rw-r--r-- | 274 bytes |
fadd.c | -rw-r--r-- | 701 bytes |
fadds.c | -rw-r--r-- | 732 bytes |
fcmpo.c | -rw-r--r-- | 972 bytes |
fcmpu.c | -rw-r--r-- | 878 bytes |
fctiw.c | -rw-r--r-- | 425 bytes |
fctiwz.c | -rw-r--r-- | 535 bytes |
fdiv.c | -rw-r--r-- | 1.1 KB |
fdivs.c | -rw-r--r-- | 1.2 KB |
fmadd.c | -rw-r--r-- | 1.1 KB |
fmadds.c | -rw-r--r-- | 1.1 KB |
fmr.c | -rw-r--r-- | 260 bytes |
fmsub.c | -rw-r--r-- | 1.1 KB |
fmsubs.c | -rw-r--r-- | 1.1 KB |
fmul.c | -rw-r--r-- | 983 bytes |
fmuls.c | -rw-r--r-- | 1014 bytes |
fnabs.c | -rw-r--r-- | 275 bytes |
fneg.c | -rw-r--r-- | 274 bytes |
fnmadd.c | -rw-r--r-- | 1.1 KB |
fnmadds.c | -rw-r--r-- | 1.1 KB |
fnmsub.c | -rw-r--r-- | 1.1 KB |
fnmsubs.c | -rw-r--r-- | 1.2 KB |
fres.c | -rw-r--r-- | 192 bytes |
frsp.c | -rw-r--r-- | 490 bytes |
frsqrte.c | -rw-r--r-- | 189 bytes |
fsel.c | -rw-r--r-- | 748 bytes |
fsqrt.c | -rw-r--r-- | 708 bytes |
fsqrts.c | -rw-r--r-- | 739 bytes |
fsub.c | -rw-r--r-- | 831 bytes |
fsubs.c | -rw-r--r-- | 862 bytes |
lfd.c | -rw-r--r-- | 346 bytes |
lfs.c | -rw-r--r-- | 792 bytes |
math.c | -rw-r--r-- | 11.9 KB |
math_efp.c | -rw-r--r-- | 15.6 KB |
mcrfs.c | -rw-r--r-- | 582 bytes |
mffs.c | -rw-r--r-- | 282 bytes |
mtfsb0.c | -rw-r--r-- | 321 bytes |
mtfsb1.c | -rw-r--r-- | 320 bytes |
mtfsf.c | -rw-r--r-- | 1.3 KB |
mtfsfi.c | -rw-r--r-- | 425 bytes |
stfd.c | -rw-r--r-- | 301 bytes |
stfiwx.c | -rw-r--r-- | 253 bytes |
stfs.c | -rw-r--r-- | 784 bytes |
udivmodti4.c | -rw-r--r-- | 3.4 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...