diff options
author | David Smith <dsmith@redhat.com> | 2009-06-18 13:09:31 -0500 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2009-06-18 13:09:31 -0500 |
commit | 24a5e9a6a87b2f7c8b7264ceb94c65a3a9550d47 (patch) | |
tree | 66018c3c348bfc99d221eccfd782713703aecc63 /runtime/transport | |
parent | 36b8245df8de0092c5d28765b1ae7d9d8050da6e (diff) | |
download | systemtap-steved-24a5e9a6a87b2f7c8b7264ceb94c65a3a9550d47.tar.gz systemtap-steved-24a5e9a6a87b2f7c8b7264ceb94c65a3a9550d47.tar.xz systemtap-steved-24a5e9a6a87b2f7c8b7264ceb94c65a3a9550d47.zip |
Enabled overwrite processing on original transports.
* runtime/transport/relay_v2.c (_stp_transport_data_fs_overwrite): Renamed
from stp_relay_set_overwrite().
* runtime/transport/relayfs.c (stp_relay_set_overwrite): Ditto.
* runtime/transport/ring_buffer.c (_stp_transport_data_fs_overwrite): New
place holder function.
* runtime/transport/transport.c (_stp_detach): Calls
_stp_transport_data_fs_overwrite().
(_stp_attach): Calls _stp_transport_data_fs_overwrite().
* runtime/transport/transport.h: Added prototype for
_stp_transport_data_fs_overwrite().
Diffstat (limited to 'runtime/transport')
-rw-r--r-- | runtime/transport/relay_v2.c | 2 | ||||
-rw-r--r-- | runtime/transport/relayfs.c | 2 | ||||
-rw-r--r-- | runtime/transport/ring_buffer.c | 4 | ||||
-rw-r--r-- | runtime/transport/transport.c | 15 | ||||
-rw-r--r-- | runtime/transport/transport.h | 17 |
5 files changed, 17 insertions, 23 deletions
diff --git a/runtime/transport/relay_v2.c b/runtime/transport/relay_v2.c index 246c4965..aa6f7b99 100644 --- a/runtime/transport/relay_v2.c +++ b/runtime/transport/relay_v2.c @@ -147,7 +147,7 @@ static void __stp_relay_timer_init(void) smp_mb(); } -static void stp_relay_set_overwrite(int overwrite) +static void _stp_transport_data_fs_overwrite(int overwrite) { _stp_relay_data.overwrite_flag = overwrite; } diff --git a/runtime/transport/relayfs.c b/runtime/transport/relayfs.c index 191b932f..c557efbc 100644 --- a/runtime/transport/relayfs.c +++ b/runtime/transport/relayfs.c @@ -136,7 +136,7 @@ err: return rc; } -static void stp_relay_set_overwrite(int overwrite) +static void _stp_transport_data_fs_overwrite(int overwrite) { _stp_relay_data.rchan->overwrite = overwrite; } diff --git a/runtime/transport/ring_buffer.c b/runtime/transport/ring_buffer.c index bed441e5..45ad8e2b 100644 --- a/runtime/transport/ring_buffer.c +++ b/runtime/transport/ring_buffer.c @@ -448,3 +448,7 @@ static void _stp_transport_data_fs_close(void) __stp_free_ring_buffer(); } +static void _stp_transport_data_fs_overwrite(int overwrite) +{ + /* FIXME: Just a place holder for now. */ +} diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c index 84959f71..a1d90dcf 100644 --- a/runtime/transport/transport.c +++ b/runtime/transport/transport.c @@ -20,13 +20,6 @@ #include <linux/workqueue.h> #include <linux/delay.h> -#if 0 -static void utt_set_overwrite(int overwrite) -{ - return; -} -#endif - static int _stp_exit_flag = 0; static uid_t _stp_uid = 0; @@ -166,10 +159,8 @@ static void _stp_detach(void) _stp_ctl_attached = 0; _stp_pid = 0; -#if 0 if (!_stp_exit_flag) - utt_set_overwrite(1); -#endif + _stp_transport_data_fs_overwrite(1); cancel_delayed_work(&_stp_work); wake_up_interruptible(&_stp_ctl_wq); @@ -183,9 +174,7 @@ static void _stp_attach(void) dbug_trans(1, "attach\n"); _stp_ctl_attached = 1; _stp_pid = current->pid; -#if 0 - utt_set_overwrite(0); -#endif + _stp_transport_data_fs_overwrite(0); queue_delayed_work(_stp_wq, &_stp_work, STP_WORK_TIMER); } diff --git a/runtime/transport/transport.h b/runtime/transport/transport.h index df2d496d..b3d15ef3 100644 --- a/runtime/transport/transport.h +++ b/runtime/transport/transport.h @@ -11,19 +11,11 @@ /* amount of data a print can send. */ #define STP_BUFFER_SIZE 8192 -struct utt_trace; - static int _stp_ctl_write(int type, void *data, unsigned len); static int _stp_transport_init(void); static void _stp_transport_close(void); -static inline void *utt_reserve(struct utt_trace *utt, size_t length) -{ - return NULL; -} - - /* STP_CTL_BUFFER_SIZE is the maximum size of a message */ /* exchanged on the control channel. */ #if STP_TRANSPORT_VERSION == 1 @@ -97,6 +89,15 @@ static void _stp_transport_data_fs_stop(void); static void _stp_transport_data_fs_close(void); /* + * _stp_transport_data_fs_overwrite - set data overwrite mode + * overwrite: boolean + * + * When in overwrite mode and the transport buffers are full, older + * data gets overwritten. + */ +static void _stp_transport_data_fs_overwrite(int overwrite); + +/* * _stp_data_write_reserve - reserve bytes * size_request: number of bytes to reserve * entry: allocated buffer is returned here |