• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ cpu_clock函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中cpu_clock函数的典型用法代码示例。如果您正苦于以下问题:C++ cpu_clock函数的具体用法?C++ cpu_clock怎么用?C++ cpu_clock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了cpu_clock函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: cp_to_ap_irq_handle

static irqreturn_t cp_to_ap_irq_handle(int irq, void *handle)
{
	struct ipc_spi_dev *dev = (struct ipc_spi_dev*)handle;

	if(cp2ap_sts())
	{
		//irq_set_irq_type( irq,  IRQF_TRIGGER_LOW);
		dev->rx_ctl = CP2AP_RASING;
		dev->bneedrcv = true;
		/* just for debug */
		dev->cp2ap[dev->irq_num % 100].status = 1;
		dev->cp2ap[dev->irq_num % 100].time = cpu_clock(0);
	}
	else
	{
		//irq_set_irq_type( irq,  IRQF_TRIGGER_HIGH);
		dev->rx_ctl = CP2AP_FALLING;
		dev->bneedrcv = false;
		/* just for debug */
		dev->cp2ap[dev->irq_num % 100].status = 0;
		dev->cp2ap[dev->irq_num % 100].time = cpu_clock(0);
	}
	dev->irq_num++;
	wake_up(&(dev->wait));
	return IRQ_HANDLED;
}
开发者ID:buenajuan300,项目名称:android_kernel_samsung_kanas3gxx,代码行数:26,代码来源:spi_gpio_ctrl.c


示例2: fastlogo_devices_vpp_isr

static irqreturn_t fastlogo_devices_vpp_isr(int irq, void *dev_id)
{
    int instat;
    HDL_semaphore *pSemHandle;
    u64 cpcb0_isr_time_current;

    ++fastlogo_ctx.count;
    logo_isr_count++;

    cpcb0_isr_time_current = cpu_clock(smp_processor_id());
    last_isr_interval = (unsigned) (cpcb0_isr_time_current - last_isr_time);
    last_isr_time = cpcb0_isr_time_current;

#if LOGO_TIME_PROFILE
    {
        u64 curr_interval;
        if (cpcb0_isr_time_previous) {
            curr_interval = cpcb0_isr_time_current - cpcb0_isr_time_previous;
            if (logo_tp_count < LOGO_TP_MAX_COUNT)
                lat[logo_tp_count++] = curr_interval;
        }
        cpcb0_isr_time_previous = cpcb0_isr_time_current;
    }
#endif

    /* VPP interrupt handling  */
    pSemHandle = dhub_semaphore(&VPP_dhubHandle.dhub);
    instat = semaphore_chk_full(pSemHandle, -1);

    if (bTST(instat, avioDhubSemMap_vpp_vppCPCB0_intr)) {
        /* our CPCB interrupt */
        /* clear interrupt */
        semaphore_pop(pSemHandle, avioDhubSemMap_vpp_vppCPCB0_intr, 1);
        semaphore_clr_full(pSemHandle, avioDhubSemMap_vpp_vppCPCB0_intr);

		if(logo_isr_count > 1)
		{
			THINVPP_CPCB_ISR_service(thinvpp_obj, CPCB_1);
		}
    }

#if LOGO_TIME_PROFILE
    if (logo_tp_count) {
        u64 curr_interval = cpu_clock(0) - cpcb0_isr_time_current;
        if ((logo_tp_count-1) < LOGO_TP_MAX_COUNT)
            lat2[logo_tp_count-1] = curr_interval;
    }
#endif

    return IRQ_HANDLED;
}
开发者ID:krysanto,项目名称:steamlink-sdk,代码行数:51,代码来源:fastlogo_driver.c


示例3: handle_IRQ

/*
 * handle_IRQ handles all hardware IRQ's.  Decoded IRQs should
 * not come via this function.  Instead, they should provide their
 * own 'handler'.  Used by platform code implementing C-based 1st
 * level decoding.
 */
