summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-11 17:50:52 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-11 17:50:52 -0400
commit4e98122015a736459d303b71d32b300448e51dad (patch)
tree871d394be07e1d8a991a2f85fa5c46cb0e8bd201 /kernel
parent93bc66fbb4777b72e8f72e8e9ea7e960b0b6d0d1 (diff)
downloadopen-iov-4e98122015a736459d303b71d32b300448e51dad.tar.gz
open-iov-4e98122015a736459d303b71d32b300448e51dad.zip
Revert "vgsp-sema: scope CE/GR rank assignment to the owning client (ISSUE-0002)"
This reverts commit 35ca086b20f04f6be5bd935fd53d08e43f67e869.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/gsp_sema_service.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c
index 638a866..d736ffe 100644
--- a/kernel/gsp_sema_service.c
+++ b/kernel/gsp_sema_service.c
@@ -1017,23 +1017,12 @@ void gsp_sema_service_channel_add(const struct sema_channel_desc *desc)
* same order, so the rank is what ties a channel to its ring
* offset and its push-buffer base (see svc_ring_autopin /
* svc_pb_pair).
- *
- * ISSUE-0002 (r78): the rank is per OWNING CLIENT - the UVM
- * pool layout (0x121000000 + 4*rank) is allocated by that
- * client. The kernel/GPU-global CeUtils scrubber channel
- * (client != the UVM client, entries=4096) must not consume
- * rank 0: r78 kept it registered (client-scoped deletion) and
- * every UVM channel's rank shifted by one, so ring autopin and
- * push-buffer pairing used the wrong offsets and the first
- * client wedged.
*/
if (desc->engine_type) {
u8 rank = 0;
for (k = 0; k < SVC_MAX_CHANNELS; k++)
if (svc.chan[k].valid && svc.chan[k].engine_type &&
- (!svc.chan[k].h_client || !desc->h_client ||
- svc.chan[k].h_client == desc->h_client) &&
svc.chan[k].h_object < desc->h_object)
rank++;
ch->ce_index = rank;
@@ -1042,8 +1031,6 @@ void gsp_sema_service_channel_add(const struct sema_channel_desc *desc)
for (k = 0; k < SVC_MAX_CHANNELS; k++)
if (svc.chan[k].valid && !svc.chan[k].engine_type &&
- (!svc.chan[k].h_client || !desc->h_client ||
- svc.chan[k].h_client == desc->h_client) &&
svc.chan[k].h_object < desc->h_object)
rank++;
ch->gr_index = rank;