Re: Multi-partition block layer behaviour
From: Tiju Jacob
Date: Mon Oct 31 2011 - 06:21:07 EST
>> ok, thanks. So this means the elevator is switching in the test. How
>> about below patch:
>>
>> diff --git a/block/elevator.c b/block/elevator.c
>> index a3b64bc..e14824a 100644
>> --- a/block/elevator.c
>> +++ b/block/elevator.c
>> @@ -683,8 +683,13 @@ void __elv_add_request(struct request_queue *q, struct request *rq, int where)
>> * - Usually, back inserted requests won't be merged
>> * with anything. There's no point in delaying queue
>> * processing.
>> + * If elevator is switching, doesn't need run the queue.
>> + * elevator switching will run it anyway. And this could
>> + * cause warning since the code might run in atomic
>> + * environment(blk_flush_plug_list() callbed in schedule())
>> */
>> - __blk_run_queue(q);
>> + if (!test_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags))
>> + __blk_run_queue(q);
>> break;
>>
>> case ELEVATOR_INSERT_SORT_MERGE:
>>
>>
> oh, wait. We should have no this issue with latest kernel, because
> blk_schedule_flush_plug is moved out of schedule atomic environment. please
> try a latest kernel, for example, 3.1.
>
Even after applying the above patch, I am getting the same error. We
have to use the linux 3.0.* kernel series. So is there a fix for the
3.0 series?
We'll defenetly check with the 3.1 kernel and let know.
Thanks,
--TJ
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/