diff options
Diffstat (limited to 'runtime/transport/ring_buffer.c')
-rw-r--r-- | runtime/transport/ring_buffer.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/runtime/transport/ring_buffer.c b/runtime/transport/ring_buffer.c index 4295a37b..51e9efa2 100644 --- a/runtime/transport/ring_buffer.c +++ b/runtime/transport/ring_buffer.c @@ -54,8 +54,12 @@ static int __stp_alloc_ring_buffer(void) if (buffer_size == 0) { dbug_trans(1, "using default buffer size...\n"); - buffer_size = STP_BUFFER_SIZE * 30; + buffer_size = _stp_nsubbufs * _stp_subbuf_size; } + /* The number passed to ring_buffer_alloc() is per cpu. Our + * 'buffer_size' is a total number of bytes to allocate. So, + * we need to divide buffer_size by the number of cpus. */ + buffer_size /= num_online_cpus(); dbug_trans(1, "%lu\n", buffer_size); __stp_ring_buffer = ring_buffer_alloc(buffer_size, 0); if (!__stp_ring_buffer) |