-
Notifications
You must be signed in to change notification settings - Fork 813
[UR][L0v2] remove cross-queue async allocations#21320
Merged
kswiecicki merged 2 commits intointel:sycl from Feb 19, 2026
Merged
[UR][L0v2] remove cross-queue async allocations #21320kswiecicki merged 2 commits intointel:sycl from
kswiecicki merged 2 commits intointel:sycl from
Conversation
@pbalcer
pbalcer
temporarily deployed
to
WindowsCILock
February 19, 2026 08:28 — with
GitHub Actions
Inactive
@pbalcer
pbalcer
temporarily deployed
to
WindowsCILock
February 19, 2026 08:49 — with
GitHub Actions
Inactive
@pbalcer
pbalcer
had a problem deploying
to
WindowsCILock
February 19, 2026 08:49 — with
GitHub Actions
Failure
@pbalcer
pbalcer
had a problem deploying
to
WindowsCILock
February 19, 2026 08:49 — with
GitHub Actions
Failure
@pbalcer
pbalcer
force-pushed
the
remove-cross-queue-allocs
branch
from
February 19, 2026 09:17
7d9c845 to
769531f
Compare
@pbalcer
pbalcer
temporarily deployed
to
WindowsCILock
February 19, 2026 09:17 — with
GitHub Actions
Inactive
@pbalcer
pbalcer
temporarily deployed
to
WindowsCILock
February 19, 2026 09:37 — with
GitHub Actions
Inactive
@pbalcer
pbalcer
had a problem deploying
to
WindowsCILock
February 19, 2026 09:37 — with
GitHub Actions
Failure
@pbalcer
pbalcer
had a problem deploying
to
WindowsCILock
February 19, 2026 09:37 — with
GitHub Actions
Failure
@pbalcer
pbalcer
force-pushed
the
remove-cross-queue-allocs
branch
from
February 19, 2026 10:26
769531f to
25d19b6
Compare
@pbalcer
pbalcer
temporarily deployed
to
WindowsCILock
February 19, 2026 10:27 — with
GitHub Actions
Inactive
@pbalcer
pbalcer
temporarily deployed
to
WindowsCILock
February 19, 2026 10:48 — with
GitHub Actions
Inactive
@pbalcer
pbalcer
temporarily deployed
to
WindowsCILock
February 19, 2026 10:48 — with
GitHub Actions
Inactive
@pbalcer
pbalcer
temporarily deployed
to
WindowsCILock
February 19, 2026 10:48 — with
GitHub Actions
Inactive
kswiecicki
kswiecicki
approved these changes
Feb 19, 2026
Queue asynchronous allocations are currently capable of taking memory deallocated from other queues. This adds implicit synchronization, and might lead to non-obvious performance impact on applications. On top of that, the current implementation of this functionality requires all deallocations to always create signal events, potentially impacting performance in the hot path. This patch simplifies this logic, only creating signal events when truly required (for out-of-order queues). The downside is that cross-queue async allocations will no longer happen implicitly.
pbalcer
added a commit
to pbalcer/llvm
that referenced
this pull request
Feb 19, 2026
A recent patch intel#21320, changed how events are allocated for async allocations. Instead of always allocating an event, we now allocate it optionally, depending on whether user specified it. But that changed did not update how event refcounts are updated, in the case that the event is actually allocated. This could lead to potential use-after-free. This patch moves the refcount management into command list manager, and correctly increments it when required.
pbalcer
added a commit
to pbalcer/llvm
that referenced
this pull request
Feb 19, 2026
A recent patch intel#21320, changed how events are allocated for async allocations. Instead of always allocating an event, we now allocate it optionally, depending on whether user specified it. But that changed did not update how event refcounts are updated, in the case that the event is actually allocated. This could lead to potential use-after-free. This patch moves the refcount management into command list manager, and correctly increments it when required.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Queue asynchronous allocations are currently capable of taking memory
deallocated from other queues. This adds implicit synchronization,
and might lead to non-obvious performance impact on applications.
On top of that, the current implementation of this functionality
requires all deallocations to always create signal events,
potentially impacting performance in the hot path.
This patch simplifies this logic, only creating signal events when
truly required (for out-of-order queues). The downside is that
cross-queue async allocations will no longer happen implicitly.