mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
wgengine/magicsock: don't use endpoint debug ringbuffer on mobile.
Save some memory. Updates tailscale/corp#18514 Change-Id: Ibcaf3c6d8e5cc275c81f04141d0f176e2249509b Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
512fc0b502
commit
5d1c72f76b
@ -24,7 +24,12 @@ type RingBuffer[T any] struct {
|
||||
|
||||
// Add appends a new item to the RingBuffer, possibly overwriting the oldest
|
||||
// item in the buffer if it is already full.
|
||||
//
|
||||
// It does nothing if rb is nil.
|
||||
func (rb *RingBuffer[T]) Add(t T) {
|
||||
if rb == nil {
|
||||
return
|
||||
}
|
||||
rb.mu.Lock()
|
||||
defer rb.mu.Unlock()
|
||||
if len(rb.buf) < rb.max {
|
||||
@ -37,6 +42,8 @@ func (rb *RingBuffer[T]) Add(t T) {
|
||||
|
||||
// GetAll returns a copy of all the entries in the ring buffer in the order they
|
||||
// were added.
|
||||
//
|
||||
// It returns nil if rb is nil.
|
||||
func (rb *RingBuffer[T]) GetAll() []T {
|
||||
if rb == nil {
|
||||
return nil
|
||||
|
@ -1815,9 +1815,11 @@ func debugRingBufferSize(numPeers int) int {
|
||||
}
|
||||
var maxRingBufferSize int
|
||||
if runtime.GOOS == "ios" || runtime.GOOS == "android" {
|
||||
maxRingBufferSize = 1 * 1024 * 1024
|
||||
maxRingBufferSize = 1 << 20
|
||||
// But as of 2024-03-20, we now just disable the ring buffer entirely
|
||||
// on mobile as it hadn't proven useful enough to justify even 1 MB.
|
||||
} else {
|
||||
maxRingBufferSize = 4 * 1024 * 1024
|
||||
maxRingBufferSize = 4 << 20
|
||||
}
|
||||
if v := debugRingBufferMaxSizeBytes(); v > 0 {
|
||||
maxRingBufferSize = v
|
||||
@ -1984,7 +1986,6 @@ func (c *Conn) SetNetworkMap(nm *netmap.NetworkMap) {
|
||||
|
||||
ep = &endpoint{
|
||||
c: c,
|
||||
debugUpdates: ringbuffer.New[EndpointChange](entriesPerBuffer),
|
||||
nodeID: n.ID(),
|
||||
publicKey: n.Key(),
|
||||
publicKeyHex: n.Key().UntypedHexString(),
|
||||
@ -1993,6 +1994,14 @@ func (c *Conn) SetNetworkMap(nm *netmap.NetworkMap) {
|
||||
heartbeatDisabled: flags.heartbeatDisabled,
|
||||
isWireguardOnly: n.IsWireGuardOnly(),
|
||||
}
|
||||
switch runtime.GOOS {
|
||||
case "ios", "android":
|
||||
// Omit, to save memory. Prior to 2024-03-20 we used to limit it to
|
||||
// ~1MB on mobile but we never used the data so the memory was just
|
||||
// wasted.
|
||||
default:
|
||||
ep.debugUpdates = ringbuffer.New[EndpointChange](entriesPerBuffer)
|
||||
}
|
||||
if n.Addresses().Len() > 0 {
|
||||
ep.nodeAddr = n.Addresses().At(0).Addr()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user