分类: LINUX
2015-01-23 17:14:02
点击(此处)折叠或打开
点击(此处)折叠或打开
点击(此处)折叠或打开
点击(此处)折叠或打开
点击(此处)折叠或打开
点击(此处)折叠或打开
humjb_19832015-01-30 09:22:13
镇水铁牛:上面说法有误,新旧内核都是有:
q->nr_requests = BLKDEV_MAX_RQ;
blk_queue_congestion_threshold(q);
不过好像新内核多了个BLK_MAX_REQUEST_COUNT ,都是做流控的。
是的,你说的是request queue的长度,这个通常会在底层驱动中设置。
我前面说的BLK_MAX_REQUEST_COUNT是per CPU的plug list的长度,确实是做流控的。
镇水铁牛2015-01-29 23:23:35
镇水铁牛:旧内核是:
q->unplug_thresh = 4; /* hmm */
q->unplug_delay = (3 * HZ) / 1000; /* 3 milliseconds */
新内核是:
q->nr_requests = BLKDEV_MAX_RQ; //这个值其实是需要修改的,SATA和SAS对这个值需求就不同。
blk_queue_congestion_threshold(q);//这里会做阈值缓冲
上面说法有误,新旧内核都是有:
q->nr_requests = BLKDEV_MAX_RQ;
blk_queue_congestion_threshold(q);
不过好像新内核多了个BLK_MAX_REQUEST_COUNT ,都是做流控的。
镇水铁牛2015-01-29 23:17:11
humjb_1983:#define BLK_MAX_REQUEST_COUNT 16
plug list的长度限制为16
旧内核是:
q->unplug_thresh = 4; /* hmm */
q->unplug_delay = (3 * HZ) / 1000; /* 3 milliseconds */
新内核是:
q->nr_requests = BLKDEV_MAX_RQ; //这个值其实是需要修改的,SATA和SAS对这个值需求就不同。
blk_queue_congestion_threshold(q);//这里会做阈值缓冲
humjb_19832015-01-29 17:20:42
镇水铁牛:request_queue定时器在2.6.27内核中,就是在blk-core.c中定义的,记得plug/unplug不仅仅有3ms限制,还有个4个request限制。
#define BLK_MAX_REQUEST_COUNT 16
plug list的长度限制为16
humjb_19832015-01-26 08:39:16
镇水铁牛:request_queue定时器在2.6.27内核中,就是在blk-core.c中定义的,记得plug/unplug不仅仅有3ms限制,还有个4个request限制。
呵呵,我们以前用的2.6.18的内核中,定时器是在scsi中间层定义,并进行错误处理的~~,现在上移了。
plug list是有长度限制的,具体我再确认下。