tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: panic: biodone2 already
On Fri, Aug 10, 2018 at 06:55:46AM -0000, Michael van Elst wrote:
> a queued operation eventually returns with a call to xbd_handler.
> - for every buffer returned, dk_done is called which finally ends
> in invoking biodone.
After adding debug statements, I can now tel the offending buf_t
is queued once, but xbd_handler finds it hundred of times in
response queue here:
for (i = sc->sc_ring.rsp_cons; i != resp_prod; i++) {
blkif_response_t *rep = RING_GET_RESPONSE(&sc->sc_ring, i);
struct xbd_req *xbdreq = &sc->sc_reqs[rep->id];
bp = xbdreq->req_bp;
It decides to call dk_done for the last occurence and return. Next
call to xbd_handler finds the same offending buf_t leading the queue.
dk_done is called again, leading to the panic.
Where should I look for the code whrere the receive ring is populated in
the dom0?
--
Emmanuel Dreyfus
manu%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index