linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] trace-cmd: Fix tracecmd_recorder leaking file descriptors
@ 2019-02-14 14:07 Slavomir Kaslev
  2019-02-14 14:07 ` [PATCH 2/3] trace-cmd: Add defines for splice() flags on systems with old glibc Slavomir Kaslev
  2019-02-14 14:07 ` [PATCH 3/3] trace-cmd: Removed some unused #includes Slavomir Kaslev
  0 siblings, 2 replies; 4+ messages in thread
From: Slavomir Kaslev @ 2019-02-14 14:07 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel, slavomir.kaslev

tracecmd_recorder is leaking brass pipe() file descriptors it creates for
splice()-ing. Fix this.

Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
---
 lib/trace-cmd/trace-recorder.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/trace-cmd/trace-recorder.c b/lib/trace-cmd/trace-recorder.c
index 5331925..b941cdc 100644
--- a/lib/trace-cmd/trace-recorder.c
+++ b/lib/trace-cmd/trace-recorder.c
@@ -88,6 +88,12 @@ void tracecmd_free_recorder(struct tracecmd_recorder *recorder)
 		append_file(recorder->page_size, recorder->fd1, recorder->fd2);
 	}
  close:
+	if (recorder->brass[0] >= 0)
+		close(recorder->brass[0]);
+
+	if (recorder->brass[1] >= 0)
+		close(recorder->brass[1]);
+
 	if (recorder->trace_fd >= 0)
 		close(recorder->trace_fd);
 
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/3] trace-cmd: Add defines for splice() flags on systems with old glibc
  2019-02-14 14:07 [PATCH 1/3] trace-cmd: Fix tracecmd_recorder leaking file descriptors Slavomir Kaslev
@ 2019-02-14 14:07 ` Slavomir Kaslev
  2019-02-14 14:07 ` [PATCH 3/3] trace-cmd: Removed some unused #includes Slavomir Kaslev
  1 sibling, 0 replies; 4+ messages in thread
From: Slavomir Kaslev @ 2019-02-14 14:07 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel, slavomir.kaslev

Use SPLICE_F_ defines to refer to splice() flags instead of their numeric
values. This should be only necessary on systems with glibc version < 2.5.

No changes in behavior intended.

Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
---
 lib/trace-cmd/trace-recorder.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/lib/trace-cmd/trace-recorder.c b/lib/trace-cmd/trace-recorder.c
index b941cdc..1b6a995 100644
--- a/lib/trace-cmd/trace-recorder.c
+++ b/lib/trace-cmd/trace-recorder.c
@@ -26,6 +26,13 @@
 # define F_GETPIPE_SZ	1032 /* The Linux number for the option */
 #endif
 