void handle_IRQ(unsigned int irq, struct pt_regs *regs)
{
	struct pt_regs *old_regs = set_irq_regs(regs);

#ifdef CONFIG_SEC_DEBUG
	int cpu = smp_processor_id();
	unsigned long long start_time = cpu_clock(cpu);
#endif

	perf_mon_interrupt_in();
	irq_enter();

	/*
	 * Some hardware gives randomly wrong interrupts.  Rather
	 * than crashing, do something sensible.
	 */
	if (unlikely(irq >= nr_irqs)) {
		if (printk_ratelimit())
			printk(KERN_WARNING "Bad IRQ%u\n", irq);
		ack_bad_irq(irq);
	} else {
		generic_handle_irq(irq);
	}

	/* AT91 specific workaround */
	irq_finish(irq);

	irq_exit();
#ifdef CONFIG_SEC_DEBUG
	sec_debug_irq_enterexit_log(irq, start_time);
#endif

	set_irq_regs(old_regs);
	perf_mon_interrupt_out();
}
开发者ID:Lord-Devices,项目名称:cm_kernel_samsung_hlte,代码行数:41,代码来源:irq.c


示例4: __sec_debug_task_sched_log

void __sec_debug_task_sched_log(int cpu, struct task_struct *task,
						char *msg)
{
	unsigned i;

	if (!secdbg_log)
		return;

	if (!task && !msg)
		return;

	i = atomic_inc_return(&(secdbg_log->idx_sched[cpu]))
		& (SCHED_LOG_MAX - 1);
	secdbg_log->sched[cpu][i].time = cpu_clock(cpu);
	if (task) {
		strlcpy(secdbg_log->sched[cpu][i].comm, task->comm,
			sizeof(secdbg_log->sched[cpu][i].comm));
		secdbg_log->sched[cpu][i].pid = task->pid;
		secdbg_log->sched[cpu][i].pTask = task;
	} else {
		strlcpy(secdbg_log->sched[cpu][i].comm, msg,
			sizeof(secdbg_log->sched[cpu][i].comm));
		secdbg_log->sched[cpu][i].pid = -1;
		secdbg_log->sched[cpu][i].pTask = NULL;
	}
}
开发者ID:DaMadOne,项目名称:android_kernel_samsung_msm8976,代码行数:26,代码来源:sec_debug.c


示例5: trace_clock_global

u64 notrace trace_clock_global(void)
{
	unsigned long flags;
	int this_cpu;
	u64 now;

	local_irq_save(flags);

	this_cpu = raw_smp_processor_id();
	now = cpu_clock(this_cpu);
	if (unlikely(in_nmi()))
		goto out;

	arch_spin_lock(&trace_clock_struct.lock);

	if ((s64)(now - trace_clock_struct.prev_time) < 0)
		now = trace_clock_struct.prev_time + 1;

	trace_clock_struct.prev_time = now;

	arch_spin_unlock(&trace_clock_struct.lock);

 out:
	local_irq_restore(flags);

	return now;
}
开发者ID:Ca1ne,项目名称:Enoch316,代码行数:27,代码来源:trace_clock.c


示例6: ged_monitor_3D_fence_add

GED_ERROR ged_monitor_3D_fence_add(int fence_fd)
{
    int err;
    GED_MONITOR_3D_FENCE* psMonitor;

    psMonitor = (GED_MONITOR_3D_FENCE*)ged_alloc(sizeof(GED_MONITOR_3D_FENCE));
    if (!psMonitor)
    {
        return GED_ERROR_OOM;
    }

    sync_fence_waiter_init(&psMonitor->sSyncWaiter, ged_sync_cb);
    INIT_WORK(&psMonitor->sWork, ged_monitor_3D_fence_work_cb);
    psMonitor->psSyncFence = sync_fence_fdget(fence_fd);
    if (NULL == psMonitor->psSyncFence)
    {
        ged_free(psMonitor, sizeof(GED_MONITOR_3D_FENCE));
        return GED_ERROR_INVALID_PARAMS;
    }

    err = sync_fence_wait_async(psMonitor->psSyncFence, &psMonitor->sSyncWaiter);

    if ((1 == err) || (0 > err))
    {
        sync_fence_put(psMonitor->psSyncFence);
        ged_free(psMonitor, sizeof(GED_MONITOR_3D_FENCE));
    }
    else if (0 == err)
    {
        int iCount = atomic_add_return(1, &g_i32Count);
        if (iCount > 1)
        {
            if (0 == ged_monitor_3D_fence_disable)
            {
                //unsigned int uiFreqLevelID;
                //if (mtk_get_bottom_gpu_freq(&uiFreqLevelID))
                {
                    //if (uiFreqLevelID != 4)
                    {
#ifdef CONFIG_GPU_TRACEPOINTS
                        if (ged_monitor_3D_fence_systrace)
                        {
                            unsigned long long t = cpu_clock(smp_processor_id());
                            trace_gpu_sched_switch("Smart Boost", t, 1, 0, 1);
                        }
#endif
                        mtk_set_bottom_gpu_freq(4);
                    }
                }
            }
        }
    }

    if (ged_monitor_3D_fence_debug > 0)
    {
        GED_LOGI("[+]3D fences count = %d\n", atomic_read(&g_i32Count));
    }

    return GED_OK;
}
开发者ID:Jlsmily,项目名称:android_kernel_meilan2,代码行数:60,代码来源:ged_monitor_3D_fence.c


