Exemple #1
0
void run_perf_tests(sqlfs_t *sqlfs, int testsize)
{
    int i, size;
    struct timeval tstart, tstop;
    char testfilename[PATH_MAX];
    char randomdata[testsize];
    struct fuse_file_info fi = { 0 };

    randomfilename(testfilename, PATH_MAX, "read_n_bytes");
    sqlfs_proc_write(sqlfs, testfilename, randomdata, testsize, 0, &fi);
    printf("reads without transactions ------------------------------\n");
    for (size=START_BLOCK_SIZE; size <= END_BLOCK_SIZE ; size *= 2) {
        gettimeofday(&tstart, NULL);
        for(i = 0; i < testsize / size; i++) {
            test_read_n_bytes_nosleep(sqlfs, testfilename, size);
        }
        gettimeofday(&tstop, NULL);
        printf("* read %d bytes in %d %d byte chunks in \t%f seconds\n",
               testsize, testsize / size, size, TIMING(tstart,tstop));
    }
    printf("reads with transactions ------------------------------\n");
    for (size=START_BLOCK_SIZE; size <= END_BLOCK_SIZE ; size *= 2) {
        gettimeofday(&tstart, NULL);
        sqlfs_begin_transaction(sqlfs);
        for(i = 0; i < testsize / size; i++) {
            test_read_n_bytes_nosleep(sqlfs, testfilename, size);
        }
        sqlfs_complete_transaction(sqlfs,1);
        gettimeofday(&tstop, NULL);
        printf("* read %d bytes in %d %d byte chunks in \t%f seconds\n",
               testsize, testsize / size, size, TIMING(tstart,tstop));
    }
    printf("writes without transactions ------------------------------\n");
    for (size=START_BLOCK_SIZE; size <= END_BLOCK_SIZE ; size *= 2) {
        gettimeofday(&tstart, NULL);
        for(i = 0; i < testsize / size; i++) {
            test_write_n_bytes_nosleep(sqlfs, size);
        }
        gettimeofday(&tstop, NULL);
        printf("* wrote %d bytes in %d %d byte chunks in \t%f seconds\n",
               testsize, testsize / size, size, TIMING(tstart,tstop));
    }
    printf("writes with transactions ------------------------------\n");
    for (size=START_BLOCK_SIZE; size <= END_BLOCK_SIZE ; size *= 2) {
        gettimeofday(&tstart, NULL);
        sqlfs_begin_transaction(sqlfs);
        for(i = 0; i < testsize / size; i++) {
            test_write_n_bytes_nosleep(sqlfs, size);
        }
        sqlfs_complete_transaction(sqlfs,1);
        gettimeofday(&tstop, NULL);
        printf("* wrote %d bytes in %d %d byte chunks in \t%f seconds\n",
               testsize, testsize / size, size, TIMING(tstart,tstop));
    }
}
Exemple #2
0
void * video_hw_init(void) {
    //register GraphicDevice *pGD = (GraphicDevice *)&smi;
    struct panel_config pcfg;
/*    int hsw=0, hfp=0, hbp=0;
    int vsw=0, vfp=0, vbp=0;
    int lclk = 1, pclk=2, pol_flags = 0;
    int acbi = 0, acb = 0;*/
	int bpp = 0;
	struct ctfb_res_modes *res_mode;
	struct ctfb_res_modes var_mode;
        char * penv;
	pre_setup_video_env();
	if (NULL == (penv = getenv("ub_vid"))) return NULL;

	res_mode = (struct ctfb_res_modes *) &var_mode;
	bpp = video_get_params (res_mode, penv);

	smi.winSizeX = res_mode->xres;
	smi.winSizeY = res_mode->yres;
	smi.plnSizeX = res_mode->xres;
	smi.plnSizeY = res_mode->yres;

        smi.gdfBytesPP = bpp;
        if (2 == bpp) smi.gdfIndex = GDF_16BIT_565RGB;
        else if (1 == bpp) smi.gdfIndex = GDF__8BIT_332RGB;
        pcfg.panel_type = res_mode->vmode&1;

    pcfg.timing_h = TIMING(res_mode->hsync_len, res_mode->left_margin, res_mode->right_margin); //hsw, hfp, hbp);
    pcfg.timing_v = TIMING(res_mode->vsync_len, res_mode->upper_margin, res_mode->lower_margin); //vsw, vfp, vbp);
    pcfg.data_lines = 3;
    pcfg.lcd_size   = SIZE(smi.winSizeX, smi.winSizeY);
    pcfg.load_mode  = 0; //0x00000204 >> FRAME_MODE_SHIFT;
    smi.frameAdrs = LCD_VIDEO_ADDR;
    smi.memSize = smi.winSizeX * smi.winSizeY * smi.gdfBytesPP;
    pcfg.panel_color= 0;
    pcfg.divisor    = DIV(res_mode->pixclock >> 8, res_mode->pixclock & 0xff); //lclk, pclk);
    pcfg.pol_freq   = omapdss_set_pol_freq(res_mode->vmode >>1, res_mode->sync >> 8, res_mode->sync & 0xff); //pol_flags, acbi, acb); // 0, 0); //0x30000;
    //printf("Done w/ lcd init\n");
        /*if (!panel_cfg->panel_type)
	    pcfg.gfx_attrib = GFX_BURST(2) | GFX_FMT(RGB_16) //GFX_FMT(BMP_8) 
                    | GFX_EN;
        else*/
	    pcfg.gfx_attrib = GFX_BURST(2) | GFX_FMT(RGB_16) | GFX_EN;
    vidmem_clear(smi.frameAdrs, smi.winSizeX, smi.winSizeY, smi.gdfBytesPP);
    omap3_dss_panel_config(&pcfg);
    omap3_dss_enable();

    return ((void*)&smi);
}
Exemple #3
0
PyObject *
get_standard_timings(struct vbe_edid1_info *edid)
{
	PyObject *timings[8];
	int i, j;

	for(i = j = 0; j < 8; j++) {
		double aspect = 1;
		unsigned int x, y;
		unsigned char xres, vfreq;
		xres = edid->standard_timing[j].xresolution;
		vfreq = edid->standard_timing[j].vfreq;
		if((xres != vfreq) ||
		   ((xres != 0) && (xres != 1)) ||
		   ((vfreq != 0) && (vfreq != 1))) {
			switch(edid->standard_timing[j].aspect) {
				case 0: aspect = 0.625; break; /*undefined*/
				case 1: aspect = 0.750; break;
				case 2: aspect = 0.800; break;
				case 3: aspect = 0.5625; break;
			}
			x = xres * 8 + 248;
			y = x * aspect;
			timings[i++] = TIMING(x, y, (vfreq & 0x3f) + 60);
		}
	}
	
	PyObject *standard_timings = PyTuple_New(i);
	for (j = 0; j < i; j++)
		PyTuple_SetItem(standard_timings, j, timings[j]);

	return standard_timings;
}
Exemple #4
0
PyObject *
get_established_timings(struct vbe_edid1_info *edid)
{
	PyObject *timings[16];
	int i = 0, j;

	if(edid->established_timings.timing_720x400_70)
		timings[i++] = TIMING(720, 400, 70);
	if(edid->established_timings.timing_720x400_88)
		timings[i++] = TIMING(720, 400, 88);
	if(edid->established_timings.timing_640x480_60)
		timings[i++] = TIMING(640, 480, 60);
	if(edid->established_timings.timing_640x480_67)
		timings[i++] = TIMING(640, 480, 67);
	if(edid->established_timings.timing_640x480_72)
		timings[i++] = TIMING(640, 480, 72);
	if(edid->established_timings.timing_640x480_75)
		timings[i++] = TIMING(640, 480, 75);
	if(edid->established_timings.timing_800x600_56)
		timings[i++] = TIMING(800, 600, 56);
	if(edid->established_timings.timing_800x600_60)
		timings[i++] = TIMING(800, 600, 60);
	if(edid->established_timings.timing_800x600_72)
		timings[i++] = TIMING(800, 600, 72);
	if(edid->established_timings.timing_800x600_75)
		timings[i++] = TIMING(800, 600, 75);
	if(edid->established_timings.timing_832x624_75)
		timings[i++] = TIMING(832, 624, 75);
	/*if(edid->established_timings.timing_1024x768_87i)
		timings[i++] = "1024x768@87i";*/
	if(edid->established_timings.timing_1024x768_60)
		timings[i++] = TIMING(1024, 768, 60);
	if(edid->established_timings.timing_1024x768_70)
		timings[i++] = TIMING(1024, 768, 70);
	if(edid->established_timings.timing_1024x768_75)
		timings[i++] = TIMING(1024, 768, 75);
	if(edid->established_timings.timing_1280x1024_75)
		timings[i++] = TIMING(1280, 1024, 75);

	PyObject *established_timings = PyTuple_New(i);
	for (j = 0; j < i; j++)
		PyTuple_SetItem(established_timings, j, timings[j]);

	return established_timings;
}