09 Jul, 2014
3 commits
-
This adds some extra functions to deal with rcu.
reservation_object_get_fences_rcu() will obtain the list of shared
and exclusive fences without obtaining the ww_mutex.reservation_object_wait_timeout_rcu() will wait on all fences of the
reservation_object, without obtaining the ww_mutex.reservation_object_test_signaled_rcu() will test if all fences of the
reservation_object are signaled without using the ww_mutex.reservation_object_get_excl and reservation_object_get_list require
the reservation object to be held, updating requires
write_seqcount_begin/end. If only the exclusive fence is needed,
rcu_dereference followed by fence_get_rcu can be used, if the shared
fences are needed it's recommended to use the supplied functions.Signed-off-by: Maarten Lankhorst
Acked-by: Sumit Semwal
Acked-by: Daniel Vetter
Reviewed-By: Thomas Hellstrom
Signed-off-by: Greg Kroah-Hartman -
Move the list of shared fences to a struct, and return it in
reservation_object_get_list().
Add reservation_object_get_excl to get the exclusive fence.Add reservation_object_reserve_shared(), which reserves space
in the reservation_object for 1 more shared fence.reservation_object_add_shared_fence() and
reservation_object_add_excl_fence() are used to assign a new
fence to a reservation_object pointer, to complete a reservation.Changes since v1:
- Add reservation_object_get_excl, reorder code a bit.Signed-off-by: Maarten Lankhorst
Acked-by: Sumit Semwal
Acked-by: Daniel Vetter
Signed-off-by: Greg Kroah-Hartman -
Signed-off-by: Maarten Lankhorst
Acked-by: Sumit Semwal
Acked-by: Daniel Vetter
Reviewed-by: Rob Clark
Signed-off-by: Greg Kroah-Hartman
12 Jul, 2013
1 commit
-
Move the definitions for wound/wait mutexes out to a separate
header, ww_mutex.h. This reduces clutter in mutex.h, and
increases readability.Suggested-by: Linus Torvalds
Signed-off-by: Maarten Lankhorst
Acked-by: Peter Zijlstra
Acked-by: Rik van Riel
Acked-by: Maarten Lankhorst
Cc: Dave Airlie
Link: http://lkml.kernel.org/r/51D675DC.3000907@canonical.com
[ Tidied up the code a bit. ]
Signed-off-by: Ingo Molnar
28 Jun, 2013
1 commit
-
This adds support for a generic reservations framework that can be
hooked up to ttm and dma-buf and allows easy sharing of reservations
across devices.The idea is that a dma-buf and ttm object both will get a pointer
to a struct reservation_object, which has to be reserved before
anything is done with the contents of the dma-buf.Changes since v1:
- Fix locking issue in ticket_reserve, which could cause mutex_unlock
to be called too many times.
Changes since v2:
- All fence related calls and members have been taken out for now,
what's left is the bare minimum to be useful for ttm locking conversion.
Changes since v3:
- Removed helper functions too. The documentation has an example
implementation for locking. With the move to ww_mutex there is no
need to have much logic any more.Signed-off-by: Maarten Lankhorst
Reviewed-by: Jerome Glisse
Signed-off-by: Dave Airlie