示例7: ged_monitor_3D_fence_work_cb

static void ged_monitor_3D_fence_work_cb(struct work_struct *psWork)
{
	GED_MONITOR_3D_FENCE *psMonitor;

    if (atomic_sub_return(1, &g_i32Count) < 1)
    {
        if (0 == ged_monitor_3D_fence_disable)
        {
            //unsigned int uiFreqLevelID;
            //if (mtk_get_bottom_gpu_freq(&uiFreqLevelID))
            {
                //if (uiFreqLevelID > 0)
                {
                    mtk_set_bottom_gpu_freq(0);
#ifdef CONFIG_GPU_TRACEPOINTS
                    if (ged_monitor_3D_fence_systrace)
                    {
                        unsigned long long t = cpu_clock(smp_processor_id());
                        trace_gpu_sched_switch("Smart Boost", t, 0, 0, 1);
                    }
#endif
                }
            }
        }
    }

    if (ged_monitor_3D_fence_debug > 0)
    {
        GED_LOGI("[-]3D fences count = %d\n", atomic_read(&g_i32Count));
    }

	psMonitor = GED_CONTAINER_OF(psWork, GED_MONITOR_3D_FENCE, sWork);
    sync_fence_put(psMonitor->psSyncFence);
    ged_free(psMonitor, sizeof(GED_MONITOR_3D_FENCE));
}
开发者ID:Jlsmily,项目名称:android_kernel_meilan2,代码行数:35,代码来源:ged_monitor_3D_fence.c


示例8: _enqueue

static inline
void _enqueue(struct aio_threadinfo *tinfo, struct aio_mref_aspect *mref_a, int prio, bool at_end)
{
	unsigned long flags;
#if 1
	prio++;
	if (unlikely(prio < 0)) {
		prio = 0;
	} else if (unlikely(prio >= MARS_PRIO_NR)) {
		prio = MARS_PRIO_NR - 1;
	}
#else
	prio = 0;
#endif

	mref_a->enqueue_stamp = cpu_clock(raw_smp_processor_id());

	traced_lock(&tinfo->lock, flags);

	if (at_end) {
		list_add_tail(&mref_a->io_head, &tinfo->mref_list[prio]);
	} else {
		list_add(&mref_a->io_head, &tinfo->mref_list[prio]);
	}
	tinfo->queued[prio]++;
	atomic_inc(&tinfo->queued_sum);

	traced_unlock(&tinfo->lock, flags);

	atomic_inc(&tinfo->total_enqueue_count);

	wake_up_interruptible_all(&tinfo->event);
}
开发者ID:ZyanKLee,项目名称:mars,代码行数:33,代码来源:mars_aio.c


示例9: wq_get_sample

