Re: [Linux-cluster] Re: GFS, what's remaining

kurt.hackel_at_oracle.com
Date: 09/05/05

  • Next message: Alexey Dobriyan: "Re: [RFC][CFLART] ipmi procfs bogosity"
    Date:	Mon, 5 Sep 2005 12:11:59 -0700
    To: David Teigland <teigland@redhat.com>
    
    

    On Mon, Sep 05, 2005 at 05:24:33PM +0800, David Teigland wrote:
    > On Mon, Sep 05, 2005 at 01:54:08AM -0700, Andrew Morton wrote:
    > > David Teigland <teigland@redhat.com> wrote:
    > > >
    > > > We export our full dlm API through read/write/poll on a misc device.
    > > >
    > >
    > > inotify did that for a while, but we ended up going with a straight syscall
    > > interface.
    > >
    > > How fat is the dlm interface? ie: how many syscalls would it take?
    >
    > Four functions:
    > create_lockspace()
    > release_lockspace()
    > lock()
    > unlock()

    FWIW, it looks like we can agree on the core interface. ocfs2_dlm
    exports essentially the same functions:
        dlm_register_domain()
        dlm_unregister_domain()
        dlmlock()
        dlmunlock()

    I also implemented dlm_migrate_lockres() to explicitly remaster a lock
    on another node, but this isn't used by any callers today (except for
    debugging purposes). There is also some wiring between the fs and the
    dlm (eviction callbacks) to deal with some ordering issues between the
    two layers, but these could go if we get stronger membership.

    There are quite a few other functions in the "full" spec(1) that we
    didn't even attempt, either because we didn't require direct
    user<->kernel access or we just didn't need the function. As for the
    rather thick set of parameters expected in dlm calls, we managed to get
    dlmlock down to *ahem* eight, and the rest are fairly slim.

    Looking at the misc device that gfs uses, it seems like there is pretty
    much complete interface to the same calls you have in kernel, validated
    on the write() calls to the misc device. With dlmfs, we were seeking to
    lock down and simplify user access by using standard ast/bast/unlockast
    calls, using a file descriptor as an opaque token for a single lock,
    letting the vfs lifetime on this fd help with abnormal termination, etc.
    I think both the misc device and dlmfs are helpful and not necessarily
    mutually exclusive, and probably both are better approaches than
    exporting everything via loads of syscalls (which seems to be the
    VMS/opendlm model).

    -kurt

    1. http://opendlm.sourceforge.net/cvsmirror/opendlm/docs/dlmbook_final.pdf

    Kurt C. Hackel
    Oracle
    kurt.hackel@oracle.com
    -
    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: Alexey Dobriyan: "Re: [RFC][CFLART] ipmi procfs bogosity"

    Relevant Pages

    • Re: if_clone.c allows creating multiple interfaces with the same name
      ... but prior to interface attachement to global interface ... D> The lock is acquired before the call to ifc_alloc_unit. ... D>> From my point of view, we need a generic approach to ioctl() vs ioctl ... may be some global serializer of all re-configuration requests of ...
      (freebsd-current)
    • Re: if_clone.c allows creating multiple interfaces with the same name
      ... D> twist on the patch with the move from the unit bitmap to allocating unit ... D> leaked during the creation of a single cloned interface. ... D> The lock is acquired before the call to ifc_alloc_unit. ... may be some global serializer of all re-configuration ...
      (freebsd-current)
    • Re: [PATCH 3/3] misc: use a proper range for minor number dynamic allocation
      ... There are very very few cases a misc device needs a ... specific minor and the large dynamic device space has really made misc a ... allocate a range and, then, create the device with its respective file ... they would not do their homework and use the right interface anyway. ...
      (Linux-Kernel)
    • Re: Deadlock when querying custom interface
      ... interface, lets call it the ICalcThingies interface ... you are writing a transform filter, and your filter does not wait on ... completely separate lock to make sure CalcThingies and your Transform ... Are you waiting on events inside a streaming method, ...
      (microsoft.public.win32.programmer.directx.video)
    • Re: Lock/Unlock of ATL object from client
      ... ISerial has a Lock() ... This Lockfunction would return an interface pointer to an object ... and the second for whatever methods/properties require locking. ... its methods to the underlying serial object. ...
      (microsoft.public.vc.atl)