[PARPORT] Re: New queueing code

From: Andrea Arcangeli (andrea@suse.de)
Date: Sun Apr 02 2000 - 20:01:19 EDT

  • Next message: Andrea Arcangeli: "[PARPORT] Re: New queueing code"

    This time I looked into paride and I found out at least one major problem.
    paride is trying to do a racy by-hand colescing to improve performance by
    processing more than one request at once (so accessing not only the head
    of the queue but also the following queued requests). This has to be
    fixed also in 2.2.x.

    Only the _head_ of the queue (the queue_head.next request) is supposed to
    remains unchanged by the highlevel layer (while the device is unplugged),
    all other requests in the queue can change under the lowlevel layer if
    somebody queues new requests.

    The right way to do the coalescing to execute more than one request at
    time is to make paride aware of merging and to allow paride to access the
    req->bh->b_reqnext stuff. In the highlevel layer we just do all the checks
    to find out contigous mergeable requests, that paride was doing in the
    racy way and the thing done by the highlevel layer are also enforced to
    not change under paride :).

    Stay tuned.

    Andrea

    -- To unsubscribe, send mail to: linux-parport-request@torque.net --
    -- with the single word "unsubscribe" in the body of the message. --



    This archive was generated by hypermail 2b29 : Mon Apr 03 2000 - 04:32:57 EDT