int main(int argc, char **argv) { struct plat_opts_config_shmemtest_phys config; int status; size_t paddr_before; struct plat_shmem_alloc_stats init_stats; struct plat_shmem_alloc_stats end_stats; text_sp_t shared_text; const char text_of_doom[] = "Killroy was here"; /* Physmem ininitialization is the same as regular memory */ memset(&config, 0, sizeof(config)); plat_shmem_config_init(&config.shmem); if (plat_opts_parse_shmemtest_phys(&config, argc, argv)) { return (2); } status = plat_shmem_prototype_init(&config.shmem); plat_assert_always(!status); status = plat_shmem_attach(plat_shmem_config_get_path(&config.shmem)); plat_assert_always(!status); status = plat_shmem_alloc_get_stats(&init_stats); plat_assert_always(!status); shared_text = test_start(text_of_doom); plat_assert_always(!text_sp_is_null(shared_text)); paddr_before = plat_shmem_ptr_to_paddr(shared_text); plat_assert_always(paddr_before); test_middle(shared_text, text_of_doom, paddr_before); /* Detach and re-attach */ status = plat_shmem_detach(); plat_assert_always(!status); status = plat_shmem_attach(plat_shmem_config_get_path(&config.shmem)); plat_assert_always(!status); test_middle(shared_text, text_of_doom, paddr_before); test_end(shared_text, text_of_doom); status = plat_shmem_alloc_get_stats(&end_stats); plat_assert_always(!status); plat_assert_always(init_stats.allocated_bytes == end_stats.allocated_bytes); plat_assert_always(init_stats.allocated_count == end_stats.allocated_count); status = plat_shmem_detach(); plat_assert_always(!status); plat_shmem_config_destroy(&config.shmem); return (0); }
int main(int argc, char *argv[]) { printf("Start of %s.\n", argv[0]); nthreads = 5, ncores = 5; if (SDF_TRUE != internal_testhomedir_init()) { return -1; } else if (argc > 1) { niterator = atoi(argv[1]); } else if (argc > 2) { ncores = atoi(argv[2]); if (ncores > MAX_CORES) ncores = MAX_CORES; } else if (argc > 3) { nthreads = atoi(argv[3]); if (nthreads > MAX_FTH_THREAD) nthreads = MAX_FTH_THREAD; } plat_assert_always(niterator > 0); plat_assert_always(nthreads > 0); plat_assert_always(ncores > 0); int ret = execute_test(); printf("End of %s.\n", argv[0]); // plat_log_parse_arg("sdf/shared=debug"); plat_shmem_alloc_get_stats(&g_end_sm_stats); print_sm_stats(g_init_sm_stats, g_end_sm_stats); return (ret); }
int main(int argc, char *argv[]) { printf("Start of %s.\n", argv[0]); if (SDF_TRUE != internal_testhomedir_init()) { return -1; } else if (argc > 1) { numBlocks = atoi(argv[1]); } int ret = execute_test(); printf("End of %s.\n", argv[0]); // plat_log_parse_arg("sdf/shared=debug"); plat_shmem_alloc_get_stats(&g_end_sm_stats); print_sm_stats(g_init_sm_stats, g_end_sm_stats); return (ret); }
SDF_boolean_t internal_testhomedir_init() { SDF_boolean_t ret = SDF_FALSE; loadProperties("/opt/schooner/config/schooner-med.properties"); // TODO get filename from command line // plat_log_parse_arg("platform/alloc=trace"); if (SDF_TRUE != (ret = init_agent_sm(0))) { printf("init_agent_sm() failed!\n"); } else { plat_shmem_alloc_get_stats(&g_init_sm_stats); uint64_t buckets = getProperty_uLongLong("SDF_HOME_DIR_BUCKETS", MAX_BUCKETS - 1); uint32_t lockType = getProperty_uLongInt("SDF_HOME_DIR_LOCKTYPE", HMDIR_FTH_BUCKET); homedir = HomeDir_create(buckets, lockType); } return (ret); }