diff mbox series

[v15,15/18] trace-cmd: Refactor few trace-cmd internal functions.

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

Commit Message

Tzvetomir Stoyanov (VMware) Nov. 28, 2019, 8:54 a.m. UTC
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(-)

Comments

Slavomir Kaslev Nov. 28, 2019, 2:51 p.m. UTC | #1
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
Tzvetomir Stoyanov (VMware) Nov. 28, 2019, 3:08 p.m. UTC | #2
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 mbox series

Patch

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;