stuff
This commit is contained in:
parent
aba80e8869
commit
fc687426ae
|
@ -314,6 +314,7 @@ class memload_generator {
|
|||
void *to_buffer;
|
||||
std::atomic<bool> reset_ts;
|
||||
int tid;
|
||||
int pull;
|
||||
int coreid;
|
||||
int target_dom;
|
||||
struct memload_generator_options * opts;
|
||||
|
@ -336,7 +337,7 @@ class memload_generator {
|
|||
struct memload_generator_options opts;
|
||||
|
||||
public:
|
||||
memload_generator(cpuset_t * threads, cpuset_t * target_domain, struct memload_generator_options * opt, bool *success);
|
||||
memload_generator(cpuset_t * threads, cpuset_t * modes, cpuset_t * target_domain, struct memload_generator_options * opt, bool *success);
|
||||
uint64_t get_transactions();
|
||||
bool start();
|
||||
bool stop();
|
||||
|
|
|
@ -18,7 +18,7 @@ void *
|
|||
memload_generator::worker_thrd(void *_tinfo)
|
||||
{
|
||||
auto *tinfo = (struct thread_info *)_tinfo;
|
||||
void *from_buffer, *to_buffer;
|
||||
void *from_buffer, *to_buffer, *tmp;
|
||||
|
||||
if (tinfo->opts->shared_buffer) {
|
||||
from_buffer = tinfo->from_buffer;
|
||||
|
@ -52,9 +52,15 @@ memload_generator::worker_thrd(void *_tinfo)
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
if (tinfo->pull) {
|
||||
tmp = from_buffer;
|
||||
from_buffer = to_buffer;
|
||||
to_buffer = tmp;
|
||||
}
|
||||
|
||||
// wait for other threads to init
|
||||
if (tinfo->opts->verbose) {
|
||||
fprintf(stdout, "memload_generator <thread %d>: running...\n", tinfo->tid);
|
||||
fprintf(stdout, "memload_generator <thread %d, pull %d>: running...\n", tinfo->tid, tinfo->pull);
|
||||
}
|
||||
tinfo->init_status.store(1);
|
||||
|
||||
|
@ -112,7 +118,7 @@ end:
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
memload_generator::memload_generator(cpuset_t *threads, cpuset_t *target_domain,
|
||||
memload_generator::memload_generator(cpuset_t *threads, cpuset_t * modes, cpuset_t *target_domain,
|
||||
struct memload_generator_options *opt, bool *success)
|
||||
{
|
||||
*success = false;
|
||||
|
@ -162,6 +168,7 @@ memload_generator::memload_generator(cpuset_t *threads, cpuset_t *target_domain,
|
|||
info->target_dom = target_domain_id;
|
||||
info->from_buffer = local_buffer;
|
||||
info->to_buffer = target_buffer;
|
||||
info->pull = CPU_ISSET(nextcore, modes);
|
||||
|
||||
CPU_ZERO(&cpuset);
|
||||
CPU_SET(nextcore, &cpuset);
|
||||
|
|
|
@ -79,7 +79,7 @@ nms_alloc_static(int node_id, size_t sz)
|
|||
int sum;
|
||||
for (size_t i = 0; i < sz; i++) {
|
||||
sum += *(uint8_t *)((char *)region + i);
|
||||
*(uint8_t *)((char *)region + i) = 0;
|
||||
*(uint8_t *)((char *)region + i) = i;
|
||||
}
|
||||
|
||||
// restore existing thread's allocation strategy
|
||||
|
|
|
@ -26,6 +26,7 @@ usage()
|
|||
" -q: bytes per second\n"
|
||||
" -d: destination domain index\n"
|
||||
" -s: worker threads cpu list\n"
|
||||
" -m: pull mode cpu list\n"
|
||||
" -S: enable shared buffer\n"
|
||||
" -t: time to run\n"
|
||||
" -T: transaction size\n"
|
||||
|
@ -47,9 +48,10 @@ int main(int argc, char * argv[])
|
|||
uint32_t time = -1;
|
||||
uint64_t bps = 0;
|
||||
uint64_t transaction_size = arr_sz;
|
||||
cpuset_t threads;
|
||||
cpuset_t threads, modes;
|
||||
char magic[256] = {0};
|
||||
CPU_ZERO(&threads);
|
||||
CPU_ZERO(&modes);
|
||||
CPU_SET(0, &threads);
|
||||
char ia_dist[32] = "fixed";
|
||||
int history_sz = 5;
|
||||
|
@ -63,7 +65,7 @@ int main(int argc, char * argv[])
|
|||
{
|
||||
int c;
|
||||
// parse arguments
|
||||
while ((c = getopt(argc, argv, "vhb:d:s:So:T:t:q:i:H:M:")) != -1) {
|
||||
while ((c = getopt(argc, argv, "vhb:d:s:m:So:T:t:q:i:H:M:")) != -1) {
|
||||
switch (c) {
|
||||
case 'v':
|
||||
ntr_set_level(NTR_DEP_USER1, ntr_get_level(NTR_DEP_USER1) + 1);
|
||||
|
@ -80,6 +82,9 @@ int main(int argc, char * argv[])
|
|||
case 's':
|
||||
cpulist_to_cpuset(optarg, &threads);
|
||||
break;
|
||||
case 'm':
|
||||
cpulist_to_cpuset(optarg, &modes);
|
||||
break;
|
||||
case 'S':
|
||||
shared_buffer = 1;
|
||||
break;
|
||||
|
@ -150,7 +155,7 @@ int main(int argc, char * argv[])
|
|||
std::ofstream ofile;
|
||||
ofile.open(output_file, std::ios::out | std::ios::trunc);
|
||||
|
||||
auto mgen = new memload_generator(&threads, &domain_mask, &opts, &success);
|
||||
auto mgen = new memload_generator(&threads, &modes, &domain_mask, &opts, &success);
|
||||
if (strlen(magic) > 0) {
|
||||
fprintf(stdout, "%s\n", magic);
|
||||
fflush(stdout);
|
||||
|
|
Loading…
Reference in New Issue