Lines Matching full:client
19 * xe_drm_client_alloc() - Allocate drm client
22 * Allocate drm client struct to track client memory against
23 * same till client life. Call this API whenever new client
26 * Return: pointer to client struct or NULL if can't allocate
30 struct xe_drm_client *client; in xe_drm_client_alloc() local
32 client = kzalloc(sizeof(*client), GFP_KERNEL); in xe_drm_client_alloc()
33 if (!client) in xe_drm_client_alloc()
36 kref_init(&client->kref); in xe_drm_client_alloc()
39 spin_lock_init(&client->bos_lock); in xe_drm_client_alloc()
40 INIT_LIST_HEAD(&client->bos_list); in xe_drm_client_alloc()
42 return client; in xe_drm_client_alloc()
46 * __xe_drm_client_free() - Free client struct
49 * This frees client struct. Call this API when xe device is closed
50 * by drm client.
56 struct xe_drm_client *client = in __xe_drm_client_free() local
57 container_of(kref, typeof(*client), kref); in __xe_drm_client_free()
59 kfree(client); in __xe_drm_client_free()
64 * xe_drm_client_add_bo() - Add BO for tracking client mem usage
65 * @client: The drm client ptr
68 * Add all BO created by individual drm client by calling this function.
69 * This helps in tracking client memory usage.
73 void xe_drm_client_add_bo(struct xe_drm_client *client, in xe_drm_client_add_bo() argument
76 XE_WARN_ON(bo->client); in xe_drm_client_add_bo()
79 spin_lock(&client->bos_lock); in xe_drm_client_add_bo()
80 bo->client = xe_drm_client_get(client); in xe_drm_client_add_bo()
81 list_add_tail_rcu(&bo->client_link, &client->bos_list); in xe_drm_client_add_bo()
82 spin_unlock(&client->bos_lock); in xe_drm_client_add_bo()
86 * xe_drm_client_remove_bo() - Remove BO for tracking client mem usage
89 * Remove all BO removed by individual drm client by calling this function.
90 * This helps in tracking client memory usage.
96 struct xe_drm_client *client = bo->client; in xe_drm_client_remove_bo() local
98 spin_lock(&client->bos_lock); in xe_drm_client_remove_bo()
100 spin_unlock(&client->bos_lock); in xe_drm_client_remove_bo()
102 xe_drm_client_put(client); in xe_drm_client_remove_bo()
138 struct xe_drm_client *client; in show_meminfo() local
144 client = xef->client; in show_meminfo()
156 spin_lock(&client->bos_lock); in show_meminfo()
157 list_for_each_entry_rcu(bo, &client->bos_list, client_link) { in show_meminfo()
163 spin_unlock(&client->bos_lock); in show_meminfo()