Displaying 3 results from an estimated 3 matches for "queue_max_hw_sectors".
2010 Sep 02
2
blk_rq_check_limits errors
...oot cause? Many thanks in advance.
linux/block/blk-core.c
int blk_rq_check_limits(struct request_queue *q, struct request *rq)
{
if (rq->cmd_flags & REQ_DISCARD)
return 0;
if (blk_rq_sectors(rq) > queue_max_sectors(q) ||
blk_rq_bytes(rq) > queue_max_hw_sectors(q) << 9) {
printk(KERN_ERR "%s: over max size limit.\n", __func__);
return -EIO;
}
I haven''t seen that before, but if I should guess, I would guess that dm-* has
a larger queue than your underlying block device. If that is with you...
2012 Apr 20
1
[PATCH] multiqueue: a hodge podge of things
...merge_fn(struct request_queue *q, struct request *req,
+int ll_back_merge_fn(struct blk_queue_ctx *ctx, struct request *req,
struct bio *bio)
{
+ struct request_queue *q = ctx->queue;
unsigned short max_sectors;
if (unlikely(req->cmd_type == REQ_TYPE_BLOCK_PC))
max_sectors = queue_max_hw_sectors(q);
else
max_sectors = queue_max_sectors(q);
if (blk_rq_sectors(req) + bio_sectors(bio) > max_sectors) {
req->cmd_flags |= REQ_NOMERGE;
- if (req == q->last_merge)
- q->last_merge = NULL;
+ if (req == ctx->last_merge)
+ ctx->last_merge = NULL;
return 0;
}...
2012 Apr 20
1
[PATCH] multiqueue: a hodge podge of things
...merge_fn(struct request_queue *q, struct request *req,
+int ll_back_merge_fn(struct blk_queue_ctx *ctx, struct request *req,
struct bio *bio)
{
+ struct request_queue *q = ctx->queue;
unsigned short max_sectors;
if (unlikely(req->cmd_type == REQ_TYPE_BLOCK_PC))
max_sectors = queue_max_hw_sectors(q);
else
max_sectors = queue_max_sectors(q);
if (blk_rq_sectors(req) + bio_sectors(bio) > max_sectors) {
req->cmd_flags |= REQ_NOMERGE;
- if (req == q->last_merge)
- q->last_merge = NULL;
+ if (req == ctx->last_merge)
+ ctx->last_merge = NULL;
return 0;
}...