|
@ -0,0 +1,46 @@ |
|
|
|
|
|
--- a/src/stress.c
|
|
|
|
|
|
+++ b/src/stress.c
|
|
|
|
|
|
@@ -262,6 +262,7 @@ main (int argc, char **argv)
|
|
|
|
|
|
|
|
|
|
|
|
/* Calculate the backoff value so we get good fork throughput. */ |
|
|
|
|
|
backoff = do_backoff * forks; |
|
|
|
|
|
+ struct timespec b = {backoff / 1000000, (backoff % 1000000) * 1000};
|
|
|
|
|
|
dbg (stdout, "using backoff sleep of %llius\n", backoff); |
|
|
|
|
|
|
|
|
|
|
|
/* If we are supposed to respect a timeout, calculate it. */ |
|
|
|
|
|
@@ -296,7 +297,7 @@ main (int argc, char **argv)
|
|
|
|
|
|
{ |
|
|
|
|
|
case 0: /* child */ |
|
|
|
|
|
alarm (timeout); |
|
|
|
|
|
- usleep (backoff);
|
|
|
|
|
|
+ nanosleep(&b, NULL);
|
|
|
|
|
|
if (do_dryrun) |
|
|
|
|
|
exit (0); |
|
|
|
|
|
exit (hogcpu ()); |
|
|
|
|
|
@@ -317,7 +318,7 @@ main (int argc, char **argv)
|
|
|
|
|
|
{ |
|
|
|
|
|
case 0: /* child */ |
|
|
|
|
|
alarm (timeout); |
|
|
|
|
|
- usleep (backoff);
|
|
|
|
|
|
+ nanosleep(&b,&b);
|
|
|
|
|
|
if (do_dryrun) |
|
|
|
|
|
exit (0); |
|
|
|
|
|
exit (hogio ()); |
|
|
|
|
|
@@ -337,7 +338,7 @@ main (int argc, char **argv)
|
|
|
|
|
|
{ |
|
|
|
|
|
case 0: /* child */ |
|
|
|
|
|
alarm (timeout); |
|
|
|
|
|
- usleep (backoff);
|
|
|
|
|
|
+ nanosleep(&b, &b);
|
|
|
|
|
|
if (do_dryrun) |
|
|
|
|
|
exit (0); |
|
|
|
|
|
exit (hogvm |
|
|
|
|
|
@@ -358,7 +359,7 @@ main (int argc, char **argv)
|
|
|
|
|
|
{ |
|
|
|
|
|
case 0: /* child */ |
|
|
|
|
|
alarm (timeout); |
|
|
|
|
|
- usleep (backoff);
|
|
|
|
|
|
+ nanosleep(&b, &b);
|
|
|
|
|
|
if (do_dryrun) |
|
|
|
|
|
exit (0); |
|
|
|
|
|
exit (hoghdd (do_hdd_bytes)); |