Messages in this thread | | | Date | Thu, 24 Aug 2000 10:06:34 +0200 (CEST) | From | Giuliano Pochini <> | Subject | Re: ll_rw_blk.c fails to merge requests. Help! |
| |
>> 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/
| |