tracefs_cpu_open(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | EXAMPLE | FILES | SEE ALSO | AUTHOR | REPORTING BUGS | LICENSE | RESOURCES | COPYING | NOTES | COLOPHON

LIBTRACEFS(3)               libtracefs Manual              LIBTRACEFS(3)

NAME         top

       tracefs_cpu_open, tracefs_cpu_close, tracefs_cpu_alloc_fd,
       tracefs_cpu_free_fd - Opening trace_pipe_raw data for reading

SYNOPSIS         top

       #include <tracefs.h>

       struct tracefs_cpu *tracefs_cpu_open(struct tracefs_instance *instance,
                                            int cpu, bool nonblock);
       void tracefs_cpu_close(struct tracefs_cpu *tcpu);

       struct tracefs_cpu *tracefs_cpu_alloc_fd(int fd, int subbuf_size, bool nonblock);
       void tracefs_cpu_free_fd(struct tracefs_cpu *tcpu);

DESCRIPTION         top

       This set of APIs can be used to open the raw data from the
       trace_pipe_raw files in the tracefs file system in oder to read
       them with the tracefs_cpu_read(3) functions.

       The tracefs_cpu_open() creates a descriptor that can read the
       tracefs trace_pipe_raw file for a given cpu in a given instance.
       If instance is NULL than the toplevel trace_pipe_raw file is
       used.

       The tracefs_cpu_close() closes all the file descriptors
       associated to the trace_pipe_raw opened by tracefs_cpu_open().

       The tracefs_cpu_alloc_fd() will create a tracefs_cpu descriptor
       from an existing file descriptor fd. This is useful to use when
       connecting to a socket or pipe where the other end is feeding raw
       tracing data in the same format as the trace_pipe_raw file would
       (like in guest to host tracing). The caller is responsible for
       determining the subbuf_size that will be used to break up the
       sub-buffers being read by the file descriptor. The nonblock is
       treated the same as the same parameter in tracefs_cpu_open().

       The tracefs_cpu_free_fd() is used to free the descriptor returned
       by tracefs_cpu_alloc_fd(). It does all the clean up that
       tracefs_cpu_close() performs, and that could also be used to free
       up the descriptor created by tracefs_cpu_alloc_fd() but will also
       close the file descriptor passed in. Note that
       tracefs_cpu_free_fd() should not be used on the descriptor
       returned by tracefs_cpu_open() as it will not close the file
       descriptor created by it.

RETURN VALUE         top

       The tracefs_cpu_open() returns a struct tracefs_cpu descriptor
       that can be used by the other functions or NULL on error.

       The tracefs_cpu_alloc_fd() returns a struct tracefs_cpu
       descriptor that can be used by the tracefs_cpu_read(3) related
       functions, where the descriptor will be reading the passed in fd
       file descriptor.

EXAMPLE         top

       See tracefs_cpu_read(3) for an example.

FILES         top

           tracefs.h
                   Header file to include in order to have access to the library APIs.
           -ltracefs
                   Linker switch to add when building a program that uses the library.

SEE ALSO         top

       libtracefs(3), libtraceevent(3), trace-cmd(1)

AUTHOR         top

           Steven Rostedt <rostedt@goodmis.org[1]>

REPORTING BUGS         top

       Report bugs to <linux-trace-devel@vger.kernel.org[2]>

LICENSE         top

       libtracefs is Free Software licensed under the GNU LGPL 2.1

RESOURCES         top

       https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/ 

COPYING         top

       Copyright (C) 2022 Google, Inc. Free use of this software is
       granted under the terms of the GNU Public License (GPL).

NOTES         top

        1. rostedt@goodmis.org
           mailto:rostedt@goodmis.org

        2. linux-trace-devel@vger.kernel.org
           mailto:linux-trace-devel@vger.kernel.org

COLOPHON         top

       This page is part of the libtracefs (Linux kernel trace file
       system library) project.  Information about the project can be
       found at ⟨https://www.trace-cmd.org/⟩.  If you have a bug report
       for this manual page, see ⟨https://www.trace-cmd.org/⟩.  This
       page was obtained from the project's upstream Git repository
       ⟨https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git⟩ on
       2023-12-22.  (At that time, the date of the most recent commit
       that was found in the repository was 2023-07-05.)  If you
       discover any rendering problems in this HTML version of the page,
       or you believe there is a better or more up-to-date source for
       the page, or you have corrections or improvements to the
       information in this COLOPHON (which is not part of the original
       manual page), send a mail to man-pages@man7.org

libtracefs 1.7.0               12/22/2023                  LIBTRACEFS(3)

Pages that refer to this page: tracefs_cpu_read_size(3)