Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@ Multiload - a superset of multichase which runs latency, memory bandwidth, and l

- Bandwidth Only
Multiload can run a memory bandwidth test using the "-l" load argument. The "-c" chase argument MUST NOT be used.
Below command runs 5 samples (~2.5 seconds each), using 16 threads, using the glibc memcpy() function,
Below command runs 5 samples (2 seconds each), using 16 threads, using the glibc memcpy() function,
using a 512M buffer per thread.

$ multiload -n 5 -t 16 -m 512M -l memcpy-libc

- Loaded Latency.
Multiload can run 1 pointer chaser thread on logical cpu0 with multiple memory bandwidth load threads.
The "-c chaseload" arg MUST be used. The "-l" arg MUST be used with one of the memory load arguments.
Below command runs 5 samples (~2.5 seconds each), on 16 threads (1 chase, 15 stream-sum bandwidth loads),
Below command runs 5 samples (2 seconds each), on 16 threads (1 chase, 15 stream-sum bandwidth loads),
using a 512M buffer per thread. The chase thread uses a stride=16.

$ multiload -s 16 -n 5 -t 16 -m 512M -c chaseload -l stream-sum
Expand Down
4 changes: 3 additions & 1 deletion fairness.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ int main(int argc, char **argv) {
" [-n sample_nr]\n"
" [-s sweep_max]\n"
" [-t time]\n"
" [-S separator]\n"
"By default runs one thread on each cpu, use taskset(1) to "
"restrict operation to fewer cpus/threads.\n"
"The optional delay_mask specifies a mask of cpus on which to delay "
Expand All @@ -146,7 +147,8 @@ int main(int argc, char **argv) {
"The optional sweep_max causes testing across multiple different "
"cache lines.\n"
"The optional time determines how often to poll results (float in "
"seconds).\n",
"seconds).\n"
"The optional separator determines the output field separator (e.g., ',' for CSV).\n",
argv[0]);
exit(1);
}
Expand Down
3 changes: 2 additions & 1 deletion multichase.c
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ int main(int argc, char **argv) {

setvbuf(stdout, NULL, _IOLBF, BUFSIZ);

while ((c = getopt(argc, argv, "ac:F:p:HLm:Nn:oO:S:s:T:t:vXyW:f:M")) != -1) {
while ((c = getopt(argc, argv, "ac:F:p:HLm:Nn:oO:s:T:t:vXyW:f:M")) != -1) {
switch (c) {
case 'a':
print_average = 1;
Expand Down Expand Up @@ -774,6 +774,7 @@ int main(int argc, char **argv) {
"-W mbind list list of node:weight,... pairs for allocating memory\n"
" has no effect if -H flag is specified\n"
" 0:10,1:90 weights it as 10%% on 0 and 90%% on 1\n");
fprintf(stderr, "-v verbose output (default %d)\n", verbosity);
fprintf(stderr, "-X do not set thread affinity\n");
fprintf(stderr, "-y print timestamp in front of each line\n");
exit(1);
Expand Down
4 changes: 2 additions & 2 deletions multiload.c
Original file line number Diff line number Diff line change
Expand Up @@ -921,7 +921,7 @@ int main(int argc, char **argv) {

setvbuf(stdout, NULL, _IOLBF, BUFSIZ);

while ((c = getopt(argc, argv, "ac:d:l:F:p:HLm:n:oO:S:s:T:t:vXyW:i:u:")) != -1) {
while ((c = getopt(argc, argv, "ac:d:l:F:p:HLm:n:oO:s:T:t:vXyW:i:u:")) != -1) {
switch (c) {
case 'a':
print_average = 1;
Expand Down Expand Up @@ -1191,7 +1191,7 @@ int main(int argc, char **argv) {
fprintf(stderr,
"-L use longer chase\n");
fprintf(stderr,
"-n nr_samples nr of 0.5 second samples to use (default %zu, 0 = "
"-n nr_samples nr of 2.0 second samples to use (default %zu, 0 = "
"infinite)\n",
DEF_NR_SAMPLES);
fprintf(stderr,
Expand Down