Recently, I'm tracing the io_uring in Linux kernel. I found a function trace_io_uring_submit_sqe was called in io_uring.c. Through searching symbol on Github mirror repository or on elixir.bootlin, I can't found the definition of its. Are there any other way to find it or it just doesn't exist?
Where is the function: trace_io_uring_submit_sqe in Linux kernel?
298 Views Asked by Steven At
1
There are 1 best solutions below
Related Questions in LINUX-KERNEL
- kernel module does not print packet info
- android linux kernel communicate with user space about NETLINK_USER
- How to offload NAPI poll function to workqueue
- Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?
- Bootloader in Assembly with Linux kernel
- pktgen not sending packets more than 1kb big
- Use static analysis tools to check null pointers and memory leaks in Linux device drivers
- How to build Linux kernel to support SO_ATTACH_BPF socket option?
- How do I know the last sched time of a process
- linux kernel compile error....udevd[63]: error getting socket
- Process in background mode trying to read from stdin
- board firmware update through uefi capsule feature from Linux
- spin_lock before writing status register
- Kernel module configuration locked built in?
- Install Subversion 1.7 on Debian jessie
Related Questions in IO-URING
- Unable to write file with io_uring in kernel 5.4 (always returns EINVAL)
- How to guarantee that the io_uring completion queue never overflows?
- How io-uring implementation is different from AIO?
- Why can't gdb read io_uring_cqe contents?
- Trouble compiling io_uring
- /usr/bin/ld: cannot find -lliburing
- io_uring: What is the use case for flag IORING_REGISTER_FILES_SKIP
- Does IOCP and io_uring read/write Asynchronous?
- io_uring: io_uring_wait_cqe_nr, io_uring_peek_batch_cqe
- liburing: io_uring_submit() causes error when placed in await_suspend
- Where is the function: trace_io_uring_submit_sqe in Linux kernel?
- Max registered buffers size in io_uring
- Is epoll a better API than io_uring?
- What exactly is io_uring?
- Waiting for epoll and io_uring simultaneously
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
This symbol is created dynamically using a macro, that's why you can't find it in the sources.
The file trace/events/io_uring.h is included on line 84, and it contains this usage of macro
TRACE_EVENT:The
TRACE_EVENTmacro is defined in linux/tracepoint.h using another macro,DECLARE_TRACE.DECLARE_TRACEis defined in the same file on line 418 and uses__DECLARE_TRACEwhich is defined in the same file again, on line 241 or 341 depending on the value of the macroTRACEPOINTS_ENABLEDon line 162.The
__DECLARE_TRACEmacro begins with:This line specifically:
expands into a declaration of a
static inline voidfunction whose name is thenamepassed down fromTRACE_EVENTwith a prefixtrace_prepended to it (##is used for string concatenation in macros), which in your case results in a name oftrace_io_uring_submit_sqe.Here you may find documentation of tracing.
How to recognize dynamic code generation using macros?
If you look throughout the
io_uring.cfile you will find a few functions with names following the formula oftrace_ + some_function. At the same time, none of them can be found in the source code. This often means these symbols are generated using a macro. In such cases you could try looking for the common prefix instead of the whole symbol. If you search fortrace_on github you will find multiple similar macros which could have given you an idea of what is happening.