• Chris Wilson's avatar
    dma-buf/sync-file: Defer creation of sync_file->name · 71ebc9a3
    Chris Wilson authored
    Constructing the name takes the majority of the time for allocating a
    sync_file to wrap a fence, and the name is very rarely used (only via
    the sync_file status user interface). To reduce the impact on the common
    path (that of creating sync_file to pass around), defer the construction
    of the name until it is first used.
    
    v2: Update kerneldoc (kbuild test robot)
    v3: sync_debug.c was peeking at the name
    v4: Comment upon the potential race between two users of
    sync_file_get_name() and claim that such a race is below the level of
    notice. However, to prevent any future nuisance, use a global spinlock
    to serialize the assignment of the name.
    v5: Completely avoid the read/write race by only storing the name passed
    in from the user inside sync_file->user_name and passing in a buffer to
    dynamically construct the name otherwise.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Sumit Semwal <sumit.semwal@linaro.org>
    Cc: Gustavo Padovan <gustavo@padovan.org>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: David Herrmann <dh.herrmann@gmail.com>
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarGustavo Padovan <gustavo.padovan@collabora.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170516111042.24719-1-chris@chris-wilson.co.uk
    71ebc9a3
sync_debug.c 5.85 KB