+#ifndef SPLICE_F_MOVE
+# define SPLICE_F_MOVE		1
+# define SPLICE_F_NONBLOCK	2
+# define SPLICE_F_MORE		4
+# define SPLICE_F_GIFT		8
+#endif
+
 struct tracecmd_recorder {
 	int		fd;
 	int		fd1;
@@ -122,10 +129,10 @@ tracecmd_create_buffer_recorder_fd2(int fd, int fd2, int cpu, unsigned flags,
 	recorder->cpu = cpu;
 	recorder->flags = flags;
 
-	recorder->fd_flags = 1; /* SPLICE_F_MOVE */
+	recorder->fd_flags = SPLICE_F_MOVE;
 
 	if (!(recorder->flags & TRACECMD_RECORD_BLOCK))
-		recorder->fd_flags |= 2; /* and NON_BLOCK */
+		recorder->fd_flags |= SPLICE_F_NONBLOCK;
 
 	/* Init to know what to free and release */
 	recorder->trace_fd = -1;
@@ -349,7 +356,7 @@ static long splice_data(struct tracecmd_recorder *recorder)
 	long ret;
 
 	read = splice(recorder->trace_fd, NULL, recorder->brass[1], NULL,
-		      recorder->pipe_size, 1 /* SPLICE_F_MOVE */);
+		      recorder->pipe_size, SPLICE_F_MOVE);
 	if (read < 0) {
 		if (errno != EAGAIN && errno != EINTR) {
 			warning("recorder error in splice input");
@@ -421,7 +428,7 @@ static void set_nonblock(struct tracecmd_recorder *recorder)
 	fcntl(recorder->trace_fd, F_SETFL, flags | O_NONBLOCK);
 
 	/* Do not block on streams for write */
-	recorder->fd_flags |= 2; /* NON_BLOCK */
+	recorder->fd_flags |= SPLICE_F_NONBLOCK;
 }
 
 long tracecmd_flush_recording(struct tracecmd_recorder *recorder)
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/3] trace-cmd: Removed some unused #includes
  2019-02-14 14:07 [PATCH 1/3] trace-cmd: Fix tracecmd_recorder leaking file descriptors Slavomir Kaslev
  2019-02-14 14:07 ` [PATCH 2/3] trace-cmd: Add defines for splice() flags on systems with old glibc Slavomir Kaslev
@ 2019-02-14 14:07 ` Slavomir Kaslev
  2019-02-14 17:32   ` Steven Rostedt
  1 sibling, 1 reply; 4+ messages in thread
From: Slavomir Kaslev @ 2019-02-14 14:07 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel, slavomir.kaslev

This patch removes several unused #include directives.

No changes in behaviour intended.

Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
---
 lib/trace-cmd/trace-input.c    | 9 ---------
 lib/trace-cmd/trace-recorder.c | 9 +--------
 2 files changed, 1 insertion(+), 17 deletions(-)

diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c
index b628570..34a8301 100644
--- a/lib/trace-cmd/trace-input.c
+++ b/lib/trace-cmd/trace-input.c
@@ -4,22 +4,13 @@
  *
  */
 #define _LARGEFILE64_SOURCE
-#include <dirent.h>
 #include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
-#include <getopt.h>
-#include <stdarg.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
 #include <sys/mman.h>
-#include <pthread.h>
 #include <regex.h>
 #include <fcntl.h>
 #include <unistd.h>
-#include <ctype.h>
 #include <errno.h>
 
 #include <linux/time64.h>
diff --git a/lib/trace-cmd/trace-recorder.c b/lib/trace-cmd/trace-recorder.c
index 1b6a995..0b8d98a 100644
--- a/lib/trace-cmd/trace-recorder.c
+++ b/lib/trace-cmd/trace-recorder.c
@@ -4,18 +4,11 @@
  *
  */
 #define _LARGEFILE64_SOURCE
-#include <dirent.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <pthread.h>
 #include <fcntl.h>
+#include <time.h>
 #include <unistd.h>
-#include <ctype.h>
 #include <errno.h>
 
 #include "trace-cmd.h"
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/3] trace-cmd: Removed some unused #includes
  2019-02-14 14:07 ` [PATCH 3/3] trace-cmd: Removed some unused #includes Slavomir Kaslev
@ 2019-02-14 17:32   ` Steven Rostedt
  0 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2019-02-14 17:32 UTC (permalink / raw)
  To: Slavomir Kaslev; +Cc: linux-trace-devel, slavomir.kaslev

On Thu, 14 Feb 2019 16:07:23 +0200
Slavomir Kaslev <kaslevs@vmware.com> wrote:

> This patch removes several unused #include directives.
> 
> No changes in behaviour intended.
> 
> Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
> ---
>  lib/trace-cmd/trace-input.c    | 9 ---------
>  lib/trace-cmd/trace-recorder.c | 9 +--------
>  2 files changed, 1 insertion(+), 17 deletions(-)
> 
> diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c
> index b628570..34a8301 100644
> --- a/lib/trace-cmd/trace-input.c
> +++ b/lib/trace-cmd/trace-input.c
> @@ -4,22 +4,13 @@
>   *
>   */
>  #define _LARGEFILE64_SOURCE
> -#include <dirent.h>
>  #include <stdbool.h>
>  #include <stdio.h>
>  #include <stdlib.h>
> -#include <string.h>
> -#include <getopt.h>
> -#include <stdarg.h>
> -#include <sys/types.h>
> -#include <sys/stat.h>
> -#include <sys/wait.h>
>  #include <sys/mman.h>
> -#include <pthread.h>
>  #include <regex.h>
>  #include <fcntl.h>
>  #include <unistd.h>
> -#include <ctype.h>
>  #include <errno.h>
>  
>  #include <linux/time64.h>
> diff --git a/lib/trace-cmd/trace-recorder.c b/lib/trace-cmd/trace-recorder.c
> index 1b6a995..0b8d98a 100644
> --- a/lib/trace-cmd/trace-recorder.c
> +++ b/lib/trace-cmd/trace-recorder.c
> @@ -4,18 +4,11 @@
>   *
>   */
>  #define _LARGEFILE64_SOURCE
> -#include <dirent.h>
>  #include <stdio.h>
>  #include <stdlib.h>
> -#include <string.h>
> -#include <stdarg.h>
> -#include <sys/types.h>
> -#include <sys/stat.h>
> -#include <sys/wait.h>
> -#include <pthread.h>
>  #include <fcntl.h>
> +#include <time.h>
>  #include <unistd.h>
> -#include <ctype.h>
>  #include <errno.h>
>  
>  #include "trace-cmd.h"

Nice cleanup.

Just an FYI, even on random patches, it's still good to have a cover
email for more than one patch series "[PATCH 0/3]", as it organizes it
better in inboxes.

BTW, I applied all of these.

Thanks Slavomir!

-- Steve

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-14 17:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-14 14:07 [PATCH 1/3] trace-cmd: Fix tracecmd_recorder leaking file descriptors Slavomir Kaslev
2019-02-14 14:07 ` [PATCH 2/3] trace-cmd: Add defines for splice() flags on systems with old glibc Slavomir Kaslev
2019-02-14 14:07 ` [PATCH 3/3] trace-cmd: Removed some unused #includes Slavomir Kaslev
2019-02-14 17:32   ` Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).