Re: API change for bus_dma

From: Justin T. Gibbs (gibbs_at_scsiguy.com)
Date: 06/29/03

  • Next message: David Schultz: "Per-source CFLAGS revisited (was: Re: Per-source CFLAGS)"
    Date: Sun, 29 Jun 2003 10:57:36 -0600
    To: Scott Long <scottl@freebsd.org>
    
    

    >> Again, what we want to achieve is as few lock acquires and releases
    >> in the common case as possible. For architectures like x86, the only
    >> data structure that needs to be locked for the common case of no deferral
    >> and no bounce page allocations is the tag (it will soon hold the S/G list
    >> passed to the callback). Other implementations may need to acquire other
    >> locks, but using the client's lock still removes one lock acquire and
    >> release in each invocation that is not deferred.
    >>
    >> --
    >> Justin
    >
    > This is becoming wonderfully complex. What is the purpose of storing
    > the S/G list in the tag? Are we going to enforce a 1:1 relationship
    > between tags and maps? That would really suck for the aac(4) driver.

    No. We are going to enforce only one callback invocation at a time
    per tag. The S/G list is only persistent for the lifetime of the
    callback.

    The reason for the change is to avoid using the stack for large S/G
    lists.

    --
    Justin
    _______________________________________________
    freebsd-arch@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-arch
    To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
    

  • Next message: David Schultz: "Per-source CFLAGS revisited (was: Re: Per-source CFLAGS)"

    Relevant Pages