Repository navigation
Conversation
Use normal cached RAM for packet bounce allocations instead of inheriting kIOMapInhibitCache. Keep descriptor allocations uncached and retain the physical contiguity and 32-bit DMA mask. Add an extracted allocator test for the two cache policies, physical mask, preparation and allocation failure.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Tracked down a lot of copying overhead on an MT7922 (
14c3:7922), using AirportMtkWlan on Tahoe 26.7.1.Packet bounce buffers inherit
kIOMapInhibitCachefromalloc_dma_memory. On this machine, the Wi-Fi workloop was spending most of its time inrep movsb. This gives those packet buffers normal cached RAM. Descriptor rings stay uncached, with the same physical contiguity and 32-bit DMA address limit.Same 5 GHz AP, channel 161 / 80 MHz: Cloudflare downloads went from about 26 to 197 Mbps. Two
networkQualityruns after the change gave 194/211 and 213/223 Mbps (down/up).Those numbers are from my local build with earlier MT7922 HAL fixes already applied. This PR only includes the cache change and its allocation test.
Tested the Tahoe and Sequoia native Release builds and
tests/run-all.sh(12 groups). The test checks the actual allocator and both allocation calls, including the uncached descriptor default and allocation failure.