Example #1
0
void test_rsa_mp()
{
	device_context dev_ctx;
	dev_ctx.init(10485760, 0);
// srinath commenting out  
#if 0
	printf("------------------------------------------\n");
	printf("RSA512, GPU (MP), random\n");
	printf("------------------------------------------\n");
	rsa_context_mp rsa512_mp(512);
	rsa512_mp.set_device_context(&dev_ctx);
	test_latency(&rsa512_mp);
	test_correctness(&rsa512_mp, 20);
#endif
  
	printf("------------------------------------------\n");
	printf("RSA1024, GPU (MP), random\n");
	printf("------------------------------------------\n");
	rsa_context_mp rsa1024_mp(1024);
	rsa1024_mp.set_device_context(&dev_ctx);
	test_latency(&rsa1024_mp);
	test_correctness(&rsa1024_mp, 20);

// srinath commenting out
#if 0
	printf("------------------------------------------\n");
	printf("RSA2048, GPU (MP), random\n");
	printf("------------------------------------------\n");
	rsa_context_mp rsa2048_mp(2048);
	rsa2048_mp.set_device_context(&dev_ctx);
	test_latency(&rsa2048_mp);
	test_correctness(&rsa2048_mp, 20);

	printf("------------------------------------------\n");
	printf("RSA4096, GPU (MP), random\n");
	printf("------------------------------------------\n");
	rsa_context_mp rsa4096_mp(4096);
	rsa4096_mp.set_device_context(&dev_ctx);
	test_latency(&rsa4096_mp);
	test_correctness(&rsa4096_mp, 20);
#endif
}
Example #2
0
void
release_spinlock(spinlock *lock)
{
#if DEBUG_SPINLOCK_LATENCIES
	test_latency(lock);
#endif

	if (sNumCPUs > 1) {
		if (are_interrupts_enabled())
			panic("release_spinlock: attempt to release lock %p with "
				"interrupts enabled\n", lock);
#if B_DEBUG_SPINLOCK_CONTENTION
		{
			int32 count = atomic_and(&lock->lock, 0) - 1;
			if (count < 0) {
				panic("release_spinlock: lock %p was already released\n", lock);
			} else {
				// add to the total count -- deal with carry manually
				if ((uint32)atomic_add(&lock->count_low, count) + count
						< (uint32)count) {
					atomic_add(&lock->count_high, 1);
				}
			}
		}
#else
		if (atomic_and((int32*)lock, 0) != 1)
			panic("release_spinlock: lock %p was already released\n", lock);
#endif
	} else {
#if DEBUG_SPINLOCKS
		if (are_interrupts_enabled()) {
			panic("release_spinlock: attempt to release lock %p with "
				"interrupts enabled\n", lock);
		}
		if (atomic_and((int32*)lock, 0) != 1)
			panic("release_spinlock: lock %p was already released\n", lock);
#endif
#if DEBUG_SPINLOCK_LATENCIES
		test_latency(lock);
#endif
	}
}
Example #3
0
void test_rsa_cpu()
{
	printf("------------------------------------------\n");
	printf("RSA1024, CPU, random\n");
	printf("------------------------------------------\n");
	rsa_context rsa1024_cpu(1024);
	test_latency(&rsa1024_cpu);
	test_correctness(&rsa1024_cpu, 20);

	printf("------------------------------------------\n");
	printf("RSA2048, CPU, random\n");
	printf("------------------------------------------\n");
	rsa_context rsa2048_cpu(2048);
	test_latency(&rsa2048_cpu);
	test_correctness(&rsa2048_cpu, 20);

	printf("------------------------------------------\n");
	printf("RSA4096, CPU, random\n");
	printf("------------------------------------------\n");
	rsa_context rsa4096_cpu(4096);
	test_latency(&rsa4096_cpu);
	test_correctness(&rsa4096_cpu, 20);
}
Example #4
0
void test_rsa_mp_cert(unsigned num_stream)
{
	device_context dev_ctx;
	dev_ctx.init(10485760, num_stream);

	printf("------------------------------------------\n");
	printf("RSA1024, GPU (MP), server.key\n");
	printf("------------------------------------------\n");
	rsa_context_mp rsa("../../server.key", "anlab");
	rsa.set_device_context(&dev_ctx);
	//rsa.dump();
	if (num_stream == 0) {
		test_latency(&rsa);
		test_correctness(&rsa, 20);
	}
	else {
		for (unsigned int i = 1; i <= 16; i++)
			test_latency_stream(&rsa, &dev_ctx, i);
	}
}
Example #5
0
static int get_best_server(int *p_index)
{
    int     i;
    double  minimum = DBL_MAX;
    char    server[URL_LENGTH_MAX] = {0};

    for (i = 0; i < MAX_CLOSEST_SERVER_NUM; i++) {

        double latency;

        sscanf(servers[i].url, "http://%[^/]speedtest/upload.%*s", server);
        latency = test_latency(server);
        if (minimum > latency ) {

            minimum = latency;
            *p_index = i;
        }
    }
    if (minimum == DBL_MAX)
        return NOK;
    return OK;
}
Example #6
0
int main(int argc, char *argv[])
{
    int     opt, num_thread;
    char    server_url[URL_LENGTH_MAX], ext[UPLOAD_EXT_LENGTH_MAX];
    double  latency, speed, download_speed, upload_speed;
    int     dsize, sindex;

    sindex      = -1;
    num_thread  = 4;
    dsize       = INIT_DOWNLOAD_FILE_RESOLUTION;
    memset(server_url, 0, sizeof(server_url));
    memset(ext, 0, sizeof(ext));

    while ( (opt = getopt(argc, argv, "p:s:lh")) > 0) {

        switch (opt) {
            case 'p':
                if (atoi(optarg) > THREAD_NUM_MAX) {

                    fprintf(stderr, "Only support %d threads meanwhile", THREAD_NUM_MAX);
                    exit(-1);
                }
                num_thread = atoi(optarg);
                break;
            case 's':
                strncpy(server_url, optarg, URL_LENGTH_MAX);
                break;
            case 'l':
                break;
            case 'h':
                show_usage(argv);
                break;
        }
    }

    if (server_url[0] == 0) {
        printf("Retrieving speedtest.net configuration...\n");
        get_client_info(&client);
        printf("Retrieving speedtest.net server list...\n");
        get_closest_server();
        printf("Testing from %s (%s)...\n", client.isp, client.ip);
        printf("Selecting best server based on ping...\n");
        get_best_server(&sindex);
        sscanf(servers[sindex].url, "http://%[^/]/speedtest/upload.%4s", server_url, ext);
        printf("Bestest server: %s(%0.2fKM)\n", server_url, servers[sindex].distance);
    }

    /* Must initialize libcurl before any threads are started */
    curl_global_init(CURL_GLOBAL_ALL);

    latency = test_latency(server_url);
    if (latency == DBL_MAX)
        exit(-1);
    printf("Server latency is %0.0fms\n", latency);

    speed = test_download(server_url, num_thread, dsize, 0);

    dsize = get_download_filename(speed, num_thread);
    fprintf(stderr, "Testing download speed");
    download_speed = test_download(server_url, num_thread, dsize, 1);

    printf("Download speed: %0.2fMbps\n", ((download_speed*8)/(1024*1024)));

    if (ext[0] == 0 && get_upload_extension(server_url, ext) != OK)
        exit(-1);

    speed = test_upload(server_url, num_thread, speed, ext, 0);

    fprintf(stderr, "Testing upload speed");
    upload_speed = test_upload(server_url, num_thread, speed*SPEEDTEST_TIME_MAX, ext, 1);

    printf("Upload speed: %0.2fMbps\n", ((upload_speed*8)/(1024*1024)));

}