Re: [RFC] Add support for semaphore-like structure with support for asynchronous I/O

From: Trond Myklebust (trond.myklebust_at_fys.uio.no)
Date: 04/01/05

  • Next message: Andrew Morton: "connector.c"
    To: Andrew Morton <akpm@osdl.org>
    Date:	Thu, 31 Mar 2005 20:22:17 -0500
    
    

    to den 31.03.2005 Klokka 16:13 (-0800) skreiv Andrew Morton:
    > Trond Myklebust <trondmy@trondhjem.org> wrote:
    > >
    > > on den 30.03.2005 Klokka 18:17 (-0500) skreiv Trond Myklebust:
    > > > > Or have I misunderstood the intent? Some /* comments */ would be appropriate..
    > > >
    > > > Will do.
    > >
    > > OK. Plenty of comments added that will hopefully clarify what is going
    > > on and how to use the API. Also some cleanups of the code.
    >
    > Ah, so that's what it does ;)
    >
    > I guess once we have a caller in-tree we could merge this. I wonder if
    > there's other existing code which should be converted to iosems.

    I can put it into the NFS client stream which feeds into the -mm kernel.
    That will enable me to queue up the NFSv4 patches that depend on it
    too...

    > You chose to not use the aio kernel threads?

    I thought I'd do that in a separate patch since the aio workqueue is
    currently statically defined in aio.c.

    > Does iosem_lock_and_schedule_function() need locking? It nonatomically
    > alters *lk_state.

    iosem_lock_and_schedule_function() will always be called with the
    iosem->wait.lock held, since it is a waitqueue notification function.

    In practice it is called by iosem_unlock(). The call to wake_up_locked()
    will trigger a call to __wake_up_common() which again tries the
    notification function of each waiter on the queue until it finds one
    that succeeds.

    Cheers,
      Trond

    -- 
    Trond Myklebust <trond.myklebust@fys.uio.no>
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Andrew Morton: "connector.c"

    Relevant Pages