summaryrefslogtreecommitdiff
path: root/tests/sw_sync.c
AgeCommit message (Collapse)Author
2016-12-17lib/sw_sync: Rename sync_fence_create()Chris Wilson
It takes a sw_sync_timeline and returns a fence (it is a factory), so call it sw_sync_timeline_create_fence() for better self-documentation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-17lib/sw_sync: Indicate that sync_merge() operates and create a sync_fenceChris Wilson
Improvements to self-documentating API that matches the rest of sw_sync. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-17lib/sw_sync: Bring sync_wait() API into lineChris Wilson
igt likes to return kernel-esque negative errno where we can, and indicate that we expect to operate on a sync_fence, otherwise it is merely a grandiose poll(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-14tests/sw_sync: Add subtest test_sync_busy_unixsocketRobert Foss
Add subtest test_sync_busy_fork which increments the timeline in a forked child process, where the timeline fd has been sent through a UNIX socket. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_busy_forkRobert Foss
Add subtest test_sync_busy_fork which increments the timeline in a forked child process. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_merge_invalidRobert Foss
Add subtest test_sync_merge_invalid that tests merging invalid fences. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add igt_require check for sw_sync featureRobert Foss
Make sure that this test is skipped if the sw_sync feature is missing from the host system. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_timeline_closed_signaledRobert Foss
Add subtest test_timeline_closed_signaled that verifies that a signaled fence stays signaled after its timeline has been closed. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_timeline_closedRobert Foss
This subtest verifies that the fences of a timeline are not signalled when a timelne is closed. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_expired_mergeRafael Antognolli
This test creates an already expired fence, then creates a merged fence out of that expired one (passed twice to the merge operation), and finally closes the merged fence. It shows that if the refcounts are wrong on the original expired fence, it might get freed while still in use. Usually a kernel panick will follow. Signed-off-by: Rafael Antognolli <rafael.antognolli@intel.com> Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_multi_producer_single_consumerRobert Foss
This subtest runs a single consumer thread and multiple producer thread that are synchronized using multiple timelines. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_multi_timeline_waitRobert Foss
This subtest verifies that waiting, timing out on a wait and that counting fences in various states works. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_random_mergeRobert Foss
This subtest verifies that creating many timelines and merging random fences from each timeline with eachother results in merged fences that are fully functional. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_multi_consumer_producerRobert Foss
This test verifies that stressing the kernel by creating multiple consumer/producer threads that wait on a single timeline to be incremented by another conumer/producer thread does not fail. And that the order amongst the threads is maintained. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_multi_consumerRobert Foss
This subtest verifies the access ordering of multiple consumer threads. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_merge_sameRobert Foss
This subtest verifies merging a fence with itself does not fail. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_mergeRobert Foss
Add subtest test_sync_merge that tests merging fences and the validity of the resulting merged fence. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_sync_busyRobert Foss
This subtest verifies that waiting on fences works properly. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_alloc_merge_fenceRobert Foss
This subtest verifies that merging two fences works in the simples possible case. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_alloc_fence_invalid_timelineRobert Foss
This subtests tests that creating fences on negative timelines fail. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14tests/sw_sync: Add subtest test_alloc_fenceRobert Foss
Add subtest alloc_fence that verifies that it's possible to allocate a fence on a timeline. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14test/sw_sync: Add sw_sync testRobert Foss
Add initial tests for sw_sync. Signed-off-by: Robert Foss <robert.foss@collabora.com> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>