Message ID | 20191128085409.289684-16-tz.stoyanov@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Timestamp synchronization of host - guest tracing session | expand |
On Thu, Nov 28, 2019 at 11:01 AM Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> wrote: > > In order to reuse code inside trace-cmd application context, > few functions are made non static: > int make_vsock(unsigned int port); > int get_vsock_port(int sd, unsigned int *port); > int open_vsock(unsigned int cid, unsigned int port); > char *get_guest_file(const char *file, const char *guest); > > Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> > --- > tracecmd/include/trace-local.h | 8 ++++++++ > tracecmd/trace-agent.c | 4 ++-- > tracecmd/trace-record.c | 8 ++++---- > 3 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/tracecmd/include/trace-local.h b/tracecmd/include/trace-local.h > index a6f79c5..17ef31a 100644 > --- a/tracecmd/include/trace-local.h > +++ b/tracecmd/include/trace-local.h > @@ -19,6 +19,8 @@ > #define GUEST_FIFO_FMT GUEST_DIR_FMT "/" GUEST_PIPE_NAME "%d" > #define VIRTIO_FIFO_FMT "/dev/virtio-ports/" GUEST_PIPE_NAME "%d" > > +#define TRACE_FILENAME "trace.dat" > + > /* fix stupid glib guint64 typecasts and printf formats */ > typedef unsigned long long u64; > > @@ -258,6 +260,12 @@ void tracecmd_disable_tracing(void); > void tracecmd_enable_tracing(void); > void tracecmd_stat_cpu(struct trace_seq *s, int cpu); > > +int make_vsock(unsigned int port); > +int get_vsock_port(int sd, unsigned int *port); trace-agent.c is not getting compiled if VSOCK isn't defined so those functions won't be available then. Put them undef #ifdef VSOCK here too? Or have all vsock functions in a separate .c file, #ifdef-ed so that those functions do nothing when VSOCK is not defined? > +int open_vsock(unsigned int cid, unsigned int port); > + > +char *get_guest_file(const char *file, const char *guest); Cheers, -- Slavi
On Thu, Nov 28, 2019 at 4:51 PM Slavomir Kaslev <slavomir.kaslev@gmail.com> wrote: > > On Thu, Nov 28, 2019 at 11:01 AM Tzvetomir Stoyanov (VMware) > <tz.stoyanov@gmail.com> wrote: > > > > In order to reuse code inside trace-cmd application context, > > few functions are made non static: > > int make_vsock(unsigned int port); > > int get_vsock_port(int sd, unsigned int *port); > > int open_vsock(unsigned int cid, unsigned int port); > > char *get_guest_file(const char *file, const char *guest); > > > > Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> > > --- > > tracecmd/include/trace-local.h | 8 ++++++++ > > tracecmd/trace-agent.c | 4 ++-- > > tracecmd/trace-record.c | 8 ++++---- > > 3 files changed, 14 insertions(+), 6 deletions(-) > > > > diff --git a/tracecmd/include/trace-local.h b/tracecmd/include/trace-local.h > > index a6f79c5..17ef31a 100644 > > --- a/tracecmd/include/trace-local.h > > +++ b/tracecmd/include/trace-local.h > > @@ -19,6 +19,8 @@ > > #define GUEST_FIFO_FMT GUEST_DIR_FMT "/" GUEST_PIPE_NAME "%d" > > #define VIRTIO_FIFO_FMT "/dev/virtio-ports/" GUEST_PIPE_NAME "%d" > > > > +#define TRACE_FILENAME "trace.dat" > > + > > /* fix stupid glib guint64 typecasts and printf formats */ > > typedef unsigned long long u64; > > > > @@ -258,6 +260,12 @@ void tracecmd_disable_tracing(void); > > void tracecmd_enable_tracing(void); > > void tracecmd_stat_cpu(struct trace_seq *s, int cpu); > > > > +int make_vsock(unsigned int port); > > +int get_vsock_port(int sd, unsigned int *port); > > trace-agent.c is not getting compiled if VSOCK isn't defined so those > functions won't be available then. Put them undef #ifdef VSOCK here > too? Or have all vsock functions in a separate .c file, #ifdef-ed so > that those functions do nothing when VSOCK is not defined? > The implementation is not tested yet with not defined VSOCK, I'll test and fix those. Thanks! > > +int open_vsock(unsigned int cid, unsigned int port); > > + > > +char *get_guest_file(const char *file, const char *guest); > > Cheers, > > -- Slavi
diff --git a/tracecmd/include/trace-local.h b/tracecmd/include/trace-local.h index a6f79c5..17ef31a 100644 --- a/tracecmd/include/trace-local.h +++ b/tracecmd/include/trace-local.h @@ -19,6 +19,8 @@ #define GUEST_FIFO_FMT GUEST_DIR_FMT "/" GUEST_PIPE_NAME "%d" #define VIRTIO_FIFO_FMT "/dev/virtio-ports/" GUEST_PIPE_NAME "%d" +#define TRACE_FILENAME "trace.dat" + /* fix stupid glib guint64 typecasts and printf formats */ typedef unsigned long long u64; @@ -258,6 +260,12 @@ void tracecmd_disable_tracing(void); void tracecmd_enable_tracing(void); void tracecmd_stat_cpu(struct trace_seq *s, int cpu); +int make_vsock(unsigned int port); +int get_vsock_port(int sd, unsigned int *port); +int open_vsock(unsigned int cid, unsigned int port); + +char *get_guest_file(const char *file, const char *guest); + /* No longer in event-utils.h */ void __noreturn die(const char *fmt, ...); /* Can be overriden */ void *malloc_or_die(unsigned int size); /* Can be overridden */ diff --git a/tracecmd/trace-agent.c b/tracecmd/trace-agent.c index cc330b7..530f972 100644 --- a/tracecmd/trace-agent.c +++ b/tracecmd/trace-agent.c @@ -40,7 +40,7 @@ static int get_local_cid(unsigned int *cid) return ret; } -static int make_vsock(unsigned int port) +int make_vsock(unsigned int port) { struct sockaddr_vm addr = { .svm_family = AF_VSOCK, @@ -64,7 +64,7 @@ static int make_vsock(unsigned int port) return sd; } -static int get_vsock_port(int sd, unsigned int *port) +int get_vsock_port(int sd, unsigned int *port) { struct sockaddr_vm addr; socklen_t addr_len = sizeof(addr); diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c index e7fb1bd..e66f999 100644 --- a/tracecmd/trace-record.c +++ b/tracecmd/trace-record.c @@ -68,7 +68,7 @@ static int rt_prio; static int keep; -static const char *output_file = "trace.dat"; +static const char *output_file = TRACE_FILENAME; static int latency; static int sleep_time = 1000; @@ -536,7 +536,7 @@ static char *get_temp_file(struct buffer_instance *instance, int cpu) return file; } -static char *get_guest_file(const char *file, const char *guest) +char *get_guest_file(const char *file, const char *guest) { const char *p; char *out = NULL; @@ -2772,7 +2772,7 @@ static int connect_port(const char *host, unsigned int port) } #ifdef VSOCK -static int open_vsock(unsigned int cid, unsigned int port) +int open_vsock(unsigned int cid, unsigned int port) { struct sockaddr_vm addr = { .svm_family = AF_VSOCK, @@ -2835,7 +2835,7 @@ static bool can_splice_read_vsock(void) } #else -static inline int open_vsock(unsigned int cid, unsigned int port) +int open_vsock(unsigned int cid, unsigned int port) { die("vsock is not supported"); return -1;
In order to reuse code inside trace-cmd application context, few functions are made non static: int make_vsock(unsigned int port); int get_vsock_port(int sd, unsigned int *port); int open_vsock(unsigned int cid, unsigned int port); char *get_guest_file(const char *file, const char *guest); Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> --- tracecmd/include/trace-local.h | 8 ++++++++ tracecmd/trace-agent.c | 4 ++-- tracecmd/trace-record.c | 8 ++++---- 3 files changed, 14 insertions(+), 6 deletions(-)