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

*: rebase the tailscale branch onto upstream #16

Merged
merged 0 commits into from
Sep 27, 2023

Conversation

raggi
Copy link
Member

@raggi raggi commented Sep 27, 2023

This required integrating the changes from 25eb973 into the GRO patch that had included an earlier iteration.

@raggi raggi requested a review from bradfitz September 27, 2023 22:11
@raggi
Copy link
Member Author

raggi commented Sep 27, 2023

note: PR won't merge, I'll need to push, but I'd appreciate a quick eyeball.

@@ -19,13 +19,13 @@ import (
// call wg.Done to remove the initial reference.
// When the refcount hits 0, the queue's channel is closed.
type outboundQueue struct {
c chan *QueueOutboundElement
c chan *[]*QueueOutboundElement
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why pointer to slice out of curiosity? seems weird enough to be worth calling out somewhere to explain what's happening.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We were pooling the slice headers as well as the content, but we since moved to a container in order to shard a mutex, which is also cleaner for this reason.

Comment on lines 272 to 276
coalesceInsufficientCap coalesceResult = iota
coalescePSHEnding
coalesceItemInvalidCSum
coalescePktInvalidCSum
coalesceSuccess
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these and the tcpGROResult const values below never go across the network or to disk or to the kernel, do they? (iota should only be used when the values truly don't matter and renumbering them wouldn't break anything)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are all internal yeah, there are some different buffer &/ state handling semantics for specific cases.

@@ -19,13 +19,13 @@ import (
// call wg.Done to remove the initial reference.
// When the refcount hits 0, the queue's channel is closed.
type outboundQueue struct {
c chan *[]*QueueOutboundElement
c chan *QueueOutboundElementsContainer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh yay the pointer to slice is gone

Copy link
Member

@bradfitz bradfitz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't review super closely or anything, but 🤷‍♂️

@raggi
Copy link
Member Author

raggi commented Sep 27, 2023

I didn't review super closely or anything, but 🤷‍♂️

that's great, thank you. It's good to get some eyes on.

@raggi raggi merged commit 3a935f5 into tailscale Sep 27, 2023
@raggi raggi deleted the raggi/tailscale-rebase branch September 27, 2023 22:51
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.

2 participants