void wq_get_sample(struct work_struct *work)
{
	int cpu;
	unsigned long long stamp;
	unsigned int value[11];
	//rnd_num[0]: Total High, rnd_num[1]: Total Low
	//rnd_num[2]: Good Duration, rnd_num[3]: Bad Duration
	unsigned char rnd_num[4];

	get_random_bytes(rnd_num, 4);

	cpu = smp_processor_id();
	stamp = cpu_clock(cpu);

	value[0] = rnd_num[0] + rnd_num[1];		//Total Time
	value[1] = rnd_num[0];					//Total High Time
	value[2] = rnd_num[0]/10;				//Longest High Time
	value[3] = rnd_num[2] + rnd_num[3];		//Count of Low to High
	value[4] = rnd_num[2];					//Count of Good Duration
	value[5] = 0;
	value[6] = 0;
	value[7] = 0;
	value[8] = 0;
	value[9] = (value[1]*100)/value[0];		//Total High Percentage
	value[10] = (value[2]*100)/value[0];	//Longest High Percentage
	mt_dcm(stamp, 11, value);
}
开发者ID:Lesozav25,项目名称:ALPS.KK1.MP7.V1_BIRD72_CWET_A_KK_KERNEL,代码行数:27,代码来源:met_dcm.c


示例10: trac_logs

void trac_logs(char *s)
{
	unsigned long long t;
    unsigned long nanosec_rem;
    t = cpu_clock(UINT_MAX);
    nanosec_rem = do_div(t, 1000000000);
	ptrac_buf += sprintf(ptrac_buf,"[%5lu.%06lu] %s\n",(unsigned long) t, nanosec_rem / 1000,s);
}
开发者ID:Ciastex,项目名称:kernel_rk3168_86v_yk,代码行数:8,代码来源:rknand_base_ko.c


示例11: mars_trace

void mars_trace(struct mref_object *mref, const char *info)
{
	int index = mref->ref_traces;
	if (likely(index < MAX_TRACES)) {
		mref->ref_trace_stamp[index] = cpu_clock(raw_smp_processor_id());
		mref->ref_trace_info[index] = info;
		mref->ref_traces++;
	}
}
开发者ID:grpomega,项目名称:mars,代码行数:9,代码来源:mars_generic.c


示例12: shrink_set

static int shrink_set(const char *arg, const struct kernel_param *kp)
{
	int cpu = smp_processor_id();
	unsigned long long t1, t2;
	int total_pages, available_pages;

	param_set_bool(arg, kp);

	if (shrink_pp) {
		t1 = cpu_clock(cpu);
		shrink_page_pools(&total_pages, &available_pages);
		t2 = cpu_clock(cpu);
		pr_info("shrink page pools: time=%lldns, "
			"total_pages_released=%d, free_pages_available=%d",
			t2-t1, total_pages, available_pages);
	}
	return 0;
}
开发者ID:HuChundong,项目名称:Endeavor3.1.10,代码行数:18,代码来源:nvmap_handle.c


示例13: dag_wait_period

/**
 * wait until the next period.
 */
static void dag_wait_period(resch_task_t *rt)
{
    struct timespec ts_period;
    if (rt->release_time > jiffies) {
        jiffies_to_timespec(rt->release_time - jiffies, &ts_period);
    }
    else {
        ts_period.tv_sec = 0;
        ts_period.tv_nsec = 0;
    }

    if (rt->task->dl.flags & SCHED_EXHAUSTIVE) {
        rt->task->dl.deadline = cpu_clock(smp_processor_id());
    }
    sched_wait_interval(!TIMER_ABSTIME, &ts_period, NULL);
    rt->dl_sched_release_time = cpu_clock(smp_processor_id());

}
开发者ID:gakky1667,项目名称:linux-rtx,代码行数:21,代码来源:sched_deadline_dag.c


示例14: MTTLOG_GetTime

/**
 *	read CPU time
 *	@return	unsigned int		CPU time in millisecond
 **/
unsigned int MTTLOG_GetTime(void)
{
	unsigned long long t;

	t = cpu_clock(0);
	do_div(t, 1000000);

	return (unsigned long)t;
}
开发者ID:Alonso1398,项目名称:android_kernel_samsung_coriplus,代码行数:13,代码来源:bcmmtt.c


示例15: ged_get_time

unsigned long long ged_get_time()
{
	unsigned long long temp;

	preempt_disable();
	temp = cpu_clock(smp_processor_id());
	preempt_enable();

	return temp;
}
开发者ID:John677,项目名称:Kernal_k3note,代码行数:10,代码来源:ged_base.c


