mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 16:10:54 +00:00
libsysprof: increase priority of mapped ring buffer source
We want to reduce the chances we've lost anything in these, which is pretty important for memory tracing.
This commit is contained in:
@ -33,7 +33,8 @@ guint mapped_ring_buffer_create_source (MappedRingBuffer *self,
|
|||||||
MappedRingBufferCallback callback,
|
MappedRingBufferCallback callback,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
G_GNUC_INTERNAL
|
G_GNUC_INTERNAL
|
||||||
guint mapped_ring_buffer_create_source_full (MappedRingBuffer *self,
|
guint mapped_ring_buffer_create_source_full (int priority,
|
||||||
|
MappedRingBuffer *self,
|
||||||
MappedRingBufferCallback callback,
|
MappedRingBufferCallback callback,
|
||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
GDestroyNotify destroy);
|
GDestroyNotify destroy);
|
||||||
|
|||||||
@ -89,7 +89,8 @@ static GSourceFuncs mapped_ring_source_funcs = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
guint
|
guint
|
||||||
mapped_ring_buffer_create_source_full (MappedRingBuffer *self,
|
mapped_ring_buffer_create_source_full (int priority,
|
||||||
|
MappedRingBuffer *self,
|
||||||
MappedRingBufferCallback source_func,
|
MappedRingBufferCallback source_func,
|
||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
GDestroyNotify destroy)
|
GDestroyNotify destroy)
|
||||||
@ -103,7 +104,8 @@ mapped_ring_buffer_create_source_full (MappedRingBuffer *self,
|
|||||||
source = (MappedRingSource *)g_source_new (&mapped_ring_source_funcs, sizeof (MappedRingSource));
|
source = (MappedRingSource *)g_source_new (&mapped_ring_source_funcs, sizeof (MappedRingSource));
|
||||||
source->buffer = mapped_ring_buffer_ref (self);
|
source->buffer = mapped_ring_buffer_ref (self);
|
||||||
g_source_set_callback ((GSource *)source, (GSourceFunc)source_func, user_data, destroy);
|
g_source_set_callback ((GSource *)source, (GSourceFunc)source_func, user_data, destroy);
|
||||||
g_source_set_name ((GSource *)source, "MappedRingSource");
|
g_source_set_static_name ((GSource *)source, "MappedRingSource");
|
||||||
|
g_source_set_priority ((GSource *)source, priority);
|
||||||
ret = g_source_attach ((GSource *)source, g_main_context_default ());
|
ret = g_source_attach ((GSource *)source, g_main_context_default ());
|
||||||
g_source_unref ((GSource *)source);
|
g_source_unref ((GSource *)source);
|
||||||
|
|
||||||
@ -115,5 +117,5 @@ mapped_ring_buffer_create_source (MappedRingBuffer *self,
|
|||||||
MappedRingBufferCallback source_func,
|
MappedRingBufferCallback source_func,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
return mapped_ring_buffer_create_source_full (self, source_func, user_data, NULL);
|
return mapped_ring_buffer_create_source_full (G_PRIORITY_DEFAULT, self, source_func, user_data, NULL);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -241,7 +241,8 @@ sysprof_controlfd_instrument_record_fiber (gpointer user_data)
|
|||||||
ring_data = g_new0 (RingData, 1);
|
ring_data = g_new0 (RingData, 1);
|
||||||
ring_data->writer = sysprof_capture_writer_ref (temp_writer);
|
ring_data->writer = sysprof_capture_writer_ref (temp_writer);
|
||||||
ring_data->source_ids = g_array_ref (state->source_ids);
|
ring_data->source_ids = g_array_ref (state->source_ids);
|
||||||
ring_data->id = mapped_ring_buffer_create_source_full (ring_buffer,
|
ring_data->id = mapped_ring_buffer_create_source_full (G_PRIORITY_HIGH,
|
||||||
|
ring_buffer,
|
||||||
sysprof_controlfd_instrument_frame_cb,
|
sysprof_controlfd_instrument_frame_cb,
|
||||||
ring_data,
|
ring_data,
|
||||||
(GDestroyNotify)ring_data_free);
|
(GDestroyNotify)ring_data_free);
|
||||||
|
|||||||
Reference in New Issue
Block a user