您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ rq_set_fifo_time函数代码示例

51自学网 2021-06-02 11:56:31
  C++
这篇教程C++ rq_set_fifo_time函数代码示例写得很实用,希望能帮到您。

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

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

示例1: zen_merged_requests

static voidzen_merged_requests(struct request_queue *q, struct request *req,                    struct request *next){	/*	 * if next expires before rq, assign its expire time to arq	 * and move into next position (next will be deleted) in fifo	 */	if (!list_empty(&req->queuelist) && !list_empty(&next->queuelist)) {		if (time_before(rq_fifo_time(next), rq_fifo_time(req))) {			list_move(&req->queuelist, &next->queuelist);			rq_set_fifo_time(req, rq_fifo_time(next));		}	}	/* next request is gone */	rq_fifo_clear(next);}
开发者ID:Minia89,项目名称:DORIMANX_LG_STOCK_LP_KERNEL,代码行数:18,


示例2: flash_merged_requests

/*    This function does 3 tasks:   1 check if next expires before req, is so set expire time of req to be the expire time of next   2 delete next from async fifo queue   3 check if merged req size >= bundle_size; if so, delete req from async fifo queue, reinit and insert it to bundle queue */static voidflash_merged_requests(struct request_queue *q, struct request *req,			 struct request *next){	struct flash_data *fd = q->elevator->elevator_data;	// const int data_type = !rq_is_sync(req);	// FIXME:	const int data_type = rq_data_dir(req);	/*	 * if next expires before rq, assign its expire time to rq	 * and move into next position (next will be deleted) in fifo	 */	// TODO: why need to check if async queue is empty here?	if (!list_empty(&req->queuelist) && !list_empty(&next->queuelist)) {		if (time_before(rq_fifo_time(next), rq_fifo_time(req))) {			list_move(&req->queuelist, &next->queuelist);			rq_set_fifo_time(req, rq_fifo_time(next));		}	}	/* delete next */	rq_fifo_clear(next);		/* task 3 only kick into bundle queue if req is async */	if(req->__data_len >= fd->bundle_size && data_type == 1)	{		/* did both delete and init */		rq_fifo_clear(req); 		list_add_tail(&req->queuelist, &fd->bundle_list);				#ifdef DEBUG_FLASH		printk("req of type %d of size %d is inserted to bundle queue/n", data_type, req->__data_len);		#endif	}}
开发者ID:luyao-jiang,项目名称:scheduler,代码行数:43,


示例3: row_add_request

/* * row_add_request() - Add request to the scheduler * @q:	requests queue * @rq:	request to add * */static void row_add_request(struct request_queue *q,			    struct request *rq){	struct row_data *rd = (struct row_data *)q->elevator->elevator_data;	struct row_queue *rqueue = RQ_ROWQ(rq);	s64 diff_ms;	bool queue_was_empty = list_empty(&rqueue->fifo);	list_add_tail(&rq->queuelist, &rqueue->fifo);	rd->nr_reqs[rq_data_dir(rq)]++;	rqueue->nr_req++;	rq_set_fifo_time(rq, jiffies); /* for statistics*/	if (rq->cmd_flags & REQ_URGENT) {		WARN_ON(1);		blk_dump_rq_flags(rq, "");		rq->cmd_flags &= ~REQ_URGENT;	}	if (row_queues_def[rqueue->prio].idling_enabled) {		if (rd->rd_idle_data.idling_queue_idx == rqueue->prio &&		    hrtimer_active(&rd->rd_idle_data.hr_timer)) {			if (hrtimer_try_to_cancel(				&rd->rd_idle_data.hr_timer) >= 0) {				row_log_rowq(rd, rqueue->prio,				    "Canceled delayed work on %d",				    rd->rd_idle_data.idling_queue_idx);				rd->rd_idle_data.idling_queue_idx =					ROWQ_MAX_PRIO;			}		}		diff_ms = ktime_to_ms(ktime_sub(ktime_get(),				rqueue->idle_data.last_insert_time));		if (unlikely(diff_ms < 0)) {			pr_err("%s(): time delta error: diff_ms < 0",				__func__);			rqueue->idle_data.begin_idling = false;			return;		}		if (diff_ms < rd->rd_idle_data.freq_ms) {			rqueue->idle_data.begin_idling = true;			row_log_rowq(rd, rqueue->prio, "Enable idling");		} else {			rqueue->idle_data.begin_idling = false;			row_log_rowq(rd, rqueue->prio, "Disable idling (%ldms)",				(long)diff_ms);		}		rqueue->idle_data.last_insert_time = ktime_get();	}	if (row_queues_def[rqueue->prio].is_urgent &&	    !rd->pending_urgent_rq && !rd->urgent_in_flight) {		/* Handle High Priority queues */		if (rqueue->prio < ROWQ_REG_PRIO_IDX &&		    rd->last_served_ioprio_class != IOPRIO_CLASS_RT &&		    queue_was_empty) {			row_log_rowq(rd, rqueue->prio,				"added (high prio) urgent request");			rq->cmd_flags |= REQ_URGENT;			rd->pending_urgent_rq = rq;		} else  if (row_rowq_unserved(rd, rqueue->prio)) {			/* Handle Regular priotity queues */			row_log_rowq(rd, rqueue->prio,				"added urgent request (total on queue=%d)",				rqueue->nr_req);			rq->cmd_flags |= REQ_URGENT;			rd->pending_urgent_rq = rq;		}	} else		row_log_rowq(rd, rqueue->prio,			"added request (total on queue=%d)", rqueue->nr_req);}
开发者ID:duki994,项目名称:G900H_LP_Kernel,代码行数:78,



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


C++ rr函数代码示例
C++ rq_of_rt_rq函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。