Re: mkfs.f2fs gets stuck with "blk_update_request: bio idx 0 >= vcnt0" on 3.8

From: Namjae Jeon
Date: Sat Apr 06 2013 - 22:46:05 EST


2013/4/7, Max Filippov <jcmvbkbc@xxxxxxxxx>:
> On Sun, Apr 7, 2013 at 4:36 AM, Namjae Jeon <linkinjeon@xxxxxxxxx> wrote:
>>
>>
>> 2013/4/6 Max Filippov <jcmvbkbc@xxxxxxxxx>
>>>
>>> Hi Namjae,
>>>
>>> On Fri, Apr 5, 2013 at 11:57 AM, Namjae Jeon <linkinjeon@xxxxxxxxx>
>>> wrote:
>>> > Hi. Max.
>>> >
>>> > I have a question.
>>> > Your mmc host driver set to host->max_discard_to by some value instead
>>> > of not zero ?
>>>
>>> I believe it's zero, because the only place where I can see it
>>> initialized
>>> (sdhci_add_host in the drivers/mmc/host/sdhci.c) is not built in my
>>> configuration.
>>>
>> -> sorry for private mail. There is confusing to me about your previous
>> mail.
>> I think that max_discard_sectors is set to 0xFFFFFFFF(UINT_MAX).
>> because mmc core set to it by UINT_MAX when host-<max_discard_to is zero.
>> So I guess it can try to be merged to over 4GB size.
>>
>> unsigned int mmc_calc_max_discard(struct mmc_card *card)
>> {
>> struct mmc_host *host = card->host;
>> unsigned int max_discard, max_trim;
>>
>> if (!host->max_discard_to)
>> return UINT_MAX; ==> It should be UINT_MAX >> 9;
>>
>> unfortunely, I don't have mmc device and card had over 4GB size.
>> So If you agree, Could you try to test after changing above code
>> UINT_MAX
>> => UINT_MAX >> 9 ?
>
> This fixes the issue too. Requests do not merge, although
> attempt_plug_merge
> returns ELEVATOR_BACK_MERGE.
Okay, Thanks for your test.
As I guess, this issue is caused from max discards setting of mmc core.
I will try to commit this patch to mmc driver.


Thanks Max.

>
> --
> Thanks.
> -- Max
>
--
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/