Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1470116
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex |
| Date | 2016-08-25 14:40 +0200 |
| Message-ID | <sa26R-Y5-27@gated-at.bofh.it> (permalink) |
| References | <s9jt7-49j-1@gated-at.bofh.it> <s9mAF-6kW-7@gated-at.bofh.it> <s9mU1-6sX-3@gated-at.bofh.it> <s9vaV-3B2-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, Aug 23, 2016 at 06:13:43PM -0700, Jason Low wrote:
> I tested this patch on an 8 socket system with the high_systime AIM7
> workload with diskfs. The patch provided big performance improvements in
> terms of throughput in the highly contended cases.
>
> -------------------------------------------------
> | users | avg throughput | avg throughput |
> | without patch | with patch |
> -------------------------------------------------
> | 10 - 90 | 13,943 JPM | 14,432 JPM |
> -------------------------------------------------
> | 100 - 900 | 75,475 JPM | 102,922 JPM |
> -------------------------------------------------
> | 1000 - 1900 | 77,299 JPM | 115,271 JPM |
> -------------------------------------------------
>
> Unfortunately, at 2000 users, the modified kernel locked up.
>
> # INFO: task reaim:<#> blocked for more than 120 seconds.
>
> So something appears to be buggy.
Right, so like said I think I found the reason for the lockup and Waiman
appears to have found the reason for your insane performance increase.
Running AIM7 takes ludicrous amounts of time though, so I hacked it up
like below.
That changes two things, it uses log10(rl->runnum) as scale factor and
allows overriding chld_alrm. I run it with -O60, which gets semi decent
runtimes.
---
diff --git a/osdl-aim-7/src/driver.c b/osdl-aim-7/src/driver.c
index 306e23b..03be655 100644
--- a/osdl-aim-7/src/driver.c
+++ b/osdl-aim-7/src/driver.c
@@ -98,6 +98,8 @@ struct runloop_input *rl_vars;
struct disk_data *my_disk;
struct _aimList *global_list;
+int alarm_timeout = 0;
+
int flag = 0;
/* for getopt */
int opt_num = 0;
@@ -222,13 +224,14 @@ int main(int argc, char **argv)
{"config", 1, NULL, 'c'},
{"nosync", 0, NULL, 'y'}, /* Remove the sync'y behavior */
{"guesspeak", 0, NULL, 'g'}, /* terrible, but we've exhausted the alphabet */
+ {"timeout", 1, NULL, 'O'},
{0, 0, 0, 0}
};
- c = getopt_long(argc, argv, "bvs:e:i:j:d::f:l:p:r:c:Z:z:mqothxyg",
+ c = getopt_long(argc, argv, "bvs:e:i:j:d::f:l:p:r:c:Z:z:O:mqothxyg",
long_options, &option_index);
#elif hpux
- c = getopt(argc, argv, "bvs:e:i:j:d::f:l:p:r:c:Z:z:mqothxyg");
+ c = getopt(argc, argv, "bvs:e:i:j:d::f:l:p:r:c:Z:z:O:mqothxyg");
#endif
if (c == -1)
@@ -325,6 +328,9 @@ int main(int argc, char **argv)
print_usage();
exit(1);
break;
+ case 'O':
+ alarm_timeout = atoi(optarg);
+ break;
/* MARCIA - DAN z: pass config file, Z: pass tool/script name (default perf_tools.sh) */
case 'Z':
tool_name = optarg;
@@ -909,7 +915,7 @@ int runloop(struct _aimList *tlist, struct runloop_input *rl)
long start_tick;
long delta = 0;
int chld_alrm = 0;
-
+ int timo;
close(umbilical[0]);
/* Step 1: seed random number generators
@@ -945,7 +951,15 @@ int runloop(struct _aimList *tlist, struct runloop_input *rl)
chld_alrm = 10;
}
/* now we set a timeout alarm */
- alarm(rl->runnum * chld_alrm);
+
+ if (alarm_timeout > 0)
+ chld_alrm = alarm_timeout;
+
+ timo = (unsigned int)(log10((double)rl->runnum) * chld_alrm);
+
+ fprintf(stderr, "alarm: %d = log10(%d) * %d\n", timo, rl->runnum, chld_alrm);
+
+ alarm(timo);
/*
* Step 4: Set up mechanism for random
* selection of directory for writes during tests
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Peter Zijlstra <peterz@infradead.org> - 2016-08-23 15:00 +0200
[RFC][PATCH 3/3] locking/mutex: Add lock handoff to avoid starvation Peter Zijlstra <peterz@infradead.org> - 2016-08-23 15:00 +0200
Re: [RFC][PATCH 3/3] locking/mutex: Add lock handoff to avoid starvation Peter Zijlstra <peterz@infradead.org> - 2016-08-23 15:00 +0200
Re: [RFC][PATCH 3/3] locking/mutex: Add lock handoff to avoid starvation Peter Zijlstra <peterz@infradead.org> - 2016-08-23 22:50 +0200
Re: [RFC][PATCH 3/3] locking/mutex: Add lock handoff to avoid starvation Peter Zijlstra <peterz@infradead.org> - 2016-08-25 10:20 +0200
[RFC][PATCH 2/3] locking/mutex: Allow MUTEX_SPIN_ON_OWNER when DEBUG_MUTEXES Peter Zijlstra <peterz@infradead.org> - 2016-08-23 15:00 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Davidlohr Bueso <dave@stgolabs.net> - 2016-08-23 18:20 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Jason Low <jason.low2@hpe.com> - 2016-08-23 18:40 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Peter Zijlstra <peterz@infradead.org> - 2016-08-23 19:00 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Peter Zijlstra <peterz@infradead.org> - 2016-08-23 22:50 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Jason Low <jason.low2@hpe.com> - 2016-08-24 03:30 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Peter Zijlstra <peterz@infradead.org> - 2016-08-25 14:40 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Peter Zijlstra <peterz@infradead.org> - 2016-08-25 18:40 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Ingo Molnar <mingo@kernel.org> - 2016-08-27 20:30 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex huang ying <huang.ying.caritas@gmail.com> - 2016-08-25 21:20 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Peter Zijlstra <peterz@infradead.org> - 2016-08-25 22:00 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Peter Zijlstra <peterz@infradead.org> - 2016-08-24 00:00 +0200
Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Linus Torvalds <torvalds@linux-foundation.org> - 2016-08-24 03:30 +0200
Re: [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Peter Zijlstra <peterz@infradead.org> - 2016-08-23 22:40 +0200
Re: [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Tim Chen <tim.c.chen@linux.intel.com> - 2016-08-23 23:00 +0200
Re: [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Peter Zijlstra <peterz@infradead.org> - 2016-08-23 23:10 +0200
Re: [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Peter Zijlstra <peterz@infradead.org> - 2016-08-23 23:20 +0200
Re: [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Will Deacon <will.deacon@arm.com> - 2016-08-24 12:00 +0200
Re: [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Will Deacon <will.deacon@arm.com> - 2016-08-24 19:00 +0200
Re: [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Peter Zijlstra <peterz@infradead.org> - 2016-08-24 19:00 +0200
Re: [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Peter Zijlstra <peterz@infradead.org> - 2016-08-24 19:20 +0200
csiph-web