From: Peter Zijlstra <peterz@infradead.org>
To: Jason Low <jason.low2@hpe.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>,
Linus Torvalds <torvalds@linux-foundation.org>,
Waiman Long <waiman.long@hpe.com>,
Ding Tianhong <dingtianhong@huawei.com>,
Thomas Gleixner <tglx@linutronix.de>,
Will Deacon <Will.Deacon@arm.com>, Ingo Molnar <mingo@redhat.com>,
Imre Deak <imre.deak@intel.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Tim Chen <tim.c.chen@linux.intel.com>,
"Paul E. McKenney" <paulmck@us.ibm.com>,
jason.low2@hp.com
Subject: Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex
Date: Thu, 25 Aug 2016 14:32:47 +0200 [thread overview]
Message-ID: <20160825123247.GE10138@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1472001223.2381.96.camel@j-VirtualBox>
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
next prev parent reply other threads:[~2016-08-25 12:33 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-23 12:46 [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Peter Zijlstra
2016-08-23 12:46 ` [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Peter Zijlstra
2016-08-23 19:55 ` Waiman Long
2016-08-23 20:52 ` Tim Chen
2016-08-23 21:03 ` Peter Zijlstra
2016-08-23 21:09 ` Peter Zijlstra
2016-08-23 20:17 ` Waiman Long
2016-08-23 20:31 ` Peter Zijlstra
2016-08-24 9:56 ` Will Deacon
2016-08-24 15:34 ` Peter Zijlstra
2016-08-24 16:52 ` Peter Zijlstra
2016-08-24 16:54 ` Will Deacon
2016-08-23 12:46 ` [RFC][PATCH 2/3] locking/mutex: Allow MUTEX_SPIN_ON_OWNER when DEBUG_MUTEXES Peter Zijlstra
2016-08-23 12:46 ` [RFC][PATCH 3/3] locking/mutex: Add lock handoff to avoid starvation Peter Zijlstra
2016-08-23 12:56 ` Peter Zijlstra
[not found] ` <57BCA869.1050501@hpe.com>
2016-08-23 20:32 ` Peter Zijlstra
2016-08-24 19:50 ` Waiman Long
2016-08-25 8:11 ` Peter Zijlstra
2016-08-23 16:17 ` [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Davidlohr Bueso
2016-08-23 16:35 ` Jason Low
2016-08-23 16:57 ` Peter Zijlstra
2016-08-23 19:36 ` Waiman Long
2016-08-23 20:41 ` Peter Zijlstra
2016-08-23 22:34 ` Waiman Long
2016-08-24 1:13 ` Jason Low
2016-08-25 12:32 ` Peter Zijlstra [this message]
2016-08-25 15:43 ` Peter Zijlstra
2016-08-25 16:33 ` Waiman Long
2016-08-25 16:35 ` Peter Zijlstra
2016-08-27 18:27 ` Ingo Molnar
2016-08-25 19:11 ` huang ying
2016-08-25 19:26 ` Peter Zijlstra
2016-08-23 18:53 ` Linus Torvalds
2016-08-23 20:34 ` Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160825123247.GE10138@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=Will.Deacon@arm.com \
--cc=dave@stgolabs.net \
--cc=dingtianhong@huawei.com \
--cc=imre.deak@intel.com \
--cc=jason.low2@hp.com \
--cc=jason.low2@hpe.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=paulmck@us.ibm.com \
--cc=tglx@linutronix.de \
--cc=tim.c.chen@linux.intel.com \
--cc=torvalds@linux-foundation.org \
--cc=waiman.long@hpe.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox