Re: ll_rw_blk.c fails to merge requests. Help!

From: Giuliano Pochini (pochini@shiny.it)
Date: Thu Aug 24 2000 - 03:06:34 EST


>> MF means: failed to merge block xxx length yyy
>> REQ: got new request entry
>> NOREQ: failed to get new request entry and go to sleep
>> ADD: block xxx length yyy added (not merged) to the queue
>
> Are you logging the _reason_ that the buffer is not being merged?

Yes, they're not merged because the are no contiguous blocks in the list.

> Also, have you looked into
> how the elevator works and when/why it deliberately doesn't merge buffers?

Yes, I think

  if (!MERGE(rq))
    ADD_NEW(rq);

is not atomic when the list is full.

>> Problems begin here: block 130972/4 cannot be merged and the list if full.
>>
>> Aug 19 22:17:21 Jay kernel: MF 130972 4
>> Aug 19 22:17:21 Jay kernel: NOREQ 130972 ---+
>
> You will only see the noreq case, when the elevator has already tried
> and merged the block (it would make no sense to block waiting for a
> free request slot, if the buffer could have been merged)

NOREQ is shoun only when it tries to add a new item to the list, but it is
full.

> and either
> found that no matches were found, or that coalescing should not be
> done because of latency considerations.

Elevator latency is not the problem in this case. (Yes, I checked it too)

Bye.
    Giuliano Pochini ->)|(<- Shiny Corporation {AS6665} ->)|(<-

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 31 2000 - 21:00:12 EST