X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=tests%2Fmemtest%2Fbandwidth.cpp;h=5ff6756bbd8fb953136995aa95a58ba685ed0220;hb=20e3c1bc9429230b7379db3747fd0c918f76af27;hp=0e0ec2e04cc86af6e8a5d6e721b6b66a3851599a;hpb=1a3794a84074d7f22b8ddaba840aedd758a14cdd;p=android-x86%2Fsystem-extras.git diff --git a/tests/memtest/bandwidth.cpp b/tests/memtest/bandwidth.cpp index 0e0ec2e0..5ff6756b 100644 --- a/tests/memtest/bandwidth.cpp +++ b/tests/memtest/bandwidth.cpp @@ -14,18 +14,18 @@ * limitations under the License. */ +#include "bandwidth.h" + +#include #include #include -#include #include +#include #include -#include #include #include -#include "bandwidth.h" - typedef struct { const char *name; @@ -101,8 +101,10 @@ BandwidthBenchmark *createBandwidthBenchmarkObject(arg_t values) { bench = new CopyLdrdStrdBenchmark(); } else if (strcmp(name, "copy_ldmia_stmia") == 0) { bench = new CopyLdmiaStmiaBenchmark(); - } else if (strcmp(name, "copy_vld_vst") == 0) { - bench = new CopyVldVstBenchmark(); + } else if (strcmp(name, "copy_vld1_vst1") == 0) { + bench = new CopyVld1Vst1Benchmark(); + } else if (strcmp(name, "copy_vldr_vstr") == 0) { + bench = new CopyVldrVstrBenchmark(); } else if (strcmp(name, "copy_vldmia_vstmia") == 0) { bench = new CopyVldmiaVstmiaBenchmark(); } else if (strcmp(name, "memcpy") == 0) { @@ -111,8 +113,10 @@ BandwidthBenchmark *createBandwidthBenchmarkObject(arg_t values) { bench = new WriteStrdBenchmark(); } else if (strcmp(name, "write_stmia") == 0) { bench = new WriteStmiaBenchmark(); - } else if (strcmp(name, "write_vst") == 0) { - bench = new WriteVstBenchmark(); + } else if (strcmp(name, "write_vst1") == 0) { + bench = new WriteVst1Benchmark(); + } else if (strcmp(name, "write_vstr") == 0) { + bench = new WriteVstrBenchmark(); } else if (strcmp(name, "write_vstmia") == 0) { bench = new WriteVstmiaBenchmark(); } else if (strcmp(name, "memset") == 0) { @@ -121,8 +125,10 @@ BandwidthBenchmark *createBandwidthBenchmarkObject(arg_t values) { bench = new ReadLdrdBenchmark(); } else if (strcmp(name, "read_ldmia") == 0) { bench = new ReadLdmiaBenchmark(); - } else if (strcmp(name, "read_vld") == 0) { - bench = new ReadVldBenchmark(); + } else if (strcmp(name, "read_vld1") == 0) { + bench = new ReadVld1Benchmark(); + } else if (strcmp(name, "read_vldr") == 0) { + bench = new ReadVldrBenchmark(); } else if (strcmp(name, "read_vldmia") == 0) { bench = new ReadVldmiaBenchmark(); } else { @@ -130,7 +136,7 @@ BandwidthBenchmark *createBandwidthBenchmarkObject(arg_t values) { return NULL; } - if (!bench->setSize(values["size"].int_value)) { + if (!bench->setSize(size)) { printf("Failed to allocate buffers for benchmark.\n"); return NULL; } @@ -306,7 +312,7 @@ int per_core_bandwidth(int argc, char** argv) { args[i].core = *it; args[i].bench = createBandwidthBenchmarkObject(values); if (!args[i].bench) { - return 0; + return -1; } } @@ -337,12 +343,11 @@ int multithread_bandwidth(int argc, char** argv) { thread_arg_t args[num_threads]; - int i = 0; for (int i = 0; i < num_threads; i++) { args[i].core = -1; args[i].bench = createBandwidthBenchmarkObject(values); if (!args[i].bench) { - return 0; + return -1; } } @@ -367,18 +372,18 @@ bool run_bandwidth_benchmark(int argc, char** argv, const char *name, values["num_warm_loops"].int_value = 0; values["num_loops"].int_value = 0; if (!processBandwidthOptions(argc, argv, bandwidth_opts, &values)) { - return -1; + return false; } size_t size = values["size"].int_value; if ((size % 64) != 0) { printf("The size value must be a multiple of 64.\n"); - return 1; + return false; } if (setpriority(PRIO_PROCESS, 0, -20)) { perror("Unable to raise priority of process."); - return -1; + return false; } bool preamble_printed = false; @@ -389,7 +394,7 @@ bool run_bandwidth_benchmark(int argc, char** argv, const char *name, if (!(*it)->canRun()) { continue; } - if (!(*it)->setSize(values["num_warm_loops"].int_value)) { + if (!(*it)->setSize(values["size"].int_value)) { printf("Failed creating buffer for bandwidth test.\n"); return false; } @@ -418,7 +423,8 @@ int copy_bandwidth(int argc, char** argv) { std::vector bench_objs; bench_objs.push_back(new CopyLdrdStrdBenchmark()); bench_objs.push_back(new CopyLdmiaStmiaBenchmark()); - bench_objs.push_back(new CopyVldVstBenchmark()); + bench_objs.push_back(new CopyVld1Vst1Benchmark()); + bench_objs.push_back(new CopyVldrVstrBenchmark()); bench_objs.push_back(new CopyVldmiaVstmiaBenchmark()); bench_objs.push_back(new MemcpyBenchmark()); @@ -432,7 +438,8 @@ int write_bandwidth(int argc, char** argv) { std::vector bench_objs; bench_objs.push_back(new WriteStrdBenchmark()); bench_objs.push_back(new WriteStmiaBenchmark()); - bench_objs.push_back(new WriteVstBenchmark()); + bench_objs.push_back(new WriteVst1Benchmark()); + bench_objs.push_back(new WriteVstrBenchmark()); bench_objs.push_back(new WriteVstmiaBenchmark()); bench_objs.push_back(new MemsetBenchmark()); @@ -447,7 +454,8 @@ int read_bandwidth(int argc, char** argv) { std::vector bench_objs; bench_objs.push_back(new ReadLdrdBenchmark()); bench_objs.push_back(new ReadLdmiaBenchmark()); - bench_objs.push_back(new ReadVldBenchmark()); + bench_objs.push_back(new ReadVld1Benchmark()); + bench_objs.push_back(new ReadVldrBenchmark()); bench_objs.push_back(new ReadVldmiaBenchmark()); if (!run_bandwidth_benchmark(argc, argv, "read", bench_objs)) {