示例16: MTKPP_PrintTime

static int MTKPP_PrintTime(char *buf, int n)
{
	/* copy & modify from ./kernel/printk.c */
	unsigned long long t;
	unsigned long nanosec_rem;

	t = cpu_clock(smp_processor_id());
	nanosec_rem = do_div(t, 1000000000);
	
	return snprintf(buf, n, "[%5lu.%06lu] ", (unsigned long) t, nanosec_rem / 1000);
}
开发者ID:4Fwolf,项目名称:motorola-hawk-kernel-3.4.67,代码行数:11,代码来源:mtk_pp.c


示例17: trac_log

void trac_log(long lba,int len,int *pbuf,int mod)
{
	unsigned long long t;
    unsigned long nanosec_rem;
    t = cpu_clock(UINT_MAX);
    nanosec_rem = do_div(t, 1000000000);
    if(mod)
        ptrac_buf += sprintf(ptrac_buf,"[%5lu.%06lu] W %d %d %8x %8x\n",(unsigned long) t, nanosec_rem / 1000,lba,len,pbuf[0],pbuf[1]);
    else
        ptrac_buf += sprintf(ptrac_buf,"[%5lu.%06lu] R %d %d %8x %8x\n",(unsigned long) t, nanosec_rem / 1000,lba,len,pbuf[0],pbuf[1]);
}
开发者ID:Ciastex,项目名称:kernel_rk3168_86v_yk,代码行数:11,代码来源:rknand_base_ko.c


示例18: __sprd_debug_task_log

void __sprd_debug_task_log(int cpu, struct task_struct *task)
{
	unsigned i;

	i = atomic_inc_return(&task_log_idx[cpu]) &
	    (ARRAY_SIZE(psprd_debug_log->task[0]) - 1);
	psprd_debug_log->task[cpu][i].time = cpu_clock(cpu);
#ifdef CP_DEBUG
	psprd_debug_log->task[cpu][i].sys_cnt = get_sys_cnt();
#endif
	strcpy(psprd_debug_log->task[cpu][i].comm, task->comm);
	psprd_debug_log->task[cpu][i].pid = task->pid;
}
开发者ID:ShinySide,项目名称:SM-G361H,代码行数:13,代码来源:sprd_debug.c


示例19: sec_debug_dcvs_log

void sec_debug_dcvs_log(int cpu_no, unsigned int prev_freq,
						unsigned int new_freq)
{
	unsigned int i;
	if (!secdbg_log)
		return;

	i = atomic_inc_return(&(secdbg_log->dcvs_log_idx[cpu_no]))
		& (DCVS_LOG_MAX - 1);
	secdbg_log->dcvs_log[cpu_no][i].cpu_no = cpu_no;
	secdbg_log->dcvs_log[cpu_no][i].prev_freq = prev_freq;
	secdbg_log->dcvs_log[cpu_no][i].new_freq = new_freq;
	secdbg_log->dcvs_log[cpu_no][i].time = cpu_clock(cpu_no);
}
开发者ID:DaMadOne,项目名称:android_kernel_samsung_msm8976,代码行数:14,代码来源:sec_debug.c


示例20: __sprd_debug_irq_log

void __sprd_debug_irq_log(unsigned int irq, void *fn, int en)
{
	int cpu = raw_smp_processor_id();
	unsigned i;

	i = atomic_inc_return(&irq_log_idx[cpu]) &
	    (ARRAY_SIZE(psprd_debug_log->irq[0]) - 1);
	psprd_debug_log->irq[cpu][i].time = cpu_clock(cpu);
#ifdef CP_DEBUG
	psprd_debug_log->irq[cpu][i].sys_cnt = get_sys_cnt();
#endif
	psprd_debug_log->irq[cpu][i].irq = irq;
	psprd_debug_log->irq[cpu][i].fn = (void *)fn;
	psprd_debug_log->irq[cpu][i].en = en;
}
开发者ID:ShinySide,项目名称:SM-G361H,代码行数:15,代码来源:sprd_debug.c



注:本文中的cpu_clock函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ cpu_context函数代码示例发布时间:2022-05-30
下一篇:
C++ cpu_clear函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap