Bundle lttng-modules-2.11.7
This commit is contained in:
parent
60051396a5
commit
c98ea5e20a
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,10 @@
|
|||
LTTng Modules Kernel Tracer Coding Style
|
||||
|
||||
The coding style used for this project follows the the Linux kernel
|
||||
guide lines. Please refer to:
|
||||
|
||||
- Linux kernel Documentation/CodingStyle document for details,
|
||||
- Linux kernel scripts/checkpatch.pl for a script which verify the patch
|
||||
coding style.
|
||||
|
||||
Mathieu Desnoyers, May 30, 2012
|
|
@ -0,0 +1,53 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR LGPL-2.1)
|
||||
|
||||
# Work-around for distro-specific public modules ABI breakages.
|
||||
# Some distributions break the public module instrumentation ABI
|
||||
# compared to upstream stable kernels without providing other mean than
|
||||
# the kernel EXTRAVERSION to figure it out. Translate this information
|
||||
# into a define visible from the C preprocessor.
|
||||
|
||||
DEB_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/abi-debian-version.sh $(CURDIR))
|
||||
|
||||
ifneq ($(DEB_API_VERSION), 0)
|
||||
ccflags-y += -DDEBIAN_API_VERSION=$(DEB_API_VERSION)
|
||||
endif
|
||||
|
||||
RHEL_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/abi-rhel-version.sh $(CURDIR))
|
||||
|
||||
ifneq ($(RHEL_API_VERSION), 0)
|
||||
ccflags-y += -DRHEL_API_VERSION=$(RHEL_API_VERSION)
|
||||
endif
|
||||
|
||||
SLE_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/abi-sle-version.sh $(CURDIR))
|
||||
|
||||
ifneq ($(SLE_API_VERSION), 0)
|
||||
ccflags-y += -DSLE_API_VERSION=$(SLE_API_VERSION)
|
||||
endif
|
||||
|
||||
FEDORA_REVISION_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/abi-fedora-version.sh $(CURDIR))
|
||||
|
||||
ifneq ($(FEDORA_REVISION_VERSION), 0)
|
||||
ccflags-y += -DFEDORA_REVISION_VERSION=$(FEDORA_REVISION_VERSION)
|
||||
endif
|
||||
|
||||
RT_PATCH_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/rt-patch-version.sh $(CURDIR))
|
||||
|
||||
ifneq ($(RT_PATCH_VERSION), 0)
|
||||
ccflags-y += -DRT_PATCH_VERSION=$(RT_PATCH_VERSION)
|
||||
endif
|
||||
|
||||
EXTRA_VERSION_NAME:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/extra-version-name.sh $(TOP_LTTNG_MODULES_DIR))
|
||||
|
||||
ifneq ($(EXTRA_VERSION_NAME), 0)
|
||||
ccflags-y += -DLTTNG_EXTRA_VERSION_NAME='"$(EXTRA_VERSION_NAME)"'
|
||||
endif
|
||||
|
||||
EXTRA_VERSION_GIT:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/extra-version-git.sh $(TOP_LTTNG_MODULES_DIR))
|
||||
|
||||
ifneq ($(EXTRA_VERSION_GIT), 0)
|
||||
ccflags-y += -DLTTNG_EXTRA_VERSION_GIT='"$(EXTRA_VERSION_GIT)"'
|
||||
endif
|
||||
|
||||
EXTRA_VERSION_PATCHES:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/extra-version-patches.sh $(TOP_LTTNG_MODULES_DIR))
|
||||
|
||||
# vim:syntax=make
|
|
@ -0,0 +1,16 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1)
|
||||
|
||||
config LTTNG
|
||||
tristate "LTTng support"
|
||||
select TRACING
|
||||
help
|
||||
LTTng is an open source tracing framework for Linux.
|
||||
|
||||
See https://lttng.org/
|
||||
|
||||
To compile as a set of modules, choose M here. To compile into
|
||||
the Linux kernel image, choose Y.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
source "lttng/tests/Kconfig"
|
|
@ -0,0 +1,34 @@
|
|||
LTTng modules licensing
|
||||
Mathieu Desnoyers
|
||||
June 2, 2011
|
||||
|
||||
* LGPL-2.1 / GPL-2.0 dual-license
|
||||
|
||||
The files contained within this package are licensed under
|
||||
LGPL-2.1 / GPL-2.0 dual-license (see LICENSES/LGPL-2.1 and LICENSES/GPL-2.0 for
|
||||
details), except for files identified by the following sections.
|
||||
|
||||
* GPL-2.0 license
|
||||
|
||||
These files are licensed exclusively under the GPL-2.0 license. See
|
||||
LICENSES/GPL-2.0 for details.
|
||||
|
||||
lib/ringbuffer/ring_buffer_splice.c
|
||||
lib/ringbuffer/ring_buffer_mmap.c
|
||||
instrumentation/events/lttng-module/*.h
|
||||
wrapper/list.h
|
||||
|
||||
* MIT-style license
|
||||
|
||||
These files are licensed under an MIT-style license. See LICENSES/MIT
|
||||
for details.
|
||||
|
||||
lib/prio_heap/lttng_prio_heap.h
|
||||
lib/prio_heap/lttng_prio_heap.c
|
||||
lib/bitfield.h
|
||||
filter-bytecode.h
|
||||
lttng-filter-interpreter.c
|
||||
lttng-filter-specialize.c
|
||||
lttng-filter-validator.c
|
||||
lttng-filter.c
|
||||
lttng-filter.h
|
|
@ -0,0 +1,359 @@
|
|||
Valid-License-Identifier: GPL-2.0
|
||||
Valid-License-Identifier: GPL-2.0-only
|
||||
Valid-License-Identifier: GPL-2.0+
|
||||
Valid-License-Identifier: GPL-2.0-or-later
|
||||
SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
For 'GNU General Public License (GPL) version 2 only' use:
|
||||
SPDX-License-Identifier: GPL-2.0
|
||||
or
|
||||
SPDX-License-Identifier: GPL-2.0-only
|
||||
For 'GNU General Public License (GPL) version 2 or any later version' use:
|
||||
SPDX-License-Identifier: GPL-2.0+
|
||||
or
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
License-Text:
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
|
@ -0,0 +1,503 @@
|
|||
Valid-License-Identifier: LGPL-2.1
|
||||
Valid-License-Identifier: LGPL-2.1+
|
||||
SPDX-URL: https://spdx.org/licenses/LGPL-2.1.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
For 'GNU Lesser General Public License (LGPL) version 2.1 only' use:
|
||||
SPDX-License-Identifier: LGPL-2.1
|
||||
For 'GNU Lesser General Public License (LGPL) version 2.1 or any later
|
||||
version' use:
|
||||
SPDX-License-Identifier: LGPL-2.1+
|
||||
License-Text:
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts as
|
||||
the successor of the GNU Library Public License, version 2, hence the
|
||||
version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your freedom to
|
||||
share and change it. By contrast, the GNU General Public Licenses are
|
||||
intended to guarantee your freedom to share and change free software--to
|
||||
make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some specially
|
||||
designated software packages--typically libraries--of the Free Software
|
||||
Foundation and other authors who decide to use it. You can use it too, but
|
||||
we suggest you first think carefully about whether this license or the
|
||||
ordinary General Public License is the better strategy to use in any
|
||||
particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use, not
|
||||
price. Our General Public Licenses are designed to make sure that you have
|
||||
the freedom to distribute copies of free software (and charge for this
|
||||
service if you wish); that you receive source code or can get it if you
|
||||
want it; that you can change the software and use pieces of it in new free
|
||||
programs; and that you are informed that you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis or for
|
||||
a fee, you must give the recipients all the rights that we gave you. You
|
||||
must make sure that they, too, receive or can get the source code. If you
|
||||
link other code with the library, you must provide complete object files to
|
||||
the recipients, so that they can relink them with the library after making
|
||||
changes to the library and recompiling it. And you must show them these
|
||||
terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that there is no
|
||||
warranty for the free library. Also, if the library is modified by someone
|
||||
else and passed on, the recipients should know that what they have is not
|
||||
the original version, so that the original author's reputation will not be
|
||||
affected by problems that might be introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of any
|
||||
free program. We wish to make sure that a company cannot effectively
|
||||
restrict the users of a free program by obtaining a restrictive license
|
||||
from a patent holder. Therefore, we insist that any patent license obtained
|
||||
for a version of the library must be consistent with the full freedom of
|
||||
use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary GNU
|
||||
General Public License. This license, the GNU Lesser General Public
|
||||
License, applies to certain designated libraries, and is quite different
|
||||
from the ordinary General Public License. We use this license for certain
|
||||
libraries in order to permit linking those libraries into non-free
|
||||
programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using a
|
||||
shared library, the combination of the two is legally speaking a combined
|
||||
work, a derivative of the original library. The ordinary General Public
|
||||
License therefore permits such linking only if the entire combination fits
|
||||
its criteria of freedom. The Lesser General Public License permits more lax
|
||||
criteria for linking other code with the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it does
|
||||
Less to protect the user's freedom than the ordinary General Public
|
||||
License. It also provides other free software developers Less of an
|
||||
advantage over competing non-free programs. These disadvantages are the
|
||||
reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to encourage
|
||||
the widest possible use of a certain library, so that it becomes a de-facto
|
||||
standard. To achieve this, non-free programs must be allowed to use the
|
||||
library. A more frequent case is that a free library does the same job as
|
||||
widely used non-free libraries. In this case, there is little to gain by
|
||||
limiting the free library to free software only, so we use the Lesser
|
||||
General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free programs
|
||||
enables a greater number of people to use a large body of free
|
||||
software. For example, permission to use the GNU C Library in non-free
|
||||
programs enables many more people to use the whole GNU operating system, as
|
||||
well as its variant, the GNU/Linux operating system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the users'
|
||||
freedom, it does ensure that the user of a program that is linked with the
|
||||
Library has the freedom and the wherewithal to run that program using a
|
||||
modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and modification
|
||||
follow. Pay close attention to the difference between a "work based on the
|
||||
library" and a "work that uses the library". The former contains code
|
||||
derived from the library, whereas the latter must be combined with the
|
||||
library in order to run.
|
||||
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other program
|
||||
which contains a notice placed by the copyright holder or other
|
||||
authorized party saying it may be distributed under the terms of this
|
||||
Lesser General Public License (also called "this License"). Each
|
||||
licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work which
|
||||
has been distributed under these terms. A "work based on the Library"
|
||||
means either the Library or any derivative work under copyright law:
|
||||
that is to say, a work containing the Library or a portion of it, either
|
||||
verbatim or with modifications and/or translated straightforwardly into
|
||||
another language. (Hereinafter, translation is included without
|
||||
limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for making
|
||||
modifications to it. For a library, complete source code means all the
|
||||
source code for all modules it contains, plus any associated interface
|
||||
definition files, plus the scripts used to control compilation and
|
||||
installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of running
|
||||
a program using the Library is not restricted, and output from such a
|
||||
program is covered only if its contents constitute a work based on the
|
||||
Library (independent of the use of the Library in a tool for writing
|
||||
it). Whether that is true depends on what the Library does and what the
|
||||
program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's complete
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the notices
|
||||
that refer to this License and to the absence of any warranty; and
|
||||
distribute a copy of this License along with the Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion of it,
|
||||
thus forming a work based on the Library, and copy and distribute such
|
||||
modifications or work under the terms of Section 1 above, provided that
|
||||
you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices stating
|
||||
that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no charge to
|
||||
all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a table
|
||||
of data to be supplied by an application program that uses the
|
||||
facility, other than as an argument passed when the facility is
|
||||
invoked, then you must make a good faith effort to ensure that, in
|
||||
the event an application does not supply such function or table, the
|
||||
facility still operates, and performs whatever part of its purpose
|
||||
remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has a
|
||||
purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must be
|
||||
optional: if the application does not supply it, the square root
|
||||
function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library, and
|
||||
can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based on
|
||||
the Library, the distribution of the whole must be on the terms of this
|
||||
License, whose permissions for other licensees extend to the entire
|
||||
whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of a
|
||||
storage or distribution medium does not bring the other work under the
|
||||
scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so that
|
||||
they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in these
|
||||
notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for that
|
||||
copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of the
|
||||
Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or derivative of
|
||||
it, under Section 2) in object code or executable form under the terms
|
||||
of Sections 1 and 2 above provided that you accompany it with the
|
||||
complete corresponding machine-readable source code, which must be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy from a
|
||||
designated place, then offering equivalent access to copy the source
|
||||
code from the same place satisfies the requirement to distribute the
|
||||
source code, even though third parties are not compelled to copy the
|
||||
source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the Library, but
|
||||
is designed to work with the Library by being compiled or linked with
|
||||
it, is called a "work that uses the Library". Such a work, in isolation,
|
||||
is not a derivative work of the Library, and therefore falls outside the
|
||||
scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library creates
|
||||
an executable that is a derivative of the Library (because it contains
|
||||
portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License. Section 6
|
||||
states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is
|
||||
not. Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data structure
|
||||
layouts and accessors, and small macros and small inline functions (ten
|
||||
lines or less in length), then the use of the object file is
|
||||
unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section
|
||||
6. Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or link a
|
||||
"work that uses the Library" with the Library to produce a work
|
||||
containing portions of the Library, and distribute that work under terms
|
||||
of your choice, provided that the terms permit modification of the work
|
||||
for the customer's own use and reverse engineering for debugging such
|
||||
modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work during
|
||||
execution displays copyright notices, you must include the copyright
|
||||
notice for the Library among them, as well as a reference directing the
|
||||
user to the copy of this License. Also, you must do one of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding machine-readable
|
||||
source code for the Library including whatever changes were used in
|
||||
the work (which must be distributed under Sections 1 and 2 above);
|
||||
and, if the work is an executable linked with the Library, with the
|
||||
complete machine-readable "work that uses the Library", as object
|
||||
code and/or source code, so that the user can modify the Library and
|
||||
then relink to produce a modified executable containing the modified
|
||||
Library. (It is understood that the user who changes the contents of
|
||||
definitions files in the Library will not necessarily be able to
|
||||
recompile the application to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a copy
|
||||
of the library already present on the user's computer system, rather
|
||||
than copying library functions into the executable, and (2) will
|
||||
operate properly with a modified version of the library, if the user
|
||||
installs one, as long as the modified version is interface-compatible
|
||||
with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at least three
|
||||
years, to give the same user the materials specified in Subsection
|
||||
6a, above, for a charge no more than the cost of performing this
|
||||
distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy from a
|
||||
designated place, offer equivalent access to copy the above specified
|
||||
materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these materials
|
||||
or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the Library"
|
||||
must include any data and utility programs needed for reproducing the
|
||||
executable from it. However, as a special exception, the materials to be
|
||||
distributed need not include anything that is normally distributed (in
|
||||
either source or binary form) with the major components (compiler,
|
||||
kernel, and so on) of the operating system on which the executable runs,
|
||||
unless that component itself accompanies the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license restrictions
|
||||
of other proprietary libraries that do not normally accompany the
|
||||
operating system. Such a contradiction means you cannot use both them
|
||||
and the Library together in an executable that you distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the Library
|
||||
side-by-side in a single library together with other library facilities
|
||||
not covered by this License, and distribute such a combined library,
|
||||
provided that the separate distribution of the work based on the Library
|
||||
and of the other library facilities is otherwise permitted, and provided
|
||||
that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based on
|
||||
the Library, uncombined with any other library facilities. This must
|
||||
be distributed under the terms of the Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact that part
|
||||
of it is a work based on the Library, and explaining where to find
|
||||
the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute the
|
||||
Library except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, link with, or distribute the
|
||||
Library is void, and will automatically terminate your rights under this
|
||||
License. However, parties who have received copies, or rights, from you
|
||||
under this License will not have their licenses terminated so long as
|
||||
such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not signed
|
||||
it. However, nothing else grants you permission to modify or distribute
|
||||
the Library or its derivative works. These actions are prohibited by law
|
||||
if you do not accept this License. Therefore, by modifying or
|
||||
distributing the Library (or any work based on the Library), you
|
||||
indicate your acceptance of this License to do so, and all its terms and
|
||||
conditions for copying, distributing or modifying the Library or works
|
||||
based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted
|
||||
herein. You are not responsible for enforcing compliance by third
|
||||
parties with this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent license
|
||||
would not permit royalty-free redistribution of the Library by all
|
||||
those who receive copies directly or indirectly through you, then the
|
||||
only way you could satisfy both it and this License would be to refrain
|
||||
entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply, and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is implemented
|
||||
by public license practices. Many people have made generous
|
||||
contributions to the wide range of software distributed through that
|
||||
system in reliance on consistent application of that system; it is up
|
||||
to the author/donor to decide if he or she is willing to distribute
|
||||
software through any other system and a licensee cannot impose that
|
||||
choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in certain
|
||||
countries either by patents or by copyrighted interfaces, the original
|
||||
copyright holder who places the Library under this License may add an
|
||||
explicit geographical distribution limitation excluding those
|
||||
countries, so that distribution is permitted only in or among countries
|
||||
not thus excluded. In such case, this License incorporates the
|
||||
limitation as if written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new versions of
|
||||
the Lesser General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in
|
||||
detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a license
|
||||
version number, you may choose any version ever published by the Free
|
||||
Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free Software
|
||||
Foundation; we sometimes make exceptions for this. Our decision will be
|
||||
guided by the two goals of preserving the free status of all
|
||||
derivatives of our free software and of promoting the sharing and reuse
|
||||
of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
|
||||
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH
|
||||
YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
|
||||
NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
|
||||
DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
|
||||
DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY
|
||||
(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
|
||||
INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
|
||||
THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR
|
||||
OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
one line to give the library's name and an idea of what it does.
|
||||
Copyright (C) year name of author
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or (at
|
||||
your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this library; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add
|
||||
information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in
|
||||
the library `Frob' (a library for tweaking knobs) written
|
||||
by James Random Hacker.
|
||||
|
||||
signature of Ty Coon, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
That's all there is to it!
|
|
@ -0,0 +1,30 @@
|
|||
Valid-License-Identifier: MIT
|
||||
SPDX-URL: https://spdx.org/licenses/MIT.html
|
||||
Usage-Guide:
|
||||
To use the MIT License put the following SPDX tag/value pair into a
|
||||
comment according to the placement guidelines in the licensing rules
|
||||
documentation:
|
||||
SPDX-License-Identifier: MIT
|
||||
License-Text:
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) <year> <copyright holders>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,129 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1)
|
||||
|
||||
ifneq ($(KERNELRELEASE),)
|
||||
|
||||
# This part of the Makefile is used when called by the kernel build system
|
||||
# and defines the modules to be built.
|
||||
|
||||
ifdef CONFIG_LOCALVERSION # Check if dot-config is included.
|
||||
ifeq ($(CONFIG_TRACEPOINTS),)
|
||||
$(error The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration)
|
||||
endif # CONFIG_TRACEPOINTS
|
||||
endif # ifdef CONFIG_LOCALVERSION
|
||||
|
||||
TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))
|
||||
|
||||
lttng_check_linux_version = $(shell pwd)/include/linux/version.h
|
||||
lttng_check_generated_linux_version = $(shell pwd)/include/generated/uapi/linux/version.h
|
||||
|
||||
#
|
||||
# Check for stale version.h, which can be a leftover from an old Linux
|
||||
# kernel tree moved to a newer kernel version, only pruned by make
|
||||
# distclean.
|
||||
#
|
||||
ifneq ($(wildcard $(lttng_check_linux_version)),)
|
||||
ifneq ($(wildcard $(lttng_check_generated_linux_version)),)
|
||||
$(error Duplicate version.h files found in $(lttng_check_linux_version) and $(lttng_check_generated_linux_version). Consider running make distclean on your kernel, or removing the stale $(lttng_check_linux_version) file)
|
||||
endif
|
||||
endif
|
||||
|
||||
include $(TOP_LTTNG_MODULES_DIR)/Kbuild.common
|
||||
|
||||
ccflags-y += -I$(TOP_LTTNG_MODULES_DIR)
|
||||
|
||||
obj-$(CONFIG_LTTNG) += lttng-ring-buffer-client-discard.o
|
||||
obj-$(CONFIG_LTTNG) += lttng-ring-buffer-client-overwrite.o
|
||||
obj-$(CONFIG_LTTNG) += lttng-ring-buffer-metadata-client.o
|
||||
obj-$(CONFIG_LTTNG) += lttng-ring-buffer-client-mmap-discard.o
|
||||
obj-$(CONFIG_LTTNG) += lttng-ring-buffer-client-mmap-overwrite.o
|
||||
obj-$(CONFIG_LTTNG) += lttng-ring-buffer-metadata-mmap-client.o
|
||||
obj-$(CONFIG_LTTNG) += lttng-clock.o
|
||||
|
||||
obj-$(CONFIG_LTTNG) += lttng-tracer.o
|
||||
|
||||
obj-$(CONFIG_LTTNG) += lttng-wrapper.o
|
||||
|
||||
lttng-tracer-objs := lttng-events.o lttng-abi.o lttng-string-utils.o \
|
||||
lttng-probes.o lttng-context.o \
|
||||
lttng-context-pid.o lttng-context-procname.o \
|
||||
lttng-context-prio.o lttng-context-nice.o \
|
||||
lttng-context-vpid.o lttng-context-tid.o \
|
||||
lttng-context-vtid.o lttng-context-ppid.o \
|
||||
lttng-context-vppid.o lttng-context-cpu-id.o \
|
||||
lttng-context-interruptible.o \
|
||||
lttng-context-need-reschedule.o \
|
||||
lttng-context-callstack.o lttng-calibrate.o \
|
||||
lttng-context-hostname.o \
|
||||
probes/lttng.o \
|
||||
lttng-tracker-pid.o \
|
||||
lttng-filter.o lttng-filter-interpreter.o \
|
||||
lttng-filter-specialize.o \
|
||||
lttng-filter-validator.o \
|
||||
probes/lttng-probe-user.o \
|
||||
lttng-tp-mempool.o \
|
||||
|
||||
lttng-wrapper-objs := wrapper/page_alloc.o \
|
||||
wrapper/random.o \
|
||||
wrapper/trace-clock.o \
|
||||
wrapper/kallsyms.o \
|
||||
wrapper/irqdesc.o \
|
||||
wrapper/fdtable.o \
|
||||
lttng-wrapper-impl.o
|
||||
|
||||
ifneq ($(CONFIG_HAVE_SYSCALL_TRACEPOINTS),)
|
||||
lttng-tracer-objs += lttng-syscalls.o
|
||||
endif # CONFIG_HAVE_SYSCALL_TRACEPOINTS
|
||||
|
||||
ifneq ($(CONFIG_PERF_EVENTS),)
|
||||
lttng-tracer-objs += $(shell \
|
||||
if [ $(VERSION) -ge 3 \
|
||||
-o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -eq 6 -a $(SUBLEVEL) -ge 33 \) ] ; then \
|
||||
echo "lttng-context-perf-counters.o" ; fi;)
|
||||
endif # CONFIG_PERF_EVENTS
|
||||
|
||||
ifneq ($(CONFIG_PREEMPT_RT_FULL),)
|
||||
lttng-tracer-objs += lttng-context-migratable.o
|
||||
lttng-tracer-objs += lttng-context-preemptible.o
|
||||
endif # CONFIG_PREEMPT_RT_FULL
|
||||
|
||||
ifneq ($(CONFIG_PREEMPT),)
|
||||
lttng-tracer-objs += lttng-context-preemptible.o
|
||||
endif
|
||||
|
||||
lttng-tracer-objs += $(shell \
|
||||
if [ $(VERSION) -ge 4 \
|
||||
-o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -ge 15 \) ] ; then \
|
||||
echo "lttng-tracepoint.o" ; fi;)
|
||||
|
||||
obj-$(CONFIG_LTTNG) += lttng-statedump.o
|
||||
lttng-statedump-objs := lttng-statedump-impl.o
|
||||
|
||||
obj-$(CONFIG_LTTNG) += probes/
|
||||
obj-$(CONFIG_LTTNG) += lib/
|
||||
obj-$(CONFIG_LTTNG) += tests/
|
||||
|
||||
else # KERNELRELEASE
|
||||
|
||||
# This part of the Makefile is used when the 'make' command is runned in the
|
||||
# base directory of the lttng-modules sources. It sets some environment and
|
||||
# calls the kernel build system to build the actual modules.
|
||||
|
||||
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
|
||||
PWD := $(shell pwd)
|
||||
CFLAGS = $(EXTCFLAGS)
|
||||
|
||||
default: modules
|
||||
|
||||
modules:
|
||||
$(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m modules
|
||||
|
||||
modules_install:
|
||||
$(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m modules_install
|
||||
|
||||
clean:
|
||||
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
|
||||
|
||||
%.i: %.c
|
||||
$(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m $@
|
||||
|
||||
endif # KERNELRELEASE
|
|
@ -0,0 +1,122 @@
|
|||
LTTng-modules
|
||||
=============
|
||||
|
||||
_by [Mathieu Desnoyers](mailto:mathieu.desnoyers@efficios.com)_
|
||||
|
||||
|
||||
LTTng kernel modules are Linux kernel modules which make
|
||||
[LTTng](http://lttng.org/) kernel tracing possible. They include
|
||||
essential control modules and many probes which instrument numerous
|
||||
interesting parts of Linux. LTTng-modules builds against a vanilla or
|
||||
distribution kernel, with no need for additional patches.
|
||||
|
||||
Other notable features:
|
||||
|
||||
- Produces [CTF](http://www.efficios.com/ctf)
|
||||
(Common Trace Format) natively.
|
||||
- Tracepoints, function tracer, CPU Performance Monitoring Unit (PMU)
|
||||
counters, kprobes, and kretprobes support.
|
||||
- Have the ability to attach _context_ information to events in the
|
||||
trace (e.g., any PMU counter, PID, PPID, TID, command name, etc).
|
||||
All the extra information fields to be collected with events are
|
||||
optional, specified on a per-tracing-session basis (except for
|
||||
timestamp and event ID, which are mandatory).
|
||||
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
To build and install LTTng-modules, you will need to have your kernel
|
||||
headers available (or access to your full kernel source tree), and do:
|
||||
|
||||
make
|
||||
sudo make modules_install
|
||||
sudo depmod -a
|
||||
|
||||
The above commands will build LTTng-modules against your
|
||||
current kernel. If you need to build LTTng-modules against a custom
|
||||
kernel, do:
|
||||
|
||||
make KERNELDIR=/path/to/custom/kernel
|
||||
sudo make KERNELDIR=/path/to/custom/kernel modules_install
|
||||
sudo depmod -a kernel_version
|
||||
|
||||
|
||||
### Kernel built-in support
|
||||
|
||||
It is also possible to build these modules as part of a kernel image. Simply
|
||||
run the [`scripts/built-in.sh`](scripts/built-in.sh) script with the path to
|
||||
your kernel source directory as an argument. It will symlink the
|
||||
lttng-modules directory in the kernel sources and add an include in the kernel
|
||||
Makefile.
|
||||
|
||||
Then configure your kernel as usual and enable the `CONFIG_LTTNG` option.
|
||||
|
||||
|
||||
### Required kernel config options
|
||||
|
||||
Make sure your target kernel has the following config options enabled:
|
||||
|
||||
- `CONFIG_MODULES`: loadable module support (not strictly required
|
||||
when built into the kernel)
|
||||
- `CONFIG_KALLSYMS`: see files in [`wrapper`](wrapper); this is
|
||||
necessary until the few required missing symbols are exported to GPL
|
||||
modules from mainline
|
||||
- `CONFIG_HIGH_RES_TIMERS`: needed for LTTng 2.x clock source
|
||||
- `CONFIG_TRACEPOINTS`: kernel tracepoint instrumentation
|
||||
(enabled as a side-effect of any of the perf/ftrace/blktrace
|
||||
instrumentation features).
|
||||
- `CONFIG_KPROBES` (5.7+): use kallsyms for kernel 5.7 and newer.
|
||||
|
||||
|
||||
### Supported (optional) kernel config options
|
||||
|
||||
The following kernel configuration options will affect the features
|
||||
available from LTTng:
|
||||
|
||||
- `CONFIG_HAVE_SYSCALL_TRACEPOINTS`: system call tracing:
|
||||
|
||||
lttng enable-event -k --syscall
|
||||
lttng enable-event -k -a
|
||||
|
||||
- `CONFIG_PERF_EVENTS`: performance counters:
|
||||
|
||||
lttng add-context -t perf:*
|
||||
|
||||
- `CONFIG_EVENT_TRACING`: needed to allow block layer tracing
|
||||
- `CONFIG_KPROBES`: dynamic probes:
|
||||
|
||||
lttng enable-event -k --probe ...
|
||||
|
||||
- `CONFIG_KRETPROBES`: dynamic function entry/return probes:
|
||||
|
||||
lttng enable-event -k --function ...
|
||||
|
||||
- `CONFIG_KALLSYMS_ALL`: state dump of mapping between block device
|
||||
number and name
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
Use [LTTng-tools](https://lttng.org/download) to control the tracer.
|
||||
The session daemon of LTTng-tools should automatically load the LTTng
|
||||
kernel modules when needed. Use [Babeltrace](https://lttng.org/babeltrace)
|
||||
to print traces as a human-readable text log.
|
||||
|
||||
|
||||
Support
|
||||
-------
|
||||
|
||||
Linux kernels >= 2.6.36 are supported.
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
### About perf PMU counters support
|
||||
|
||||
Each PMU counter has its zero value set when it is attached to a context with
|
||||
add-context. Therefore, it is normal that the same counters attached to both the
|
||||
stream context and event context show different values for a given event; what
|
||||
matters is that they increment at the same rate.
|
|
@ -0,0 +1,116 @@
|
|||
Please contact Mathieu Desnoyers <mathieu.desnoyers@efficios.com> for
|
||||
questions about this TODO list. The "Cleanup/Testing" section would be
|
||||
good to go through before integration into mainline. The "Features"
|
||||
section is a wish list of features to complete before releasing the
|
||||
"LTTng 2.0" final version, but are not required to have LTTng working.
|
||||
These features are mostly performance enhancements and instrumentation
|
||||
enhancements.
|
||||
|
||||
TODO:
|
||||
|
||||
A) Cleanup/Testing
|
||||
|
||||
1) Test lib ring buffer snapshot feature.
|
||||
When working on the lttngtop project, Julien Desfossez
|
||||
reported that he needed to push the consumer position
|
||||
forward explicitely with lib_ring_buffer_put_next_subbuf.
|
||||
This means that although the usual case of pairs of
|
||||
lib_ring_buffer_get_next_subbuf/lib_ring_buffer_put_next_subbuf
|
||||
work fine, there is probably a problem that needs to be
|
||||
investigated in
|
||||
lib_ring_buffer_get_subbuf/lib_ring_buffer_put_subbuf, which
|
||||
depend on the producer to push the reader position.
|
||||
Contact: Julien Desfossez <julien.desfossez@polymtl.ca>
|
||||
|
||||
|
||||
B) Features
|
||||
|
||||
1) Integration of the LTTng 0.x trace clocks into
|
||||
LTTng 2.0.
|
||||
Currently using mainline kernel monotonic clock. NMIs can
|
||||
therefore not be traced, and this causes a significant
|
||||
performance degradation compared to the LTTng 0.x trace
|
||||
clocks. Imply the creation of drivers/staging/lttng/arch to
|
||||
contain the arch-specific clock support files.
|
||||
* Dependency: addition of clock descriptions to CTF.
|
||||
See: http://git.lttng.org/?p=linux-2.6-lttng.git;a=summary
|
||||
for the LTTng 0.x git tree.
|
||||
|
||||
2) Port OMAP3 LTTng trace clocks to x86 to support systems
|
||||
without constant TSC.
|
||||
* Dependency: (B.1)
|
||||
See: http://git.lttng.org/?p=linux-2.6-lttng.git;a=summary
|
||||
for the LTTng 0.x git tree.
|
||||
|
||||
3) Implement mmap operation on an anonymous file created by a
|
||||
LTTNG_KERNEL_CLOCK ioctl to export data to export
|
||||
synchronized kernel and user-level LTTng trace clocks:
|
||||
with:
|
||||
- shared per-cpu data,
|
||||
- read seqlock.
|
||||
The content exported by this shared memory area will be
|
||||
arch-specific.
|
||||
* Dependency: (B.1) && (B.2)
|
||||
See: http://git.lttng.org/?p=linux-2.6-lttng.git;a=summary
|
||||
for the LTTng 0.x git tree, which has vDSO support for
|
||||
LTTng trace clock on the x86 architecture.
|
||||
|
||||
3) Integrate the "statedump" module from LTTng 0.x into LTTng
|
||||
2.0.
|
||||
See: http://git.lttng.org/?p=lttng-modules.git;a=shortlog;h=refs/heads/v0.19-stable
|
||||
ltt-statedump.c
|
||||
|
||||
4) Generate system call TRACE_EVENT headers for all
|
||||
architectures (currently done: x86 32/64).
|
||||
|
||||
5) Define "unknown" system calls into instrumentation/syscalls
|
||||
override files / or do SYSCALL_DEFINE improvements to
|
||||
mainline kernel to allow automatic generation of these
|
||||
missing system call descriptions.
|
||||
|
||||
6) Create missing tracepoint event headers files into
|
||||
instrumentation/events from headers located in
|
||||
include/trace/events/. Choice: either do as currently done,
|
||||
and copy those headers locally into the lttng driver and
|
||||
perform the modifications locally, or push TRACE_EVENT API
|
||||
modification into mainline headers, which would require
|
||||
collaboration from Ftrace/Perf maintainers.
|
||||
|
||||
7) Poll: implement a poll and/or epoll exclusive wakeup scheme,
|
||||
which contradicts POSIX, but protect multiple consumer
|
||||
threads from thundering herd effect.
|
||||
|
||||
8) Re-integrate sample modules from libringbuffer into
|
||||
lttng driver. Those modules can be used as example of how to
|
||||
use libringbuffer in other contexts than LTTng, and are
|
||||
useful to perform benchmarks of the ringbuffer library.
|
||||
See: http://www.efficios.com/ringbuffer
|
||||
|
||||
9) NOHZ support for lib ring buffer. NOHZ infrastructure in the
|
||||
Linux kernel does not support notifiers chains, which does
|
||||
not let LTTng play nicely with low power consumption setups
|
||||
for flight recorder (overwrite mode) live traces. One way to
|
||||
allow integration between NOHZ and LTTng would be to add
|
||||
support for such notifiers into NOHZ kernel infrastructure.
|
||||
|
||||
10) Turn lttng-probes.c probe_list into a
|
||||
hash table. Turns O(n^2) trace systems registration (cost
|
||||
for n systems) into O(n). (O(1) per system)
|
||||
|
||||
11) drivers/staging/lttng/probes/lttng-ftrace.c:
|
||||
LTTng currently uses kretprobes for per-function tracing,
|
||||
not the function tracer. So lttng-ftrace.c should be used
|
||||
for "all" function tracing.
|
||||
|
||||
12) drivers/staging/lttng/probes/lttng-types.c:
|
||||
This is a currently unused placeholder to export entire C
|
||||
type declarations into the trace metadata, e.g. for support
|
||||
of describing the layout of structures/enumeration mapping
|
||||
along with syscall entry events. The design of this support
|
||||
will likely change though, and become integrated with the
|
||||
TRACE_EVENT support within lttng, by adding new macros, and
|
||||
support for generation of metadata from these macros, to
|
||||
allow description of those compound types/enumerations.
|
||||
|
||||
Please send patches
|
||||
To: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
|
@ -0,0 +1,23 @@
|
|||
/* SPDX-License-Identifier: (GPL-2.0 OR LGPL-2.1)
|
||||
*
|
||||
* blacklist/kprobes.h
|
||||
*
|
||||
* Blacklist of kernel for buggy kprobes implementation.
|
||||
*
|
||||
* Copyright (C) 2019 Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
|
||||
*/
|
||||
|
||||
#ifndef _LTTNG_BLACKLIST_KPROBES_H
|
||||
#define _LTTNG_BLACKLIST_KPROBES_H
|
||||
|
||||
#include <lttng-kernel-version.h>
|
||||
|
||||
#if LTTNG_KERNEL_RANGE(4,20,0, 4,20,13) \
|
||||
|| LTTNG_KERNEL_RANGE(4,19,9, 4,19,26) \
|
||||
|| LTTNG_KERNEL_RANGE(4,14,87, 4,14,104)
|
||||
# if defined(CONFIG_ARM) && defined(CONFIG_OPTPROBES)
|
||||
# error "Your kernel is known to have buggy optimized kprobes implementation. Fixed by commit 0ac569bf6a7983c0c5747d6df8db9dc05bc92b6c \"ARM: 8834/1: Fix: kprobes: optimized kprobes illegal instruction\" in Linux. Disable CONFIG_OPTPROBES or upgrade your kernel."
|
||||
# endif /* #if defined(CONFIG_ARM) && defined(CONFIG_OPTPROBES) */
|
||||
#endif
|
||||
|
||||
#endif /* _LTTNG_BLACKLIST_KPROBES_H */
|
|
@ -0,0 +1,20 @@
|
|||
/* SPDX-License-Identifier: (GPL-2.0 OR LGPL-2.1)
|
||||
*
|
||||
* blacklist/timekeeping.h
|
||||
*
|
||||
* Blacklist of kernel for buggy timekeeping implementation.
|
||||
*
|
||||
* Copyright (C) 2019 Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
|
||||
*/
|
||||
|
||||
#ifndef _LTTNG_BLACKLIST_TIMEKEEPING_H
|
||||
#define _LTTNG_BLACKLIST_TIMEKEEPING_H
|
||||
|
||||
#include <lttng-kernel-version.h>
|
||||
|
||||
#if ((LTTNG_KERNEL_RANGE(3,10,0, 3,10,14) && !LTTNG_RHEL_KERNEL_RANGE(3,10,0,123,0,0, 3,10,14,0,0,0)) \
|
||||
|| LTTNG_KERNEL_RANGE(3,11,0, 3,11,3))
|
||||
# error "Linux kernels 3.10 and 3.11 introduce a deadlock in the timekeeping subsystem. Fixed by commit 7bd36014460f793c19e7d6c94dab67b0afcfcb7f \"timekeeping: Fix HRTICK related deadlock from ntp lock changes\" in Linux."
|
||||
#endif
|
||||
|
||||
#endif /* _LTTNG_BLACKLIST_TIMEKEEPING_H */
|
|
@ -0,0 +1,2 @@
|
|||
The first line of the "name" file is used to populate the "extra_version_name"
|
||||
modinfo key of each built module.
|
|
@ -0,0 +1,225 @@
|
|||
/* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* filter-bytecode.h
|
||||
*
|
||||
* LTTng filter bytecode
|
||||
*
|
||||
* Copyright 2012-2016 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
||||
*/
|
||||
|
||||
#ifndef _FILTER_BYTECODE_H
|
||||
#define _FILTER_BYTECODE_H
|
||||
|
||||
/*
|
||||
* offsets are absolute from start of bytecode.
|
||||
*/
|
||||
|
||||
struct field_ref {
|
||||
/* Initially, symbol offset. After link, field offset. */
|
||||
uint16_t offset;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct get_symbol {
|
||||
/* Symbol offset. */
|
||||
uint16_t offset;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct get_index_u16 {
|
||||
uint16_t index;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct get_index_u64 {
|
||||
uint64_t index;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct literal_numeric {
|
||||
int64_t v;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct literal_double {
|
||||
double v;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct literal_string {
|
||||
char string[0];
|
||||
} __attribute__((packed));
|
||||
|
||||
enum filter_op {
|
||||
FILTER_OP_UNKNOWN = 0,
|
||||
|
||||
FILTER_OP_RETURN = 1,
|
||||
|
||||
/* binary */
|
||||
FILTER_OP_MUL = 2,
|
||||
FILTER_OP_DIV = 3,
|
||||
FILTER_OP_MOD = 4,
|
||||
FILTER_OP_PLUS = 5,
|
||||
FILTER_OP_MINUS = 6,
|
||||
FILTER_OP_BIT_RSHIFT = 7,
|
||||
FILTER_OP_BIT_LSHIFT = 8,
|
||||
FILTER_OP_BIT_AND = 9,
|
||||
FILTER_OP_BIT_OR = 10,
|
||||
FILTER_OP_BIT_XOR = 11,
|
||||
|
||||
/* binary comparators */
|
||||
FILTER_OP_EQ = 12,
|
||||
FILTER_OP_NE = 13,
|
||||
FILTER_OP_GT = 14,
|
||||
FILTER_OP_LT = 15,
|
||||
FILTER_OP_GE = 16,
|
||||
FILTER_OP_LE = 17,
|
||||
|
||||
/* string binary comparator: apply to */
|
||||
FILTER_OP_EQ_STRING = 18,
|
||||
FILTER_OP_NE_STRING = 19,
|
||||
FILTER_OP_GT_STRING = 20,
|
||||
FILTER_OP_LT_STRING = 21,
|
||||
FILTER_OP_GE_STRING = 22,
|
||||
FILTER_OP_LE_STRING = 23,
|
||||
|
||||
/* s64 binary comparator */
|
||||
FILTER_OP_EQ_S64 = 24,
|
||||
FILTER_OP_NE_S64 = 25,
|
||||
FILTER_OP_GT_S64 = 26,
|
||||
FILTER_OP_LT_S64 = 27,
|
||||
FILTER_OP_GE_S64 = 28,
|
||||
FILTER_OP_LE_S64 = 29,
|
||||
|
||||
/* double binary comparator */
|
||||
FILTER_OP_EQ_DOUBLE = 30,
|
||||
FILTER_OP_NE_DOUBLE = 31,
|
||||
FILTER_OP_GT_DOUBLE = 32,
|
||||
FILTER_OP_LT_DOUBLE = 33,
|
||||
FILTER_OP_GE_DOUBLE = 34,
|
||||
FILTER_OP_LE_DOUBLE = 35,
|
||||
|
||||
/* Mixed S64-double binary comparators */
|
||||
FILTER_OP_EQ_DOUBLE_S64 = 36,
|
||||
FILTER_OP_NE_DOUBLE_S64 = 37,
|
||||
FILTER_OP_GT_DOUBLE_S64 = 38,
|
||||
FILTER_OP_LT_DOUBLE_S64 = 39,
|
||||
FILTER_OP_GE_DOUBLE_S64 = 40,
|
||||
FILTER_OP_LE_DOUBLE_S64 = 41,
|
||||
|
||||
FILTER_OP_EQ_S64_DOUBLE = 42,
|
||||
FILTER_OP_NE_S64_DOUBLE = 43,
|
||||
FILTER_OP_GT_S64_DOUBLE = 44,
|
||||
FILTER_OP_LT_S64_DOUBLE = 45,
|
||||
FILTER_OP_GE_S64_DOUBLE = 46,
|
||||
FILTER_OP_LE_S64_DOUBLE = 47,
|
||||
|
||||
/* unary */
|
||||
FILTER_OP_UNARY_PLUS = 48,
|
||||
FILTER_OP_UNARY_MINUS = 49,
|
||||
FILTER_OP_UNARY_NOT = 50,
|
||||
FILTER_OP_UNARY_PLUS_S64 = 51,
|
||||
FILTER_OP_UNARY_MINUS_S64 = 52,
|
||||
FILTER_OP_UNARY_NOT_S64 = 53,
|
||||
FILTER_OP_UNARY_PLUS_DOUBLE = 54,
|
||||
FILTER_OP_UNARY_MINUS_DOUBLE = 55,
|
||||
FILTER_OP_UNARY_NOT_DOUBLE = 56,
|
||||
|
||||
/* logical */
|
||||
FILTER_OP_AND = 57,
|
||||
FILTER_OP_OR = 58,
|
||||
|
||||
/* load field ref */
|
||||
FILTER_OP_LOAD_FIELD_REF = 59,
|
||||
FILTER_OP_LOAD_FIELD_REF_STRING = 60,
|
||||
FILTER_OP_LOAD_FIELD_REF_SEQUENCE = 61,
|
||||
FILTER_OP_LOAD_FIELD_REF_S64 = 62,
|
||||
FILTER_OP_LOAD_FIELD_REF_DOUBLE = 63,
|
||||
|
||||
/* load immediate from operand */
|
||||
FILTER_OP_LOAD_STRING = 64,
|
||||
FILTER_OP_LOAD_S64 = 65,
|
||||
FILTER_OP_LOAD_DOUBLE = 66,
|
||||
|
||||
/* cast */
|
||||
FILTER_OP_CAST_TO_S64 = 67,
|
||||
FILTER_OP_CAST_DOUBLE_TO_S64 = 68,
|
||||
FILTER_OP_CAST_NOP = 69,
|
||||
|
||||
/* get context ref */
|
||||
FILTER_OP_GET_CONTEXT_REF = 70,
|
||||
FILTER_OP_GET_CONTEXT_REF_STRING = 71,
|
||||
FILTER_OP_GET_CONTEXT_REF_S64 = 72,
|
||||
FILTER_OP_GET_CONTEXT_REF_DOUBLE = 73,
|
||||
|
||||
/* load userspace field ref */
|
||||
FILTER_OP_LOAD_FIELD_REF_USER_STRING = 74,
|
||||
FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE = 75,
|
||||
|
||||
/*
|
||||
* load immediate star globbing pattern (literal string)
|
||||
* from immediate
|
||||
*/
|
||||
FILTER_OP_LOAD_STAR_GLOB_STRING = 76,
|
||||
|
||||
/* globbing pattern binary operator: apply to */
|
||||
FILTER_OP_EQ_STAR_GLOB_STRING = 77,
|
||||
FILTER_OP_NE_STAR_GLOB_STRING = 78,
|
||||
|
||||
/*
|
||||
* Instructions for recursive traversal through composed types.
|
||||
*/
|
||||
FILTER_OP_GET_CONTEXT_ROOT = 79,
|
||||
FILTER_OP_GET_APP_CONTEXT_ROOT = 80,
|
||||
FILTER_OP_GET_PAYLOAD_ROOT = 81,
|
||||
|
||||
FILTER_OP_GET_SYMBOL = 82,
|
||||
FILTER_OP_GET_SYMBOL_FIELD = 83,
|
||||
FILTER_OP_GET_INDEX_U16 = 84,
|
||||
FILTER_OP_GET_INDEX_U64 = 85,
|
||||
|
||||
FILTER_OP_LOAD_FIELD = 86,
|
||||
FILTER_OP_LOAD_FIELD_S8 = 87,
|
||||
FILTER_OP_LOAD_FIELD_S16 = 88,
|
||||
FILTER_OP_LOAD_FIELD_S32 = 89,
|
||||
FILTER_OP_LOAD_FIELD_S64 = 90,
|
||||
FILTER_OP_LOAD_FIELD_U8 = 91,
|
||||
FILTER_OP_LOAD_FIELD_U16 = 92,
|
||||
FILTER_OP_LOAD_FIELD_U32 = 93,
|
||||
FILTER_OP_LOAD_FIELD_U64 = 94,
|
||||
FILTER_OP_LOAD_FIELD_STRING = 95,
|
||||
FILTER_OP_LOAD_FIELD_SEQUENCE = 96,
|
||||
FILTER_OP_LOAD_FIELD_DOUBLE = 97,
|
||||
|
||||
FILTER_OP_UNARY_BIT_NOT = 98,
|
||||
|
||||
FILTER_OP_RETURN_S64 = 99,
|
||||
|
||||
NR_FILTER_OPS,
|
||||
};
|
||||
|
||||
typedef uint8_t filter_opcode_t;
|
||||
|
||||
struct load_op {
|
||||
filter_opcode_t op;
|
||||
char data[0];
|
||||
/* data to load. Size known by enum filter_opcode and null-term char. */
|
||||
} __attribute__((packed));
|
||||
|
||||
struct binary_op {
|
||||
filter_opcode_t op;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct unary_op {
|
||||
filter_opcode_t op;
|
||||
} __attribute__((packed));
|
||||
|
||||
/* skip_offset is absolute from start of bytecode */
|
||||
struct logical_op {
|
||||
filter_opcode_t op;
|
||||
uint16_t skip_offset; /* bytecode insn, if skip second test */
|
||||
} __attribute__((packed));
|
||||
|
||||
struct cast_op {
|
||||
filter_opcode_t op;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct return_op {
|
||||
filter_opcode_t op;
|
||||
} __attribute__((packed));
|
||||
|
||||
#endif /* _FILTER_BYTECODE_H */
|
|
@ -0,0 +1,24 @@
|
|||
* Workflow for updating patches from newer kernel:
|
||||
|
||||
Pull the new headers from mainline kernel to lttng-modules/.
|
||||
Update those headers to fix the lttng-modules instrumentation style.
|
||||
|
||||
|
||||
* Workflow to add new Tracepoint instrumentation to newer kernel,
|
||||
and add support for it into LTTng:
|
||||
|
||||
a) instrument the kernel with new trace events headers. If you want that
|
||||
instrumentation distributed, you will have to push those changes into
|
||||
the upstream Linux kernel first,
|
||||
b) copy those headers into lttng-modules/ directory,
|
||||
c) look at a diff from other headers between mainline kernel version and
|
||||
lttng-modules/, and use that as a recipe to alter the new
|
||||
lttng-modules/ headers.
|
||||
d) create a new file in probes/ for the new trace event header you added,
|
||||
e) add it to probes/Makefile,
|
||||
f) build, make modules_install,
|
||||
g) don't forget to load that new module too.
|
||||
|
||||
Currently, LTTng policy is to only accept headers derived from trace
|
||||
event headers accepted into the Linux kernel upstream for tracepoints
|
||||
related to upstream kernel instrumentation.
|
|
@ -0,0 +1,57 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM 9p
|
||||
|
||||
#if !defined(LTTNG_TRACE_9P_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_9P_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
|
||||
LTTNG_TRACEPOINT_EVENT(9p_client_req,
|
||||
|
||||
TP_PROTO(struct p9_client *clnt, int8_t type, int tag),
|
||||
|
||||
TP_ARGS(clnt, type, tag),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, clnt, clnt)
|
||||
ctf_integer(u8, type, type)
|
||||
ctf_integer(u32, tag, tag)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(9p_client_res,
|
||||
|
||||
TP_PROTO(struct p9_client *clnt, int8_t type, int tag, int err),
|
||||
|
||||
TP_ARGS(clnt, type, tag, err),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, clnt, clnt)
|
||||
ctf_integer(u8, type, type)
|
||||
ctf_integer(u32, tag, tag)
|
||||
ctf_integer(u32, err, err)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(9p_protocol_dump,
|
||||
|
||||
TP_PROTO(struct p9_client *clnt, struct p9_fcall *pdu),
|
||||
|
||||
TP_ARGS(clnt, pdu),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, clnt, clnt)
|
||||
ctf_integer(u8, type, pdu->id)
|
||||
ctf_integer(u16, tag, pdu->tag)
|
||||
ctf_array(unsigned char, line, pdu->sdata, P9_PROTO_DUMP_SZ)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_9P_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,53 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#if !defined(LTTNG_TRACE_EXCEPTIONS_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_EXCEPTIONS_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM x86_exceptions
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(x86_exceptions_class,
|
||||
|
||||
TP_PROTO(unsigned long address, struct pt_regs *regs,
|
||||
unsigned long error_code),
|
||||
|
||||
TP_ARGS(address, regs, error_code),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(unsigned long, address, address)
|
||||
ctf_integer_hex(unsigned long, ip, regs->ip)
|
||||
/*
|
||||
* Note: we cast error_code from unsigned long
|
||||
* to unsigned char to save space in the trace.
|
||||
* Currently, only 5 low bits are used. Should be made
|
||||
* larger if error codes are added to the kernel.
|
||||
*/
|
||||
ctf_integer_hex(unsigned char, error_code, error_code)
|
||||
)
|
||||
)
|
||||
|
||||
#define LTTNG_EXCEPTIONS_TRACEPOINT_EVENT_INSTANCE_MAP(name, map) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(x86_exceptions_class, \
|
||||
name, \
|
||||
map, \
|
||||
TP_PROTO(unsigned long address, struct pt_regs *regs, \
|
||||
unsigned long error_code), \
|
||||
TP_ARGS(address, regs, error_code) \
|
||||
)
|
||||
|
||||
LTTNG_EXCEPTIONS_TRACEPOINT_EVENT_INSTANCE_MAP(page_fault_user,
|
||||
x86_exceptions_page_fault_user)
|
||||
LTTNG_EXCEPTIONS_TRACEPOINT_EVENT_INSTANCE_MAP(page_fault_kernel,
|
||||
x86_exceptions_page_fault_kernel)
|
||||
|
||||
#endif /* LTTNG_TRACE_EXCEPTIONS_H */
|
||||
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH instrumentation/events/lttng-module/arch/x86
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
#define TRACE_INCLUDE_FILE exceptions
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,116 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#if !defined(LTTNG_TRACE_IRQ_VECTORS_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_IRQ_VECTORS_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM x86_irq_vectors
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(x86_irq_vectors_vector_class,
|
||||
TP_PROTO(int vector),
|
||||
TP_ARGS(vector),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, vector, vector)
|
||||
)
|
||||
)
|
||||
|
||||
#define LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(name, map) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(x86_irq_vectors_vector_class, \
|
||||
name##_entry, \
|
||||
map##_entry, \
|
||||
TP_PROTO(int vector), \
|
||||
TP_ARGS(vector) \
|
||||
) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(x86_irq_vectors_vector_class, \
|
||||
name##_exit, \
|
||||
map##_exit, \
|
||||
TP_PROTO(int vector), \
|
||||
TP_ARGS(vector) \
|
||||
)
|
||||
|
||||
/*
|
||||
* local_timer - called when entering/exiting a local timer interrupt
|
||||
* vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(local_timer,
|
||||
x86_irq_vectors_local_timer)
|
||||
|
||||
/*
|
||||
* reschedule - called when entering/exiting a reschedule vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(reschedule,
|
||||
x86_irq_vectors_reschedule)
|
||||
|
||||
/*
|
||||
* spurious_apic - called when entering/exiting a spurious apic vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(spurious_apic,
|
||||
x86_irq_vectors_spurious_apic)
|
||||
|
||||
/*
|
||||
* error_apic - called when entering/exiting an error apic vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(error_apic,
|
||||
x86_irq_vectors_error_apic)
|
||||
|
||||
/*
|
||||
* x86_platform_ipi - called when entering/exiting a x86 platform ipi interrupt
|
||||
* vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(x86_platform_ipi,
|
||||
x86_irq_vectors_ipi)
|
||||
|
||||
/*
|
||||
* irq_work - called when entering/exiting a irq work interrupt
|
||||
* vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(irq_work,
|
||||
x86_irq_vectors_irq_work)
|
||||
|
||||
/*
|
||||
* call_function - called when entering/exiting a call function interrupt
|
||||
* vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(call_function,
|
||||
x86_irq_vectors_call_function)
|
||||
|
||||
/*
|
||||
* call_function_single - called when entering/exiting a call function
|
||||
* single interrupt vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(call_function_single,
|
||||
x86_irq_vectors_call_function_single)
|
||||
|
||||
/*
|
||||
* threshold_apic - called when entering/exiting a threshold apic interrupt
|
||||
* vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(threshold_apic,
|
||||
x86_irq_vectors_threshold_apic)
|
||||
|
||||
/*
|
||||
* deferred_error_apic - called when entering/exiting a deferred apic interrupt
|
||||
* vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(deferred_error_apic,
|
||||
x86_irq_vectors_deferred_error_apic)
|
||||
|
||||
/*
|
||||
* thermal_apic - called when entering/exiting a thermal apic interrupt
|
||||
* vector handler
|
||||
*/
|
||||
LTTNG_IRQ_VECTOR_TRACEPOINT_EVENT_INSTANCE_MAP(thermal_apic,
|
||||
x86_irq_vectors_thermal_apic)
|
||||
|
||||
#endif /* LTTNG_TRACE_IRQ_VECTORS_H */
|
||||
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH instrumentation/events/lttng-module/arch/x86
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
#define TRACE_INCLUDE_FILE irq_vectors
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,313 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#if !defined(LTTNG_TRACE_KVM_MMU_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_KVM_MMU_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
|
||||
#include <linux/trace_events.h>
|
||||
#else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
|
||||
#include <linux/ftrace_event.h>
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM kvm_mmu
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
|
||||
|
||||
#define LTTNG_KVM_MMU_PAGE_FIELDS \
|
||||
ctf_integer(__u64, gfn, (sp)->gfn) \
|
||||
ctf_integer(__u32, role, (sp)->role.word) \
|
||||
ctf_integer(__u32, root_count, (sp)->root_count) \
|
||||
ctf_integer(bool, unsync, (sp)->unsync)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
|
||||
|
||||
#define LTTNG_KVM_MMU_PAGE_FIELDS \
|
||||
ctf_integer(unsigned long, mmu_valid_gen, (sp)->mmu_valid_gen) \
|
||||
ctf_integer(__u64, gfn, (sp)->gfn) \
|
||||
ctf_integer(__u32, role, (sp)->role.word) \
|
||||
ctf_integer(__u32, root_count, (sp)->root_count) \
|
||||
ctf_integer(bool, unsync, (sp)->unsync)
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
|
||||
|
||||
#define LTTNG_KVM_MMU_PAGE_FIELDS \
|
||||
ctf_integer(__u64, gfn, (sp)->gfn) \
|
||||
ctf_integer(__u32, role, (sp)->role.word) \
|
||||
ctf_integer(__u32, root_count, (sp)->root_count) \
|
||||
ctf_integer(bool, unsync, (sp)->unsync)
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
|
||||
/*
|
||||
* A pagetable walk has started
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(
|
||||
kvm_mmu_pagetable_walk,
|
||||
TP_PROTO(u64 addr, u32 pferr),
|
||||
TP_ARGS(addr, pferr),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, addr, addr)
|
||||
ctf_integer(__u32, pferr, pferr)
|
||||
)
|
||||
)
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
|
||||
/*
|
||||
* A pagetable walk has started
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(
|
||||
kvm_mmu_pagetable_walk,
|
||||
TP_PROTO(u64 addr, int write_fault, int user_fault, int fetch_fault),
|
||||
TP_ARGS(addr, write_fault, user_fault, fetch_fault),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, addr, addr)
|
||||
ctf_integer(__u32, pferr,
|
||||
(!!write_fault << 1) | (!!user_fault << 2)
|
||||
| (!!fetch_fault << 4))
|
||||
)
|
||||
)
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
|
||||
|
||||
/* We just walked a paging element */
|
||||
LTTNG_TRACEPOINT_EVENT(
|
||||
kvm_mmu_paging_element,
|
||||
TP_PROTO(u64 pte, int level),
|
||||
TP_ARGS(pte, level),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, pte, pte)
|
||||
ctf_integer(__u32, level, level)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kvm_mmu_set_bit_class,
|
||||
|
||||
TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size),
|
||||
|
||||
TP_ARGS(table_gfn, index, size),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, gpa,
|
||||
((u64)table_gfn << PAGE_SHIFT) + index * size)
|
||||
)
|
||||
)
|
||||
|
||||
/* We set a pte accessed bit */
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_mmu_set_bit_class, kvm_mmu_set_accessed_bit,
|
||||
|
||||
TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size),
|
||||
|
||||
TP_ARGS(table_gfn, index, size)
|
||||
)
|
||||
|
||||
/* We set a pte dirty bit */
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_mmu_set_bit_class, kvm_mmu_set_dirty_bit,
|
||||
|
||||
TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size),
|
||||
|
||||
TP_ARGS(table_gfn, index, size)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(
|
||||
kvm_mmu_walker_error,
|
||||
TP_PROTO(u32 pferr),
|
||||
TP_ARGS(pferr),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u32, pferr, pferr)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(
|
||||
kvm_mmu_get_page,
|
||||
TP_PROTO(struct kvm_mmu_page *sp, bool created),
|
||||
TP_ARGS(sp, created),
|
||||
|
||||
TP_FIELDS(
|
||||
LTTNG_KVM_MMU_PAGE_FIELDS
|
||||
ctf_integer(bool, created, created)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kvm_mmu_page_class,
|
||||
|
||||
TP_PROTO(struct kvm_mmu_page *sp),
|
||||
TP_ARGS(sp),
|
||||
|
||||
TP_FIELDS(
|
||||
LTTNG_KVM_MMU_PAGE_FIELDS
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_mmu_page_class, kvm_mmu_sync_page,
|
||||
TP_PROTO(struct kvm_mmu_page *sp),
|
||||
|
||||
TP_ARGS(sp)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_mmu_page_class, kvm_mmu_unsync_page,
|
||||
TP_PROTO(struct kvm_mmu_page *sp),
|
||||
|
||||
TP_ARGS(sp)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_mmu_page_class, kvm_mmu_prepare_zap_page,
|
||||
TP_PROTO(struct kvm_mmu_page *sp),
|
||||
|
||||
TP_ARGS(sp)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(
|
||||
mark_mmio_spte,
|
||||
|
||||
kvm_mmu_mark_mmio_spte,
|
||||
|
||||
TP_PROTO(u64 *sptep, gfn_t gfn, u64 spte),
|
||||
TP_ARGS(sptep, gfn, spte),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, sptep, sptep)
|
||||
ctf_integer(gfn_t, gfn, gfn)
|
||||
ctf_integer(unsigned, access, spte & ACC_ALL)
|
||||
ctf_integer(unsigned int, gen, get_mmio_spte_generation(spte))
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(
|
||||
mark_mmio_spte,
|
||||
|
||||
kvm_mmu_mark_mmio_spte,
|
||||
|
||||
TP_PROTO(u64 *sptep, gfn_t gfn, unsigned access, unsigned int gen),
|
||||
TP_ARGS(sptep, gfn, access, gen),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, sptep, sptep)
|
||||
ctf_integer(gfn_t, gfn, gfn)
|
||||
ctf_integer(unsigned, access, access)
|
||||
ctf_integer(unsigned int, gen, gen)
|
||||
)
|
||||
)
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(
|
||||
mark_mmio_spte,
|
||||
|
||||
kvm_mmu_mark_mmio_spte,
|
||||
|
||||
TP_PROTO(u64 *sptep, gfn_t gfn, unsigned access),
|
||||
TP_ARGS(sptep, gfn, access),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, sptep, sptep)
|
||||
ctf_integer(gfn_t, gfn, gfn)
|
||||
ctf_integer(unsigned, access, access)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(
|
||||
handle_mmio_page_fault,
|
||||
|
||||
kvm_mmu_handle_mmio_page_fault,
|
||||
|
||||
TP_PROTO(u64 addr, gfn_t gfn, unsigned access),
|
||||
TP_ARGS(addr, gfn, access),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u64, addr, addr)
|
||||
ctf_integer(gfn_t, gfn, gfn)
|
||||
ctf_integer(unsigned, access, access)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(
|
||||
fast_page_fault,
|
||||
|
||||
kvm_mmu_fast_page_fault,
|
||||
|
||||
TP_PROTO(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u32 error_code,
|
||||
u64 *sptep, u64 old_spte, int ret),
|
||||
TP_ARGS(vcpu, cr2_or_gpa, error_code, sptep, old_spte, ret),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, vcpu_id, vcpu->vcpu_id)
|
||||
ctf_integer(gpa_t, cr2_or_gpa, cr2_or_gpa)
|
||||
ctf_integer(u32, error_code, error_code)
|
||||
ctf_integer_hex(u64 *, sptep, sptep)
|
||||
ctf_integer(u64, old_spte, old_spte)
|
||||
ctf_integer(u64, new_spte, *sptep)
|
||||
ctf_integer(int, ret, ret)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) || \
|
||||
LTTNG_KERNEL_RANGE(4,19,103, 4,20,0) || \
|
||||
LTTNG_KERNEL_RANGE(5,4,19, 5,5,0) || \
|
||||
LTTNG_KERNEL_RANGE(5,5,3, 5,6,0) || \
|
||||
LTTNG_UBUNTU_KERNEL_RANGE(4,15,18,92, 4,16,0,0) || \
|
||||
LTTNG_UBUNTU_KERNEL_RANGE(5,0,21,44, 5,1,0,0) || \
|
||||
LTTNG_UBUNTU_KERNEL_RANGE(5,3,18,43, 5,3,18,45) || \
|
||||
LTTNG_UBUNTU_KERNEL_RANGE(5,3,18,46, 5,4,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(
|
||||
fast_page_fault,
|
||||
|
||||
kvm_mmu_fast_page_fault,
|
||||
|
||||
TP_PROTO(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u32 error_code,
|
||||
u64 *sptep, u64 old_spte, bool retry),
|
||||
TP_ARGS(vcpu, cr2_or_gpa, error_code, sptep, old_spte, retry),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, vcpu_id, vcpu->vcpu_id)
|
||||
ctf_integer(gpa_t, cr2_or_gpa, cr2_or_gpa)
|
||||
ctf_integer(u32, error_code, error_code)
|
||||
ctf_integer_hex(u64 *, sptep, sptep)
|
||||
ctf_integer(u64, old_spte, old_spte)
|
||||
ctf_integer(u64, new_spte, *sptep)
|
||||
ctf_integer(bool, retry, retry)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(
|
||||
fast_page_fault,
|
||||
|
||||
kvm_mmu_fast_page_fault,
|
||||
|
||||
TP_PROTO(struct kvm_vcpu *vcpu, gva_t gva, u32 error_code,
|
||||
u64 *sptep, u64 old_spte, bool retry),
|
||||
TP_ARGS(vcpu, gva, error_code, sptep, old_spte, retry),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, vcpu_id, vcpu->vcpu_id)
|
||||
ctf_integer(gva_t, gva, gva)
|
||||
ctf_integer(u32, error_code, error_code)
|
||||
ctf_integer_hex(u64 *, sptep, sptep)
|
||||
ctf_integer(u64, old_spte, old_spte)
|
||||
ctf_integer(u64, new_spte, *sptep)
|
||||
ctf_integer(bool, retry, retry)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_KVM_MMU_H */
|
||||
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH instrumentation/events/lttng-module/arch/x86/kvm
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
#define TRACE_INCLUDE_FILE mmutrace
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,591 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#if !defined(LTTNG_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_KVM_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <asm/vmx.h>
|
||||
#include <asm/svm.h>
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
|
||||
#include <asm/clocksource.h>
|
||||
#endif
|
||||
#include <linux/version.h>
|
||||
#include <../arch/x86/kvm/lapic.h>
|
||||
#include <../arch/x86/kvm/kvm_cache_regs.h>
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM kvm_x86
|
||||
|
||||
/*
|
||||
* Tracepoint for guest mode entry.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_entry, kvm_x86_entry,
|
||||
TP_PROTO(unsigned int vcpu_id),
|
||||
TP_ARGS(vcpu_id),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, vcpu_id, vcpu_id)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for hypercall.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_hypercall, kvm_x86_hypercall,
|
||||
TP_PROTO(unsigned long nr, unsigned long a0, unsigned long a1,
|
||||
unsigned long a2, unsigned long a3),
|
||||
TP_ARGS(nr, a0, a1, a2, a3),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, nr, nr)
|
||||
ctf_integer(unsigned long, a0, a0)
|
||||
ctf_integer(unsigned long, a1, a1)
|
||||
ctf_integer(unsigned long, a2, a2)
|
||||
ctf_integer(unsigned long, a3, a3)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for hypercall.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_hv_hypercall, kvm_x86_hv_hypercall,
|
||||
TP_PROTO(__u16 code, bool fast, __u16 rep_cnt, __u16 rep_idx,
|
||||
__u64 ingpa, __u64 outgpa),
|
||||
TP_ARGS(code, fast, rep_cnt, rep_idx, ingpa, outgpa),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u16, rep_cnt, rep_cnt)
|
||||
ctf_integer(__u16, rep_idx, rep_idx)
|
||||
ctf_integer(__u64, ingpa, ingpa)
|
||||
ctf_integer(__u64, outgpa, outgpa)
|
||||
ctf_integer(__u16, code, code)
|
||||
ctf_integer(bool, fast, fast)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for PIO.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_pio, kvm_x86_pio,
|
||||
TP_PROTO(unsigned int rw, unsigned int port, unsigned int size,
|
||||
unsigned int count),
|
||||
TP_ARGS(rw, port, size, count),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, rw, rw)
|
||||
ctf_integer(unsigned int, port, port)
|
||||
ctf_integer(unsigned int, size, size)
|
||||
ctf_integer(unsigned int, count, count)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for cpuid.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_cpuid, kvm_x86_cpuid,
|
||||
TP_PROTO(unsigned int function, unsigned long rax, unsigned long rbx,
|
||||
unsigned long rcx, unsigned long rdx),
|
||||
TP_ARGS(function, rax, rbx, rcx, rdx),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, function, function)
|
||||
ctf_integer(unsigned long, rax, rax)
|
||||
ctf_integer(unsigned long, rbx, rbx)
|
||||
ctf_integer(unsigned long, rcx, rcx)
|
||||
ctf_integer(unsigned long, rdx, rdx)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for apic access.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_apic, kvm_x86_apic,
|
||||
TP_PROTO(unsigned int rw, unsigned int reg, unsigned int val),
|
||||
TP_ARGS(rw, reg, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, rw, rw)
|
||||
ctf_integer(unsigned int, reg, reg)
|
||||
ctf_integer(unsigned int, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
#define trace_kvm_apic_read(reg, val) trace_kvm_apic(0, reg, val)
|
||||
#define trace_kvm_apic_write(reg, val) trace_kvm_apic(1, reg, val)
|
||||
|
||||
/*
|
||||
* Tracepoint for kvm guest exit:
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit,
|
||||
TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa),
|
||||
TP_ARGS(exit_reason, vcpu, isa),
|
||||
|
||||
TP_locvar(
|
||||
u64 info1, info2;
|
||||
u32 intr_info, error_code;
|
||||
),
|
||||
|
||||
TP_code_pre(
|
||||
kvm_x86_ops.get_exit_info(vcpu, &tp_locvar->info1,
|
||||
&tp_locvar->info2,
|
||||
&tp_locvar->intr_info,
|
||||
&tp_locvar->error_code);
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, exit_reason, exit_reason)
|
||||
ctf_integer(unsigned long, guest_rip, kvm_rip_read(vcpu))
|
||||
ctf_integer(u32, isa, isa)
|
||||
ctf_integer(u64, info1, tp_locvar->info1)
|
||||
ctf_integer(u64, info2, tp_locvar->info2)
|
||||
ctf_integer(u32, intr_info, tp_locvar->intr_info)
|
||||
ctf_integer(u32, error_code, tp_locvar->error_code)
|
||||
ctf_integer(unsigned int, vcpu_id, vcpu->vcpu_id)
|
||||
),
|
||||
|
||||
TP_code_post()
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit,
|
||||
TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa),
|
||||
TP_ARGS(exit_reason, vcpu, isa),
|
||||
|
||||
TP_locvar(
|
||||
u64 info1, info2;
|
||||
),
|
||||
|
||||
TP_code_pre(
|
||||
kvm_x86_ops.get_exit_info(vcpu, &tp_locvar->info1,
|
||||
&tp_locvar->info2);
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, exit_reason, exit_reason)
|
||||
ctf_integer(unsigned long, guest_rip, kvm_rip_read(vcpu))
|
||||
ctf_integer(u32, isa, isa)
|
||||
ctf_integer(u64, info1, tp_locvar->info1)
|
||||
ctf_integer(u64, info2, tp_locvar->info2)
|
||||
),
|
||||
|
||||
TP_code_post()
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit,
|
||||
TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa),
|
||||
TP_ARGS(exit_reason, vcpu, isa),
|
||||
|
||||
TP_locvar(
|
||||
u64 info1, info2;
|
||||
),
|
||||
|
||||
TP_code_pre(
|
||||
kvm_x86_ops->get_exit_info(vcpu, &tp_locvar->info1,
|
||||
&tp_locvar->info2);
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, exit_reason, exit_reason)
|
||||
ctf_integer(unsigned long, guest_rip, kvm_rip_read(vcpu))
|
||||
ctf_integer(u32, isa, isa)
|
||||
ctf_integer(u64, info1, tp_locvar->info1)
|
||||
ctf_integer(u64, info2, tp_locvar->info2)
|
||||
),
|
||||
|
||||
TP_code_post()
|
||||
)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for kvm interrupt injection:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_inj_virq, kvm_x86_inj_virq,
|
||||
TP_PROTO(unsigned int irq),
|
||||
TP_ARGS(irq),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, irq, irq)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for kvm interrupt injection:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_inj_exception, kvm_x86_inj_exception,
|
||||
TP_PROTO(unsigned exception, bool has_error, unsigned error_code),
|
||||
TP_ARGS(exception, has_error, error_code),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u8, exception, exception)
|
||||
ctf_integer(u8, has_error, has_error)
|
||||
ctf_integer(u32, error_code, error_code)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for page fault.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_page_fault, kvm_x86_page_fault,
|
||||
TP_PROTO(unsigned long fault_address, unsigned int error_code),
|
||||
TP_ARGS(fault_address, error_code),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, fault_address, fault_address)
|
||||
ctf_integer(unsigned int, error_code, error_code)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for guest MSR access.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_msr, kvm_x86_msr,
|
||||
TP_PROTO(unsigned write, u32 ecx, u64 data, bool exception),
|
||||
TP_ARGS(write, ecx, data, exception),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned, write, write)
|
||||
ctf_integer(u32, ecx, ecx)
|
||||
ctf_integer(u64, data, data)
|
||||
ctf_integer(u8, exception, exception)
|
||||
)
|
||||
)
|
||||
|
||||
#define trace_kvm_msr_read(ecx, data) trace_kvm_msr(0, ecx, data, false)
|
||||
#define trace_kvm_msr_write(ecx, data) trace_kvm_msr(1, ecx, data, false)
|
||||
#define trace_kvm_msr_read_ex(ecx) trace_kvm_msr(0, ecx, 0, true)
|
||||
#define trace_kvm_msr_write_ex(ecx, data) trace_kvm_msr(1, ecx, data, true)
|
||||
|
||||
/*
|
||||
* Tracepoint for guest CR access.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_cr, kvm_x86_cr,
|
||||
TP_PROTO(unsigned int rw, unsigned int cr, unsigned long val),
|
||||
TP_ARGS(rw, cr, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, rw, rw)
|
||||
ctf_integer(unsigned int, cr, cr)
|
||||
ctf_integer(unsigned long, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
#define trace_kvm_cr_read(cr, val) trace_kvm_cr(0, cr, val)
|
||||
#define trace_kvm_cr_write(cr, val) trace_kvm_cr(1, cr, val)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_pic_set_irq, kvm_x86_pic_set_irq,
|
||||
TP_PROTO(__u8 chip, __u8 pin, __u8 elcr, __u8 imr, bool coalesced),
|
||||
TP_ARGS(chip, pin, elcr, imr, coalesced),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u8, chip, chip)
|
||||
ctf_integer(__u8, pin, pin)
|
||||
ctf_integer(__u8, elcr, elcr)
|
||||
ctf_integer(__u8, imr, imr)
|
||||
ctf_integer(bool, coalesced, coalesced)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_apic_ipi, kvm_x86_apic_ipi,
|
||||
TP_PROTO(__u32 icr_low, __u32 dest_id),
|
||||
TP_ARGS(icr_low, dest_id),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u32, icr_low, icr_low)
|
||||
ctf_integer(__u32, dest_id, dest_id)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_apic_accept_irq, kvm_x86_apic_accept_irq,
|
||||
TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec, bool coalesced),
|
||||
TP_ARGS(apicid, dm, tm, vec, coalesced),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u32, apicid, apicid)
|
||||
ctf_integer(__u16, dm, dm)
|
||||
ctf_integer(__u8, tm, tm)
|
||||
ctf_integer(__u8, vec, vec)
|
||||
ctf_integer(bool, coalesced, coalesced)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_eoi, kvm_x86_eoi,
|
||||
TP_PROTO(struct kvm_lapic *apic, int vector),
|
||||
TP_ARGS(apic, vector),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u32, apicid, apic->vcpu->vcpu_id)
|
||||
ctf_integer(int, vector, vector)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_pv_eoi, kvm_x86_pv_eoi,
|
||||
TP_PROTO(struct kvm_lapic *apic, int vector),
|
||||
TP_ARGS(apic, vector),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u32, apicid, apic->vcpu->vcpu_id)
|
||||
ctf_integer(int, vector, vector)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for nested VMRUN
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_nested_vmrun, kvm_x86_nested_vmrun,
|
||||
TP_PROTO(__u64 rip, __u64 vmcb, __u64 nested_rip, __u32 int_ctl,
|
||||
__u32 event_inj, bool npt),
|
||||
TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, npt),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, rip, rip)
|
||||
ctf_integer(__u64, vmcb, vmcb)
|
||||
ctf_integer(__u64, nested_rip, nested_rip)
|
||||
ctf_integer(__u32, int_ctl, int_ctl)
|
||||
ctf_integer(__u32, event_inj, event_inj)
|
||||
ctf_integer(bool, npt, npt)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_nested_intercepts, kvm_x86_nested_intercepts,
|
||||
TP_PROTO(__u16 cr_read, __u16 cr_write, __u32 exceptions, __u64 intercept),
|
||||
TP_ARGS(cr_read, cr_write, exceptions, intercept),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u16, cr_read, cr_read)
|
||||
ctf_integer(__u16, cr_write, cr_write)
|
||||
ctf_integer(__u32, exceptions, exceptions)
|
||||
ctf_integer(__u64, intercept, intercept)
|
||||
)
|
||||
)
|
||||
/*
|
||||
* Tracepoint for #VMEXIT while nested
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_nested_vmexit, kvm_x86_nested_vmexit,
|
||||
TP_PROTO(__u64 rip, __u32 exit_code,
|
||||
__u64 exit_info1, __u64 exit_info2,
|
||||
__u32 exit_int_info, __u32 exit_int_info_err, __u32 isa),
|
||||
TP_ARGS(rip, exit_code, exit_info1, exit_info2,
|
||||
exit_int_info, exit_int_info_err, isa),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, rip, rip)
|
||||
ctf_integer(__u32, exit_code, exit_code)
|
||||
ctf_integer(__u64, exit_info1, exit_info1)
|
||||
ctf_integer(__u64, exit_info2, exit_info2)
|
||||
ctf_integer(__u32, exit_int_info, exit_int_info)
|
||||
ctf_integer(__u32, exit_int_info_err, exit_int_info_err)
|
||||
ctf_integer(__u32, isa, isa)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for #VMEXIT reinjected to the guest
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_nested_vmexit_inject, kvm_x86_nested_vmexit_inject,
|
||||
TP_PROTO(__u32 exit_code,
|
||||
__u64 exit_info1, __u64 exit_info2,
|
||||
__u32 exit_int_info, __u32 exit_int_info_err, __u32 isa),
|
||||
TP_ARGS(exit_code, exit_info1, exit_info2,
|
||||
exit_int_info, exit_int_info_err, isa),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u32, exit_code, exit_code)
|
||||
ctf_integer(__u64, exit_info1, exit_info1)
|
||||
ctf_integer(__u64, exit_info2, exit_info2)
|
||||
ctf_integer(__u32, exit_int_info, exit_int_info)
|
||||
ctf_integer(__u32, exit_int_info_err, exit_int_info_err)
|
||||
ctf_integer(__u32, isa, isa)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for nested #vmexit because of interrupt pending
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_nested_intr_vmexit, kvm_x86_nested_intr_vmexit,
|
||||
TP_PROTO(__u64 rip),
|
||||
TP_ARGS(rip),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, rip, rip)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for nested #vmexit because of interrupt pending
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_invlpga, kvm_x86_invlpga,
|
||||
TP_PROTO(__u64 rip, int asid, u64 address),
|
||||
TP_ARGS(rip, asid, address),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, rip, rip)
|
||||
ctf_integer(int, asid, asid)
|
||||
ctf_integer(__u64, address, address)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for nested #vmexit because of interrupt pending
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_skinit, kvm_x86_skinit,
|
||||
TP_PROTO(__u64 rip, __u32 slb),
|
||||
TP_ARGS(rip, slb),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, rip, rip)
|
||||
ctf_integer(__u32, slb, slb)
|
||||
)
|
||||
)
|
||||
|
||||
#define KVM_EMUL_INSN_F_CR0_PE (1 << 0)
|
||||
#define KVM_EMUL_INSN_F_EFL_VM (1 << 1)
|
||||
#define KVM_EMUL_INSN_F_CS_D (1 << 2)
|
||||
#define KVM_EMUL_INSN_F_CS_L (1 << 3)
|
||||
|
||||
#define kvm_trace_symbol_emul_flags \
|
||||
{ 0, "real" }, \
|
||||
{ KVM_EMUL_INSN_F_CR0_PE \
|
||||
| KVM_EMUL_INSN_F_EFL_VM, "vm16" }, \
|
||||
{ KVM_EMUL_INSN_F_CR0_PE, "prot16" }, \
|
||||
{ KVM_EMUL_INSN_F_CR0_PE \
|
||||
| KVM_EMUL_INSN_F_CS_D, "prot32" }, \
|
||||
{ KVM_EMUL_INSN_F_CR0_PE \
|
||||
| KVM_EMUL_INSN_F_CS_L, "prot64" }
|
||||
|
||||
#define kei_decode_mode(mode) ({ \
|
||||
u8 flags = 0xff; \
|
||||
switch (mode) { \
|
||||
case X86EMUL_MODE_REAL: \
|
||||
flags = 0; \
|
||||
break; \
|
||||
case X86EMUL_MODE_VM86: \
|
||||
flags = KVM_EMUL_INSN_F_EFL_VM; \
|
||||
break; \
|
||||
case X86EMUL_MODE_PROT16: \
|
||||
flags = KVM_EMUL_INSN_F_CR0_PE; \
|
||||
break; \
|
||||
case X86EMUL_MODE_PROT32: \
|
||||
flags = KVM_EMUL_INSN_F_CR0_PE \
|
||||
| KVM_EMUL_INSN_F_CS_D; \
|
||||
break; \
|
||||
case X86EMUL_MODE_PROT64: \
|
||||
flags = KVM_EMUL_INSN_F_CR0_PE \
|
||||
| KVM_EMUL_INSN_F_CS_L; \
|
||||
break; \
|
||||
} \
|
||||
flags; \
|
||||
})
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_emulate_insn, kvm_x86_emulate_insn,
|
||||
TP_PROTO(struct kvm_vcpu *vcpu, __u8 failed),
|
||||
TP_ARGS(vcpu, failed),
|
||||
|
||||
TP_FIELDS(
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
|
||||
ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt.decode.fetch.start)
|
||||
ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
|
||||
ctf_integer(__u8, len, vcpu->arch.emulate_ctxt.decode.eip
|
||||
- vcpu->arch.emulate_ctxt.decode.fetch.start)
|
||||
ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.decode.fetch.data, 15)
|
||||
ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
|
||||
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0))
|
||||
ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt.fetch.start)
|
||||
ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
|
||||
ctf_integer(__u8, len, vcpu->arch.emulate_ctxt._eip
|
||||
- vcpu->arch.emulate_ctxt.fetch.start)
|
||||
ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.fetch.data, 15)
|
||||
ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
|
||||
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(5,7,0))
|
||||
ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt._eip -
|
||||
(vcpu->arch.emulate_ctxt.fetch.ptr -
|
||||
vcpu->arch.emulate_ctxt.fetch.data))
|
||||
ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
|
||||
ctf_integer(__u8, len, vcpu->arch.emulate_ctxt.fetch.ptr -
|
||||
vcpu->arch.emulate_ctxt.fetch.data)
|
||||
ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.fetch.data, 15)
|
||||
ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
|
||||
#else
|
||||
ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt->_eip -
|
||||
(vcpu->arch.emulate_ctxt->fetch.ptr -
|
||||
vcpu->arch.emulate_ctxt->fetch.data))
|
||||
ctf_integer(__u32, csbase, kvm_x86_ops.get_segment_base(vcpu, VCPU_SREG_CS))
|
||||
ctf_integer(__u8, len, vcpu->arch.emulate_ctxt->fetch.ptr -
|
||||
vcpu->arch.emulate_ctxt->fetch.data)
|
||||
ctf_array(__u8, insn, vcpu->arch.emulate_ctxt->fetch.data, 15)
|
||||
ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt->mode))
|
||||
#endif
|
||||
ctf_integer(__u8, failed, failed)
|
||||
)
|
||||
)
|
||||
|
||||
#define trace_kvm_emulate_insn_start(vcpu) trace_kvm_emulate_insn(vcpu, 0)
|
||||
#define trace_kvm_emulate_insn_failed(vcpu) trace_kvm_emulate_insn(vcpu, 1)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(
|
||||
vcpu_match_mmio, kvm_x86_vcpu_match_mmio,
|
||||
TP_PROTO(gva_t gva, gpa_t gpa, bool write, bool gpa_match),
|
||||
TP_ARGS(gva, gpa, write, gpa_match),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(gva_t, gva, gva)
|
||||
ctf_integer(gpa_t, gpa, gpa)
|
||||
ctf_integer(bool, write, write)
|
||||
ctf_integer(bool, gpa_match, gpa_match)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_write_tsc_offset, kvm_x86_write_tsc_offset,
|
||||
TP_PROTO(unsigned int vcpu_id, __u64 previous_tsc_offset,
|
||||
__u64 next_tsc_offset),
|
||||
TP_ARGS(vcpu_id, previous_tsc_offset, next_tsc_offset),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, vcpu_id, vcpu_id)
|
||||
ctf_integer(__u64, previous_tsc_offset, previous_tsc_offset)
|
||||
ctf_integer(__u64, next_tsc_offset, next_tsc_offset)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
|
||||
#ifdef CONFIG_X86_64
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_update_master_clock, kvm_x86_update_master_clock,
|
||||
TP_PROTO(bool use_master_clock, unsigned int host_clock, bool offset_matched),
|
||||
TP_ARGS(use_master_clock, host_clock, offset_matched),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(bool, use_master_clock, use_master_clock)
|
||||
ctf_integer(unsigned int, host_clock, host_clock)
|
||||
ctf_integer(bool, offset_matched, offset_matched)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kvm_track_tsc, kvm_x86_track_tsc,
|
||||
TP_PROTO(unsigned int vcpu_id, unsigned int nr_matched,
|
||||
unsigned int online_vcpus, bool use_master_clock,
|
||||
unsigned int host_clock),
|
||||
TP_ARGS(vcpu_id, nr_matched, online_vcpus, use_master_clock,
|
||||
host_clock),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, vcpu_id, vcpu_id)
|
||||
ctf_integer(unsigned int, nr_vcpus_matched_tsc, nr_matched)
|
||||
ctf_integer(unsigned int, online_vcpus, online_vcpus)
|
||||
ctf_integer(bool, use_master_clock, use_master_clock)
|
||||
ctf_integer(unsigned int, host_clock, host_clock)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* CONFIG_X86_64 */
|
||||
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) */
|
||||
|
||||
#endif /* LTTNG_TRACE_KVM_H */
|
||||
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH instrumentation/events/lttng-module/arch/x86/kvm
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
#define TRACE_INCLUDE_FILE trace
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,414 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM asoc
|
||||
|
||||
#if !defined(LTTNG_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_ASOC_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#define DAPM_DIRECT "(direct)"
|
||||
|
||||
#ifndef _TRACE_ASOC_DEF
|
||||
#define _TRACE_ASOC_DEF
|
||||
struct snd_soc_jack;
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0))
|
||||
struct snd_soc_codec;
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0) && \
|
||||
LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
|
||||
struct snd_soc_platform;
|
||||
#endif
|
||||
struct snd_soc_card;
|
||||
struct snd_soc_dapm_widget;
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
|
||||
struct snd_soc_dapm_path;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0) \
|
||||
|| LTTNG_RHEL_KERNEL_RANGE(3,10,0,514,0,0, 3,11,0,0,0,0))
|
||||
#define CODEC_NAME_FIELD component.name
|
||||
#define CODEC_ID_FIELD component.id
|
||||
#else
|
||||
#define CODEC_NAME_FIELD name
|
||||
#define CODEC_ID_FIELD id
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
|
||||
/*
|
||||
* Log register events
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_reg,
|
||||
|
||||
TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(codec, reg, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, codec->CODEC_NAME_FIELD)
|
||||
ctf_integer(int, id, codec->CODEC_ID_FIELD)
|
||||
ctf_integer(unsigned int, reg, reg)
|
||||
ctf_integer(unsigned int, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_reg, snd_soc_reg_write,
|
||||
|
||||
asoc_snd_soc_reg_write,
|
||||
|
||||
TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(codec, reg, val)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_reg, snd_soc_reg_read,
|
||||
|
||||
asoc_snd_soc_reg_read,
|
||||
|
||||
TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(codec, reg, val)
|
||||
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0) && \
|
||||
LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_preg,
|
||||
|
||||
TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(platform, reg, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, platform->CODEC_NAME_FIELD)
|
||||
ctf_integer(int, id, platform->CODEC_ID_FIELD)
|
||||
ctf_integer(unsigned int, reg, reg)
|
||||
ctf_integer(unsigned int, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_preg, snd_soc_preg_write,
|
||||
|
||||
asoc_snd_soc_preg_write,
|
||||
|
||||
TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(platform, reg, val)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_preg, snd_soc_preg_read,
|
||||
|
||||
asoc_snd_soc_preg_read,
|
||||
|
||||
TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(platform, reg, val)
|
||||
|
||||
)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_card,
|
||||
|
||||
TP_PROTO(struct snd_soc_card *card, int val),
|
||||
|
||||
TP_ARGS(card, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, card->name)
|
||||
ctf_integer(int, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card, snd_soc_bias_level_start,
|
||||
|
||||
asoc_snd_soc_bias_level_start,
|
||||
|
||||
TP_PROTO(struct snd_soc_card *card, int val),
|
||||
|
||||
TP_ARGS(card, val)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card, snd_soc_bias_level_done,
|
||||
|
||||
asoc_snd_soc_bias_level_done,
|
||||
|
||||
TP_PROTO(struct snd_soc_card *card, int val),
|
||||
|
||||
TP_ARGS(card, val)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic,
|
||||
|
||||
TP_PROTO(struct snd_soc_card *card),
|
||||
|
||||
TP_ARGS(card),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, card->name)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_start,
|
||||
|
||||
asoc_snd_soc_dapm_start,
|
||||
|
||||
TP_PROTO(struct snd_soc_card *card),
|
||||
|
||||
TP_ARGS(card)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_done,
|
||||
|
||||
asoc_snd_soc_dapm_done,
|
||||
|
||||
TP_PROTO(struct snd_soc_card *card),
|
||||
|
||||
TP_ARGS(card)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_widget,
|
||||
|
||||
TP_PROTO(struct snd_soc_dapm_widget *w, int val),
|
||||
|
||||
TP_ARGS(w, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, w->name)
|
||||
ctf_integer(int, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_widget, snd_soc_dapm_widget_power,
|
||||
|
||||
asoc_snd_soc_dapm_widget_power,
|
||||
|
||||
TP_PROTO(struct snd_soc_dapm_widget *w, int val),
|
||||
|
||||
TP_ARGS(w, val)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
|
||||
|
||||
asoc_snd_soc_dapm_widget_event_start,
|
||||
|
||||
TP_PROTO(struct snd_soc_dapm_widget *w, int val),
|
||||
|
||||
TP_ARGS(w, val)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
|
||||
|
||||
asoc_snd_soc_dapm_widget_event_done,
|
||||
|
||||
TP_PROTO(struct snd_soc_dapm_widget *w, int val),
|
||||
|
||||
TP_ARGS(w, val)
|
||||
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_walk_done,
|
||||
|
||||
asoc_snd_soc_dapm_walk_done,
|
||||
|
||||
TP_PROTO(struct snd_soc_card *card),
|
||||
|
||||
TP_ARGS(card),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, card->name)
|
||||
ctf_integer(int, power_checks, card->dapm_stats.power_checks)
|
||||
ctf_integer(int, path_checks, card->dapm_stats.path_checks)
|
||||
ctf_integer(int, neighbour_checks, card->dapm_stats.neighbour_checks)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_path,
|
||||
|
||||
asoc_snd_soc_dapm_path,
|
||||
|
||||
TP_PROTO(struct snd_soc_dapm_widget *widget,
|
||||
enum snd_soc_dapm_direction dir,
|
||||
struct snd_soc_dapm_path *path),
|
||||
|
||||
TP_ARGS(widget, dir, path),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(wname, widget->name)
|
||||
ctf_string(pname, path->name ? path->name : DAPM_DIRECT)
|
||||
ctf_string(pnname, path->node[dir]->name)
|
||||
ctf_integer(int, path_node, (long) path->node[dir])
|
||||
ctf_integer(int, path_connect, path->connect)
|
||||
ctf_integer(int, path_dir, dir)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_output_path,
|
||||
|
||||
asoc_snd_soc_dapm_output_path,
|
||||
|
||||
TP_PROTO(struct snd_soc_dapm_widget *widget,
|
||||
struct snd_soc_dapm_path *path),
|
||||
|
||||
TP_ARGS(widget, path),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(wname, widget->name)
|
||||
ctf_string(pname, path->name ? path->name : DAPM_DIRECT)
|
||||
ctf_string(psname, path->sink->name)
|
||||
ctf_integer(int, path_sink, (long) path->sink)
|
||||
ctf_integer(int, path_connect, path->connect)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_input_path,
|
||||
|
||||
asoc_snd_soc_dapm_input_path,
|
||||
|
||||
TP_PROTO(struct snd_soc_dapm_widget *widget,
|
||||
struct snd_soc_dapm_path *path),
|
||||
|
||||
TP_ARGS(widget, path),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(wname, widget->name)
|
||||
ctf_string(pname,path->name ? path->name : DAPM_DIRECT)
|
||||
ctf_string(psname, path->source->name)
|
||||
ctf_integer(int, path_source, (long) path->source)
|
||||
ctf_integer(int, path_connect, path->connect)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_connected,
|
||||
|
||||
asoc_snd_soc_dapm_connected,
|
||||
|
||||
TP_PROTO(int paths, int stream),
|
||||
|
||||
TP_ARGS(paths, stream),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, paths, paths)
|
||||
ctf_integer(int, stream, stream)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_irq,
|
||||
|
||||
asoc_snd_soc_jack_irq,
|
||||
|
||||
TP_PROTO(const char *name),
|
||||
|
||||
TP_ARGS(name),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, name)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_report,
|
||||
|
||||
asoc_snd_soc_jack_report,
|
||||
|
||||
TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
|
||||
|
||||
TP_ARGS(jack, mask, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, jack->jack->id)
|
||||
ctf_integer(int, mask, mask)
|
||||
ctf_integer(int, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_notify,
|
||||
|
||||
asoc_snd_soc_jack_notify,
|
||||
|
||||
TP_PROTO(struct snd_soc_jack *jack, int val),
|
||||
|
||||
TP_ARGS(jack, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, jack->jack->id)
|
||||
ctf_integer(int, val, val)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_report,
|
||||
|
||||
asoc_snd_soc_jack_report,
|
||||
|
||||
TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
|
||||
|
||||
TP_ARGS(jack, mask, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, jack->jack->name)
|
||||
ctf_integer(int, mask, mask)
|
||||
ctf_integer(int, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_notify,
|
||||
|
||||
asoc_snd_soc_jack_notify,
|
||||
|
||||
TP_PROTO(struct snd_soc_jack *jack, int val),
|
||||
|
||||
TP_ARGS(jack, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, jack->jack->name)
|
||||
ctf_integer(int, val, val)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_cache_sync,
|
||||
|
||||
asoc_snd_soc_cache_sync,
|
||||
|
||||
TP_PROTO(struct snd_soc_codec *codec, const char *type,
|
||||
const char *status),
|
||||
|
||||
TP_ARGS(codec, type, status),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, codec->CODEC_NAME_FIELD)
|
||||
ctf_string(status, status)
|
||||
ctf_string(type, type)
|
||||
ctf_integer(int, id, codec->CODEC_ID_FIELD)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_ASOC_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,158 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM compaction
|
||||
|
||||
#if !defined(LTTNG_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_COMPACTION_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(compaction_isolate_template,
|
||||
|
||||
TP_PROTO(unsigned long start_pfn,
|
||||
unsigned long end_pfn,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_taken),
|
||||
|
||||
TP_ARGS(start_pfn, end_pfn, nr_scanned, nr_taken),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, start_pfn, start_pfn)
|
||||
ctf_integer(unsigned long, end_pfn, end_pfn)
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_taken, nr_taken)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template,
|
||||
|
||||
mm_compaction_isolate_migratepages,
|
||||
|
||||
compaction_isolate_migratepages,
|
||||
|
||||
TP_PROTO(unsigned long start_pfn,
|
||||
unsigned long end_pfn,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_taken),
|
||||
|
||||
TP_ARGS(start_pfn, end_pfn, nr_scanned, nr_taken)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template,
|
||||
|
||||
mm_compaction_isolate_freepages,
|
||||
|
||||
compaction_isolate_freepages,
|
||||
|
||||
TP_PROTO(unsigned long start_pfn,
|
||||
unsigned long end_pfn,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_taken),
|
||||
|
||||
TP_ARGS(start_pfn, end_pfn, nr_scanned, nr_taken)
|
||||
)
|
||||
|
||||
#else /* #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(compaction_isolate_template,
|
||||
|
||||
TP_PROTO(unsigned long nr_scanned,
|
||||
unsigned long nr_taken),
|
||||
|
||||
TP_ARGS(nr_scanned, nr_taken),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_taken, nr_taken)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template,
|
||||
|
||||
mm_compaction_isolate_migratepages,
|
||||
|
||||
compaction_isolate_migratepages,
|
||||
|
||||
TP_PROTO(unsigned long nr_scanned,
|
||||
unsigned long nr_taken),
|
||||
|
||||
TP_ARGS(nr_scanned, nr_taken)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template,
|
||||
|
||||
mm_compaction_isolate_freepages,
|
||||
|
||||
compaction_isolate_freepages,
|
||||
|
||||
TP_PROTO(unsigned long nr_scanned,
|
||||
unsigned long nr_taken),
|
||||
|
||||
TP_ARGS(nr_scanned, nr_taken)
|
||||
)
|
||||
|
||||
#endif /* #else #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) */
|
||||
|
||||
#if LTTNG_KERNEL_RANGE(3,12,30, 3,13,0) || \
|
||||
LTTNG_KERNEL_RANGE(3,14,25, 3,15,0) || \
|
||||
(LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CODE_MAP(mm_compaction_migratepages,
|
||||
|
||||
compaction_migratepages,
|
||||
|
||||
TP_PROTO(unsigned long nr_all,
|
||||
int migrate_rc,
|
||||
struct list_head *migratepages),
|
||||
|
||||
TP_ARGS(nr_all, migrate_rc, migratepages),
|
||||
|
||||
TP_locvar(
|
||||
unsigned long nr_failed;
|
||||
),
|
||||
|
||||
TP_code_pre(
|
||||
tp_locvar->nr_failed = 0;
|
||||
|
||||
{
|
||||
struct list_head *page_lru;
|
||||
|
||||
if (migrate_rc >= 0)
|
||||
tp_locvar->nr_failed = migrate_rc;
|
||||
else
|
||||
list_for_each(page_lru, migratepages)
|
||||
tp_locvar->nr_failed++;
|
||||
}
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, nr_migrated, nr_all - tp_locvar->nr_failed)
|
||||
ctf_integer(unsigned long, nr_failed, tp_locvar->nr_failed)
|
||||
),
|
||||
|
||||
TP_code_post()
|
||||
)
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
|
||||
|
||||
compaction_migratepages,
|
||||
|
||||
TP_PROTO(unsigned long nr_migrated,
|
||||
unsigned long nr_failed),
|
||||
|
||||
TP_ARGS(nr_migrated, nr_failed),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, nr_migrated, nr_migrated)
|
||||
ctf_integer(unsigned long, nr_failed, nr_failed)
|
||||
)
|
||||
)
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
|
||||
|
||||
#endif /* LTTNG_TRACE_COMPACTION_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,522 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM ext3
|
||||
|
||||
#if !defined(LTTNG_TRACE_EXT3_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_EXT3_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_free_inode,
|
||||
TP_PROTO(struct inode *inode),
|
||||
|
||||
TP_ARGS(inode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(umode_t, mode, inode->i_mode)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
|
||||
ctf_integer(uid_t, uid, i_uid_read(inode))
|
||||
ctf_integer(gid_t, gid, i_gid_read(inode))
|
||||
#else
|
||||
ctf_integer(uid_t, uid, inode->i_uid)
|
||||
ctf_integer(gid_t, gid, inode->i_gid)
|
||||
#endif
|
||||
ctf_integer(blkcnt_t, blocks, inode->i_blocks)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_request_inode,
|
||||
TP_PROTO(struct inode *dir, int mode),
|
||||
|
||||
TP_ARGS(dir, mode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, dir->i_sb->s_dev)
|
||||
ctf_integer(ino_t, dir, dir->i_ino)
|
||||
ctf_integer(umode_t, mode, mode)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_allocate_inode,
|
||||
TP_PROTO(struct inode *inode, struct inode *dir, int mode),
|
||||
|
||||
TP_ARGS(inode, dir, mode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(ino_t, dir, dir->i_ino)
|
||||
ctf_integer(umode_t, mode, mode)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_evict_inode,
|
||||
TP_PROTO(struct inode *inode),
|
||||
|
||||
TP_ARGS(inode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(int, nlink, inode->i_nlink)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_drop_inode,
|
||||
TP_PROTO(struct inode *inode, int drop),
|
||||
|
||||
TP_ARGS(inode, drop),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(int, drop, drop)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_mark_inode_dirty,
|
||||
TP_PROTO(struct inode *inode, unsigned long IP),
|
||||
|
||||
TP_ARGS(inode, IP),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(unsigned long, ip, IP)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_write_begin,
|
||||
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
|
||||
unsigned int flags),
|
||||
|
||||
TP_ARGS(inode, pos, len, flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(loff_t, pos, pos)
|
||||
ctf_integer(unsigned int, len, len)
|
||||
ctf_integer(unsigned int, flags, flags)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(ext3__write_end,
|
||||
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
|
||||
unsigned int copied),
|
||||
|
||||
TP_ARGS(inode, pos, len, copied),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(loff_t, pos, pos)
|
||||
ctf_integer(unsigned int, len, len)
|
||||
ctf_integer(unsigned int, copied, copied)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__write_end, ext3_ordered_write_end,
|
||||
|
||||
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
|
||||
unsigned int copied),
|
||||
|
||||
TP_ARGS(inode, pos, len, copied)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__write_end, ext3_writeback_write_end,
|
||||
|
||||
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
|
||||
unsigned int copied),
|
||||
|
||||
TP_ARGS(inode, pos, len, copied)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__write_end, ext3_journalled_write_end,
|
||||
|
||||
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
|
||||
unsigned int copied),
|
||||
|
||||
TP_ARGS(inode, pos, len, copied)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(ext3__page_op,
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, page->mapping->host->i_ino)
|
||||
ctf_integer(pgoff_t, index, page->index)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__page_op, ext3_ordered_writepage,
|
||||
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__page_op, ext3_writeback_writepage,
|
||||
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__page_op, ext3_journalled_writepage,
|
||||
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__page_op, ext3_readpage,
|
||||
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__page_op, ext3_releasepage,
|
||||
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_invalidatepage,
|
||||
TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
|
||||
|
||||
TP_ARGS(page, offset, length),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(pgoff_t, index, page->index)
|
||||
ctf_integer(unsigned int, offset, offset)
|
||||
ctf_integer(unsigned int, length, length)
|
||||
ctf_integer(ino_t, ino, page->mapping->host->i_ino)
|
||||
ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
|
||||
)
|
||||
)
|
||||
|
||||
#else
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_invalidatepage,
|
||||
TP_PROTO(struct page *page, unsigned long offset),
|
||||
|
||||
TP_ARGS(page, offset),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(pgoff_t, index, page->index)
|
||||
ctf_integer(unsigned long, offset, offset)
|
||||
ctf_integer(ino_t, ino, page->mapping->host->i_ino)
|
||||
ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
|
||||
)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_discard_blocks,
|
||||
TP_PROTO(struct super_block *sb, unsigned long blk,
|
||||
unsigned long count),
|
||||
|
||||
TP_ARGS(sb, blk, count),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, sb->s_dev)
|
||||
ctf_integer(unsigned long, blk, blk)
|
||||
ctf_integer(unsigned long, count, count)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_request_blocks,
|
||||
TP_PROTO(struct inode *inode, unsigned long goal,
|
||||
unsigned long count),
|
||||
|
||||
TP_ARGS(inode, goal, count),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(unsigned long, count, count)
|
||||
ctf_integer(unsigned long, goal, goal)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_allocate_blocks,
|
||||
TP_PROTO(struct inode *inode, unsigned long goal,
|
||||
unsigned long count, unsigned long block),
|
||||
|
||||
TP_ARGS(inode, goal, count, block),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(unsigned long, block, block)
|
||||
ctf_integer(unsigned long, count, count)
|
||||
ctf_integer(unsigned long, goal, goal)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_free_blocks,
|
||||
TP_PROTO(struct inode *inode, unsigned long block,
|
||||
unsigned long count),
|
||||
|
||||
TP_ARGS(inode, block, count),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(umode_t, mode, inode->i_mode)
|
||||
ctf_integer(unsigned long, block, block)
|
||||
ctf_integer(unsigned long, count, count)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_sync_file_enter,
|
||||
TP_PROTO(struct file *file, int datasync),
|
||||
|
||||
TP_ARGS(file, datasync),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, file->f_path.dentry->d_inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, file->f_path.dentry->d_inode->i_ino)
|
||||
ctf_integer(ino_t, parent, file->f_path.dentry->d_parent->d_inode->i_ino)
|
||||
ctf_integer(int, datasync, datasync)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_sync_file_exit,
|
||||
TP_PROTO(struct inode *inode, int ret),
|
||||
|
||||
TP_ARGS(inode, ret),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(int, ret, ret)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_sync_fs,
|
||||
TP_PROTO(struct super_block *sb, int wait),
|
||||
|
||||
TP_ARGS(sb, wait),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, sb->s_dev)
|
||||
ctf_integer(int, wait, wait)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_rsv_window_add,
|
||||
TP_PROTO(struct super_block *sb,
|
||||
struct ext3_reserve_window_node *rsv_node),
|
||||
|
||||
TP_ARGS(sb, rsv_node),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, start, rsv_node->rsv_window._rsv_start)
|
||||
ctf_integer(unsigned long, end, rsv_node->rsv_window._rsv_end)
|
||||
ctf_integer(dev_t, dev, sb->s_dev)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_discard_reservation,
|
||||
TP_PROTO(struct inode *inode,
|
||||
struct ext3_reserve_window_node *rsv_node),
|
||||
|
||||
TP_ARGS(inode, rsv_node),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, start, rsv_node->rsv_window._rsv_start)
|
||||
ctf_integer(unsigned long, end, rsv_node->rsv_window._rsv_end)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_alloc_new_reservation,
|
||||
TP_PROTO(struct super_block *sb, unsigned long goal),
|
||||
|
||||
TP_ARGS(sb, goal),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, sb->s_dev)
|
||||
ctf_integer(unsigned long, goal, goal)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_reserved,
|
||||
TP_PROTO(struct super_block *sb, unsigned long block,
|
||||
struct ext3_reserve_window_node *rsv_node),
|
||||
|
||||
TP_ARGS(sb, block, rsv_node),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, block, block)
|
||||
ctf_integer(unsigned long, start, rsv_node->rsv_window._rsv_start)
|
||||
ctf_integer(unsigned long, end, rsv_node->rsv_window._rsv_end)
|
||||
ctf_integer(dev_t, dev, sb->s_dev)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_forget,
|
||||
TP_PROTO(struct inode *inode, int is_metadata, unsigned long block),
|
||||
|
||||
TP_ARGS(inode, is_metadata, block),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(umode_t, mode, inode->i_mode)
|
||||
ctf_integer(int, is_metadata, is_metadata)
|
||||
ctf_integer(unsigned long, block, block)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_read_block_bitmap,
|
||||
TP_PROTO(struct super_block *sb, unsigned int group),
|
||||
|
||||
TP_ARGS(sb, group),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, sb->s_dev)
|
||||
ctf_integer(__u32, group, group)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_direct_IO_enter,
|
||||
TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
|
||||
|
||||
TP_ARGS(inode, offset, len, rw),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(loff_t, pos, offset)
|
||||
ctf_integer(unsigned long, len, len)
|
||||
ctf_integer(int, rw, rw)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_direct_IO_exit,
|
||||
TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
|
||||
int rw, int ret),
|
||||
|
||||
TP_ARGS(inode, offset, len, rw, ret),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(loff_t, pos, offset)
|
||||
ctf_integer(unsigned long, len, len)
|
||||
ctf_integer(int, rw, rw)
|
||||
ctf_integer(int, ret, ret)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_unlink_enter,
|
||||
TP_PROTO(struct inode *parent, struct dentry *dentry),
|
||||
|
||||
TP_ARGS(parent, dentry),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(ino_t, parent, parent->i_ino)
|
||||
ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
|
||||
ctf_integer(loff_t, size, dentry->d_inode->i_size)
|
||||
ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_unlink_exit,
|
||||
TP_PROTO(struct dentry *dentry, int ret),
|
||||
|
||||
TP_ARGS(dentry, ret),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
|
||||
ctf_integer(int, ret, ret)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(ext3__truncate,
|
||||
TP_PROTO(struct inode *inode),
|
||||
|
||||
TP_ARGS(inode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(blkcnt_t, blocks, inode->i_blocks)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__truncate, ext3_truncate_enter,
|
||||
|
||||
TP_PROTO(struct inode *inode),
|
||||
|
||||
TP_ARGS(inode)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__truncate, ext3_truncate_exit,
|
||||
|
||||
TP_PROTO(struct inode *inode),
|
||||
|
||||
TP_ARGS(inode)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_get_blocks_enter,
|
||||
TP_PROTO(struct inode *inode, unsigned long lblk,
|
||||
unsigned long len, int create),
|
||||
|
||||
TP_ARGS(inode, lblk, len, create),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(unsigned long, lblk, lblk)
|
||||
ctf_integer(unsigned long, len, len)
|
||||
ctf_integer(int, create, create)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_get_blocks_exit,
|
||||
TP_PROTO(struct inode *inode, unsigned long lblk,
|
||||
unsigned long pblk, unsigned long len, int ret),
|
||||
|
||||
TP_ARGS(inode, lblk, pblk, len, ret),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
ctf_integer(unsigned long, lblk, lblk)
|
||||
ctf_integer(unsigned long, pblk, pblk)
|
||||
ctf_integer(unsigned long, len, len)
|
||||
ctf_integer(int, ret, ret)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(ext3_load_inode,
|
||||
TP_PROTO(struct inode *inode),
|
||||
|
||||
TP_ARGS(inode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* LTTNG_TRACE_EXT3_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,39 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM gpio
|
||||
|
||||
#if !defined(LTTNG_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_GPIO_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(gpio_direction,
|
||||
|
||||
TP_PROTO(unsigned gpio, int in, int err),
|
||||
|
||||
TP_ARGS(gpio, in, err),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned, gpio, gpio)
|
||||
ctf_integer(int, in, in)
|
||||
ctf_integer(int, err, err)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(gpio_value,
|
||||
|
||||
TP_PROTO(unsigned gpio, int get, int value),
|
||||
|
||||
TP_ARGS(gpio, get, value),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned, gpio, gpio)
|
||||
ctf_integer(int, get, get)
|
||||
ctf_integer(int, value, value)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* if !defined(LTTNG_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,120 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM i2c
|
||||
|
||||
#if !defined(LTTNG_TRACE_I2C_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_I2C_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
|
||||
/*
|
||||
* __i2c_transfer() write request
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CODE(i2c_write,
|
||||
|
||||
TP_PROTO(const struct i2c_adapter *adap, const struct i2c_msg *msg,
|
||||
int num),
|
||||
|
||||
TP_ARGS(adap, msg, num),
|
||||
|
||||
TP_locvar(
|
||||
int extract_sensitive_payload;
|
||||
),
|
||||
|
||||
TP_code_pre(
|
||||
tp_locvar->extract_sensitive_payload =
|
||||
LTTNG_READ_ONCE(extract_sensitive_payload);
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, adapter_nr, adap->nr)
|
||||
ctf_integer(__u16, msg_nr, num)
|
||||
ctf_integer(__u16, addr, msg->addr)
|
||||
ctf_integer(__u16, flags, msg->flags)
|
||||
ctf_integer(__u16, len, msg->len)
|
||||
ctf_sequence_hex(__u8, buf,
|
||||
tp_locvar->extract_sensitive_payload ?
|
||||
msg->buf : NULL,
|
||||
__u16,
|
||||
tp_locvar->extract_sensitive_payload ?
|
||||
msg->len : 0)
|
||||
),
|
||||
|
||||
TP_code_post()
|
||||
)
|
||||
|
||||
/*
|
||||
* __i2c_transfer() read request
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(i2c_read,
|
||||
|
||||
TP_PROTO(const struct i2c_adapter *adap, const struct i2c_msg *msg,
|
||||
int num),
|
||||
|
||||
TP_ARGS(adap, msg, num),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, adapter_nr, adap->nr)
|
||||
ctf_integer(__u16, msg_nr, num)
|
||||
ctf_integer(__u16, addr, msg->addr)
|
||||
ctf_integer(__u16, flags, msg->flags)
|
||||
ctf_integer(__u16, len, msg->len)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* __i2c_transfer() read reply
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CODE(i2c_reply,
|
||||
|
||||
TP_PROTO(const struct i2c_adapter *adap, const struct i2c_msg *msg,
|
||||
int num),
|
||||
|
||||
TP_ARGS(adap, msg, num),
|
||||
|
||||
TP_locvar(
|
||||
int extract_sensitive_payload;
|
||||
),
|
||||
|
||||
TP_code_pre(
|
||||
tp_locvar->extract_sensitive_payload =
|
||||
LTTNG_READ_ONCE(extract_sensitive_payload);
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, adapter_nr, adap->nr)
|
||||
ctf_integer(__u16, msg_nr, num)
|
||||
ctf_integer(__u16, addr, msg->addr)
|
||||
ctf_integer(__u16, flags, msg->flags)
|
||||
ctf_integer(__u16, len, msg->len)
|
||||
ctf_sequence_hex(__u8, buf,
|
||||
tp_locvar->extract_sensitive_payload ?
|
||||
msg->buf : NULL,
|
||||
__u16,
|
||||
tp_locvar->extract_sensitive_payload ?
|
||||
msg->len : 0)
|
||||
),
|
||||
|
||||
TP_code_post()
|
||||
)
|
||||
|
||||
/*
|
||||
* __i2c_transfer() result
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(i2c_result,
|
||||
|
||||
TP_PROTO(const struct i2c_adapter *adap, int num, int ret),
|
||||
|
||||
TP_ARGS(adap, num, ret),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, adapter_nr, adap->nr)
|
||||
ctf_integer(__u16, nr_msgs, num)
|
||||
ctf_integer(__s16, ret, ret)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* LTTNG_TRACE_I2C_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,190 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM irq
|
||||
|
||||
#if !defined(LTTNG_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_IRQ_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
|
||||
#ifndef _TRACE_IRQ_DEF_
|
||||
#define _TRACE_IRQ_DEF_
|
||||
|
||||
struct irqaction;
|
||||
struct softirq_action;
|
||||
|
||||
#endif /* _TRACE_IRQ_DEF_ */
|
||||
|
||||
/**
|
||||
* irq_handler_entry - called immediately before the irq action handler
|
||||
* @irq: irq number
|
||||
* @action: pointer to struct irqaction
|
||||
*
|
||||
* The struct irqaction pointed to by @action contains various
|
||||
* information about the handler, including the device name,
|
||||
* @action->name, and the device id, @action->dev_id. When used in
|
||||
* conjunction with the irq_handler_exit tracepoint, we can figure
|
||||
* out irq handler latencies.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(irq_handler_entry,
|
||||
|
||||
TP_PROTO(int irq, struct irqaction *action),
|
||||
|
||||
TP_ARGS(irq, action),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, irq, irq)
|
||||
ctf_string(name, action->name)
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* irq_handler_exit - called immediately after the irq action handler returns
|
||||
* @irq: irq number
|
||||
* @action: pointer to struct irqaction
|
||||
* @ret: return value
|
||||
*
|
||||
* If the @ret value is set to IRQ_HANDLED, then we know that the corresponding
|
||||
* @action->handler scuccessully handled this irq. Otherwise, the irq might be
|
||||
* a shared irq line, or the irq was not handled successfully. Can be used in
|
||||
* conjunction with the irq_handler_entry to understand irq handler latencies.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(irq_handler_exit,
|
||||
|
||||
TP_PROTO(int irq, struct irqaction *action, int ret),
|
||||
|
||||
TP_ARGS(irq, action, ret),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, irq, irq)
|
||||
ctf_integer(int, ret, ret)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(irq_softirq,
|
||||
|
||||
TP_PROTO(unsigned int vec_nr),
|
||||
|
||||
TP_ARGS(vec_nr),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, vec, vec_nr)
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* softirq_entry - called immediately before the softirq handler
|
||||
* @vec_nr: softirq vector number
|
||||
*
|
||||
* When used in combination with the softirq_exit tracepoint
|
||||
* we can determine the softirq handler runtine.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq, softirq_entry,
|
||||
|
||||
irq_softirq_entry,
|
||||
|
||||
TP_PROTO(unsigned int vec_nr),
|
||||
|
||||
TP_ARGS(vec_nr)
|
||||
)
|
||||
|
||||
/**
|
||||
* softirq_exit - called immediately after the softirq handler returns
|
||||
* @vec_nr: softirq vector number
|
||||
*
|
||||
* When used in combination with the softirq_entry tracepoint
|
||||
* we can determine the softirq handler runtine.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq, softirq_exit,
|
||||
|
||||
irq_softirq_exit,
|
||||
|
||||
TP_PROTO(unsigned int vec_nr),
|
||||
|
||||
TP_ARGS(vec_nr)
|
||||
)
|
||||
|
||||
/**
|
||||
* softirq_raise - called immediately when a softirq is raised
|
||||
* @vec_nr: softirq vector number
|
||||
*
|
||||
* When used in combination with the softirq_entry tracepoint
|
||||
* we can determine the softirq raise to run latency.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq, softirq_raise,
|
||||
|
||||
irq_softirq_raise,
|
||||
|
||||
TP_PROTO(unsigned int vec_nr),
|
||||
|
||||
TP_ARGS(vec_nr)
|
||||
)
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(irq_softirq,
|
||||
|
||||
TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
|
||||
|
||||
TP_ARGS(h, vec),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, vec, (int)(h - vec))
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* softirq_entry - called immediately before the softirq handler
|
||||
* @h: pointer to struct softirq_action
|
||||
* @vec: pointer to first struct softirq_action in softirq_vec array
|
||||
*
|
||||
* When used in combination with the softirq_exit tracepoint
|
||||
* we can determine the softirq handler runtine.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq, softirq_entry,
|
||||
|
||||
irq_softirq_entry,
|
||||
|
||||
TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
|
||||
|
||||
TP_ARGS(h, vec)
|
||||
)
|
||||
|
||||
/**
|
||||
* softirq_exit - called immediately after the softirq handler returns
|
||||
* @h: pointer to struct softirq_action
|
||||
* @vec: pointer to first struct softirq_action in softirq_vec array
|
||||
*
|
||||
* When used in combination with the softirq_entry tracepoint
|
||||
* we can determine the softirq handler runtine.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq, softirq_exit,
|
||||
|
||||
irq_softirq_exit,
|
||||
|
||||
TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
|
||||
|
||||
TP_ARGS(h, vec)
|
||||
)
|
||||
|
||||
/**
|
||||
* softirq_raise - called immediately when a softirq is raised
|
||||
* @h: pointer to struct softirq_action
|
||||
* @vec: pointer to first struct softirq_action in softirq_vec array
|
||||
*
|
||||
* When used in combination with the softirq_entry tracepoint
|
||||
* we can determine the softirq raise to run latency.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq, softirq_raise,
|
||||
|
||||
irq_softirq_raise,
|
||||
|
||||
TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
|
||||
|
||||
TP_ARGS(h, vec)
|
||||
)
|
||||
#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */
|
||||
|
||||
#endif /* LTTNG_TRACE_IRQ_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,157 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM jbd
|
||||
|
||||
#if !defined(LTTNG_TRACE_JBD_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_JBD_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/jbd.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(jbd_checkpoint,
|
||||
|
||||
TP_PROTO(journal_t *journal, int result),
|
||||
|
||||
TP_ARGS(journal, result),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
ctf_integer(int, result, result)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(jbd_commit,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
|
||||
#endif
|
||||
ctf_integer(int, transaction, commit_transaction->t_tid)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd_commit, jbd_start_commit,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd_commit, jbd_commit_locking,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd_commit, jbd_commit_flushing,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd_commit, jbd_commit_logging,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(jbd_drop_transaction,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
|
||||
#endif
|
||||
ctf_integer(int, transaction, commit_transaction->t_tid)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(jbd_end_commit,
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
|
||||
#endif
|
||||
ctf_integer(int, transaction, commit_transaction->t_tid)
|
||||
ctf_integer(int, head, journal->j_tail_sequence)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(jbd_do_submit_data,
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
|
||||
#endif
|
||||
ctf_integer(int, transaction, commit_transaction->t_tid)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(jbd_cleanup_journal_tail,
|
||||
|
||||
TP_PROTO(journal_t *journal, tid_t first_tid,
|
||||
unsigned long block_nr, unsigned long freed),
|
||||
|
||||
TP_ARGS(journal, first_tid, block_nr, freed),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
ctf_integer(tid_t, tail_sequence, journal->j_tail_sequence)
|
||||
ctf_integer(tid_t, first_tid, first_tid)
|
||||
ctf_integer(unsigned long, block_nr, block_nr)
|
||||
ctf_integer(unsigned long, freed, freed)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(journal_write_superblock,
|
||||
|
||||
jbd_journal_write_superblock,
|
||||
|
||||
TP_PROTO(journal_t *journal, int write_op),
|
||||
|
||||
TP_ARGS(journal, write_op),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
ctf_integer(int, write_op, write_op)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(jbd_update_superblock_end,
|
||||
TP_PROTO(journal_t *journal, int wait),
|
||||
|
||||
TP_ARGS(journal, wait),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
ctf_integer(int, wait, wait)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_JBD_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,183 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM jbd2
|
||||
|
||||
#if !defined(LTTNG_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_JBD2_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/jbd2.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
|
||||
#ifndef _TRACE_JBD2_DEF
|
||||
#define _TRACE_JBD2_DEF
|
||||
struct transaction_chp_stats_s;
|
||||
struct transaction_run_stats_s;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint,
|
||||
|
||||
TP_PROTO(journal_t *journal, int result),
|
||||
|
||||
TP_ARGS(journal, result),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
ctf_integer(int, result, result)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(jbd2_commit,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
|
||||
ctf_integer(int, transaction, commit_transaction->t_tid)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_start_commit,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_commit_locking,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_commit_flushing,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_commit_logging,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_drop_transaction,
|
||||
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction)
|
||||
)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(jbd2_end_commit,
|
||||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
|
||||
|
||||
TP_ARGS(journal, commit_transaction),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
|
||||
ctf_integer(int, transaction, commit_transaction->t_tid)
|
||||
ctf_integer(int, head, journal->j_tail_sequence)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(jbd2_submit_inode_data,
|
||||
TP_PROTO(struct inode *inode),
|
||||
|
||||
TP_ARGS(inode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, inode->i_sb->s_dev)
|
||||
ctf_integer(ino_t, ino, inode->i_ino)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
|
||||
LTTNG_TRACEPOINT_EVENT(jbd2_run_stats,
|
||||
TP_PROTO(dev_t dev, unsigned long tid,
|
||||
struct transaction_run_stats_s *stats),
|
||||
|
||||
TP_ARGS(dev, tid, stats),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, dev)
|
||||
ctf_integer(unsigned long, tid, tid)
|
||||
ctf_integer(unsigned long, wait, stats->rs_wait)
|
||||
ctf_integer(unsigned long, running, stats->rs_running)
|
||||
ctf_integer(unsigned long, locked, stats->rs_locked)
|
||||
ctf_integer(unsigned long, flushing, stats->rs_flushing)
|
||||
ctf_integer(unsigned long, logging, stats->rs_logging)
|
||||
ctf_integer(__u32, handle_count, stats->rs_handle_count)
|
||||
ctf_integer(__u32, blocks, stats->rs_blocks)
|
||||
ctf_integer(__u32, blocks_logged, stats->rs_blocks_logged)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint_stats,
|
||||
TP_PROTO(dev_t dev, unsigned long tid,
|
||||
struct transaction_chp_stats_s *stats),
|
||||
|
||||
TP_ARGS(dev, tid, stats),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, dev)
|
||||
ctf_integer(unsigned long, tid, tid)
|
||||
ctf_integer(unsigned long, chp_time, stats->cs_chp_time)
|
||||
ctf_integer(__u32, forced_to_close, stats->cs_forced_to_close)
|
||||
ctf_integer(__u32, written, stats->cs_written)
|
||||
ctf_integer(__u32, dropped, stats->cs_dropped)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
LTTNG_TRACEPOINT_EVENT(jbd2_update_log_tail,
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(jbd2_cleanup_journal_tail,
|
||||
#endif
|
||||
|
||||
TP_PROTO(journal_t *journal, tid_t first_tid,
|
||||
unsigned long block_nr, unsigned long freed),
|
||||
|
||||
TP_ARGS(journal, first_tid, block_nr, freed),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
ctf_integer(tid_t, tail_sequence, journal->j_tail_sequence)
|
||||
ctf_integer(tid_t, first_tid, first_tid)
|
||||
ctf_integer(unsigned long, block_nr, block_nr)
|
||||
ctf_integer(unsigned long, freed, freed)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
LTTNG_TRACEPOINT_EVENT(jbd2_write_superblock,
|
||||
|
||||
TP_PROTO(journal_t *journal, int write_op),
|
||||
|
||||
TP_ARGS(journal, write_op),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
|
||||
ctf_integer(int, write_op, write_op)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_JBD2_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,345 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM kmem
|
||||
|
||||
#if !defined(LTTNG_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_KMEM_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc,
|
||||
|
||||
TP_PROTO(unsigned long call_site,
|
||||
const void *ptr,
|
||||
size_t bytes_req,
|
||||
size_t bytes_alloc,
|
||||
gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
ctf_integer_hex(const void *, ptr, ptr)
|
||||
ctf_integer(size_t, bytes_req, bytes_req)
|
||||
ctf_integer(size_t, bytes_alloc, bytes_alloc)
|
||||
ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_alloc, kmalloc,
|
||||
|
||||
kmem_kmalloc,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr,
|
||||
size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_alloc, kmem_cache_alloc,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr,
|
||||
size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc_node,
|
||||
|
||||
TP_PROTO(unsigned long call_site,
|
||||
const void *ptr,
|
||||
size_t bytes_req,
|
||||
size_t bytes_alloc,
|
||||
gfp_t gfp_flags,
|
||||
int node),
|
||||
|
||||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
ctf_integer_hex(const void *, ptr, ptr)
|
||||
ctf_integer(size_t, bytes_req, bytes_req)
|
||||
ctf_integer(size_t, bytes_alloc, bytes_alloc)
|
||||
ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
ctf_integer(int, node, node)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_alloc_node, kmalloc_node,
|
||||
|
||||
kmem_kmalloc_node,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr,
|
||||
size_t bytes_req, size_t bytes_alloc,
|
||||
gfp_t gfp_flags, int node),
|
||||
|
||||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_alloc_node, kmem_cache_alloc_node,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr,
|
||||
size_t bytes_req, size_t bytes_alloc,
|
||||
gfp_t gfp_flags, int node),
|
||||
|
||||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kmem_free,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr),
|
||||
|
||||
TP_ARGS(call_site, ptr),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
ctf_integer_hex(const void *, ptr, ptr)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_free, kfree,
|
||||
|
||||
kmem_kfree,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr),
|
||||
|
||||
TP_ARGS(call_site, ptr)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_free, kmem_cache_free,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr),
|
||||
|
||||
TP_ARGS(call_site, ptr)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free, kmem_mm_page_free,
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free_direct, kmem_mm_page_free_direct,
|
||||
#endif
|
||||
|
||||
TP_PROTO(struct page *page, unsigned int order),
|
||||
|
||||
TP_ARGS(page, order),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn, page_to_pfn(page))
|
||||
ctf_integer(unsigned int, order, order)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free_batched, kmem_mm_page_free_batched,
|
||||
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn, page_to_pfn(page))
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free_batched, kmem_mm_page_free_batched,
|
||||
|
||||
TP_PROTO(struct page *page, int cold),
|
||||
|
||||
TP_ARGS(page, cold),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn, page_to_pfn(page))
|
||||
ctf_integer(int, cold, cold)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_pagevec_free, kmem_pagevec_free,
|
||||
|
||||
TP_PROTO(struct page *page, int cold),
|
||||
|
||||
TP_ARGS(page, cold),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn, page_to_pfn(page))
|
||||
ctf_integer(int, cold, cold)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc, kmem_mm_page_alloc,
|
||||
|
||||
TP_PROTO(struct page *page, unsigned int order,
|
||||
gfp_t gfp_flags, int migratetype),
|
||||
|
||||
TP_ARGS(page, order, gfp_flags, migratetype),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn,
|
||||
page ? page_to_pfn(page) : -1UL)
|
||||
ctf_integer(unsigned int, order, order)
|
||||
ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
ctf_integer(int, migratetype, migratetype)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kmem_mm_page,
|
||||
|
||||
TP_PROTO(struct page *page, unsigned int order, int migratetype),
|
||||
|
||||
TP_ARGS(page, order, migratetype),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn,
|
||||
page ? page_to_pfn(page) : -1UL)
|
||||
ctf_integer(unsigned int, order, order)
|
||||
ctf_integer(int, migratetype, migratetype)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_mm_page, mm_page_alloc_zone_locked,
|
||||
|
||||
kmem_mm_page_alloc_zone_locked,
|
||||
|
||||
TP_PROTO(struct page *page, unsigned int order, int migratetype),
|
||||
|
||||
TP_ARGS(page, order, migratetype)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_mm_page, mm_page_pcpu_drain,
|
||||
|
||||
kmem_mm_page_pcpu_drain,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
|
||||
TP_PROTO(struct page *page, unsigned int order, int migratetype),
|
||||
#else
|
||||
TP_PROTO(struct page *page, int order, int migratetype),
|
||||
#endif
|
||||
|
||||
TP_ARGS(page, order, migratetype)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,2) \
|
||||
|| LTTNG_KERNEL_RANGE(3,14,36, 3,15,0) \
|
||||
|| LTTNG_KERNEL_RANGE(3,16,35, 3,17,0) \
|
||||
|| LTTNG_KERNEL_RANGE(3,18,10, 3,19,0) \
|
||||
|| LTTNG_DEBIAN_KERNEL_RANGE(3,16,7,9,0,0, 3,17,0,0,0,0) \
|
||||
|| LTTNG_UBUNTU_KERNEL_RANGE(3,13,11,50, 3,14,0,0) \
|
||||
|| LTTNG_UBUNTU_KERNEL_RANGE(3,16,7,34, 3,17,0,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc_extfrag,
|
||||
|
||||
kmem_mm_page_alloc_extfrag,
|
||||
|
||||
TP_PROTO(struct page *page,
|
||||
int alloc_order, int fallback_order,
|
||||
int alloc_migratetype, int fallback_migratetype),
|
||||
|
||||
TP_ARGS(page,
|
||||
alloc_order, fallback_order,
|
||||
alloc_migratetype, fallback_migratetype),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn, page_to_pfn(page))
|
||||
ctf_integer(int, alloc_order, alloc_order)
|
||||
ctf_integer(int, fallback_order, fallback_order)
|
||||
ctf_integer(int, alloc_migratetype, alloc_migratetype)
|
||||
ctf_integer(int, fallback_migratetype, fallback_migratetype)
|
||||
ctf_integer(int, change_ownership,
|
||||
(alloc_migratetype == get_pageblock_migratetype(page)))
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,30))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc_extfrag,
|
||||
|
||||
kmem_mm_page_alloc_extfrag,
|
||||
|
||||
TP_PROTO(struct page *page,
|
||||
int alloc_order, int fallback_order,
|
||||
int alloc_migratetype, int fallback_migratetype, int new_migratetype),
|
||||
|
||||
TP_ARGS(page,
|
||||
alloc_order, fallback_order,
|
||||
alloc_migratetype, fallback_migratetype, new_migratetype),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn, page_to_pfn(page))
|
||||
ctf_integer(int, alloc_order, alloc_order)
|
||||
ctf_integer(int, fallback_order, fallback_order)
|
||||
ctf_integer(int, alloc_migratetype, alloc_migratetype)
|
||||
ctf_integer(int, fallback_migratetype, fallback_migratetype)
|
||||
ctf_integer(int, change_ownership, (new_migratetype == alloc_migratetype))
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc_extfrag,
|
||||
|
||||
kmem_mm_page_alloc_extfrag,
|
||||
|
||||
TP_PROTO(struct page *page,
|
||||
int alloc_order, int fallback_order,
|
||||
int alloc_migratetype, int fallback_migratetype,
|
||||
int change_ownership),
|
||||
|
||||
TP_ARGS(page,
|
||||
alloc_order, fallback_order,
|
||||
alloc_migratetype, fallback_migratetype,
|
||||
change_ownership),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn, page_to_pfn(page))
|
||||
ctf_integer(int, alloc_order, alloc_order)
|
||||
ctf_integer(int, fallback_order, fallback_order)
|
||||
ctf_integer(int, alloc_migratetype, alloc_migratetype)
|
||||
ctf_integer(int, fallback_migratetype, fallback_migratetype)
|
||||
ctf_integer(int, change_ownership, change_ownership)
|
||||
)
|
||||
)
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc_extfrag,
|
||||
|
||||
kmem_mm_page_alloc_extfrag,
|
||||
|
||||
TP_PROTO(struct page *page,
|
||||
int alloc_order, int fallback_order,
|
||||
int alloc_migratetype, int fallback_migratetype),
|
||||
|
||||
TP_ARGS(page,
|
||||
alloc_order, fallback_order,
|
||||
alloc_migratetype, fallback_migratetype),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(unsigned long, pfn, page_to_pfn(page))
|
||||
ctf_integer(int, alloc_order, alloc_order)
|
||||
ctf_integer(int, fallback_order, fallback_order)
|
||||
ctf_integer(int, alloc_migratetype, alloc_migratetype)
|
||||
ctf_integer(int, fallback_migratetype, fallback_migratetype)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_KMEM_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,284 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#if !defined(LTTNG_TRACE_KVM_MAIN_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_KVM_MAIN_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM kvm
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_userspace_exit,
|
||||
TP_PROTO(__u32 reason, int errno),
|
||||
TP_ARGS(reason, errno),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u32, reason, reason)
|
||||
ctf_integer(int, errno, errno)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0))
|
||||
#if defined(__KVM_HAVE_IOAPIC)
|
||||
#undef __KVM_HAVE_IRQ_LINE
|
||||
#define __KVM_HAVE_IRQ_LINE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__KVM_HAVE_IRQ_LINE)
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_set_irq,
|
||||
TP_PROTO(unsigned int gsi, int level, int irq_source_id),
|
||||
TP_ARGS(gsi, level, irq_source_id),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, gsi, gsi)
|
||||
ctf_integer(int, level, level)
|
||||
ctf_integer(int, irq_source_id, irq_source_id)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if defined(__KVM_HAVE_IOAPIC)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_ioapic_set_irq,
|
||||
TP_PROTO(__u64 e, int pin, bool coalesced),
|
||||
TP_ARGS(e, pin, coalesced),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, e, e)
|
||||
ctf_integer(int, pin, pin)
|
||||
ctf_integer(bool, coalesced, coalesced)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_msi_set_irq,
|
||||
TP_PROTO(__u64 address, __u64 data),
|
||||
TP_ARGS(address, data),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, address, address)
|
||||
ctf_integer(__u64, data, data)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_ack_irq,
|
||||
TP_PROTO(unsigned int irqchip, unsigned int pin),
|
||||
TP_ARGS(irqchip, pin),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, irqchip, irqchip)
|
||||
ctf_integer(unsigned int, pin, pin)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* defined(__KVM_HAVE_IOAPIC) */
|
||||
|
||||
#define KVM_TRACE_MMIO_READ_UNSATISFIED 0
|
||||
#define KVM_TRACE_MMIO_READ 1
|
||||
#define KVM_TRACE_MMIO_WRITE 2
|
||||
|
||||
#define kvm_trace_symbol_mmio \
|
||||
{ KVM_TRACE_MMIO_READ_UNSATISFIED, "unsatisfied-read" }, \
|
||||
{ KVM_TRACE_MMIO_READ, "read" }, \
|
||||
{ KVM_TRACE_MMIO_WRITE, "write" }
|
||||
|
||||
|
||||
#if (LTTNG_SLE_KERNEL_RANGE(4,4,121,92,92,0, 4,4,122,0,0,0) \
|
||||
|| LTTNG_SLE_KERNEL_RANGE(4,4,131,94,0,0, 4,5,0,0,0,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_mmio,
|
||||
TP_PROTO(int type, int len, u64 gpa, u64 val),
|
||||
TP_ARGS(type, len, gpa, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u32, type, type)
|
||||
ctf_integer(u32, len, len)
|
||||
ctf_integer(u64, gpa, gpa)
|
||||
ctf_integer(u64, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0) \
|
||||
|| LTTNG_KERNEL_RANGE(4,14,14, 4,15,0) \
|
||||
|| LTTNG_DEBIAN_KERNEL_RANGE(4,14,13,0,1,0, 4,15,0,0,0,0) \
|
||||
|| LTTNG_KERNEL_RANGE(4,9,77, 4,10,0) \
|
||||
|| LTTNG_KERNEL_RANGE(4,4,112, 4,5,0) \
|
||||
|| LTTNG_KERNEL_RANGE(4,1,50, 4,2,0) \
|
||||
|| LTTNG_KERNEL_RANGE(3,16,52, 3,17,0) \
|
||||
|| LTTNG_UBUNTU_KERNEL_RANGE(3,13,11,144, 3,14,0,0) \
|
||||
|| LTTNG_KERNEL_RANGE(3,2,97, 3,3,0) \
|
||||
|| LTTNG_UBUNTU_KERNEL_RANGE(4,13,16,38, 4,14,0,0) \
|
||||
|| LTTNG_DEBIAN_KERNEL_RANGE(4,9,65,0,3,0, 4,10,0,0,0,0) \
|
||||
|| LTTNG_FEDORA_KERNEL_RANGE(4,14,13,300, 4,15,0,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_mmio,
|
||||
TP_PROTO(int type, int len, u64 gpa, void *val),
|
||||
TP_ARGS(type, len, gpa, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u32, type, type)
|
||||
ctf_integer(u32, len, len)
|
||||
ctf_integer(u64, gpa, gpa)
|
||||
ctf_sequence_hex(unsigned char, val, val, u32, len)
|
||||
)
|
||||
)
|
||||
|
||||
#else
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_mmio,
|
||||
TP_PROTO(int type, int len, u64 gpa, u64 val),
|
||||
TP_ARGS(type, len, gpa, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u32, type, type)
|
||||
ctf_integer(u32, len, len)
|
||||
ctf_integer(u64, gpa, gpa)
|
||||
ctf_integer(u64, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
|
||||
|
||||
#define kvm_fpu_load_symbol \
|
||||
{0, "unload"}, \
|
||||
{1, "load"}
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_fpu,
|
||||
TP_PROTO(int load),
|
||||
TP_ARGS(load),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u32, load, load)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0) \
|
||||
|| LTTNG_RHEL_KERNEL_RANGE(3,10,0,327,0,0, 3,11,0,0,0,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_age_page,
|
||||
TP_PROTO(ulong gfn, int level, struct kvm_memory_slot *slot, int ref),
|
||||
TP_ARGS(gfn, level, slot, ref),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u64, hva,
|
||||
((gfn - slot->base_gfn) << PAGE_SHIFT) + slot->userspace_addr)
|
||||
ctf_integer(u64, gfn, gfn)
|
||||
ctf_integer(u8, level, level)
|
||||
ctf_integer(u8, referenced, ref)
|
||||
)
|
||||
)
|
||||
|
||||
#else
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(kvm_age_page,
|
||||
TP_PROTO(ulong hva, struct kvm_memory_slot *slot, int ref),
|
||||
TP_ARGS(hva, slot, ref),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u64, hva, hva)
|
||||
ctf_integer(u64, gfn,
|
||||
slot->base_gfn + ((hva - slot->userspace_addr) >> PAGE_SHIFT))
|
||||
ctf_integer(u8, referenced, ref)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
|
||||
|
||||
#ifdef CONFIG_KVM_ASYNC_PF
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kvm_async_get_page_class,
|
||||
|
||||
TP_PROTO(u64 gva, u64 gfn),
|
||||
|
||||
TP_ARGS(gva, gfn),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, gva, gva)
|
||||
ctf_integer(u64, gfn, gfn)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_async_get_page_class, kvm_try_async_get_page,
|
||||
|
||||
TP_PROTO(u64 gva, u64 gfn),
|
||||
|
||||
TP_ARGS(gva, gfn)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_async_get_page_class, kvm_async_pf_doublefault,
|
||||
|
||||
TP_PROTO(u64 gva, u64 gfn),
|
||||
|
||||
TP_ARGS(gva, gfn)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kvm_async_pf_nopresent_ready,
|
||||
|
||||
TP_PROTO(u64 token, u64 gva),
|
||||
|
||||
TP_ARGS(token, gva),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(__u64, token, token)
|
||||
ctf_integer(__u64, gva, gva)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_async_pf_nopresent_ready, kvm_async_pf_not_present,
|
||||
|
||||
TP_PROTO(u64 token, u64 gva),
|
||||
|
||||
TP_ARGS(token, gva)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_async_pf_nopresent_ready, kvm_async_pf_ready,
|
||||
|
||||
TP_PROTO(u64 token, u64 gva),
|
||||
|
||||
TP_ARGS(token, gva)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0) \
|
||||
|| LTTNG_RHEL_KERNEL_RANGE(3,10,0,229,0,0, 3,11,0,0,0,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(
|
||||
kvm_async_pf_completed,
|
||||
TP_PROTO(unsigned long address, u64 gva),
|
||||
TP_ARGS(address, gva),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, address, address)
|
||||
ctf_integer(u64, gva, gva)
|
||||
)
|
||||
)
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(
|
||||
kvm_async_pf_completed,
|
||||
TP_PROTO(unsigned long address, struct page *page, u64 gva),
|
||||
TP_ARGS(address, page, gva),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, address, address)
|
||||
ctf_integer(pfn_t, pfn, page ? page_to_pfn(page) : 0)
|
||||
ctf_integer(u64, gva, gva)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)) */
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_KVM_MAIN_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,138 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#include <linux/version.h>
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
|
||||
#define TRACE_SYSTEM lock
|
||||
#else
|
||||
#define TRACE_SYSTEM lockdep
|
||||
#define TRACE_INCLUDE_FILE lock
|
||||
#if defined(_TRACE_LOCKDEP_H)
|
||||
#define LTTNG_TRACE_LOCK_H
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined(LTTNG_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_LOCK_H
|
||||
|
||||
#include <linux/lockdep.h>
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
|
||||
#ifdef CONFIG_LOCKDEP
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lock_acquire,
|
||||
|
||||
TP_PROTO(struct lockdep_map *lock, unsigned int subclass,
|
||||
int trylock, int read, int check,
|
||||
struct lockdep_map *next_lock, unsigned long ip),
|
||||
|
||||
TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, flags, (trylock ? 1 : 0) | (read ? 2 : 0))
|
||||
ctf_string(name, lock->name)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
|
||||
ctf_integer_hex(void *, lockdep_addr, lock)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(lock,
|
||||
|
||||
TP_PROTO(struct lockdep_map *lock, unsigned long ip),
|
||||
|
||||
TP_ARGS(lock, ip),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, lock->name)
|
||||
ctf_integer_hex(void *, lockdep_addr, lock)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(lock, lock_release,
|
||||
|
||||
TP_PROTO(struct lockdep_map *lock, unsigned long ip),
|
||||
|
||||
TP_ARGS(lock, ip)
|
||||
)
|
||||
|
||||
#ifdef CONFIG_LOCK_STAT
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(lock, lock_contended,
|
||||
|
||||
TP_PROTO(struct lockdep_map *lock, unsigned long ip),
|
||||
|
||||
TP_ARGS(lock, ip)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(lock, lock_acquired,
|
||||
|
||||
TP_PROTO(struct lockdep_map *lock, unsigned long ip),
|
||||
|
||||
TP_ARGS(lock, ip)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lock_release,
|
||||
|
||||
TP_PROTO(struct lockdep_map *lock, int nested, unsigned long ip),
|
||||
|
||||
TP_ARGS(lock, nested, ip),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, lock->name)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
|
||||
ctf_integer_hex(void *, lockdep_addr, lock)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
|
||||
#ifdef CONFIG_LOCK_STAT
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lock_contended,
|
||||
|
||||
TP_PROTO(struct lockdep_map *lock, unsigned long ip),
|
||||
|
||||
TP_ARGS(lock, ip),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, lock->name)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
|
||||
ctf_integer_hex(void *, lockdep_addr, lock)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lock_acquired,
|
||||
|
||||
TP_PROTO(struct lockdep_map *lock, unsigned long ip, s64 waittime),
|
||||
|
||||
TP_ARGS(lock, ip, waittime),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, lock->name)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
|
||||
ctf_integer(s64, wait_nsec, wait_nsec)
|
||||
ctf_integer_hex(void *, lockdep_addr, lock)
|
||||
#else
|
||||
ctf_integer(unsigned long, wait_usec, (unsigned long) waittime)
|
||||
ctf_integer(unsigned long, wait_nsec_rem, do_div(waittime, NSEC_PER_USEC))
|
||||
#endif
|
||||
)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_LOCK_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,145 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM lttng_statedump
|
||||
|
||||
#if !defined(LTTNG_TRACE_LTTNG_STATEDUMP_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_LTTNG_STATEDUMP_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/nsproxy.h>
|
||||
#include <linux/pid_namespace.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
|
||||
#define lttng_proc_inum ns.inum
|
||||
#else
|
||||
#define lttng_proc_inum proc_inum
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_statedump_start,
|
||||
TP_PROTO(struct lttng_session *session),
|
||||
TP_ARGS(session),
|
||||
TP_FIELDS()
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_statedump_end,
|
||||
TP_PROTO(struct lttng_session *session),
|
||||
TP_ARGS(session),
|
||||
TP_FIELDS()
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_statedump_process_state,
|
||||
TP_PROTO(struct lttng_session *session,
|
||||
struct task_struct *p,
|
||||
int type, int mode, int submode, int status,
|
||||
struct pid_namespace *pid_ns),
|
||||
TP_ARGS(session, p, type, mode, submode, status, pid_ns),
|
||||
TP_FIELDS(
|
||||
ctf_integer(pid_t, tid, p->pid)
|
||||
ctf_integer(pid_t, vtid, pid_ns ? task_pid_nr_ns(p, pid_ns) : 0)
|
||||
ctf_integer(pid_t, pid, p->tgid)
|
||||
ctf_integer(pid_t, vpid, pid_ns ? task_tgid_nr_ns(p, pid_ns) : 0)
|
||||
ctf_integer(pid_t, ppid,
|
||||
({
|
||||
pid_t ret;
|
||||
|
||||
rcu_read_lock();
|
||||
ret = task_tgid_nr(p->real_parent);
|
||||
rcu_read_unlock();
|
||||
ret;
|
||||
}))
|
||||
ctf_integer(pid_t, vppid,
|
||||
({
|
||||
struct task_struct *parent;
|
||||
pid_t ret = 0;
|
||||
|
||||
if (pid_ns) {
|
||||
rcu_read_lock();
|
||||
parent = rcu_dereference(p->real_parent);
|
||||
ret = task_tgid_nr_ns(parent, pid_ns);
|
||||
rcu_read_unlock();
|
||||
}
|
||||
ret;
|
||||
}))
|
||||
ctf_array_text(char, name, p->comm, TASK_COMM_LEN)
|
||||
ctf_integer(int, type, type)
|
||||
ctf_integer(int, mode, mode)
|
||||
ctf_integer(int, submode, submode)
|
||||
ctf_integer(int, status, status)
|
||||
ctf_integer(int, ns_level, pid_ns ? pid_ns->level : 0)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
|
||||
ctf_integer(unsigned int, ns_inum, pid_ns ? pid_ns->lttng_proc_inum : 0)
|
||||
#endif
|
||||
ctf_integer(unsigned int, cpu, task_cpu(p))
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_statedump_file_descriptor,
|
||||
TP_PROTO(struct lttng_session *session,
|
||||
struct task_struct *p, int fd, const char *filename,
|
||||
unsigned int flags, fmode_t fmode),
|
||||
TP_ARGS(session, p, fd, filename, flags, fmode),
|
||||
TP_FIELDS(
|
||||
ctf_integer(pid_t, pid, p->tgid)
|
||||
ctf_integer(int, fd, fd)
|
||||
ctf_integer_oct(unsigned int, flags, flags)
|
||||
ctf_integer_hex(fmode_t, fmode, fmode)
|
||||
ctf_string(filename, filename)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_statedump_vm_map,
|
||||
TP_PROTO(struct lttng_session *session,
|
||||
struct task_struct *p, struct vm_area_struct *map,
|
||||
unsigned long inode),
|
||||
TP_ARGS(session, p, map, inode),
|
||||
TP_FIELDS(
|
||||
ctf_integer(pid_t, pid, p->tgid)
|
||||
ctf_integer_hex(unsigned long, start, map->vm_start)
|
||||
ctf_integer_hex(unsigned long, end, map->vm_end)
|
||||
ctf_integer_hex(unsigned long, flags, map->vm_flags)
|
||||
ctf_integer(unsigned long, inode, inode)
|
||||
ctf_integer(unsigned long, pgoff, map->vm_pgoff << PAGE_SHIFT)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_statedump_network_interface,
|
||||
TP_PROTO(struct lttng_session *session,
|
||||
struct net_device *dev, struct in_ifaddr *ifa),
|
||||
TP_ARGS(session, dev, ifa),
|
||||
TP_FIELDS(
|
||||
ctf_string(name, dev->name)
|
||||
ctf_integer_network_hex(uint32_t, address_ipv4,
|
||||
ifa ? ifa->ifa_address : 0U)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_statedump_block_device,
|
||||
TP_PROTO(struct lttng_session *session,
|
||||
dev_t dev, const char *diskname),
|
||||
TP_ARGS(session, dev, diskname),
|
||||
TP_FIELDS(
|
||||
ctf_integer(dev_t, dev, dev)
|
||||
ctf_string(diskname, diskname)
|
||||
)
|
||||
)
|
||||
|
||||
/* Called with desc->lock held */
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_statedump_interrupt,
|
||||
TP_PROTO(struct lttng_session *session,
|
||||
unsigned int irq, const char *chip_name,
|
||||
struct irqaction *action),
|
||||
TP_ARGS(session, irq, chip_name, action),
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, irq, irq)
|
||||
ctf_string(name, chip_name)
|
||||
ctf_string(action, action->name ? : "")
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* LTTNG_TRACE_LTTNG_STATEDUMP_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,58 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM lttng_test
|
||||
|
||||
#if !defined(LTTNG_TRACE_LTTNG_TEST_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_LTTNG_TEST_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
LTTNG_TRACEPOINT_ENUM(
|
||||
lttng_test_filter_event_enum,
|
||||
TP_ENUM_VALUES(
|
||||
ctf_enum_auto("AUTO: EXPECT 0")
|
||||
ctf_enum_value("VALUE: 23", 23)
|
||||
ctf_enum_value("VALUE: 27", 27)
|
||||
ctf_enum_auto("AUTO: EXPECT 28")
|
||||
ctf_enum_range("RANGE: 101 TO 303", 101, 303)
|
||||
ctf_enum_auto("AUTO: EXPECT 304")
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_test_filter_event,
|
||||
TP_PROTO(int anint, int netint, long *values,
|
||||
char *text, size_t textlen,
|
||||
char *etext, uint32_t * net_values),
|
||||
TP_ARGS(anint, netint, values, text, textlen, etext, net_values),
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, intfield, anint)
|
||||
ctf_integer_hex(int, intfield2, anint)
|
||||
ctf_integer(long, longfield, anint)
|
||||
ctf_integer_network(int, netintfield, netint)
|
||||
ctf_integer_network_hex(int, netintfieldhex, netint)
|
||||
ctf_array(long, arrfield1, values, 3)
|
||||
ctf_array_text(char, arrfield2, text, 10)
|
||||
ctf_array_network(uint32_t, arrfield3, net_values, 3)
|
||||
ctf_sequence(char, seqfield1, text, size_t, textlen)
|
||||
ctf_sequence_text(char, seqfield2, text, size_t, textlen)
|
||||
ctf_sequence_network(uint32_t, seqfield3, net_values, size_t, 3)
|
||||
ctf_sequence(long, seqfield4, values, size_t, 3)
|
||||
ctf_string(stringfield, text)
|
||||
ctf_string(stringfield2, etext)
|
||||
ctf_sequence_bitfield(long, bitfield_seq, values, uint8_t, 3)
|
||||
ctf_array_bitfield(long, bitfield_array, values, 3)
|
||||
ctf_enum(lttng_test_filter_event_enum, int, enum0, 0)
|
||||
ctf_enum(lttng_test_filter_event_enum, int, enum23, 23)
|
||||
ctf_enum(lttng_test_filter_event_enum, int, enum27, 27)
|
||||
ctf_enum(lttng_test_filter_event_enum, int, enum28, 28)
|
||||
ctf_enum(lttng_test_filter_event_enum, int, enum202, 202)
|
||||
ctf_enum(lttng_test_filter_event_enum, int, enum304, 304)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* LTTNG_TRACE_LTTNG_TEST_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,21 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM lttng
|
||||
|
||||
#if !defined(LTTNG_TRACE_LTTNG_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_LTTNG_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(lttng_logger,
|
||||
TP_PROTO(const char __user *text, size_t len),
|
||||
TP_ARGS(text, len),
|
||||
TP_FIELDS(
|
||||
ctf_user_sequence_text(char, msg, text, size_t, len)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* LTTNG_TRACE_LTTNG_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,825 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM mm_vmscan
|
||||
|
||||
#if !defined(LTTNG_TRACE_MM_VMSCAN_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_MM_VMSCAN_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/memcontrol.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#ifndef _TRACE_VMSCAN_DEF
|
||||
#define _TRACE_VMSCAN_DEF
|
||||
#define RECLAIM_WB_ANON 0x0001u
|
||||
#define RECLAIM_WB_FILE 0x0002u
|
||||
#define RECLAIM_WB_MIXED 0x0010u
|
||||
#define RECLAIM_WB_SYNC 0x0004u /* Unused, all reclaim async */
|
||||
#define RECLAIM_WB_ASYNC 0x0008u
|
||||
|
||||
#if ((LINUX_VERSION_CODE <= KERNEL_VERSION(3,0,38)) || \
|
||||
LTTNG_KERNEL_RANGE(3,1,0, 3,2,0))
|
||||
typedef int isolate_mode_t;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
|
||||
|
||||
#include <linux/mm_inline.h>
|
||||
|
||||
#define trace_reclaim_flags(file) ( \
|
||||
(file ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \
|
||||
(RECLAIM_WB_ASYNC) \
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0))
|
||||
|
||||
#include <linux/mm_inline.h>
|
||||
|
||||
#define trace_reclaim_flags(page) ( \
|
||||
(page_is_file_cache(page) ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \
|
||||
(RECLAIM_WB_ASYNC) \
|
||||
)
|
||||
|
||||
#define trace_shrink_flags(file) \
|
||||
( \
|
||||
(file ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \
|
||||
(RECLAIM_WB_ASYNC) \
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_sleep,
|
||||
|
||||
TP_PROTO(int nid),
|
||||
|
||||
TP_ARGS(nid),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_wake,
|
||||
|
||||
TP_PROTO(int nid, int zid, int order),
|
||||
|
||||
TP_ARGS(nid, zid, order),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer(int, zid, zid)
|
||||
ctf_integer(int, order, order)
|
||||
)
|
||||
)
|
||||
|
||||
#else
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_wake,
|
||||
|
||||
TP_PROTO(int nid, int order),
|
||||
|
||||
TP_ARGS(nid, order),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer(int, order, order)
|
||||
)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_wakeup_kswapd,
|
||||
|
||||
TP_PROTO(int nid, int zid, int order, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(nid, zid, order, gfp_flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer(int, zid, zid)
|
||||
ctf_integer(int, order, order)
|
||||
ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_wakeup_kswapd,
|
||||
|
||||
TP_PROTO(int nid, int zid, int order),
|
||||
|
||||
TP_ARGS(nid, zid, order),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer(int, zid, zid)
|
||||
ctf_integer(int, order, order)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
|
||||
|
||||
TP_PROTO(int order, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(order, gfp_flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, order, order)
|
||||
ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin,
|
||||
|
||||
TP_PROTO(int order, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(order, gfp_flags)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin,
|
||||
|
||||
TP_PROTO(int order, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(order, gfp_flags)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin,
|
||||
|
||||
TP_PROTO(int order, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(order, gfp_flags)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
|
||||
|
||||
TP_PROTO(int order, int may_writepage, gfp_t gfp_flags, int classzone_idx),
|
||||
|
||||
TP_ARGS(order, may_writepage, gfp_flags, classzone_idx),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, order, order)
|
||||
ctf_integer(int, may_writepage, may_writepage)
|
||||
ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
ctf_integer(int, classzone_idx, classzone_idx)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin,
|
||||
|
||||
TP_PROTO(int order, int may_writepage, gfp_t gfp_flags, int classzone_idx),
|
||||
|
||||
TP_ARGS(order, may_writepage, gfp_flags, classzone_idx)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin,
|
||||
|
||||
TP_PROTO(int order, int may_writepage, gfp_t gfp_flags, int classzone_idx),
|
||||
|
||||
TP_ARGS(order, may_writepage, gfp_flags, classzone_idx)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin,
|
||||
|
||||
TP_PROTO(int order, int may_writepage, gfp_t gfp_flags, int classzone_idx),
|
||||
|
||||
TP_ARGS(order, may_writepage, gfp_flags, classzone_idx)
|
||||
)
|
||||
|
||||
#else
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
|
||||
|
||||
TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(order, may_writepage, gfp_flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, order, order)
|
||||
ctf_integer(int, may_writepage, may_writepage)
|
||||
ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin,
|
||||
|
||||
TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(order, may_writepage, gfp_flags)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin,
|
||||
|
||||
TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(order, may_writepage, gfp_flags)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin,
|
||||
|
||||
TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
|
||||
|
||||
TP_ARGS(order, may_writepage, gfp_flags)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template,
|
||||
|
||||
TP_PROTO(unsigned long nr_reclaimed),
|
||||
|
||||
TP_ARGS(nr_reclaimed),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end,
|
||||
|
||||
TP_PROTO(unsigned long nr_reclaimed),
|
||||
|
||||
TP_ARGS(nr_reclaimed)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_reclaim_end,
|
||||
|
||||
TP_PROTO(unsigned long nr_reclaimed),
|
||||
|
||||
TP_ARGS(nr_reclaimed)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_softlimit_reclaim_end,
|
||||
|
||||
TP_PROTO(unsigned long nr_reclaimed),
|
||||
|
||||
TP_ARGS(nr_reclaimed)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_start,
|
||||
|
||||
mm_vmscan_shrink_slab_start,
|
||||
|
||||
TP_PROTO(struct shrinker *shr, struct shrink_control *sc,
|
||||
long nr_objects_to_shrink, unsigned long cache_items,
|
||||
unsigned long long delta, unsigned long total_scan,
|
||||
int priority),
|
||||
|
||||
TP_ARGS(shr, sc, nr_objects_to_shrink, cache_items, delta, total_scan,
|
||||
priority),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct shrinker *, shr, shr)
|
||||
ctf_integer_hex(void *, shrink, shr->scan_objects)
|
||||
ctf_integer(int, nid, sc->nid)
|
||||
ctf_integer(long, nr_objects_to_shrink, nr_objects_to_shrink)
|
||||
ctf_integer(gfp_t, gfp_flags, sc->gfp_mask)
|
||||
ctf_integer(unsigned long, cache_items, cache_items)
|
||||
ctf_integer(unsigned long long, delta, delta)
|
||||
ctf_integer(unsigned long, total_scan, total_scan)
|
||||
ctf_integer(int, priority, priority)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_start,
|
||||
|
||||
mm_vmscan_shrink_slab_start,
|
||||
|
||||
TP_PROTO(struct shrinker *shr, struct shrink_control *sc,
|
||||
long nr_objects_to_shrink, unsigned long pgs_scanned,
|
||||
unsigned long lru_pgs, unsigned long cache_items,
|
||||
unsigned long long delta, unsigned long total_scan),
|
||||
|
||||
TP_ARGS(shr, sc, nr_objects_to_shrink, pgs_scanned, lru_pgs,
|
||||
cache_items, delta, total_scan),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct shrinker *, shr, shr)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
ctf_integer_hex(void *, shrink, shr->scan_objects)
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
ctf_integer_hex(void *, shrink, shr->shrink)
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
ctf_integer(long, nr_objects_to_shrink, nr_objects_to_shrink)
|
||||
ctf_integer(gfp_t, gfp_flags, sc->gfp_mask)
|
||||
ctf_integer(unsigned long, pgs_scanned, pgs_scanned)
|
||||
ctf_integer(unsigned long, lru_pgs, lru_pgs)
|
||||
ctf_integer(unsigned long, cache_items, cache_items)
|
||||
ctf_integer(unsigned long long, delta, delta)
|
||||
ctf_integer(unsigned long, total_scan, total_scan)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end,
|
||||
|
||||
mm_vmscan_shrink_slab_end,
|
||||
|
||||
TP_PROTO(struct shrinker *shr, int nid, int shrinker_retval,
|
||||
long unused_scan_cnt, long new_scan_cnt, long total_scan),
|
||||
|
||||
TP_ARGS(shr, nid, shrinker_retval, unused_scan_cnt, new_scan_cnt,
|
||||
total_scan),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct shrinker *, shr, shr)
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer_hex(void *, shrink, shr->scan_objects)
|
||||
ctf_integer(long, unused_scan, unused_scan_cnt)
|
||||
ctf_integer(long, new_scan, new_scan_cnt)
|
||||
ctf_integer(int, retval, shrinker_retval)
|
||||
ctf_integer(long, total_scan, total_scan)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end,
|
||||
|
||||
mm_vmscan_shrink_slab_end,
|
||||
|
||||
TP_PROTO(struct shrinker *shr, int shrinker_retval,
|
||||
long unused_scan_cnt, long new_scan_cnt),
|
||||
|
||||
TP_ARGS(shr, shrinker_retval, unused_scan_cnt, new_scan_cnt),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct shrinker *, shr, shr)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
ctf_integer_hex(void *, shrink, shr->scan_objects)
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
ctf_integer_hex(void *, shrink, shr->shrink)
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
ctf_integer(long, unused_scan, unused_scan_cnt)
|
||||
ctf_integer(long, new_scan, new_scan_cnt)
|
||||
ctf_integer(int, retval, shrinker_retval)
|
||||
ctf_integer(long, total_scan, new_scan_cnt - unused_scan_cnt)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_isolate,
|
||||
|
||||
TP_PROTO(int classzone_idx,
|
||||
int order,
|
||||
unsigned long nr_requested,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_skipped,
|
||||
unsigned long nr_taken,
|
||||
isolate_mode_t isolate_mode,
|
||||
int lru
|
||||
),
|
||||
|
||||
TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_skipped,
|
||||
nr_taken, isolate_mode, lru
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, classzone_idx, classzone_idx)
|
||||
ctf_integer(int, order, order)
|
||||
ctf_integer(unsigned long, nr_requested, nr_requested)
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_skipped, nr_skipped)
|
||||
ctf_integer(unsigned long, nr_taken, nr_taken)
|
||||
ctf_integer(isolate_mode_t, isolate_mode, isolate_mode)
|
||||
ctf_integer(int, lru, lru)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_lru_isolate_template,
|
||||
|
||||
TP_PROTO(int classzone_idx,
|
||||
int order,
|
||||
unsigned long nr_requested,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_taken,
|
||||
isolate_mode_t isolate_mode,
|
||||
int file
|
||||
),
|
||||
|
||||
TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_taken,
|
||||
isolate_mode, file
|
||||
),
|
||||
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, classzone_idx, classzone_idx)
|
||||
ctf_integer(int, order, order)
|
||||
ctf_integer(unsigned long, nr_requested, nr_requested)
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_taken, nr_taken)
|
||||
ctf_integer(isolate_mode_t, isolate_mode, isolate_mode)
|
||||
ctf_integer(int, file, file)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate,
|
||||
|
||||
TP_PROTO(int classzone_idx,
|
||||
int order,
|
||||
unsigned long nr_requested,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_taken,
|
||||
isolate_mode_t isolate_mode,
|
||||
int file
|
||||
),
|
||||
|
||||
TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_taken,
|
||||
isolate_mode, file
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_isolate,
|
||||
|
||||
TP_PROTO(int classzone_idx,
|
||||
int order,
|
||||
unsigned long nr_requested,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_taken,
|
||||
isolate_mode_t isolate_mode,
|
||||
int file
|
||||
),
|
||||
|
||||
TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_taken,
|
||||
isolate_mode, file
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_lru_isolate_template,
|
||||
|
||||
TP_PROTO(int order,
|
||||
unsigned long nr_requested,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_taken,
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
unsigned long nr_lumpy_taken,
|
||||
unsigned long nr_lumpy_dirty,
|
||||
unsigned long nr_lumpy_failed,
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
isolate_mode_t isolate_mode
|
||||
#else
|
||||
isolate_mode_t isolate_mode,
|
||||
int file
|
||||
#endif
|
||||
),
|
||||
|
||||
TP_ARGS(order, nr_requested, nr_scanned, nr_taken,
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed,
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
isolate_mode
|
||||
#else
|
||||
isolate_mode, file
|
||||
#endif
|
||||
),
|
||||
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, order, order)
|
||||
ctf_integer(unsigned long, nr_requested, nr_requested)
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_taken, nr_taken)
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
ctf_integer(unsigned long, nr_lumpy_taken, nr_lumpy_taken)
|
||||
ctf_integer(unsigned long, nr_lumpy_dirty, nr_lumpy_dirty)
|
||||
ctf_integer(unsigned long, nr_lumpy_failed, nr_lumpy_failed)
|
||||
#endif
|
||||
ctf_integer(isolate_mode_t, isolate_mode, isolate_mode)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
ctf_integer(int, file, file)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate,
|
||||
|
||||
TP_PROTO(int order,
|
||||
unsigned long nr_requested,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_taken,
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
unsigned long nr_lumpy_taken,
|
||||
unsigned long nr_lumpy_dirty,
|
||||
unsigned long nr_lumpy_failed,
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
isolate_mode_t isolate_mode
|
||||
#else
|
||||
isolate_mode_t isolate_mode,
|
||||
int file
|
||||
#endif
|
||||
),
|
||||
|
||||
TP_ARGS(order, nr_requested, nr_scanned, nr_taken,
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed,
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
isolate_mode
|
||||
#else
|
||||
isolate_mode, file
|
||||
#endif
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_isolate,
|
||||
|
||||
TP_PROTO(int order,
|
||||
unsigned long nr_requested,
|
||||
unsigned long nr_scanned,
|
||||
unsigned long nr_taken,
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
unsigned long nr_lumpy_taken,
|
||||
unsigned long nr_lumpy_dirty,
|
||||
unsigned long nr_lumpy_failed,
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
isolate_mode_t isolate_mode
|
||||
#else
|
||||
isolate_mode_t isolate_mode,
|
||||
int file
|
||||
#endif
|
||||
),
|
||||
|
||||
TP_ARGS(order, nr_requested, nr_scanned, nr_taken,
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed,
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
isolate_mode
|
||||
#else
|
||||
isolate_mode, file
|
||||
#endif
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
|
||||
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(int, reclaim_flags, trace_reclaim_flags(
|
||||
page_is_file_lru(page)))
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
|
||||
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(int, reclaim_flags, trace_reclaim_flags(
|
||||
page_is_file_cache(page)))
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
|
||||
|
||||
TP_PROTO(struct page *page),
|
||||
|
||||
TP_ARGS(page),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(int, reclaim_flags, trace_reclaim_flags(page))
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
|
||||
|
||||
TP_PROTO(struct page *page,
|
||||
int reclaim_flags),
|
||||
|
||||
TP_ARGS(page, reclaim_flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct page *, page, page)
|
||||
ctf_integer(int, reclaim_flags, reclaim_flags)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
|
||||
|
||||
TP_PROTO(int nid,
|
||||
unsigned long nr_scanned, unsigned long nr_reclaimed,
|
||||
struct reclaim_stat *stat, int priority, int file),
|
||||
|
||||
TP_ARGS(nid, nr_scanned, nr_reclaimed, stat, priority, file),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
|
||||
ctf_integer(unsigned long, nr_dirty, stat->nr_dirty)
|
||||
ctf_integer(unsigned long, nr_writeback, stat->nr_writeback)
|
||||
ctf_integer(unsigned long, nr_congested, stat->nr_congested)
|
||||
ctf_integer(unsigned long, nr_immediate, stat->nr_immediate)
|
||||
ctf_integer(unsigned long, nr_activate_anon, stat->nr_activate[0])
|
||||
ctf_integer(unsigned long, nr_activate_file, stat->nr_activate[1])
|
||||
ctf_integer(unsigned long, nr_ref_keep, stat->nr_ref_keep)
|
||||
ctf_integer(unsigned long, nr_unmap_fail, stat->nr_unmap_fail)
|
||||
ctf_integer(int, priority, priority)
|
||||
ctf_integer(int, reclaim_flags, trace_reclaim_flags(file))
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
|
||||
|
||||
TP_PROTO(int nid,
|
||||
unsigned long nr_scanned, unsigned long nr_reclaimed,
|
||||
struct reclaim_stat *stat, int priority, int file),
|
||||
|
||||
TP_ARGS(nid, nr_scanned, nr_reclaimed, stat, priority, file),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
|
||||
ctf_integer(unsigned long, nr_dirty, stat->nr_dirty)
|
||||
ctf_integer(unsigned long, nr_writeback, stat->nr_writeback)
|
||||
ctf_integer(unsigned long, nr_congested, stat->nr_congested)
|
||||
ctf_integer(unsigned long, nr_immediate, stat->nr_immediate)
|
||||
ctf_integer(unsigned long, nr_activate, stat->nr_activate)
|
||||
ctf_integer(unsigned long, nr_ref_keep, stat->nr_ref_keep)
|
||||
ctf_integer(unsigned long, nr_unmap_fail, stat->nr_unmap_fail)
|
||||
ctf_integer(int, priority, priority)
|
||||
ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
|
||||
|
||||
TP_PROTO(int nid,
|
||||
unsigned long nr_scanned, unsigned long nr_reclaimed,
|
||||
unsigned long nr_dirty, unsigned long nr_writeback,
|
||||
unsigned long nr_congested, unsigned long nr_immediate,
|
||||
unsigned long nr_activate, unsigned long nr_ref_keep,
|
||||
unsigned long nr_unmap_fail,
|
||||
int priority, int file),
|
||||
|
||||
TP_ARGS(nid, nr_scanned, nr_reclaimed, nr_dirty, nr_writeback,
|
||||
nr_congested, nr_immediate, nr_activate, nr_ref_keep,
|
||||
nr_unmap_fail, priority, file),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
|
||||
ctf_integer(unsigned long, nr_dirty, nr_dirty)
|
||||
ctf_integer(unsigned long, nr_writeback, nr_writeback)
|
||||
ctf_integer(unsigned long, nr_congested, nr_congested)
|
||||
ctf_integer(unsigned long, nr_immediate, nr_immediate)
|
||||
ctf_integer(unsigned long, nr_activate, nr_activate)
|
||||
ctf_integer(unsigned long, nr_ref_keep, nr_ref_keep)
|
||||
ctf_integer(unsigned long, nr_unmap_fail, nr_unmap_fail)
|
||||
ctf_integer(int, priority, priority)
|
||||
ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
|
||||
|
||||
TP_PROTO(int nid,
|
||||
unsigned long nr_scanned, unsigned long nr_reclaimed,
|
||||
int priority, int file),
|
||||
|
||||
TP_ARGS(nid, nr_scanned, nr_reclaimed, priority, file),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
|
||||
ctf_integer(int, priority, priority)
|
||||
ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
|
||||
|
||||
TP_PROTO(struct zone *zone,
|
||||
unsigned long nr_scanned, unsigned long nr_reclaimed,
|
||||
int priority, int file),
|
||||
|
||||
TP_ARGS(zone, nr_scanned, nr_reclaimed, priority, file),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, zone_to_nid(zone))
|
||||
ctf_integer(int, zid, zone_idx(zone))
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
|
||||
ctf_integer(int, priority, priority)
|
||||
ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
|
||||
|
||||
TP_PROTO(int nid, int zid,
|
||||
unsigned long nr_scanned, unsigned long nr_reclaimed,
|
||||
int priority, int reclaim_flags),
|
||||
|
||||
TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nid, nid)
|
||||
ctf_integer(int, zid, zid)
|
||||
ctf_integer(unsigned long, nr_scanned, nr_scanned)
|
||||
ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
|
||||
ctf_integer(int, priority, priority)
|
||||
ctf_integer(int, reclaim_flags, reclaim_flags)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(replace_swap_token,
|
||||
|
||||
mm_vmscan_replace_swap_token,
|
||||
|
||||
TP_PROTO(struct mm_struct *old_mm,
|
||||
struct mm_struct *new_mm),
|
||||
|
||||
TP_ARGS(old_mm, new_mm),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct mm_struct *, old_mm, old_mm)
|
||||
ctf_integer(unsigned int, old_prio, old_mm ? old_mm->token_priority : 0)
|
||||
ctf_integer_hex(struct mm_struct *, new_mm, new_mm)
|
||||
ctf_integer(unsigned int, new_prio, new_mm->token_priority)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_put_swap_token_template,
|
||||
TP_PROTO(struct mm_struct *swap_token_mm),
|
||||
|
||||
TP_ARGS(swap_token_mm),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct mm_struct*, swap_token_mm, swap_token_mm)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(mm_vmscan_put_swap_token_template, put_swap_token,
|
||||
|
||||
mm_vmscan_put_swap_token,
|
||||
|
||||
TP_PROTO(struct mm_struct *swap_token_mm),
|
||||
TP_ARGS(swap_token_mm)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(mm_vmscan_put_swap_token_template, disable_swap_token,
|
||||
|
||||
mm_vmscan_disable_swap_token,
|
||||
|
||||
TP_PROTO(struct mm_struct *swap_token_mm),
|
||||
TP_ARGS(swap_token_mm)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(update_swap_token_priority,
|
||||
|
||||
mm_vmscan_update_swap_token_priority,
|
||||
|
||||
TP_PROTO(struct mm_struct *mm,
|
||||
unsigned int old_prio,
|
||||
struct mm_struct *swap_token_mm),
|
||||
|
||||
TP_ARGS(mm, old_prio, swap_token_mm),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct mm_struct *, mm, mm)
|
||||
ctf_integer(unsigned int, old_prio, old_prio)
|
||||
ctf_integer(unsigned int, new_prio, mm->token_priority)
|
||||
ctf_integer_hex(struct mm_struct *, swap_token_mm, swap_token_mm)
|
||||
ctf_integer(unsigned int, swap_token_prio, swap_token_mm ? swap_token_mm->token_priority : 0)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_MM_VMSCAN_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,125 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Because linux/module.h has tracepoints in the header, and ftrace.h
|
||||
* eventually includes this file, define_trace.h includes linux/module.h
|
||||
* But we do not want the module.h to override the TRACE_SYSTEM macro
|
||||
* variable that define_trace.h is processing, so we only set it
|
||||
* when module events are being processed, which would happen when
|
||||
* CREATE_TRACE_POINTS is defined.
|
||||
*/
|
||||
#ifdef CREATE_TRACE_POINTS
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM module
|
||||
#endif
|
||||
|
||||
#if !defined(LTTNG_TRACE_MODULE_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_MODULE_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#ifdef CONFIG_MODULES
|
||||
|
||||
#ifndef _TRACE_MODULE_DEF
|
||||
#define _TRACE_MODULE_DEF
|
||||
struct module;
|
||||
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(module_load,
|
||||
|
||||
TP_PROTO(struct module *mod),
|
||||
|
||||
TP_ARGS(mod),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, taints, mod->taints)
|
||||
ctf_string(name, mod->name)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(module_free,
|
||||
|
||||
TP_PROTO(struct module *mod),
|
||||
|
||||
TP_ARGS(mod),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, mod->name)
|
||||
)
|
||||
)
|
||||
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
/* trace_module_get/put are only used if CONFIG_MODULE_UNLOAD is defined */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(module_refcnt,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
TP_PROTO(struct module *mod, unsigned long ip),
|
||||
|
||||
TP_ARGS(mod, ip),
|
||||
#else
|
||||
TP_PROTO(struct module *mod, unsigned long ip, int refcnt),
|
||||
|
||||
TP_ARGS(mod, ip, refcnt),
|
||||
#endif
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, ip, ip)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
|
||||
ctf_integer(int, refcnt, atomic_read(&mod->refcnt))
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
ctf_integer(int, refcnt, __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs))
|
||||
#else
|
||||
ctf_integer(int, refcnt, refcnt)
|
||||
#endif
|
||||
ctf_string(name, mod->name)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(module_refcnt, module_get,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
TP_PROTO(struct module *mod, unsigned long ip),
|
||||
|
||||
TP_ARGS(mod, ip)
|
||||
#else
|
||||
TP_PROTO(struct module *mod, unsigned long ip, int refcnt),
|
||||
|
||||
TP_ARGS(mod, ip, refcnt)
|
||||
#endif
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(module_refcnt, module_put,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
TP_PROTO(struct module *mod, unsigned long ip),
|
||||
|
||||
TP_ARGS(mod, ip)
|
||||
#else
|
||||
TP_PROTO(struct module *mod, unsigned long ip, int refcnt),
|
||||
|
||||
TP_ARGS(mod, ip, refcnt)
|
||||
#endif
|
||||
)
|
||||
#endif /* CONFIG_MODULE_UNLOAD */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(module_request,
|
||||
|
||||
TP_PROTO(char *name, bool wait, unsigned long ip),
|
||||
|
||||
TP_ARGS(name, wait, ip),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, ip, ip)
|
||||
ctf_integer(bool, wait, wait)
|
||||
ctf_string(name, name)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* CONFIG_MODULES */
|
||||
|
||||
#endif /* LTTNG_TRACE_MODULE_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,51 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM napi
|
||||
|
||||
#if !defined(LTTNG_TRACE_NAPI_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_NAPI_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/ftrace.h>
|
||||
|
||||
#define NO_DEV "(no_device)"
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(napi_poll,
|
||||
|
||||
TP_PROTO(struct napi_struct *napi, int work, int budget),
|
||||
|
||||
TP_ARGS(napi, work, budget),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct napi_struct *, napi, napi)
|
||||
ctf_string(dev_name, napi->dev ? napi->dev->name : NO_DEV)
|
||||
ctf_integer(int, work, work)
|
||||
ctf_integer(int, budget, budget)
|
||||
)
|
||||
)
|
||||
|
||||
#else
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(napi_poll,
|
||||
|
||||
TP_PROTO(struct napi_struct *napi),
|
||||
|
||||
TP_ARGS(napi),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(struct napi_struct *, napi, napi)
|
||||
ctf_string(dev_name, napi->dev ? napi->dev->name : NO_DEV)
|
||||
)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
#undef NO_DEV
|
||||
|
||||
#endif /* LTTNG_TRACE_NAPI_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,571 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM net
|
||||
|
||||
#if !defined(LTTNG_TRACE_NET_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_NET_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/ip.h>
|
||||
#include <linux/ipv6.h>
|
||||
#include <linux/tcp.h>
|
||||
#include <linux/version.h>
|
||||
#include <lttng-endian.h>
|
||||
#include <net/sock.h>
|
||||
|
||||
#ifndef ONCE_LTTNG_NET_H
|
||||
#define ONCE_LTTNG_NET_H
|
||||
|
||||
static inline unsigned char __has_network_hdr(struct sk_buff *skb)
|
||||
{
|
||||
/*
|
||||
* If the header is not set yet, the network header will point
|
||||
* to the head.
|
||||
*/
|
||||
return skb_network_header(skb) != skb->head;
|
||||
}
|
||||
|
||||
static struct lttng_event_field emptyfields[] = {
|
||||
};
|
||||
|
||||
/* Structures for transport headers. */
|
||||
|
||||
static struct lttng_event_field tcpfields[] = {
|
||||
[0] = {
|
||||
.name = "source_port",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[1] = {
|
||||
.name = "dest_port",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[2] = {
|
||||
.name = "seq",
|
||||
.type = __type_integer(uint32_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[3] = {
|
||||
.name = "ack_seq",
|
||||
.type = __type_integer(uint32_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[4] = {
|
||||
.name = "data_offset",
|
||||
.type = __type_integer(uint8_t, 4, 4, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[5] = {
|
||||
.name = "reserved",
|
||||
.type = __type_integer(uint8_t, 3, 1, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[6] = {
|
||||
.name = "flags",
|
||||
.type = __type_integer(uint8_t, 9, 1, 0,
|
||||
__BIG_ENDIAN, 16, none),
|
||||
},
|
||||
[7] = {
|
||||
.name = "window_size",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[8] = {
|
||||
.name = "checksum",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 16, none),
|
||||
},
|
||||
[9] = {
|
||||
.name = "urg_ptr",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
};
|
||||
|
||||
static struct lttng_event_field transport_fields[] = {
|
||||
[0] = {
|
||||
.name = "unknown",
|
||||
.type = {
|
||||
.atype = atype_struct,
|
||||
.u._struct.nr_fields = ARRAY_SIZE(emptyfields),
|
||||
.u._struct.fields = emptyfields,
|
||||
},
|
||||
},
|
||||
[1] = {
|
||||
.name = "tcp",
|
||||
.type = {
|
||||
.atype = atype_struct,
|
||||
.u._struct.nr_fields = ARRAY_SIZE(tcpfields),
|
||||
.u._struct.fields = tcpfields,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
enum transport_header_types {
|
||||
TH_NONE = 0,
|
||||
TH_TCP = 1,
|
||||
};
|
||||
|
||||
static inline enum transport_header_types __get_transport_header_type(struct sk_buff *skb)
|
||||
{
|
||||
if (__has_network_hdr(skb)) {
|
||||
/*
|
||||
* When both transport and network headers are set,
|
||||
* transport header is greater than network header,
|
||||
* otherwise it points to head.
|
||||
*/
|
||||
if (skb->transport_header > skb->network_header) {
|
||||
/*
|
||||
* Get the transport protocol from the network
|
||||
* header's data. This method works both for
|
||||
* sent and received packets.
|
||||
*/
|
||||
if ((skb->protocol == htons(ETH_P_IP) &&
|
||||
ip_hdr(skb)->protocol == IPPROTO_TCP) ||
|
||||
(skb->protocol == htons(ETH_P_IPV6) &&
|
||||
ipv6_hdr(skb)->nexthdr == IPPROTO_TCP))
|
||||
return TH_TCP;
|
||||
}
|
||||
/* Fallthrough for other cases where header is not TCP. */
|
||||
}
|
||||
return TH_NONE;
|
||||
}
|
||||
|
||||
static struct lttng_enum_entry proto_transport_enum_entries[] = {
|
||||
[0] = {
|
||||
.start = { .value = 0, .signedness = 0, },
|
||||
.end = { .value = IPPROTO_TCP - 1, .signedness = 0, },
|
||||
.string = "_unknown",
|
||||
},
|
||||
[1] = {
|
||||
.start = { .value = IPPROTO_TCP, .signedness = 0, },
|
||||
.end = { .value = IPPROTO_TCP, .signedness = 0, },
|
||||
.string = "_tcp",
|
||||
},
|
||||
[2] = {
|
||||
.start = { .value = IPPROTO_TCP + 1, .signedness = 0, },
|
||||
.end = { .value = 255, .signedness = 0, },
|
||||
.string = "_unknown",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct lttng_enum_desc proto_transport_header_type = {
|
||||
.name = "proto_transport_header_type",
|
||||
.entries = proto_transport_enum_entries,
|
||||
.nr_entries = ARRAY_SIZE(proto_transport_enum_entries),
|
||||
};
|
||||
|
||||
static struct lttng_enum_entry transport_enum_entries[] = {
|
||||
[0] = {
|
||||
.start = { .value = TH_NONE, .signedness = 0, },
|
||||
.end = { .value = TH_NONE, .signedness = 0, },
|
||||
.string = "_unknown",
|
||||
},
|
||||
[1] = {
|
||||
.start = { .value = TH_TCP, .signedness = 0, },
|
||||
.end = { .value = TH_TCP, .signedness = 0, },
|
||||
.string = "_tcp",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct lttng_enum_desc transport_header_type = {
|
||||
.name = "transport_header_type",
|
||||
.entries = transport_enum_entries,
|
||||
.nr_entries = ARRAY_SIZE(transport_enum_entries),
|
||||
};
|
||||
|
||||
/* Structures for network headers. */
|
||||
|
||||
static struct lttng_event_field ipv4fields[] = {
|
||||
[0] = {
|
||||
.name = "version",
|
||||
.type = __type_integer(uint8_t, 4, 4, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[1] = {
|
||||
.name = "ihl",
|
||||
.type = __type_integer(uint8_t, 4, 4, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[2] = {
|
||||
.name = "tos",
|
||||
.type = __type_integer(uint8_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[3] = {
|
||||
.name = "tot_len",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[4] = {
|
||||
.name = "id",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 16, none),
|
||||
},
|
||||
[5] = {
|
||||
.name = "frag_off",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[6] = {
|
||||
.name = "ttl",
|
||||
.type = __type_integer(uint8_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[7] = {
|
||||
.name = "protocol",
|
||||
.type = {
|
||||
.atype = atype_enum,
|
||||
.u.basic.enumeration.desc =
|
||||
&proto_transport_header_type,
|
||||
.u.basic.enumeration.container_type = {
|
||||
.size = 8,
|
||||
.alignment = 8,
|
||||
.signedness = 0,
|
||||
.reverse_byte_order =
|
||||
__BIG_ENDIAN != __BYTE_ORDER,
|
||||
.base = 10,
|
||||
.encoding = lttng_encode_none,
|
||||
},
|
||||
},
|
||||
},
|
||||
[8] = {
|
||||
.name = "checksum",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 16, none),
|
||||
},
|
||||
[9] = {
|
||||
.name = "saddr",
|
||||
.type = {
|
||||
.atype = atype_array,
|
||||
.u.array.elem_type =
|
||||
__type_integer(uint8_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
.u.array.length = 4,
|
||||
.u.array.elem_alignment = lttng_alignof(uint8_t),
|
||||
},
|
||||
},
|
||||
[10] = {
|
||||
.name = "daddr",
|
||||
.type = {
|
||||
.atype = atype_array,
|
||||
.u.array.elem_type =
|
||||
__type_integer(uint8_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
.u.array.length = 4,
|
||||
.u.array.elem_alignment = lttng_alignof(uint8_t),
|
||||
},
|
||||
},
|
||||
[11] = {
|
||||
.name = "transport_header_type",
|
||||
.type = {
|
||||
.atype = atype_enum,
|
||||
.u.basic.enumeration.desc = &transport_header_type,
|
||||
.u.basic.enumeration.container_type = {
|
||||
.size = 8,
|
||||
.alignment = 8,
|
||||
.signedness = 0,
|
||||
.reverse_byte_order = 0,
|
||||
.base = 10,
|
||||
.encoding = lttng_encode_none,
|
||||
},
|
||||
},
|
||||
},
|
||||
[12] = {
|
||||
.name = "transport_header",
|
||||
.type = {
|
||||
.atype = atype_variant,
|
||||
.u.variant.tag_name = "transport_header_type",
|
||||
.u.variant.choices = transport_fields,
|
||||
.u.variant.nr_choices = ARRAY_SIZE(transport_fields),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct lttng_event_field ipv6fields[] = {
|
||||
[0] = {
|
||||
.name = "version",
|
||||
.type = __type_integer(uint8_t, 4, 4, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[1] = {
|
||||
.name = "prio",
|
||||
.type = __type_integer(uint8_t, 4, 4, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[2] = {
|
||||
.name = "flow_lbl",
|
||||
.type = {
|
||||
.atype = atype_array,
|
||||
.u.array.elem_type =
|
||||
__type_integer(uint8_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 16, none),
|
||||
.u.array.length = 3,
|
||||
.u.array.elem_alignment = lttng_alignof(uint8_t),
|
||||
},
|
||||
},
|
||||
[3] = {
|
||||
.name = "payload_len",
|
||||
.type = __type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[4] = {
|
||||
.name = "nexthdr",
|
||||
.type = {
|
||||
.atype = atype_enum,
|
||||
.u.basic.enumeration.desc =
|
||||
&proto_transport_header_type,
|
||||
.u.basic.enumeration.container_type = {
|
||||
.size = 8,
|
||||
.alignment = 8,
|
||||
.signedness = 0,
|
||||
.reverse_byte_order =
|
||||
__BIG_ENDIAN != __BYTE_ORDER,
|
||||
.base = 10,
|
||||
.encoding = lttng_encode_none,
|
||||
},
|
||||
},
|
||||
},
|
||||
[5] = {
|
||||
.name = "hop_limit",
|
||||
.type = __type_integer(uint8_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 10, none),
|
||||
},
|
||||
[6] = {
|
||||
.name = "saddr",
|
||||
.type = {
|
||||
.atype = atype_array,
|
||||
.u.array.elem_type =
|
||||
__type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 16, none),
|
||||
.u.array.length = 8,
|
||||
.u.array.elem_alignment = lttng_alignof(uint16_t),
|
||||
},
|
||||
},
|
||||
[7] = {
|
||||
.name = "daddr",
|
||||
.type = {
|
||||
.atype = atype_array,
|
||||
.u.array.elem_type =
|
||||
__type_integer(uint16_t, 0, 0, 0,
|
||||
__BIG_ENDIAN, 16, none),
|
||||
.u.array.length = 8,
|
||||
.u.array.elem_alignment = lttng_alignof(uint16_t),
|
||||
},
|
||||
},
|
||||
[8] = {
|
||||
.name = "transport_header_type",
|
||||
.type = {
|
||||
.atype = atype_enum,
|
||||
.u.basic.enumeration.desc = &transport_header_type,
|
||||
.u.basic.enumeration.container_type = {
|
||||
.size = 8,
|
||||
.alignment = 8,
|
||||
.signedness = 0,
|
||||
.reverse_byte_order = 0,
|
||||
.base = 10,
|
||||
.encoding = lttng_encode_none,
|
||||
},
|
||||
},
|
||||
},
|
||||
[9] = {
|
||||
.name = "transport_header",
|
||||
.type = {
|
||||
.atype = atype_variant,
|
||||
.u.variant.tag_name = "transport_header_type",
|
||||
.u.variant.choices = transport_fields,
|
||||
.u.variant.nr_choices = ARRAY_SIZE(transport_fields),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct lttng_event_field network_fields[] = {
|
||||
[0] = {
|
||||
.name = "unknown",
|
||||
.type = {
|
||||
.atype = atype_struct,
|
||||
.u._struct.nr_fields = 0,
|
||||
.u._struct.fields = emptyfields,
|
||||
},
|
||||
},
|
||||
[1] = {
|
||||
.name = "ipv4",
|
||||
.type = {
|
||||
.atype = atype_struct,
|
||||
.u._struct.nr_fields = ARRAY_SIZE(ipv4fields),
|
||||
.u._struct.fields = ipv4fields,
|
||||
},
|
||||
},
|
||||
[2] = {
|
||||
.name = "ipv6",
|
||||
.type = {
|
||||
.atype = atype_struct,
|
||||
.u._struct.nr_fields = ARRAY_SIZE(ipv6fields),
|
||||
.u._struct.fields = ipv6fields,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
enum network_header_types {
|
||||
NH_NONE,
|
||||
NH_IPV4,
|
||||
NH_IPV6,
|
||||
};
|
||||
|
||||
static inline unsigned char __get_network_header_type(struct sk_buff *skb)
|
||||
{
|
||||
if (__has_network_hdr(skb)) {
|
||||
if (skb->protocol == htons(ETH_P_IPV6))
|
||||
return NH_IPV6;
|
||||
else if (skb->protocol == htons(ETH_P_IP))
|
||||
return NH_IPV4;
|
||||
/* Fallthrough for other header types. */
|
||||
}
|
||||
return NH_NONE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_ENUM(net_network_header,
|
||||
TP_ENUM_VALUES(
|
||||
ctf_enum_value("_unknown", NH_NONE)
|
||||
ctf_enum_value("_ipv4", NH_IPV4)
|
||||
ctf_enum_value("_ipv6", NH_IPV6)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(net_dev_xmit,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
|
||||
TP_PROTO(struct sk_buff *skb,
|
||||
int rc,
|
||||
struct net_device *dev,
|
||||
unsigned int skb_len),
|
||||
|
||||
TP_ARGS(skb, rc, dev, skb_len),
|
||||
#else
|
||||
TP_PROTO(struct sk_buff *skb,
|
||||
int rc),
|
||||
|
||||
TP_ARGS(skb, rc),
|
||||
#endif
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, skbaddr, skb)
|
||||
ctf_integer(int, rc, rc)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
|
||||
ctf_integer(unsigned int, len, skb_len)
|
||||
ctf_string(name, dev->name)
|
||||
#else
|
||||
ctf_integer(unsigned int, len, skb->len)
|
||||
ctf_string(name, skb->dev->name)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(net_dev_template,
|
||||
|
||||
TP_PROTO(struct sk_buff *skb),
|
||||
|
||||
TP_ARGS(skb),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, skbaddr, skb)
|
||||
ctf_integer(unsigned int, len, skb->len)
|
||||
ctf_string(name, skb->dev->name)
|
||||
ctf_enum(net_network_header, unsigned char,
|
||||
network_header_type, __get_network_header_type(skb))
|
||||
ctf_custom_field(
|
||||
ctf_custom_type(
|
||||
.atype = atype_variant,
|
||||
.u.variant.tag_name = "network_header_type",
|
||||
.u.variant.choices = network_fields,
|
||||
.u.variant.nr_choices =
|
||||
ARRAY_SIZE(network_fields),
|
||||
),
|
||||
network_header,
|
||||
ctf_custom_code(
|
||||
bool has_network_header = false;
|
||||
|
||||
/* Copy the network header. */
|
||||
switch (__get_network_header_type(skb)) {
|
||||
case NH_IPV4: {
|
||||
ctf_align(uint16_t)
|
||||
ctf_array_type(uint8_t, ip_hdr(skb),
|
||||
sizeof(struct iphdr))
|
||||
has_network_header = true;
|
||||
break;
|
||||
}
|
||||
case NH_IPV6: {
|
||||
ctf_align(uint16_t)
|
||||
ctf_array_type(uint8_t, ipv6_hdr(skb),
|
||||
sizeof(struct ipv6hdr))
|
||||
has_network_header = true;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
/*
|
||||
* For any other network header
|
||||
* type, there is nothing to do.
|
||||
*/
|
||||
break;
|
||||
}
|
||||
|
||||
if (has_network_header) {
|
||||
enum transport_header_types th_type =
|
||||
__get_transport_header_type(skb);
|
||||
|
||||
/* Transport header type field. */
|
||||
ctf_integer_type(unsigned char, th_type)
|
||||
|
||||
/* Copy the transport header. */
|
||||
if (th_type == TH_TCP) {
|
||||
ctf_align(uint32_t)
|
||||
ctf_array_type(uint8_t, tcp_hdr(skb),
|
||||
sizeof(struct tcphdr))
|
||||
}
|
||||
/*
|
||||
* For any other transport header type,
|
||||
* there is nothing to do.
|
||||
*/
|
||||
}
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(net_dev_template, net_dev_queue,
|
||||
|
||||
TP_PROTO(struct sk_buff *skb),
|
||||
|
||||
TP_ARGS(skb)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_template,
|
||||
|
||||
netif_receive_skb,
|
||||
|
||||
net_if_receive_skb,
|
||||
|
||||
TP_PROTO(struct sk_buff *skb),
|
||||
|
||||
TP_ARGS(skb)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_template,
|
||||
|
||||
netif_rx,
|
||||
|
||||
net_if_rx,
|
||||
|
||||
TP_PROTO(struct sk_buff *skb),
|
||||
|
||||
TP_ARGS(skb)
|
||||
)
|
||||
#endif /* LTTNG_TRACE_NET_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,282 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM power
|
||||
|
||||
#if !defined(LTTNG_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_POWER_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(power_cpu,
|
||||
|
||||
TP_PROTO(unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(state, cpu_id),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u32, state, state)
|
||||
ctf_integer(u32, cpu_id, cpu_id)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_idle,
|
||||
|
||||
power_cpu_idle,
|
||||
|
||||
TP_PROTO(unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(state, cpu_id)
|
||||
)
|
||||
|
||||
/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
|
||||
#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING
|
||||
#define _PWR_EVENT_AVOID_DOUBLE_DEFINING
|
||||
|
||||
#define PWR_EVENT_EXIT -1
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_frequency,
|
||||
|
||||
power_cpu_frequency,
|
||||
|
||||
TP_PROTO(unsigned int frequency, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(frequency, cpu_id)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(machine_suspend,
|
||||
|
||||
power_machine_suspend,
|
||||
|
||||
TP_PROTO(unsigned int state),
|
||||
|
||||
TP_ARGS(state),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u32, state, state)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(power_wakeup_source,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int state),
|
||||
|
||||
TP_ARGS(name, state),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, name)
|
||||
ctf_integer(u64, state, state)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_activate,
|
||||
|
||||
power_wakeup_source_activate,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int state),
|
||||
|
||||
TP_ARGS(name, state)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_deactivate,
|
||||
|
||||
power_wakeup_source_deactivate,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int state),
|
||||
|
||||
TP_ARGS(name, state)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
|
||||
#undef CONFIG_EVENT_POWER_TRACING_DEPRECATED
|
||||
#define CONFIG_EVENT_POWER_TRACING_DEPRECATED
|
||||
#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED
|
||||
|
||||
/*
|
||||
* The power events are used for cpuidle & suspend (power_start, power_end)
|
||||
* and for cpufreq (power_frequency)
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(power,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
|
||||
TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(type, state, cpu_id),
|
||||
#else
|
||||
TP_PROTO(unsigned int type, unsigned int state),
|
||||
|
||||
TP_ARGS(type, state),
|
||||
#endif
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(u64, type, type)
|
||||
ctf_integer(u64, state, state)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
|
||||
ctf_integer(u64, cpu_id, cpu_id)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_start,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
|
||||
TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(type, state, cpu_id)
|
||||
#else
|
||||
TP_PROTO(unsigned int type, unsigned int state),
|
||||
|
||||
TP_ARGS(type, state)
|
||||
#endif
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_frequency,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
|
||||
TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(type, state, cpu_id)
|
||||
#else
|
||||
TP_PROTO(unsigned int type, unsigned int state),
|
||||
|
||||
TP_ARGS(type, state)
|
||||
#endif
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(power_end,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
|
||||
TP_PROTO(unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(cpu_id),
|
||||
#else
|
||||
TP_PROTO(int dummy),
|
||||
|
||||
TP_ARGS(dummy),
|
||||
#endif
|
||||
|
||||
TP_FIELDS(
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
|
||||
ctf_integer(u64, cpu_id, cpu_id)
|
||||
#else
|
||||
ctf_integer(u64, dummy, 0xffff)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
|
||||
/* Deprecated dummy functions must be protected against multi-declartion */
|
||||
#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
|
||||
#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
|
||||
|
||||
enum {
|
||||
POWER_NONE = 0,
|
||||
POWER_CSTATE = 1,
|
||||
POWER_PSTATE = 2,
|
||||
};
|
||||
#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
|
||||
|
||||
#else /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
|
||||
|
||||
#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
|
||||
#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
|
||||
enum {
|
||||
POWER_NONE = 0,
|
||||
POWER_CSTATE = 1,
|
||||
POWER_PSTATE = 2,
|
||||
};
|
||||
|
||||
/* These dummy declaration have to be ripped out when the deprecated
|
||||
events get removed */
|
||||
static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {};
|
||||
static inline void trace_power_end(u64 cpuid) {};
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {};
|
||||
static inline void trace_power_end_rcuidle(u64 cpuid) {};
|
||||
#endif
|
||||
static inline void trace_power_frequency(u64 type, u64 state, u64 cpuid) {};
|
||||
#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
|
||||
|
||||
#endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
/*
|
||||
* The clock events are used for clock enable/disable and for
|
||||
* clock rate change
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(power_clock,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(name, state, cpu_id),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, name)
|
||||
ctf_integer(u64, state, state)
|
||||
ctf_integer(u64, cpu_id, cpu_id)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_enable,
|
||||
|
||||
power_clock_enable,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(name, state, cpu_id)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_disable,
|
||||
|
||||
power_clock_disable,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(name, state, cpu_id)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_set_rate,
|
||||
|
||||
power_clock_set_rate,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(name, state, cpu_id)
|
||||
)
|
||||
|
||||
/*
|
||||
* The power domain events are used for power domains transitions
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(power_domain,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(name, state, cpu_id),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, name)
|
||||
ctf_integer(u64, state, state)
|
||||
ctf_integer(u64, cpu_id, cpu_id)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(power_domain, power_domain_target,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
|
||||
|
||||
TP_ARGS(name, state, cpu_id)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_POWER_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,100 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifdef CONFIG_PREEMPTIRQ_EVENTS
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM preemptirq
|
||||
|
||||
#if !defined(LTTNG_TRACE_PREEMPTIRQ_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_PREEMPTIRQ_H
|
||||
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/string.h>
|
||||
#include <asm/sections.h>
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
|
||||
/*
|
||||
* The preemptirq probe is built when CONFIG_PREEMPTIRQ_EVENTS is defined.
|
||||
*/
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(preemptirq_template,
|
||||
|
||||
TP_PROTO(unsigned long ip, unsigned long parent_ip),
|
||||
|
||||
TP_ARGS(ip, parent_ip),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(unsigned long, caller, ip)
|
||||
ctf_integer_hex(unsigned long, parent, parent_ip)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracing of irq enable / disable events is enabled
|
||||
* on >= 4.19 when CONFIG_TRACE_IRQFLAGS is defined.
|
||||
* on previous kernels when CONFIG_PROVE_LOCKING is NOT defined.
|
||||
*/
|
||||
#if defined(CONFIG_TRACE_IRQFLAGS)
|
||||
#define LTTNG_TRACE_IRQ
|
||||
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0) && \
|
||||
!defined(CONFIG_PROVE_LOCKING))
|
||||
#define LTTNG_TRACE_IRQ
|
||||
#endif
|
||||
|
||||
#ifdef LTTNG_TRACE_IRQ
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template, irq_disable,
|
||||
|
||||
preemptirq_irq_disable,
|
||||
|
||||
TP_PROTO(unsigned long ip, unsigned long parent_ip),
|
||||
|
||||
TP_ARGS(ip, parent_ip)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template, irq_enable,
|
||||
|
||||
preemptirq_irq_enable,
|
||||
|
||||
TP_PROTO(unsigned long ip, unsigned long parent_ip),
|
||||
|
||||
TP_ARGS(ip, parent_ip)
|
||||
)
|
||||
#endif /* LTTNG_TRACE_IRQ */
|
||||
|
||||
/*
|
||||
* Tracing of preempt enable / disable events is enabled
|
||||
* on >= 4.19 when CONFIG_TRACE_PREEMPT_TOGGLE is defined.
|
||||
* on previous kernels when CONFIG_DEBUG_PREEMPT is defined.
|
||||
*/
|
||||
#if defined(CONFIG_TRACE_PREEMPT_TOGGLE)
|
||||
#define LTTNG_TRACE_PREEMPT
|
||||
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0) && \
|
||||
defined(CONFIG_DEBUG_PREEMPT))
|
||||
#define LTTNG_TRACE_PREEMPT
|
||||
#endif
|
||||
|
||||
#ifdef LTTNG_TRACE_PREEMPT
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template, preempt_disable,
|
||||
|
||||
preemptirq_preempt_disable,
|
||||
|
||||
TP_PROTO(unsigned long ip, unsigned long parent_ip),
|
||||
|
||||
TP_ARGS(ip, parent_ip)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template, preempt_enable,
|
||||
|
||||
preemptirq_preempt_enable,
|
||||
|
||||
TP_PROTO(unsigned long ip, unsigned long parent_ip),
|
||||
|
||||
TP_ARGS(ip, parent_ip)
|
||||
)
|
||||
#endif /* LTTNG_TRACE_PREEMPT */
|
||||
|
||||
#endif /* LTTNG_TRACE_PREEMPTIRQ_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
||||
|
||||
#endif /* CONFIG_PREEMPTIRQ_EVENTS */
|
|
@ -0,0 +1,76 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM printk
|
||||
|
||||
#if !defined(LTTNG_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_PRINTK_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(console,
|
||||
|
||||
printk_console,
|
||||
|
||||
TP_PROTO(const char *text, size_t len),
|
||||
|
||||
TP_ARGS(text, len),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_sequence_text(char, msg, text, size_t, len)
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(console,
|
||||
|
||||
printk_console,
|
||||
|
||||
TP_PROTO(const char *log_buf, unsigned start, unsigned end,
|
||||
unsigned log_buf_len),
|
||||
|
||||
TP_ARGS(log_buf, start, end, log_buf_len),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_sequence_text(char, msg, log_buf + start,
|
||||
size_t, end - start)
|
||||
)
|
||||
)
|
||||
|
||||
#else /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(console,
|
||||
|
||||
printk_console,
|
||||
|
||||
TP_PROTO(const char *log_buf, unsigned start, unsigned end,
|
||||
unsigned log_buf_len),
|
||||
|
||||
TP_ARGS(log_buf, start, end, log_buf_len),
|
||||
|
||||
TP_FIELDS(
|
||||
/*
|
||||
* printk buffer is gathered from two segments on older kernels.
|
||||
*/
|
||||
ctf_sequence_text(char, msg1,
|
||||
log_buf + (start & (log_buf_len - 1)),
|
||||
size_t, (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
|
||||
? log_buf_len - (start & (log_buf_len - 1))
|
||||
: end - start)
|
||||
ctf_sequence_text(char, msg2,
|
||||
log_buf,
|
||||
size_t, (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
|
||||
? end & (log_buf_len - 1)
|
||||
: 0)
|
||||
)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_PRINTK_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,132 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM random
|
||||
|
||||
#if !defined(LTTNG_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_RANDOM_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/writeback.h>
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes,
|
||||
TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
|
||||
|
||||
TP_ARGS(pool_name, bytes, IP),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(pool_name, pool_name)
|
||||
ctf_integer(int, bytes, bytes)
|
||||
ctf_integer(unsigned long, IP, IP)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes,
|
||||
|
||||
random_mix_pool_bytes,
|
||||
|
||||
TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
|
||||
|
||||
TP_ARGS(pool_name, bytes, IP)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes_nolock,
|
||||
|
||||
random_mix_pool_bytes_nolock,
|
||||
|
||||
TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
|
||||
|
||||
TP_ARGS(pool_name, bytes, IP)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
|
||||
|
||||
random_credit_entropy_bits,
|
||||
|
||||
TP_PROTO(const char *pool_name, int bits, int entropy_count,
|
||||
unsigned long IP),
|
||||
|
||||
TP_ARGS(pool_name, bits, entropy_count, IP),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(pool_name, pool_name)
|
||||
ctf_integer(int, bits, bits)
|
||||
ctf_integer(int, entropy_count, entropy_count)
|
||||
ctf_integer(unsigned long, IP, IP)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
|
||||
|
||||
random_credit_entropy_bits,
|
||||
|
||||
TP_PROTO(const char *pool_name, int bits, int entropy_count,
|
||||
int entropy_total, unsigned long IP),
|
||||
|
||||
TP_ARGS(pool_name, bits, entropy_count, entropy_total, IP),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(pool_name, pool_name)
|
||||
ctf_integer(int, bits, bits)
|
||||
ctf_integer(int, entropy_count, entropy_count)
|
||||
ctf_integer(int, entropy_total, entropy_total)
|
||||
ctf_integer(unsigned long, IP, IP)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(get_random_bytes,
|
||||
|
||||
random_get_random_bytes,
|
||||
|
||||
TP_PROTO(int nbytes, unsigned long IP),
|
||||
|
||||
TP_ARGS(nbytes, IP),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, nbytes, nbytes)
|
||||
ctf_integer(unsigned long, IP, IP)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
|
||||
TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
|
||||
unsigned long IP),
|
||||
|
||||
TP_ARGS(pool_name, nbytes, entropy_count, IP),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(pool_name, pool_name)
|
||||
ctf_integer(int, nbytes, nbytes)
|
||||
ctf_integer(int, entropy_count, entropy_count)
|
||||
ctf_integer(unsigned long, IP, IP)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy,
|
||||
|
||||
random_extract_entropy,
|
||||
|
||||
TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
|
||||
unsigned long IP),
|
||||
|
||||
TP_ARGS(pool_name, nbytes, entropy_count, IP)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy_user,
|
||||
|
||||
random_extract_entropy_user,
|
||||
|
||||
TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
|
||||
unsigned long IP),
|
||||
|
||||
TP_ARGS(pool_name, nbytes, entropy_count, IP)
|
||||
)
|
||||
|
||||
|
||||
|
||||
#endif /* LTTNG_TRACE_RANDOM_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,965 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM rcu
|
||||
|
||||
#if !defined(LTTNG_TRACE_RCU_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_RCU_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
/*
|
||||
* Tracepoint for start/end markers used for utilization calculations.
|
||||
* By convention, the string is of the following forms:
|
||||
*
|
||||
* "Start <activity>" -- Mark the start of the specified activity,
|
||||
* such as "context switch". Nesting is permitted.
|
||||
* "End <activity>" -- Mark the end of the specified activity.
|
||||
*
|
||||
* An "@" character within "<activity>" is a comment character: Data
|
||||
* reduction scripts will ignore the "@" and the remainder of the line.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_utilization,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
TP_PROTO(const char *s),
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
TP_PROTO(char *s),
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
|
||||
TP_ARGS(s),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(s, s)
|
||||
)
|
||||
)
|
||||
|
||||
#ifdef CONFIG_RCU_TRACE
|
||||
|
||||
#if defined(CONFIG_TREE_RCU) \
|
||||
|| (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) \
|
||||
&& defined(CONFIG_PREEMPT_RCU)) \
|
||||
|| defined(CONFIG_TREE_PREEMPT_RCU)
|
||||
|
||||
/*
|
||||
* Tracepoint for grace-period events: starting and ending a grace
|
||||
* period ("start" and "end", respectively), a CPU noting the start
|
||||
* of a new grace period or the end of an old grace period ("cpustart"
|
||||
* and "cpuend", respectively), a CPU passing through a quiescent
|
||||
* state ("cpuqs"), a CPU coming online or going offline ("cpuonl"
|
||||
* and "cpuofl", respectively), and a CPU being kicked for being too
|
||||
* long in dyntick-idle mode ("kick").
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_grace_period,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gp_seq, const char *gpevent),
|
||||
|
||||
TP_ARGS(rcuname, gp_seq, gpevent),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gp_seq, gp_seq)
|
||||
ctf_string(gpevent, gpevent)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_grace_period,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gpnum, const char *gpevent),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, gpevent),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_string(gpevent, gpevent)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_grace_period,
|
||||
|
||||
TP_PROTO(char *rcuname, unsigned long gpnum, char *gpevent),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, gpevent),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_string(gpevent, gpevent)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for grace-period-initialization events. These are
|
||||
* distinguished by the type of RCU, the new grace-period number, the
|
||||
* rcu_node structure level, the starting and ending CPU covered by the
|
||||
* rcu_node structure, and the mask of CPUs that will be waited for.
|
||||
* All but the type of RCU are extracted from the rcu_node structure.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_grace_period_init,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gp_seq, u8 level,
|
||||
int grplo, int grphi, unsigned long qsmask),
|
||||
|
||||
TP_ARGS(rcuname, gp_seq, level, grplo, grphi, qsmask),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gp_seq, gp_seq)
|
||||
ctf_integer(u8, level, level)
|
||||
ctf_integer(int, grplo, grplo)
|
||||
ctf_integer(int, grphi, grphi)
|
||||
ctf_integer(unsigned long, qsmask, qsmask)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_grace_period_init,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gpnum, u8 level,
|
||||
int grplo, int grphi, unsigned long qsmask),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(u8, level, level)
|
||||
ctf_integer(int, grplo, grplo)
|
||||
ctf_integer(int, grphi, grphi)
|
||||
ctf_integer(unsigned long, qsmask, qsmask)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_grace_period_init,
|
||||
|
||||
TP_PROTO(char *rcuname, unsigned long gpnum, u8 level,
|
||||
int grplo, int grphi, unsigned long qsmask),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(u8, level, level)
|
||||
ctf_integer(int, grplo, grplo)
|
||||
ctf_integer(int, grphi, grphi)
|
||||
ctf_integer(unsigned long, qsmask, qsmask)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for tasks blocking within preemptible-RCU read-side
|
||||
* critical sections. Track the type of RCU (which one day might
|
||||
* include SRCU), the grace-period number that the task is blocking
|
||||
* (the current or the next), and the task's PID.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_preempt_task,
|
||||
|
||||
TP_PROTO(const char *rcuname, int pid, unsigned long gp_seq),
|
||||
|
||||
TP_ARGS(rcuname, pid, gp_seq),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gp_seq, gp_seq)
|
||||
ctf_integer(int, pid, pid)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_preempt_task,
|
||||
|
||||
TP_PROTO(const char *rcuname, int pid, unsigned long gpnum),
|
||||
|
||||
TP_ARGS(rcuname, pid, gpnum),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(int, pid, pid)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_preempt_task,
|
||||
|
||||
TP_PROTO(char *rcuname, int pid, unsigned long gpnum),
|
||||
|
||||
TP_ARGS(rcuname, pid, gpnum),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(int, pid, pid)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for tasks that blocked within a given preemptible-RCU
|
||||
* read-side critical section exiting that critical section. Track the
|
||||
* type of RCU (which one day might include SRCU) and the task's PID.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_unlock_preempted_task,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gp_seq, int pid),
|
||||
|
||||
TP_ARGS(rcuname, gp_seq, pid),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gp_seq, gp_seq)
|
||||
ctf_integer(int, pid, pid)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_unlock_preempted_task,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gpnum, int pid),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, pid),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(int, pid, pid)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_unlock_preempted_task,
|
||||
|
||||
TP_PROTO(char *rcuname, unsigned long gpnum, int pid),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, pid),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(int, pid, pid)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for quiescent-state-reporting events. These are
|
||||
* distinguished by the type of RCU, the grace-period number, the
|
||||
* mask of quiescent lower-level entities, the rcu_node structure level,
|
||||
* the starting and ending CPU covered by the rcu_node structure, and
|
||||
* whether there are any blocked tasks blocking the current grace period.
|
||||
* All but the type of RCU are extracted from the rcu_node structure.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_quiescent_state_report,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gp_seq,
|
||||
unsigned long mask, unsigned long qsmask,
|
||||
u8 level, int grplo, int grphi, int gp_tasks),
|
||||
|
||||
TP_ARGS(rcuname, gp_seq, mask, qsmask, level, grplo, grphi, gp_tasks),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gp_seq, gp_seq)
|
||||
ctf_integer(unsigned long, mask, mask)
|
||||
ctf_integer(unsigned long, qsmask, qsmask)
|
||||
ctf_integer(u8, level, level)
|
||||
ctf_integer(int, grplo, grplo)
|
||||
ctf_integer(int, grphi, grphi)
|
||||
ctf_integer(u8, gp_tasks, gp_tasks)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_quiescent_state_report,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gpnum,
|
||||
unsigned long mask, unsigned long qsmask,
|
||||
u8 level, int grplo, int grphi, int gp_tasks),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(unsigned long, mask, mask)
|
||||
ctf_integer(unsigned long, qsmask, qsmask)
|
||||
ctf_integer(u8, level, level)
|
||||
ctf_integer(int, grplo, grplo)
|
||||
ctf_integer(int, grphi, grphi)
|
||||
ctf_integer(u8, gp_tasks, gp_tasks)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_quiescent_state_report,
|
||||
|
||||
TP_PROTO(char *rcuname, unsigned long gpnum,
|
||||
unsigned long mask, unsigned long qsmask,
|
||||
u8 level, int grplo, int grphi, int gp_tasks),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(unsigned long, mask, mask)
|
||||
ctf_integer(unsigned long, qsmask, qsmask)
|
||||
ctf_integer(u8, level, level)
|
||||
ctf_integer(int, grplo, grplo)
|
||||
ctf_integer(int, grphi, grphi)
|
||||
ctf_integer(u8, gp_tasks, gp_tasks)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for quiescent states detected by force_quiescent_state().
|
||||
* These trace events include the type of RCU, the grace-period number
|
||||
* that was blocked by the CPU, the CPU itself, and the type of quiescent
|
||||
* state, which can be "dti" for dyntick-idle mode, "ofl" for CPU offline,
|
||||
* or "kick" when kicking a CPU that has been in dyntick-idle mode for
|
||||
* too long.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_fqs,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gp_seq, int cpu, const char *qsevent),
|
||||
|
||||
TP_ARGS(rcuname, gp_seq, cpu, qsevent),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, gp_seq, gp_seq)
|
||||
ctf_integer(int, cpu, cpu)
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_string(qsevent, qsevent)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_fqs,
|
||||
|
||||
TP_PROTO(const char *rcuname, unsigned long gpnum, int cpu, const char *qsevent),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, cpu, qsevent),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(int, cpu, cpu)
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_string(qsevent, qsevent)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_fqs,
|
||||
|
||||
TP_PROTO(char *rcuname, unsigned long gpnum, int cpu, char *qsevent),
|
||||
|
||||
TP_ARGS(rcuname, gpnum, cpu, qsevent),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, gpnum, gpnum)
|
||||
ctf_integer(int, cpu, cpu)
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_string(qsevent, qsevent)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /*
|
||||
* #if defined(CONFIG_TREE_RCU)
|
||||
* || (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)
|
||||
* && defined(CONFIG_PREEMPT_RCU))
|
||||
* || defined(CONFIG_TREE_PREEMPT_RCU)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Tracepoint for dyntick-idle entry/exit events. These take a string
|
||||
* as argument: "Start" for entering dyntick-idle mode, "End" for
|
||||
* leaving it, "--=" for events moving towards idle, and "++=" for events
|
||||
* moving away from idle. "Error on entry: not idle task" and "Error on
|
||||
* exit: not idle task" indicate that a non-idle task is erroneously
|
||||
* toying with the idle loop.
|
||||
*
|
||||
* These events also take a pair of numbers, which indicate the nesting
|
||||
* depth before and after the event of interest. Note that task-related
|
||||
* events use the upper bits of each number, while interrupt-related
|
||||
* events use the lower bits.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) \
|
||||
|| LTTNG_KERNEL_RANGE(5,5,6, 5,6,0) \
|
||||
|| LTTNG_KERNEL_RANGE(5,4,22, 5,5,0) \
|
||||
|| LTTNG_UBUNTU_KERNEL_RANGE(5,0,21,46, 5,1,0,0)
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
|
||||
|
||||
TP_PROTO(const char *polarity, long oldnesting, long newnesting, int dynticks),
|
||||
|
||||
TP_ARGS(polarity, oldnesting, newnesting, dynticks),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(polarity, polarity)
|
||||
ctf_integer(long, oldnesting, oldnesting)
|
||||
ctf_integer(long, newnesting, newnesting)
|
||||
ctf_integer(int, dynticks, dynticks)
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
|
||||
|
||||
TP_PROTO(const char *polarity, long oldnesting, long newnesting, atomic_t dynticks),
|
||||
|
||||
TP_ARGS(polarity, oldnesting, newnesting, dynticks),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(polarity, polarity)
|
||||
ctf_integer(long, oldnesting, oldnesting)
|
||||
ctf_integer(long, newnesting, newnesting)
|
||||
ctf_integer(int, dynticks, atomic_read(&dynticks))
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
|
||||
|
||||
TP_PROTO(const char *polarity, long long oldnesting, long long newnesting),
|
||||
|
||||
TP_ARGS(polarity, oldnesting, newnesting),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(polarity, polarity)
|
||||
ctf_integer(long long, oldnesting, oldnesting)
|
||||
ctf_integer(long long, newnesting, newnesting)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
|
||||
|
||||
TP_PROTO(char *polarity, long long oldnesting, long long newnesting),
|
||||
|
||||
TP_ARGS(polarity, oldnesting, newnesting),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(polarity, polarity)
|
||||
ctf_integer(long long, oldnesting, oldnesting)
|
||||
ctf_integer(long long, newnesting, newnesting)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
|
||||
|
||||
TP_PROTO(char *polarity),
|
||||
|
||||
TP_ARGS(polarity),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(polarity, polarity)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
/*
|
||||
* Tracepoint for RCU preparation for idle, the goal being to get RCU
|
||||
* processing done so that the current CPU can shut off its scheduling
|
||||
* clock and enter dyntick-idle mode. One way to accomplish this is
|
||||
* to drain all RCU callbacks from this CPU, and the other is to have
|
||||
* done everything RCU requires for the current grace period. In this
|
||||
* latter case, the CPU will be awakened at the end of the current grace
|
||||
* period in order to process the remainder of its callbacks.
|
||||
*
|
||||
* These tracepoints take a string as argument:
|
||||
*
|
||||
* "No callbacks": Nothing to do, no callbacks on this CPU.
|
||||
* "In holdoff": Nothing to do, holding off after unsuccessful attempt.
|
||||
* "Begin holdoff": Attempt failed, don't retry until next jiffy.
|
||||
* "Dyntick with callbacks": Entering dyntick-idle despite callbacks.
|
||||
* "Dyntick with lazy callbacks": Entering dyntick-idle w/lazy callbacks.
|
||||
* "More callbacks": Still more callbacks, try again to clear them out.
|
||||
* "Callbacks drained": All callbacks processed, off to dyntick idle!
|
||||
* "Timer": Timer fired to cause CPU to continue processing callbacks.
|
||||
* "Demigrate": Timer fired on wrong CPU, woke up correct CPU.
|
||||
* "Cleanup after idle": Idle exited, timer canceled.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_prep_idle,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
TP_PROTO(const char *reason),
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
TP_PROTO(char *reason),
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
|
||||
TP_ARGS(reason),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(reason, reason)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for the registration of a single RCU callback function.
|
||||
* The first argument is the type of RCU, the second argument is
|
||||
* a pointer to the RCU callback itself, the third element is the
|
||||
* number of lazy callbacks queued, and the fourth element is the
|
||||
* total number of callbacks queued.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_callback,
|
||||
|
||||
TP_PROTO(const char *rcuname, struct rcu_head *rhp, long qlen),
|
||||
|
||||
TP_ARGS(rcuname, rhp, qlen),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer_hex(void *, func, rhp->func)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_callback,
|
||||
|
||||
TP_PROTO(const char *rcuname, struct rcu_head *rhp, long qlen_lazy,
|
||||
long qlen),
|
||||
|
||||
TP_ARGS(rcuname, rhp, qlen_lazy, qlen),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer_hex(void *, func, rhp->func)
|
||||
ctf_integer(long, qlen_lazy, qlen_lazy)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_callback,
|
||||
|
||||
TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen_lazy,
|
||||
long qlen),
|
||||
|
||||
TP_ARGS(rcuname, rhp, qlen_lazy, qlen),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer_hex(void *, func, rhp->func)
|
||||
ctf_integer(long, qlen_lazy, qlen_lazy)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_callback,
|
||||
|
||||
TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen),
|
||||
|
||||
TP_ARGS(rcuname, rhp, qlen),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer_hex(void *, func, rhp->func)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Tracepoint for the registration of a single RCU callback of the special
|
||||
* kfree() form. The first argument is the RCU type, the second argument
|
||||
* is a pointer to the RCU callback, the third argument is the offset
|
||||
* of the callback within the enclosing RCU-protected data structure,
|
||||
* the fourth argument is the number of lazy callbacks queued, and the
|
||||
* fifth argument is the total number of callbacks queued.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_kfree_callback,
|
||||
|
||||
TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset,
|
||||
long qlen),
|
||||
|
||||
TP_ARGS(rcuname, rhp, offset, qlen),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer_hex(unsigned long, offset, offset)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_kfree_callback,
|
||||
|
||||
TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset,
|
||||
long qlen_lazy, long qlen),
|
||||
|
||||
TP_ARGS(rcuname, rhp, offset, qlen_lazy, qlen),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer_hex(unsigned long, offset, offset)
|
||||
ctf_integer(long, qlen_lazy, qlen_lazy)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_kfree_callback,
|
||||
|
||||
TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset,
|
||||
long qlen_lazy, long qlen),
|
||||
|
||||
TP_ARGS(rcuname, rhp, offset, qlen_lazy, qlen),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer_hex(unsigned long, offset, offset)
|
||||
ctf_integer(long, qlen_lazy, qlen_lazy)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_kfree_callback,
|
||||
|
||||
TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset,
|
||||
long qlen),
|
||||
|
||||
TP_ARGS(rcuname, rhp, offset, qlen),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer_hex(unsigned long, offset, offset)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for marking the beginning rcu_do_batch, performed to start
|
||||
* RCU callback invocation. The first argument is the RCU flavor,
|
||||
* the second is the number of lazy callbacks queued, the third is
|
||||
* the total number of callbacks queued, and the fourth argument is
|
||||
* the current RCU-callback batch limit.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
|
||||
|
||||
TP_PROTO(const char *rcuname, long qlen, long blimit),
|
||||
|
||||
TP_ARGS(rcuname, qlen, blimit),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
ctf_integer(long, blimit, blimit)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
|
||||
|
||||
TP_PROTO(const char *rcuname, long qlen_lazy, long qlen, long blimit),
|
||||
|
||||
TP_ARGS(rcuname, qlen_lazy, qlen, blimit),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(long, qlen_lazy, qlen_lazy)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
ctf_integer(long, blimit, blimit)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
|
||||
|
||||
TP_PROTO(char *rcuname, long qlen_lazy, long qlen, long blimit),
|
||||
|
||||
TP_ARGS(rcuname, qlen_lazy, qlen, blimit),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(long, qlen_lazy, qlen_lazy)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
ctf_integer(long, blimit, blimit)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
|
||||
|
||||
TP_PROTO(char *rcuname, long qlen_lazy, long qlen, int blimit),
|
||||
|
||||
TP_ARGS(rcuname, qlen_lazy, qlen, blimit),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(long, qlen_lazy, qlen_lazy)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
ctf_integer(int, blimit, blimit)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
|
||||
|
||||
TP_PROTO(char *rcuname, long qlen, int blimit),
|
||||
|
||||
TP_ARGS(rcuname, qlen, blimit),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(long, qlen, qlen)
|
||||
ctf_integer(int, blimit, blimit)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for the invocation of a single RCU callback function.
|
||||
* The first argument is the type of RCU, and the second argument is
|
||||
* a pointer to the RCU callback itself.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_invoke_callback,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
TP_PROTO(const char *rcuname, struct rcu_head *rhp),
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
TP_PROTO(char *rcuname, struct rcu_head *rhp),
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
|
||||
TP_ARGS(rcuname, rhp),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer_hex(void *, func, rhp->func)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for the invocation of a single RCU callback of the special
|
||||
* kfree() form. The first argument is the RCU flavor, the second
|
||||
* argument is a pointer to the RCU callback, and the third argument
|
||||
* is the offset of the callback within the enclosing RCU-protected
|
||||
* data structure.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_invoke_kfree_callback,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset),
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset),
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
|
||||
TP_ARGS(rcuname, rhp, offset),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer_hex(void *, rhp, rhp)
|
||||
ctf_integer(unsigned long, offset, offset)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for exiting rcu_do_batch after RCU callbacks have been
|
||||
* invoked. The first argument is the name of the RCU flavor,
|
||||
* the second argument is number of callbacks actually invoked,
|
||||
* the third argument (cb) is whether or not any of the callbacks that
|
||||
* were ready to invoke at the beginning of this batch are still
|
||||
* queued, the fourth argument (nr) is the return value of need_resched(),
|
||||
* the fifth argument (iit) is 1 if the current task is the idle task,
|
||||
* and the sixth argument (risk) is the return value from
|
||||
* rcu_is_callbacks_kthread().
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_batch_end,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0))
|
||||
TP_PROTO(const char *rcuname, int callbacks_invoked,
|
||||
char cb, char nr, char iit, char risk),
|
||||
|
||||
TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk),
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
TP_PROTO(const char *rcuname, int callbacks_invoked,
|
||||
bool cb, bool nr, bool iit, bool risk),
|
||||
|
||||
TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk),
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
TP_PROTO(char *rcuname, int callbacks_invoked,
|
||||
bool cb, bool nr, bool iit, bool risk),
|
||||
|
||||
TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk),
|
||||
#else
|
||||
TP_PROTO(char *rcuname, int callbacks_invoked),
|
||||
|
||||
TP_ARGS(rcuname, callbacks_invoked),
|
||||
#endif
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_integer(int, callbacks_invoked, callbacks_invoked)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0))
|
||||
ctf_integer(char, cb, cb)
|
||||
ctf_integer(char, nr, nr)
|
||||
ctf_integer(char, iit, iit)
|
||||
ctf_integer(char, risk, risk)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
ctf_integer(bool, cb, cb)
|
||||
ctf_integer(bool, nr, nr)
|
||||
ctf_integer(bool, iit, iit)
|
||||
ctf_integer(bool, risk, risk)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
/*
|
||||
* Tracepoint for rcutorture readers. The first argument is the name
|
||||
* of the RCU flavor from rcutorture's viewpoint and the second argument
|
||||
* is the callback address.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_torture_read,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
TP_PROTO(const char *rcutorturename, struct rcu_head *rhp,
|
||||
unsigned long secs, unsigned long c_old, unsigned long c),
|
||||
|
||||
TP_ARGS(rcutorturename, rhp, secs, c_old, c),
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
|
||||
TP_PROTO(char *rcutorturename, struct rcu_head *rhp,
|
||||
unsigned long secs, unsigned long c_old, unsigned long c),
|
||||
|
||||
TP_ARGS(rcutorturename, rhp, secs, c_old, c),
|
||||
#else
|
||||
TP_PROTO(char *rcutorturename, struct rcu_head *rhp),
|
||||
|
||||
TP_ARGS(rcutorturename, rhp),
|
||||
#endif
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcutorturename, rcutorturename)
|
||||
ctf_integer_hex(struct rcu_head *, rhp, rhp)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
|
||||
ctf_integer(unsigned long, secs, secs)
|
||||
ctf_integer(unsigned long, c_old, c_old)
|
||||
ctf_integer(unsigned long, c, c)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
|
||||
/*
|
||||
* Tracepoint for _rcu_barrier() execution. The string "s" describes
|
||||
* the _rcu_barrier phase:
|
||||
* "Begin": rcu_barrier_callback() started.
|
||||
* "Check": rcu_barrier_callback() checking for piggybacking.
|
||||
* "EarlyExit": rcu_barrier_callback() piggybacked, thus early exit.
|
||||
* "Inc1": rcu_barrier_callback() piggyback check counter incremented.
|
||||
* "Offline": rcu_barrier_callback() found offline CPU
|
||||
* "OnlineQ": rcu_barrier_callback() found online CPU with callbacks.
|
||||
* "OnlineNQ": rcu_barrier_callback() found online CPU, no callbacks.
|
||||
* "IRQ": An rcu_barrier_callback() callback posted on remote CPU.
|
||||
* "CB": An rcu_barrier_callback() invoked a callback, not the last.
|
||||
* "LastCB": An rcu_barrier_callback() invoked the last callback.
|
||||
* "Inc2": rcu_barrier_callback() piggyback check counter incremented.
|
||||
* The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument
|
||||
* is the count of remaining callbacks, and "done" is the piggybacking count.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(rcu_barrier,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
TP_PROTO(const char *rcuname, const char *s, int cpu, int cnt, unsigned long done),
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
TP_PROTO(char *rcuname, char *s, int cpu, int cnt, unsigned long done),
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
|
||||
TP_ARGS(rcuname, s, cpu, cnt, done),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(rcuname, rcuname)
|
||||
ctf_string(s, s)
|
||||
ctf_integer(int, cpu, cpu)
|
||||
ctf_integer(int, cnt, cnt)
|
||||
ctf_integer(unsigned long, done, done)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#else /* #ifdef CONFIG_RCU_TRACE */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
|
||||
#define trace_rcu_grace_period(rcuname, gp_seq, gpevent) do { } while (0)
|
||||
#define trace_rcu_grace_period_init(rcuname, gp_seq, level, grplo, grphi, \
|
||||
qsmask) do { } while (0)
|
||||
#define trace_rcu_preempt_task(rcuname, pid, gp_seq) do { } while (0)
|
||||
#define trace_rcu_unlock_preempted_task(rcuname, gp_seq, pid) do { } while (0)
|
||||
#define trace_rcu_quiescent_state_report(rcuname, gp_seq, mask, qsmask, level, \
|
||||
grplo, grphi, gp_tasks) do { } \
|
||||
while (0)
|
||||
#define trace_rcu_fqs(rcuname, gp_seq, cpu, qsevent) do { } while (0)
|
||||
#else
|
||||
#define trace_rcu_grace_period(rcuname, gpnum, gpevent) do { } while (0)
|
||||
#define trace_rcu_grace_period_init(rcuname, gpnum, level, grplo, grphi, \
|
||||
qsmask) do { } while (0)
|
||||
#define trace_rcu_preempt_task(rcuname, pid, gpnum) do { } while (0)
|
||||
#define trace_rcu_unlock_preempted_task(rcuname, gpnum, pid) do { } while (0)
|
||||
#define trace_rcu_quiescent_state_report(rcuname, gpnum, mask, qsmask, level, \
|
||||
grplo, grphi, gp_tasks) do { } \
|
||||
while (0)
|
||||
#define trace_rcu_fqs(rcuname, gpnum, cpu, qsevent) do { } while (0)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0))
|
||||
#define trace_rcu_dyntick(polarity, oldnesting, newnesting, dyntick) do { } while (0)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
#define trace_rcu_dyntick(polarity, oldnesting, newnesting) do { } while (0)
|
||||
#else
|
||||
#define trace_rcu_dyntick(polarity) do { } while (0)
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
#define trace_rcu_prep_idle(reason) do { } while (0)
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
#define trace_rcu_callback(rcuname, rhp, qlen_lazy, qlen) do { } while (0)
|
||||
#define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen_lazy, qlen) \
|
||||
do { } while (0)
|
||||
#define trace_rcu_batch_start(rcuname, qlen_lazy, qlen, blimit) \
|
||||
do { } while (0)
|
||||
#else
|
||||
#define trace_rcu_callback(rcuname, rhp, qlen) do { } while (0)
|
||||
#define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen) do { } while (0)
|
||||
#define trace_rcu_batch_start(rcuname, qlen, blimit) do { } while (0)
|
||||
#endif
|
||||
#define trace_rcu_invoke_callback(rcuname, rhp) do { } while (0)
|
||||
#define trace_rcu_invoke_kfree_callback(rcuname, rhp, offset) do { } while (0)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
#define trace_rcu_batch_end(rcuname, callbacks_invoked, cb, nr, iit, risk) \
|
||||
do { } while (0)
|
||||
#else
|
||||
#define trace_rcu_batch_end(rcuname, callbacks_invoked) do { } while (0)
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
|
||||
#define trace_rcu_torture_read(rcutorturename, rhp, secs, c_old, c) \
|
||||
do { } while (0)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
#define trace_rcu_torture_read(rcutorturename, rhp) do { } while (0)
|
||||
#endif
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
|
||||
#define trace_rcu_barrier(name, s, cpu, cnt, done) do { } while (0)
|
||||
#endif
|
||||
#endif /* #else #ifdef CONFIG_RCU_TRACE */
|
||||
|
||||
#endif /* LTTNG_TRACE_RCU_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,145 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM regmap
|
||||
|
||||
#if !defined(LTTNG_TRACE_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_REGMAP_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#ifndef _TRACE_REGMAP_DEF_
|
||||
#define _TRACE_REGMAP_DEF_
|
||||
struct device;
|
||||
struct regmap;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Log register events
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(regmap_reg,
|
||||
|
||||
TP_PROTO(struct regmap *map, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(map, reg, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, regmap_name(map))
|
||||
ctf_integer(unsigned int, reg, reg)
|
||||
ctf_integer(unsigned int, val, val)
|
||||
)
|
||||
)
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_write,
|
||||
|
||||
TP_PROTO(struct regmap *map, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(map, reg, val)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_read,
|
||||
|
||||
TP_PROTO(struct regmap *map, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(map, reg, val)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_read_cache,
|
||||
|
||||
TP_PROTO(struct regmap *map, unsigned int reg,
|
||||
unsigned int val),
|
||||
|
||||
TP_ARGS(map, reg, val)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(regmap_block,
|
||||
|
||||
TP_PROTO(struct regmap *map, unsigned int reg, int count),
|
||||
|
||||
TP_ARGS(map, reg, count),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, regmap_name(map))
|
||||
ctf_integer(unsigned int, reg, reg)
|
||||
ctf_integer(int, count, count)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_read_start,
|
||||
|
||||
TP_PROTO(struct regmap *map, unsigned int reg, int count),
|
||||
|
||||
TP_ARGS(map, reg, count)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_read_done,
|
||||
|
||||
TP_PROTO(struct regmap *map, unsigned int reg, int count),
|
||||
|
||||
TP_ARGS(map, reg, count)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_write_start,
|
||||
|
||||
TP_PROTO(struct regmap *map, unsigned int reg, int count),
|
||||
|
||||
TP_ARGS(map, reg, count)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_write_done,
|
||||
|
||||
TP_PROTO(struct regmap *map, unsigned int reg, int count),
|
||||
|
||||
TP_ARGS(map, reg, count)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(regcache_sync,
|
||||
|
||||
regmap_regcache_sync,
|
||||
|
||||
TP_PROTO(struct regmap *map, const char *type,
|
||||
const char *status),
|
||||
|
||||
TP_ARGS(map, type, status),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, regmap_name(map))
|
||||
ctf_string(status, status)
|
||||
ctf_string(type, type)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(regmap_bool,
|
||||
|
||||
TP_PROTO(struct regmap *map, bool flag),
|
||||
|
||||
TP_ARGS(map, flag),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, regmap_name(map))
|
||||
ctf_integer(int, flag, flag)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_bool, regmap_cache_only,
|
||||
|
||||
TP_PROTO(struct regmap *map, bool flag),
|
||||
|
||||
TP_ARGS(map, flag)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_bool, regmap_cache_bypass,
|
||||
|
||||
TP_PROTO(struct regmap *map, bool flag),
|
||||
|
||||
TP_ARGS(map, flag)
|
||||
|
||||
)
|
||||
|
||||
#endif /* LTTNG_TRACE_REGMAP_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,118 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM regulator
|
||||
|
||||
#if !defined(LTTNG_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_REGULATOR_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/ktime.h>
|
||||
|
||||
/*
|
||||
* Events which just log themselves and the regulator name for enable/disable
|
||||
* type tracking.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(regulator_basic,
|
||||
|
||||
TP_PROTO(const char *name),
|
||||
|
||||
TP_ARGS(name),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, name)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_basic, regulator_enable,
|
||||
|
||||
TP_PROTO(const char *name),
|
||||
|
||||
TP_ARGS(name)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_basic, regulator_enable_delay,
|
||||
|
||||
TP_PROTO(const char *name),
|
||||
|
||||
TP_ARGS(name)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_basic, regulator_enable_complete,
|
||||
|
||||
TP_PROTO(const char *name),
|
||||
|
||||
TP_ARGS(name)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_basic, regulator_disable,
|
||||
|
||||
TP_PROTO(const char *name),
|
||||
|
||||
TP_ARGS(name)
|
||||
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_basic, regulator_disable_complete,
|
||||
|
||||
TP_PROTO(const char *name),
|
||||
|
||||
TP_ARGS(name)
|
||||
|
||||
)
|
||||
|
||||
/*
|
||||
* Events that take a range of numerical values, mostly for voltages
|
||||
* and so on.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(regulator_range,
|
||||
|
||||
TP_PROTO(const char *name, int min, int max),
|
||||
|
||||
TP_ARGS(name, min, max),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, name)
|
||||
ctf_integer(int, min, min)
|
||||
ctf_integer(int, max, max)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_range, regulator_set_voltage,
|
||||
|
||||
TP_PROTO(const char *name, int min, int max),
|
||||
|
||||
TP_ARGS(name, min, max)
|
||||
|
||||
)
|
||||
|
||||
|
||||
/*
|
||||
* Events that take a single value, mostly for readback and refcounts.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(regulator_value,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int val),
|
||||
|
||||
TP_ARGS(name, val),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, name)
|
||||
ctf_integer(unsigned int, val, val)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_value, regulator_set_voltage_complete,
|
||||
|
||||
TP_PROTO(const char *name, unsigned int value),
|
||||
|
||||
TP_ARGS(name, value)
|
||||
|
||||
)
|
||||
|
||||
#endif /* _TRACE_POWER_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,366 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM rpc
|
||||
|
||||
#if !defined(LTTNG_TRACE_RPC_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_RPC_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/sunrpc/sched.h>
|
||||
#include <linux/sunrpc/clnt.h>
|
||||
|
||||
#ifndef ONCE_LTTNG_RPC_H
|
||||
#define ONCE_LTTNG_RPC_H
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
static inline
|
||||
int lttng_get_clid(const struct rpc_task *task)
|
||||
{
|
||||
struct rpc_clnt *tk_client;
|
||||
|
||||
tk_client = task->tk_client;
|
||||
if (!tk_client)
|
||||
return -1;
|
||||
/*
|
||||
* The cl_clid field is always initialized to positive signed
|
||||
* integers. Negative signed integer values are treated as
|
||||
* errors.
|
||||
*/
|
||||
return (int) tk_client->cl_clid;
|
||||
}
|
||||
#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
|
||||
|
||||
#endif /* ONCE_LTTNG_RPC_H */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
|
||||
|
||||
TP_PROTO(const struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, task_id, task->tk_pid)
|
||||
ctf_integer(int, client_id, lttng_get_clid(task))
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
|
||||
TP_PROTO(const struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
|
||||
TP_PROTO(const struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
|
||||
|
||||
TP_PROTO(struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, task_id, task->tk_pid)
|
||||
ctf_integer(int, client_id, lttng_get_clid(task))
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
|
||||
TP_PROTO(struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
|
||||
TP_PROTO(struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
|
||||
|
||||
TP_PROTO(struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(const struct rpc_task *, task, task)
|
||||
ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
|
||||
TP_PROTO(struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
|
||||
TP_PROTO(struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_connect_status,
|
||||
TP_PROTO(const struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
|
||||
TP_PROTO(const struct rpc_task *task),
|
||||
|
||||
TP_ARGS(task),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, task_id, task->tk_pid)
|
||||
ctf_integer(int, client_id, lttng_get_clid(task))
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
|
||||
TP_PROTO(struct rpc_task *task, int status),
|
||||
|
||||
TP_ARGS(task, status),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, task_id, task->tk_pid)
|
||||
ctf_integer(int, client_id, lttng_get_clid(task))
|
||||
ctf_integer(int, status, status)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
|
||||
TP_PROTO(struct rpc_task *task, int status),
|
||||
|
||||
TP_ARGS(task, status),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(const struct rpc_task *, task, task)
|
||||
ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
|
||||
ctf_integer(int, status, status)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
|
||||
|
||||
TP_PROTO(const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(task, action),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, task_id, task->tk_pid)
|
||||
ctf_integer(int, client_id, lttng_get_clid(task))
|
||||
ctf_integer_hex(const void *, action, action)
|
||||
ctf_integer(unsigned long, runstate, task->tk_runstate)
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
ctf_integer(unsigned short, flags, task->tk_flags)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
|
||||
|
||||
TP_PROTO(const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(task, action)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
|
||||
|
||||
TP_PROTO(const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(task, action)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
|
||||
|
||||
TP_PROTO(const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(task, action)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
|
||||
|
||||
TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q),
|
||||
|
||||
TP_ARGS(task, q),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, task_id, task->tk_pid)
|
||||
ctf_integer(int, client_id, lttng_get_clid(task))
|
||||
ctf_integer(unsigned long, timeout, task->tk_timeout)
|
||||
ctf_integer(unsigned long, runstate, task->tk_runstate)
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
ctf_integer(unsigned short, flags, task->tk_flags)
|
||||
ctf_string(q_name, rpc_qname(q))
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
|
||||
|
||||
TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q),
|
||||
|
||||
TP_ARGS(task, q)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
|
||||
|
||||
TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q),
|
||||
|
||||
TP_ARGS(task, q)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(clnt, task, action),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, task_id, task->tk_pid)
|
||||
ctf_integer(int, client_id, lttng_get_clid(task))
|
||||
ctf_integer_hex(const void *, action, action)
|
||||
ctf_integer(unsigned long, runstate, task->tk_runstate)
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
ctf_integer(unsigned short, flags, task->tk_flags)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(clnt, task, action)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(clnt, task, action)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(clnt, task, action)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
|
||||
|
||||
TP_ARGS(clnt, task, q),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, task_id, task->tk_pid)
|
||||
ctf_integer(int, client_id, lttng_get_clid(task))
|
||||
ctf_integer(unsigned long, timeout, task->tk_timeout)
|
||||
ctf_integer(unsigned long, runstate, task->tk_runstate)
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
ctf_integer(unsigned short, flags, task->tk_flags)
|
||||
ctf_string(q_name, rpc_qname(q))
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
|
||||
|
||||
TP_ARGS(clnt, task, q)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
|
||||
|
||||
TP_ARGS(clnt, task, q)
|
||||
)
|
||||
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(clnt, task, action),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(const struct rpc_clnt *, clnt, clnt)
|
||||
ctf_integer_hex(const struct rpc_task *, task, task)
|
||||
ctf_integer_hex(const void *, action, action)
|
||||
ctf_integer(unsigned long, runstate, task->tk_runstate)
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
ctf_integer(unsigned short, flags, task->tk_flags)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(clnt, task, action)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(clnt, task, action)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
|
||||
|
||||
TP_ARGS(clnt, task, action)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
|
||||
|
||||
TP_ARGS(clnt, task, q),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(const struct rpc_clnt *, clnt, clnt)
|
||||
ctf_integer_hex(const struct rpc_task *, task, task)
|
||||
ctf_integer(unsigned long, timeout, task->tk_timeout)
|
||||
ctf_integer(unsigned long, runstate, task->tk_runstate)
|
||||
ctf_integer(int, status, task->tk_status)
|
||||
ctf_integer(unsigned short, flags, task->tk_flags)
|
||||
ctf_string(q_name, rpc_qname(q))
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
|
||||
|
||||
TP_ARGS(clnt, task, q)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
|
||||
|
||||
TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
|
||||
|
||||
TP_ARGS(clnt, task, q)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_RPC_H */
|
||||
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,73 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM rpm
|
||||
|
||||
#if !defined(LTTNG_TRACE_RUNTIME_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_RUNTIME_POWER_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/ktime.h>
|
||||
|
||||
#ifndef _TRACE_RPM_DEF_
|
||||
#define _TRACE_RPM_DEF_
|
||||
struct device;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The rpm_internal events are used for tracing some important
|
||||
* runtime pm internal functions.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(rpm_internal,
|
||||
|
||||
TP_PROTO(struct device *dev, int flags),
|
||||
|
||||
TP_ARGS(dev, flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, dev_name(dev))
|
||||
ctf_integer(int, flags, flags)
|
||||
ctf_integer(int, usage_count, atomic_read(&dev->power.usage_count))
|
||||
ctf_integer(int, disable_depth, dev->power.disable_depth)
|
||||
ctf_integer(int, runtime_auto, dev->power.runtime_auto)
|
||||
ctf_integer(int, request_pending, dev->power.request_pending)
|
||||
ctf_integer(int, irq_safe, dev->power.irq_safe)
|
||||
ctf_integer(int, child_count, atomic_read(&dev->power.child_count))
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpm_internal, rpm_suspend,
|
||||
|
||||
TP_PROTO(struct device *dev, int flags),
|
||||
|
||||
TP_ARGS(dev, flags)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpm_internal, rpm_resume,
|
||||
|
||||
TP_PROTO(struct device *dev, int flags),
|
||||
|
||||
TP_ARGS(dev, flags)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(rpm_internal, rpm_idle,
|
||||
|
||||
TP_PROTO(struct device *dev, int flags),
|
||||
|
||||
TP_ARGS(dev, flags)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(rpm_return_int,
|
||||
TP_PROTO(struct device *dev, unsigned long ip, int ret),
|
||||
TP_ARGS(dev, ip, ret),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, dev_name(dev))
|
||||
ctf_integer(unsigned long, ip, ip)
|
||||
ctf_integer(int, ret, ret)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* LTTNG_TRACE_RUNTIME_POWER_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,655 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM sched
|
||||
|
||||
#if !defined(LTTNG_TRACE_SCHED_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_SCHED_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/pid_namespace.h>
|
||||
#include <linux/binfmts.h>
|
||||
#include <linux/version.h>
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
|
||||
#include <linux/sched/rt.h>
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
|
||||
#define lttng_proc_inum ns.inum
|
||||
#else
|
||||
#define lttng_proc_inum proc_inum
|
||||
#endif
|
||||
|
||||
#define LTTNG_MAX_PID_NS_LEVEL 32
|
||||
|
||||
#ifndef _TRACE_SCHED_DEF_
|
||||
#define _TRACE_SCHED_DEF_
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
|
||||
|
||||
static inline long __trace_sched_switch_state(bool preempt, struct task_struct *p)
|
||||
{
|
||||
unsigned int state;
|
||||
|
||||
#ifdef CONFIG_SCHED_DEBUG
|
||||
BUG_ON(p != current);
|
||||
#endif /* CONFIG_SCHED_DEBUG */
|
||||
|
||||
/*
|
||||
* Preemption ignores task state, therefore preempted tasks are always
|
||||
* RUNNING (we will not have dequeued if state != RUNNING).
|
||||
*/
|
||||
if (preempt)
|
||||
return TASK_REPORT_MAX;
|
||||
|
||||
/*
|
||||
* task_state_index() uses fls() and returns a value from 0-8 range.
|
||||
* Decrement it by 1 (except TASK_RUNNING state i.e 0) before using
|
||||
* it for left shift operation to get the correct task->state
|
||||
* mapping.
|
||||
*/
|
||||
state = task_state_index(p);
|
||||
|
||||
return state ? (1 << (state - 1)) : state;
|
||||
}
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
|
||||
|
||||
static inline long __trace_sched_switch_state(bool preempt, struct task_struct *p)
|
||||
{
|
||||
unsigned int state;
|
||||
|
||||
#ifdef CONFIG_SCHED_DEBUG
|
||||
BUG_ON(p != current);
|
||||
#endif /* CONFIG_SCHED_DEBUG */
|
||||
|
||||
/*
|
||||
* Preemption ignores task state, therefore preempted tasks are always
|
||||
* RUNNING (we will not have dequeued if state != RUNNING).
|
||||
*/
|
||||
if (preempt)
|
||||
return TASK_REPORT_MAX;
|
||||
|
||||
/*
|
||||
* __get_task_state() uses fls() and returns a value from 0-8 range.
|
||||
* Decrement it by 1 (except TASK_RUNNING state i.e 0) before using
|
||||
* it for left shift operation to get the correct task->state
|
||||
* mapping.
|
||||
*/
|
||||
state = __get_task_state(p);
|
||||
|
||||
return state ? (1 << (state - 1)) : state;
|
||||
}
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0))
|
||||
|
||||
static inline long __trace_sched_switch_state(bool preempt, struct task_struct *p)
|
||||
{
|
||||
#ifdef CONFIG_SCHED_DEBUG
|
||||
BUG_ON(p != current);
|
||||
#endif /* CONFIG_SCHED_DEBUG */
|
||||
/*
|
||||
* Preemption ignores task state, therefore preempted tasks are always RUNNING
|
||||
* (we will not have dequeued if state != RUNNING).
|
||||
*/
|
||||
return preempt ? TASK_RUNNING | TASK_STATE_MAX : p->state;
|
||||
}
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
|
||||
|
||||
static inline long __trace_sched_switch_state(struct task_struct *p)
|
||||
{
|
||||
long state = p->state;
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
#ifdef CONFIG_SCHED_DEBUG
|
||||
BUG_ON(p != current);
|
||||
#endif /* CONFIG_SCHED_DEBUG */
|
||||
/*
|
||||
* For all intents and purposes a preempted task is a running task.
|
||||
*/
|
||||
if (preempt_count() & PREEMPT_ACTIVE)
|
||||
state = TASK_RUNNING | TASK_STATE_MAX;
|
||||
#endif /* CONFIG_PREEMPT */
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0))
|
||||
|
||||
static inline long __trace_sched_switch_state(struct task_struct *p)
|
||||
{
|
||||
long state = p->state;
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
/*
|
||||
* For all intents and purposes a preempted task is a running task.
|
||||
*/
|
||||
if (task_preempt_count(p) & PREEMPT_ACTIVE)
|
||||
state = TASK_RUNNING | TASK_STATE_MAX;
|
||||
#endif
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
|
||||
|
||||
static inline long __trace_sched_switch_state(struct task_struct *p)
|
||||
{
|
||||
long state = p->state;
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
/*
|
||||
* For all intents and purposes a preempted task is a running task.
|
||||
*/
|
||||
if (task_thread_info(p)->preempt_count & PREEMPT_ACTIVE)
|
||||
state = TASK_RUNNING | TASK_STATE_MAX;
|
||||
#endif
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
|
||||
static inline long __trace_sched_switch_state(struct task_struct *p)
|
||||
{
|
||||
long state = p->state;
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
/*
|
||||
* For all intents and purposes a preempted task is a running task.
|
||||
*/
|
||||
if (task_thread_info(p)->preempt_count & PREEMPT_ACTIVE)
|
||||
state = TASK_RUNNING;
|
||||
#endif
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _TRACE_SCHED_DEF_ */
|
||||
|
||||
/*
|
||||
* Tracepoint for calling kthread_stop, performed to end a kthread:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_kthread_stop,
|
||||
|
||||
TP_PROTO(struct task_struct *t),
|
||||
|
||||
TP_ARGS(t),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, t->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, t->pid)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for the return value of the kthread stopping:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_kthread_stop_ret,
|
||||
|
||||
TP_PROTO(int ret),
|
||||
|
||||
TP_ARGS(ret),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, ret, ret)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for waking up a task:
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(4,1,10,11, 4,2,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,18,27,26, 3,19,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,14,61,63, 3,15,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,12,54,73, 3,13,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,10,97,106, 3,11,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,4,110,139, 3,5,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,2,77,111, 3,3,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(sched_wakeup_template,
|
||||
|
||||
TP_PROTO(struct task_struct *p),
|
||||
|
||||
TP_ARGS(p),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, p->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, p->pid)
|
||||
ctf_integer(int, prio, p->prio - MAX_RT_PRIO)
|
||||
ctf_integer(int, target_cpu, task_cpu(p))
|
||||
)
|
||||
)
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(sched_wakeup_template,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
TP_PROTO(struct task_struct *p, int success),
|
||||
|
||||
TP_ARGS(p, success),
|
||||
#else
|
||||
TP_PROTO(struct rq *rq, struct task_struct *p, int success),
|
||||
|
||||
TP_ARGS(rq, p, success),
|
||||
#endif
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, p->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, p->pid)
|
||||
ctf_integer(int, prio, p->prio - MAX_RT_PRIO)
|
||||
ctf_integer(int, success, success)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
|
||||
ctf_integer(int, target_cpu, task_cpu(p))
|
||||
#endif
|
||||
)
|
||||
)
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(4,1,10,11, 4,2,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,18,27,26, 3,19,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,14,61,63, 3,15,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,12,54,73, 3,13,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,10,97,106, 3,11,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,4,110,139, 3,5,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(3,2,77,111, 3,3,0,0))
|
||||
|
||||
/*
|
||||
* Tracepoint called when waking a task; this tracepoint is guaranteed to be
|
||||
* called from the waking context.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_wakeup_template, sched_waking,
|
||||
TP_PROTO(struct task_struct *p),
|
||||
TP_ARGS(p))
|
||||
|
||||
/*
|
||||
* Tracepoint called when the task is actually woken; p->state == TASK_RUNNNG.
|
||||
* It it not always called from the waking context.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_wakeup_template, sched_wakeup,
|
||||
TP_PROTO(struct task_struct *p),
|
||||
TP_ARGS(p))
|
||||
|
||||
/*
|
||||
* Tracepoint for waking up a new task:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_wakeup_template, sched_wakeup_new,
|
||||
TP_PROTO(struct task_struct *p),
|
||||
TP_ARGS(p))
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_wakeup_template, sched_wakeup,
|
||||
TP_PROTO(struct task_struct *p, int success),
|
||||
TP_ARGS(p, success))
|
||||
|
||||
/*
|
||||
* Tracepoint for waking up a new task:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_wakeup_template, sched_wakeup_new,
|
||||
TP_PROTO(struct task_struct *p, int success),
|
||||
TP_ARGS(p, success))
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_wakeup_template, sched_wakeup,
|
||||
TP_PROTO(struct rq *rq, struct task_struct *p, int success),
|
||||
TP_ARGS(rq, p, success))
|
||||
|
||||
/*
|
||||
* Tracepoint for waking up a new task:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_wakeup_template, sched_wakeup_new,
|
||||
TP_PROTO(struct rq *rq, struct task_struct *p, int success),
|
||||
TP_ARGS(rq, p, success))
|
||||
|
||||
#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */
|
||||
|
||||
/*
|
||||
* Tracepoint for task switches, performed by the scheduler:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_switch,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0))
|
||||
TP_PROTO(bool preempt,
|
||||
struct task_struct *prev,
|
||||
struct task_struct *next),
|
||||
|
||||
TP_ARGS(preempt, prev, next),
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
TP_PROTO(struct task_struct *prev,
|
||||
struct task_struct *next),
|
||||
|
||||
TP_ARGS(prev, next),
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */
|
||||
TP_PROTO(struct rq *rq, struct task_struct *prev,
|
||||
struct task_struct *next),
|
||||
|
||||
TP_ARGS(rq, prev, next),
|
||||
#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, prev_comm, prev->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, prev_tid, prev->pid)
|
||||
ctf_integer(int, prev_prio, prev->prio - MAX_RT_PRIO)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0))
|
||||
ctf_integer(long, prev_state, __trace_sched_switch_state(preempt, prev))
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
ctf_integer(long, prev_state, __trace_sched_switch_state(prev))
|
||||
#else
|
||||
ctf_integer(long, prev_state, prev->state)
|
||||
#endif
|
||||
ctf_array_text(char, next_comm, next->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, next_tid, next->pid)
|
||||
ctf_integer(int, next_prio, next->prio - MAX_RT_PRIO)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for a task being migrated:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_migrate_task,
|
||||
|
||||
TP_PROTO(struct task_struct *p, int dest_cpu),
|
||||
|
||||
TP_ARGS(p, dest_cpu),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, p->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, p->pid)
|
||||
ctf_integer(int, prio, p->prio - MAX_RT_PRIO)
|
||||
ctf_integer(int, orig_cpu, task_cpu(p))
|
||||
ctf_integer(int, dest_cpu, dest_cpu)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(sched_process_template,
|
||||
|
||||
TP_PROTO(struct task_struct *p),
|
||||
|
||||
TP_ARGS(p),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, p->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, p->pid)
|
||||
ctf_integer(int, prio, p->prio - MAX_RT_PRIO)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for freeing a task:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_process_template, sched_process_free,
|
||||
TP_PROTO(struct task_struct *p),
|
||||
TP_ARGS(p))
|
||||
|
||||
|
||||
/*
|
||||
* Tracepoint for a task exiting:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_process_template, sched_process_exit,
|
||||
TP_PROTO(struct task_struct *p),
|
||||
TP_ARGS(p))
|
||||
|
||||
/*
|
||||
* Tracepoint for waiting on task to unschedule:
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_process_template, sched_wait_task,
|
||||
TP_PROTO(struct task_struct *p),
|
||||
TP_ARGS(p))
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_process_template, sched_wait_task,
|
||||
TP_PROTO(struct rq *rq, struct task_struct *p),
|
||||
TP_ARGS(rq, p))
|
||||
#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */
|
||||
|
||||
/*
|
||||
* Tracepoint for a waiting task:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_process_wait,
|
||||
|
||||
TP_PROTO(struct pid *pid),
|
||||
|
||||
TP_ARGS(pid),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, pid_nr(pid))
|
||||
ctf_integer(int, prio, current->prio - MAX_RT_PRIO)
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
* Tracepoint for do_fork.
|
||||
* Saving both TID and PID information, especially for the child, allows
|
||||
* trace analyzers to distinguish between creation of a new process and
|
||||
* creation of a new thread. Newly created processes will have child_tid
|
||||
* == child_pid, while creation of a thread yields to child_tid !=
|
||||
* child_pid.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CODE(sched_process_fork,
|
||||
|
||||
TP_PROTO(struct task_struct *parent, struct task_struct *child),
|
||||
|
||||
TP_ARGS(parent, child),
|
||||
|
||||
TP_locvar(
|
||||
pid_t vtids[LTTNG_MAX_PID_NS_LEVEL];
|
||||
unsigned int ns_level;
|
||||
),
|
||||
|
||||
TP_code_pre(
|
||||
if (child) {
|
||||
struct pid *child_pid;
|
||||
unsigned int i;
|
||||
|
||||
child_pid = task_pid(child);
|
||||
tp_locvar->ns_level =
|
||||
min_t(unsigned int, child_pid->level + 1,
|
||||
LTTNG_MAX_PID_NS_LEVEL);
|
||||
for (i = 0; i < tp_locvar->ns_level; i++)
|
||||
tp_locvar->vtids[i] = child_pid->numbers[i].nr;
|
||||
}
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, parent_comm, parent->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, parent_tid, parent->pid)
|
||||
ctf_integer(pid_t, parent_pid, parent->tgid)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
|
||||
ctf_integer(unsigned int, parent_ns_inum,
|
||||
({
|
||||
unsigned int parent_ns_inum = 0;
|
||||
|
||||
if (parent) {
|
||||
struct pid_namespace *pid_ns;
|
||||
|
||||
pid_ns = task_active_pid_ns(parent);
|
||||
if (pid_ns)
|
||||
parent_ns_inum =
|
||||
pid_ns->lttng_proc_inum;
|
||||
}
|
||||
parent_ns_inum;
|
||||
}))
|
||||
#endif
|
||||
ctf_array_text(char, child_comm, child->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, child_tid, child->pid)
|
||||
ctf_sequence(pid_t, vtids, tp_locvar->vtids, u8, tp_locvar->ns_level)
|
||||
ctf_integer(pid_t, child_pid, child->tgid)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
|
||||
ctf_integer(unsigned int, child_ns_inum,
|
||||
({
|
||||
unsigned int child_ns_inum = 0;
|
||||
|
||||
if (child) {
|
||||
struct pid_namespace *pid_ns;
|
||||
|
||||
pid_ns = task_active_pid_ns(child);
|
||||
if (pid_ns)
|
||||
child_ns_inum =
|
||||
pid_ns->lttng_proc_inum;
|
||||
}
|
||||
child_ns_inum;
|
||||
}))
|
||||
#endif
|
||||
),
|
||||
|
||||
TP_code_post()
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
|
||||
/*
|
||||
* Tracepoint for sending a signal:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_signal_send,
|
||||
|
||||
TP_PROTO(int sig, struct task_struct *p),
|
||||
|
||||
TP_ARGS(sig, p),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, sig, sig)
|
||||
ctf_array_text(char, comm, p->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, p->pid)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
/*
|
||||
* Tracepoint for exec:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_process_exec,
|
||||
|
||||
TP_PROTO(struct task_struct *p, pid_t old_pid,
|
||||
struct linux_binprm *bprm),
|
||||
|
||||
TP_ARGS(p, old_pid, bprm),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(filename, bprm->filename)
|
||||
ctf_integer(pid_t, tid, p->pid)
|
||||
ctf_integer(pid_t, old_tid, old_pid)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
|
||||
/*
|
||||
* XXX the below sched_stat tracepoints only apply to SCHED_OTHER/BATCH/IDLE
|
||||
* adding sched_stat support to SCHED_FIFO/RR would be welcome.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(sched_stat_template,
|
||||
|
||||
TP_PROTO(struct task_struct *tsk, u64 delay),
|
||||
|
||||
TP_ARGS(tsk, delay),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, tsk->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, tsk->pid)
|
||||
ctf_integer(u64, delay, delay)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
/*
|
||||
* Tracepoint for accounting wait time (time the task is runnable
|
||||
* but not actually running due to scheduler contention).
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_stat_template, sched_stat_wait,
|
||||
TP_PROTO(struct task_struct *tsk, u64 delay),
|
||||
TP_ARGS(tsk, delay))
|
||||
|
||||
/*
|
||||
* Tracepoint for accounting sleep time (time the task is not runnable,
|
||||
* including iowait, see below).
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_stat_template, sched_stat_sleep,
|
||||
TP_PROTO(struct task_struct *tsk, u64 delay),
|
||||
TP_ARGS(tsk, delay))
|
||||
|
||||
/*
|
||||
* Tracepoint for accounting iowait time (time the task is not runnable
|
||||
* due to waiting on IO to complete).
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_stat_template, sched_stat_iowait,
|
||||
TP_PROTO(struct task_struct *tsk, u64 delay),
|
||||
TP_ARGS(tsk, delay))
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
/*
|
||||
* Tracepoint for accounting blocked time (time the task is in uninterruptible).
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_stat_template, sched_stat_blocked,
|
||||
TP_PROTO(struct task_struct *tsk, u64 delay),
|
||||
TP_ARGS(tsk, delay))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tracepoint for accounting runtime (time the task is executing
|
||||
* on a CPU).
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_stat_runtime,
|
||||
|
||||
TP_PROTO(struct task_struct *tsk, u64 runtime, u64 vruntime),
|
||||
|
||||
TP_ARGS(tsk, runtime, vruntime),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, tsk->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, tsk->pid)
|
||||
ctf_integer(u64, runtime, runtime)
|
||||
ctf_integer(u64, vruntime, vruntime)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(4,9,27,18, 4,10,0,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(4,11,5,1, 4,12,0,0))
|
||||
/*
|
||||
* Tracepoint for showing priority inheritance modifying a tasks
|
||||
* priority.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_pi_setprio,
|
||||
|
||||
TP_PROTO(struct task_struct *tsk, struct task_struct *pi_task),
|
||||
|
||||
TP_ARGS(tsk, pi_task),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, tsk->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, tsk->pid)
|
||||
ctf_integer(int, oldprio, tsk->prio - MAX_RT_PRIO)
|
||||
ctf_integer(int, newprio, pi_task ? pi_task->prio - MAX_RT_PRIO : tsk->prio - MAX_RT_PRIO)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
/*
|
||||
* Tracepoint for showing priority inheritance modifying a tasks
|
||||
* priority.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(sched_pi_setprio,
|
||||
|
||||
TP_PROTO(struct task_struct *tsk, int newprio),
|
||||
|
||||
TP_ARGS(tsk, newprio),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, comm, tsk->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, tid, tsk->pid)
|
||||
ctf_integer(int, oldprio, tsk->prio - MAX_RT_PRIO)
|
||||
ctf_integer(int, newprio, newprio - MAX_RT_PRIO)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_SCHED_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,498 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM scsi
|
||||
|
||||
#if !defined(LTTNG_TRACE_SCSI_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_SCSI_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <scsi/scsi_cmnd.h>
|
||||
#include <scsi/scsi_host.h>
|
||||
#include <linux/trace_seq.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#ifndef _TRACE_SCSI_DEF
|
||||
#define _TRACE_SCSI_DEF
|
||||
|
||||
#define scsi_opcode_name(opcode) { opcode, #opcode }
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) \
|
||||
|| LTTNG_SLE_KERNEL_RANGE(4,4,9,36,0,0, 4,5,0,0,0,0))
|
||||
|
||||
#define show_opcode_name(val) \
|
||||
__print_symbolic(val, \
|
||||
scsi_opcode_name(TEST_UNIT_READY), \
|
||||
scsi_opcode_name(REZERO_UNIT), \
|
||||
scsi_opcode_name(REQUEST_SENSE), \
|
||||
scsi_opcode_name(FORMAT_UNIT), \
|
||||
scsi_opcode_name(READ_BLOCK_LIMITS), \
|
||||
scsi_opcode_name(REASSIGN_BLOCKS), \
|
||||
scsi_opcode_name(INITIALIZE_ELEMENT_STATUS), \
|
||||
scsi_opcode_name(READ_6), \
|
||||
scsi_opcode_name(WRITE_6), \
|
||||
scsi_opcode_name(SEEK_6), \
|
||||
scsi_opcode_name(READ_REVERSE), \
|
||||
scsi_opcode_name(WRITE_FILEMARKS), \
|
||||
scsi_opcode_name(SPACE), \
|
||||
scsi_opcode_name(INQUIRY), \
|
||||
scsi_opcode_name(RECOVER_BUFFERED_DATA), \
|
||||
scsi_opcode_name(MODE_SELECT), \
|
||||
scsi_opcode_name(RESERVE), \
|
||||
scsi_opcode_name(RELEASE), \
|
||||
scsi_opcode_name(COPY), \
|
||||
scsi_opcode_name(ERASE), \
|
||||
scsi_opcode_name(MODE_SENSE), \
|
||||
scsi_opcode_name(START_STOP), \
|
||||
scsi_opcode_name(RECEIVE_DIAGNOSTIC), \
|
||||
scsi_opcode_name(SEND_DIAGNOSTIC), \
|
||||
scsi_opcode_name(ALLOW_MEDIUM_REMOVAL), \
|
||||
scsi_opcode_name(SET_WINDOW), \
|
||||
scsi_opcode_name(READ_CAPACITY), \
|
||||
scsi_opcode_name(READ_10), \
|
||||
scsi_opcode_name(WRITE_10), \
|
||||
scsi_opcode_name(SEEK_10), \
|
||||
scsi_opcode_name(POSITION_TO_ELEMENT), \
|
||||
scsi_opcode_name(WRITE_VERIFY), \
|
||||
scsi_opcode_name(VERIFY), \
|
||||
scsi_opcode_name(SEARCH_HIGH), \
|
||||
scsi_opcode_name(SEARCH_EQUAL), \
|
||||
scsi_opcode_name(SEARCH_LOW), \
|
||||
scsi_opcode_name(SET_LIMITS), \
|
||||
scsi_opcode_name(PRE_FETCH), \
|
||||
scsi_opcode_name(READ_POSITION), \
|
||||
scsi_opcode_name(SYNCHRONIZE_CACHE), \
|
||||
scsi_opcode_name(LOCK_UNLOCK_CACHE), \
|
||||
scsi_opcode_name(READ_DEFECT_DATA), \
|
||||
scsi_opcode_name(MEDIUM_SCAN), \
|
||||
scsi_opcode_name(COMPARE), \
|
||||
scsi_opcode_name(COPY_VERIFY), \
|
||||
scsi_opcode_name(WRITE_BUFFER), \
|
||||
scsi_opcode_name(READ_BUFFER), \
|
||||
scsi_opcode_name(UPDATE_BLOCK), \
|
||||
scsi_opcode_name(READ_LONG), \
|
||||
scsi_opcode_name(WRITE_LONG), \
|
||||
scsi_opcode_name(CHANGE_DEFINITION), \
|
||||
scsi_opcode_name(WRITE_SAME), \
|
||||
scsi_opcode_name(UNMAP), \
|
||||
scsi_opcode_name(READ_TOC), \
|
||||
scsi_opcode_name(LOG_SELECT), \
|
||||
scsi_opcode_name(LOG_SENSE), \
|
||||
scsi_opcode_name(XDWRITEREAD_10), \
|
||||
scsi_opcode_name(MODE_SELECT_10), \
|
||||
scsi_opcode_name(RESERVE_10), \
|
||||
scsi_opcode_name(RELEASE_10), \
|
||||
scsi_opcode_name(MODE_SENSE_10), \
|
||||
scsi_opcode_name(PERSISTENT_RESERVE_IN), \
|
||||
scsi_opcode_name(PERSISTENT_RESERVE_OUT), \
|
||||
scsi_opcode_name(VARIABLE_LENGTH_CMD), \
|
||||
scsi_opcode_name(REPORT_LUNS), \
|
||||
scsi_opcode_name(MAINTENANCE_IN), \
|
||||
scsi_opcode_name(MAINTENANCE_OUT), \
|
||||
scsi_opcode_name(MOVE_MEDIUM), \
|
||||
scsi_opcode_name(EXCHANGE_MEDIUM), \
|
||||
scsi_opcode_name(READ_12), \
|
||||
scsi_opcode_name(WRITE_12), \
|
||||
scsi_opcode_name(WRITE_VERIFY_12), \
|
||||
scsi_opcode_name(SEARCH_HIGH_12), \
|
||||
scsi_opcode_name(SEARCH_EQUAL_12), \
|
||||
scsi_opcode_name(SEARCH_LOW_12), \
|
||||
scsi_opcode_name(READ_ELEMENT_STATUS), \
|
||||
scsi_opcode_name(SEND_VOLUME_TAG), \
|
||||
scsi_opcode_name(WRITE_LONG_2), \
|
||||
scsi_opcode_name(READ_16), \
|
||||
scsi_opcode_name(WRITE_16), \
|
||||
scsi_opcode_name(VERIFY_16), \
|
||||
scsi_opcode_name(WRITE_SAME_16), \
|
||||
scsi_opcode_name(ZBC_OUT), \
|
||||
scsi_opcode_name(ZBC_IN), \
|
||||
scsi_opcode_name(SERVICE_ACTION_IN_16), \
|
||||
scsi_opcode_name(READ_32), \
|
||||
scsi_opcode_name(WRITE_32), \
|
||||
scsi_opcode_name(WRITE_SAME_32), \
|
||||
scsi_opcode_name(ATA_16), \
|
||||
scsi_opcode_name(ATA_12))
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) \
|
||||
|| LTTNG_RHEL_KERNEL_RANGE(3,10,0,327,0,0, 3,11,0,0,0,0))
|
||||
|
||||
#define show_opcode_name(val) \
|
||||
__print_symbolic(val, \
|
||||
scsi_opcode_name(TEST_UNIT_READY), \
|
||||
scsi_opcode_name(REZERO_UNIT), \
|
||||
scsi_opcode_name(REQUEST_SENSE), \
|
||||
scsi_opcode_name(FORMAT_UNIT), \
|
||||
scsi_opcode_name(READ_BLOCK_LIMITS), \
|
||||
scsi_opcode_name(REASSIGN_BLOCKS), \
|
||||
scsi_opcode_name(INITIALIZE_ELEMENT_STATUS), \
|
||||
scsi_opcode_name(READ_6), \
|
||||
scsi_opcode_name(WRITE_6), \
|
||||
scsi_opcode_name(SEEK_6), \
|
||||
scsi_opcode_name(READ_REVERSE), \
|
||||
scsi_opcode_name(WRITE_FILEMARKS), \
|
||||
scsi_opcode_name(SPACE), \
|
||||
scsi_opcode_name(INQUIRY), \
|
||||
scsi_opcode_name(RECOVER_BUFFERED_DATA), \
|
||||
scsi_opcode_name(MODE_SELECT), \
|
||||
scsi_opcode_name(RESERVE), \
|
||||
scsi_opcode_name(RELEASE), \
|
||||
scsi_opcode_name(COPY), \
|
||||
scsi_opcode_name(ERASE), \
|
||||
scsi_opcode_name(MODE_SENSE), \
|
||||
scsi_opcode_name(START_STOP), \
|
||||
scsi_opcode_name(RECEIVE_DIAGNOSTIC), \
|
||||
scsi_opcode_name(SEND_DIAGNOSTIC), \
|
||||
scsi_opcode_name(ALLOW_MEDIUM_REMOVAL), \
|
||||
scsi_opcode_name(SET_WINDOW), \
|
||||
scsi_opcode_name(READ_CAPACITY), \
|
||||
scsi_opcode_name(READ_10), \
|
||||
scsi_opcode_name(WRITE_10), \
|
||||
scsi_opcode_name(SEEK_10), \
|
||||
scsi_opcode_name(POSITION_TO_ELEMENT), \
|
||||
scsi_opcode_name(WRITE_VERIFY), \
|
||||
scsi_opcode_name(VERIFY), \
|
||||
scsi_opcode_name(SEARCH_HIGH), \
|
||||
scsi_opcode_name(SEARCH_EQUAL), \
|
||||
scsi_opcode_name(SEARCH_LOW), \
|
||||
scsi_opcode_name(SET_LIMITS), \
|
||||
scsi_opcode_name(PRE_FETCH), \
|
||||
scsi_opcode_name(READ_POSITION), \
|
||||
scsi_opcode_name(SYNCHRONIZE_CACHE), \
|
||||
scsi_opcode_name(LOCK_UNLOCK_CACHE), \
|
||||
scsi_opcode_name(READ_DEFECT_DATA), \
|
||||
scsi_opcode_name(MEDIUM_SCAN), \
|
||||
scsi_opcode_name(COMPARE), \
|
||||
scsi_opcode_name(COPY_VERIFY), \
|
||||
scsi_opcode_name(WRITE_BUFFER), \
|
||||
scsi_opcode_name(READ_BUFFER), \
|
||||
scsi_opcode_name(UPDATE_BLOCK), \
|
||||
scsi_opcode_name(READ_LONG), \
|
||||
scsi_opcode_name(WRITE_LONG), \
|
||||
scsi_opcode_name(CHANGE_DEFINITION), \
|
||||
scsi_opcode_name(WRITE_SAME), \
|
||||
scsi_opcode_name(UNMAP), \
|
||||
scsi_opcode_name(READ_TOC), \
|
||||
scsi_opcode_name(LOG_SELECT), \
|
||||
scsi_opcode_name(LOG_SENSE), \
|
||||
scsi_opcode_name(XDWRITEREAD_10), \
|
||||
scsi_opcode_name(MODE_SELECT_10), \
|
||||
scsi_opcode_name(RESERVE_10), \
|
||||
scsi_opcode_name(RELEASE_10), \
|
||||
scsi_opcode_name(MODE_SENSE_10), \
|
||||
scsi_opcode_name(PERSISTENT_RESERVE_IN), \
|
||||
scsi_opcode_name(PERSISTENT_RESERVE_OUT), \
|
||||
scsi_opcode_name(VARIABLE_LENGTH_CMD), \
|
||||
scsi_opcode_name(REPORT_LUNS), \
|
||||
scsi_opcode_name(MAINTENANCE_IN), \
|
||||
scsi_opcode_name(MAINTENANCE_OUT), \
|
||||
scsi_opcode_name(MOVE_MEDIUM), \
|
||||
scsi_opcode_name(EXCHANGE_MEDIUM), \
|
||||
scsi_opcode_name(READ_12), \
|
||||
scsi_opcode_name(WRITE_12), \
|
||||
scsi_opcode_name(WRITE_VERIFY_12), \
|
||||
scsi_opcode_name(SEARCH_HIGH_12), \
|
||||
scsi_opcode_name(SEARCH_EQUAL_12), \
|
||||
scsi_opcode_name(SEARCH_LOW_12), \
|
||||
scsi_opcode_name(READ_ELEMENT_STATUS), \
|
||||
scsi_opcode_name(SEND_VOLUME_TAG), \
|
||||
scsi_opcode_name(WRITE_LONG_2), \
|
||||
scsi_opcode_name(READ_16), \
|
||||
scsi_opcode_name(WRITE_16), \
|
||||
scsi_opcode_name(VERIFY_16), \
|
||||
scsi_opcode_name(WRITE_SAME_16), \
|
||||
scsi_opcode_name(SERVICE_ACTION_IN_16), \
|
||||
scsi_opcode_name(SAI_READ_CAPACITY_16), \
|
||||
scsi_opcode_name(SAI_GET_LBA_STATUS), \
|
||||
scsi_opcode_name(MI_REPORT_TARGET_PGS), \
|
||||
scsi_opcode_name(MO_SET_TARGET_PGS), \
|
||||
scsi_opcode_name(READ_32), \
|
||||
scsi_opcode_name(WRITE_32), \
|
||||
scsi_opcode_name(WRITE_SAME_32), \
|
||||
scsi_opcode_name(ATA_16), \
|
||||
scsi_opcode_name(ATA_12))
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)) */
|
||||
|
||||
#define show_opcode_name(val) \
|
||||
__print_symbolic(val, \
|
||||
scsi_opcode_name(TEST_UNIT_READY), \
|
||||
scsi_opcode_name(REZERO_UNIT), \
|
||||
scsi_opcode_name(REQUEST_SENSE), \
|
||||
scsi_opcode_name(FORMAT_UNIT), \
|
||||
scsi_opcode_name(READ_BLOCK_LIMITS), \
|
||||
scsi_opcode_name(REASSIGN_BLOCKS), \
|
||||
scsi_opcode_name(INITIALIZE_ELEMENT_STATUS), \
|
||||
scsi_opcode_name(READ_6), \
|
||||
scsi_opcode_name(WRITE_6), \
|
||||
scsi_opcode_name(SEEK_6), \
|
||||
scsi_opcode_name(READ_REVERSE), \
|
||||
scsi_opcode_name(WRITE_FILEMARKS), \
|
||||
scsi_opcode_name(SPACE), \
|
||||
scsi_opcode_name(INQUIRY), \
|
||||
scsi_opcode_name(RECOVER_BUFFERED_DATA), \
|
||||
scsi_opcode_name(MODE_SELECT), \
|
||||
scsi_opcode_name(RESERVE), \
|
||||
scsi_opcode_name(RELEASE), \
|
||||
scsi_opcode_name(COPY), \
|
||||
scsi_opcode_name(ERASE), \
|
||||
scsi_opcode_name(MODE_SENSE), \
|
||||
scsi_opcode_name(START_STOP), \
|
||||
scsi_opcode_name(RECEIVE_DIAGNOSTIC), \
|
||||
scsi_opcode_name(SEND_DIAGNOSTIC), \
|
||||
scsi_opcode_name(ALLOW_MEDIUM_REMOVAL), \
|
||||
scsi_opcode_name(SET_WINDOW), \
|
||||
scsi_opcode_name(READ_CAPACITY), \
|
||||
scsi_opcode_name(READ_10), \
|
||||
scsi_opcode_name(WRITE_10), \
|
||||
scsi_opcode_name(SEEK_10), \
|
||||
scsi_opcode_name(POSITION_TO_ELEMENT), \
|
||||
scsi_opcode_name(WRITE_VERIFY), \
|
||||
scsi_opcode_name(VERIFY), \
|
||||
scsi_opcode_name(SEARCH_HIGH), \
|
||||
scsi_opcode_name(SEARCH_EQUAL), \
|
||||
scsi_opcode_name(SEARCH_LOW), \
|
||||
scsi_opcode_name(SET_LIMITS), \
|
||||
scsi_opcode_name(PRE_FETCH), \
|
||||
scsi_opcode_name(READ_POSITION), \
|
||||
scsi_opcode_name(SYNCHRONIZE_CACHE), \
|
||||
scsi_opcode_name(LOCK_UNLOCK_CACHE), \
|
||||
scsi_opcode_name(READ_DEFECT_DATA), \
|
||||
scsi_opcode_name(MEDIUM_SCAN), \
|
||||
scsi_opcode_name(COMPARE), \
|
||||
scsi_opcode_name(COPY_VERIFY), \
|
||||
scsi_opcode_name(WRITE_BUFFER), \
|
||||
scsi_opcode_name(READ_BUFFER), \
|
||||
scsi_opcode_name(UPDATE_BLOCK), \
|
||||
scsi_opcode_name(READ_LONG), \
|
||||
scsi_opcode_name(WRITE_LONG), \
|
||||
scsi_opcode_name(CHANGE_DEFINITION), \
|
||||
scsi_opcode_name(WRITE_SAME), \
|
||||
scsi_opcode_name(UNMAP), \
|
||||
scsi_opcode_name(READ_TOC), \
|
||||
scsi_opcode_name(LOG_SELECT), \
|
||||
scsi_opcode_name(LOG_SENSE), \
|
||||
scsi_opcode_name(XDWRITEREAD_10), \
|
||||
scsi_opcode_name(MODE_SELECT_10), \
|
||||
scsi_opcode_name(RESERVE_10), \
|
||||
scsi_opcode_name(RELEASE_10), \
|
||||
scsi_opcode_name(MODE_SENSE_10), \
|
||||
scsi_opcode_name(PERSISTENT_RESERVE_IN), \
|
||||
scsi_opcode_name(PERSISTENT_RESERVE_OUT), \
|
||||
scsi_opcode_name(VARIABLE_LENGTH_CMD), \
|
||||
scsi_opcode_name(REPORT_LUNS), \
|
||||
scsi_opcode_name(MAINTENANCE_IN), \
|
||||
scsi_opcode_name(MAINTENANCE_OUT), \
|
||||
scsi_opcode_name(MOVE_MEDIUM), \
|
||||
scsi_opcode_name(EXCHANGE_MEDIUM), \
|
||||
scsi_opcode_name(READ_12), \
|
||||
scsi_opcode_name(WRITE_12), \
|
||||
scsi_opcode_name(WRITE_VERIFY_12), \
|
||||
scsi_opcode_name(SEARCH_HIGH_12), \
|
||||
scsi_opcode_name(SEARCH_EQUAL_12), \
|
||||
scsi_opcode_name(SEARCH_LOW_12), \
|
||||
scsi_opcode_name(READ_ELEMENT_STATUS), \
|
||||
scsi_opcode_name(SEND_VOLUME_TAG), \
|
||||
scsi_opcode_name(WRITE_LONG_2), \
|
||||
scsi_opcode_name(READ_16), \
|
||||
scsi_opcode_name(WRITE_16), \
|
||||
scsi_opcode_name(VERIFY_16), \
|
||||
scsi_opcode_name(WRITE_SAME_16), \
|
||||
scsi_opcode_name(SERVICE_ACTION_IN), \
|
||||
scsi_opcode_name(SAI_READ_CAPACITY_16), \
|
||||
scsi_opcode_name(SAI_GET_LBA_STATUS), \
|
||||
scsi_opcode_name(MI_REPORT_TARGET_PGS), \
|
||||
scsi_opcode_name(MO_SET_TARGET_PGS), \
|
||||
scsi_opcode_name(READ_32), \
|
||||
scsi_opcode_name(WRITE_32), \
|
||||
scsi_opcode_name(WRITE_SAME_32), \
|
||||
scsi_opcode_name(ATA_16), \
|
||||
scsi_opcode_name(ATA_12))
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)) */
|
||||
|
||||
#define scsi_hostbyte_name(result) { result, #result }
|
||||
#define show_hostbyte_name(val) \
|
||||
__print_symbolic(val, \
|
||||
scsi_hostbyte_name(DID_OK), \
|
||||
scsi_hostbyte_name(DID_NO_CONNECT), \
|
||||
scsi_hostbyte_name(DID_BUS_BUSY), \
|
||||
scsi_hostbyte_name(DID_TIME_OUT), \
|
||||
scsi_hostbyte_name(DID_BAD_TARGET), \
|
||||
scsi_hostbyte_name(DID_ABORT), \
|
||||
scsi_hostbyte_name(DID_PARITY), \
|
||||
scsi_hostbyte_name(DID_ERROR), \
|
||||
scsi_hostbyte_name(DID_RESET), \
|
||||
scsi_hostbyte_name(DID_BAD_INTR), \
|
||||
scsi_hostbyte_name(DID_PASSTHROUGH), \
|
||||
scsi_hostbyte_name(DID_SOFT_ERROR), \
|
||||
scsi_hostbyte_name(DID_IMM_RETRY), \
|
||||
scsi_hostbyte_name(DID_REQUEUE), \
|
||||
scsi_hostbyte_name(DID_TRANSPORT_DISRUPTED), \
|
||||
scsi_hostbyte_name(DID_TRANSPORT_FAILFAST))
|
||||
|
||||
#define scsi_driverbyte_name(result) { result, #result }
|
||||
#define show_driverbyte_name(val) \
|
||||
__print_symbolic(val, \
|
||||
scsi_driverbyte_name(DRIVER_OK), \
|
||||
scsi_driverbyte_name(DRIVER_BUSY), \
|
||||
scsi_driverbyte_name(DRIVER_SOFT), \
|
||||
scsi_driverbyte_name(DRIVER_MEDIA), \
|
||||
scsi_driverbyte_name(DRIVER_ERROR), \
|
||||
scsi_driverbyte_name(DRIVER_INVALID), \
|
||||
scsi_driverbyte_name(DRIVER_TIMEOUT), \
|
||||
scsi_driverbyte_name(DRIVER_HARD), \
|
||||
scsi_driverbyte_name(DRIVER_SENSE))
|
||||
|
||||
#define scsi_msgbyte_name(result) { result, #result }
|
||||
#define show_msgbyte_name(val) \
|
||||
__print_symbolic(val, \
|
||||
scsi_msgbyte_name(COMMAND_COMPLETE), \
|
||||
scsi_msgbyte_name(EXTENDED_MESSAGE), \
|
||||
scsi_msgbyte_name(SAVE_POINTERS), \
|
||||
scsi_msgbyte_name(RESTORE_POINTERS), \
|
||||
scsi_msgbyte_name(DISCONNECT), \
|
||||
scsi_msgbyte_name(INITIATOR_ERROR), \
|
||||
scsi_msgbyte_name(ABORT_TASK_SET), \
|
||||
scsi_msgbyte_name(MESSAGE_REJECT), \
|
||||
scsi_msgbyte_name(NOP), \
|
||||
scsi_msgbyte_name(MSG_PARITY_ERROR), \
|
||||
scsi_msgbyte_name(LINKED_CMD_COMPLETE), \
|
||||
scsi_msgbyte_name(LINKED_FLG_CMD_COMPLETE), \
|
||||
scsi_msgbyte_name(TARGET_RESET), \
|
||||
scsi_msgbyte_name(ABORT_TASK), \
|
||||
scsi_msgbyte_name(CLEAR_TASK_SET), \
|
||||
scsi_msgbyte_name(INITIATE_RECOVERY), \
|
||||
scsi_msgbyte_name(RELEASE_RECOVERY), \
|
||||
scsi_msgbyte_name(CLEAR_ACA), \
|
||||
scsi_msgbyte_name(LOGICAL_UNIT_RESET), \
|
||||
scsi_msgbyte_name(SIMPLE_QUEUE_TAG), \
|
||||
scsi_msgbyte_name(HEAD_OF_QUEUE_TAG), \
|
||||
scsi_msgbyte_name(ORDERED_QUEUE_TAG), \
|
||||
scsi_msgbyte_name(IGNORE_WIDE_RESIDUE), \
|
||||
scsi_msgbyte_name(ACA), \
|
||||
scsi_msgbyte_name(QAS_REQUEST), \
|
||||
scsi_msgbyte_name(BUS_DEVICE_RESET), \
|
||||
scsi_msgbyte_name(ABORT))
|
||||
|
||||
#define scsi_statusbyte_name(result) { result, #result }
|
||||
#define show_statusbyte_name(val) \
|
||||
__print_symbolic(val, \
|
||||
scsi_statusbyte_name(SAM_STAT_GOOD), \
|
||||
scsi_statusbyte_name(SAM_STAT_CHECK_CONDITION), \
|
||||
scsi_statusbyte_name(SAM_STAT_CONDITION_MET), \
|
||||
scsi_statusbyte_name(SAM_STAT_BUSY), \
|
||||
scsi_statusbyte_name(SAM_STAT_INTERMEDIATE), \
|
||||
scsi_statusbyte_name(SAM_STAT_INTERMEDIATE_CONDITION_MET), \
|
||||
scsi_statusbyte_name(SAM_STAT_RESERVATION_CONFLICT), \
|
||||
scsi_statusbyte_name(SAM_STAT_COMMAND_TERMINATED), \
|
||||
scsi_statusbyte_name(SAM_STAT_TASK_SET_FULL), \
|
||||
scsi_statusbyte_name(SAM_STAT_ACA_ACTIVE), \
|
||||
scsi_statusbyte_name(SAM_STAT_TASK_ABORTED))
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
|
||||
#define scsi_prot_op_name(result) { result, #result }
|
||||
#define show_prot_op_name(val) \
|
||||
__print_symbolic(val, \
|
||||
scsi_prot_op_name(SCSI_PROT_NORMAL), \
|
||||
scsi_prot_op_name(SCSI_PROT_READ_INSERT), \
|
||||
scsi_prot_op_name(SCSI_PROT_WRITE_STRIP), \
|
||||
scsi_prot_op_name(SCSI_PROT_READ_STRIP), \
|
||||
scsi_prot_op_name(SCSI_PROT_WRITE_INSERT), \
|
||||
scsi_prot_op_name(SCSI_PROT_READ_PASS), \
|
||||
scsi_prot_op_name(SCSI_PROT_WRITE_PASS))
|
||||
#endif
|
||||
|
||||
const char *scsi_trace_parse_cdb(struct trace_seq*, unsigned char*, int);
|
||||
#define __parse_cdb(cdb, len) scsi_trace_parse_cdb(p, cdb, len)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(scsi_dispatch_cmd_start,
|
||||
|
||||
TP_PROTO(struct scsi_cmnd *cmd),
|
||||
|
||||
TP_ARGS(cmd),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, host_no, cmd->device->host->host_no)
|
||||
ctf_integer(unsigned int, channel, cmd->device->channel)
|
||||
ctf_integer(unsigned int, id, cmd->device->id)
|
||||
ctf_integer(unsigned int, lun, cmd->device->lun)
|
||||
ctf_integer(unsigned int, opcode, cmd->cmnd[0])
|
||||
ctf_integer(unsigned int, cmd_len, cmd->cmd_len)
|
||||
ctf_integer(unsigned int, data_sglen, scsi_sg_count(cmd))
|
||||
ctf_integer(unsigned int, prot_sglen, scsi_prot_sg_count(cmd))
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
|
||||
ctf_integer(unsigned char, prot_op, scsi_get_prot_op(cmd))
|
||||
#endif
|
||||
ctf_sequence_hex(unsigned char, cmnd, cmd->cmnd, u32, cmd->cmd_len)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(scsi_dispatch_cmd_error,
|
||||
|
||||
TP_PROTO(struct scsi_cmnd *cmd, int rtn),
|
||||
|
||||
TP_ARGS(cmd, rtn),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, host_no, cmd->device->host->host_no)
|
||||
ctf_integer(unsigned int, channel, cmd->device->channel)
|
||||
ctf_integer(unsigned int, id, cmd->device->id)
|
||||
ctf_integer(unsigned int, lun, cmd->device->lun)
|
||||
ctf_integer(int, rtn, rtn)
|
||||
ctf_integer(unsigned int, opcode, cmd->cmnd[0])
|
||||
ctf_integer(unsigned int, cmd_len, cmd->cmd_len)
|
||||
ctf_integer(unsigned int, data_sglen, scsi_sg_count(cmd))
|
||||
ctf_integer(unsigned int, prot_sglen, scsi_prot_sg_count(cmd))
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
|
||||
ctf_integer(unsigned char, prot_op, scsi_get_prot_op(cmd))
|
||||
#endif
|
||||
ctf_sequence_hex(unsigned char, cmnd, cmd->cmnd, u32, cmd->cmd_len)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(scsi_cmd_done_timeout_template,
|
||||
|
||||
TP_PROTO(struct scsi_cmnd *cmd),
|
||||
|
||||
TP_ARGS(cmd),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, host_no, cmd->device->host->host_no)
|
||||
ctf_integer(unsigned int, channel, cmd->device->channel)
|
||||
ctf_integer(unsigned int, id, cmd->device->id)
|
||||
ctf_integer(unsigned int, lun, cmd->device->lun)
|
||||
ctf_integer(int, result, cmd->result)
|
||||
ctf_integer(unsigned int, opcode, cmd->cmnd[0])
|
||||
ctf_integer(unsigned int, cmd_len, cmd->cmd_len)
|
||||
ctf_integer(unsigned int, data_sglen, scsi_sg_count(cmd))
|
||||
ctf_integer(unsigned int, prot_sglen, scsi_prot_sg_count(cmd))
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
|
||||
ctf_integer(unsigned char, prot_op, scsi_get_prot_op(cmd))
|
||||
#endif
|
||||
ctf_sequence_hex(unsigned char, cmnd, cmd->cmnd, u32, cmd->cmd_len)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_done,
|
||||
TP_PROTO(struct scsi_cmnd *cmd),
|
||||
TP_ARGS(cmd))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_timeout,
|
||||
TP_PROTO(struct scsi_cmnd *cmd),
|
||||
TP_ARGS(cmd))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(scsi_eh_wakeup,
|
||||
|
||||
TP_PROTO(struct Scsi_Host *shost),
|
||||
|
||||
TP_ARGS(shost),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, host_no, shost->host_no)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* LTTNG_TRACE_SCSI_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,202 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM signal
|
||||
|
||||
#if !defined(LTTNG_TRACE_SIGNAL_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_SIGNAL_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#ifndef _TRACE_SIGNAL_DEF
|
||||
#define _TRACE_SIGNAL_DEF
|
||||
#include <linux/signal.h>
|
||||
#include <linux/sched.h>
|
||||
#undef LTTNG_FIELDS_SIGINFO
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
|
||||
#define LTTNG_FIELDS_SIGINFO(info) \
|
||||
ctf_integer(int, errno, \
|
||||
(info == SEND_SIG_NOINFO || info == SEND_SIG_PRIV) ? \
|
||||
0 : \
|
||||
info->si_errno) \
|
||||
ctf_integer(int, code, \
|
||||
(info == SEND_SIG_NOINFO) ? \
|
||||
SI_USER : \
|
||||
((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code))
|
||||
#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) */
|
||||
#define LTTNG_FIELDS_SIGINFO(info) \
|
||||
ctf_integer(int, errno, \
|
||||
(info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED || info == SEND_SIG_PRIV) ? \
|
||||
0 : \
|
||||
info->si_errno) \
|
||||
ctf_integer(int, code, \
|
||||
(info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED) ? \
|
||||
SI_USER : \
|
||||
((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code))
|
||||
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) */
|
||||
#endif /* _TRACE_SIGNAL_DEF */
|
||||
|
||||
/**
|
||||
* signal_generate - called when a signal is generated
|
||||
* @sig: signal number
|
||||
* @info: pointer to struct siginfo
|
||||
* @task: pointer to struct task_struct
|
||||
*
|
||||
* Current process sends a 'sig' signal to 'task' process with
|
||||
* 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV,
|
||||
* 'info' is not a pointer and you can't access its field. Instead,
|
||||
* SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV
|
||||
* means that si_code is SI_KERNEL.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT(signal_generate,
|
||||
|
||||
TP_PROTO(int sig, struct kernel_siginfo *info, struct task_struct *task,
|
||||
int group, int result),
|
||||
|
||||
TP_ARGS(sig, info, task, group, result),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, sig, sig)
|
||||
LTTNG_FIELDS_SIGINFO(info)
|
||||
ctf_array_text(char, comm, task->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, pid, task->pid)
|
||||
ctf_integer(int, group, group)
|
||||
ctf_integer(int, result, result)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
|
||||
LTTNG_TRACEPOINT_EVENT(signal_generate,
|
||||
|
||||
TP_PROTO(int sig, struct siginfo *info, struct task_struct *task,
|
||||
int group, int result),
|
||||
|
||||
TP_ARGS(sig, info, task, group, result),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, sig, sig)
|
||||
LTTNG_FIELDS_SIGINFO(info)
|
||||
ctf_array_text(char, comm, task->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, pid, task->pid)
|
||||
ctf_integer(int, group, group)
|
||||
ctf_integer(int, result, result)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(signal_generate,
|
||||
|
||||
TP_PROTO(int sig, struct siginfo *info, struct task_struct *task),
|
||||
|
||||
TP_ARGS(sig, info, task),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, sig, sig)
|
||||
LTTNG_FIELDS_SIGINFO(info)
|
||||
ctf_array_text(char, comm, task->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, pid, task->pid)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* signal_deliver - called when a signal is delivered
|
||||
* @sig: signal number
|
||||
* @info: pointer to struct siginfo
|
||||
* @ka: pointer to struct k_sigaction
|
||||
*
|
||||
* A 'sig' signal is delivered to current process with 'info' siginfo,
|
||||
* and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or
|
||||
* SIG_DFL.
|
||||
* Note that some signals reported by signal_generate tracepoint can be
|
||||
* lost, ignored or modified (by debugger) before hitting this tracepoint.
|
||||
* This means, this can show which signals are actually delivered, but
|
||||
* matching generated signals and delivered signals may not be correct.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT(signal_deliver,
|
||||
|
||||
TP_PROTO(int sig, struct kernel_siginfo *info, struct k_sigaction *ka),
|
||||
|
||||
TP_ARGS(sig, info, ka),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, sig, sig)
|
||||
LTTNG_FIELDS_SIGINFO(info)
|
||||
ctf_integer(unsigned long, sa_handler, (unsigned long) ka->sa.sa_handler)
|
||||
ctf_integer(unsigned long, sa_flags, ka->sa.sa_flags)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT(signal_deliver,
|
||||
|
||||
TP_PROTO(int sig, struct siginfo *info, struct k_sigaction *ka),
|
||||
|
||||
TP_ARGS(sig, info, ka),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, sig, sig)
|
||||
LTTNG_FIELDS_SIGINFO(info)
|
||||
ctf_integer(unsigned long, sa_handler, (unsigned long) ka->sa.sa_handler)
|
||||
ctf_integer(unsigned long, sa_flags, ka->sa.sa_flags)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(signal_queue_overflow,
|
||||
|
||||
TP_PROTO(int sig, int group, struct siginfo *info),
|
||||
|
||||
TP_ARGS(sig, group, info),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, sig, sig)
|
||||
ctf_integer(int, group, group)
|
||||
LTTNG_FIELDS_SIGINFO(info)
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* signal_overflow_fail - called when signal queue is overflow
|
||||
* @sig: signal number
|
||||
* @group: signal to process group or not (bool)
|
||||
* @info: pointer to struct siginfo
|
||||
*
|
||||
* Kernel fails to generate 'sig' signal with 'info' siginfo, because
|
||||
* siginfo queue is overflow, and the signal is dropped.
|
||||
* 'group' is not 0 if the signal will be sent to a process group.
|
||||
* 'sig' is always one of RT signals.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(signal_queue_overflow, signal_overflow_fail,
|
||||
|
||||
TP_PROTO(int sig, int group, struct siginfo *info),
|
||||
|
||||
TP_ARGS(sig, group, info)
|
||||
)
|
||||
|
||||
/**
|
||||
* signal_lose_info - called when siginfo is lost
|
||||
* @sig: signal number
|
||||
* @group: signal to process group or not (bool)
|
||||
* @info: pointer to struct siginfo
|
||||
*
|
||||
* Kernel generates 'sig' signal but loses 'info' siginfo, because siginfo
|
||||
* queue is overflow.
|
||||
* 'group' is not 0 if the signal will be sent to a process group.
|
||||
* 'sig' is always one of non-RT signals.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(signal_queue_overflow, signal_lose_info,
|
||||
|
||||
TP_PROTO(int sig, int group, struct siginfo *info),
|
||||
|
||||
TP_ARGS(sig, group, info)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_SIGNAL_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,63 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM skb
|
||||
|
||||
#if !defined(LTTNG_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_SKB_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
/*
|
||||
* Tracepoint for free an sk_buff:
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb,
|
||||
|
||||
skb_kfree,
|
||||
|
||||
TP_PROTO(struct sk_buff *skb, void *location),
|
||||
|
||||
TP_ARGS(skb, location),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, skbaddr, skb)
|
||||
ctf_integer_hex(void *, location, location)
|
||||
ctf_integer_network(unsigned short, protocol, skb->protocol)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(consume_skb,
|
||||
|
||||
skb_consume,
|
||||
|
||||
TP_PROTO(struct sk_buff *skb),
|
||||
|
||||
TP_ARGS(skb),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, skbaddr, skb)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
|
||||
LTTNG_TRACEPOINT_EVENT(skb_copy_datagram_iovec,
|
||||
|
||||
TP_PROTO(const struct sk_buff *skb, int len),
|
||||
|
||||
TP_ARGS(skb, len),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(const void *, skbaddr, skb)
|
||||
ctf_integer(int, len, len)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_SKB_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,85 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM sock
|
||||
|
||||
#if !defined(LTTNG_TRACE_SOCK_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_SOCK_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/version.h>
|
||||
#include <net/sock.h>
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(sock_rcvqueue_full,
|
||||
|
||||
TP_PROTO(struct sock *sk, struct sk_buff *skb),
|
||||
|
||||
TP_ARGS(sk, skb),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc))
|
||||
ctf_integer(unsigned int, truesize, skb->truesize)
|
||||
ctf_integer(int, sk_rcvbuf, sk->sk_rcvbuf)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit,
|
||||
|
||||
TP_PROTO(struct sock *sk, struct proto *prot, long allocated, int kind),
|
||||
|
||||
TP_ARGS(sk, prot, allocated, kind),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, prot->name)
|
||||
ctf_array(long, sysctl_mem, prot->sysctl_mem, 3)
|
||||
ctf_integer(long, allocated, allocated)
|
||||
ctf_integer(int, sysctl_rmem, sk_get_rmem0(sk, prot))
|
||||
ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc))
|
||||
ctf_integer(int, sysctl_wmem, sk_get_wmem0(sk, prot))
|
||||
ctf_integer(int, wmem_alloc, refcount_read(&sk->sk_wmem_alloc))
|
||||
ctf_integer(int, wmem_queued, sk->sk_wmem_queued)
|
||||
ctf_integer(int, kind, kind)
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit,
|
||||
|
||||
TP_PROTO(struct sock *sk, struct proto *prot, long allocated),
|
||||
|
||||
TP_ARGS(sk, prot, allocated),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, prot->name)
|
||||
ctf_array(long, sysctl_mem, prot->sysctl_mem, 3)
|
||||
ctf_integer(long, allocated, allocated)
|
||||
ctf_integer(int, sysctl_rmem, sk_get_rmem0(sk, prot))
|
||||
ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc))
|
||||
)
|
||||
)
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit,
|
||||
|
||||
TP_PROTO(struct sock *sk, struct proto *prot, long allocated),
|
||||
|
||||
TP_ARGS(sk, prot, allocated),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_string(name, prot->name)
|
||||
ctf_array(long, sysctl_mem, prot->sysctl_mem, 3)
|
||||
ctf_integer(long, allocated, allocated)
|
||||
ctf_integer(int, sysctl_rmem, prot->sysctl_rmem[0])
|
||||
ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc))
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) */
|
||||
|
||||
#endif /* LTTNG_TRACE_SOCK_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,397 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM timer
|
||||
|
||||
#if !defined(LTTNG_TRACE_TIMER_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_TIMER_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
|
||||
#ifndef _TRACE_TIMER_DEF_
|
||||
#define _TRACE_TIMER_DEF_
|
||||
#include <linux/hrtimer.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
struct timer_list;
|
||||
|
||||
#endif /* _TRACE_TIMER_DEF_ */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
|
||||
#define lttng_ktime_get_tv64(kt) (kt)
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
|
||||
#define lttng_ktime_get_tv64(kt) ((kt).tv64)
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(timer_class,
|
||||
|
||||
TP_PROTO(struct timer_list *timer),
|
||||
|
||||
TP_ARGS(timer),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, timer, timer)
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* timer_init - called when the timer is initialized
|
||||
* @timer: pointer to struct timer_list
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init,
|
||||
|
||||
TP_PROTO(struct timer_list *timer),
|
||||
|
||||
TP_ARGS(timer)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) || \
|
||||
LTTNG_RHEL_KERNEL_RANGE(3,10,0,957,0,0, 3,11,0,0,0,0))
|
||||
/**
|
||||
* timer_start - called when the timer is started
|
||||
* @timer: pointer to struct timer_list
|
||||
* @expires: the timers expiry time
|
||||
* @flags: the timers expiry time
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(timer_start,
|
||||
|
||||
TP_PROTO(struct timer_list *timer, unsigned long expires,
|
||||
unsigned int flags),
|
||||
|
||||
TP_ARGS(timer, expires, flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, timer, timer)
|
||||
ctf_integer_hex(void *, function, timer->function)
|
||||
ctf_integer(unsigned long, expires, expires)
|
||||
ctf_integer(unsigned long, now, jiffies)
|
||||
ctf_integer(unsigned int, flags, flags)
|
||||
)
|
||||
)
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
|
||||
/**
|
||||
* timer_start - called when the timer is started
|
||||
* @timer: pointer to struct timer_list
|
||||
* @expires: the timers expiry time
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(timer_start,
|
||||
|
||||
TP_PROTO(struct timer_list *timer, unsigned long expires),
|
||||
|
||||
TP_ARGS(timer, expires),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, timer, timer)
|
||||
ctf_integer_hex(void *, function, timer->function)
|
||||
ctf_integer(unsigned long, expires, expires)
|
||||
ctf_integer(unsigned long, now, jiffies)
|
||||
)
|
||||
)
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
|
||||
/**
|
||||
* timer_expire_entry - called immediately before the timer callback
|
||||
* @timer: pointer to struct timer_list
|
||||
*
|
||||
* Allows to determine the timer latency.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(timer_expire_entry,
|
||||
|
||||
TP_PROTO(struct timer_list *timer, unsigned long baseclk),
|
||||
|
||||
TP_ARGS(timer, baseclk),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, timer, timer)
|
||||
ctf_integer(unsigned long, now, jiffies)
|
||||
ctf_integer_hex(void *, function, timer->function)
|
||||
ctf_integer(unsigned long, baseclk, baseclk)
|
||||
)
|
||||
)
|
||||
#else
|
||||
/**
|
||||
* timer_expire_entry - called immediately before the timer callback
|
||||
* @timer: pointer to struct timer_list
|
||||
*
|
||||
* Allows to determine the timer latency.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(timer_expire_entry,
|
||||
|
||||
TP_PROTO(struct timer_list *timer),
|
||||
|
||||
TP_ARGS(timer),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, timer, timer)
|
||||
ctf_integer(unsigned long, now, jiffies)
|
||||
ctf_integer_hex(void *, function, timer->function)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* timer_expire_exit - called immediately after the timer callback returns
|
||||
* @timer: pointer to struct timer_list
|
||||
*
|
||||
* When used in combination with the timer_expire_entry tracepoint we can
|
||||
* determine the runtime of the timer callback function.
|
||||
*
|
||||
* NOTE: Do NOT derefernce timer in TP_fast_assign. The pointer might
|
||||
* be invalid. We solely track the pointer.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_expire_exit,
|
||||
|
||||
TP_PROTO(struct timer_list *timer),
|
||||
|
||||
TP_ARGS(timer)
|
||||
)
|
||||
|
||||
/**
|
||||
* timer_cancel - called when the timer is canceled
|
||||
* @timer: pointer to struct timer_list
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_cancel,
|
||||
|
||||
TP_PROTO(struct timer_list *timer),
|
||||
|
||||
TP_ARGS(timer)
|
||||
)
|
||||
|
||||
/**
|
||||
* hrtimer_init - called when the hrtimer is initialized
|
||||
* @timer: pointer to struct hrtimer
|
||||
* @clockid: the hrtimers clock
|
||||
* @mode: the hrtimers mode
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_init,
|
||||
|
||||
timer_hrtimer_init,
|
||||
|
||||
TP_PROTO(struct hrtimer *hrtimer, clockid_t clockid,
|
||||
enum hrtimer_mode mode),
|
||||
|
||||
TP_ARGS(hrtimer, clockid, mode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, hrtimer, hrtimer)
|
||||
ctf_integer(clockid_t, clockid, clockid)
|
||||
ctf_integer(enum hrtimer_mode, mode, mode)
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* hrtimer_start - called when the hrtimer is started
|
||||
* @timer: pointer to struct hrtimer
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0) || \
|
||||
LTTNG_RT_KERNEL_RANGE(4,14,0,0, 4,15,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start,
|
||||
|
||||
timer_hrtimer_start,
|
||||
|
||||
TP_PROTO(struct hrtimer *hrtimer, enum hrtimer_mode mode),
|
||||
|
||||
TP_ARGS(hrtimer, mode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, hrtimer, hrtimer)
|
||||
ctf_integer_hex(void *, function, hrtimer->function)
|
||||
ctf_integer(s64, expires,
|
||||
lttng_ktime_get_tv64(hrtimer_get_expires(hrtimer)))
|
||||
ctf_integer(s64, softexpires,
|
||||
lttng_ktime_get_tv64(hrtimer_get_softexpires(hrtimer)))
|
||||
ctf_integer(enum hrtimer_mode, mode, mode)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start,
|
||||
|
||||
timer_hrtimer_start,
|
||||
|
||||
TP_PROTO(struct hrtimer *hrtimer),
|
||||
|
||||
TP_ARGS(hrtimer),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, hrtimer, hrtimer)
|
||||
ctf_integer_hex(void *, function, hrtimer->function)
|
||||
ctf_integer(s64, expires,
|
||||
lttng_ktime_get_tv64(hrtimer_get_expires(hrtimer)))
|
||||
ctf_integer(s64, softexpires,
|
||||
lttng_ktime_get_tv64(hrtimer_get_softexpires(hrtimer)))
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* htimmer_expire_entry - called immediately before the hrtimer callback
|
||||
* @timer: pointer to struct hrtimer
|
||||
* @now: pointer to variable which contains current time of the
|
||||
* timers base.
|
||||
*
|
||||
* Allows to determine the timer latency.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_expire_entry,
|
||||
|
||||
timer_hrtimer_expire_entry,
|
||||
|
||||
TP_PROTO(struct hrtimer *hrtimer, ktime_t *now),
|
||||
|
||||
TP_ARGS(hrtimer, now),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, hrtimer, hrtimer)
|
||||
ctf_integer(s64, now, lttng_ktime_get_tv64(*now))
|
||||
ctf_integer_hex(void *, function, hrtimer->function)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(timer_hrtimer_class,
|
||||
|
||||
TP_PROTO(struct hrtimer *hrtimer),
|
||||
|
||||
TP_ARGS(hrtimer),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, hrtimer, hrtimer)
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* hrtimer_expire_exit - called immediately after the hrtimer callback returns
|
||||
* @timer: pointer to struct hrtimer
|
||||
*
|
||||
* When used in combination with the hrtimer_expire_entry tracepoint we can
|
||||
* determine the runtime of the callback function.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(timer_hrtimer_class, hrtimer_expire_exit,
|
||||
|
||||
timer_hrtimer_expire_exit,
|
||||
|
||||
TP_PROTO(struct hrtimer *hrtimer),
|
||||
|
||||
TP_ARGS(hrtimer)
|
||||
)
|
||||
|
||||
/**
|
||||
* hrtimer_cancel - called when the hrtimer is canceled
|
||||
* @hrtimer: pointer to struct hrtimer
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(timer_hrtimer_class, hrtimer_cancel,
|
||||
|
||||
timer_hrtimer_cancel,
|
||||
|
||||
TP_PROTO(struct hrtimer *hrtimer),
|
||||
|
||||
TP_ARGS(hrtimer)
|
||||
)
|
||||
|
||||
/**
|
||||
* itimer_state - called when itimer is started or canceled
|
||||
* @which: name of the interval timer
|
||||
* @value: the itimers value, itimer is canceled if value->it_value is
|
||||
* zero, otherwise it is started
|
||||
* @expires: the itimers expiry time
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(itimer_state,
|
||||
|
||||
timer_itimer_state,
|
||||
|
||||
TP_PROTO(int which, const struct itimerspec64 *const value,
|
||||
unsigned long long expires),
|
||||
|
||||
TP_ARGS(which, value, expires),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, which, which)
|
||||
ctf_integer(unsigned long long, expires, expires)
|
||||
ctf_integer(long, value_sec, value->it_value.tv_sec)
|
||||
ctf_integer(long, value_nsec, value->it_value.tv_nsec)
|
||||
ctf_integer(long, interval_sec, value->it_interval.tv_sec)
|
||||
ctf_integer(long, interval_nsec, value->it_interval.tv_nsec)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(itimer_state,
|
||||
|
||||
timer_itimer_state,
|
||||
|
||||
TP_PROTO(int which, const struct itimerval *const value,
|
||||
unsigned long long expires),
|
||||
|
||||
TP_ARGS(which, value, expires),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, which, which)
|
||||
ctf_integer(unsigned long long, expires, expires)
|
||||
ctf_integer(long, value_sec, value->it_value.tv_sec)
|
||||
ctf_integer(long, value_usec, value->it_value.tv_usec)
|
||||
ctf_integer(long, interval_sec, value->it_interval.tv_sec)
|
||||
ctf_integer(long, interval_usec, value->it_interval.tv_usec)
|
||||
)
|
||||
)
|
||||
#else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(itimer_state,
|
||||
|
||||
timer_itimer_state,
|
||||
|
||||
TP_PROTO(int which, const struct itimerval *const value,
|
||||
cputime_t expires),
|
||||
|
||||
TP_ARGS(which, value, expires),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, which, which)
|
||||
ctf_integer(cputime_t, expires, expires)
|
||||
ctf_integer(long, value_sec, value->it_value.tv_sec)
|
||||
ctf_integer(long, value_usec, value->it_value.tv_usec)
|
||||
ctf_integer(long, interval_sec, value->it_interval.tv_sec)
|
||||
ctf_integer(long, interval_usec, value->it_interval.tv_usec)
|
||||
)
|
||||
)
|
||||
#endif /* #else (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
|
||||
|
||||
/**
|
||||
* itimer_expire - called when itimer expires
|
||||
* @which: type of the interval timer
|
||||
* @pid: pid of the process which owns the timer
|
||||
* @now: current time, used to calculate the latency of itimer
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire,
|
||||
|
||||
timer_itimer_expire,
|
||||
|
||||
TP_PROTO(int which, struct pid *pid, unsigned long long now),
|
||||
|
||||
TP_ARGS(which, pid, now),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int , which, which)
|
||||
ctf_integer(pid_t, pid, pid_nr(pid))
|
||||
ctf_integer(unsigned long long, now, now)
|
||||
)
|
||||
)
|
||||
#else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire,
|
||||
|
||||
timer_itimer_expire,
|
||||
|
||||
TP_PROTO(int which, struct pid *pid, cputime_t now),
|
||||
|
||||
TP_ARGS(which, pid, now),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int , which, which)
|
||||
ctf_integer(pid_t, pid, pid_nr(pid))
|
||||
ctf_integer(cputime_t, now, now)
|
||||
)
|
||||
)
|
||||
#endif /* #else (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
|
||||
|
||||
#endif /* LTTNG_TRACE_TIMER_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,26 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM udp
|
||||
|
||||
#if !defined(LTTNG_TRACE_UDP_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_UDP_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/udp.h>
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(udp_fail_queue_rcv_skb,
|
||||
|
||||
TP_PROTO(int rc, struct sock *sk),
|
||||
|
||||
TP_ARGS(rc, sk),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, rc, rc)
|
||||
ctf_integer(__u16, lport, inet_sk(sk)->inet_num)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* LTTNG_TRACE_UDP_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,82 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM v4l2
|
||||
|
||||
#if !defined(LTTNG_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_V4L2_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(v4l2_class,
|
||||
|
||||
TP_PROTO(int minor, struct v4l2_buffer *buf),
|
||||
|
||||
TP_ARGS(minor, buf),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, minor, minor)
|
||||
ctf_integer(u32, index, buf->index)
|
||||
ctf_integer(u32, type, buf->type)
|
||||
ctf_integer(u32, bytesused, buf->bytesused)
|
||||
ctf_integer(u32, flags, buf->flags)
|
||||
ctf_integer(u32, field, buf->field)
|
||||
ctf_integer(s64, timestamp, v4l2_buffer_get_timestamp(buf))
|
||||
ctf_integer(u32, timecode_type, buf->timecode.type)
|
||||
ctf_integer(u32, timecode_flags, buf->timecode.flags)
|
||||
ctf_integer(u8, timecode_frames, buf->timecode.frames)
|
||||
ctf_integer(u8, timecode_seconds, buf->timecode.seconds)
|
||||
ctf_integer(u8, timecode_minutes, buf->timecode.minutes)
|
||||
ctf_integer(u8, timecode_hours, buf->timecode.hours)
|
||||
ctf_array(u8, timecode_userbits, buf->timecode.userbits, 4)
|
||||
ctf_integer(u32, sequence, buf->sequence)
|
||||
)
|
||||
)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(v4l2_class,
|
||||
|
||||
TP_PROTO(int minor, struct v4l2_buffer *buf),
|
||||
|
||||
TP_ARGS(minor, buf),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(int, minor, minor)
|
||||
ctf_integer(u32, index, buf->index)
|
||||
ctf_integer(u32, type, buf->type)
|
||||
ctf_integer(u32, bytesused, buf->bytesused)
|
||||
ctf_integer(u32, flags, buf->flags)
|
||||
ctf_integer(u32, field, buf->field)
|
||||
ctf_integer(s64, timestamp, timeval_to_ns(&buf->timestamp))
|
||||
ctf_integer(u32, timecode_type, buf->timecode.type)
|
||||
ctf_integer(u32, timecode_flags, buf->timecode.flags)
|
||||
ctf_integer(u8, timecode_frames, buf->timecode.frames)
|
||||
ctf_integer(u8, timecode_seconds, buf->timecode.seconds)
|
||||
ctf_integer(u8, timecode_minutes, buf->timecode.minutes)
|
||||
ctf_integer(u8, timecode_hours, buf->timecode.hours)
|
||||
ctf_array(u8, timecode_userbits, buf->timecode.userbits, 4)
|
||||
ctf_integer(u32, sequence, buf->sequence)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(v4l2_class,
|
||||
v4l2_dqbuf,
|
||||
|
||||
TP_PROTO(int minor, struct v4l2_buffer *buf),
|
||||
|
||||
TP_ARGS(minor, buf)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(v4l2_class,
|
||||
|
||||
v4l2_qbuf,
|
||||
|
||||
TP_PROTO(int minor, struct v4l2_buffer *buf),
|
||||
|
||||
TP_ARGS(minor, buf)
|
||||
)
|
||||
|
||||
#endif /* if !defined(LTTNG_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,193 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM workqueue
|
||||
|
||||
#if !defined(LTTNG_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_WORKQUEUE_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
|
||||
|
||||
#ifndef _TRACE_WORKQUEUE_DEF_
|
||||
#define _TRACE_WORKQUEUE_DEF_
|
||||
|
||||
struct worker;
|
||||
struct global_cwq;
|
||||
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(workqueue_work,
|
||||
|
||||
TP_PROTO(struct work_struct *work),
|
||||
|
||||
TP_ARGS(work),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, work, work)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
/**
|
||||
* workqueue_queue_work - called when a work gets queued
|
||||
* @req_cpu: the requested cpu
|
||||
* @cwq: pointer to struct cpu_workqueue_struct
|
||||
* @work: pointer to struct work_struct
|
||||
*
|
||||
* This event occurs when a work is queued immediately or once a
|
||||
* delayed work is actually queued on a workqueue (ie: once the delay
|
||||
* has been reached).
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(workqueue_queue_work,
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
|
||||
TP_PROTO(unsigned int req_cpu, struct pool_workqueue *pwq,
|
||||
struct work_struct *work),
|
||||
|
||||
TP_ARGS(req_cpu, pwq, work),
|
||||
#else
|
||||
TP_PROTO(unsigned int req_cpu, struct cpu_workqueue_struct *cwq,
|
||||
struct work_struct *work),
|
||||
|
||||
TP_ARGS(req_cpu, cwq, work),
|
||||
#endif
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, work, work)
|
||||
ctf_integer_hex(void *, function, work->func)
|
||||
ctf_integer(unsigned int, req_cpu, req_cpu)
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* workqueue_activate_work - called when a work gets activated
|
||||
* @work: pointer to struct work_struct
|
||||
*
|
||||
* This event occurs when a queued work is put on the active queue,
|
||||
* which happens immediately after queueing unless @max_active limit
|
||||
* is reached.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(workqueue_work, workqueue_activate_work,
|
||||
|
||||
TP_PROTO(struct work_struct *work),
|
||||
|
||||
TP_ARGS(work)
|
||||
)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* workqueue_execute_start - called immediately before the workqueue callback
|
||||
* @work: pointer to struct work_struct
|
||||
*
|
||||
* Allows to track workqueue execution.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(workqueue_execute_start,
|
||||
|
||||
TP_PROTO(struct work_struct *work),
|
||||
|
||||
TP_ARGS(work),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, work, work)
|
||||
ctf_integer_hex(void *, function, work->func)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
|
||||
/**
|
||||
* workqueue_execute_end - called immediately after the workqueue callback
|
||||
* @work: pointer to struct work_struct
|
||||
* @function: pointer to worker function
|
||||
*
|
||||
* Allows to track workqueue execution.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT(workqueue_execute_end,
|
||||
|
||||
TP_PROTO(struct work_struct *work, work_func_t function),
|
||||
|
||||
TP_ARGS(work, function),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(void *, work, work)
|
||||
ctf_integer_hex(void *, function, function)
|
||||
)
|
||||
)
|
||||
#else
|
||||
/**
|
||||
* workqueue_execute_end - called immediately after the workqueue callback
|
||||
* @work: pointer to struct work_struct
|
||||
*
|
||||
* Allows to track workqueue execution.
|
||||
*/
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(workqueue_work, workqueue_execute_end,
|
||||
|
||||
TP_PROTO(struct work_struct *work),
|
||||
|
||||
TP_ARGS(work)
|
||||
)
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(workqueue,
|
||||
|
||||
TP_PROTO(struct task_struct *wq_thread, struct work_struct *work),
|
||||
|
||||
TP_ARGS(wq_thread, work),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array(char, thread_comm, wq_thread->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, thread_pid, wq_thread->pid)
|
||||
ctf_integer_hex(work_func_t, func, work->func)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(workqueue, workqueue_insertion,
|
||||
|
||||
TP_PROTO(struct task_struct *wq_thread, struct work_struct *work),
|
||||
|
||||
TP_ARGS(wq_thread, work)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(workqueue, workqueue_execution,
|
||||
|
||||
TP_PROTO(struct task_struct *wq_thread, struct work_struct *work),
|
||||
|
||||
TP_ARGS(wq_thread, work)
|
||||
)
|
||||
|
||||
/* Trace the creation of one workqueue thread on a cpu */
|
||||
LTTNG_TRACEPOINT_EVENT(workqueue_creation,
|
||||
|
||||
TP_PROTO(struct task_struct *wq_thread, int cpu),
|
||||
|
||||
TP_ARGS(wq_thread, cpu),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array(char, thread_comm, wq_thread->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, thread_pid, wq_thread->pid)
|
||||
ctf_integer(int, cpu, cpu)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(workqueue_destruction,
|
||||
|
||||
TP_PROTO(struct task_struct *wq_thread),
|
||||
|
||||
TP_ARGS(wq_thread),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array(char, thread_comm, wq_thread->comm, TASK_COMM_LEN)
|
||||
ctf_integer(pid_t, thread_pid, wq_thread->pid)
|
||||
)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_WORKQUEUE_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,793 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM writeback
|
||||
|
||||
#if !defined(LTTNG_TRACE_WRITEBACK_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define LTTNG_TRACE_WRITEBACK_H
|
||||
|
||||
#include <probes/lttng-tracepoint-event.h>
|
||||
#include <linux/tracepoint.h>
|
||||
#include <linux/backing-dev.h>
|
||||
#include <linux/writeback.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#ifndef _TRACE_WRITEBACK_DEF_
|
||||
#define _TRACE_WRITEBACK_DEF_
|
||||
|
||||
/*
|
||||
* Vanilla kernels before 4.0 do not implement inode_to_bdi
|
||||
* RHEL kernels before 3.10.0-327.10.1 do not implement inode_to_bdi
|
||||
* RHEL kernel 3.10.0-327.10.1 has inode_to_bdi
|
||||
* RHEL kernel 3.10.0-327.13.1 includes a partial merge of upstream
|
||||
* commit a212b105b07d75b48b1a166378282e8a77fbf53d which inlines
|
||||
* inode_to_bdi but not sb_is_blkdev_sb making it unusable by modules.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0))
|
||||
static inline struct backing_dev_info *lttng_inode_to_bdi(struct inode *inode)
|
||||
{
|
||||
struct super_block *sb;
|
||||
|
||||
if (!inode)
|
||||
return &noop_backing_dev_info;
|
||||
|
||||
sb = inode->i_sb;
|
||||
|
||||
if (strcmp(sb->s_type->name, "bdev") == 0)
|
||||
return inode->i_mapping->backing_dev_info;
|
||||
|
||||
return sb->s_bdi;
|
||||
}
|
||||
#else
|
||||
static inline struct backing_dev_info *lttng_inode_to_bdi(struct inode *inode)
|
||||
{
|
||||
return inode_to_bdi(inode);
|
||||
}
|
||||
#endif /* #if (LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)) */
|
||||
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
|
||||
#define show_inode_state(state) \
|
||||
__print_flags(state, "|", \
|
||||
{I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \
|
||||
{I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \
|
||||
{I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \
|
||||
{I_NEW, "I_NEW"}, \
|
||||
{I_WILL_FREE, "I_WILL_FREE"}, \
|
||||
{I_FREEING, "I_FREEING"}, \
|
||||
{I_CLEAR, "I_CLEAR"}, \
|
||||
{I_SYNC, "I_SYNC"}, \
|
||||
{I_DIRTY_TIME, "I_DIRTY_TIME"}, \
|
||||
{I_REFERENCED, "I_REFERENCED"} \
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
|
||||
#define show_inode_state(state) \
|
||||
__print_flags(state, "|", \
|
||||
{I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \
|
||||
{I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \
|
||||
{I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \
|
||||
{I_NEW, "I_NEW"}, \
|
||||
{I_WILL_FREE, "I_WILL_FREE"}, \
|
||||
{I_FREEING, "I_FREEING"}, \
|
||||
{I_CLEAR, "I_CLEAR"}, \
|
||||
{I_SYNC, "I_SYNC"}, \
|
||||
{I_DIRTY_TIME, "I_DIRTY_TIME"}, \
|
||||
{I_DIRTY_TIME_EXPIRED, "I_DIRTY_TIME_EXPIRED"}, \
|
||||
{I_REFERENCED, "I_REFERENCED"} \
|
||||
)
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) */
|
||||
#define show_inode_state(state) \
|
||||
__print_flags(state, "|", \
|
||||
{I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \
|
||||
{I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \
|
||||
{I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \
|
||||
{I_NEW, "I_NEW"}, \
|
||||
{I_WILL_FREE, "I_WILL_FREE"}, \
|
||||
{I_FREEING, "I_FREEING"}, \
|
||||
{I_CLEAR, "I_CLEAR"}, \
|
||||
{I_SYNC, "I_SYNC"}, \
|
||||
{I_REFERENCED, "I_REFERENCED"} \
|
||||
)
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(writeback_dirty_page,
|
||||
TP_PROTO(struct page *page, struct address_space *mapping),
|
||||
TP_ARGS(page, mapping),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
mapping ? dev_name(lttng_inode_to_bdi(mapping->host)->dev) : "(unknown)", 32)
|
||||
ctf_integer(unsigned long, ino, mapping ? mapping->host->i_ino : 0)
|
||||
ctf_integer(pgoff_t, index, page->index)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_dirty_inode_template,
|
||||
TP_PROTO(struct inode *inode, int flags),
|
||||
TP_ARGS(inode, flags),
|
||||
TP_FIELDS(
|
||||
/* may be called for files on pseudo FSes w/ unregistered bdi */
|
||||
ctf_array_text(char, name,
|
||||
lttng_inode_to_bdi(inode)->dev ?
|
||||
dev_name(lttng_inode_to_bdi(inode)->dev) : "(unknown)", 32)
|
||||
ctf_integer(unsigned long, ino, inode->i_ino)
|
||||
ctf_integer(unsigned long, state, inode->i_state)
|
||||
ctf_integer(unsigned long, flags, flags)
|
||||
)
|
||||
)
|
||||
#define LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(name) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_dirty_inode_template, name, \
|
||||
TP_PROTO(struct inode *inode, int flags), \
|
||||
TP_ARGS(inode, flags))
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(writeback_dirty_inode_start)
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(writeback_dirty_inode)
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(writeback_mark_inode_dirty)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_write_inode_template,
|
||||
TP_PROTO(struct inode *inode, struct writeback_control *wbc),
|
||||
TP_ARGS(inode, wbc),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
dev_name(lttng_inode_to_bdi(inode)->dev), 32)
|
||||
ctf_integer(unsigned long, ino, inode->i_ino)
|
||||
ctf_integer(int, sync_mode, wbc->sync_mode)
|
||||
)
|
||||
)
|
||||
|
||||
#define LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(name) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_write_inode_template, name, \
|
||||
TP_PROTO(struct inode *inode, struct writeback_control *wbc), \
|
||||
TP_ARGS(inode, wbc))
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode_start)
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(writeback_dirty_page,
|
||||
TP_PROTO(struct page *page, struct address_space *mapping),
|
||||
TP_ARGS(page, mapping),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
mapping ? dev_name(mapping->backing_dev_info->dev) : "(unknown)", 32)
|
||||
ctf_integer(unsigned long, ino, mapping ? mapping->host->i_ino : 0)
|
||||
ctf_integer(pgoff_t, index, page->index)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_dirty_inode_template,
|
||||
TP_PROTO(struct inode *inode, int flags),
|
||||
TP_ARGS(inode, flags),
|
||||
TP_FIELDS(
|
||||
/* may be called for files on pseudo FSes w/ unregistered bdi */
|
||||
ctf_array_text(char, name,
|
||||
inode->i_mapping->backing_dev_info->dev ?
|
||||
dev_name(inode->i_mapping->backing_dev_info->dev)
|
||||
: "(unknown)", 32)
|
||||
ctf_integer(unsigned long, ino, inode->i_ino)
|
||||
ctf_integer(unsigned long, flags, flags)
|
||||
)
|
||||
)
|
||||
#define LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(name) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_dirty_inode_template, name, \
|
||||
TP_PROTO(struct inode *inode, int flags), \
|
||||
TP_ARGS(inode, flags))
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(writeback_dirty_inode_start)
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(writeback_dirty_inode)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_write_inode_template,
|
||||
TP_PROTO(struct inode *inode, struct writeback_control *wbc),
|
||||
TP_ARGS(inode, wbc),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
dev_name(inode->i_mapping->backing_dev_info->dev), 32)
|
||||
ctf_integer(unsigned long, ino, inode->i_ino)
|
||||
ctf_integer(int, sync_mode, wbc->sync_mode)
|
||||
)
|
||||
)
|
||||
|
||||
#define LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(name) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_write_inode_template, name, \
|
||||
TP_PROTO(struct inode *inode, struct writeback_control *wbc), \
|
||||
TP_ARGS(inode, wbc))
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode_start)
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode)
|
||||
|
||||
#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_work_class,
|
||||
TP_PROTO(struct bdi_writeback *wb, struct wb_writeback_work *work),
|
||||
TP_ARGS(wb, work),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name, wb->bdi->dev ? dev_name(wb->bdi->dev) :
|
||||
"(unknown)", 32)
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_work_class,
|
||||
TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work),
|
||||
TP_ARGS(bdi, work),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name, bdi->dev ? dev_name(bdi->dev) :
|
||||
"(unknown)", 32)
|
||||
)
|
||||
)
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_work_class,
|
||||
TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work),
|
||||
TP_ARGS(bdi, work),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
dev_name(bdi->dev ? bdi->dev :
|
||||
default_backing_dev_info.dev), 32)
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
|
||||
|
||||
#define LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(name) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_work_class, name, \
|
||||
TP_PROTO(struct bdi_writeback *wb, struct wb_writeback_work *work), \
|
||||
TP_ARGS(wb, work))
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
|
||||
|
||||
#define LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(name) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_work_class, name, \
|
||||
TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), \
|
||||
TP_ARGS(bdi, work))
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_nothread)
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_queue)
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_exec)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_start)
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_written)
|
||||
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_wait)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(writeback_pages_written,
|
||||
TP_PROTO(long pages_written),
|
||||
TP_ARGS(pages_written),
|
||||
TP_FIELDS(
|
||||
ctf_integer(long, pages, pages_written)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_class,
|
||||
TP_PROTO(struct bdi_writeback *wb),
|
||||
TP_ARGS(wb),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
dev_name(wb->bdi->dev), 32)
|
||||
)
|
||||
)
|
||||
|
||||
#undef DEFINE_WRITEBACK_EVENT
|
||||
#define DEFINE_WRITEBACK_EVENT(name) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_class, name, \
|
||||
TP_PROTO(struct bdi_writeback *wb), \
|
||||
TP_ARGS(wb))
|
||||
|
||||
#define DEFINE_WRITEBACK_EVENT_MAP(name, map) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(writeback_class, name, map, \
|
||||
TP_PROTO(struct bdi_writeback *wb), \
|
||||
TP_ARGS(wb))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT(writeback_bdi_register,
|
||||
TP_PROTO(struct backing_dev_info *bdi),
|
||||
TP_ARGS(bdi),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
dev_name(bdi->dev), 32)
|
||||
)
|
||||
)
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_class,
|
||||
TP_PROTO(struct backing_dev_info *bdi),
|
||||
TP_ARGS(bdi),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
dev_name(bdi->dev), 32)
|
||||
)
|
||||
)
|
||||
|
||||
#undef DEFINE_WRITEBACK_EVENT
|
||||
#define DEFINE_WRITEBACK_EVENT(name) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_class, name, \
|
||||
TP_PROTO(struct backing_dev_info *bdi), \
|
||||
TP_ARGS(bdi))
|
||||
|
||||
#define DEFINE_WRITEBACK_EVENT_MAP(name, map) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(writeback_class, name, map, \
|
||||
TP_PROTO(struct backing_dev_info *bdi), \
|
||||
TP_ARGS(bdi))
|
||||
|
||||
DEFINE_WRITEBACK_EVENT(writeback_bdi_register)
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
|
||||
|
||||
DEFINE_WRITEBACK_EVENT(writeback_nowork)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
|
||||
DEFINE_WRITEBACK_EVENT(writeback_wake_background)
|
||||
#endif
|
||||
DEFINE_WRITEBACK_EVENT(writeback_wake_thread)
|
||||
DEFINE_WRITEBACK_EVENT(writeback_wake_forker_thread)
|
||||
DEFINE_WRITEBACK_EVENT(writeback_bdi_unregister)
|
||||
DEFINE_WRITEBACK_EVENT(writeback_thread_start)
|
||||
DEFINE_WRITEBACK_EVENT(writeback_thread_stop)
|
||||
#if (LTTNG_KERNEL_RANGE(3,1,0, 3,2,0))
|
||||
DEFINE_WRITEBACK_EVENT_MAP(balance_dirty_start, writeback_balance_dirty_start)
|
||||
DEFINE_WRITEBACK_EVENT_MAP(balance_dirty_wait, writeback_balance_dirty_wait)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(balance_dirty_written,
|
||||
|
||||
writeback_balance_dirty_written,
|
||||
|
||||
TP_PROTO(struct backing_dev_info *bdi, int written),
|
||||
|
||||
TP_ARGS(bdi, written),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name, dev_name(bdi->dev), 32)
|
||||
ctf_integer(int, written, written)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_wbc_class,
|
||||
TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi),
|
||||
TP_ARGS(wbc, bdi),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name, dev_name(bdi->dev), 32)
|
||||
ctf_integer(long, nr_to_write, wbc->nr_to_write)
|
||||
ctf_integer(long, pages_skipped, wbc->pages_skipped)
|
||||
ctf_integer(int, sync_mode, wbc->sync_mode)
|
||||
ctf_integer(int, for_kupdate, wbc->for_kupdate)
|
||||
ctf_integer(int, for_background, wbc->for_background)
|
||||
ctf_integer(int, for_reclaim, wbc->for_reclaim)
|
||||
ctf_integer(int, range_cyclic, wbc->range_cyclic)
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
|
||||
ctf_integer(int, more_io, wbc->more_io)
|
||||
ctf_integer(unsigned long, older_than_this,
|
||||
wbc->older_than_this ? *wbc->older_than_this : 0)
|
||||
#endif
|
||||
ctf_integer(long, range_start, (long) wbc->range_start)
|
||||
ctf_integer(long, range_end, (long) wbc->range_end)
|
||||
)
|
||||
)
|
||||
|
||||
#undef DEFINE_WBC_EVENT
|
||||
#define LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(name, map) \
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(writeback_wbc_class, name, map, \
|
||||
TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), \
|
||||
TP_ARGS(wbc, bdi))
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
|
||||
LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writeback_start, writeback_wbc_writeback_start)
|
||||
LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writeback_written, writeback_wbc_writeback_written)
|
||||
LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writeback_wait, writeback_wbc_writeback_wait)
|
||||
LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_start, writeback_wbc_balance_dirty_start)
|
||||
LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_written, writeback_wbc_balance_dirty_written)
|
||||
LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_wait, writeback_wbc_balance_dirty_wait)
|
||||
#endif
|
||||
LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage, writeback_wbc_writepage)
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \
|
||||
LTTNG_KERNEL_RANGE(5,8,6, 5,9,0) || \
|
||||
LTTNG_KERNEL_RANGE(5,4,62, 5,5,0) || \
|
||||
LTTNG_KERNEL_RANGE(4,19,143, 4,20,0) || \
|
||||
LTTNG_KERNEL_RANGE(4,14,196, 4,15,0) || \
|
||||
LTTNG_KERNEL_RANGE(4,9,235, 4,10,0) || \
|
||||
LTTNG_KERNEL_RANGE(4,4,235, 4,5,0) || \
|
||||
LTTNG_UBUNTU_KERNEL_RANGE(4,15,18,119, 4,16,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
|
||||
TP_PROTO(struct bdi_writeback *wb,
|
||||
struct wb_writeback_work *work,
|
||||
unsigned long dirtied_before,
|
||||
int moved),
|
||||
TP_ARGS(wb, work, dirtied_before, moved),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
|
||||
ctf_integer(unsigned long, older, dirtied_before)
|
||||
ctf_integer(int, moved, moved)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
|
||||
LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
|
||||
TP_PROTO(struct bdi_writeback *wb,
|
||||
struct wb_writeback_work *work,
|
||||
int moved),
|
||||
TP_ARGS(wb, work, moved),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
|
||||
ctf_integer(int, moved, moved)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
|
||||
LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
|
||||
TP_PROTO(struct bdi_writeback *wb,
|
||||
unsigned long *older_than_this,
|
||||
int moved),
|
||||
TP_ARGS(wb, older_than_this, moved),
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
|
||||
ctf_integer(unsigned long, older,
|
||||
older_than_this ? *older_than_this : 0)
|
||||
ctf_integer(long, age,
|
||||
older_than_this ?
|
||||
(jiffies - *older_than_this) * 1000 / HZ
|
||||
: -1)
|
||||
ctf_integer(int, moved, moved)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
|
||||
|
||||
writeback_global_dirty_state,
|
||||
|
||||
TP_PROTO(unsigned long background_thresh,
|
||||
unsigned long dirty_thresh
|
||||
),
|
||||
|
||||
TP_ARGS(background_thresh,
|
||||
dirty_thresh
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, nr_dirty, global_node_page_state(NR_FILE_DIRTY))
|
||||
ctf_integer(unsigned long, nr_writeback, global_node_page_state(NR_WRITEBACK))
|
||||
ctf_integer(unsigned long, nr_dirtied, global_node_page_state(NR_DIRTIED))
|
||||
ctf_integer(unsigned long, nr_written, global_node_page_state(NR_WRITTEN))
|
||||
ctf_integer(unsigned long, background_thresh, background_thresh)
|
||||
ctf_integer(unsigned long, dirty_thresh, dirty_thresh)
|
||||
ctf_integer(unsigned long, dirty_limit, global_dirty_limit)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
|
||||
|
||||
writeback_global_dirty_state,
|
||||
|
||||
TP_PROTO(unsigned long background_thresh,
|
||||
unsigned long dirty_thresh
|
||||
),
|
||||
|
||||
TP_ARGS(background_thresh,
|
||||
dirty_thresh
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, nr_dirty, global_node_page_state(NR_FILE_DIRTY))
|
||||
ctf_integer(unsigned long, nr_writeback, global_node_page_state(NR_WRITEBACK))
|
||||
ctf_integer(unsigned long, nr_unstable, global_node_page_state(NR_UNSTABLE_NFS))
|
||||
ctf_integer(unsigned long, nr_dirtied, global_node_page_state(NR_DIRTIED))
|
||||
ctf_integer(unsigned long, nr_written, global_node_page_state(NR_WRITTEN))
|
||||
ctf_integer(unsigned long, background_thresh, background_thresh)
|
||||
ctf_integer(unsigned long, dirty_thresh, dirty_thresh)
|
||||
ctf_integer(unsigned long, dirty_limit, global_dirty_limit)
|
||||
)
|
||||
)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
|
||||
|
||||
writeback_global_dirty_state,
|
||||
|
||||
TP_PROTO(unsigned long background_thresh,
|
||||
unsigned long dirty_thresh
|
||||
),
|
||||
|
||||
TP_ARGS(background_thresh,
|
||||
dirty_thresh
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned long, nr_dirty, global_page_state(NR_FILE_DIRTY))
|
||||
ctf_integer(unsigned long, nr_writeback, global_page_state(NR_WRITEBACK))
|
||||
ctf_integer(unsigned long, nr_unstable, global_page_state(NR_UNSTABLE_NFS))
|
||||
ctf_integer(unsigned long, nr_dirtied, global_page_state(NR_DIRTIED))
|
||||
ctf_integer(unsigned long, nr_written, global_page_state(NR_WRITTEN))
|
||||
ctf_integer(unsigned long, background_thresh, background_thresh)
|
||||
ctf_integer(unsigned long, dirty_thresh, dirty_thresh)
|
||||
ctf_integer(unsigned long, dirty_limit, global_dirty_limit)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
|
||||
|
||||
#define KBps(x) ((x) << (PAGE_SHIFT - 10))
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(bdi_dirty_ratelimit,
|
||||
|
||||
writeback_bdi_dirty_ratelimit,
|
||||
|
||||
TP_PROTO(struct bdi_writeback *wb,
|
||||
unsigned long dirty_rate,
|
||||
unsigned long task_ratelimit),
|
||||
|
||||
TP_ARGS(wb, dirty_rate, task_ratelimit),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, bdi, dev_name(wb->bdi->dev), 32)
|
||||
ctf_integer(unsigned long, write_bw, KBps(wb->bdi->wb.write_bandwidth))
|
||||
ctf_integer(unsigned long, avg_write_bw, KBps(wb->bdi->wb.avg_write_bandwidth))
|
||||
ctf_integer(unsigned long, dirty_rate, KBps(dirty_rate))
|
||||
ctf_integer(unsigned long, dirty_ratelimit, KBps(wb->bdi->wb.dirty_ratelimit))
|
||||
ctf_integer(unsigned long, task_ratelimit, KBps(task_ratelimit))
|
||||
ctf_integer(unsigned long, balanced_dirty_ratelimit,
|
||||
KBps(wb->bdi->wb.balanced_dirty_ratelimit))
|
||||
)
|
||||
)
|
||||
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(bdi_dirty_ratelimit,
|
||||
|
||||
writeback_bdi_dirty_ratelimit,
|
||||
|
||||
TP_PROTO(struct backing_dev_info *bdi,
|
||||
unsigned long dirty_rate,
|
||||
unsigned long task_ratelimit),
|
||||
|
||||
TP_ARGS(bdi, dirty_rate, task_ratelimit),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, bdi, dev_name(bdi->dev), 32)
|
||||
ctf_integer(unsigned long, write_bw, KBps(bdi->wb.write_bandwidth))
|
||||
ctf_integer(unsigned long, avg_write_bw, KBps(bdi->wb.avg_write_bandwidth))
|
||||
ctf_integer(unsigned long, dirty_rate, KBps(dirty_rate))
|
||||
ctf_integer(unsigned long, dirty_ratelimit, KBps(bdi->wb.dirty_ratelimit))
|
||||
ctf_integer(unsigned long, task_ratelimit, KBps(task_ratelimit))
|
||||
ctf_integer(unsigned long, balanced_dirty_ratelimit,
|
||||
KBps(bdi->wb.balanced_dirty_ratelimit))
|
||||
)
|
||||
)
|
||||
|
||||
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(bdi_dirty_ratelimit,
|
||||
|
||||
writeback_bdi_dirty_ratelimit,
|
||||
|
||||
TP_PROTO(struct backing_dev_info *bdi,
|
||||
unsigned long dirty_rate,
|
||||
unsigned long task_ratelimit),
|
||||
|
||||
TP_ARGS(bdi, dirty_rate, task_ratelimit),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, bdi, dev_name(bdi->dev), 32)
|
||||
ctf_integer(unsigned long, write_bw, KBps(bdi->write_bandwidth))
|
||||
ctf_integer(unsigned long, avg_write_bw, KBps(bdi->avg_write_bandwidth))
|
||||
ctf_integer(unsigned long, dirty_rate, KBps(dirty_rate))
|
||||
ctf_integer(unsigned long, dirty_ratelimit, KBps(bdi->dirty_ratelimit))
|
||||
ctf_integer(unsigned long, task_ratelimit, KBps(task_ratelimit))
|
||||
ctf_integer(unsigned long, balanced_dirty_ratelimit,
|
||||
KBps(bdi->balanced_dirty_ratelimit))
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(balance_dirty_pages,
|
||||
|
||||
writeback_balance_dirty_pages,
|
||||
|
||||
TP_PROTO(struct bdi_writeback *wb,
|
||||
unsigned long thresh,
|
||||
unsigned long bg_thresh,
|
||||
unsigned long dirty,
|
||||
unsigned long bdi_thresh,
|
||||
unsigned long bdi_dirty,
|
||||
unsigned long dirty_ratelimit,
|
||||
unsigned long task_ratelimit,
|
||||
unsigned long dirtied,
|
||||
unsigned long period,
|
||||
long pause,
|
||||
unsigned long start_time),
|
||||
|
||||
TP_ARGS(wb, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty,
|
||||
dirty_ratelimit, task_ratelimit,
|
||||
dirtied, period, pause, start_time
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, bdi, dev_name(wb->bdi->dev), 32)
|
||||
ctf_integer(unsigned long, limit, global_dirty_limit)
|
||||
ctf_integer(unsigned long, setpoint,
|
||||
(global_dirty_limit + (thresh + bg_thresh) / 2) / 2)
|
||||
ctf_integer(unsigned long, dirty, dirty)
|
||||
ctf_integer(unsigned long, bdi_setpoint,
|
||||
((global_dirty_limit + (thresh + bg_thresh) / 2) / 2) *
|
||||
bdi_thresh / (thresh + 1))
|
||||
ctf_integer(unsigned long, bdi_dirty, bdi_dirty)
|
||||
ctf_integer(unsigned long, dirty_ratelimit,
|
||||
KBps(dirty_ratelimit))
|
||||
ctf_integer(unsigned long, task_ratelimit,
|
||||
KBps(task_ratelimit))
|
||||
ctf_integer(unsigned int, dirtied, dirtied)
|
||||
ctf_integer(unsigned int, dirtied_pause,
|
||||
current->nr_dirtied_pause)
|
||||
ctf_integer(unsigned long, paused,
|
||||
(jiffies - start_time) * 1000 / HZ)
|
||||
ctf_integer(long, pause, pause * 1000 / HZ)
|
||||
ctf_integer(unsigned long, period,
|
||||
period * 1000 / HZ)
|
||||
ctf_integer(long, think,
|
||||
current->dirty_paused_when == 0 ? 0 :
|
||||
(long)(jiffies - current->dirty_paused_when) * 1000/HZ)
|
||||
)
|
||||
)
|
||||
|
||||
#else /* #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(balance_dirty_pages,
|
||||
|
||||
writeback_balance_dirty_pages,
|
||||
|
||||
TP_PROTO(struct backing_dev_info *bdi,
|
||||
unsigned long thresh,
|
||||
unsigned long bg_thresh,
|
||||
unsigned long dirty,
|
||||
unsigned long bdi_thresh,
|
||||
unsigned long bdi_dirty,
|
||||
unsigned long dirty_ratelimit,
|
||||
unsigned long task_ratelimit,
|
||||
unsigned long dirtied,
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
unsigned long period,
|
||||
#endif
|
||||
long pause,
|
||||
unsigned long start_time),
|
||||
|
||||
TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty,
|
||||
dirty_ratelimit, task_ratelimit,
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
dirtied, period, pause, start_time
|
||||
#else
|
||||
dirtied, pause, start_time
|
||||
#endif
|
||||
),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, bdi, dev_name(bdi->dev), 32)
|
||||
ctf_integer(unsigned long, limit, global_dirty_limit)
|
||||
ctf_integer(unsigned long, setpoint,
|
||||
(global_dirty_limit + (thresh + bg_thresh) / 2) / 2)
|
||||
ctf_integer(unsigned long, dirty, dirty)
|
||||
ctf_integer(unsigned long, bdi_setpoint,
|
||||
((global_dirty_limit + (thresh + bg_thresh) / 2) / 2) *
|
||||
bdi_thresh / (thresh + 1))
|
||||
ctf_integer(unsigned long, bdi_dirty, bdi_dirty)
|
||||
ctf_integer(unsigned long, dirty_ratelimit,
|
||||
KBps(dirty_ratelimit))
|
||||
ctf_integer(unsigned long, task_ratelimit,
|
||||
KBps(task_ratelimit))
|
||||
ctf_integer(unsigned int, dirtied, dirtied)
|
||||
ctf_integer(unsigned int, dirtied_pause,
|
||||
current->nr_dirtied_pause)
|
||||
ctf_integer(unsigned long, paused,
|
||||
(jiffies - start_time) * 1000 / HZ)
|
||||
ctf_integer(long, pause, pause * 1000 / HZ)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
ctf_integer(unsigned long, period,
|
||||
period * 1000 / HZ)
|
||||
ctf_integer(long, think,
|
||||
current->dirty_paused_when == 0 ? 0 :
|
||||
(long)(jiffies - current->dirty_paused_when) * 1000/HZ)
|
||||
#endif
|
||||
)
|
||||
)
|
||||
#endif /* #else #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
|
||||
|
||||
#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) */
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT(writeback_sb_inodes_requeue,
|
||||
|
||||
TP_PROTO(struct inode *inode),
|
||||
TP_ARGS(inode),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
dev_name(lttng_inode_to_bdi(inode)->dev), 32)
|
||||
ctf_integer(unsigned long, ino, inode->i_ino)
|
||||
ctf_integer(unsigned long, state, inode->i_state)
|
||||
ctf_integer(unsigned long, dirtied_when, inode->dirtied_when)
|
||||
)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_congest_waited_template,
|
||||
|
||||
TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed),
|
||||
|
||||
TP_ARGS(usec_timeout, usec_delayed),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer(unsigned int, usec_timeout, usec_timeout)
|
||||
ctf_integer(unsigned int, usec_delayed, usec_delayed)
|
||||
)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_congest_waited_template, writeback_congestion_wait,
|
||||
|
||||
TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed),
|
||||
|
||||
TP_ARGS(usec_timeout, usec_delayed)
|
||||
)
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_congest_waited_template, writeback_wait_iff_congested,
|
||||
|
||||
TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed),
|
||||
|
||||
TP_ARGS(usec_timeout, usec_delayed)
|
||||
)
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_single_inode_template,
|
||||
|
||||
TP_PROTO(struct inode *inode,
|
||||
struct writeback_control *wbc,
|
||||
unsigned long nr_to_write
|
||||
),
|
||||
|
||||
TP_ARGS(inode, wbc, nr_to_write),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_array_text(char, name,
|
||||
dev_name(lttng_inode_to_bdi(inode)->dev), 32)
|
||||
ctf_integer(unsigned long, ino, inode->i_ino)
|
||||
ctf_integer(unsigned long, state, inode->i_state)
|
||||
ctf_integer(unsigned long, dirtied_when, inode->dirtied_when)
|
||||
ctf_integer(unsigned long, writeback_index,
|
||||
inode->i_mapping->writeback_index)
|
||||
ctf_integer(long, nr_to_write, nr_to_write)
|
||||
ctf_integer(unsigned long, wrote,
|
||||
nr_to_write - wbc->nr_to_write)
|
||||
)
|
||||
)
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_single_inode_template, writeback_single_inode_requeue,
|
||||
TP_PROTO(struct inode *inode,
|
||||
struct writeback_control *wbc,
|
||||
unsigned long nr_to_write),
|
||||
TP_ARGS(inode, wbc, nr_to_write)
|
||||
)
|
||||
#endif
|
||||
|
||||
LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_single_inode_template, writeback_single_inode,
|
||||
TP_PROTO(struct inode *inode,
|
||||
struct writeback_control *wbc,
|
||||
unsigned long nr_to_write),
|
||||
TP_ARGS(inode, wbc, nr_to_write)
|
||||
)
|
||||
#endif
|
||||
|
||||
#endif /* LTTNG_TRACE_WRITEBACK_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <probes/define_trace.h>
|
|
@ -0,0 +1,286 @@
|
|||
syscall sys_restart_syscall nr 0 nbargs 0 types: () args: ()
|
||||
syscall sys_exit nr 1 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_read nr 3 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_write nr 4 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_open nr 5 nbargs 3 types: (const char *, int, int) args: (filename, flags, mode)
|
||||
syscall sys_close nr 6 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_waitpid nr 7 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options)
|
||||
syscall sys_creat nr 8 nbargs 2 types: (const char *, int) args: (pathname, mode)
|
||||
syscall sys_link nr 9 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_unlink nr 10 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_chdir nr 12 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_time nr 13 nbargs 1 types: (time_t *) args: (tloc)
|
||||
syscall sys_mknod nr 14 nbargs 3 types: (const char *, int, unsigned) args: (filename, mode, dev)
|
||||
syscall sys_chmod nr 15 nbargs 2 types: (const char *, mode_t) args: (filename, mode)
|
||||
syscall sys_lchown nr 16 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_stat nr 18 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf)
|
||||
syscall sys_lseek nr 19 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin)
|
||||
syscall sys_getpid nr 20 nbargs 0 types: () args: ()
|
||||
syscall sys_mount nr 21 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data)
|
||||
syscall sys_oldumount nr 22 nbargs 1 types: (char *) args: (name)
|
||||
syscall sys_setuid nr 23 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_getuid nr 24 nbargs 0 types: () args: ()
|
||||
syscall sys_stime nr 25 nbargs 1 types: (time_t *) args: (tptr)
|
||||
syscall sys_ptrace nr 26 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data)
|
||||
syscall sys_alarm nr 27 nbargs 1 types: (unsigned int) args: (seconds)
|
||||
syscall sys_fstat nr 28 nbargs 2 types: (unsigned int, struct __old_kernel_stat *) args: (fd, statbuf)
|
||||
syscall sys_pause nr 29 nbargs 0 types: () args: ()
|
||||
syscall sys_utime nr 30 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times)
|
||||
syscall sys_access nr 33 nbargs 2 types: (const char *, int) args: (filename, mode)
|
||||
syscall sys_nice nr 34 nbargs 1 types: (int) args: (increment)
|
||||
syscall sys_sync nr 36 nbargs 0 types: () args: ()
|
||||
syscall sys_kill nr 37 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_rename nr 38 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_mkdir nr 39 nbargs 2 types: (const char *, int) args: (pathname, mode)
|
||||
syscall sys_rmdir nr 40 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_dup nr 41 nbargs 1 types: (unsigned int) args: (fildes)
|
||||
syscall sys_pipe nr 42 nbargs 1 types: (int *) args: (fildes)
|
||||
syscall sys_times nr 43 nbargs 1 types: (struct tms *) args: (tbuf)
|
||||
syscall sys_brk nr 45 nbargs 1 types: (unsigned long) args: (brk)
|
||||
syscall sys_setgid nr 46 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_getgid nr 47 nbargs 0 types: () args: ()
|
||||
syscall sys_signal nr 48 nbargs 2 types: (int, __sighandler_t) args: (sig, handler)
|
||||
syscall sys_geteuid nr 49 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid nr 50 nbargs 0 types: () args: ()
|
||||
syscall sys_acct nr 51 nbargs 1 types: (const char *) args: (name)
|
||||
syscall sys_umount nr 52 nbargs 2 types: (char *, int) args: (name, flags)
|
||||
syscall sys_ioctl nr 54 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_fcntl nr 55 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_setpgid nr 57 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid)
|
||||
syscall sys_olduname nr 59 nbargs 1 types: (struct oldold_utsname *) args: (name)
|
||||
syscall sys_umask nr 60 nbargs 1 types: (int) args: (mask)
|
||||
syscall sys_chroot nr 61 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_ustat nr 62 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf)
|
||||
syscall sys_dup2 nr 63 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd)
|
||||
syscall sys_getppid nr 64 nbargs 0 types: () args: ()
|
||||
syscall sys_getpgrp nr 65 nbargs 0 types: () args: ()
|
||||
syscall sys_setsid nr 66 nbargs 0 types: () args: ()
|
||||
syscall sys_sgetmask nr 68 nbargs 0 types: () args: ()
|
||||
syscall sys_ssetmask nr 69 nbargs 1 types: (int) args: (newmask)
|
||||
syscall sys_setreuid nr 70 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid nr 71 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid)
|
||||
syscall sys_sigpending nr 73 nbargs 1 types: (old_sigset_t *) args: (set)
|
||||
syscall sys_sethostname nr 74 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_setrlimit nr 75 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_old_getrlimit nr 76 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrusage nr 77 nbargs 2 types: (int, struct rusage *) args: (who, ru)
|
||||
syscall sys_gettimeofday nr 78 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_settimeofday nr 79 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_getgroups nr 80 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups nr 81 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_symlink nr 83 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_lstat nr 84 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf)
|
||||
syscall sys_readlink nr 85 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz)
|
||||
syscall sys_uselib nr 86 nbargs 1 types: (const char *) args: (library)
|
||||
syscall sys_swapon nr 87 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags)
|
||||
syscall sys_reboot nr 88 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg)
|
||||
syscall sys_old_readdir nr 89 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_munmap nr 91 nbargs 2 types: (unsigned long, size_t) args: (addr, len)
|
||||
syscall sys_truncate nr 92 nbargs 2 types: (const char *, long) args: (path, length)
|
||||
syscall sys_ftruncate nr 93 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length)
|
||||
syscall sys_fchmod nr 94 nbargs 2 types: (unsigned int, mode_t) args: (fd, mode)
|
||||
syscall sys_fchown nr 95 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group)
|
||||
syscall sys_getpriority nr 96 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_setpriority nr 97 nbargs 3 types: (int, int, int) args: (which, who, niceval)
|
||||
syscall sys_statfs nr 99 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf)
|
||||
syscall sys_fstatfs nr 100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf)
|
||||
syscall sys_socketcall nr 102 nbargs 2 types: (int, unsigned long *) args: (call, args)
|
||||
syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len)
|
||||
syscall sys_setitimer nr 104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue)
|
||||
syscall sys_getitimer nr 105 nbargs 2 types: (int, struct itimerval *) args: (which, value)
|
||||
syscall sys_newstat nr 106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newlstat nr 107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newfstat nr 108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf)
|
||||
syscall sys_uname nr 109 nbargs 1 types: (struct old_utsname *) args: (name)
|
||||
syscall sys_vhangup nr 111 nbargs 0 types: () args: ()
|
||||
syscall sys_wait4 nr 114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru)
|
||||
syscall sys_swapoff nr 115 nbargs 1 types: (const char *) args: (specialfile)
|
||||
syscall sys_sysinfo nr 116 nbargs 1 types: (struct sysinfo *) args: (info)
|
||||
syscall sys_ipc nr 117 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth)
|
||||
syscall sys_fsync nr 118 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_setdomainname nr 121 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_newuname nr 122 nbargs 1 types: (struct new_utsname *) args: (name)
|
||||
syscall sys_adjtimex nr 124 nbargs 1 types: (struct timex *) args: (txc_p)
|
||||
syscall sys_mprotect nr 125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot)
|
||||
syscall sys_sigprocmask nr 126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset)
|
||||
syscall sys_init_module nr 128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs)
|
||||
syscall sys_delete_module nr 129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags)
|
||||
syscall sys_getpgid nr 132 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fchdir nr 133 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_bdflush nr 134 nbargs 2 types: (int, long) args: (func, data)
|
||||
syscall sys_sysfs nr 135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2)
|
||||
syscall sys_personality nr 136 nbargs 1 types: (unsigned int) args: (personality)
|
||||
syscall sys_setfsuid nr 138 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setfsgid nr 139 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_llseek nr 140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin)
|
||||
syscall sys_getdents nr 141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_select nr 142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp)
|
||||
syscall sys_flock nr 143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd)
|
||||
syscall sys_msync nr 144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
||||
syscall sys_readv nr 145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_writev nr 146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_getsid nr 147 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fdatasync nr 148 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_sysctl nr 149 nbargs 1 types: (struct __sysctl_args *) args: (args)
|
||||
syscall sys_mlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_munlock nr 151 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_mlockall nr 152 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_munlockall nr 153 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_setparam nr 154 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_getparam nr 155 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setscheduler nr 156 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param)
|
||||
syscall sys_sched_getscheduler nr 157 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_sched_yield nr 158 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_get_priority_max nr 159 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_get_priority_min nr 160 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_rr_get_interval nr 161 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval)
|
||||
syscall sys_nanosleep nr 162 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp)
|
||||
syscall sys_mremap nr 163 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr)
|
||||
syscall sys_setresuid nr 164 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid nr 165 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruid, euid, suid)
|
||||
syscall sys_poll nr 167 nbargs 3 types: (struct pollfd *, unsigned int, long) args: (ufds, nfds, timeout_msecs)
|
||||
syscall sys_nfsservctl nr 168 nbargs 3 types: (int, struct nfsctl_arg *, void *) args: (cmd, arg, res)
|
||||
syscall sys_setresgid nr 169 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid nr 170 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgid, egid, sgid)
|
||||
syscall sys_prctl nr 171 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_rt_sigaction nr 173 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize)
|
||||
syscall sys_rt_sigprocmask nr 174 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize)
|
||||
syscall sys_rt_sigpending nr 175 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize)
|
||||
syscall sys_rt_sigtimedwait nr 176 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize)
|
||||
syscall sys_rt_sigqueueinfo nr 177 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo)
|
||||
syscall sys_rt_sigsuspend nr 178 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize)
|
||||
syscall sys_chown nr 181 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_getcwd nr 182 nbargs 2 types: (char *, unsigned long) args: (buf, size)
|
||||
syscall sys_capget nr 183 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr)
|
||||
syscall sys_capset nr 184 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data)
|
||||
syscall sys_sendfile nr 186 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_getrlimit nr 190 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_stat64 nr 195 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_lstat64 nr 196 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_fstat64 nr 197 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf)
|
||||
syscall sys_pciconfig_read nr 198 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, void *) args: (bus, dfn, off, len, buf)
|
||||
syscall sys_pciconfig_write nr 199 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, void *) args: (bus, dfn, off, len, buf)
|
||||
syscall sys_getdents64 nr 202 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_pivot_root nr 203 nbargs 2 types: (const char *, const char *) args: (new_root, put_old)
|
||||
syscall sys_fcntl64 nr 204 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_madvise nr 205 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior)
|
||||
syscall sys_mincore nr 206 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec)
|
||||
syscall sys_gettid nr 207 nbargs 0 types: () args: ()
|
||||
syscall sys_tkill nr 208 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_setxattr nr 209 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_lsetxattr nr 210 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_fsetxattr nr 211 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags)
|
||||
syscall sys_getxattr nr 212 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_lgetxattr nr 213 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_fgetxattr nr 214 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size)
|
||||
syscall sys_listxattr nr 215 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_llistxattr nr 216 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_flistxattr nr 217 nbargs 3 types: (int, char *, size_t) args: (fd, list, size)
|
||||
syscall sys_removexattr nr 218 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_lremovexattr nr 219 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_fremovexattr nr 220 nbargs 2 types: (int, const char *) args: (fd, name)
|
||||
syscall sys_futex nr 221 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3)
|
||||
syscall sys_sched_setaffinity nr 222 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_sched_getaffinity nr 223 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_sendfile64 nr 226 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_io_setup nr 227 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp)
|
||||
syscall sys_io_destroy nr 228 nbargs 1 types: (aio_context_t) args: (ctx)
|
||||
syscall sys_io_getevents nr 229 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout)
|
||||
syscall sys_io_submit nr 230 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp)
|
||||
syscall sys_io_cancel nr 231 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result)
|
||||
syscall sys_set_tid_address nr 232 nbargs 1 types: (int *) args: (tidptr)
|
||||
syscall sys_exit_group nr 234 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_epoll_create nr 236 nbargs 1 types: (int) args: (size)
|
||||
syscall sys_epoll_ctl nr 237 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event)
|
||||
syscall sys_epoll_wait nr 238 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout)
|
||||
syscall sys_remap_file_pages nr 239 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags)
|
||||
syscall sys_timer_create nr 240 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id)
|
||||
syscall sys_timer_settime nr 241 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting)
|
||||
syscall sys_timer_gettime nr 242 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting)
|
||||
syscall sys_timer_getoverrun nr 243 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_timer_delete nr 244 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_clock_settime nr 245 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_gettime nr 246 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_getres nr 247 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_nanosleep nr 248 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp)
|
||||
syscall sys_tgkill nr 250 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig)
|
||||
syscall sys_utimes nr 251 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes)
|
||||
syscall sys_statfs64 nr 252 nbargs 3 types: (const char *, size_t, struct statfs64 *) args: (pathname, sz, buf)
|
||||
syscall sys_fstatfs64 nr 253 nbargs 3 types: (unsigned int, size_t, struct statfs64 *) args: (fd, sz, buf)
|
||||
syscall sys_mq_open nr 262 nbargs 4 types: (const char *, int, mode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr)
|
||||
syscall sys_mq_unlink nr 263 nbargs 1 types: (const char *) args: (u_name)
|
||||
syscall sys_mq_timedsend nr 264 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_timedreceive nr 265 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_notify nr 266 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification)
|
||||
syscall sys_mq_getsetattr nr 267 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat)
|
||||
syscall sys_add_key nr 269 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid)
|
||||
syscall sys_request_key nr 270 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid)
|
||||
syscall sys_keyctl nr 271 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_waitid nr 272 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru)
|
||||
syscall sys_ioprio_set nr 273 nbargs 3 types: (int, int, int) args: (which, who, ioprio)
|
||||
syscall sys_ioprio_get nr 274 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_inotify_init nr 275 nbargs 0 types: () args: ()
|
||||
syscall sys_inotify_add_watch nr 276 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask)
|
||||
syscall sys_inotify_rm_watch nr 277 nbargs 2 types: (int, __s32) args: (fd, wd)
|
||||
syscall sys_pselect6 nr 280 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig)
|
||||
syscall sys_ppoll nr 281 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize)
|
||||
syscall sys_unshare nr 282 nbargs 1 types: (unsigned long) args: (unshare_flags)
|
||||
syscall sys_splice nr 283 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags)
|
||||
syscall sys_tee nr 284 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags)
|
||||
syscall sys_vmsplice nr 285 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags)
|
||||
syscall sys_openat nr 286 nbargs 4 types: (int, const char *, int, int) args: (dfd, filename, flags, mode)
|
||||
syscall sys_mkdirat nr 287 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, mode)
|
||||
syscall sys_mknodat nr 288 nbargs 4 types: (int, const char *, int, unsigned) args: (dfd, filename, mode, dev)
|
||||
syscall sys_fchownat nr 289 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag)
|
||||
syscall sys_futimesat nr 290 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes)
|
||||
syscall sys_fstatat64 nr 291 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag)
|
||||
syscall sys_unlinkat nr 292 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag)
|
||||
syscall sys_renameat nr 293 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname)
|
||||
syscall sys_linkat nr 294 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_symlinkat nr 295 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname)
|
||||
syscall sys_readlinkat nr 296 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz)
|
||||
syscall sys_fchmodat nr 297 nbargs 3 types: (int, const char *, mode_t) args: (dfd, filename, mode)
|
||||
syscall sys_faccessat nr 298 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode)
|
||||
syscall sys_get_robust_list nr 299 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr)
|
||||
syscall sys_set_robust_list nr 300 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len)
|
||||
syscall sys_getcpu nr 302 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused)
|
||||
syscall sys_epoll_pwait nr 303 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize)
|
||||
syscall sys_utimensat nr 304 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags)
|
||||
syscall sys_signalfd nr 305 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask)
|
||||
syscall sys_timerfd_create nr 306 nbargs 2 types: (int, int) args: (clockid, flags)
|
||||
syscall sys_eventfd nr 307 nbargs 1 types: (unsigned int) args: (count)
|
||||
syscall sys_timerfd_settime nr 311 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr)
|
||||
syscall sys_timerfd_gettime nr 312 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr)
|
||||
syscall sys_signalfd4 nr 313 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags)
|
||||
syscall sys_eventfd2 nr 314 nbargs 2 types: (unsigned int, int) args: (count, flags)
|
||||
syscall sys_epoll_create1 nr 315 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_dup3 nr 316 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags)
|
||||
syscall sys_pipe2 nr 317 nbargs 2 types: (int *, int) args: (fildes, flags)
|
||||
syscall sys_inotify_init1 nr 318 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_perf_event_open nr 319 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags)
|
||||
syscall sys_preadv nr 320 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_pwritev nr 321 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_rt_tgsigqueueinfo nr 322 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo)
|
||||
syscall sys_prlimit64 nr 325 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim)
|
||||
syscall sys_socket nr 326 nbargs 3 types: (int, int, int) args: (family, type, protocol)
|
||||
syscall sys_bind nr 327 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen)
|
||||
syscall sys_connect nr 328 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen)
|
||||
syscall sys_listen nr 329 nbargs 2 types: (int, int) args: (fd, backlog)
|
||||
syscall sys_accept nr 330 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen)
|
||||
syscall sys_getsockname nr 331 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getpeername nr 332 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_socketpair nr 333 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec)
|
||||
syscall sys_send nr 334 nbargs 4 types: (int, void *, size_t, unsigned) args: (fd, buff, len, flags)
|
||||
syscall sys_sendto nr 335 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len)
|
||||
syscall sys_recvfrom nr 337 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len)
|
||||
syscall sys_shutdown nr 338 nbargs 2 types: (int, int) args: (fd, how)
|
||||
syscall sys_setsockopt nr 339 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_getsockopt nr 340 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_sendmsg nr 341 nbargs 3 types: (int, struct msghdr *, unsigned) args: (fd, msg, flags)
|
||||
syscall sys_recvmsg nr 342 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_recvmmsg nr 343 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout)
|
||||
syscall sys_accept4 nr 344 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags)
|
||||
syscall sys_clock_adjtime nr 347 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx)
|
||||
syscall sys_syncfs nr 348 nbargs 1 types: (int) args: (fd)
|
||||
syscall sys_sendmmsg nr 349 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags)
|
||||
syscall sys_setns nr 350 nbargs 2 types: (int, int) args: (fd, nstype)
|
|
@ -0,0 +1,291 @@
|
|||
syscall sys_restart_syscall nr 0 nbargs 0 types: () args: ()
|
||||
syscall sys_exit nr 1 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_read nr 3 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_write nr 4 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_open nr 5 nbargs 3 types: (const char *, int, int) args: (filename, flags, mode)
|
||||
syscall sys_close nr 6 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_waitpid nr 7 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options)
|
||||
syscall sys_creat nr 8 nbargs 2 types: (const char *, int) args: (pathname, mode)
|
||||
syscall sys_link nr 9 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_unlink nr 10 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_chdir nr 12 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_time nr 13 nbargs 1 types: (time_t *) args: (tloc)
|
||||
syscall sys_mknod nr 14 nbargs 3 types: (const char *, int, unsigned) args: (filename, mode, dev)
|
||||
syscall sys_chmod nr 15 nbargs 2 types: (const char *, mode_t) args: (filename, mode)
|
||||
syscall sys_lchown16 nr 16 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group)
|
||||
syscall sys_stat nr 18 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf)
|
||||
syscall sys_lseek nr 19 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin)
|
||||
syscall sys_getpid nr 20 nbargs 0 types: () args: ()
|
||||
syscall sys_mount nr 21 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data)
|
||||
syscall sys_oldumount nr 22 nbargs 1 types: (char *) args: (name)
|
||||
syscall sys_setuid16 nr 23 nbargs 1 types: (old_uid_t) args: (uid)
|
||||
syscall sys_getuid16 nr 24 nbargs 0 types: () args: ()
|
||||
syscall sys_stime nr 25 nbargs 1 types: (time_t *) args: (tptr)
|
||||
syscall sys_ptrace nr 26 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data)
|
||||
syscall sys_alarm nr 27 nbargs 1 types: (unsigned int) args: (seconds)
|
||||
syscall sys_fstat nr 28 nbargs 2 types: (unsigned int, struct __old_kernel_stat *) args: (fd, statbuf)
|
||||
syscall sys_pause nr 29 nbargs 0 types: () args: ()
|
||||
syscall sys_utime nr 30 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times)
|
||||
syscall sys_access nr 33 nbargs 2 types: (const char *, int) args: (filename, mode)
|
||||
syscall sys_nice nr 34 nbargs 1 types: (int) args: (increment)
|
||||
syscall sys_sync nr 36 nbargs 0 types: () args: ()
|
||||
syscall sys_kill nr 37 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_rename nr 38 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_mkdir nr 39 nbargs 2 types: (const char *, int) args: (pathname, mode)
|
||||
syscall sys_rmdir nr 40 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_dup nr 41 nbargs 1 types: (unsigned int) args: (fildes)
|
||||
syscall sys_pipe nr 42 nbargs 1 types: (int *) args: (fildes)
|
||||
syscall sys_times nr 43 nbargs 1 types: (struct tms *) args: (tbuf)
|
||||
syscall sys_brk nr 45 nbargs 1 types: (unsigned long) args: (brk)
|
||||
syscall sys_setgid16 nr 46 nbargs 1 types: (old_gid_t) args: (gid)
|
||||
syscall sys_getgid16 nr 47 nbargs 0 types: () args: ()
|
||||
syscall sys_signal nr 48 nbargs 2 types: (int, __sighandler_t) args: (sig, handler)
|
||||
syscall sys_geteuid16 nr 49 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid16 nr 50 nbargs 0 types: () args: ()
|
||||
syscall sys_acct nr 51 nbargs 1 types: (const char *) args: (name)
|
||||
syscall sys_umount nr 52 nbargs 2 types: (char *, int) args: (name, flags)
|
||||
syscall sys_ioctl nr 54 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_fcntl nr 55 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_setpgid nr 57 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid)
|
||||
syscall sys_olduname nr 59 nbargs 1 types: (struct oldold_utsname *) args: (name)
|
||||
syscall sys_umask nr 60 nbargs 1 types: (int) args: (mask)
|
||||
syscall sys_chroot nr 61 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_ustat nr 62 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf)
|
||||
syscall sys_dup2 nr 63 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd)
|
||||
syscall sys_getppid nr 64 nbargs 0 types: () args: ()
|
||||
syscall sys_getpgrp nr 65 nbargs 0 types: () args: ()
|
||||
syscall sys_setsid nr 66 nbargs 0 types: () args: ()
|
||||
syscall sys_sgetmask nr 68 nbargs 0 types: () args: ()
|
||||
syscall sys_ssetmask nr 69 nbargs 1 types: (int) args: (newmask)
|
||||
syscall sys_setreuid16 nr 70 nbargs 2 types: (old_uid_t, old_uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid16 nr 71 nbargs 2 types: (old_gid_t, old_gid_t) args: (rgid, egid)
|
||||
syscall sys_sigpending nr 73 nbargs 1 types: (old_sigset_t *) args: (set)
|
||||
syscall sys_sethostname nr 74 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_setrlimit nr 75 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_old_getrlimit nr 76 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrusage nr 77 nbargs 2 types: (int, struct rusage *) args: (who, ru)
|
||||
syscall sys_gettimeofday nr 78 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_settimeofday nr 79 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_getgroups16 nr 80 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups16 nr 81 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_old_select nr 82 nbargs 1 types: (struct sel_arg_struct *) args: (arg)
|
||||
syscall sys_symlink nr 83 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_lstat nr 84 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf)
|
||||
syscall sys_readlink nr 85 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz)
|
||||
syscall sys_uselib nr 86 nbargs 1 types: (const char *) args: (library)
|
||||
syscall sys_swapon nr 87 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags)
|
||||
syscall sys_reboot nr 88 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg)
|
||||
syscall sys_old_readdir nr 89 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_old_mmap nr 90 nbargs 1 types: (struct mmap_arg_struct *) args: (arg)
|
||||
syscall sys_munmap nr 91 nbargs 2 types: (unsigned long, size_t) args: (addr, len)
|
||||
syscall sys_truncate nr 92 nbargs 2 types: (const char *, long) args: (path, length)
|
||||
syscall sys_ftruncate nr 93 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length)
|
||||
syscall sys_fchmod nr 94 nbargs 2 types: (unsigned int, mode_t) args: (fd, mode)
|
||||
syscall sys_fchown16 nr 95 nbargs 3 types: (unsigned int, old_uid_t, old_gid_t) args: (fd, user, group)
|
||||
syscall sys_getpriority nr 96 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_setpriority nr 97 nbargs 3 types: (int, int, int) args: (which, who, niceval)
|
||||
syscall sys_statfs nr 99 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf)
|
||||
syscall sys_fstatfs nr 100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf)
|
||||
syscall sys_socketcall nr 102 nbargs 2 types: (int, unsigned long *) args: (call, args)
|
||||
syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len)
|
||||
syscall sys_setitimer nr 104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue)
|
||||
syscall sys_getitimer nr 105 nbargs 2 types: (int, struct itimerval *) args: (which, value)
|
||||
syscall sys_newstat nr 106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newlstat nr 107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newfstat nr 108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf)
|
||||
syscall sys_uname nr 109 nbargs 1 types: (struct old_utsname *) args: (name)
|
||||
syscall sys_vhangup nr 111 nbargs 0 types: () args: ()
|
||||
syscall sys_wait4 nr 114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru)
|
||||
syscall sys_swapoff nr 115 nbargs 1 types: (const char *) args: (specialfile)
|
||||
syscall sys_sysinfo nr 116 nbargs 1 types: (struct sysinfo *) args: (info)
|
||||
syscall sys_ipc nr 117 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth)
|
||||
syscall sys_fsync nr 118 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_setdomainname nr 121 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_newuname nr 122 nbargs 1 types: (struct new_utsname *) args: (name)
|
||||
syscall sys_adjtimex nr 124 nbargs 1 types: (struct timex *) args: (txc_p)
|
||||
syscall sys_mprotect nr 125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot)
|
||||
syscall sys_sigprocmask nr 126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset)
|
||||
syscall sys_init_module nr 128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs)
|
||||
syscall sys_delete_module nr 129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags)
|
||||
syscall sys_quotactl nr 131 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr)
|
||||
syscall sys_getpgid nr 132 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fchdir nr 133 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_bdflush nr 134 nbargs 2 types: (int, long) args: (func, data)
|
||||
syscall sys_sysfs nr 135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2)
|
||||
syscall sys_personality nr 136 nbargs 1 types: (unsigned int) args: (personality)
|
||||
syscall sys_setfsuid16 nr 138 nbargs 1 types: (old_uid_t) args: (uid)
|
||||
syscall sys_setfsgid16 nr 139 nbargs 1 types: (old_gid_t) args: (gid)
|
||||
syscall sys_llseek nr 140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin)
|
||||
syscall sys_getdents nr 141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_select nr 142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp)
|
||||
syscall sys_flock nr 143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd)
|
||||
syscall sys_msync nr 144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
||||
syscall sys_readv nr 145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_writev nr 146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_getsid nr 147 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fdatasync nr 148 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_sysctl nr 149 nbargs 1 types: (struct __sysctl_args *) args: (args)
|
||||
syscall sys_mlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_munlock nr 151 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_mlockall nr 152 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_munlockall nr 153 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_setparam nr 154 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_getparam nr 155 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setscheduler nr 156 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param)
|
||||
syscall sys_sched_getscheduler nr 157 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_sched_yield nr 158 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_get_priority_max nr 159 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_get_priority_min nr 160 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_rr_get_interval nr 161 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval)
|
||||
syscall sys_nanosleep nr 162 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp)
|
||||
syscall sys_mremap nr 163 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr)
|
||||
syscall sys_setresuid16 nr 164 nbargs 3 types: (old_uid_t, old_uid_t, old_uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid16 nr 165 nbargs 3 types: (old_uid_t *, old_uid_t *, old_uid_t *) args: (ruid, euid, suid)
|
||||
syscall sys_poll nr 168 nbargs 3 types: (struct pollfd *, unsigned int, long) args: (ufds, nfds, timeout_msecs)
|
||||
syscall sys_setresgid16 nr 170 nbargs 3 types: (old_gid_t, old_gid_t, old_gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid16 nr 171 nbargs 3 types: (old_gid_t *, old_gid_t *, old_gid_t *) args: (rgid, egid, sgid)
|
||||
syscall sys_prctl nr 172 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_rt_sigaction nr 174 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize)
|
||||
syscall sys_rt_sigprocmask nr 175 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize)
|
||||
syscall sys_rt_sigpending nr 176 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize)
|
||||
syscall sys_rt_sigtimedwait nr 177 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize)
|
||||
syscall sys_rt_sigqueueinfo nr 178 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo)
|
||||
syscall sys_rt_sigsuspend nr 179 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize)
|
||||
syscall sys_chown16 nr 182 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group)
|
||||
syscall sys_getcwd nr 183 nbargs 2 types: (char *, unsigned long) args: (buf, size)
|
||||
syscall sys_capget nr 184 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr)
|
||||
syscall sys_capset nr 185 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data)
|
||||
syscall sys_sendfile nr 187 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_getrlimit nr 191 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_mmap_pgoff nr 192 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, pgoff)
|
||||
syscall sys_stat64 nr 195 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_lstat64 nr 196 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_fstat64 nr 197 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf)
|
||||
syscall sys_lchown nr 198 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_getuid nr 199 nbargs 0 types: () args: ()
|
||||
syscall sys_getgid nr 200 nbargs 0 types: () args: ()
|
||||
syscall sys_geteuid nr 201 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid nr 202 nbargs 0 types: () args: ()
|
||||
syscall sys_setreuid nr 203 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid nr 204 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid)
|
||||
syscall sys_getgroups nr 205 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups nr 206 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_fchown nr 207 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group)
|
||||
syscall sys_setresuid nr 208 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid nr 209 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruid, euid, suid)
|
||||
syscall sys_setresgid nr 210 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid nr 211 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgid, egid, sgid)
|
||||
syscall sys_chown nr 212 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_setuid nr 213 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setgid nr 214 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_setfsuid nr 215 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setfsgid nr 216 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_pivot_root nr 217 nbargs 2 types: (const char *, const char *) args: (new_root, put_old)
|
||||
syscall sys_mincore nr 218 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec)
|
||||
syscall sys_madvise nr 219 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior)
|
||||
syscall sys_getdents64 nr 220 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_fcntl64 nr 221 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_gettid nr 224 nbargs 0 types: () args: ()
|
||||
syscall sys_setxattr nr 226 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_lsetxattr nr 227 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_fsetxattr nr 228 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags)
|
||||
syscall sys_getxattr nr 229 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_lgetxattr nr 230 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_fgetxattr nr 231 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size)
|
||||
syscall sys_listxattr nr 232 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_llistxattr nr 233 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_flistxattr nr 234 nbargs 3 types: (int, char *, size_t) args: (fd, list, size)
|
||||
syscall sys_removexattr nr 235 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_lremovexattr nr 236 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_fremovexattr nr 237 nbargs 2 types: (int, const char *) args: (fd, name)
|
||||
syscall sys_tkill nr 238 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_sendfile64 nr 239 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_futex nr 240 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3)
|
||||
syscall sys_sched_setaffinity nr 241 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_sched_getaffinity nr 242 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_io_setup nr 245 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp)
|
||||
syscall sys_io_destroy nr 246 nbargs 1 types: (aio_context_t) args: (ctx)
|
||||
syscall sys_io_getevents nr 247 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout)
|
||||
syscall sys_io_submit nr 248 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp)
|
||||
syscall sys_io_cancel nr 249 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result)
|
||||
syscall sys_exit_group nr 252 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_epoll_create nr 254 nbargs 1 types: (int) args: (size)
|
||||
syscall sys_epoll_ctl nr 255 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event)
|
||||
syscall sys_epoll_wait nr 256 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout)
|
||||
syscall sys_remap_file_pages nr 257 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags)
|
||||
syscall sys_set_tid_address nr 258 nbargs 1 types: (int *) args: (tidptr)
|
||||
syscall sys_timer_create nr 259 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id)
|
||||
syscall sys_timer_settime nr 260 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting)
|
||||
syscall sys_timer_gettime nr 261 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting)
|
||||
syscall sys_timer_getoverrun nr 262 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_timer_delete nr 263 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_clock_settime nr 264 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_gettime nr 265 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_getres nr 266 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_nanosleep nr 267 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp)
|
||||
syscall sys_statfs64 nr 268 nbargs 3 types: (const char *, size_t, struct statfs64 *) args: (pathname, sz, buf)
|
||||
syscall sys_fstatfs64 nr 269 nbargs 3 types: (unsigned int, size_t, struct statfs64 *) args: (fd, sz, buf)
|
||||
syscall sys_tgkill nr 270 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig)
|
||||
syscall sys_utimes nr 271 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes)
|
||||
syscall sys_mq_open nr 277 nbargs 4 types: (const char *, int, mode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr)
|
||||
syscall sys_mq_unlink nr 278 nbargs 1 types: (const char *) args: (u_name)
|
||||
syscall sys_mq_timedsend nr 279 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_timedreceive nr 280 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_notify nr 281 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification)
|
||||
syscall sys_mq_getsetattr nr 282 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat)
|
||||
syscall sys_kexec_load nr 283 nbargs 4 types: (unsigned long, unsigned long, struct kexec_segment *, unsigned long) args: (entry, nr_segments, segments, flags)
|
||||
syscall sys_waitid nr 284 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru)
|
||||
syscall sys_add_key nr 286 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid)
|
||||
syscall sys_request_key nr 287 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid)
|
||||
syscall sys_keyctl nr 288 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_ioprio_set nr 289 nbargs 3 types: (int, int, int) args: (which, who, ioprio)
|
||||
syscall sys_ioprio_get nr 290 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_inotify_init nr 291 nbargs 0 types: () args: ()
|
||||
syscall sys_inotify_add_watch nr 292 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask)
|
||||
syscall sys_inotify_rm_watch nr 293 nbargs 2 types: (int, __s32) args: (fd, wd)
|
||||
syscall sys_openat nr 295 nbargs 4 types: (int, const char *, int, int) args: (dfd, filename, flags, mode)
|
||||
syscall sys_mkdirat nr 296 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, mode)
|
||||
syscall sys_mknodat nr 297 nbargs 4 types: (int, const char *, int, unsigned) args: (dfd, filename, mode, dev)
|
||||
syscall sys_fchownat nr 298 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag)
|
||||
syscall sys_futimesat nr 299 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes)
|
||||
syscall sys_fstatat64 nr 300 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag)
|
||||
syscall sys_unlinkat nr 301 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag)
|
||||
syscall sys_renameat nr 302 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname)
|
||||
syscall sys_linkat nr 303 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_symlinkat nr 304 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname)
|
||||
syscall sys_readlinkat nr 305 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz)
|
||||
syscall sys_fchmodat nr 306 nbargs 3 types: (int, const char *, mode_t) args: (dfd, filename, mode)
|
||||
syscall sys_faccessat nr 307 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode)
|
||||
syscall sys_pselect6 nr 308 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig)
|
||||
syscall sys_ppoll nr 309 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize)
|
||||
syscall sys_unshare nr 310 nbargs 1 types: (unsigned long) args: (unshare_flags)
|
||||
syscall sys_set_robust_list nr 311 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len)
|
||||
syscall sys_get_robust_list nr 312 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr)
|
||||
syscall sys_splice nr 313 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags)
|
||||
syscall sys_tee nr 315 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags)
|
||||
syscall sys_vmsplice nr 316 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags)
|
||||
syscall sys_getcpu nr 318 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused)
|
||||
syscall sys_epoll_pwait nr 319 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize)
|
||||
syscall sys_utimensat nr 320 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags)
|
||||
syscall sys_signalfd nr 321 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask)
|
||||
syscall sys_timerfd_create nr 322 nbargs 2 types: (int, int) args: (clockid, flags)
|
||||
syscall sys_eventfd nr 323 nbargs 1 types: (unsigned int) args: (count)
|
||||
syscall sys_timerfd_settime nr 325 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr)
|
||||
syscall sys_timerfd_gettime nr 326 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr)
|
||||
syscall sys_signalfd4 nr 327 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags)
|
||||
syscall sys_eventfd2 nr 328 nbargs 2 types: (unsigned int, int) args: (count, flags)
|
||||
syscall sys_epoll_create1 nr 329 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_dup3 nr 330 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags)
|
||||
syscall sys_pipe2 nr 331 nbargs 2 types: (int *, int) args: (fildes, flags)
|
||||
syscall sys_inotify_init1 nr 332 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_preadv nr 333 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_pwritev nr 334 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_rt_tgsigqueueinfo nr 335 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo)
|
||||
syscall sys_perf_event_open nr 336 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags)
|
||||
syscall sys_recvmmsg nr 337 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout)
|
||||
syscall sys_fanotify_init nr 338 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags)
|
||||
syscall sys_prlimit64 nr 340 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim)
|
||||
syscall sys_clock_adjtime nr 343 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx)
|
||||
syscall sys_syncfs nr 344 nbargs 1 types: (int) args: (fd)
|
||||
syscall sys_sendmmsg nr 345 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags)
|
||||
syscall sys_setns nr 346 nbargs 2 types: (int, int) args: (fd, nstype)
|
|
@ -0,0 +1,289 @@
|
|||
syscall sys_read nr 0 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_write nr 1 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_open nr 2 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode)
|
||||
syscall sys_close nr 3 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_newstat nr 4 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newfstat nr 5 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf)
|
||||
syscall sys_newlstat nr 6 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_poll nr 7 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs)
|
||||
syscall sys_lseek nr 8 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, whence)
|
||||
syscall sys_mmap nr 9 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, off)
|
||||
syscall sys_mprotect nr 10 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot)
|
||||
syscall sys_munmap nr 11 nbargs 2 types: (unsigned long, size_t) args: (addr, len)
|
||||
syscall sys_brk nr 12 nbargs 1 types: (unsigned long) args: (brk)
|
||||
syscall sys_rt_sigaction nr 13 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize)
|
||||
syscall sys_rt_sigprocmask nr 14 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize)
|
||||
syscall sys_ioctl nr 16 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_pread64 nr 17 nbargs 4 types: (unsigned int, char *, size_t, loff_t) args: (fd, buf, count, pos)
|
||||
syscall sys_pwrite64 nr 18 nbargs 4 types: (unsigned int, const char *, size_t, loff_t) args: (fd, buf, count, pos)
|
||||
syscall sys_readv nr 19 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_writev nr 20 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_access nr 21 nbargs 2 types: (const char *, int) args: (filename, mode)
|
||||
syscall sys_pipe nr 22 nbargs 1 types: (int *) args: (fildes)
|
||||
syscall sys_select nr 23 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp)
|
||||
syscall sys_sched_yield nr 24 nbargs 0 types: () args: ()
|
||||
syscall sys_mremap nr 25 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr)
|
||||
syscall sys_msync nr 26 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
||||
syscall sys_mincore nr 27 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec)
|
||||
syscall sys_madvise nr 28 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior)
|
||||
syscall sys_shmget nr 29 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg)
|
||||
syscall sys_shmat nr 30 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg)
|
||||
syscall sys_shmctl nr 31 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf)
|
||||
syscall sys_dup nr 32 nbargs 1 types: (unsigned int) args: (fildes)
|
||||
syscall sys_dup2 nr 33 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd)
|
||||
syscall sys_pause nr 34 nbargs 0 types: () args: ()
|
||||
syscall sys_nanosleep nr 35 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp)
|
||||
syscall sys_getitimer nr 36 nbargs 2 types: (int, struct itimerval *) args: (which, value)
|
||||
syscall sys_alarm nr 37 nbargs 1 types: (unsigned int) args: (seconds)
|
||||
syscall sys_setitimer nr 38 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue)
|
||||
syscall sys_getpid nr 39 nbargs 0 types: () args: ()
|
||||
syscall sys_sendfile64 nr 40 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_socket nr 41 nbargs 3 types: (int, int, int) args: (family, type, protocol)
|
||||
syscall sys_connect nr 42 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen)
|
||||
syscall sys_accept nr 43 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen)
|
||||
syscall sys_sendto nr 44 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len)
|
||||
syscall sys_recvfrom nr 45 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len)
|
||||
syscall sys_sendmsg nr 46 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_recvmsg nr 47 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_shutdown nr 48 nbargs 2 types: (int, int) args: (fd, how)
|
||||
syscall sys_bind nr 49 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen)
|
||||
syscall sys_listen nr 50 nbargs 2 types: (int, int) args: (fd, backlog)
|
||||
syscall sys_getsockname nr 51 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getpeername nr 52 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_socketpair nr 53 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec)
|
||||
syscall sys_setsockopt nr 54 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_getsockopt nr 55 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_exit nr 60 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_wait4 nr 61 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru)
|
||||
syscall sys_kill nr 62 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_newuname nr 63 nbargs 1 types: (struct new_utsname *) args: (name)
|
||||
syscall sys_semget nr 64 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg)
|
||||
syscall sys_semop nr 65 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops)
|
||||
syscall sys_semctl nr 66 nbargs 4 types: (int, int, int, unsigned long) args: (semid, semnum, cmd, arg)
|
||||
syscall sys_shmdt nr 67 nbargs 1 types: (char *) args: (shmaddr)
|
||||
syscall sys_msgget nr 68 nbargs 2 types: (key_t, int) args: (key, msgflg)
|
||||
syscall sys_msgsnd nr 69 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg)
|
||||
syscall sys_msgrcv nr 70 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg)
|
||||
syscall sys_msgctl nr 71 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf)
|
||||
syscall sys_fcntl nr 72 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_flock nr 73 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd)
|
||||
syscall sys_fsync nr 74 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_fdatasync nr 75 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_truncate nr 76 nbargs 2 types: (const char *, long) args: (path, length)
|
||||
syscall sys_ftruncate nr 77 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length)
|
||||
syscall sys_getdents nr 78 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_getcwd nr 79 nbargs 2 types: (char *, unsigned long) args: (buf, size)
|
||||
syscall sys_chdir nr 80 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_fchdir nr 81 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_rename nr 82 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_mkdir nr 83 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_rmdir nr 84 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_creat nr 85 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_link nr 86 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_unlink nr 87 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_symlink nr 88 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_readlink nr 89 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz)
|
||||
syscall sys_chmod nr 90 nbargs 2 types: (const char *, umode_t) args: (filename, mode)
|
||||
syscall sys_fchmod nr 91 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode)
|
||||
syscall sys_chown nr 92 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_fchown nr 93 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group)
|
||||
syscall sys_lchown nr 94 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_umask nr 95 nbargs 1 types: (int) args: (mask)
|
||||
syscall sys_gettimeofday nr 96 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_getrlimit nr 97 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrusage nr 98 nbargs 2 types: (int, struct rusage *) args: (who, ru)
|
||||
syscall sys_sysinfo nr 99 nbargs 1 types: (struct sysinfo *) args: (info)
|
||||
syscall sys_times nr 100 nbargs 1 types: (struct tms *) args: (tbuf)
|
||||
syscall sys_ptrace nr 101 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data)
|
||||
syscall sys_getuid nr 102 nbargs 0 types: () args: ()
|
||||
syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len)
|
||||
syscall sys_getgid nr 104 nbargs 0 types: () args: ()
|
||||
syscall sys_setuid nr 105 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setgid nr 106 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_geteuid nr 107 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid nr 108 nbargs 0 types: () args: ()
|
||||
syscall sys_setpgid nr 109 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid)
|
||||
syscall sys_getppid nr 110 nbargs 0 types: () args: ()
|
||||
syscall sys_getpgrp nr 111 nbargs 0 types: () args: ()
|
||||
syscall sys_setsid nr 112 nbargs 0 types: () args: ()
|
||||
syscall sys_setreuid nr 113 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid nr 114 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid)
|
||||
syscall sys_getgroups nr 115 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups nr 116 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setresuid nr 117 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid nr 118 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruidp, euidp, suidp)
|
||||
syscall sys_setresgid nr 119 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid nr 120 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgidp, egidp, sgidp)
|
||||
syscall sys_getpgid nr 121 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_setfsuid nr 122 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setfsgid nr 123 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_getsid nr 124 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_capget nr 125 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr)
|
||||
syscall sys_capset nr 126 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data)
|
||||
syscall sys_rt_sigpending nr 127 nbargs 2 types: (sigset_t *, size_t) args: (uset, sigsetsize)
|
||||
syscall sys_rt_sigtimedwait nr 128 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize)
|
||||
syscall sys_rt_sigqueueinfo nr 129 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo)
|
||||
syscall sys_rt_sigsuspend nr 130 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize)
|
||||
syscall sys_sigaltstack nr 131 nbargs 2 types: (const stack_t *, stack_t *) args: (uss, uoss)
|
||||
syscall sys_utime nr 132 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times)
|
||||
syscall sys_mknod nr 133 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev)
|
||||
syscall sys_personality nr 135 nbargs 1 types: (unsigned int) args: (personality)
|
||||
syscall sys_ustat nr 136 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf)
|
||||
syscall sys_statfs nr 137 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf)
|
||||
syscall sys_fstatfs nr 138 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf)
|
||||
syscall sys_sysfs nr 139 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2)
|
||||
syscall sys_getpriority nr 140 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_setpriority nr 141 nbargs 3 types: (int, int, int) args: (which, who, niceval)
|
||||
syscall sys_sched_setparam nr 142 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_getparam nr 143 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setscheduler nr 144 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param)
|
||||
syscall sys_sched_getscheduler nr 145 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_sched_get_priority_max nr 146 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_get_priority_min nr 147 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_rr_get_interval nr 148 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval)
|
||||
syscall sys_mlock nr 149 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_munlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_mlockall nr 151 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_munlockall nr 152 nbargs 0 types: () args: ()
|
||||
syscall sys_vhangup nr 153 nbargs 0 types: () args: ()
|
||||
syscall sys_pivot_root nr 155 nbargs 2 types: (const char *, const char *) args: (new_root, put_old)
|
||||
syscall sys_sysctl nr 156 nbargs 1 types: (struct __sysctl_args *) args: (args)
|
||||
syscall sys_prctl nr 157 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_adjtimex nr 159 nbargs 1 types: (struct timex *) args: (txc_p)
|
||||
syscall sys_setrlimit nr 160 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_chroot nr 161 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_sync nr 162 nbargs 0 types: () args: ()
|
||||
syscall sys_acct nr 163 nbargs 1 types: (const char *) args: (name)
|
||||
syscall sys_settimeofday nr 164 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_mount nr 165 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data)
|
||||
syscall sys_umount nr 166 nbargs 2 types: (char *, int) args: (name, flags)
|
||||
syscall sys_swapon nr 167 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags)
|
||||
syscall sys_swapoff nr 168 nbargs 1 types: (const char *) args: (specialfile)
|
||||
syscall sys_reboot nr 169 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg)
|
||||
syscall sys_sethostname nr 170 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_setdomainname nr 171 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_init_module nr 175 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs)
|
||||
syscall sys_delete_module nr 176 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags)
|
||||
syscall sys_quotactl nr 179 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr)
|
||||
syscall sys_gettid nr 186 nbargs 0 types: () args: ()
|
||||
syscall sys_readahead nr 187 nbargs 3 types: (int, loff_t, size_t) args: (fd, offset, count)
|
||||
syscall sys_setxattr nr 188 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_lsetxattr nr 189 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_fsetxattr nr 190 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags)
|
||||
syscall sys_getxattr nr 191 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_lgetxattr nr 192 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_fgetxattr nr 193 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size)
|
||||
syscall sys_listxattr nr 194 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_llistxattr nr 195 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_flistxattr nr 196 nbargs 3 types: (int, char *, size_t) args: (fd, list, size)
|
||||
syscall sys_removexattr nr 197 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_lremovexattr nr 198 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_fremovexattr nr 199 nbargs 2 types: (int, const char *) args: (fd, name)
|
||||
syscall sys_tkill nr 200 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_time nr 201 nbargs 1 types: (time_t *) args: (tloc)
|
||||
syscall sys_futex nr 202 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3)
|
||||
syscall sys_sched_setaffinity nr 203 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_sched_getaffinity nr 204 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_io_setup nr 206 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp)
|
||||
syscall sys_io_destroy nr 207 nbargs 1 types: (aio_context_t) args: (ctx)
|
||||
syscall sys_io_getevents nr 208 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout)
|
||||
syscall sys_io_submit nr 209 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp)
|
||||
syscall sys_io_cancel nr 210 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result)
|
||||
syscall sys_lookup_dcookie nr 212 nbargs 3 types: (u64, char *, size_t) args: (cookie64, buf, len)
|
||||
syscall sys_epoll_create nr 213 nbargs 1 types: (int) args: (size)
|
||||
syscall sys_remap_file_pages nr 216 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags)
|
||||
syscall sys_getdents64 nr 217 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_set_tid_address nr 218 nbargs 1 types: (int *) args: (tidptr)
|
||||
syscall sys_restart_syscall nr 219 nbargs 0 types: () args: ()
|
||||
syscall sys_semtimedop nr 220 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout)
|
||||
syscall sys_fadvise64 nr 221 nbargs 4 types: (int, loff_t, size_t, int) args: (fd, offset, len, advice)
|
||||
syscall sys_timer_create nr 222 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id)
|
||||
syscall sys_timer_settime nr 223 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting)
|
||||
syscall sys_timer_gettime nr 224 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting)
|
||||
syscall sys_timer_getoverrun nr 225 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_timer_delete nr 226 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_clock_settime nr 227 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_gettime nr 228 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_getres nr 229 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_nanosleep nr 230 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp)
|
||||
syscall sys_exit_group nr 231 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_epoll_wait nr 232 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout)
|
||||
syscall sys_epoll_ctl nr 233 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event)
|
||||
syscall sys_tgkill nr 234 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig)
|
||||
syscall sys_utimes nr 235 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes)
|
||||
syscall sys_mbind nr 237 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long *, unsigned long, unsigned) args: (start, len, mode, nmask, maxnode, flags)
|
||||
syscall sys_set_mempolicy nr 238 nbargs 3 types: (int, unsigned long *, unsigned long) args: (mode, nmask, maxnode)
|
||||
syscall sys_get_mempolicy nr 239 nbargs 5 types: (int *, unsigned long *, unsigned long, unsigned long, unsigned long) args: (policy, nmask, maxnode, addr, flags)
|
||||
syscall sys_mq_open nr 240 nbargs 4 types: (const char *, int, umode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr)
|
||||
syscall sys_mq_unlink nr 241 nbargs 1 types: (const char *) args: (u_name)
|
||||
syscall sys_mq_timedsend nr 242 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_timedreceive nr 243 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_notify nr 244 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification)
|
||||
syscall sys_mq_getsetattr nr 245 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat)
|
||||
syscall sys_kexec_load nr 246 nbargs 4 types: (unsigned long, unsigned long, struct kexec_segment *, unsigned long) args: (entry, nr_segments, segments, flags)
|
||||
syscall sys_waitid nr 247 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru)
|
||||
syscall sys_add_key nr 248 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid)
|
||||
syscall sys_request_key nr 249 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid)
|
||||
syscall sys_keyctl nr 250 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_ioprio_set nr 251 nbargs 3 types: (int, int, int) args: (which, who, ioprio)
|
||||
syscall sys_ioprio_get nr 252 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_inotify_init nr 253 nbargs 0 types: () args: ()
|
||||
syscall sys_inotify_add_watch nr 254 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask)
|
||||
syscall sys_inotify_rm_watch nr 255 nbargs 2 types: (int, __s32) args: (fd, wd)
|
||||
syscall sys_migrate_pages nr 256 nbargs 4 types: (pid_t, unsigned long, const unsigned long *, const unsigned long *) args: (pid, maxnode, old_nodes, new_nodes)
|
||||
syscall sys_openat nr 257 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode)
|
||||
syscall sys_mkdirat nr 258 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode)
|
||||
syscall sys_mknodat nr 259 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev)
|
||||
syscall sys_fchownat nr 260 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag)
|
||||
syscall sys_futimesat nr 261 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes)
|
||||
syscall sys_newfstatat nr 262 nbargs 4 types: (int, const char *, struct stat *, int) args: (dfd, filename, statbuf, flag)
|
||||
syscall sys_unlinkat nr 263 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag)
|
||||
syscall sys_renameat nr 264 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname)
|
||||
syscall sys_linkat nr 265 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_symlinkat nr 266 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname)
|
||||
syscall sys_readlinkat nr 267 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz)
|
||||
syscall sys_fchmodat nr 268 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode)
|
||||
syscall sys_faccessat nr 269 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode)
|
||||
syscall sys_pselect6 nr 270 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig)
|
||||
syscall sys_ppoll nr 271 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize)
|
||||
syscall sys_unshare nr 272 nbargs 1 types: (unsigned long) args: (unshare_flags)
|
||||
syscall sys_set_robust_list nr 273 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len)
|
||||
syscall sys_get_robust_list nr 274 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr)
|
||||
syscall sys_splice nr 275 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags)
|
||||
syscall sys_tee nr 276 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags)
|
||||
syscall sys_sync_file_range nr 277 nbargs 4 types: (int, loff_t, loff_t, unsigned int) args: (fd, offset, nbytes, flags)
|
||||
syscall sys_vmsplice nr 278 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags)
|
||||
syscall sys_move_pages nr 279 nbargs 6 types: (pid_t, unsigned long, const void * *, const int *, int *, int) args: (pid, nr_pages, pages, nodes, status, flags)
|
||||
syscall sys_utimensat nr 280 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags)
|
||||
syscall sys_epoll_pwait nr 281 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize)
|
||||
syscall sys_signalfd nr 282 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask)
|
||||
syscall sys_timerfd_create nr 283 nbargs 2 types: (int, int) args: (clockid, flags)
|
||||
syscall sys_eventfd nr 284 nbargs 1 types: (unsigned int) args: (count)
|
||||
syscall sys_fallocate nr 285 nbargs 4 types: (int, int, loff_t, loff_t) args: (fd, mode, offset, len)
|
||||
syscall sys_timerfd_settime nr 286 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr)
|
||||
syscall sys_timerfd_gettime nr 287 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr)
|
||||
syscall sys_accept4 nr 288 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags)
|
||||
syscall sys_signalfd4 nr 289 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags)
|
||||
syscall sys_eventfd2 nr 290 nbargs 2 types: (unsigned int, int) args: (count, flags)
|
||||
syscall sys_epoll_create1 nr 291 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_dup3 nr 292 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags)
|
||||
syscall sys_pipe2 nr 293 nbargs 2 types: (int *, int) args: (fildes, flags)
|
||||
syscall sys_inotify_init1 nr 294 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_preadv nr 295 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_pwritev nr 296 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_rt_tgsigqueueinfo nr 297 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo)
|
||||
syscall sys_perf_event_open nr 298 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags)
|
||||
syscall sys_recvmmsg nr 299 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout)
|
||||
syscall sys_fanotify_init nr 300 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags)
|
||||
syscall sys_fanotify_mark nr 301 nbargs 5 types: (int, unsigned int, __u64, int, const char *) args: (fanotify_fd, flags, mask, dfd, pathname)
|
||||
syscall sys_prlimit64 nr 302 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim)
|
||||
syscall sys_name_to_handle_at nr 303 nbargs 5 types: (int, const char *, struct file_handle *, int *, int) args: (dfd, name, handle, mnt_id, flag)
|
||||
syscall sys_open_by_handle_at nr 304 nbargs 3 types: (int, struct file_handle *, int) args: (mountdirfd, handle, flags)
|
||||
syscall sys_clock_adjtime nr 305 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx)
|
||||
syscall sys_syncfs nr 306 nbargs 1 types: (int) args: (fd)
|
||||
syscall sys_sendmmsg nr 307 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags)
|
||||
syscall sys_setns nr 308 nbargs 2 types: (int, int) args: (fd, nstype)
|
||||
syscall sys_getcpu nr 309 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused)
|
||||
syscall sys_process_vm_readv nr 310 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags)
|
||||
syscall sys_process_vm_writev nr 311 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags)
|
||||
syscall sys_finit_module nr 313 nbargs 3 types: (int, const char *, int) args: (fd, uargs, flags)
|
|
@ -0,0 +1,283 @@
|
|||
syscall sys_exit nr 4001 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_read nr 4003 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_write nr 4004 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_open nr 4005 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode)
|
||||
syscall sys_close nr 4006 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_waitpid nr 4007 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options)
|
||||
syscall sys_creat nr 4008 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_link nr 4009 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_unlink nr 4010 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_execve nr 4011 nbargs 3 types: (const char *, const char *const *, const char *const *) args: (filename, argv, envp)
|
||||
syscall sys_chdir nr 4012 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_time nr 4013 nbargs 1 types: (time_t *) args: (tloc)
|
||||
syscall sys_mknod nr 4014 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev)
|
||||
syscall sys_chmod nr 4015 nbargs 2 types: (const char *, umode_t) args: (filename, mode)
|
||||
syscall sys_lchown nr 4016 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_lseek nr 4019 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, whence)
|
||||
syscall sys_getpid nr 4020 nbargs 0 types: () args: ()
|
||||
syscall sys_mount nr 4021 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data)
|
||||
syscall sys_oldumount nr 4022 nbargs 1 types: (char *) args: (name)
|
||||
syscall sys_setuid nr 4023 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_getuid nr 4024 nbargs 0 types: () args: ()
|
||||
syscall sys_stime nr 4025 nbargs 1 types: (time_t *) args: (tptr)
|
||||
syscall sys_ptrace nr 4026 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data)
|
||||
syscall sys_alarm nr 4027 nbargs 1 types: (unsigned int) args: (seconds)
|
||||
syscall sys_pause nr 4029 nbargs 0 types: () args: ()
|
||||
syscall sys_utime nr 4030 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times)
|
||||
syscall sys_access nr 4033 nbargs 2 types: (const char *, int) args: (filename, mode)
|
||||
syscall sys_nice nr 4034 nbargs 1 types: (int) args: (increment)
|
||||
syscall sys_sync nr 4036 nbargs 0 types: () args: ()
|
||||
syscall sys_kill nr 4037 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_rename nr 4038 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_mkdir nr 4039 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_rmdir nr 4040 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_dup nr 4041 nbargs 1 types: (unsigned int) args: (fildes)
|
||||
syscall sys_times nr 4043 nbargs 1 types: (struct tms *) args: (tbuf)
|
||||
syscall sys_brk nr 4045 nbargs 1 types: (unsigned long) args: (brk)
|
||||
syscall sys_setgid nr 4046 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_getgid nr 4047 nbargs 0 types: () args: ()
|
||||
syscall sys_geteuid nr 4049 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid nr 4050 nbargs 0 types: () args: ()
|
||||
syscall sys_umount nr 4052 nbargs 2 types: (char *, int) args: (name, flags)
|
||||
syscall sys_ioctl nr 4054 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_fcntl nr 4055 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_setpgid nr 4057 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid)
|
||||
syscall sys_olduname nr 4059 nbargs 1 types: (struct oldold_utsname *) args: (name)
|
||||
syscall sys_umask nr 4060 nbargs 1 types: (int) args: (mask)
|
||||
syscall sys_chroot nr 4061 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_ustat nr 4062 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf)
|
||||
syscall sys_dup2 nr 4063 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd)
|
||||
syscall sys_getppid nr 4064 nbargs 0 types: () args: ()
|
||||
syscall sys_getpgrp nr 4065 nbargs 0 types: () args: ()
|
||||
syscall sys_setsid nr 4066 nbargs 0 types: () args: ()
|
||||
syscall sys_sigaction nr 4067 nbargs 3 types: (int, const struct sigaction *, struct sigaction *) args: (sig, act, oact)
|
||||
syscall sys_sgetmask nr 4068 nbargs 0 types: () args: ()
|
||||
syscall sys_ssetmask nr 4069 nbargs 1 types: (int) args: (newmask)
|
||||
syscall sys_setreuid nr 4070 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid nr 4071 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid)
|
||||
syscall sys_sigsuspend nr 4072 nbargs 1 types: (sigset_t *) args: (uset)
|
||||
syscall sys_sigpending nr 4073 nbargs 1 types: (old_sigset_t *) args: (set)
|
||||
syscall sys_sethostname nr 4074 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_setrlimit nr 4075 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrlimit nr 4076 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrusage nr 4077 nbargs 2 types: (int, struct rusage *) args: (who, ru)
|
||||
syscall sys_gettimeofday nr 4078 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_settimeofday nr 4079 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_getgroups nr 4080 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups nr 4081 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_symlink nr 4083 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_readlink nr 4085 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz)
|
||||
syscall sys_uselib nr 4086 nbargs 1 types: (const char *) args: (library)
|
||||
syscall sys_reboot nr 4088 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg)
|
||||
syscall sys_old_readdir nr 4089 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_mips_mmap nr 4090 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t) args: (addr, len, prot, flags, fd, offset)
|
||||
syscall sys_munmap nr 4091 nbargs 2 types: (unsigned long, size_t) args: (addr, len)
|
||||
syscall sys_truncate nr 4092 nbargs 2 types: (const char *, long) args: (path, length)
|
||||
syscall sys_ftruncate nr 4093 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length)
|
||||
syscall sys_fchmod nr 4094 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode)
|
||||
syscall sys_fchown nr 4095 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group)
|
||||
syscall sys_getpriority nr 4096 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_setpriority nr 4097 nbargs 3 types: (int, int, int) args: (which, who, niceval)
|
||||
syscall sys_statfs nr 4099 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf)
|
||||
syscall sys_fstatfs nr 4100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf)
|
||||
syscall sys_socketcall nr 4102 nbargs 2 types: (int, unsigned long *) args: (call, args)
|
||||
syscall sys_syslog nr 4103 nbargs 3 types: (int, char *, int) args: (type, buf, len)
|
||||
syscall sys_setitimer nr 4104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue)
|
||||
syscall sys_getitimer nr 4105 nbargs 2 types: (int, struct itimerval *) args: (which, value)
|
||||
syscall sys_newstat nr 4106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newlstat nr 4107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newfstat nr 4108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf)
|
||||
syscall sys_uname nr 4109 nbargs 1 types: (struct old_utsname *) args: (name)
|
||||
syscall sys_vhangup nr 4111 nbargs 0 types: () args: ()
|
||||
syscall sys_wait4 nr 4114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru)
|
||||
syscall sys_sysinfo nr 4116 nbargs 1 types: (struct sysinfo *) args: (info)
|
||||
syscall sys_ipc nr 4117 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth)
|
||||
syscall sys_fsync nr 4118 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_setdomainname nr 4121 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_newuname nr 4122 nbargs 1 types: (struct new_utsname *) args: (name)
|
||||
syscall sys_adjtimex nr 4124 nbargs 1 types: (struct timex *) args: (txc_p)
|
||||
syscall sys_mprotect nr 4125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot)
|
||||
syscall sys_sigprocmask nr 4126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset)
|
||||
syscall sys_init_module nr 4128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs)
|
||||
syscall sys_delete_module nr 4129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags)
|
||||
syscall sys_getpgid nr 4132 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fchdir nr 4133 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_bdflush nr 4134 nbargs 2 types: (int, long) args: (func, data)
|
||||
syscall sys_sysfs nr 4135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2)
|
||||
syscall sys_personality nr 4136 nbargs 1 types: (unsigned int) args: (personality)
|
||||
syscall sys_setfsuid nr 4138 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setfsgid nr 4139 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_llseek nr 4140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, whence)
|
||||
syscall sys_getdents nr 4141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_select nr 4142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp)
|
||||
syscall sys_flock nr 4143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd)
|
||||
syscall sys_msync nr 4144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
||||
syscall sys_readv nr 4145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_writev nr 4146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_cacheflush nr 4147 nbargs 3 types: (unsigned long, unsigned long, unsigned int) args: (addr, bytes, cache)
|
||||
syscall sys_cachectl nr 4148 nbargs 3 types: (char *, int, int) args: (addr, nbytes, op)
|
||||
syscall sys_sysmips nr 4149 nbargs 3 types: (long, long, long) args: (cmd, arg1, arg2)
|
||||
syscall sys_getsid nr 4151 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fdatasync nr 4152 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_sysctl nr 4153 nbargs 1 types: (struct __sysctl_args *) args: (args)
|
||||
syscall sys_mlock nr 4154 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_munlock nr 4155 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_mlockall nr 4156 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_munlockall nr 4157 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_setparam nr 4158 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_getparam nr 4159 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setscheduler nr 4160 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param)
|
||||
syscall sys_sched_getscheduler nr 4161 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_sched_yield nr 4162 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_get_priority_max nr 4163 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_get_priority_min nr 4164 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_rr_get_interval nr 4165 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval)
|
||||
syscall sys_nanosleep nr 4166 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp)
|
||||
syscall sys_mremap nr 4167 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr)
|
||||
syscall sys_accept nr 4168 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen)
|
||||
syscall sys_bind nr 4169 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen)
|
||||
syscall sys_connect nr 4170 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen)
|
||||
syscall sys_getpeername nr 4171 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getsockname nr 4172 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getsockopt nr 4173 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_listen nr 4174 nbargs 2 types: (int, int) args: (fd, backlog)
|
||||
syscall sys_recvfrom nr 4176 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len)
|
||||
syscall sys_recvmsg nr 4177 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_send nr 4178 nbargs 4 types: (int, void *, size_t, unsigned int) args: (fd, buff, len, flags)
|
||||
syscall sys_sendmsg nr 4179 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_sendto nr 4180 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len)
|
||||
syscall sys_setsockopt nr 4181 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_shutdown nr 4182 nbargs 2 types: (int, int) args: (fd, how)
|
||||
syscall sys_socket nr 4183 nbargs 3 types: (int, int, int) args: (family, type, protocol)
|
||||
syscall sys_socketpair nr 4184 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec)
|
||||
syscall sys_setresuid nr 4185 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid nr 4186 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruidp, euidp, suidp)
|
||||
syscall sys_poll nr 4188 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs)
|
||||
syscall sys_setresgid nr 4190 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid nr 4191 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgidp, egidp, sgidp)
|
||||
syscall sys_prctl nr 4192 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_rt_sigaction nr 4194 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize)
|
||||
syscall sys_rt_sigprocmask nr 4195 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize)
|
||||
syscall sys_rt_sigpending nr 4196 nbargs 2 types: (sigset_t *, size_t) args: (uset, sigsetsize)
|
||||
syscall sys_rt_sigtimedwait nr 4197 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize)
|
||||
syscall sys_rt_sigqueueinfo nr 4198 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo)
|
||||
syscall sys_rt_sigsuspend nr 4199 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize)
|
||||
syscall sys_pread64 nr 4200 nbargs 4 types: (unsigned int, char *, size_t, loff_t) args: (fd, buf, count, pos)
|
||||
syscall sys_pwrite64 nr 4201 nbargs 4 types: (unsigned int, const char *, size_t, loff_t) args: (fd, buf, count, pos)
|
||||
syscall sys_chown nr 4202 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_getcwd nr 4203 nbargs 2 types: (char *, unsigned long) args: (buf, size)
|
||||
syscall sys_capget nr 4204 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr)
|
||||
syscall sys_capset nr 4205 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data)
|
||||
syscall sys_sigaltstack nr 4206 nbargs 2 types: (const stack_t *, stack_t *) args: (uss, uoss)
|
||||
syscall sys_sendfile nr 4207 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_mips_mmap2 nr 4210 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, pgoff)
|
||||
syscall sys_truncate64 nr 4211 nbargs 2 types: (const char *, loff_t) args: (path, length)
|
||||
syscall sys_ftruncate64 nr 4212 nbargs 2 types: (unsigned int, loff_t) args: (fd, length)
|
||||
syscall sys_stat64 nr 4213 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_lstat64 nr 4214 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_fstat64 nr 4215 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf)
|
||||
syscall sys_pivot_root nr 4216 nbargs 2 types: (const char *, const char *) args: (new_root, put_old)
|
||||
syscall sys_mincore nr 4217 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec)
|
||||
syscall sys_madvise nr 4218 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior)
|
||||
syscall sys_getdents64 nr 4219 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_fcntl64 nr 4220 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_gettid nr 4222 nbargs 0 types: () args: ()
|
||||
syscall sys_readahead nr 4223 nbargs 3 types: (int, loff_t, size_t) args: (fd, offset, count)
|
||||
syscall sys_setxattr nr 4224 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_lsetxattr nr 4225 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_fsetxattr nr 4226 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags)
|
||||
syscall sys_getxattr nr 4227 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_lgetxattr nr 4228 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_fgetxattr nr 4229 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size)
|
||||
syscall sys_listxattr nr 4230 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_llistxattr nr 4231 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_flistxattr nr 4232 nbargs 3 types: (int, char *, size_t) args: (fd, list, size)
|
||||
syscall sys_removexattr nr 4233 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_lremovexattr nr 4234 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_fremovexattr nr 4235 nbargs 2 types: (int, const char *) args: (fd, name)
|
||||
syscall sys_tkill nr 4236 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_sendfile64 nr 4237 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_futex nr 4238 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3)
|
||||
syscall sys_io_setup nr 4241 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp)
|
||||
syscall sys_io_destroy nr 4242 nbargs 1 types: (aio_context_t) args: (ctx)
|
||||
syscall sys_io_getevents nr 4243 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout)
|
||||
syscall sys_io_submit nr 4244 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp)
|
||||
syscall sys_io_cancel nr 4245 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result)
|
||||
syscall sys_exit_group nr 4246 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_epoll_create nr 4248 nbargs 1 types: (int) args: (size)
|
||||
syscall sys_epoll_ctl nr 4249 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event)
|
||||
syscall sys_epoll_wait nr 4250 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout)
|
||||
syscall sys_remap_file_pages nr 4251 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags)
|
||||
syscall sys_set_tid_address nr 4252 nbargs 1 types: (int *) args: (tidptr)
|
||||
syscall sys_restart_syscall nr 4253 nbargs 0 types: () args: ()
|
||||
syscall sys_fadvise64_64 nr 4254 nbargs 4 types: (int, loff_t, loff_t, int) args: (fd, offset, len, advice)
|
||||
syscall sys_statfs64 nr 4255 nbargs 3 types: (const char *, size_t, struct statfs64 *) args: (pathname, sz, buf)
|
||||
syscall sys_fstatfs64 nr 4256 nbargs 3 types: (unsigned int, size_t, struct statfs64 *) args: (fd, sz, buf)
|
||||
syscall sys_timer_create nr 4257 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id)
|
||||
syscall sys_timer_settime nr 4258 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting)
|
||||
syscall sys_timer_gettime nr 4259 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting)
|
||||
syscall sys_timer_getoverrun nr 4260 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_timer_delete nr 4261 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_clock_settime nr 4262 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_gettime nr 4263 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_getres nr 4264 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_nanosleep nr 4265 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp)
|
||||
syscall sys_tgkill nr 4266 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig)
|
||||
syscall sys_utimes nr 4267 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes)
|
||||
syscall sys_waitid nr 4278 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru)
|
||||
syscall sys_set_thread_area nr 4283 nbargs 1 types: (unsigned long) args: (addr)
|
||||
syscall sys_inotify_init nr 4284 nbargs 0 types: () args: ()
|
||||
syscall sys_inotify_add_watch nr 4285 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask)
|
||||
syscall sys_inotify_rm_watch nr 4286 nbargs 2 types: (int, __s32) args: (fd, wd)
|
||||
syscall sys_openat nr 4288 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode)
|
||||
syscall sys_mkdirat nr 4289 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode)
|
||||
syscall sys_mknodat nr 4290 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev)
|
||||
syscall sys_fchownat nr 4291 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag)
|
||||
syscall sys_futimesat nr 4292 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes)
|
||||
syscall sys_fstatat64 nr 4293 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag)
|
||||
syscall sys_unlinkat nr 4294 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag)
|
||||
syscall sys_renameat nr 4295 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname)
|
||||
syscall sys_linkat nr 4296 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_symlinkat nr 4297 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname)
|
||||
syscall sys_readlinkat nr 4298 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz)
|
||||
syscall sys_fchmodat nr 4299 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode)
|
||||
syscall sys_faccessat nr 4300 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode)
|
||||
syscall sys_pselect6 nr 4301 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig)
|
||||
syscall sys_ppoll nr 4302 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize)
|
||||
syscall sys_unshare nr 4303 nbargs 1 types: (unsigned long) args: (unshare_flags)
|
||||
syscall sys_splice nr 4304 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags)
|
||||
syscall sys_sync_file_range nr 4305 nbargs 4 types: (int, loff_t, loff_t, unsigned int) args: (fd, offset, nbytes, flags)
|
||||
syscall sys_tee nr 4306 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags)
|
||||
syscall sys_vmsplice nr 4307 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags)
|
||||
syscall sys_set_robust_list nr 4309 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len)
|
||||
syscall sys_get_robust_list nr 4310 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr)
|
||||
syscall sys_getcpu nr 4312 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused)
|
||||
syscall sys_epoll_pwait nr 4313 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize)
|
||||
syscall sys_ioprio_set nr 4314 nbargs 3 types: (int, int, int) args: (which, who, ioprio)
|
||||
syscall sys_ioprio_get nr 4315 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_utimensat nr 4316 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags)
|
||||
syscall sys_signalfd nr 4317 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask)
|
||||
syscall sys_eventfd nr 4319 nbargs 1 types: (unsigned int) args: (count)
|
||||
syscall sys_fallocate nr 4320 nbargs 4 types: (int, int, loff_t, loff_t) args: (fd, mode, offset, len)
|
||||
syscall sys_timerfd_create nr 4321 nbargs 2 types: (int, int) args: (clockid, flags)
|
||||
syscall sys_timerfd_gettime nr 4322 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr)
|
||||
syscall sys_timerfd_settime nr 4323 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr)
|
||||
syscall sys_signalfd4 nr 4324 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags)
|
||||
syscall sys_eventfd2 nr 4325 nbargs 2 types: (unsigned int, int) args: (count, flags)
|
||||
syscall sys_epoll_create1 nr 4326 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_dup3 nr 4327 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags)
|
||||
syscall sys_pipe2 nr 4328 nbargs 2 types: (int *, int) args: (fildes, flags)
|
||||
syscall sys_inotify_init1 nr 4329 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_preadv nr 4330 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_pwritev nr 4331 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_rt_tgsigqueueinfo nr 4332 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo)
|
||||
syscall sys_perf_event_open nr 4333 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags)
|
||||
syscall sys_accept4 nr 4334 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags)
|
||||
syscall sys_recvmmsg nr 4335 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout)
|
||||
syscall sys_prlimit64 nr 4338 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim)
|
||||
syscall sys_name_to_handle_at nr 4339 nbargs 5 types: (int, const char *, struct file_handle *, int *, int) args: (dfd, name, handle, mnt_id, flag)
|
||||
syscall sys_open_by_handle_at nr 4340 nbargs 3 types: (int, struct file_handle *, int) args: (mountdirfd, handle, flags)
|
||||
syscall sys_clock_adjtime nr 4341 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx)
|
||||
syscall sys_syncfs nr 4342 nbargs 1 types: (int) args: (fd)
|
||||
syscall sys_sendmmsg nr 4343 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags)
|
||||
syscall sys_setns nr 4344 nbargs 2 types: (int, int) args: (fd, nstype)
|
|
@ -0,0 +1,287 @@
|
|||
syscall sys_exit nr 4001 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_read nr 4003 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_write nr 4004 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_open nr 4005 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode)
|
||||
syscall sys_close nr 4006 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_waitpid nr 4007 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options)
|
||||
syscall sys_creat nr 4008 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_link nr 4009 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_unlink nr 4010 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_execve nr 4011 nbargs 3 types: (const char *, const char *const *, const char *const *) args: (filename, argv, envp)
|
||||
syscall sys_chdir nr 4012 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_time nr 4013 nbargs 1 types: (time_t *) args: (tloc)
|
||||
syscall sys_mknod nr 4014 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev)
|
||||
syscall sys_chmod nr 4015 nbargs 2 types: (const char *, umode_t) args: (filename, mode)
|
||||
syscall sys_lchown nr 4016 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_lseek nr 4019 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, whence)
|
||||
syscall sys_getpid nr 4020 nbargs 0 types: () args: ()
|
||||
syscall sys_mount nr 4021 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data)
|
||||
syscall sys_oldumount nr 4022 nbargs 1 types: (char *) args: (name)
|
||||
syscall sys_setuid nr 4023 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_getuid nr 4024 nbargs 0 types: () args: ()
|
||||
syscall sys_stime nr 4025 nbargs 1 types: (time_t *) args: (tptr)
|
||||
syscall sys_ptrace nr 4026 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data)
|
||||
syscall sys_alarm nr 4027 nbargs 1 types: (unsigned int) args: (seconds)
|
||||
syscall sys_pause nr 4029 nbargs 0 types: () args: ()
|
||||
syscall sys_utime nr 4030 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times)
|
||||
syscall sys_access nr 4033 nbargs 2 types: (const char *, int) args: (filename, mode)
|
||||
syscall sys_nice nr 4034 nbargs 1 types: (int) args: (increment)
|
||||
syscall sys_sync nr 4036 nbargs 0 types: () args: ()
|
||||
syscall sys_kill nr 4037 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_rename nr 4038 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_mkdir nr 4039 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_rmdir nr 4040 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_dup nr 4041 nbargs 1 types: (unsigned int) args: (fildes)
|
||||
syscall sys_times nr 4043 nbargs 1 types: (struct tms *) args: (tbuf)
|
||||
syscall sys_brk nr 4045 nbargs 1 types: (unsigned long) args: (brk)
|
||||
syscall sys_setgid nr 4046 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_getgid nr 4047 nbargs 0 types: () args: ()
|
||||
syscall sys_geteuid nr 4049 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid nr 4050 nbargs 0 types: () args: ()
|
||||
syscall sys_umount nr 4052 nbargs 2 types: (char *, int) args: (name, flags)
|
||||
syscall sys_ioctl nr 4054 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_fcntl nr 4055 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_setpgid nr 4057 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid)
|
||||
syscall sys_olduname nr 4059 nbargs 1 types: (struct oldold_utsname *) args: (name)
|
||||
syscall sys_umask nr 4060 nbargs 1 types: (int) args: (mask)
|
||||
syscall sys_chroot nr 4061 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_ustat nr 4062 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf)
|
||||
syscall sys_dup2 nr 4063 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd)
|
||||
syscall sys_getppid nr 4064 nbargs 0 types: () args: ()
|
||||
syscall sys_getpgrp nr 4065 nbargs 0 types: () args: ()
|
||||
syscall sys_setsid nr 4066 nbargs 0 types: () args: ()
|
||||
syscall sys_sigaction nr 4067 nbargs 3 types: (int, const struct sigaction *, struct sigaction *) args: (sig, act, oact)
|
||||
syscall sys_setreuid nr 4070 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid nr 4071 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid)
|
||||
syscall sys_sigsuspend nr 4072 nbargs 1 types: (sigset_t *) args: (uset)
|
||||
syscall sys_sigpending nr 4073 nbargs 1 types: (old_sigset_t *) args: (set)
|
||||
syscall sys_sethostname nr 4074 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_setrlimit nr 4075 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrlimit nr 4076 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrusage nr 4077 nbargs 2 types: (int, struct rusage *) args: (who, ru)
|
||||
syscall sys_gettimeofday nr 4078 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_settimeofday nr 4079 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_getgroups nr 4080 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups nr 4081 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_symlink nr 4083 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_readlink nr 4085 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz)
|
||||
syscall sys_reboot nr 4088 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg)
|
||||
syscall sys_old_readdir nr 4089 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_mmap nr 4090 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t) args: (addr, len, prot, flags, fd, offset)
|
||||
syscall sys_munmap nr 4091 nbargs 2 types: (unsigned long, size_t) args: (addr, len)
|
||||
syscall sys_truncate nr 4092 nbargs 2 types: (const char *, long) args: (path, length)
|
||||
syscall sys_ftruncate nr 4093 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length)
|
||||
syscall sys_fchmod nr 4094 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode)
|
||||
syscall sys_fchown nr 4095 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group)
|
||||
syscall sys_getpriority nr 4096 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_setpriority nr 4097 nbargs 3 types: (int, int, int) args: (which, who, niceval)
|
||||
syscall sys_statfs nr 4099 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf)
|
||||
syscall sys_fstatfs nr 4100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf)
|
||||
syscall sys_socketcall nr 4102 nbargs 2 types: (int, unsigned long *) args: (call, args)
|
||||
syscall sys_syslog nr 4103 nbargs 3 types: (int, char *, int) args: (type, buf, len)
|
||||
syscall sys_setitimer nr 4104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue)
|
||||
syscall sys_getitimer nr 4105 nbargs 2 types: (int, struct itimerval *) args: (which, value)
|
||||
syscall sys_newstat nr 4106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newlstat nr 4107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newfstat nr 4108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf)
|
||||
syscall sys_uname nr 4109 nbargs 1 types: (struct old_utsname *) args: (name)
|
||||
syscall sys_vhangup nr 4111 nbargs 0 types: () args: ()
|
||||
syscall sys_wait4 nr 4114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru)
|
||||
syscall sys_sysinfo nr 4116 nbargs 1 types: (struct sysinfo *) args: (info)
|
||||
syscall sys_ipc nr 4117 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth)
|
||||
syscall sys_fsync nr 4118 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_setdomainname nr 4121 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_newuname nr 4122 nbargs 1 types: (struct new_utsname *) args: (name)
|
||||
syscall sys_adjtimex nr 4124 nbargs 1 types: (struct timex *) args: (txc_p)
|
||||
syscall sys_mprotect nr 4125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot)
|
||||
syscall sys_sigprocmask nr 4126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset)
|
||||
syscall sys_init_module nr 4128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs)
|
||||
syscall sys_delete_module nr 4129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags)
|
||||
syscall sys_getpgid nr 4132 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fchdir nr 4133 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_bdflush nr 4134 nbargs 2 types: (int, long) args: (func, data)
|
||||
syscall sys_personality nr 4136 nbargs 1 types: (unsigned int) args: (personality)
|
||||
syscall sys_setfsuid nr 4138 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setfsgid nr 4139 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_llseek nr 4140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, whence)
|
||||
syscall sys_getdents nr 4141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_select nr 4142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp)
|
||||
syscall sys_flock nr 4143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd)
|
||||
syscall sys_msync nr 4144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
||||
syscall sys_readv nr 4145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_writev nr 4146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_cacheflush nr 4147 nbargs 3 types: (unsigned long, unsigned long, unsigned int) args: (addr, bytes, cache)
|
||||
syscall sys_cachectl nr 4148 nbargs 3 types: (char *, int, int) args: (addr, nbytes, op)
|
||||
syscall sys_sysmips nr 4149 nbargs 3 types: (long, long, long) args: (cmd, arg1, arg2)
|
||||
syscall sys_getsid nr 4151 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fdatasync nr 4152 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_sysctl nr 4153 nbargs 1 types: (struct __sysctl_args *) args: (args)
|
||||
syscall sys_mlock nr 4154 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_munlock nr 4155 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_mlockall nr 4156 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_munlockall nr 4157 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_setparam nr 4158 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_getparam nr 4159 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setscheduler nr 4160 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param)
|
||||
syscall sys_sched_getscheduler nr 4161 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_sched_yield nr 4162 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_get_priority_max nr 4163 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_get_priority_min nr 4164 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_rr_get_interval nr 4165 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval)
|
||||
syscall sys_nanosleep nr 4166 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp)
|
||||
syscall sys_mremap nr 4167 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr)
|
||||
syscall sys_accept nr 4168 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen)
|
||||
syscall sys_bind nr 4169 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen)
|
||||
syscall sys_connect nr 4170 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen)
|
||||
syscall sys_getpeername nr 4171 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getsockname nr 4172 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getsockopt nr 4173 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_listen nr 4174 nbargs 2 types: (int, int) args: (fd, backlog)
|
||||
syscall sys_recv nr 4175 nbargs 4 types: (int, void *, size_t, unsigned int) args: (fd, ubuf, size, flags)
|
||||
syscall sys_recvfrom nr 4176 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len)
|
||||
syscall sys_recvmsg nr 4177 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_send nr 4178 nbargs 4 types: (int, void *, size_t, unsigned int) args: (fd, buff, len, flags)
|
||||
syscall sys_sendmsg nr 4179 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_sendto nr 4180 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len)
|
||||
syscall sys_setsockopt nr 4181 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_shutdown nr 4182 nbargs 2 types: (int, int) args: (fd, how)
|
||||
syscall sys_socket nr 4183 nbargs 3 types: (int, int, int) args: (family, type, protocol)
|
||||
syscall sys_socketpair nr 4184 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec)
|
||||
syscall sys_setresuid nr 4185 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid nr 4186 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruidp, euidp, suidp)
|
||||
syscall sys_poll nr 4188 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs)
|
||||
syscall sys_setresgid nr 4190 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid nr 4191 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgidp, egidp, sgidp)
|
||||
syscall sys_prctl nr 4192 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_rt_sigaction nr 4194 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize)
|
||||
syscall sys_rt_sigprocmask nr 4195 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize)
|
||||
syscall sys_rt_sigpending nr 4196 nbargs 2 types: (sigset_t *, size_t) args: (uset, sigsetsize)
|
||||
syscall sys_rt_sigtimedwait nr 4197 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize)
|
||||
syscall sys_rt_sigqueueinfo nr 4198 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo)
|
||||
syscall sys_rt_sigsuspend nr 4199 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize)
|
||||
syscall sys_pread64 nr 4200 nbargs 4 types: (unsigned int, char *, size_t, loff_t) args: (fd, buf, count, pos)
|
||||
syscall sys_pwrite64 nr 4201 nbargs 4 types: (unsigned int, const char *, size_t, loff_t) args: (fd, buf, count, pos)
|
||||
syscall sys_chown nr 4202 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_getcwd nr 4203 nbargs 2 types: (char *, unsigned long) args: (buf, size)
|
||||
syscall sys_capget nr 4204 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr)
|
||||
syscall sys_capset nr 4205 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data)
|
||||
syscall sys_sigaltstack nr 4206 nbargs 2 types: (const stack_t *, stack_t *) args: (uss, uoss)
|
||||
syscall sys_sendfile nr 4207 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_mips_mmap2 nr 4210 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, pgoff)
|
||||
syscall sys_truncate64 nr 4211 nbargs 2 types: (const char *, loff_t) args: (path, length)
|
||||
syscall sys_ftruncate64 nr 4212 nbargs 2 types: (unsigned int, loff_t) args: (fd, length)
|
||||
syscall sys_stat64 nr 4213 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_lstat64 nr 4214 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_fstat64 nr 4215 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf)
|
||||
syscall sys_pivot_root nr 4216 nbargs 2 types: (const char *, const char *) args: (new_root, put_old)
|
||||
syscall sys_mincore nr 4217 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec)
|
||||
syscall sys_madvise nr 4218 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior)
|
||||
syscall sys_getdents64 nr 4219 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_fcntl64 nr 4220 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_gettid nr 4222 nbargs 0 types: () args: ()
|
||||
syscall sys_readahead nr 4223 nbargs 3 types: (int, loff_t, size_t) args: (fd, offset, count)
|
||||
syscall sys_setxattr nr 4224 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_lsetxattr nr 4225 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_fsetxattr nr 4226 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags)
|
||||
syscall sys_getxattr nr 4227 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_lgetxattr nr 4228 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_fgetxattr nr 4229 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size)
|
||||
syscall sys_listxattr nr 4230 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_llistxattr nr 4231 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_flistxattr nr 4232 nbargs 3 types: (int, char *, size_t) args: (fd, list, size)
|
||||
syscall sys_removexattr nr 4233 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_lremovexattr nr 4234 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_fremovexattr nr 4235 nbargs 2 types: (int, const char *) args: (fd, name)
|
||||
syscall sys_tkill nr 4236 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_sendfile64 nr 4237 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_futex nr 4238 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3)
|
||||
syscall sys_io_setup nr 4241 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp)
|
||||
syscall sys_io_destroy nr 4242 nbargs 1 types: (aio_context_t) args: (ctx)
|
||||
syscall sys_io_getevents nr 4243 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout)
|
||||
syscall sys_io_submit nr 4244 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp)
|
||||
syscall sys_io_cancel nr 4245 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result)
|
||||
syscall sys_exit_group nr 4246 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_epoll_create nr 4248 nbargs 1 types: (int) args: (size)
|
||||
syscall sys_epoll_ctl nr 4249 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event)
|
||||
syscall sys_epoll_wait nr 4250 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout)
|
||||
syscall sys_remap_file_pages nr 4251 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags)
|
||||
syscall sys_set_tid_address nr 4252 nbargs 1 types: (int *) args: (tidptr)
|
||||
syscall sys_restart_syscall nr 4253 nbargs 0 types: () args: ()
|
||||
syscall sys_fadvise64_64 nr 4254 nbargs 4 types: (int, loff_t, loff_t, int) args: (fd, offset, len, advice)
|
||||
syscall sys_statfs64 nr 4255 nbargs 3 types: (const char *, size_t, struct statfs64 *) args: (pathname, sz, buf)
|
||||
syscall sys_fstatfs64 nr 4256 nbargs 3 types: (unsigned int, size_t, struct statfs64 *) args: (fd, sz, buf)
|
||||
syscall sys_timer_create nr 4257 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id)
|
||||
syscall sys_timer_settime nr 4258 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting)
|
||||
syscall sys_timer_gettime nr 4259 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting)
|
||||
syscall sys_timer_getoverrun nr 4260 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_timer_delete nr 4261 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_clock_settime nr 4262 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_gettime nr 4263 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_getres nr 4264 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_nanosleep nr 4265 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp)
|
||||
syscall sys_tgkill nr 4266 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig)
|
||||
syscall sys_utimes nr 4267 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes)
|
||||
syscall sys_waitid nr 4278 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru)
|
||||
syscall sys_set_thread_area nr 4283 nbargs 1 types: (unsigned long) args: (addr)
|
||||
syscall sys_inotify_init nr 4284 nbargs 0 types: () args: ()
|
||||
syscall sys_inotify_add_watch nr 4285 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask)
|
||||
syscall sys_inotify_rm_watch nr 4286 nbargs 2 types: (int, __s32) args: (fd, wd)
|
||||
syscall sys_openat nr 4288 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode)
|
||||
syscall sys_mkdirat nr 4289 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode)
|
||||
syscall sys_mknodat nr 4290 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev)
|
||||
syscall sys_fchownat nr 4291 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag)
|
||||
syscall sys_futimesat nr 4292 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes)
|
||||
syscall sys_fstatat64 nr 4293 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag)
|
||||
syscall sys_unlinkat nr 4294 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag)
|
||||
syscall sys_renameat nr 4295 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname)
|
||||
syscall sys_linkat nr 4296 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_symlinkat nr 4297 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname)
|
||||
syscall sys_readlinkat nr 4298 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz)
|
||||
syscall sys_fchmodat nr 4299 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode)
|
||||
syscall sys_faccessat nr 4300 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode)
|
||||
syscall sys_pselect6 nr 4301 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig)
|
||||
syscall sys_ppoll nr 4302 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize)
|
||||
syscall sys_unshare nr 4303 nbargs 1 types: (unsigned long) args: (unshare_flags)
|
||||
syscall sys_splice nr 4304 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags)
|
||||
syscall sys_sync_file_range nr 4305 nbargs 4 types: (int, loff_t, loff_t, unsigned int) args: (fd, offset, nbytes, flags)
|
||||
syscall sys_tee nr 4306 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags)
|
||||
syscall sys_vmsplice nr 4307 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags)
|
||||
syscall sys_set_robust_list nr 4309 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len)
|
||||
syscall sys_get_robust_list nr 4310 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr)
|
||||
syscall sys_getcpu nr 4312 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused)
|
||||
syscall sys_epoll_pwait nr 4313 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize)
|
||||
syscall sys_ioprio_set nr 4314 nbargs 3 types: (int, int, int) args: (which, who, ioprio)
|
||||
syscall sys_ioprio_get nr 4315 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_utimensat nr 4316 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags)
|
||||
syscall sys_signalfd nr 4317 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask)
|
||||
syscall sys_eventfd nr 4319 nbargs 1 types: (unsigned int) args: (count)
|
||||
syscall sys_fallocate nr 4320 nbargs 4 types: (int, int, loff_t, loff_t) args: (fd, mode, offset, len)
|
||||
syscall sys_timerfd_create nr 4321 nbargs 2 types: (int, int) args: (clockid, flags)
|
||||
syscall sys_timerfd_gettime nr 4322 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr)
|
||||
syscall sys_timerfd_settime nr 4323 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr)
|
||||
syscall sys_signalfd4 nr 4324 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags)
|
||||
syscall sys_eventfd2 nr 4325 nbargs 2 types: (unsigned int, int) args: (count, flags)
|
||||
syscall sys_epoll_create1 nr 4326 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_dup3 nr 4327 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags)
|
||||
syscall sys_pipe2 nr 4328 nbargs 2 types: (int *, int) args: (fildes, flags)
|
||||
syscall sys_inotify_init1 nr 4329 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_preadv nr 4330 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_pwritev nr 4331 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_rt_tgsigqueueinfo nr 4332 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo)
|
||||
syscall sys_perf_event_open nr 4333 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags)
|
||||
syscall sys_accept4 nr 4334 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags)
|
||||
syscall sys_recvmmsg nr 4335 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout)
|
||||
syscall sys_prlimit64 nr 4338 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim)
|
||||
syscall sys_name_to_handle_at nr 4339 nbargs 5 types: (int, const char *, struct file_handle *, int *, int) args: (dfd, name, handle, mnt_id, flag)
|
||||
syscall sys_open_by_handle_at nr 4340 nbargs 3 types: (int, struct file_handle *, int) args: (mountdirfd, handle, flags)
|
||||
syscall sys_clock_adjtime nr 4341 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx)
|
||||
syscall sys_syncfs nr 4342 nbargs 1 types: (int) args: (fd)
|
||||
syscall sys_sendmmsg nr 4343 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags)
|
||||
syscall sys_setns nr 4344 nbargs 2 types: (int, int) args: (fd, nstype)
|
||||
syscall sys_finit_module nr 4348 nbargs 3 types: (int, const char *, int) args: (fd, uargs, flags)
|
||||
syscall sys_sched_setattr nr 4349 nbargs 3 types: (pid_t, struct sched_attr *, unsigned int) args: (pid, uattr, flags)
|
||||
syscall sys_sched_getattr nr 4350 nbargs 4 types: (pid_t, struct sched_attr *, unsigned int, unsigned int) args: (pid, uattr, size, flags)
|
||||
syscall sys_renameat2 nr 4351 nbargs 5 types: (int, const char *, int, const char *, unsigned int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_seccomp nr 4352 nbargs 3 types: (unsigned int, unsigned int, const char *) args: (op, flags, uargs)
|
||||
syscall sys_getrandom nr 4353 nbargs 3 types: (char *, size_t, unsigned int) args: (buf, count, flags)
|
||||
syscall sys_memfd_create nr 4354 nbargs 2 types: (const char *, unsigned int) args: (uname, flags)
|
|
@ -0,0 +1,299 @@
|
|||
syscall sys_restart_syscall nr 0 nbargs 0 types: () args: ()
|
||||
syscall sys_exit nr 1 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_read nr 3 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_write nr 4 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_open nr 5 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode)
|
||||
syscall sys_close nr 6 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_creat nr 8 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_link nr 9 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_unlink nr 10 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_chdir nr 12 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_mknod nr 14 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev)
|
||||
syscall sys_chmod nr 15 nbargs 2 types: (const char *, umode_t) args: (filename, mode)
|
||||
syscall sys_lchown16 nr 16 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group)
|
||||
syscall sys_lseek nr 19 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin)
|
||||
syscall sys_getpid nr 20 nbargs 0 types: () args: ()
|
||||
syscall sys_mount nr 21 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data)
|
||||
syscall sys_setuid16 nr 23 nbargs 1 types: (old_uid_t) args: (uid)
|
||||
syscall sys_getuid16 nr 24 nbargs 0 types: () args: ()
|
||||
syscall sys_ptrace nr 26 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data)
|
||||
syscall sys_pause nr 29 nbargs 0 types: () args: ()
|
||||
syscall sys_access nr 33 nbargs 2 types: (const char *, int) args: (filename, mode)
|
||||
syscall sys_nice nr 34 nbargs 1 types: (int) args: (increment)
|
||||
syscall sys_sync nr 36 nbargs 0 types: () args: ()
|
||||
syscall sys_kill nr 37 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_rename nr 38 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_mkdir nr 39 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_rmdir nr 40 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_dup nr 41 nbargs 1 types: (unsigned int) args: (fildes)
|
||||
syscall sys_pipe nr 42 nbargs 1 types: (int *) args: (fildes)
|
||||
syscall sys_times nr 43 nbargs 1 types: (struct tms *) args: (tbuf)
|
||||
syscall sys_brk nr 45 nbargs 1 types: (unsigned long) args: (brk)
|
||||
syscall sys_setgid16 nr 46 nbargs 1 types: (old_gid_t) args: (gid)
|
||||
syscall sys_getgid16 nr 47 nbargs 0 types: () args: ()
|
||||
syscall sys_geteuid16 nr 49 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid16 nr 50 nbargs 0 types: () args: ()
|
||||
syscall sys_acct nr 51 nbargs 1 types: (const char *) args: (name)
|
||||
syscall sys_umount nr 52 nbargs 2 types: (char *, int) args: (name, flags)
|
||||
syscall sys_ioctl nr 54 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_fcntl nr 55 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_setpgid nr 57 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid)
|
||||
syscall sys_umask nr 60 nbargs 1 types: (int) args: (mask)
|
||||
syscall sys_chroot nr 61 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_ustat nr 62 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf)
|
||||
syscall sys_dup2 nr 63 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd)
|
||||
syscall sys_getppid nr 64 nbargs 0 types: () args: ()
|
||||
syscall sys_getpgrp nr 65 nbargs 0 types: () args: ()
|
||||
syscall sys_setsid nr 66 nbargs 0 types: () args: ()
|
||||
syscall sys_setreuid16 nr 70 nbargs 2 types: (old_uid_t, old_uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid16 nr 71 nbargs 2 types: (old_gid_t, old_gid_t) args: (rgid, egid)
|
||||
syscall sys_sigpending nr 73 nbargs 1 types: (old_sigset_t *) args: (set)
|
||||
syscall sys_sethostname nr 74 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_setrlimit nr 75 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrusage nr 77 nbargs 2 types: (int, struct rusage *) args: (who, ru)
|
||||
syscall sys_gettimeofday nr 78 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_settimeofday nr 79 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_getgroups16 nr 80 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups16 nr 81 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_symlink nr 83 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_readlink nr 85 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz)
|
||||
syscall sys_uselib nr 86 nbargs 1 types: (const char *) args: (library)
|
||||
syscall sys_swapon nr 87 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags)
|
||||
syscall sys_reboot nr 88 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg)
|
||||
syscall sys_munmap nr 91 nbargs 2 types: (unsigned long, size_t) args: (addr, len)
|
||||
syscall sys_truncate nr 92 nbargs 2 types: (const char *, long) args: (path, length)
|
||||
syscall sys_ftruncate nr 93 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length)
|
||||
syscall sys_fchmod nr 94 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode)
|
||||
syscall sys_fchown16 nr 95 nbargs 3 types: (unsigned int, old_uid_t, old_gid_t) args: (fd, user, group)
|
||||
syscall sys_getpriority nr 96 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_setpriority nr 97 nbargs 3 types: (int, int, int) args: (which, who, niceval)
|
||||
syscall sys_statfs nr 99 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf)
|
||||
syscall sys_fstatfs nr 100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf)
|
||||
syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len)
|
||||
syscall sys_setitimer nr 104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue)
|
||||
syscall sys_getitimer nr 105 nbargs 2 types: (int, struct itimerval *) args: (which, value)
|
||||
syscall sys_newstat nr 106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newlstat nr 107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newfstat nr 108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf)
|
||||
syscall sys_vhangup nr 111 nbargs 0 types: () args: ()
|
||||
syscall sys_wait4 nr 114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru)
|
||||
syscall sys_swapoff nr 115 nbargs 1 types: (const char *) args: (specialfile)
|
||||
syscall sys_sysinfo nr 116 nbargs 1 types: (struct sysinfo *) args: (info)
|
||||
syscall sys_fsync nr 118 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_setdomainname nr 121 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_newuname nr 122 nbargs 1 types: (struct new_utsname *) args: (name)
|
||||
syscall sys_adjtimex nr 124 nbargs 1 types: (struct timex *) args: (txc_p)
|
||||
syscall sys_mprotect nr 125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot)
|
||||
syscall sys_sigprocmask nr 126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset)
|
||||
syscall sys_init_module nr 128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs)
|
||||
syscall sys_delete_module nr 129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags)
|
||||
syscall sys_quotactl nr 131 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr)
|
||||
syscall sys_getpgid nr 132 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fchdir nr 133 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_bdflush nr 134 nbargs 2 types: (int, long) args: (func, data)
|
||||
syscall sys_sysfs nr 135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2)
|
||||
syscall sys_personality nr 136 nbargs 1 types: (unsigned int) args: (personality)
|
||||
syscall sys_setfsuid16 nr 138 nbargs 1 types: (old_uid_t) args: (uid)
|
||||
syscall sys_setfsgid16 nr 139 nbargs 1 types: (old_gid_t) args: (gid)
|
||||
syscall sys_llseek nr 140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin)
|
||||
syscall sys_getdents nr 141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_select nr 142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp)
|
||||
syscall sys_flock nr 143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd)
|
||||
syscall sys_msync nr 144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
||||
syscall sys_readv nr 145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_writev nr 146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_getsid nr 147 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fdatasync nr 148 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_sysctl nr 149 nbargs 1 types: (struct __sysctl_args *) args: (args)
|
||||
syscall sys_mlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_munlock nr 151 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_mlockall nr 152 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_munlockall nr 153 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_setparam nr 154 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_getparam nr 155 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setscheduler nr 156 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param)
|
||||
syscall sys_sched_getscheduler nr 157 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_sched_yield nr 158 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_get_priority_max nr 159 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_get_priority_min nr 160 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_rr_get_interval nr 161 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval)
|
||||
syscall sys_nanosleep nr 162 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp)
|
||||
syscall sys_mremap nr 163 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr)
|
||||
syscall sys_setresuid16 nr 164 nbargs 3 types: (old_uid_t, old_uid_t, old_uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid16 nr 165 nbargs 3 types: (old_uid_t *, old_uid_t *, old_uid_t *) args: (ruid, euid, suid)
|
||||
syscall sys_poll nr 168 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs)
|
||||
syscall sys_setresgid16 nr 170 nbargs 3 types: (old_gid_t, old_gid_t, old_gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid16 nr 171 nbargs 3 types: (old_gid_t *, old_gid_t *, old_gid_t *) args: (rgid, egid, sgid)
|
||||
syscall sys_prctl nr 172 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_rt_sigaction nr 174 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize)
|
||||
syscall sys_rt_sigprocmask nr 175 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize)
|
||||
syscall sys_rt_sigpending nr 176 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize)
|
||||
syscall sys_rt_sigtimedwait nr 177 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize)
|
||||
syscall sys_rt_sigqueueinfo nr 178 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo)
|
||||
syscall sys_rt_sigsuspend nr 179 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize)
|
||||
syscall sys_chown16 nr 182 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group)
|
||||
syscall sys_getcwd nr 183 nbargs 2 types: (char *, unsigned long) args: (buf, size)
|
||||
syscall sys_capget nr 184 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr)
|
||||
syscall sys_capset nr 185 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data)
|
||||
syscall sys_sendfile nr 187 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_getrlimit nr 191 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_stat64 nr 195 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_lstat64 nr 196 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf)
|
||||
syscall sys_fstat64 nr 197 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf)
|
||||
syscall sys_lchown nr 198 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_getuid nr 199 nbargs 0 types: () args: ()
|
||||
syscall sys_getgid nr 200 nbargs 0 types: () args: ()
|
||||
syscall sys_geteuid nr 201 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid nr 202 nbargs 0 types: () args: ()
|
||||
syscall sys_setreuid nr 203 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid nr 204 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid)
|
||||
syscall sys_getgroups nr 205 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups nr 206 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_fchown nr 207 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group)
|
||||
syscall sys_setresuid nr 208 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid nr 209 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruid, euid, suid)
|
||||
syscall sys_setresgid nr 210 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid nr 211 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgid, egid, sgid)
|
||||
syscall sys_chown nr 212 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_setuid nr 213 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setgid nr 214 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_setfsuid nr 215 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setfsgid nr 216 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_getdents64 nr 217 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_pivot_root nr 218 nbargs 2 types: (const char *, const char *) args: (new_root, put_old)
|
||||
syscall sys_mincore nr 219 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec)
|
||||
syscall sys_madvise nr 220 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior)
|
||||
syscall sys_fcntl64 nr 221 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_gettid nr 224 nbargs 0 types: () args: ()
|
||||
syscall sys_setxattr nr 226 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_lsetxattr nr 227 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_fsetxattr nr 228 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags)
|
||||
syscall sys_getxattr nr 229 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_lgetxattr nr 230 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_fgetxattr nr 231 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size)
|
||||
syscall sys_listxattr nr 232 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_llistxattr nr 233 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_flistxattr nr 234 nbargs 3 types: (int, char *, size_t) args: (fd, list, size)
|
||||
syscall sys_removexattr nr 235 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_lremovexattr nr 236 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_fremovexattr nr 237 nbargs 2 types: (int, const char *) args: (fd, name)
|
||||
syscall sys_tkill nr 238 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_sendfile64 nr 239 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_futex nr 240 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3)
|
||||
syscall sys_sched_setaffinity nr 241 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_sched_getaffinity nr 242 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_io_setup nr 243 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp)
|
||||
syscall sys_io_destroy nr 244 nbargs 1 types: (aio_context_t) args: (ctx)
|
||||
syscall sys_io_getevents nr 245 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout)
|
||||
syscall sys_io_submit nr 246 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp)
|
||||
syscall sys_io_cancel nr 247 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result)
|
||||
syscall sys_exit_group nr 248 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_epoll_create nr 250 nbargs 1 types: (int) args: (size)
|
||||
syscall sys_epoll_ctl nr 251 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event)
|
||||
syscall sys_epoll_wait nr 252 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout)
|
||||
syscall sys_remap_file_pages nr 253 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags)
|
||||
syscall sys_set_tid_address nr 256 nbargs 1 types: (int *) args: (tidptr)
|
||||
syscall sys_timer_create nr 257 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id)
|
||||
syscall sys_timer_settime nr 258 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting)
|
||||
syscall sys_timer_gettime nr 259 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting)
|
||||
syscall sys_timer_getoverrun nr 260 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_timer_delete nr 261 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_clock_settime nr 262 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_gettime nr 263 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_getres nr 264 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_nanosleep nr 265 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp)
|
||||
syscall sys_tgkill nr 268 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig)
|
||||
syscall sys_utimes nr 269 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes)
|
||||
syscall sys_mq_open nr 274 nbargs 4 types: (const char *, int, umode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr)
|
||||
syscall sys_mq_unlink nr 275 nbargs 1 types: (const char *) args: (u_name)
|
||||
syscall sys_mq_timedsend nr 276 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_timedreceive nr 277 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_notify nr 278 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification)
|
||||
syscall sys_mq_getsetattr nr 279 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat)
|
||||
syscall sys_waitid nr 280 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru)
|
||||
syscall sys_socket nr 281 nbargs 3 types: (int, int, int) args: (family, type, protocol)
|
||||
syscall sys_bind nr 282 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen)
|
||||
syscall sys_connect nr 283 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen)
|
||||
syscall sys_listen nr 284 nbargs 2 types: (int, int) args: (fd, backlog)
|
||||
syscall sys_accept nr 285 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen)
|
||||
syscall sys_getsockname nr 286 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getpeername nr 287 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_socketpair nr 288 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec)
|
||||
syscall sys_send nr 289 nbargs 4 types: (int, void *, size_t, unsigned) args: (fd, buff, len, flags)
|
||||
syscall sys_sendto nr 290 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len)
|
||||
syscall sys_recvfrom nr 292 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len)
|
||||
syscall sys_shutdown nr 293 nbargs 2 types: (int, int) args: (fd, how)
|
||||
syscall sys_setsockopt nr 294 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_getsockopt nr 295 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_sendmsg nr 296 nbargs 3 types: (int, struct msghdr *, unsigned) args: (fd, msg, flags)
|
||||
syscall sys_recvmsg nr 297 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_semop nr 298 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops)
|
||||
syscall sys_semget nr 299 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg)
|
||||
syscall sys_msgsnd nr 301 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg)
|
||||
syscall sys_msgrcv nr 302 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg)
|
||||
syscall sys_msgget nr 303 nbargs 2 types: (key_t, int) args: (key, msgflg)
|
||||
syscall sys_msgctl nr 304 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf)
|
||||
syscall sys_shmat nr 305 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg)
|
||||
syscall sys_shmdt nr 306 nbargs 1 types: (char *) args: (shmaddr)
|
||||
syscall sys_shmget nr 307 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg)
|
||||
syscall sys_shmctl nr 308 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf)
|
||||
syscall sys_add_key nr 309 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid)
|
||||
syscall sys_request_key nr 310 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid)
|
||||
syscall sys_keyctl nr 311 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_semtimedop nr 312 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout)
|
||||
syscall sys_ioprio_set nr 314 nbargs 3 types: (int, int, int) args: (which, who, ioprio)
|
||||
syscall sys_ioprio_get nr 315 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_inotify_init nr 316 nbargs 0 types: () args: ()
|
||||
syscall sys_inotify_add_watch nr 317 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask)
|
||||
syscall sys_inotify_rm_watch nr 318 nbargs 2 types: (int, __s32) args: (fd, wd)
|
||||
syscall sys_openat nr 322 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode)
|
||||
syscall sys_mkdirat nr 323 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode)
|
||||
syscall sys_mknodat nr 324 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev)
|
||||
syscall sys_fchownat nr 325 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag)
|
||||
syscall sys_futimesat nr 326 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes)
|
||||
syscall sys_fstatat64 nr 327 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag)
|
||||
syscall sys_unlinkat nr 328 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag)
|
||||
syscall sys_renameat nr 329 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname)
|
||||
syscall sys_linkat nr 330 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_symlinkat nr 331 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname)
|
||||
syscall sys_readlinkat nr 332 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz)
|
||||
syscall sys_fchmodat nr 333 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode)
|
||||
syscall sys_faccessat nr 334 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode)
|
||||
syscall sys_pselect6 nr 335 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig)
|
||||
syscall sys_ppoll nr 336 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize)
|
||||
syscall sys_unshare nr 337 nbargs 1 types: (unsigned long) args: (unshare_flags)
|
||||
syscall sys_set_robust_list nr 338 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len)
|
||||
syscall sys_get_robust_list nr 339 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr)
|
||||
syscall sys_splice nr 340 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags)
|
||||
syscall sys_tee nr 342 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags)
|
||||
syscall sys_vmsplice nr 343 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags)
|
||||
syscall sys_getcpu nr 345 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused)
|
||||
syscall sys_epoll_pwait nr 346 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize)
|
||||
syscall sys_utimensat nr 348 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags)
|
||||
syscall sys_signalfd nr 349 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask)
|
||||
syscall sys_timerfd_create nr 350 nbargs 2 types: (int, int) args: (clockid, flags)
|
||||
syscall sys_eventfd nr 351 nbargs 1 types: (unsigned int) args: (count)
|
||||
syscall sys_timerfd_settime nr 353 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr)
|
||||
syscall sys_timerfd_gettime nr 354 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr)
|
||||
syscall sys_signalfd4 nr 355 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags)
|
||||
syscall sys_eventfd2 nr 356 nbargs 2 types: (unsigned int, int) args: (count, flags)
|
||||
syscall sys_epoll_create1 nr 357 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_dup3 nr 358 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags)
|
||||
syscall sys_pipe2 nr 359 nbargs 2 types: (int *, int) args: (fildes, flags)
|
||||
syscall sys_inotify_init1 nr 360 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_preadv nr 361 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_pwritev nr 362 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_rt_tgsigqueueinfo nr 363 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo)
|
||||
syscall sys_perf_event_open nr 364 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags)
|
||||
syscall sys_recvmmsg nr 365 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout)
|
||||
syscall sys_accept4 nr 366 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags)
|
||||
syscall sys_fanotify_init nr 367 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags)
|
||||
syscall sys_prlimit64 nr 369 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim)
|
||||
syscall sys_name_to_handle_at nr 370 nbargs 5 types: (int, const char *, struct file_handle *, int *, int) args: (dfd, name, handle, mnt_id, flag)
|
||||
syscall sys_open_by_handle_at nr 371 nbargs 3 types: (int, struct file_handle *, int) args: (mountdirfd, handle, flags)
|
||||
syscall sys_clock_adjtime nr 372 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx)
|
||||
syscall sys_syncfs nr 373 nbargs 1 types: (int) args: (fd)
|
||||
syscall sys_sendmmsg nr 374 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags)
|
||||
syscall sys_setns nr 375 nbargs 2 types: (int, int) args: (fd, nstype)
|
||||
syscall sys_process_vm_readv nr 376 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags)
|
||||
syscall sys_process_vm_writev nr 377 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags)
|
|
@ -0,0 +1,141 @@
|
|||
syscall sys_exit nr 4003 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_read nr 4007 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_write nr 4009 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_open nr 4011 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode)
|
||||
syscall sys_close nr 4013 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_waitpid nr 4015 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options)
|
||||
syscall sys_creat nr 4017 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_link nr 4019 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_unlink nr 4021 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_chdir nr 4025 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_time nr 4027 nbargs 1 types: (time_t *) args: (tloc)
|
||||
syscall sys_mknod nr 4029 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev)
|
||||
syscall sys_chmod nr 4031 nbargs 2 types: (const char *, umode_t) args: (filename, mode)
|
||||
syscall sys_lchown nr 4033 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_lseek nr 4039 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin)
|
||||
syscall sys_getpid nr 4041 nbargs 0 types: () args: ()
|
||||
syscall sys_mount nr 4043 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data)
|
||||
syscall sys_oldumount nr 4045 nbargs 1 types: (char *) args: (name)
|
||||
syscall sys_setuid nr 4047 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_getuid nr 4049 nbargs 0 types: () args: ()
|
||||
syscall sys_stime nr 4051 nbargs 1 types: (time_t *) args: (tptr)
|
||||
syscall sys_ptrace nr 4053 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data)
|
||||
syscall sys_alarm nr 4055 nbargs 1 types: (unsigned int) args: (seconds)
|
||||
syscall sys_pause nr 4059 nbargs 0 types: () args: ()
|
||||
syscall sys_utime nr 4061 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times)
|
||||
syscall sys_access nr 4067 nbargs 2 types: (const char *, int) args: (filename, mode)
|
||||
syscall sys_nice nr 4069 nbargs 1 types: (int) args: (increment)
|
||||
syscall sys_sync nr 4073 nbargs 0 types: () args: ()
|
||||
syscall sys_kill nr 4075 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_rename nr 4077 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_mkdir nr 4079 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_rmdir nr 4081 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_dup nr 4083 nbargs 1 types: (unsigned int) args: (fildes)
|
||||
syscall sys_times nr 4087 nbargs 1 types: (struct tms *) args: (tbuf)
|
||||
syscall sys_brk nr 4091 nbargs 1 types: (unsigned long) args: (brk)
|
||||
syscall sys_setgid nr 4093 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_getgid nr 4095 nbargs 0 types: () args: ()
|
||||
syscall sys_geteuid nr 4099 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid nr 4101 nbargs 0 types: () args: ()
|
||||
syscall sys_umount nr 4105 nbargs 2 types: (char *, int) args: (name, flags)
|
||||
syscall sys_ioctl nr 4109 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_fcntl nr 4111 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_setpgid nr 4115 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid)
|
||||
syscall sys_olduname nr 4119 nbargs 1 types: (struct oldold_utsname *) args: (name)
|
||||
syscall sys_umask nr 4121 nbargs 1 types: (int) args: (mask)
|
||||
syscall sys_chroot nr 4123 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_ustat nr 4125 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf)
|
||||
syscall sys_dup2 nr 4127 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd)
|
||||
syscall sys_getppid nr 4129 nbargs 0 types: () args: ()
|
||||
syscall sys_getpgrp nr 4131 nbargs 0 types: () args: ()
|
||||
syscall sys_setsid nr 4133 nbargs 0 types: () args: ()
|
||||
syscall sys_sigaction nr 4135 nbargs 3 types: (int, const struct sigaction *, struct sigaction *) args: (sig, act, oact)
|
||||
syscall sys_sgetmask nr 4137 nbargs 0 types: () args: ()
|
||||
syscall sys_ssetmask nr 4139 nbargs 1 types: (int) args: (newmask)
|
||||
syscall sys_setreuid nr 4141 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid nr 4143 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid)
|
||||
syscall sys_sigpending nr 4147 nbargs 1 types: (old_sigset_t *) args: (set)
|
||||
syscall sys_sethostname nr 4149 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_setrlimit nr 4151 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrlimit nr 4153 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrusage nr 4155 nbargs 2 types: (int, struct rusage *) args: (who, ru)
|
||||
syscall sys_gettimeofday nr 4157 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_settimeofday nr 4159 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_getgroups nr 4161 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups nr 4163 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_symlink nr 4167 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_readlink nr 4171 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz)
|
||||
syscall sys_uselib nr 4173 nbargs 1 types: (const char *) args: (library)
|
||||
syscall sys_swapon nr 4175 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags)
|
||||
syscall sys_reboot nr 4177 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg)
|
||||
syscall sys_old_readdir nr 4179 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_mips_mmap nr 4181 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t) args: (addr, len, prot, flags, fd, offset)
|
||||
syscall sys_munmap nr 4183 nbargs 2 types: (unsigned long, size_t) args: (addr, len)
|
||||
syscall sys_truncate nr 4185 nbargs 2 types: (const char *, long) args: (path, length)
|
||||
syscall sys_ftruncate nr 4187 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length)
|
||||
syscall sys_fchmod nr 4189 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode)
|
||||
syscall sys_fchown nr 4191 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group)
|
||||
syscall sys_getpriority nr 4193 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_setpriority nr 4195 nbargs 3 types: (int, int, int) args: (which, who, niceval)
|
||||
syscall sys_statfs nr 4199 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf)
|
||||
syscall sys_fstatfs nr 4201 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf)
|
||||
syscall sys_socketcall nr 4205 nbargs 2 types: (int, unsigned long *) args: (call, args)
|
||||
syscall sys_syslog nr 4207 nbargs 3 types: (int, char *, int) args: (type, buf, len)
|
||||
syscall sys_setitimer nr 4209 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue)
|
||||
syscall sys_getitimer nr 4211 nbargs 2 types: (int, struct itimerval *) args: (which, value)
|
||||
syscall sys_newstat nr 4213 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newlstat nr 4215 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newfstat nr 4217 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf)
|
||||
syscall sys_uname nr 4219 nbargs 1 types: (struct old_utsname *) args: (name)
|
||||
syscall sys_vhangup nr 4223 nbargs 0 types: () args: ()
|
||||
syscall sys_wait4 nr 4229 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru)
|
||||
syscall sys_swapoff nr 4231 nbargs 1 types: (const char *) args: (specialfile)
|
||||
syscall sys_sysinfo nr 4233 nbargs 1 types: (struct sysinfo *) args: (info)
|
||||
syscall sys_ipc nr 4235 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth)
|
||||
syscall sys_fsync nr 4237 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_setdomainname nr 4243 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_newuname nr 4245 nbargs 1 types: (struct new_utsname *) args: (name)
|
||||
syscall sys_adjtimex nr 4249 nbargs 1 types: (struct timex *) args: (txc_p)
|
||||
syscall sys_mprotect nr 4251 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot)
|
||||
syscall sys_sigprocmask nr 4253 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset)
|
||||
syscall sys_init_module nr 4257 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs)
|
||||
syscall sys_delete_module nr 4259 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags)
|
||||
syscall sys_quotactl nr 4263 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr)
|
||||
syscall sys_getpgid nr 4265 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fchdir nr 4267 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_bdflush nr 4269 nbargs 2 types: (int, long) args: (func, data)
|
||||
syscall sys_sysfs nr 4271 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2)
|
||||
syscall sys_personality nr 4273 nbargs 1 types: (unsigned int) args: (personality)
|
||||
syscall sys_setfsuid nr 4277 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setfsgid nr 4279 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_llseek nr 4281 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin)
|
||||
syscall sys_getdents nr 4283 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_select nr 4285 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp)
|
||||
syscall sys_flock nr 4287 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd)
|
||||
syscall sys_msync nr 4289 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
||||
syscall sys_readv nr 4291 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_writev nr 4293 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_cacheflush nr 4295 nbargs 3 types: (unsigned long, unsigned long, unsigned int) args: (addr, bytes, cache)
|
||||
syscall sys_cachectl nr 4297 nbargs 3 types: (char *, int, int) args: (addr, nbytes, op)
|
||||
syscall sys_getsid nr 4303 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_fdatasync nr 4305 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_sysctl nr 4307 nbargs 1 types: (struct __sysctl_args *) args: (args)
|
||||
syscall sys_mlock nr 4309 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_munlock nr 4311 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_mlockall nr 4313 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_munlockall nr 4315 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_setparam nr 4317 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_getparam nr 4319 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setscheduler nr 4321 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param)
|
||||
syscall sys_sched_getscheduler nr 4323 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_sched_yield nr 4325 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_get_priority_max nr 4327 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_get_priority_min nr 4329 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_rr_get_interval nr 4331 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval)
|
||||
syscall sys_nanosleep nr 4333 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp)
|
||||
syscall sys_mremap nr 4335 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr)
|
||||
syscall sys_accept nr 4337 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen)
|
||||
syscall sys_bind nr 4339 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen)
|
||||
syscall sys_connect nr 4341 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen)
|
||||
syscall sys_getpeername nr 4343 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getsockname nr 4345 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
|
@ -0,0 +1,289 @@
|
|||
syscall sys_waitpid nr 4007 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options)
|
||||
syscall sys_oldumount nr 4022 nbargs 1 types: (char *) args: (name)
|
||||
syscall sys_nice nr 4034 nbargs 1 types: (int) args: (increment)
|
||||
syscall sys_olduname nr 4059 nbargs 1 types: (struct oldold_utsname *) args: (name)
|
||||
syscall sys_32_sigaction nr 4067 nbargs 3 types: (long, const struct sigaction32 *, struct sigaction32 *) args: (sig, act, oact)
|
||||
syscall sys_sgetmask nr 4068 nbargs 0 types: () args: ()
|
||||
syscall sys_ssetmask nr 4069 nbargs 1 types: (int) args: (newmask)
|
||||
syscall sys_uselib nr 4086 nbargs 1 types: (const char *) args: (library)
|
||||
syscall sys_uname nr 4109 nbargs 1 types: (struct old_utsname *) args: (name)
|
||||
syscall sys_32_ipc nr 4117 nbargs 6 types: (u32, long, long, long, unsigned long, unsigned long) args: (call, first, second, third, ptr, fifth)
|
||||
syscall sys_bdflush nr 4134 nbargs 2 types: (int, long) args: (func, data)
|
||||
syscall sys_32_llseek nr 4140 nbargs 5 types: (unsigned int, unsigned int, unsigned int, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin)
|
||||
syscall sys_send nr 4178 nbargs 4 types: (int, void *, size_t, unsigned int) args: (fd, buff, len, flags)
|
||||
syscall sys_32_pread nr 4200 nbargs 6 types: (unsigned long, char *, size_t, unsigned long, unsigned long, unsigned long) args: (fd, buf, count, unused, a4, a5)
|
||||
syscall sys_32_pwrite nr 4201 nbargs 6 types: (unsigned int, const char *, size_t, u32, u64, u64) args: (fd, buf, count, unused, a4, a5)
|
||||
syscall sys_mips_mmap2 nr 4210 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, pgoff)
|
||||
syscall sys_32_truncate64 nr 4211 nbargs 4 types: (const char *, unsigned long, unsigned long, unsigned long) args: (path, __dummy, a2, a3)
|
||||
syscall sys_32_ftruncate64 nr 4212 nbargs 4 types: (unsigned long, unsigned long, unsigned long, unsigned long) args: (fd, __dummy, a2, a3)
|
||||
syscall sys_32_waitid nr 4278 nbargs 5 types: (int, compat_pid_t, compat_siginfo_t *, int, struct compat_rusage *) args: (which, pid, uinfo, options, uru)
|
||||
syscall sys_32_fanotify_mark nr 4337 nbargs 6 types: (int, unsigned int, u64, u64, int, const char *) args: (fanotify_fd, flags, a3, a4, dfd, pathname)
|
||||
syscall sys_rt_sigaction nr 5013 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize)
|
||||
syscall sys_rt_sigprocmask nr 5014 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize)
|
||||
syscall sys_ioctl nr 5015 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_readv nr 5018 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_writev nr 5019 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_select nr 5022 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp)
|
||||
syscall sys_shmctl nr 5030 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf)
|
||||
syscall sys_nanosleep nr 5034 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp)
|
||||
syscall sys_getitimer nr 5035 nbargs 2 types: (int, struct itimerval *) args: (which, value)
|
||||
syscall sys_setitimer nr 5036 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue)
|
||||
syscall sys_recvfrom nr 5044 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len)
|
||||
syscall sys_sendmsg nr 5045 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_recvmsg nr 5046 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_setsockopt nr 5053 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_wait4 nr 5059 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru)
|
||||
syscall sys_msgsnd nr 5067 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg)
|
||||
syscall sys_msgrcv nr 5068 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg)
|
||||
syscall sys_msgctl nr 5069 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf)
|
||||
syscall sys_fcntl nr 5070 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_getdents nr 5076 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_gettimeofday nr 5094 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_getrlimit nr 5095 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrusage nr 5096 nbargs 2 types: (int, struct rusage *) args: (who, ru)
|
||||
syscall sys_sysinfo nr 5097 nbargs 1 types: (struct sysinfo *) args: (info)
|
||||
syscall sys_times nr 5098 nbargs 1 types: (struct tms *) args: (tbuf)
|
||||
syscall sys_ptrace nr 5099 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data)
|
||||
syscall sys_rt_sigpending nr 5125 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize)
|
||||
syscall sys_rt_sigtimedwait nr 5126 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize)
|
||||
syscall sys_rt_sigqueueinfo nr 5127 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo)
|
||||
syscall sys_utime nr 5130 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times)
|
||||
syscall sys_personality nr 5132 nbargs 1 types: (unsigned int) args: (personality)
|
||||
syscall sys_ustat nr 5133 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf)
|
||||
syscall sys_statfs nr 5134 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf)
|
||||
syscall sys_fstatfs nr 5135 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf)
|
||||
syscall sys_sched_rr_get_interval nr 5145 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval)
|
||||
syscall sys_sysctl nr 5152 nbargs 1 types: (struct __sysctl_args *) args: (args)
|
||||
syscall sys_adjtimex nr 5154 nbargs 1 types: (struct timex *) args: (txc_p)
|
||||
syscall sys_setrlimit nr 5155 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_settimeofday nr 5159 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_mount nr 5160 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data)
|
||||
syscall sys_futex nr 5194 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3)
|
||||
syscall sys_sched_setaffinity nr 5195 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_sched_getaffinity nr 5196 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_io_setup nr 5200 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp)
|
||||
syscall sys_io_getevents nr 5202 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout)
|
||||
syscall sys_io_submit nr 5203 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp)
|
||||
syscall sys_semtimedop nr 5214 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout)
|
||||
syscall sys_timer_create nr 5216 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id)
|
||||
syscall sys_timer_settime nr 5217 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting)
|
||||
syscall sys_timer_gettime nr 5218 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting)
|
||||
syscall sys_clock_settime nr 5221 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_gettime nr 5222 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_getres nr 5223 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_nanosleep nr 5224 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp)
|
||||
syscall sys_utimes nr 5226 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes)
|
||||
syscall sys_waitid nr 5237 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru)
|
||||
syscall sys_futimesat nr 5251 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes)
|
||||
syscall sys_pselect6 nr 5260 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig)
|
||||
syscall sys_ppoll nr 5261 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize)
|
||||
syscall sys_vmsplice nr 5266 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags)
|
||||
syscall sys_set_robust_list nr 5268 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len)
|
||||
syscall sys_get_robust_list nr 5269 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr)
|
||||
syscall sys_epoll_pwait nr 5272 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize)
|
||||
syscall sys_utimensat nr 5275 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags)
|
||||
syscall sys_signalfd nr 5276 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask)
|
||||
syscall sys_timerfd_gettime nr 5281 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr)
|
||||
syscall sys_timerfd_settime nr 5282 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr)
|
||||
syscall sys_rt_tgsigqueueinfo nr 5291 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo)
|
||||
syscall sys_recvmmsg nr 5294 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout)
|
||||
syscall sys_clock_adjtime nr 5300 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx)
|
||||
syscall sys_sendmmsg nr 5302 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags)
|
||||
syscall sys_process_vm_readv nr 5304 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags)
|
||||
syscall sys_process_vm_writev nr 5305 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags)
|
||||
syscall sys_read nr 6000 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_write nr 6001 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_open nr 6002 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode)
|
||||
syscall sys_close nr 6003 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_newstat nr 6004 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_newfstat nr 6005 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf)
|
||||
syscall sys_newlstat nr 6006 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf)
|
||||
syscall sys_poll nr 6007 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs)
|
||||
syscall sys_lseek nr 6008 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin)
|
||||
syscall sys_mips_mmap nr 6009 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t) args: (addr, len, prot, flags, fd, offset)
|
||||
syscall sys_mprotect nr 6010 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot)
|
||||
syscall sys_munmap nr 6011 nbargs 2 types: (unsigned long, size_t) args: (addr, len)
|
||||
syscall sys_brk nr 6012 nbargs 1 types: (unsigned long) args: (brk)
|
||||
syscall sys_32_rt_sigaction nr 6013 nbargs 4 types: (int, const struct sigaction32 *, struct sigaction32 *, unsigned int) args: (sig, act, oact, sigsetsize)
|
||||
syscall sys_32_rt_sigprocmask nr 6014 nbargs 4 types: (int, compat_sigset_t *, compat_sigset_t *, unsigned int) args: (how, set, oset, sigsetsize)
|
||||
syscall sys_access nr 6020 nbargs 2 types: (const char *, int) args: (filename, mode)
|
||||
syscall sys_sched_yield nr 6023 nbargs 0 types: () args: ()
|
||||
syscall sys_mremap nr 6024 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr)
|
||||
syscall sys_msync nr 6025 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
||||
syscall sys_mincore nr 6026 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec)
|
||||
syscall sys_madvise nr 6027 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior)
|
||||
syscall sys_shmget nr 6028 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg)
|
||||
syscall sys_shmat nr 6029 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg)
|
||||
syscall sys_dup nr 6031 nbargs 1 types: (unsigned int) args: (fildes)
|
||||
syscall sys_dup2 nr 6032 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd)
|
||||
syscall sys_pause nr 6033 nbargs 0 types: () args: ()
|
||||
syscall sys_alarm nr 6037 nbargs 1 types: (unsigned int) args: (seconds)
|
||||
syscall sys_getpid nr 6038 nbargs 0 types: () args: ()
|
||||
syscall sys_32_sendfile nr 6039 nbargs 4 types: (long, long, compat_off_t *, s32) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_socket nr 6040 nbargs 3 types: (int, int, int) args: (family, type, protocol)
|
||||
syscall sys_connect nr 6041 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen)
|
||||
syscall sys_accept nr 6042 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen)
|
||||
syscall sys_sendto nr 6043 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len)
|
||||
syscall sys_shutdown nr 6047 nbargs 2 types: (int, int) args: (fd, how)
|
||||
syscall sys_bind nr 6048 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen)
|
||||
syscall sys_listen nr 6049 nbargs 2 types: (int, int) args: (fd, backlog)
|
||||
syscall sys_getsockname nr 6050 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getpeername nr 6051 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_socketpair nr 6052 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec)
|
||||
syscall sys_getsockopt nr 6054 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_exit nr 6058 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_kill nr 6060 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_newuname nr 6061 nbargs 1 types: (struct new_utsname *) args: (name)
|
||||
syscall sys_semget nr 6062 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg)
|
||||
syscall sys_semop nr 6063 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops)
|
||||
syscall sys_n32_semctl nr 6064 nbargs 4 types: (int, int, int, u32) args: (semid, semnum, cmd, arg)
|
||||
syscall sys_shmdt nr 6065 nbargs 1 types: (char *) args: (shmaddr)
|
||||
syscall sys_msgget nr 6066 nbargs 2 types: (key_t, int) args: (key, msgflg)
|
||||
syscall sys_n32_msgsnd nr 6067 nbargs 4 types: (int, u32, unsigned int, int) args: (msqid, msgp, msgsz, msgflg)
|
||||
syscall sys_n32_msgrcv nr 6068 nbargs 5 types: (int, u32, size_t, int, int) args: (msqid, msgp, msgsz, msgtyp, msgflg)
|
||||
syscall sys_flock nr 6071 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd)
|
||||
syscall sys_fsync nr 6072 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_fdatasync nr 6073 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_truncate nr 6074 nbargs 2 types: (const char *, long) args: (path, length)
|
||||
syscall sys_ftruncate nr 6075 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length)
|
||||
syscall sys_getcwd nr 6077 nbargs 2 types: (char *, unsigned long) args: (buf, size)
|
||||
syscall sys_chdir nr 6078 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_fchdir nr 6079 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_rename nr 6080 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_mkdir nr 6081 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_rmdir nr 6082 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_creat nr 6083 nbargs 2 types: (const char *, umode_t) args: (pathname, mode)
|
||||
syscall sys_link nr 6084 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_unlink nr 6085 nbargs 1 types: (const char *) args: (pathname)
|
||||
syscall sys_symlink nr 6086 nbargs 2 types: (const char *, const char *) args: (oldname, newname)
|
||||
syscall sys_readlink nr 6087 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz)
|
||||
syscall sys_chmod nr 6088 nbargs 2 types: (const char *, umode_t) args: (filename, mode)
|
||||
syscall sys_fchmod nr 6089 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode)
|
||||
syscall sys_chown nr 6090 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_fchown nr 6091 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group)
|
||||
syscall sys_lchown nr 6092 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group)
|
||||
syscall sys_umask nr 6093 nbargs 1 types: (int) args: (mask)
|
||||
syscall sys_getuid nr 6100 nbargs 0 types: () args: ()
|
||||
syscall sys_syslog nr 6101 nbargs 3 types: (int, char *, int) args: (type, buf, len)
|
||||
syscall sys_getgid nr 6102 nbargs 0 types: () args: ()
|
||||
syscall sys_setuid nr 6103 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setgid nr 6104 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_geteuid nr 6105 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid nr 6106 nbargs 0 types: () args: ()
|
||||
syscall sys_setpgid nr 6107 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid)
|
||||
syscall sys_getppid nr 6108 nbargs 0 types: () args: ()
|
||||
syscall sys_getpgrp nr 6109 nbargs 0 types: () args: ()
|
||||
syscall sys_setsid nr 6110 nbargs 0 types: () args: ()
|
||||
syscall sys_setreuid nr 6111 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid)
|
||||
syscall sys_setregid nr 6112 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid)
|
||||
syscall sys_getgroups nr 6113 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups nr 6114 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setresuid nr 6115 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid nr 6116 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruidp, euidp, suidp)
|
||||
syscall sys_setresgid nr 6117 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid nr 6118 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgidp, egidp, sgidp)
|
||||
syscall sys_getpgid nr 6119 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_setfsuid nr 6120 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setfsgid nr 6121 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_getsid nr 6122 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_capget nr 6123 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr)
|
||||
syscall sys_capset nr 6124 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data)
|
||||
syscall sys_32_rt_sigpending nr 6125 nbargs 2 types: (compat_sigset_t *, unsigned int) args: (uset, sigsetsize)
|
||||
syscall sys_32_rt_sigqueueinfo nr 6127 nbargs 3 types: (int, int, compat_siginfo_t *) args: (pid, sig, uinfo)
|
||||
syscall sys_mknod nr 6131 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev)
|
||||
syscall sys_32_personality nr 6132 nbargs 1 types: (unsigned long) args: (personality)
|
||||
syscall sys_sysfs nr 6136 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2)
|
||||
syscall sys_getpriority nr 6137 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_setpriority nr 6138 nbargs 3 types: (int, int, int) args: (which, who, niceval)
|
||||
syscall sys_sched_setparam nr 6139 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_getparam nr 6140 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setscheduler nr 6141 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param)
|
||||
syscall sys_sched_getscheduler nr 6142 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_sched_get_priority_max nr 6143 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_get_priority_min nr 6144 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_32_sched_rr_get_interval nr 6145 nbargs 2 types: (compat_pid_t, struct compat_timespec *) args: (pid, interval)
|
||||
syscall sys_mlock nr 6146 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_munlock nr 6147 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_mlockall nr 6148 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_munlockall nr 6149 nbargs 0 types: () args: ()
|
||||
syscall sys_vhangup nr 6150 nbargs 0 types: () args: ()
|
||||
syscall sys_pivot_root nr 6151 nbargs 2 types: (const char *, const char *) args: (new_root, put_old)
|
||||
syscall sys_prctl nr 6153 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_chroot nr 6156 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_sync nr 6157 nbargs 0 types: () args: ()
|
||||
syscall sys_umount nr 6161 nbargs 2 types: (char *, int) args: (name, flags)
|
||||
syscall sys_swapon nr 6162 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags)
|
||||
syscall sys_swapoff nr 6163 nbargs 1 types: (const char *) args: (specialfile)
|
||||
syscall sys_reboot nr 6164 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg)
|
||||
syscall sys_sethostname nr 6165 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_setdomainname nr 6166 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_init_module nr 6168 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs)
|
||||
syscall sys_delete_module nr 6169 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags)
|
||||
syscall sys_quotactl nr 6172 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr)
|
||||
syscall sys_gettid nr 6178 nbargs 0 types: () args: ()
|
||||
syscall sys_setxattr nr 6180 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_lsetxattr nr 6181 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_fsetxattr nr 6182 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags)
|
||||
syscall sys_getxattr nr 6183 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_lgetxattr nr 6184 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_fgetxattr nr 6185 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size)
|
||||
syscall sys_listxattr nr 6186 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_llistxattr nr 6187 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_flistxattr nr 6188 nbargs 3 types: (int, char *, size_t) args: (fd, list, size)
|
||||
syscall sys_removexattr nr 6189 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_lremovexattr nr 6190 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_fremovexattr nr 6191 nbargs 2 types: (int, const char *) args: (fd, name)
|
||||
syscall sys_tkill nr 6192 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_32_futex nr 6194 nbargs 6 types: (u32 *, int, u32, struct compat_timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3)
|
||||
syscall sys_cacheflush nr 6197 nbargs 3 types: (unsigned long, unsigned long, unsigned int) args: (addr, bytes, cache)
|
||||
syscall sys_cachectl nr 6198 nbargs 3 types: (char *, int, int) args: (addr, nbytes, op)
|
||||
syscall sys_io_destroy nr 6201 nbargs 1 types: (aio_context_t) args: (ctx)
|
||||
syscall sys_io_cancel nr 6204 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result)
|
||||
syscall sys_exit_group nr 6205 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_epoll_create nr 6207 nbargs 1 types: (int) args: (size)
|
||||
syscall sys_epoll_ctl nr 6208 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event)
|
||||
syscall sys_epoll_wait nr 6209 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout)
|
||||
syscall sys_remap_file_pages nr 6210 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags)
|
||||
syscall sys_set_tid_address nr 6213 nbargs 1 types: (int *) args: (tidptr)
|
||||
syscall sys_restart_syscall nr 6214 nbargs 0 types: () args: ()
|
||||
syscall sys_sendfile64 nr 6219 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_timer_getoverrun nr 6223 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_timer_delete nr 6224 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_tgkill nr 6229 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig)
|
||||
syscall sys_set_thread_area nr 6246 nbargs 1 types: (unsigned long) args: (addr)
|
||||
syscall sys_inotify_init nr 6247 nbargs 0 types: () args: ()
|
||||
syscall sys_inotify_add_watch nr 6248 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask)
|
||||
syscall sys_inotify_rm_watch nr 6249 nbargs 2 types: (int, __s32) args: (fd, wd)
|
||||
syscall sys_openat nr 6251 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode)
|
||||
syscall sys_mkdirat nr 6252 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode)
|
||||
syscall sys_mknodat nr 6253 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev)
|
||||
syscall sys_fchownat nr 6254 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag)
|
||||
syscall sys_newfstatat nr 6256 nbargs 4 types: (int, const char *, struct stat *, int) args: (dfd, filename, statbuf, flag)
|
||||
syscall sys_unlinkat nr 6257 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag)
|
||||
syscall sys_renameat nr 6258 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname)
|
||||
syscall sys_linkat nr 6259 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_symlinkat nr 6260 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname)
|
||||
syscall sys_readlinkat nr 6261 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz)
|
||||
syscall sys_fchmodat nr 6262 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode)
|
||||
syscall sys_faccessat nr 6263 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode)
|
||||
syscall sys_unshare nr 6266 nbargs 1 types: (unsigned long) args: (unshare_flags)
|
||||
syscall sys_splice nr 6267 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags)
|
||||
syscall sys_tee nr 6269 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags)
|
||||
syscall sys_getcpu nr 6275 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused)
|
||||
syscall sys_ioprio_set nr 6277 nbargs 3 types: (int, int, int) args: (which, who, ioprio)
|
||||
syscall sys_ioprio_get nr 6278 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_eventfd nr 6282 nbargs 1 types: (unsigned int) args: (count)
|
||||
syscall sys_timerfd_create nr 6284 nbargs 2 types: (int, int) args: (clockid, flags)
|
||||
syscall sys_signalfd4 nr 6287 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags)
|
||||
syscall sys_eventfd2 nr 6288 nbargs 2 types: (unsigned int, int) args: (count, flags)
|
||||
syscall sys_epoll_create1 nr 6289 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_dup3 nr 6290 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags)
|
||||
syscall sys_pipe2 nr 6291 nbargs 2 types: (int *, int) args: (fildes, flags)
|
||||
syscall sys_inotify_init1 nr 6292 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_preadv nr 6293 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_pwritev nr 6294 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_accept4 nr 6297 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags)
|
||||
syscall sys_getdents64 nr 6299 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_prlimit64 nr 6302 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim)
|
||||
syscall sys_syncfs nr 6306 nbargs 1 types: (int) args: (fd)
|
||||
syscall sys_setns nr 6308 nbargs 2 types: (int, int) args: (fd, nstype)
|
|
@ -0,0 +1,256 @@
|
|||
syscall sys_io_setup nr 0 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp)
|
||||
syscall sys_io_destroy nr 1 nbargs 1 types: (aio_context_t) args: (ctx)
|
||||
syscall sys_io_submit nr 2 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp)
|
||||
syscall sys_io_cancel nr 3 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result)
|
||||
syscall sys_io_getevents nr 4 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout)
|
||||
syscall sys_setxattr nr 5 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_lsetxattr nr 6 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags)
|
||||
syscall sys_fsetxattr nr 7 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags)
|
||||
syscall sys_getxattr nr 8 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_lgetxattr nr 9 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size)
|
||||
syscall sys_fgetxattr nr 10 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size)
|
||||
syscall sys_listxattr nr 11 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_llistxattr nr 12 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size)
|
||||
syscall sys_flistxattr nr 13 nbargs 3 types: (int, char *, size_t) args: (fd, list, size)
|
||||
syscall sys_removexattr nr 14 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_lremovexattr nr 15 nbargs 2 types: (const char *, const char *) args: (pathname, name)
|
||||
syscall sys_fremovexattr nr 16 nbargs 2 types: (int, const char *) args: (fd, name)
|
||||
syscall sys_getcwd nr 17 nbargs 2 types: (char *, unsigned long) args: (buf, size)
|
||||
syscall sys_lookup_dcookie nr 18 nbargs 3 types: (u64, char *, size_t) args: (cookie64, buf, len)
|
||||
syscall sys_eventfd2 nr 19 nbargs 2 types: (unsigned int, int) args: (count, flags)
|
||||
syscall sys_epoll_create1 nr 20 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_epoll_ctl nr 21 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event)
|
||||
syscall sys_epoll_pwait nr 22 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize)
|
||||
syscall sys_dup nr 23 nbargs 1 types: (unsigned int) args: (fildes)
|
||||
syscall sys_dup3 nr 24 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags)
|
||||
syscall sys_fcntl nr 25 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_inotify_init1 nr 26 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_inotify_add_watch nr 27 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask)
|
||||
syscall sys_inotify_rm_watch nr 28 nbargs 2 types: (int, __s32) args: (fd, wd)
|
||||
syscall sys_ioctl nr 29 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg)
|
||||
syscall sys_ioprio_set nr 30 nbargs 3 types: (int, int, int) args: (which, who, ioprio)
|
||||
syscall sys_ioprio_get nr 31 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_flock nr 32 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd)
|
||||
syscall sys_mknodat nr 33 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev)
|
||||
syscall sys_mkdirat nr 34 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode)
|
||||
syscall sys_unlinkat nr 35 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag)
|
||||
syscall sys_symlinkat nr 36 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname)
|
||||
syscall sys_linkat nr 37 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_renameat nr 38 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname)
|
||||
syscall sys_umount nr 39 nbargs 2 types: (char *, int) args: (name, flags)
|
||||
syscall sys_mount nr 40 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data)
|
||||
syscall sys_pivot_root nr 41 nbargs 2 types: (const char *, const char *) args: (new_root, put_old)
|
||||
syscall sys_statfs nr 43 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf)
|
||||
syscall sys_fstatfs nr 44 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf)
|
||||
syscall sys_truncate nr 45 nbargs 2 types: (const char *, long) args: (path, length)
|
||||
syscall sys_ftruncate nr 46 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length)
|
||||
syscall sys_fallocate nr 47 nbargs 4 types: (int, int, loff_t, loff_t) args: (fd, mode, offset, len)
|
||||
syscall sys_faccessat nr 48 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode)
|
||||
syscall sys_chdir nr 49 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_fchdir nr 50 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_chroot nr 51 nbargs 1 types: (const char *) args: (filename)
|
||||
syscall sys_fchmod nr 52 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode)
|
||||
syscall sys_fchmodat nr 53 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode)
|
||||
syscall sys_fchownat nr 54 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag)
|
||||
syscall sys_fchown nr 55 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group)
|
||||
syscall sys_openat nr 56 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode)
|
||||
syscall sys_close nr 57 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_vhangup nr 58 nbargs 0 types: () args: ()
|
||||
syscall sys_pipe2 nr 59 nbargs 2 types: (int *, int) args: (fildes, flags)
|
||||
syscall sys_quotactl nr 60 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr)
|
||||
syscall sys_getdents64 nr 61 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count)
|
||||
syscall sys_lseek nr 62 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, whence)
|
||||
syscall sys_read nr 63 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_write nr 64 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count)
|
||||
syscall sys_readv nr 65 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_writev nr 66 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen)
|
||||
syscall sys_pread64 nr 67 nbargs 4 types: (unsigned int, char *, size_t, loff_t) args: (fd, buf, count, pos)
|
||||
syscall sys_pwrite64 nr 68 nbargs 4 types: (unsigned int, const char *, size_t, loff_t) args: (fd, buf, count, pos)
|
||||
syscall sys_preadv nr 69 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_pwritev nr 70 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h)
|
||||
syscall sys_sendfile64 nr 71 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count)
|
||||
syscall sys_pselect6 nr 72 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig)
|
||||
syscall sys_ppoll nr 73 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize)
|
||||
syscall sys_signalfd4 nr 74 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags)
|
||||
syscall sys_vmsplice nr 75 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags)
|
||||
syscall sys_splice nr 76 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags)
|
||||
syscall sys_tee nr 77 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags)
|
||||
syscall sys_readlinkat nr 78 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz)
|
||||
syscall sys_newfstatat nr 79 nbargs 4 types: (int, const char *, struct stat *, int) args: (dfd, filename, statbuf, flag)
|
||||
syscall sys_newfstat nr 80 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf)
|
||||
syscall sys_sync nr 81 nbargs 0 types: () args: ()
|
||||
syscall sys_fsync nr 82 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_fdatasync nr 83 nbargs 1 types: (unsigned int) args: (fd)
|
||||
syscall sys_sync_file_range nr 84 nbargs 4 types: (int, loff_t, loff_t, unsigned int) args: (fd, offset, nbytes, flags)
|
||||
syscall sys_timerfd_create nr 85 nbargs 2 types: (int, int) args: (clockid, flags)
|
||||
syscall sys_timerfd_settime nr 86 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr)
|
||||
syscall sys_timerfd_gettime nr 87 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr)
|
||||
syscall sys_utimensat nr 88 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags)
|
||||
syscall sys_acct nr 89 nbargs 1 types: (const char *) args: (name)
|
||||
syscall sys_capget nr 90 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr)
|
||||
syscall sys_capset nr 91 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data)
|
||||
syscall sys_personality nr 92 nbargs 1 types: (unsigned int) args: (personality)
|
||||
syscall sys_exit nr 93 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_exit_group nr 94 nbargs 1 types: (int) args: (error_code)
|
||||
syscall sys_waitid nr 95 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru)
|
||||
syscall sys_set_tid_address nr 96 nbargs 1 types: (int *) args: (tidptr)
|
||||
syscall sys_unshare nr 97 nbargs 1 types: (unsigned long) args: (unshare_flags)
|
||||
syscall sys_futex nr 98 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3)
|
||||
syscall sys_set_robust_list nr 99 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len)
|
||||
syscall sys_get_robust_list nr 100 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr)
|
||||
syscall sys_nanosleep nr 101 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp)
|
||||
syscall sys_getitimer nr 102 nbargs 2 types: (int, struct itimerval *) args: (which, value)
|
||||
syscall sys_setitimer nr 103 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue)
|
||||
syscall sys_init_module nr 105 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs)
|
||||
syscall sys_delete_module nr 106 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags)
|
||||
syscall sys_timer_create nr 107 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id)
|
||||
syscall sys_timer_gettime nr 108 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting)
|
||||
syscall sys_timer_getoverrun nr 109 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_timer_settime nr 110 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting)
|
||||
syscall sys_timer_delete nr 111 nbargs 1 types: (timer_t) args: (timer_id)
|
||||
syscall sys_clock_settime nr 112 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_gettime nr 113 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_getres nr 114 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp)
|
||||
syscall sys_clock_nanosleep nr 115 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp)
|
||||
syscall sys_syslog nr 116 nbargs 3 types: (int, char *, int) args: (type, buf, len)
|
||||
syscall sys_ptrace nr 117 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data)
|
||||
syscall sys_sched_setparam nr 118 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setscheduler nr 119 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param)
|
||||
syscall sys_sched_getscheduler nr 120 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_sched_getparam nr 121 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param)
|
||||
syscall sys_sched_setaffinity nr 122 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_sched_getaffinity nr 123 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr)
|
||||
syscall sys_sched_yield nr 124 nbargs 0 types: () args: ()
|
||||
syscall sys_sched_get_priority_max nr 125 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_get_priority_min nr 126 nbargs 1 types: (int) args: (policy)
|
||||
syscall sys_sched_rr_get_interval nr 127 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval)
|
||||
syscall sys_restart_syscall nr 128 nbargs 0 types: () args: ()
|
||||
syscall sys_kill nr 129 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_tkill nr 130 nbargs 2 types: (pid_t, int) args: (pid, sig)
|
||||
syscall sys_tgkill nr 131 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig)
|
||||
syscall sys_sigaltstack nr 132 nbargs 2 types: (const stack_t *, stack_t *) args: (uss, uoss)
|
||||
syscall sys_rt_sigsuspend nr 133 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize)
|
||||
syscall sys_rt_sigaction nr 134 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize)
|
||||
syscall sys_rt_sigprocmask nr 135 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize)
|
||||
syscall sys_rt_sigpending nr 136 nbargs 2 types: (sigset_t *, size_t) args: (uset, sigsetsize)
|
||||
syscall sys_rt_sigtimedwait nr 137 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize)
|
||||
syscall sys_rt_sigqueueinfo nr 138 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo)
|
||||
syscall sys_setpriority nr 140 nbargs 3 types: (int, int, int) args: (which, who, niceval)
|
||||
syscall sys_getpriority nr 141 nbargs 2 types: (int, int) args: (which, who)
|
||||
syscall sys_reboot nr 142 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg)
|
||||
syscall sys_setregid nr 143 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid)
|
||||
syscall sys_setgid nr 144 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_setreuid nr 145 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid)
|
||||
syscall sys_setuid nr 146 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setresuid nr 147 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid)
|
||||
syscall sys_getresuid nr 148 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruidp, euidp, suidp)
|
||||
syscall sys_setresgid nr 149 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid)
|
||||
syscall sys_getresgid nr 150 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgidp, egidp, sgidp)
|
||||
syscall sys_setfsuid nr 151 nbargs 1 types: (uid_t) args: (uid)
|
||||
syscall sys_setfsgid nr 152 nbargs 1 types: (gid_t) args: (gid)
|
||||
syscall sys_times nr 153 nbargs 1 types: (struct tms *) args: (tbuf)
|
||||
syscall sys_setpgid nr 154 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid)
|
||||
syscall sys_getpgid nr 155 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_getsid nr 156 nbargs 1 types: (pid_t) args: (pid)
|
||||
syscall sys_setsid nr 157 nbargs 0 types: () args: ()
|
||||
syscall sys_getgroups nr 158 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_setgroups nr 159 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist)
|
||||
syscall sys_newuname nr 160 nbargs 1 types: (struct new_utsname *) args: (name)
|
||||
syscall sys_sethostname nr 161 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_setdomainname nr 162 nbargs 2 types: (char *, int) args: (name, len)
|
||||
syscall sys_getrlimit nr 163 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_setrlimit nr 164 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim)
|
||||
syscall sys_getrusage nr 165 nbargs 2 types: (int, struct rusage *) args: (who, ru)
|
||||
syscall sys_umask nr 166 nbargs 1 types: (int) args: (mask)
|
||||
syscall sys_prctl nr 167 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_getcpu nr 168 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused)
|
||||
syscall sys_gettimeofday nr 169 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_settimeofday nr 170 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz)
|
||||
syscall sys_adjtimex nr 171 nbargs 1 types: (struct timex *) args: (txc_p)
|
||||
syscall sys_getpid nr 172 nbargs 0 types: () args: ()
|
||||
syscall sys_getppid nr 173 nbargs 0 types: () args: ()
|
||||
syscall sys_getuid nr 174 nbargs 0 types: () args: ()
|
||||
syscall sys_geteuid nr 175 nbargs 0 types: () args: ()
|
||||
syscall sys_getgid nr 176 nbargs 0 types: () args: ()
|
||||
syscall sys_getegid nr 177 nbargs 0 types: () args: ()
|
||||
syscall sys_gettid nr 178 nbargs 0 types: () args: ()
|
||||
syscall sys_sysinfo nr 179 nbargs 1 types: (struct sysinfo *) args: (info)
|
||||
syscall sys_mq_open nr 180 nbargs 4 types: (const char *, int, umode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr)
|
||||
syscall sys_mq_unlink nr 181 nbargs 1 types: (const char *) args: (u_name)
|
||||
syscall sys_mq_timedsend nr 182 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_timedreceive nr 183 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout)
|
||||
syscall sys_mq_notify nr 184 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification)
|
||||
syscall sys_mq_getsetattr nr 185 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat)
|
||||
syscall sys_msgget nr 186 nbargs 2 types: (key_t, int) args: (key, msgflg)
|
||||
syscall sys_msgctl nr 187 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf)
|
||||
syscall sys_msgrcv nr 188 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg)
|
||||
syscall sys_msgsnd nr 189 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg)
|
||||
syscall sys_semget nr 190 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg)
|
||||
syscall sys_semctl nr 191 nbargs 4 types: (int, int, int, unsigned long) args: (semid, semnum, cmd, arg)
|
||||
syscall sys_semtimedop nr 192 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout)
|
||||
syscall sys_semop nr 193 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops)
|
||||
syscall sys_shmget nr 194 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg)
|
||||
syscall sys_shmctl nr 195 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf)
|
||||
syscall sys_shmat nr 196 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg)
|
||||
syscall sys_shmdt nr 197 nbargs 1 types: (char *) args: (shmaddr)
|
||||
syscall sys_socket nr 198 nbargs 3 types: (int, int, int) args: (family, type, protocol)
|
||||
syscall sys_socketpair nr 199 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec)
|
||||
syscall sys_bind nr 200 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen)
|
||||
syscall sys_listen nr 201 nbargs 2 types: (int, int) args: (fd, backlog)
|
||||
syscall sys_accept nr 202 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen)
|
||||
syscall sys_connect nr 203 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen)
|
||||
syscall sys_getsockname nr 204 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_getpeername nr 205 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len)
|
||||
syscall sys_sendto nr 206 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len)
|
||||
syscall sys_recvfrom nr 207 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len)
|
||||
syscall sys_setsockopt nr 208 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_getsockopt nr 209 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen)
|
||||
syscall sys_shutdown nr 210 nbargs 2 types: (int, int) args: (fd, how)
|
||||
syscall sys_sendmsg nr 211 nbargs 3 types: (int, struct user_msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_recvmsg nr 212 nbargs 3 types: (int, struct user_msghdr *, unsigned int) args: (fd, msg, flags)
|
||||
syscall sys_readahead nr 213 nbargs 3 types: (int, loff_t, size_t) args: (fd, offset, count)
|
||||
syscall sys_brk nr 214 nbargs 1 types: (unsigned long) args: (brk)
|
||||
syscall sys_munmap nr 215 nbargs 2 types: (unsigned long, size_t) args: (addr, len)
|
||||
syscall sys_mremap nr 216 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr)
|
||||
syscall sys_add_key nr 217 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid)
|
||||
syscall sys_request_key nr 218 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid)
|
||||
syscall sys_keyctl nr 219 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5)
|
||||
syscall sys_execve nr 221 nbargs 3 types: (const char *, const char *const *, const char *const *) args: (filename, argv, envp)
|
||||
syscall sys_fadvise64_64 nr 223 nbargs 4 types: (int, loff_t, loff_t, int) args: (fd, offset, len, advice)
|
||||
syscall sys_swapon nr 224 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags)
|
||||
syscall sys_swapoff nr 225 nbargs 1 types: (const char *) args: (specialfile)
|
||||
syscall sys_mprotect nr 226 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot)
|
||||
syscall sys_msync nr 227 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
||||
syscall sys_mlock nr 228 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_munlock nr 229 nbargs 2 types: (unsigned long, size_t) args: (start, len)
|
||||
syscall sys_mlockall nr 230 nbargs 1 types: (int) args: (flags)
|
||||
syscall sys_munlockall nr 231 nbargs 0 types: () args: ()
|
||||
syscall sys_mincore nr 232 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec)
|
||||
syscall sys_madvise nr 233 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior)
|
||||
syscall sys_remap_file_pages nr 234 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags)
|
||||
syscall sys_rt_tgsigqueueinfo nr 240 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo)
|
||||
syscall sys_perf_event_open nr 241 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags)
|
||||
syscall sys_accept4 nr 242 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags)
|
||||
syscall sys_recvmmsg nr 243 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout)
|
||||
syscall sys_wait4 nr 260 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru)
|
||||
syscall sys_prlimit64 nr 261 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim)
|
||||
syscall sys_fanotify_init nr 262 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags)
|
||||
syscall sys_fanotify_mark nr 263 nbargs 5 types: (int, unsigned int, __u64, int, const char *) args: (fanotify_fd, flags, mask, dfd, pathname)
|
||||
syscall sys_name_to_handle_at nr 264 nbargs 5 types: (int, const char *, struct file_handle *, int *, int) args: (dfd, name, handle, mnt_id, flag)
|
||||
syscall sys_open_by_handle_at nr 265 nbargs 3 types: (int, struct file_handle *, int) args: (mountdirfd, handle, flags)
|
||||
syscall sys_clock_adjtime nr 266 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx)
|
||||
syscall sys_syncfs nr 267 nbargs 1 types: (int) args: (fd)
|
||||
syscall sys_setns nr 268 nbargs 2 types: (int, int) args: (fd, nstype)
|
||||
syscall sys_sendmmsg nr 269 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags)
|
||||
syscall sys_process_vm_readv nr 270 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags)
|
||||
syscall sys_process_vm_writev nr 271 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags)
|
||||
syscall sys_finit_module nr 273 nbargs 3 types: (int, const char *, int) args: (fd, uargs, flags)
|
||||
syscall sys_sched_setattr nr 274 nbargs 3 types: (pid_t, struct sched_attr *, unsigned int) args: (pid, uattr, flags)
|
||||
syscall sys_sched_getattr nr 275 nbargs 4 types: (pid_t, struct sched_attr *, unsigned int, unsigned int) args: (pid, uattr, size, flags)
|
||||
syscall sys_renameat2 nr 276 nbargs 5 types: (int, const char *, int, const char *, unsigned int) args: (olddfd, oldname, newdfd, newname, flags)
|
||||
syscall sys_seccomp nr 277 nbargs 3 types: (unsigned int, unsigned int, const char *) args: (op, flags, uargs)
|
||||
syscall sys_getrandom nr 278 nbargs 3 types: (char *, size_t, unsigned int) args: (buf, count, flags)
|
||||
syscall sys_memfd_create nr 279 nbargs 2 types: (const char *, unsigned int) args: (uname, flags)
|
||||
syscall sys_execveat nr 281 nbargs 5 types: (int, const char *, const char *const *, const char *const *, int) args: (fd, filename, argv, envp, flags)
|
||||
syscall sys_membarrier nr 283 nbargs 2 types: (int, int) args: (cmd, flags)
|
||||
syscall sys_mlock2 nr 284 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags)
|
|
@ -0,0 +1,34 @@
|
|||
LTTng system call tracing
|
||||
|
||||
1) lttng-syscall-extractor
|
||||
|
||||
You need to build a kernel with CONFIG_FTRACE_SYSCALLS=y and
|
||||
CONFIG_KALLSYMS_ALL=y for extraction. Apply the linker patch to get your
|
||||
kernel to keep the system call metadata after boot. Then build and load
|
||||
the LTTng syscall extractor module. The module will fail to load (this
|
||||
is expected). See the dmesg output for system call metadata.
|
||||
|
||||
2) Generate system call TRACE_EVENT().
|
||||
|
||||
Take the dmesg metadata and feed it to lttng-syscalls-generate-headers.sh
|
||||
(do not include the ending SUCCESS line), e.g., from the
|
||||
instrumentation/syscalls directory. See the script header for usage example.
|
||||
It should be run for both the integers and pointers types.
|
||||
|
||||
After these are created, we just need to follow the new system call additions,
|
||||
no need to regenerate the whole thing, since system calls are only appended to.
|
||||
|
||||
3) Override headers
|
||||
|
||||
You need to provide override headers (even if they don't contain
|
||||
overrides) for each architecture. Those are meant to contain manual
|
||||
overrides for specific system calls for cases where the script do not
|
||||
generate the correct typing for specific system calls.
|
||||
|
||||
4) Integrating the new architecture, updating architecture header
|
||||
|
||||
Edit instrumentation/syscalls/headers/syscalls_integers.h and
|
||||
syscalls_pointers.h. Add the new architecture
|
||||
(e.g. CONFIG_X86_64) to the newly-generated headers
|
||||
(e.g. changing the current x86-64-syscalls-3.10.0-rc7_<CLASS>.h into
|
||||
x86-64-syscalls-3.13.7_<CLASS>.h), then rebuild lttng-modules.
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,141 @@
|
|||
#ifndef CONFIG_UID16
|
||||
|
||||
#define OVERRIDE_32_getuid16
|
||||
#define OVERRIDE_32_getgid16
|
||||
#define OVERRIDE_32_geteuid16
|
||||
#define OVERRIDE_32_getegid16
|
||||
#define OVERRIDE_32_setuid16
|
||||
#define OVERRIDE_32_setgid16
|
||||
#define OVERRIDE_32_setfsuid16
|
||||
#define OVERRIDE_32_setfsgid16
|
||||
#define OVERRIDE_32_setreuid16
|
||||
#define OVERRIDE_32_setregid16
|
||||
#define OVERRIDE_32_fchown16
|
||||
#define OVERRIDE_32_setresuid16
|
||||
#define OVERRIDE_32_setresgid16
|
||||
|
||||
#define OVERRIDE_TABLE_32_getuid16
|
||||
#define OVERRIDE_TABLE_32_getgid16
|
||||
#define OVERRIDE_TABLE_32_geteuid16
|
||||
#define OVERRIDE_TABLE_32_getegid16
|
||||
#define OVERRIDE_TABLE_32_setuid16
|
||||
#define OVERRIDE_TABLE_32_setgid16
|
||||
#define OVERRIDE_TABLE_32_setreuid16
|
||||
#define OVERRIDE_TABLE_32_setregid16
|
||||
#define OVERRIDE_TABLE_32_fchown16
|
||||
#define OVERRIDE_TABLE_32_setfsuid16
|
||||
#define OVERRIDE_TABLE_32_setfsgid16
|
||||
#define OVERRIDE_TABLE_32_setresuid16
|
||||
#define OVERRIDE_TABLE_32_setresgid16
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef CREATE_SYSCALL_TABLE
|
||||
|
||||
#if (__BYTE_ORDER == __LITTLE_ENDIAN)
|
||||
|
||||
#define OVERRIDE_32_arm_fadvise64_64
|
||||
SC_LTTNG_TRACEPOINT_EVENT(arm_fadvise64_64,
|
||||
TP_PROTO(sc_exit(long ret,) int fd, int advice,
|
||||
int32_t offset_low, int32_t offset_high,
|
||||
int32_t len_low, int32_t len_high),
|
||||
TP_ARGS(sc_exit(ret,) fd, advice, offset_low, offset_high,
|
||||
len_low, len_high),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret))
|
||||
sc_in(ctf_integer(int, fd, fd))
|
||||
sc_in(ctf_integer(int, advice, advice))
|
||||
sc_in(ctf_integer(loff_t, offset,
|
||||
((loff_t) offset_high << 32) | offset_low))
|
||||
sc_in(ctf_integer(loff_t, len,
|
||||
((loff_t) len_high << 32) | len_low))
|
||||
)
|
||||
)
|
||||
|
||||
#define OVERRIDE_32_sync_file_range2
|
||||
SC_LTTNG_TRACEPOINT_EVENT(sync_file_range2,
|
||||
TP_PROTO(sc_exit(long ret,) int fd,
|
||||
unsigned int flags,
|
||||
int32_t offset_low, int32_t offset_high,
|
||||
int32_t nbytes_low, int32_t nbytes_high),
|
||||
TP_ARGS(sc_exit(ret,) fd, flags, offset_low, offset_high,
|
||||
nbytes_low, nbytes_high),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret))
|
||||
sc_in(ctf_integer(int, fd, fd))
|
||||
sc_in(ctf_integer(unsigned int, flags, flags))
|
||||
sc_in(ctf_integer(loff_t, offset,
|
||||
((loff_t) offset_high << 32) | offset_low))
|
||||
sc_in(ctf_integer(loff_t, nbytes,
|
||||
((loff_t) nbytes_high << 32) | nbytes_low))
|
||||
)
|
||||
)
|
||||
|
||||
#else /* __BIG_ENDIAN */
|
||||
|
||||
#define OVERRIDE_32_arm_fadvise64_64
|
||||
SC_LTTNG_TRACEPOINT_EVENT(arm_fadvise64_64,
|
||||
TP_PROTO(sc_exit(long ret,) int fd, int advice,
|
||||
int32_t offset_high, int32_t offset_low,
|
||||
int32_t len_high, int32_t len_low),
|
||||
TP_ARGS(sc_exit(ret,) fd, advice, offset_high, offset_low,
|
||||
len_high, len_low),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret))
|
||||
sc_in(ctf_integer(int, fd, fd))
|
||||
sc_in(ctf_integer(int, advice, advice))
|
||||
sc_in(ctf_integer(loff_t, offset,
|
||||
((loff_t) offset_high << 32) | offset_low))
|
||||
sc_in(ctf_integer(loff_t, len,
|
||||
((loff_t) len_high << 32) | len_low))
|
||||
)
|
||||
)
|
||||
|
||||
#define OVERRIDE_32_sync_file_range2
|
||||
SC_LTTNG_TRACEPOINT_EVENT(sync_file_range2,
|
||||
TP_PROTO(sc_exit(long ret,) int fd,
|
||||
unsigned int flags,
|
||||
int32_t offset_high, int32_t offset_low,
|
||||
int32_t nbytes_high, int32_t nbytes_low),
|
||||
TP_ARGS(sc_exit(ret,) fd, flags, offset_high, offset_low,
|
||||
nbytes_high, nbytes_low),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret))
|
||||
sc_in(ctf_integer(int, fd, fd))
|
||||
sc_in(ctf_integer(unsigned int, flags, flags))
|
||||
sc_in(ctf_integer(loff_t, offset,
|
||||
((loff_t) offset_high << 32) | offset_low))
|
||||
sc_in(ctf_integer(loff_t, nbytes,
|
||||
((loff_t) nbytes_high << 32) | nbytes_low))
|
||||
)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
#define OVERRIDE_32_mmap2
|
||||
SC_LTTNG_TRACEPOINT_EVENT(mmap2,
|
||||
TP_PROTO(sc_exit(unsigned long ret,)
|
||||
unsigned long addr, unsigned long len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long pgoff),
|
||||
TP_ARGS(sc_exit(ret,) addr, len, prot, flags, fd, pgoff),
|
||||
TP_FIELDS(sc_exit(ctf_integer_hex(unsigned long, ret, ret))
|
||||
sc_in(ctf_integer_hex(unsigned long, addr, addr))
|
||||
sc_in(ctf_integer(size_t, len, len))
|
||||
sc_in(ctf_integer(int, prot, prot))
|
||||
sc_in(ctf_integer(int, flags, flags))
|
||||
sc_in(ctf_integer(int, fd, fd))
|
||||
sc_in(ctf_integer(off_t, pgoff, pgoff))
|
||||
)
|
||||
)
|
||||
|
||||
#else /* CREATE_SYSCALL_TABLE */
|
||||
|
||||
#define OVERRIDE_TABLE_32_mmap
|
||||
TRACE_SYSCALL_TABLE(mmap, mmap, 90, 6)
|
||||
#define OVERRIDE_TABLE_32_mmap2
|
||||
TRACE_SYSCALL_TABLE(mmap2, mmap2, 192, 6)
|
||||
#define OVERRIDE_TABLE_32_arm_fadvise64_64
|
||||
TRACE_SYSCALL_TABLE(arm_fadvise64_64, arm_fadvise64_64, 270, 6)
|
||||
#define OVERRIDE_TABLE_32_sync_file_range2
|
||||
TRACE_SYSCALL_TABLE(sync_file_range2, sync_file_range2, 341, 6)
|
||||
|
||||
#endif /* CREATE_SYSCALL_TABLE */
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,42 @@
|
|||
|
||||
#define OVERRIDE_TABLE_32_mmap2
|
||||
|
||||
# ifndef CONFIG_UID16
|
||||
# define OVERRIDE_32_getgroups16
|
||||
# define OVERRIDE_32_setgroups16
|
||||
# define OVERRIDE_32_lchown16
|
||||
# define OVERRIDE_32_getresuid16
|
||||
# define OVERRIDE_32_getresgid16
|
||||
# define OVERRIDE_32_chown16
|
||||
# endif
|
||||
|
||||
#ifndef CREATE_SYSCALL_TABLE
|
||||
|
||||
#define OVERRIDE_32_pipe
|
||||
SC_LTTNG_TRACEPOINT_EVENT(pipe,
|
||||
TP_PROTO(sc_exit(long ret,) int * fildes),
|
||||
TP_ARGS(sc_exit(ret,) fildes),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret))
|
||||
sc_out(ctf_user_array(int, fildes, fildes, 2))
|
||||
)
|
||||
)
|
||||
|
||||
#else /* CREATE_SYSCALL_TABLE */
|
||||
|
||||
# ifndef CONFIG_UID16
|
||||
# define OVERRIDE_TABLE_32_getgroups16
|
||||
# define OVERRIDE_TABLE_32_setgroups16
|
||||
# define OVERRIDE_TABLE_32_lchown16
|
||||
# define OVERRIDE_TABLE_32_getresuid16
|
||||
# define OVERRIDE_TABLE_32_getresgid16
|
||||
# define OVERRIDE_TABLE_32_chown16
|
||||
# endif
|
||||
|
||||
#define OVERRIDE_TABLE_32_execve
|
||||
TRACE_SYSCALL_TABLE(execve, execve, 11, 3)
|
||||
#define OVERRIDE_TABLE_32_clone
|
||||
TRACE_SYSCALL_TABLE(clone, clone, 120, 5)
|
||||
|
||||
#endif /* CREATE_SYSCALL_TABLE */
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,8 @@
|
|||
/*
|
||||
* this is a place-holder for arm64 integer syscall definition override.
|
||||
*/
|
||||
#ifndef CREATE_SYSCALL_TABLE
|
||||
#else /* CREATE_SYSCALL_TABLE */
|
||||
#define OVERRIDE_TABLE_64_mmap
|
||||
TRACE_SYSCALL_TABLE(mmap, mmap, 222, 6)
|
||||
#endif /* CREATE_SYSCALL_TABLE */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* this is a place-holder for arm64 integer syscall definition override.
|
||||
*/
|
||||
#ifndef CREATE_SYSCALL_TABLE
|
||||
|
||||
#else
|
||||
#define OVERRIDE_TABLE_64_clone
|
||||
TRACE_SYSCALL_TABLE(clone, clone, 220, 5)
|
||||
#endif
|
|
@ -0,0 +1,11 @@
|
|||
#ifdef CONFIG_X86_64
|
||||
#include "x86-32-syscalls-3.1.0-rc6_integers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM64
|
||||
#include "arm-32-syscalls-3.4.25_integers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
#include "powerpc-32-syscalls-3.0.34_integers.h"
|
||||
#endif
|
|
@ -0,0 +1,11 @@
|
|||
#ifdef CONFIG_X86_64
|
||||
#include "x86-32-syscalls-3.1.0-rc6_pointers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM64
|
||||
#include "arm-32-syscalls-3.4.25_pointers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
#include "powerpc-32-syscalls-3.0.34_pointers.h"
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,3 @@
|
|||
/*
|
||||
* this is a place-holder for MIPS integer syscall definition override.
|
||||
*/
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,8 @@
|
|||
#ifndef CREATE_SYSCALL_TABLE
|
||||
|
||||
#else /* CREATE_SYSCALL_TABLE */
|
||||
|
||||
#define OVERRIDE_TABLE_32_clone
|
||||
TRACE_SYSCALL_TABLE(clone, clone, 4120, 0)
|
||||
|
||||
#endif /* CREATE_SYSCALL_TABLE */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,3 @@
|
|||
/*
|
||||
* this is a place-holder for MIPS integer syscall definition override.
|
||||
*/
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,28 @@
|
|||
#ifndef CREATE_SYSCALL_TABLE
|
||||
|
||||
#define OVERRIDE_32_sched_setaffinity
|
||||
SC_LTTNG_TRACEPOINT_EVENT(sched_setaffinity,
|
||||
TP_PROTO(sc_exit(long ret,) pid_t pid, unsigned int len, unsigned long * user_mask_ptr),
|
||||
TP_ARGS(sc_exit(ret,) pid, len, user_mask_ptr),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret)) sc_in(ctf_integer(pid_t, pid, pid)) sc_in(ctf_integer(unsigned int, len, len)) sc_in(ctf_integer(unsigned long *, user_mask_ptr, user_mask_ptr)))
|
||||
)
|
||||
|
||||
#define OVERRIDE_32_sched_getaffinity
|
||||
SC_LTTNG_TRACEPOINT_EVENT(sched_getaffinity,
|
||||
TP_PROTO(sc_exit(long ret,) pid_t pid, unsigned int len, unsigned long * user_mask_ptr),
|
||||
TP_ARGS(sc_exit(ret,) pid, len, user_mask_ptr),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret)) sc_in(ctf_integer(pid_t, pid, pid)) sc_in(ctf_integer(unsigned int, len, len)) sc_out(ctf_integer(unsigned long *, user_mask_ptr, user_mask_ptr)))
|
||||
)
|
||||
|
||||
#else /* CREATE_SYSCALL_TABLE */
|
||||
|
||||
#define OVERRIDE_TABLE_32_clone
|
||||
TRACE_SYSCALL_TABLE(clone, clone, 4120, 0)
|
||||
|
||||
#define OVERRIDE_TABLE_32_sys_sched_setaffinity
|
||||
TRACE_SYSCALL_TABLE(sched_setaffinity, sched_setaffinity, 4239, 3)
|
||||
|
||||
#define OVERRIDE_TABLE_32_sys_sched_getaffinity
|
||||
TRACE_SYSCALL_TABLE(sched_getaffinity, sched_getaffinity, 4240, 3)
|
||||
|
||||
#endif /* CREATE_SYSCALL_TABLE */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,3 @@
|
|||
/*
|
||||
* this is a place-holder for MIPS integer syscall definition override.
|
||||
*/
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,8 @@
|
|||
#ifndef CREATE_SYSCALL_TABLE
|
||||
|
||||
#else /* CREATE_SYSCALL_TABLE */
|
||||
|
||||
#define OVERRIDE_TABLE_64_sys_clone
|
||||
TRACE_SYSCALL_TABLE(clone, clone, 5055, 0)
|
||||
|
||||
#endif /* CREATE_SYSCALL_TABLE */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,72 @@
|
|||
#ifndef CREATE_SYSCALL_TABLE
|
||||
|
||||
#define OVERRIDE_32_mmap2
|
||||
SC_LTTNG_TRACEPOINT_EVENT(mmap2,
|
||||
TP_PROTO(sc_exit(unsigned long ret,)
|
||||
unsigned long addr, unsigned long len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long pgoff),
|
||||
TP_ARGS(sc_exit(ret,) addr, len, prot, flags, fd, pgoff),
|
||||
TP_FIELDS(sc_exit(ctf_integer_hex(unsigned long, ret, ret))
|
||||
sc_in(ctf_integer_hex(unsigned long, addr, addr))
|
||||
sc_in(ctf_integer(size_t, len, len))
|
||||
sc_in(ctf_integer(int, prot, prot))
|
||||
sc_in(ctf_integer(int, flags, flags))
|
||||
sc_in(ctf_integer(int, fd, fd))
|
||||
sc_in(ctf_integer(off_t, pgoff, pgoff))
|
||||
)
|
||||
)
|
||||
|
||||
#if (__BYTE_ORDER == __LITTLE_ENDIAN)
|
||||
|
||||
#define OVERRIDE_32_sync_file_range2
|
||||
SC_LTTNG_TRACEPOINT_EVENT(sync_file_range2,
|
||||
TP_PROTO(sc_exit(long ret,) int fd,
|
||||
unsigned int flags,
|
||||
int32_t offset_low, int32_t offset_high,
|
||||
int32_t nbytes_low, int32_t nbytes_high),
|
||||
TP_ARGS(sc_exit(ret,) fd, flags, offset_low, offset_high,
|
||||
nbytes_low, nbytes_high),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret))
|
||||
sc_in(ctf_integer(int, fd, fd))
|
||||
sc_in(ctf_integer(unsigned int, flags, flags))
|
||||
sc_in(ctf_integer(loff_t, offset,
|
||||
((loff_t) offset_high << 32) | offset_low))
|
||||
sc_in(ctf_integer(loff_t, nbytes,
|
||||
((loff_t) nbytes_high << 32) | nbytes_low))
|
||||
)
|
||||
)
|
||||
|
||||
#else /* __BIG_ENDIAN */
|
||||
|
||||
#define OVERRIDE_32_sync_file_range2
|
||||
SC_LTTNG_TRACEPOINT_EVENT(sync_file_range2,
|
||||
TP_PROTO(sc_exit(long ret,) int fd,
|
||||
unsigned int flags,
|
||||
int32_t offset_high, int32_t offset_low,
|
||||
int32_t nbytes_high, int32_t nbytes_low),
|
||||
TP_ARGS(sc_exit(ret,) fd, flags, offset_high, offset_low,
|
||||
nbytes_high, nbytes_low),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret))
|
||||
sc_in(ctf_integer(int, fd, fd))
|
||||
sc_in(ctf_integer(unsigned int, flags, flags))
|
||||
sc_in(ctf_integer(loff_t, offset,
|
||||
((loff_t) offset_high << 32) | offset_low))
|
||||
sc_in(ctf_integer(loff_t, nbytes,
|
||||
((loff_t) nbytes_high << 32) | nbytes_low))
|
||||
)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
#else /* CREATE_SYSCALL_TABLE */
|
||||
|
||||
#define OVERRIDE_TABLE_32_mmap
|
||||
TRACE_SYSCALL_TABLE(mmap, mmap, 90, 6)
|
||||
#define OVERRIDE_TABLE_32_mmap2
|
||||
TRACE_SYSCALL_TABLE(mmap2, mmap2, 192, 6)
|
||||
#define OVERRIDE_TABLE_32_sync_file_range2
|
||||
TRACE_SYSCALL_TABLE(sync_file_range2, sync_file_range2, 308, 6)
|
||||
|
||||
#endif /* CREATE_SYSCALL_TABLE */
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,22 @@
|
|||
#define OVERRIDE_TABLE_32_mmap2
|
||||
|
||||
#ifndef CREATE_SYSCALL_TABLE
|
||||
|
||||
#define OVERRIDE_32_pipe
|
||||
SC_LTTNG_TRACEPOINT_EVENT(pipe,
|
||||
TP_PROTO(sc_exit(long ret,) int * fildes),
|
||||
TP_ARGS(sc_exit(ret,) fildes),
|
||||
TP_FIELDS(sc_exit(ctf_integer(long, ret, ret))
|
||||
sc_out(ctf_user_array(int, fildes, fildes, 2))
|
||||
)
|
||||
)
|
||||
|
||||
#else /* CREATE_SYSCALL_TABLE */
|
||||
|
||||
#define OVERRIDE_TABLE_32_execve
|
||||
TRACE_SYSCALL_TABLE(execve, execve, 11, 3)
|
||||
#define OVERRIDE_TABLE_32_clone
|
||||
TRACE_SYSCALL_TABLE(clone, clone, 120, 5)
|
||||
|
||||
#endif /* CREATE_SYSCALL_TABLE */
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
#ifdef CONFIG_X86_64
|
||||
#include "x86-64-syscalls-3.10.0-rc7_integers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
#include "x86-32-syscalls-3.1.0-rc6_integers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM
|
||||
#include "arm-32-syscalls-3.4.25_integers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC
|
||||
#include "powerpc-32-syscalls-3.0.34_integers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_MIPS32
|
||||
#include "mips-32-syscalls-3.18.0_integers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM64
|
||||
#include "arm-64-syscalls-4.4.0_integers.h"
|
||||
#endif
|
|
@ -0,0 +1,21 @@
|
|||
#ifndef CREATE_SYSCALL_TABLE
|
||||
|
||||
#define OVERRIDE_32_mmap
|
||||
#define OVERRIDE_64_mmap
|
||||
SC_LTTNG_TRACEPOINT_EVENT(mmap,
|
||||
TP_PROTO(sc_exit(unsigned long ret,)
|
||||
unsigned long addr, unsigned long len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long off),
|
||||
TP_ARGS(sc_exit(ret,) addr, len, prot, flags, fd, off),
|
||||
TP_FIELDS(sc_exit(ctf_integer_hex(unsigned long, ret, ret))
|
||||
sc_in(ctf_integer_hex(unsigned long, addr, addr))
|
||||
sc_in(ctf_integer(size_t, len, len))
|
||||
sc_in(ctf_integer(int, prot, prot))
|
||||
sc_in(ctf_integer(int, flags, flags))
|
||||
sc_in(ctf_integer(int, fd, fd))
|
||||
sc_in(ctf_integer(off_t, offset, off))
|
||||
)
|
||||
)
|
||||
|
||||
#endif /* CREATE_SYSCALL_TABLE */
|
|
@ -0,0 +1,23 @@
|
|||
#ifdef CONFIG_X86_64
|
||||
#include "x86-64-syscalls-3.10.0-rc7_pointers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
#include "x86-32-syscalls-3.1.0-rc6_pointers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM
|
||||
#include "arm-32-syscalls-3.4.25_pointers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC
|
||||
#include "powerpc-32-syscalls-3.0.34_pointers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_MIPS32
|
||||
#include "mips-32-syscalls-3.18.0_pointers.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM64
|
||||
#include "arm-64-syscalls-4.4.0_pointers.h"
|
||||
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue