Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DaynaPort: Only buffer one outbound packet #351

Closed
wants to merge 1 commit into from

Conversation

ZigZagJoe
Copy link
Collaborator

This PR changes to only buffer one packet outbound instead of NETWORK_PACKET_QUEUE_SIZE. If the buffer is full, it will block the SCSI bus temporarily in order to flush the packet (have not encountered this case yet).

Consider this a PR for discussion ... This needs to be verified on the fastest machine that supports daynaport (PowerPC of some denomination?), but it would provide quite a bit of relief to the SRAM congestion on the Daynaport target.

I performed some testing and found the outbound queue depth does not exceed 1 on either an accelerated SE/30 or Quadra 650@40mhz under ideal or worst case conditions. I found sending packets directly from scsiNetworkCommand seemed to work fine with a minor speed improvement, but I'm not sure what the longest acceptable time to perform work in the SCSI call is or worst case time of cyw43_send_ethernet as it is black box code with no documentation that I can find. I suspect the call simply buffers the packet into the Wifi SoC's SRAM... worst case time observed is about 0x12000 cycles as measured by rp2040.getCycleCount64(), best case around 0x4000.

Ideal test conditions: AP a few feet from Quadra 650, with a wired computer downloading a file from the the Mac's web sharing. ~160KB/s mac->computer speed observed.

Worst case: Mac located as far away as possible without huge packet loss. ~60KB/s mac->computer speed observed.

@ZigZagJoe ZigZagJoe requested a review from morio December 4, 2023 16:24
@ZigZagJoe ZigZagJoe closed this Dec 18, 2023
@ZigZagJoe ZigZagJoe deleted the pico-dayna-small-write-queue branch December 18, 2023 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant