• Michel Thierry's avatar
    drm/i915/selftests: Add a GuC doorbells selftest · 55bd6bd7
    Michel Thierry authored
    The first test aims to check guc_init_doorbell_hw, changing the existing
    guc clients and doorbells state before calling it.
    
    The second test tries to create as many clients as it is currently possible
    (currently limited to max number of doorbells) and exercise the doorbell
    alloc/dealloc code.
    
    Since our usage mode require very few clients/doorbells, this code has
    been exercised very lightly and it's good to have a simple test for it.
    
    As reference, this test already helped identify the bug fixed by
    commit 7f1ea2ac ("drm/i915/guc: Fix doorbell id selection").
    
    v2: Extend number of clients; check for client allocation failure when
    number of doorbells is exceeded; validate client properties; reuse
    guc_init_doorbell_hw (Chris).
    
    v3: guc_init_doorbell_hw test added per Chris suggestion.
    
    v4: Try to explain why guc_init_doorbell_hw exist and comment some
    details in the subtest.
    
    v5: Remove redundant pr_info at the beginning of each subtest (Chris);
    rebase (s/i915_guc_client/intel_guc_client/).
    Signed-off-by: default avatarMichel Thierry <michel.thierry@intel.com>
    Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171116220632.1909-1-michel.thierry@intel.comSigned-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    55bd6bd7
intel_guc_submission.c 43.2 KB