# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2015-02-04 23:32+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: build/C/man2/arch_prctl.2:25 #, no-wrap msgid "ARCH_PRCTL" msgstr "" #. type: TH #: build/C/man2/arch_prctl.2:25 #, no-wrap msgid "2007-12-26" msgstr "" #. type: TH #: build/C/man2/arch_prctl.2:25 build/C/man2/futex.2:53 build/C/man2/get_robust_list.2:29 build/C/man2/getunwind.2:27 build/C/man2/kexec_load.2:27 build/C/man2/lookup_dcookie.2:27 build/C/man2/modify_ldt.2:24 build/C/man2/nfsservctl.2:8 build/C/man2/outb.2:26 build/C/man2/pciconfig_read.2:8 build/C/man2/perf_event_open.2:27 build/C/man2/perfmonctl.2:27 build/C/man2/personality.2:32 build/C/man2/pivot_root.2:10 build/C/man2/process_vm_readv.2:29 build/C/man2/ptrace.2:46 build/C/man2/quotactl.2:27 build/C/man2/sendfile.2:19 build/C/man2/set_tid_address.2:25 build/C/man2/splice.2:26 build/C/man2/tee.2:26 build/C/man2/vm86.2:26 build/C/man2/vmsplice.2:26 #, no-wrap msgid "Linux" msgstr "" #. type: TH #: build/C/man2/arch_prctl.2:25 build/C/man2/futex.2:53 build/C/man2/getunwind.2:27 build/C/man2/kexec_load.2:27 build/C/man2/lookup_dcookie.2:27 build/C/man2/modify_ldt.2:24 build/C/man2/nfsservctl.2:8 build/C/man2/outb.2:26 build/C/man2/pciconfig_read.2:8 build/C/man2/perf_event_open.2:27 build/C/man2/perfmonctl.2:27 build/C/man2/personality.2:32 build/C/man2/pivot_root.2:10 build/C/man2/process_vm_readv.2:29 build/C/man2/ptrace.2:46 build/C/man2/quotactl.2:27 build/C/man2/sendfile.2:19 build/C/man2/set_tid_address.2:25 build/C/man2/splice.2:26 build/C/man2/tee.2:26 build/C/man2/vm86.2:26 build/C/man2/vmsplice.2:26 #, no-wrap msgid "Linux Programmer's Manual" msgstr "" #. type: SH #: build/C/man2/arch_prctl.2:26 build/C/man2/futex.2:54 build/C/man2/get_robust_list.2:30 build/C/man2/getunwind.2:28 build/C/man2/kexec_load.2:28 build/C/man2/lookup_dcookie.2:28 build/C/man2/modify_ldt.2:25 build/C/man2/nfsservctl.2:9 build/C/man2/outb.2:27 build/C/man2/pciconfig_read.2:9 build/C/man2/perf_event_open.2:28 build/C/man2/perfmonctl.2:28 build/C/man2/personality.2:33 build/C/man2/pivot_root.2:11 build/C/man2/process_vm_readv.2:30 build/C/man2/ptrace.2:47 build/C/man2/quotactl.2:28 build/C/man2/sendfile.2:20 build/C/man2/set_tid_address.2:26 build/C/man2/splice.2:27 build/C/man2/tee.2:27 build/C/man2/vm86.2:27 build/C/man2/vmsplice.2:27 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:28 msgid "arch_prctl - set architecture-specific thread state" msgstr "" #. type: SH #: build/C/man2/arch_prctl.2:28 build/C/man2/futex.2:56 build/C/man2/get_robust_list.2:32 build/C/man2/getunwind.2:30 build/C/man2/kexec_load.2:30 build/C/man2/lookup_dcookie.2:30 build/C/man2/modify_ldt.2:27 build/C/man2/nfsservctl.2:11 build/C/man2/outb.2:31 build/C/man2/pciconfig_read.2:11 build/C/man2/perf_event_open.2:30 build/C/man2/perfmonctl.2:30 build/C/man2/personality.2:35 build/C/man2/pivot_root.2:13 build/C/man2/process_vm_readv.2:32 build/C/man2/ptrace.2:49 build/C/man2/quotactl.2:30 build/C/man2/sendfile.2:22 build/C/man2/set_tid_address.2:28 build/C/man2/splice.2:29 build/C/man2/tee.2:29 build/C/man2/vm86.2:29 build/C/man2/vmsplice.2:29 #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:31 #, no-wrap msgid "B<#include Easm/prctl.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:33 #, no-wrap msgid "B<#include Esys/prctl.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:36 #, no-wrap msgid "" "BIB<, unsigned long >IB<);>\n" "BIB<, unsigned long *>IB<);>\n" msgstr "" #. Return type was long before glibc 2.7 #. type: SH #: build/C/man2/arch_prctl.2:37 build/C/man2/futex.2:70 build/C/man2/get_robust_list.2:45 build/C/man2/getunwind.2:40 build/C/man2/kexec_load.2:47 build/C/man2/lookup_dcookie.2:32 build/C/man2/modify_ldt.2:36 build/C/man2/nfsservctl.2:18 build/C/man2/outb.2:62 build/C/man2/pciconfig_read.2:22 build/C/man2/perf_event_open.2:42 build/C/man2/perfmonctl.2:39 build/C/man2/personality.2:39 build/C/man2/pivot_root.2:18 build/C/man2/process_vm_readv.2:66 build/C/man2/ptrace.2:56 build/C/man2/quotactl.2:38 build/C/man2/sendfile.2:47 build/C/man2/set_tid_address.2:34 build/C/man2/splice.2:39 build/C/man2/tee.2:38 build/C/man2/vm86.2:35 build/C/man2/vmsplice.2:39 #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:52 msgid "" "The B() function sets architecture-specific process or thread " "state. I selects a subfunction and passes argument I to it; " "I is interpreted as either an I for the \"set\" " "operations, or as an I, for the \"get\" operations." msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:54 msgid "Subfunctions for x86-64 are:" msgstr "" #. type: TP #: build/C/man2/arch_prctl.2:54 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:60 msgid "Set the 64-bit base for the I register to I." msgstr "" #. type: TP #: build/C/man2/arch_prctl.2:60 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:68 msgid "" "Return the 64-bit base value for the I register of the current thread in " "the I pointed to by I." msgstr "" #. type: TP #: build/C/man2/arch_prctl.2:68 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:74 msgid "Set the 64-bit base for the I register to I." msgstr "" #. type: TP #: build/C/man2/arch_prctl.2:74 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:82 msgid "" "Return the 64-bit base value for the I register of the current thread in " "the I pointed to by I." msgstr "" #. type: SH #: build/C/man2/arch_prctl.2:82 build/C/man2/futex.2:216 build/C/man2/get_robust_list.2:78 build/C/man2/getunwind.2:81 build/C/man2/kexec_load.2:242 build/C/man2/lookup_dcookie.2:43 build/C/man2/modify_ldt.2:98 build/C/man2/nfsservctl.2:53 build/C/man2/pciconfig_read.2:50 build/C/man2/perf_event_open.2:2607 build/C/man2/perfmonctl.2:190 build/C/man2/personality.2:62 build/C/man2/pivot_root.2:101 build/C/man2/process_vm_readv.2:225 build/C/man2/ptrace.2:1896 build/C/man2/quotactl.2:419 build/C/man2/sendfile.2:108 build/C/man2/set_tid_address.2:88 build/C/man2/splice.2:135 build/C/man2/tee.2:85 build/C/man2/vm86.2:54 build/C/man2/vmsplice.2:117 #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:88 msgid "" "On success, B() returns 0; on error, -1 is returned, and " "I is set to indicate the error." msgstr "" #. type: SH #: build/C/man2/arch_prctl.2:88 build/C/man2/futex.2:241 build/C/man2/get_robust_list.2:85 build/C/man2/getunwind.2:88 build/C/man2/kexec_load.2:247 build/C/man2/lookup_dcookie.2:50 build/C/man2/modify_ldt.2:108 build/C/man2/pciconfig_read.2:77 build/C/man2/perf_event_open.2:2613 build/C/man2/personality.2:69 build/C/man2/pivot_root.2:105 build/C/man2/process_vm_readv.2:245 build/C/man2/ptrace.2:1911 build/C/man2/quotactl.2:427 build/C/man2/sendfile.2:115 build/C/man2/set_tid_address.2:91 build/C/man2/splice.2:150 build/C/man2/tee.2:100 build/C/man2/vm86.2:59 build/C/man2/vmsplice.2:126 #, no-wrap msgid "ERRORS" msgstr "" #. type: TP #: build/C/man2/arch_prctl.2:89 build/C/man2/futex.2:256 build/C/man2/get_robust_list.2:112 build/C/man2/lookup_dcookie.2:51 build/C/man2/modify_ldt.2:109 build/C/man2/perf_event_open.2:2659 build/C/man2/process_vm_readv.2:267 build/C/man2/process_vm_readv.2:272 build/C/man2/ptrace.2:1915 build/C/man2/quotactl.2:428 build/C/man2/sendfile.2:125 build/C/man2/vm86.2:60 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:93 msgid "" "I points to an unmapped address or is outside the process address " "space." msgstr "" #. type: TP #: build/C/man2/arch_prctl.2:93 build/C/man2/futex.2:268 build/C/man2/get_robust_list.2:89 build/C/man2/kexec_load.2:279 build/C/man2/kexec_load.2:283 build/C/man2/kexec_load.2:292 build/C/man2/kexec_load.2:298 build/C/man2/kexec_load.2:301 build/C/man2/kexec_load.2:306 build/C/man2/lookup_dcookie.2:54 build/C/man2/modify_ldt.2:113 build/C/man2/pciconfig_read.2:78 build/C/man2/perf_event_open.2:2664 build/C/man2/personality.2:70 build/C/man2/pivot_root.2:114 build/C/man2/process_vm_readv.2:246 build/C/man2/process_vm_readv.2:257 build/C/man2/process_vm_readv.2:261 build/C/man2/ptrace.2:1926 build/C/man2/quotactl.2:434 build/C/man2/quotactl.2:501 build/C/man2/sendfile.2:128 build/C/man2/splice.2:161 build/C/man2/tee.2:107 build/C/man2/vmsplice.2:137 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:97 msgid "I is not a valid subcommand." msgstr "" #. type: TP #: build/C/man2/arch_prctl.2:97 build/C/man2/get_robust_list.2:99 build/C/man2/kexec_load.2:323 build/C/man2/lookup_dcookie.2:65 build/C/man2/pciconfig_read.2:105 build/C/man2/perf_event_open.2:2732 build/C/man2/pivot_root.2:120 build/C/man2/process_vm_readv.2:283 build/C/man2/ptrace.2:1936 build/C/man2/quotactl.2:456 build/C/man2/vm86.2:68 #, no-wrap msgid "B" msgstr "" #. .SH AUTHOR #. Man page written by Andi Kleen. #. type: Plain text #: build/C/man2/arch_prctl.2:103 msgid "I is outside the process address space." msgstr "" #. type: SH #: build/C/man2/arch_prctl.2:103 build/C/man2/futex.2:303 build/C/man2/getunwind.2:96 build/C/man2/kexec_load.2:335 build/C/man2/lookup_dcookie.2:78 build/C/man2/modify_ldt.2:130 build/C/man2/nfsservctl.2:58 build/C/man2/outb.2:87 build/C/man2/pciconfig_read.2:112 build/C/man2/perf_event_open.2:2756 build/C/man2/perfmonctl.2:199 build/C/man2/personality.2:73 build/C/man2/pivot_root.2:128 build/C/man2/process_vm_readv.2:295 build/C/man2/ptrace.2:1954 build/C/man2/sendfile.2:148 build/C/man2/set_tid_address.2:97 build/C/man2/splice.2:184 build/C/man2/tee.2:125 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:153 #, no-wrap msgid "CONFORMING TO" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:107 msgid "" "B() is a Linux/x86-64 extension and should not be used in " "programs intended to be portable." msgstr "" #. type: SH #: build/C/man2/arch_prctl.2:107 build/C/man2/futex.2:305 build/C/man2/get_robust_list.2:118 build/C/man2/getunwind.2:99 build/C/man2/kexec_load.2:337 build/C/man2/lookup_dcookie.2:81 build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:2761 build/C/man2/perfmonctl.2:202 build/C/man2/pivot_root.2:131 build/C/man2/process_vm_readv.2:297 build/C/man2/ptrace.2:1956 build/C/man2/sendfile.2:155 build/C/man2/splice.2:186 build/C/man2/tee.2:127 build/C/man2/vmsplice.2:155 #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:110 msgid "" "B() is supported only on Linux/x86-64 for 64-bit programs " "currently." msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:112 msgid "The 64-bit base changes when a new 32-bit segment selector is loaded." msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:115 msgid "B is disabled in some kernels." msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:130 msgid "" "Context switches for 64-bit segment bases are rather expensive. It may be a " "faster alternative to set a 32-bit base using a segment selector by setting " "up an LDT with B(2) or using the B(2) system " "call in kernel 2.5 or later. B() is needed only when you want " "to set bases that are larger than 4GB. Memory in the first 2GB of address " "space can be allocated by using B(2) with the B flag." msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:135 msgid "" "As of version 2.7, glibc provides no prototype for B(). You " "have to declare it yourself for now. This may be fixed in future glibc " "versions." msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:138 msgid "I may be already used by the threading library." msgstr "" #. type: SH #: build/C/man2/arch_prctl.2:138 build/C/man2/futex.2:319 build/C/man2/get_robust_list.2:127 build/C/man2/getunwind.2:111 build/C/man2/kexec_load.2:341 build/C/man2/modify_ldt.2:136 build/C/man2/outb.2:96 build/C/man2/pciconfig_read.2:114 build/C/man2/perf_event_open.2:2903 build/C/man2/perfmonctl.2:205 build/C/man2/personality.2:77 build/C/man2/pivot_root.2:143 build/C/man2/process_vm_readv.2:347 build/C/man2/ptrace.2:2122 build/C/man2/quotactl.2:507 build/C/man2/sendfile.2:197 build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:240 build/C/man2/tee.2:214 build/C/man2/vmsplice.2:164 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:143 msgid "B(2), B(2), B(2), B(2)" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:145 msgid "AMD X86-64 Programmer's manual" msgstr "" #. type: SH #: build/C/man2/arch_prctl.2:145 build/C/man2/futex.2:333 build/C/man2/get_robust_list.2:136 build/C/man2/getunwind.2:113 build/C/man2/kexec_load.2:350 build/C/man2/lookup_dcookie.2:88 build/C/man2/modify_ldt.2:138 build/C/man2/nfsservctl.2:60 build/C/man2/outb.2:99 build/C/man2/pciconfig_read.2:116 build/C/man2/perf_event_open.2:2909 build/C/man2/perfmonctl.2:209 build/C/man2/personality.2:79 build/C/man2/pivot_root.2:149 build/C/man2/process_vm_readv.2:350 build/C/man2/ptrace.2:2137 build/C/man2/quotactl.2:512 build/C/man2/sendfile.2:203 build/C/man2/set_tid_address.2:103 build/C/man2/splice.2:244 build/C/man2/tee.2:217 build/C/man2/vm86.2:76 build/C/man2/vmsplice.2:167 #, no-wrap msgid "COLOPHON" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:153 build/C/man2/futex.2:341 build/C/man2/get_robust_list.2:144 build/C/man2/getunwind.2:121 build/C/man2/kexec_load.2:358 build/C/man2/lookup_dcookie.2:96 build/C/man2/modify_ldt.2:146 build/C/man2/nfsservctl.2:68 build/C/man2/outb.2:107 build/C/man2/pciconfig_read.2:124 build/C/man2/perf_event_open.2:2917 build/C/man2/perfmonctl.2:217 build/C/man2/personality.2:87 build/C/man2/pivot_root.2:157 build/C/man2/process_vm_readv.2:358 build/C/man2/ptrace.2:2145 build/C/man2/quotactl.2:520 build/C/man2/sendfile.2:211 build/C/man2/set_tid_address.2:111 build/C/man2/splice.2:252 build/C/man2/tee.2:225 build/C/man2/vm86.2:84 build/C/man2/vmsplice.2:175 msgid "" "This page is part of release 3.79 of the Linux I project. A " "description of the project, information about reporting bugs, and the latest " "version of this page, can be found at " "\\%http://www.kernel.org/doc/man-pages/." msgstr "" #. type: TH #: build/C/man2/futex.2:53 #, no-wrap msgid "FUTEX" msgstr "" #. type: TH #: build/C/man2/futex.2:53 #, no-wrap msgid "2014-05-21" msgstr "" #. type: Plain text #: build/C/man2/futex.2:56 msgid "futex - fast user-space locking" msgstr "" #. type: Plain text #: build/C/man2/futex.2:61 #, no-wrap msgid "" "B<#include Elinux/futex.hE>\n" "B<#include Esys/time.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/futex.2:64 #, no-wrap msgid "" "BIB<, int >IB<, int >IB<, const struct " "timespec *>IB<,>\n" msgstr "" #. int *? void *? u32 *? #. type: Plain text #: build/C/man2/futex.2:67 #, no-wrap msgid "B< int *>IB<, int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/futex.2:70 build/C/man2/getunwind.2:40 build/C/man2/modify_ldt.2:36 build/C/man2/perf_event_open.2:42 build/C/man2/perfmonctl.2:39 build/C/man2/pivot_root.2:18 msgid "I: There is no glibc wrapper for this system call; see NOTES." msgstr "" #. type: Plain text #: build/C/man2/futex.2:86 msgid "" "The B() system call provides a method for a program to wait for a " "value at a given address to change, and a method to wake up anyone waiting " "on a particular address (while the addresses for the same memory in separate " "processes may not be equal, the kernel maps them internally so the same " "memory mapped in different locations will correspond for B() " "calls). This system call is typically used to implement the contended case " "of a lock in shared memory, as described in B(7)." msgstr "" #. type: Plain text #: build/C/man2/futex.2:93 msgid "" "When a B(7) operation did not finish uncontended in user space, a " "call needs to be made to the kernel to arbitrate. Arbitration can either " "mean putting the calling process to sleep or, conversely, waking a waiting " "process." msgstr "" #. type: Plain text #: build/C/man2/futex.2:100 msgid "" "Callers of this function are expected to adhere to the semantics as set out " "in B(7). As these semantics involve writing nonportable assembly " "instructions, this in turn probably means that most users will in fact be " "library authors and not general application developers." msgstr "" #. type: Plain text #: build/C/man2/futex.2:108 msgid "" "The I argument needs to point to an aligned integer which stores the " "counter. The operation to execute is passed via the I argument, along " "with a value I." msgstr "" #. type: Plain text #: build/C/man2/futex.2:110 msgid "Five operations are currently defined:" msgstr "" #. type: TP #: build/C/man2/futex.2:110 build/C/man2/futex.2:223 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:133 msgid "" "This operation atomically verifies that the futex address I still " "contains the value I, and sleeps awaiting B on this futex " "address. If the I argument is non-NULL, its contents specify the " "duration of the wait. (This interval will be rounded up to the system clock " "granularity, and kernel scheduling delays mean that the blocking interval " "may overrun by a small amount.) If I is NULL, the call blocks " "indefinitely. The arguments I and I are ignored." msgstr "" #. type: Plain text #: build/C/man2/futex.2:141 msgid "" "For B(7), this call is executed if decrementing the count gave a " "negative value (indicating contention), and will sleep until another process " "releases the futex and executes the B operation." msgstr "" #. type: TP #: build/C/man2/futex.2:141 build/C/man2/futex.2:229 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:152 msgid "" "This operation wakes at most I processes waiting on this futex address " "(i.e., inside B). The arguments I, I and " "I are ignored." msgstr "" #. type: Plain text #: build/C/man2/futex.2:158 msgid "" "For B(7), this is executed if incrementing the count showed that " "there were waiters, once the futex value has been set to 1 (indicating that " "it is available)." msgstr "" #. type: TP #: build/C/man2/futex.2:158 #, no-wrap msgid "B (present up to and including Linux 2.6.25)" msgstr "" #. , suitable for .BR poll (2). #. type: Plain text #: build/C/man2/futex.2:174 msgid "" "To support asynchronous wakeups, this operation associates a file descriptor " "with a futex. If another process executes a B, the process will " "receive the signal number that was passed in I. The calling process " "must close the returned file descriptor after use. The arguments " "I, I and I are ignored." msgstr "" #. type: Plain text #: build/C/man2/futex.2:179 msgid "" "To prevent race conditions, the caller should test if the futex has been " "upped after B returns." msgstr "" #. type: Plain text #: build/C/man2/futex.2:183 msgid "" "Because it was inherently racy, B has been removed from Linux " "2.6.26 onward." msgstr "" #. type: TP #: build/C/man2/futex.2:183 #, no-wrap msgid "B (since Linux 2.5.70)" msgstr "" #. type: Plain text #: build/C/man2/futex.2:198 msgid "" "This operation was introduced in order to avoid a \"thundering herd\" effect " "when B is used and all processes woken up need to acquire " "another futex. This call wakes up I processes, and requeues all other " "waiters on the futex at address I. The arguments I and " "I are ignored." msgstr "" #. type: TP #: build/C/man2/futex.2:198 #, no-wrap msgid "B (since Linux 2.6.7)" msgstr "" #. type: Plain text #: build/C/man2/futex.2:216 msgid "" "There was a race in the intended use of B, so " "B was introduced. This is similar to B, " "but first checks whether the location I still contains the value " "I. If not, the operation fails with the error B. The " "argument I is ignored." msgstr "" #. type: Plain text #: build/C/man2/futex.2:223 msgid "" "In the event of an error, all operations return -1, and set I to " "indicate the error. The return value on success depends on the operation, " "as described in the following list:" msgstr "" #. type: Plain text #: build/C/man2/futex.2:229 msgid "" "Returns 0 if the process was woken by a B call. See ERRORS for " "the various possible error returns." msgstr "" #. type: Plain text #: build/C/man2/futex.2:232 build/C/man2/futex.2:238 build/C/man2/futex.2:241 msgid "Returns the number of processes woken up." msgstr "" #. type: TP #: build/C/man2/futex.2:232 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:235 msgid "Returns the new file descriptor associated with the futex." msgstr "" #. type: TP #: build/C/man2/futex.2:235 #, no-wrap msgid "B" msgstr "" #. type: TP #: build/C/man2/futex.2:238 #, no-wrap msgid "B" msgstr "" #. type: TP #: build/C/man2/futex.2:242 build/C/man2/perf_event_open.2:2635 build/C/man2/quotactl.2:486 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:245 msgid "No read access to futex memory." msgstr "" #. type: TP #: build/C/man2/futex.2:245 build/C/man2/sendfile.2:116 build/C/man2/splice.2:151 build/C/man2/tee.2:101 build/C/man2/vmsplice.2:127 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:256 msgid "" "B detected that the value pointed to by I is not " "equal to the expected value I. (This probably indicates a race; use " "the safe B now.)" msgstr "" #. type: Plain text #: build/C/man2/futex.2:261 msgid "Error retrieving I information from user space." msgstr "" #. type: TP #: build/C/man2/futex.2:261 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:268 msgid "" "A B operation was interrupted by a signal (see B(7)) or " "a spurious wakeup." msgstr "" #. type: Plain text #: build/C/man2/futex.2:271 msgid "Invalid argument." msgstr "" #. type: TP #: build/C/man2/futex.2:271 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:274 msgid "The system limit on the total number of open files has been reached." msgstr "" #. type: TP #: build/C/man2/futex.2:274 build/C/man2/modify_ldt.2:126 build/C/man2/pciconfig_read.2:93 build/C/man2/perf_event_open.2:2718 build/C/man2/quotactl.2:447 build/C/man2/vm86.2:64 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:278 msgid "Invalid operation specified in I." msgstr "" #. type: TP #: build/C/man2/futex.2:278 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:283 msgid "Timeout during the B operation." msgstr "" #. type: TP #: build/C/man2/futex.2:283 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:293 msgid "" "I was B and the value pointed to by I was not equal " "to the expected value I at the time of the call." msgstr "" #. type: SH #: build/C/man2/futex.2:293 build/C/man2/get_robust_list.2:116 build/C/man2/getunwind.2:94 build/C/man2/kexec_load.2:328 build/C/man2/lookup_dcookie.2:73 build/C/man2/perfmonctl.2:196 build/C/man2/pivot_root.2:125 build/C/man2/process_vm_readv.2:292 build/C/man2/sendfile.2:142 build/C/man2/set_tid_address.2:94 build/C/man2/splice.2:179 build/C/man2/tee.2:120 build/C/man2/vmsplice.2:148 #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: build/C/man2/futex.2:303 msgid "" "Initial futex support was merged in Linux 2.5.7 but with different semantics " "from what was described above. A 4-argument system call with the semantics " "described in this page was introduced in Linux 2.5.40. In Linux 2.5.70, one " "argument was added. In Linux 2.6.7, a sixth argument was added\\(emmessy, " "especially on the s390 architecture." msgstr "" #. type: Plain text #: build/C/man2/futex.2:305 build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:186 build/C/man2/tee.2:127 build/C/man2/vmsplice.2:155 msgid "This system call is Linux-specific." msgstr "" #. .SH "AUTHORS" #. .PP #. Futexes were designed and worked on by #. Hubertus Franke (IBM Thomas J. Watson Research Center), #. Matthew Kirkwood, Ingo Molnar (Red Hat) #. and Rusty Russell (IBM Linux Technology Center). #. This page written by bert hubert. #. type: Plain text #: build/C/man2/futex.2:319 msgid "" "To reiterate, bare futexes are not intended as an easy-to-use abstraction " "for end-users. (There is no wrapper function for this system call in " "glibc.) Implementors are expected to be assembly literate and to have read " "the sources of the futex user-space library referenced below." msgstr "" #. type: Plain text #: build/C/man2/futex.2:322 msgid "B(2), B(7)" msgstr "" #. type: Plain text #: build/C/man2/futex.2:325 msgid "" "I (proceedings " "of the Ottawa Linux Symposium 2002), online at" msgstr "" #. type: Plain text #: build/C/man2/futex.2:328 msgid "" "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> " "E<.UE>" msgstr "" #. type: Plain text #: build/C/man2/futex.2:330 msgid "Futex example library, futex-*.tar.bz2 at" msgstr "" #. type: Plain text #: build/C/man2/futex.2:333 msgid "" "E<.UR ftp://ftp.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> " "E<.UE>" msgstr "" #. type: TH #: build/C/man2/get_robust_list.2:29 #, no-wrap msgid "GET_ROBUST_LIST" msgstr "" #. type: TH #: build/C/man2/get_robust_list.2:29 build/C/man2/ptrace.2:46 #, no-wrap msgid "2015-01-22" msgstr "" #. type: TH #: build/C/man2/get_robust_list.2:29 #, no-wrap msgid "Linux System Calls" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:32 msgid "get_robust_list, set_robust_list - get/set list of robust futexes" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:37 #, no-wrap msgid "" "B<#include Elinux/futex.hE>\n" "B<#include Esys/types.hE>\n" "B<#include Esyscall.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:41 #, no-wrap msgid "" "BIB<, struct robust_list_head " "**>IB<,>\n" "B< size_t *>IB<);>\n" "BIB<, size_t " ">IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:45 build/C/man2/kexec_load.2:47 msgid "I: There are no glibc wrappers for these system calls; see NOTES." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:50 msgid "" "The robust futex implementation needs to maintain per-thread lists of robust " "futexes which are unlocked when the thread exits. These lists are managed " "in user space; the kernel is notified about only the location of the head of " "the list." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:66 msgid "" "The B() system call returns the head of the robust futex " "list of the thread whose thread ID is specified in I. If I is 0, " "the head of the list for the calling thread is returned. The list head is " "stored in the location pointed to by I. The size of the object " "pointed to by I<**head_ptr> is stored in I." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:78 msgid "" "The B() system call requests the kernel to record the head " "of the list of robust futexes owned by the calling thread. The I " "argument is the list head to record. The I argument should be " "I." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:85 msgid "" "The B() and B() system calls return zero " "when the operation is successful, an error code otherwise." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:89 msgid "The B() system call can fail with the following error:" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:95 msgid "" "I does not match the size of structure B " "expected by kernel." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:99 msgid "The B() system call can fail with the following errors:" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:107 msgid "" "The calling process does not have permission to see the robust futex list of " "the thread with the thread ID I, and does not have the " "B capability." msgstr "" #. type: TP #: build/C/man2/get_robust_list.2:107 build/C/man2/perf_event_open.2:2746 build/C/man2/process_vm_readv.2:287 build/C/man2/ptrace.2:1949 build/C/man2/quotactl.2:461 build/C/man2/quotactl.2:504 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:112 msgid "No thread with the thread ID I could be found." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:116 msgid "The head of the robust futex list can't be stored at the location I." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:118 msgid "These system calls were added in Linux 2.6.17." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:123 msgid "" "These system calls are not needed by normal applications. No support for " "them is provided in glibc. In the unlikely event that you want to call them " "directly, use B(2)." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:127 msgid "" "A thread can have only one robust futex list; therefore applications that " "wish to use this functionality should use the robust mutexes provided by " "glibc." msgstr "" #. .BR pthread_mutexattr_setrobust_np (3) #. type: Plain text #: build/C/man2/get_robust_list.2:130 msgid "B(2)" msgstr "" #. http://lwn.net/Articles/172149/ #. type: Plain text #: build/C/man2/get_robust_list.2:136 msgid "" "I and " "I in the Linux kernel source tree" msgstr "" #. type: TH #: build/C/man2/getunwind.2:27 #, no-wrap msgid "GETUNWIND" msgstr "" #. type: TH #: build/C/man2/getunwind.2:27 #, no-wrap msgid "2014-09-21" msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:30 msgid "getunwind - copy the unwind data to caller's buffer" msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:34 #, no-wrap msgid "" "B<#include Esyscall.hE>\n" "B<#include Elinux/unwind.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:36 #, no-wrap msgid "BI<*buf>B<, size_t >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:42 msgid "I" msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:52 msgid "" "The IA-64-specific B() system call copies the kernel's call " "frame unwind data into the buffer pointed to by I and returns the size " "of the unwind data; this data describes the gate page (kernel code that is " "mapped into user space)." msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:64 msgid "" "The size of the buffer I is specified in I. The data is " "copied only if I is greater than or equal to the size of the " "unwind data and I is not NULL; otherwise, no data is copied, and the " "call succeeds, returning the size that would be needed to store the unwind " "data." msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:68 msgid "" "The first part of the unwind data contains an unwind table. The rest " "contains the associated unwind information, in no particular order. The " "unwind table contains entries of the following form:" msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:73 #, no-wrap msgid "" " u64 start; (64-bit address of start of function)\n" " u64 end; (64-bit address of end of function)\n" " u64 info; (BUF-relative offset to unwind info)\n" msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:81 msgid "" "An entry whose I value is zero indicates the end of the table. For " "more information about the format, see the I manual." msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:88 msgid "" "On success, B() returns the size of the unwind data. On error, " "-1 is returned and I is set to indicate the error." msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:94 msgid "" "B() fails with the error B if the unwind info can't be " "stored in the space specified by I." msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:96 msgid "This system call is available since Linux 2.4." msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:99 msgid "" "This system call is Linux-specific, and is available only on the IA-64 " "architecture." msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:107 msgid "" "This system call has been deprecated. The modern way to obtain the kernel's " "unwind data is via the gate DSO. The address of the ELF header for this DSO " "is passed to user level via B (see B(3))." msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:111 msgid "" "Glibc does not provide a wrapper for this system call; in the unlikely event " "that you want to call it, use B(2)." msgstr "" #. type: Plain text #: build/C/man2/getunwind.2:113 msgid "B(3)" msgstr "" #. type: TH #: build/C/man2/kexec_load.2:27 #, no-wrap msgid "KEXEC_LOAD" msgstr "" #. type: TH #: build/C/man2/kexec_load.2:27 build/C/man2/personality.2:32 #, no-wrap msgid "2015-02-01" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:30 msgid "kexec_load, kexec_file_load - load a new kernel for later execution" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:33 #, no-wrap msgid "B<#include Elinux/kexec.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:37 #, no-wrap msgid "" "BIB<, unsigned long " ">IB<,>\n" "B< struct kexec_segment *>IB<, unsigned long " ">IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:39 #, no-wrap msgid "BIB<, int >IB<,>\n" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:43 #, no-wrap msgid "" "B< unsigned long >IB<, const char " "*>IB<,>\n" "B< unsigned long >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:52 msgid "" "The B() system call loads a new kernel that can be executed " "later by B(2)." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:58 msgid "" "The I argument is a bit mask that controls the operation of the " "call. The following values can be specified in I:" msgstr "" #. type: TP #: build/C/man2/kexec_load.2:58 #, no-wrap msgid "B (since Linux 2.6.13)" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:74 msgid "" "Execute the new kernel automatically on a system crash. This \"crash " "kernel\" is loaded into an area of reserved memory that is determined at " "boot time using the I kernel command-line parameter. The " "location of this reserved memory is exported to user space via the " "I file, in an entry labeled \"Crash kernel\". A user-space " "application can parse this file and prepare a list of segments (see below) " "that specify this reserved memory as destination. If this flag is " "specified, the kernel checks that the target segments specified in " "I fall within the reserved region." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:74 #, no-wrap msgid "B (since Linux 2.6.27)" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:84 msgid "" "Preserve the system hardware and software states before executing the new " "kernel. This could be used for system suspend. This flag is available only " "if the kernel was configured with B, and is effective " "only if I is greater than 0." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:105 msgid "" "The high-order bits (corresponding to the mask 0xffff0000) of I " "contain the architecture of the to-be-executed kernel. Specify (OR) the " "constant B to use the current architecture, or one of " "the following architecture constants B, B, " "B, B, B, " "B, B, B, " "B, B, and B. The " "architecture must be executable on the CPU of the system." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:120 msgid "" "The I argument is the physical entry address in the kernel image. " "The I argument is the number of segments pointed to by the " "I pointer; the kernel imposes an (arbitrary) limit of 16 on the " "number of segments. The I argument is an array of " "I structures which define the kernel layout:" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:129 #, no-wrap msgid "" "struct kexec_segment {\n" " void *buf; /* Buffer in user space */\n" " size_t bufsz; /* Buffer length in user space */\n" " void *mem; /* Physical address of kernel */\n" " size_t memsz; /* Physical address length */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:146 msgid "" "The kernel image defined by I is copied from the calling process " "into the kernel either in regular memory or in reserved memory (if " "B is set). The kernel first performs various sanity checks " "on the information passed in I. If these checks pass, the kernel " "copies the segment data to kernel memory. Each segment specified in " "I is copied as follows:" msgstr "" #. type: IP #: build/C/man2/kexec_load.2:146 build/C/man2/kexec_load.2:157 build/C/man2/kexec_load.2:164 build/C/man2/perf_event_open.2:1238 build/C/man2/perf_event_open.2:1256 build/C/man2/ptrace.2:1735 build/C/man2/ptrace.2:1745 build/C/man2/ptrace.2:1753 build/C/man2/ptrace.2:1759 build/C/man2/ptrace.2:1888 build/C/man2/splice.2:55 build/C/man2/splice.2:61 build/C/man2/splice.2:70 #, no-wrap msgid "*" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:157 msgid "" "I and I identify a memory region in the caller's virtual address " "space that is the source of the copy. The value in I may not exceed " "the value in the I field." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:164 msgid "" "I and I specify a physical address range that is the target of " "the copy. The values specified in both fields must be multiples of the " "system page size." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:172 msgid "" "I bytes are copied from the source buffer to the target kernel " "buffer. If I is less than I, then the excess bytes in the " "kernel buffer are zeroed out." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:181 msgid "" "In case of a normal kexec (i.e., the B flag is not set), the " "segment data is loaded in any available memory and is moved to the final " "destination at kexec reboot time (e.g., when the B(8) command is " "executed with the I<-e> option)." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:187 msgid "" "In case of kexec on panic (i.e., the B flag is set), the " "segment data is loaded to reserved memory at the time of the call, and, " "after a crash, the kexec mechanism simply passes control to that kernel." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:192 msgid "" "The B() system call is available only if the kernel was " "configured with B." msgstr "" #. type: SS #: build/C/man2/kexec_load.2:192 #, no-wrap msgid "kexec_file_load()" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:211 msgid "" "The B() system call is similar to B(), but it " "takes a different set of arguments. It reads the kernel to be loaded from " "the file referred to by the descriptor I, and the initrd (initial " "RAM disk) to be loaded from file referred to by the descriptor " "I. The I argument is a pointer to a buffer containing " "the command line for the new kernel. The I argument specifies " "size of the buffer. The last byte in the buffer must be a null byte " "(\\(aq\\e0\\(aq)." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:217 msgid "" "The I argument is a bit mask which modifies the behavior of the " "call. The following values can be specified in I:" msgstr "" #. type: TP #: build/C/man2/kexec_load.2:217 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:220 msgid "Unload the currently loaded kernel." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:220 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:226 msgid "" "Load the new kernel in the memory region reserved for the crash kernel (as " "for B This kernel is booted if the currently running " "kernel crashes." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:226 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:233 msgid "" "Loading initrd/initramfs is optional. Specify this flag if no initramfs is " "being loaded. If this flag is set, the value passed in I is " "ignored." msgstr "" #. See also http://lwn.net/Articles/603116/ #. type: Plain text #: build/C/man2/kexec_load.2:242 msgid "" "The B() system call was added to provide support for " "systems where \"kexec\" loading should be restricted to only kernels that " "are signed. This system call is available only if the kernel was configured " "with B." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:247 msgid "" "On success, these system calls returns 0. On error, -1 is returned and " "I is set to indicate the error." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:248 build/C/man2/kexec_load.2:260 #, no-wrap msgid "B" msgstr "" #. See kernel/kexec.::sanity_check_segment_list in the 3.19 kernel source #. type: Plain text #: build/C/man2/kexec_load.2:260 msgid "" "The B flags was specified, but the region specified by the " "I and I fields of one of the I entries lies outside " "the range of memory reserved for the crash kernel." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:269 msgid "" "The value in a I or I field in one of the I entries is " "not a multiple of the system page size." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:269 build/C/man2/perf_event_open.2:2649 build/C/man2/sendfile.2:121 build/C/man2/splice.2:157 build/C/man2/vmsplice.2:133 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:275 msgid "I or I is not a valid file descriptor." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:275 build/C/man2/pivot_root.2:110 build/C/man2/ptrace.2:1912 build/C/man2/quotactl.2:495 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:279 msgid "" "Another crash kernel is already being loaded or a crash kernel is already in " "use." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:283 msgid "I is invalid." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:292 msgid "" "The value of a I field in one of the I entries exceeds the " "value in the corresponding I field." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:298 msgid "I exceeds B (16)." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:301 msgid "Two or more of the kernel target buffers overlap." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:306 msgid "The value in I is not \\(aq\\e0\\(aq." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:313 msgid "The file referred to by I or I is empty (length zero)." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:313 build/C/man2/lookup_dcookie.2:61 build/C/man2/process_vm_readv.2:278 build/C/man2/sendfile.2:138 build/C/man2/splice.2:169 build/C/man2/tee.2:117 build/C/man2/vmsplice.2:145 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:316 msgid "Could not allocate memory." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:316 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:323 msgid "" "I does not refer to an open file, or the kernel can't load this " "file. Currently, the file must be a bzImage and contain an x86 kernel that " "is loadable above 4GiB in memory (see the kernel source file " "I)." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:328 msgid "The caller does not have the B capability." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:335 msgid "" "The B() system call first appeared in Linux 2.6.13. The " "B() system call first appeared in Linux 3.17." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:337 msgid "These system calls are Linux-specific." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:341 msgid "" "Currently, there is no glibc support for these system calls. Call them " "using B(2)." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:345 msgid "B(2), B(2), B(8)" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:350 msgid "" "The kernel source files I and " "I." msgstr "" #. type: TH #: build/C/man2/lookup_dcookie.2:27 #, no-wrap msgid "LOOKUP_DCOOKIE" msgstr "" #. type: TH #: build/C/man2/lookup_dcookie.2:27 #, no-wrap msgid "2004-06-17" msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:30 msgid "lookup_dcookie - return a directory entry's path" msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:32 msgid "" "BIB<, char *>IB<, size_t " ">IB<);>" msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:38 msgid "" "Look up the full path of the directory entry specified by the value " "I. The cookie is an opaque identifier uniquely identifying a " "particular directory entry. The buffer given is filled in with the full " "path of the directory entry." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:43 msgid "" "For B() to return successfully, the kernel must still hold " "a cookie reference to the directory entry." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:50 msgid "" "On success, B() returns the length of the path string " "copied into the buffer. On error, -1 is returned, and I is set " "appropriately." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:54 msgid "The buffer was not valid." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:58 msgid "" "The kernel has no registered cookie/directory entry mappings at the time of " "lookup, or the cookie does not refer to a valid directory entry." msgstr "" #. type: TP #: build/C/man2/lookup_dcookie.2:58 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:61 msgid "The name could not fit in the buffer." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:65 msgid "" "The kernel could not allocate memory for the temporary buffer holding the " "path." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:70 msgid "" "The process does not have the capability B required to look " "up cookie values." msgstr "" #. type: TP #: build/C/man2/lookup_dcookie.2:70 build/C/man2/quotactl.2:474 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:73 msgid "The buffer was not large enough to hold the path of the directory entry." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:78 msgid "" "Available since Linux 2.5.43. The B error return was added in " "2.5.70." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:81 msgid "B() is Linux-specific." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:85 msgid "" "B() is a special-purpose system call, currently used only " "by the oprofile profiler. It relies on a kernel driver to register cookies " "for directory entries." msgstr "" #. type: Plain text #: build/C/man2/lookup_dcookie.2:88 msgid "" "The path returned may be suffixed by the string \" (deleted)\" if the " "directory entry has been removed." msgstr "" #. type: TH #: build/C/man2/modify_ldt.2:24 #, no-wrap msgid "MODIFY_LDT" msgstr "" #. type: TH #: build/C/man2/modify_ldt.2:24 build/C/man2/pivot_root.2:10 #, no-wrap msgid "2012-07-13" msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:27 msgid "modify_ldt - get or set ldt" msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:30 #, no-wrap msgid "B<#include Esys/types.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:32 #, no-wrap msgid "" "BIB<, void *>IB<, unsigned long " ">IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:41 msgid "" "B() reads or writes the local descriptor table (ldt) for a " "process. The ldt is a per-process memory management table used by the i386 " "processor. For more information on this table, see an Intel 386 processor " "handbook." msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:51 msgid "" "When I is 0, B() reads the ldt into the memory pointed to " "by I. The number of bytes read is the smaller of I and the " "actual size of the ldt." msgstr "" # #. FIXME Should this page say something about func == 2 and func == 0x11? #. In Linux 2.4, func == 2 returned "the default ldt" #. In Linux 2.6, func == 2 is a nop, returning a zeroed out structure. #. Linux 2.4 and 2.6 implement an operation for func == 0x11 #. type: Plain text #: build/C/man2/modify_ldt.2:69 msgid "" "When I is 1, B() modifies one ldt entry. I points " "to a I structure and I must equal the size of this " "structure." msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:73 msgid "The I structure is defined in Iasm/ldt.hE> as:" msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:87 #, no-wrap msgid "" "struct user_desc {\n" " unsigned int entry_number;\n" " unsigned long base_addr;\n" " unsigned int limit;\n" " unsigned int seg_32bit:1;\n" " unsigned int contents:2;\n" " unsigned int read_exec_only:1;\n" " unsigned int limit_in_pages:1;\n" " unsigned int seg_not_present:1;\n" " unsigned int useable:1;\n" "};\n" msgstr "" #. .PP #. The ldt is specific for the calling process. Any attempts to change #. the ldt to include the address space of another process or the kernel #. will result in a segmentation violation when trying to access the memory #. outside of the process address space. The memory protection is enforced #. at the paging layer. #. type: Plain text #: build/C/man2/modify_ldt.2:98 msgid "In Linux 2.4 and earlier, this structure was named I." msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:108 msgid "" "On success, B() returns either the actual number of bytes read " "(for reading) or 0 (for writing). On failure, B() returns -1 " "and sets I to indicate the error." msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:113 msgid "I points outside the address space." msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:126 msgid "" "I is 0, or I is 1 and I is not equal to the size of " "the structure I, or I is 1 and the new ldt entry has " "invalid values." msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:130 msgid "I is neither 0 nor 1." msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:133 msgid "" "This call is Linux-specific and should not be used in programs intended to " "be portable." msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:136 build/C/man2/perfmonctl.2:205 build/C/man2/pivot_root.2:134 msgid "" "Glibc does not provide a wrapper for this system call; call it using " "B(2)." msgstr "" #. type: Plain text #: build/C/man2/modify_ldt.2:138 msgid "B(2)" msgstr "" #. type: TH #: build/C/man2/nfsservctl.2:8 #, no-wrap msgid "NFSSERVCTL" msgstr "" #. type: TH #: build/C/man2/nfsservctl.2:8 #, no-wrap msgid "2013-09-17" msgstr "" #. type: Plain text #: build/C/man2/nfsservctl.2:11 msgid "nfsservctl - syscall interface to kernel nfs daemon" msgstr "" #. type: Plain text #: build/C/man2/nfsservctl.2:14 #, no-wrap msgid "B<#include Elinux/nfsd/syscall.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/nfsservctl.2:17 #, no-wrap msgid "" "BIB<, struct nfsctl_arg *>IB<,>\n" "B< union nfsctl_res *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/nfsservctl.2:21 msgid "I: Since Linux 3.1, this system call no longer exists." msgstr "" #. type: Plain text #: build/C/man2/nfsservctl.2:35 #, no-wrap msgid "" "/*\n" " * These are the commands understood by nfsctl().\n" " */\n" "#define NFSCTL_SVC 0 /* This is a server process. */\n" "#define NFSCTL_ADDCLIENT 1 /* Add an NFS client. */\n" "#define NFSCTL_DELCLIENT 2 /* Remove an NFS client. */\n" "#define NFSCTL_EXPORT 3 /* Export a filesystem. */\n" "#define NFSCTL_UNEXPORT 4 /* Unexport a filesystem. */\n" "#define NFSCTL_UGIDUPDATE 5 /* Update a client's UID/GID map\n" " (only in Linux 2.4.x and earlier). */\n" "#define NFSCTL_GETFH 6 /* Get a file handle (used by mountd)\n" " (only in Linux 2.4.x and earlier). */\n" msgstr "" #. type: Plain text #: build/C/man2/nfsservctl.2:47 #, no-wrap msgid "" "struct nfsctl_arg {\n" " int ca_version; /* safeguard */\n" " union {\n" " struct nfsctl_svc u_svc;\n" " struct nfsctl_client u_client;\n" " struct nfsctl_export u_export;\n" " struct nfsctl_uidmap u_umap;\n" " struct nfsctl_fhparm u_getfh;\n" " unsigned int u_debug;\n" " } u;\n" "}\n" msgstr "" #. type: Plain text #: build/C/man2/nfsservctl.2:52 #, no-wrap msgid "" "union nfsctl_res {\n" " struct knfs_fh cr_getfh;\n" " unsigned int cr_debug;\n" "};\n" msgstr "" #. type: Plain text #: build/C/man2/nfsservctl.2:58 build/C/man2/pivot_root.2:105 build/C/man2/vm86.2:59 msgid "" "On success, zero is returned. On error, -1 is returned, and I is set " "appropriately." msgstr "" #. type: Plain text #: build/C/man2/nfsservctl.2:60 msgid "This call is Linux-specific." msgstr "" #. type: TH #: build/C/man2/outb.2:26 #, no-wrap msgid "OUTB" msgstr "" #. type: TH #: build/C/man2/outb.2:26 #, no-wrap msgid "2012-12-31" msgstr "" #. type: Plain text #: build/C/man2/outb.2:31 msgid "" "outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, " "outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - port I/O" msgstr "" #. type: Plain text #: build/C/man2/outb.2:34 #, no-wrap msgid "B<#include Esys/io.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/outb.2:41 #, no-wrap msgid "" "BIB<);>\n" "BIB<);>\n" "BIB<);>\n" "BIB<);>\n" "BIB<);>\n" "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/outb.2:48 #, no-wrap msgid "" "BIB<, unsigned short int >IB<);>\n" "BIB<, unsigned short int >IB<);>\n" "BIB<, unsigned short int " ">IB<);>\n" "BIB<, unsigned short int " ">IB<);>\n" "BIB<, unsigned short int >IB<);>\n" "BIB<, unsigned short int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/outb.2:61 #, no-wrap msgid "" "BIB<, void *>IB<,>\n" "B< unsigned long int >IB<);>\n" "BIB<, void *>IB<,>\n" "B< unsigned long int >IB<);>\n" "BIB<, void *>IB<,>\n" "B< unsigned long int >IB<);>\n" "BIB<, const void *>IB<,>\n" "B< unsigned long int >IB<);>\n" "BIB<, const void *>IB<,>\n" "B< unsigned long int >IB<);>\n" "BIB<, const void *>IB<,>\n" "B< unsigned long int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/outb.2:67 msgid "" "This family of functions is used to do low-level port input and output. The " "out* functions do port output, the in* functions do port input; the b-suffix " "functions are byte-width and the w-suffix functions word-width; the " "_p-suffix functions pause until the I/O completes." msgstr "" #. , given the following information #. in addition to that given in #. .BR outb (9). #. type: Plain text #: build/C/man2/outb.2:73 msgid "" "They are primarily designed for internal kernel use, but can be used from " "user space." msgstr "" #. type: Plain text #: build/C/man2/outb.2:78 msgid "" "You must compile with B<-O> or B<-O2> or similar. The functions are defined " "as inline macros, and will not be substituted in without optimization " "enabled, causing unresolved references at link time." msgstr "" #. type: Plain text #: build/C/man2/outb.2:87 msgid "" "You use B(2) or alternatively B(2) to tell the kernel to " "allow the user space application to access the I/O ports in question. " "Failure to do this will cause the application to receive a segmentation " "fault." msgstr "" #. type: Plain text #: build/C/man2/outb.2:96 msgid "" "B() and friends are hardware-specific. The I argument is " "passed first and the I argument is passed second, which is the " "opposite order from most DOS implementations." msgstr "" #. type: Plain text #: build/C/man2/outb.2:99 msgid "B(2), B(2)" msgstr "" #. type: TH #: build/C/man2/pciconfig_read.2:8 #, no-wrap msgid "PCICONFIG_READ" msgstr "" #. type: TH #: build/C/man2/pciconfig_read.2:8 #, no-wrap msgid "2003-07-14" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:11 msgid "" "pciconfig_read, pciconfig_write, pciconfig_iobase - pci device information " "handling" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:14 #, no-wrap msgid "B<#include Epci.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:21 #, no-wrap msgid "" "BIB<, unsigned long >IB<,>\n" "B< unsigned long >IB<, unsigned long >IB<, void " "*>IB<);>\n" "BIB<, unsigned long >IB<,>\n" "B< unsigned long >IB<, unsigned long >IB<, void " "*>IB<);>\n" "BIB<, unsigned long >IB<,>\n" "B< unsigned long >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:27 msgid "" "Most of the interaction with PCI devices is already handled by the kernel " "PCI layer, and thus these calls should not normally need to be accessed from " "user space." msgstr "" #. type: TP #: build/C/man2/pciconfig_read.2:27 build/C/man2/pciconfig_read.2:51 #, no-wrap msgid "B()" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:36 msgid "Reads to I from device I at offset I value." msgstr "" #. type: TP #: build/C/man2/pciconfig_read.2:36 build/C/man2/pciconfig_read.2:57 #, no-wrap msgid "B()" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:45 msgid "Writes from I to device I at offset I value." msgstr "" #. type: TP #: build/C/man2/pciconfig_read.2:45 build/C/man2/pciconfig_read.2:63 #, no-wrap msgid "B()" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:50 msgid "" "You pass it a bus/devfn pair and get a physical address for either the " "memory offset (for things like prep, this is 0xc0000000), the IO base for " "PIO cycles, or the ISA holes if any." msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:57 build/C/man2/pciconfig_read.2:63 msgid "" "On success zero is returned. On error, -1 is returned and I is set " "appropriately." msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:77 msgid "" "Returns information on locations of various I/O regions in physical memory " "according to the I value. Values for I are: " "B, B, B, B, " "B." msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:84 msgid "I value is invalid. This does not apply to B()." msgstr "" #. type: TP #: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1929 build/C/man2/sendfile.2:134 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:87 msgid "I/O error." msgstr "" #. type: TP #: build/C/man2/pciconfig_read.2:87 build/C/man2/perf_event_open.2:2696 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:93 msgid "" "For B(), \"hose\" value is NULL. For the other calls, " "could not find a slot." msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:98 msgid "The system has not implemented these calls (B not defined)." msgstr "" #. type: TP #: build/C/man2/pciconfig_read.2:98 build/C/man2/perf_event_open.2:2725 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:105 msgid "" "This return value is valid only for B(). It is returned " "if the value for I is invalid." msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:112 msgid "" "User does not have the B capability. This does not apply to " "B()." msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:114 msgid "These calls are Linux-specific, available since Linux 2.0.26/2.1.11." msgstr "" #. type: Plain text #: build/C/man2/pciconfig_read.2:116 msgid "B(7)" msgstr "" #. type: TH #: build/C/man2/perf_event_open.2:27 #, no-wrap msgid "PERF_EVENT_OPEN" msgstr "" #. type: TH #: build/C/man2/perf_event_open.2:27 #, no-wrap msgid "2015-01-10" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:30 msgid "perf_event_open - set up performance monitoring" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:34 #, no-wrap msgid "" "B<#include Elinux/perf_event.hE>\n" "B<#include Elinux/hw_breakpoint.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:38 #, no-wrap msgid "" "BIB<,>\n" "B< pid_t >IB<, int >IB<, int >IB<,>\n" "B< unsigned long >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:47 msgid "" "Given a list of parameters, B() returns a file descriptor, " "for use in subsequent system calls (B(2), B(2), B(2), " "B(2), etc.)." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:55 msgid "" "A call to B() creates a file descriptor that allows " "measuring performance information. Each file descriptor corresponds to one " "event that is measured; these can be grouped together to measure multiple " "events simultaneously." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:62 msgid "" "Events can be enabled and disabled in two ways: via B(2) and via " "B(2). When an event is disabled it does not count or generate " "overflows but does continue to exist and maintain its count value." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:76 msgid "" "Events come in two flavors: counting and sampled. A I event is " "one that is used for counting the aggregate number of events that occur. In " "general, counting event results are gathered with a B(2) call. A " "I event periodically writes measurements to a buffer that can then " "be accessed via B(2)." msgstr "" #. type: SS #: build/C/man2/perf_event_open.2:76 #, no-wrap msgid "Arguments" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:83 msgid "" "The I and I arguments allow specifying which process and CPU to " "monitor:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:83 #, no-wrap msgid "B and B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:86 msgid "This measures the calling process/thread on any CPU." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:86 #, no-wrap msgid "B and B= 0>" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:90 msgid "" "This measures the calling process/thread only when running on the specified " "CPU." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:90 #, no-wrap msgid "B 0> and B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:93 msgid "This measures the specified process/thread on any CPU." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:93 #, no-wrap msgid "B 0> and B= 0>" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:97 msgid "" "This measures the specified process/thread only when running on the " "specified CPU." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:97 #, no-wrap msgid "B and B= 0>" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:105 msgid "" "This measures all processes/threads on the specified CPU. This requires " "B capability or a I " "value of less than 1." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:105 #, no-wrap msgid "B and B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:108 msgid "This setting is invalid and will return an error." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:130 msgid "" "The I argument allows event groups to be created. An event group " "has one event which is the group leader. The leader is created first, with " "I = -1. The rest of the group members are created with subsequent " "B() calls with I being set to the file " "descriptor of the group leader. (A single event on its own is created with " "I = -1 and is considered to be a group with only 1 member.) An " "event group is scheduled onto the CPU as a unit: it will be put onto the CPU " "only if all of the events in the group can be put onto the CPU. This means " "that the values of the member events can be meaningfully compared\\(emadded, " "divided (to get ratios), and so on\\(emwith each other, since they have " "counted events for the same set of executed instructions." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:134 msgid "" "The I argument is formed by ORing together zero or more of the " "following values:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:134 #, no-wrap msgid "B (since Linux 3.14)" msgstr "" #. commit a21b0b354d4ac39be691f51c53562e2c24443d9e #. type: Plain text #: build/C/man2/perf_event_open.2:151 msgid "" "This flag enables the close-on-exec flag for the created event file " "descriptor, so that the file descriptor is automatically closed on " "B(2). Setting the close-on-exec flags at creation time, rather than " "later with B(2), avoids potential race conditions where the calling " "thread invokes B() and B(2) at the same time as " "another thread calls B(2) then B(2)." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:151 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:159 msgid "" "This flag tells the event to ignore the I parameter except for the " "purpose of setting up output redirection using the B " "flag." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:159 #, no-wrap msgid "B (broken since Linux 2.6.35)" msgstr "" #. commit ac9721f3f54b27a16c7e1afb2481e7ee95a70318 #. type: Plain text #: build/C/man2/perf_event_open.2:165 msgid "" "This flag re-routes the event's sampled output to instead be included in the " "mmap buffer of the event specified by I." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:165 #, no-wrap msgid "B (since Linux 2.6.39)" msgstr "" #. commit e5d1367f17ba6a6fed5fd8b74e4d5720923e0c25 #. type: Plain text #: build/C/man2/perf_event_open.2:189 msgid "" "This flag activates per-container system-wide monitoring. A container is an " "abstraction that isolates a set of resources for finer-grained control " "(CPUs, memory, etc.). In this mode, the event is measured only if the " "thread running on the monitored CPU belongs to the designated container " "(cgroup). The cgroup is identified by passing a file descriptor opened on " "its directory in the cgroupfs filesystem. For instance, if the cgroup to " "monitor is called I, then a file descriptor opened on " "I (assuming cgroupfs is mounted on I) must " "be passed as the I parameter. cgroup monitoring is available only for " "system-wide events and may therefore require extra permissions." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:194 msgid "" "The I structure provides detailed configuration information " "for the event being created." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:201 #, no-wrap msgid "" "struct perf_event_attr {\n" " __u32 type; /* Type of event */\n" " __u32 size; /* Size of attribute structure */\n" " __u64 config; /* Type-specific configuration */\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:206 #, no-wrap msgid "" " union {\n" " __u64 sample_period; /* Period of sampling */\n" " __u64 sample_freq; /* Frequency of sampling */\n" " };\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:209 #, no-wrap msgid "" " __u64 sample_type; /* Specifies values included in sample */\n" " __u64 read_format; /* Specifies values returned in read */\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:237 #, no-wrap msgid "" " __u64 disabled : 1, /* off by default */\n" " inherit : 1, /* children inherit it */\n" " pinned : 1, /* must always be on PMU */\n" " exclusive : 1, /* only group on PMU */\n" " exclude_user : 1, /* don't count user */\n" " exclude_kernel : 1, /* don't count kernel */\n" " exclude_hv : 1, /* don't count hypervisor */\n" " exclude_idle : 1, /* don't count when idle */\n" " mmap : 1, /* include mmap data */\n" " comm : 1, /* include comm data */\n" " freq : 1, /* use freq, not period */\n" " inherit_stat : 1, /* per task counts */\n" " enable_on_exec : 1, /* next exec enables */\n" " task : 1, /* trace fork/exit */\n" " watermark : 1, /* wakeup_watermark */\n" " precise_ip : 2, /* skid constraint */\n" " mmap_data : 1, /* non-exec mmap data */\n" " sample_id_all : 1, /* sample_type all events */\n" " exclude_host : 1, /* don't count in host */\n" " exclude_guest : 1, /* don't count in guest */\n" " exclude_callchain_kernel : 1,\n" " /* exclude kernel callchains */\n" " exclude_callchain_user : 1,\n" " /* exclude user callchains */\n" " mmap2 : 1, /* include mmap with inode data */\n" " comm_exec : 1, /* flag comm events that are due to exec " "*/\n" " __reserved_1 : 39;\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:242 #, no-wrap msgid "" " union {\n" " __u32 wakeup_events; /* wakeup every n events */\n" " __u32 wakeup_watermark; /* bytes before wakeup */\n" " };\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:244 #, no-wrap msgid " __u32 bp_type; /* breakpoint type */\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:249 #, no-wrap msgid "" " union {\n" " __u64 bp_addr; /* breakpoint address */\n" " __u64 config1; /* extension of config */\n" " };\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:259 #, no-wrap msgid "" " union {\n" " __u64 bp_len; /* breakpoint length */\n" " __u64 config2; /* extension of config1 */\n" " };\n" " __u64 branch_sample_type; /* enum perf_branch_sample_type */\n" " __u64 sample_regs_user; /* user regs to dump on samples */\n" " __u32 sample_stack_user; /* size of stack to dump on\n" " samples */\n" " __u32 __reserved_2; /* Align to u64 */\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:261 #, no-wrap msgid "};\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:267 msgid "" "The fields of the I structure are described in more detail " "below:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:267 build/C/man2/perf_event_open.2:1669 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:271 msgid "" "This field specifies the overall event type. It has one of the following " "values:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:272 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:279 msgid "" "This indicates one of the \"generalized\" hardware events provided by the " "kernel. See the I field definition for more details." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:279 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:283 msgid "" "This indicates one of the software-defined events provided by the kernel " "(even if no hardware support is available)." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:283 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:287 msgid "" "This indicates a tracepoint provided by the kernel tracepoint " "infrastructure." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:287 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:293 msgid "" "This indicates a hardware cache event. This has a special encoding, " "described in the I field definition." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:293 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:297 msgid "" "This indicates a \"raw\" implementation-specific event in the I " "field." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:297 #, no-wrap msgid "B (since Linux 2.6.33)" msgstr "" #. commit 24f1e32c60c45c89a997c73395b69c8af6f0a84e #. type: Plain text #: build/C/man2/perf_event_open.2:303 msgid "" "This indicates a hardware breakpoint as provided by the CPU. Breakpoints " "can be read/write accesses to an address as well as execution of an " "instruction address." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:303 #, no-wrap msgid "dynamic PMU" msgstr "" #. commit 2e80a82a49c4c7eca4e35734380f28298ba5db19 #. type: Plain text #: build/C/man2/perf_event_open.2:323 msgid "" "Since Linux 2.6.38, B() can support multiple PMUs. To " "enable this, a value exported by the kernel can be used in the I field " "to indicate which PMU to use. The value to use can be found in the sysfs " "filesystem: there is a subdirectory per PMU instance under " "I. In each subdirectory there is a I " "file whose content is an integer that can be used in the I field. For " "instance, I contains the value for " "the core CPU PMU, which is usually 4." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:324 build/C/man2/perf_event_open.2:1601 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:333 msgid "" "The size of the I structure for forward/backward " "compatibility. Set this using I to allow " "the kernel to see the struct size at the time of compilation." msgstr "" #. commit cb5d76999029ae7a517cb07dfa732c1b5a934fc2 #. this was added much later when PERF_ATTR_SIZE_VER2 happened #. but the actual attr_size had increased in 2.6.33 #. commit cb5d76999029ae7a517cb07dfa732c1b5a934fc2 #. commit 1659d129ed014b715b0b2120e6fd929bdd33ed03 #. type: Plain text #: build/C/man2/perf_event_open.2:353 msgid "" "The related define B is set to 64; this was the size of " "the first published struct. B is 72, corresponding to " "the addition of breakpoints in Linux 2.6.33. B is 80 " "corresponding to the addition of branch sampling in Linux 3.4. " "B is 96 corresponding to the addition of " "I and I in Linux 3.7." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:353 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:364 msgid "" "This specifies which event you want, in conjunction with the I field. " "The I and I fields are also taken into account in cases " "where 64 bits is not enough to fully specify the event. The encoding of " "these fields are event dependent." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:375 msgid "" "There are various ways to set the I field that are dependent on the " "value of the previously described I field. What follows are various " "possible settings for I separated out by I." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:385 msgid "" "If I is B, we are measuring one of the generalized " "hardware CPU events. Not all of these are available on all platforms. Set " "I to one of the following:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:386 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:390 msgid "Total cycles. Be wary of what happens during CPU frequency scaling." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:390 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:395 msgid "" "Retired instructions. Be careful, these can be affected by various issues, " "most notably hardware interrupt counts." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:395 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:402 msgid "" "Cache accesses. Usually this indicates Last Level Cache accesses but this " "may vary depending on your CPU. This may include prefetches and coherency " "messages; again this depends on the design of your CPU." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:402 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:409 msgid "" "Cache misses. Usually this indicates Last Level Cache misses; this is " "intended to be used in conjunction with the " "B event to calculate cache miss rates." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:409 #, no-wrap msgid "B" msgstr "" #. commit f287d332ce835f77a4f5077d2c0ef1e3f9ea42d2 #. type: Plain text #: build/C/man2/perf_event_open.2:415 msgid "" "Retired branch instructions. Prior to Linux 2.6.35, this used the wrong " "event on AMD processors." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:415 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:418 msgid "Mispredicted branch instructions." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:418 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:421 msgid "Bus cycles, which can be different from total cycles." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:421 #, no-wrap msgid "B (since Linux 3.0)" msgstr "" #. commit 8f62242246351b5a4bc0c1f00c0c7003edea128a #. type: Plain text #: build/C/man2/perf_event_open.2:425 msgid "Stalled cycles during issue." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:425 #, no-wrap msgid "B (since Linux 3.0)" msgstr "" #. commit 8f62242246351b5a4bc0c1f00c0c7003edea128a #. type: Plain text #: build/C/man2/perf_event_open.2:429 msgid "Stalled cycles during retirement." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:429 #, no-wrap msgid "B (since Linux 3.3)" msgstr "" #. commit c37e17497e01fc0f5d2d6feb5723b210b3ab8890 #. type: Plain text #: build/C/man2/perf_event_open.2:433 msgid "Total cycles; not affected by CPU frequency scaling." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:443 msgid "" "If I is B, we are measuring software events " "provided by the kernel. Set I to one of the following:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:444 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:447 msgid "This reports the CPU clock, a high-resolution per-CPU timer." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:447 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:450 msgid "This reports a clock count specific to the task that is running." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:450 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:453 msgid "This reports the number of page faults." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:453 #, no-wrap msgid "B" msgstr "" #. commit e49a5bd38159dfb1928fd25b173bc9de4bbadb21 #. type: Plain text #: build/C/man2/perf_event_open.2:459 msgid "" "This counts context switches. Until Linux 2.6.34, these were all reported " "as user-space events, after that they are reported as happening in the " "kernel." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:459 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:463 msgid "This reports the number of times the process has migrated to a new CPU." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:463 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:467 msgid "" "This counts the number of minor page faults. These did not require disk I/O " "to handle." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:467 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:471 msgid "" "This counts the number of major page faults. These required disk I/O to " "handle." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:471 #, no-wrap msgid "B (since Linux 2.6.33)" msgstr "" #. commit f7d7986060b2890fc26db6ab5203efbd33aa2497 #. type: Plain text #: build/C/man2/perf_event_open.2:478 msgid "" "This counts the number of alignment faults. These happen when unaligned " "memory accesses happen; the kernel can handle these but it reduces " "performance. This happens only on some architectures (never on x86)." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:478 #, no-wrap msgid "B (since Linux 2.6.33)" msgstr "" #. commit f7d7986060b2890fc26db6ab5203efbd33aa2497 #. type: Plain text #: build/C/man2/perf_event_open.2:485 msgid "" "This counts the number of emulation faults. The kernel sometimes traps on " "unimplemented instructions and emulates them for user space. This can " "negatively impact performance." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:485 #, no-wrap msgid "B (since Linux 3.12)" msgstr "" #. commit fa0097ee690693006ab1aea6c01ad3c851b65c77 #. type: Plain text #: build/C/man2/perf_event_open.2:493 msgid "" "This is a placeholder event that counts nothing. Informational sample " "record types such as mmap or comm must be associated with an active event. " "This dummy event allows gathering such records without requiring a counting " "event." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:506 msgid "" "If I is B, then we are measuring kernel " "tracepoints. The value to use in I can be obtained from under " "debugfs I if ftrace is enabled in the kernel." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:517 msgid "" "If I is B, then we are measuring a hardware CPU " "cache event. To calculate the appropriate I value use the following " "equation:" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:522 #, no-wrap msgid "" " (perf_hw_cache_id) | (perf_hw_cache_op_id EE 8) |\n" " (perf_hw_cache_op_result_id EE 16)\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:527 msgid "where I is one of:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:528 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:531 msgid "for measuring Level 1 Data Cache" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:531 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:534 msgid "for measuring Level 1 Instruction Cache" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:534 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:537 msgid "for measuring Last-Level Cache" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:537 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:540 msgid "for measuring the Data TLB" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:540 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:543 msgid "for measuring the Instruction TLB" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:543 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:546 msgid "for measuring the branch prediction unit" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:546 #, no-wrap msgid "B (since Linux 3.1)" msgstr "" #. commit 89d6c0b5bdbb1927775584dcf532d98b3efe1477 #. type: Plain text #: build/C/man2/perf_event_open.2:550 msgid "for measuring local memory accesses" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:555 msgid "and I is one of" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:556 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:559 msgid "for read accesses" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:559 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:562 msgid "for write accesses" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:562 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:565 msgid "for prefetch accesses" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:570 msgid "and I is one of" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:571 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:574 msgid "to measure accesses" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:574 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:577 msgid "to measure misses" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:595 msgid "" "If I is B, then a custom \"raw\" I value is " "needed. Most CPUs support events that are not covered by the " "\"generalized\" events. These are implementation defined; see your CPU " "manual (for example the Intel Volume 3B documentation or the AMD BIOS and " "Kernel Developer Guide). The libpfm4 library can be used to translate from " "the name in the architectural manuals to the raw hex value " "B() expects in this field." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:604 msgid "" "If I is B, then leave I set to zero. " "Its parameters are set in other places." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:605 #, no-wrap msgid "I, I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:617 msgid "" "A \"sampling\" event is one that generates an overflow notification every N " "events, where N is given by I. A sampling event has " "I E 0. When an overflow occurs, requested data is " "recorded in the mmap buffer. The I field controls what data is " "recorded on each overflow." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:627 msgid "" "I can be used if you wish to use frequency rather than period. " "In this case, you set the I flag. The kernel will adjust the sampling " "period to try and achieve the desired rate. The rate of adjustment is a " "timer tick." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:627 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:639 msgid "" "The various bits in this field specify which values to include in the " "sample. They will be recorded in a ring-buffer, which is available to user " "space using B(2). The order in which the values are saved in the " "sample are documented in the MMAP Layout subsection below; it is not the " "I order." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:640 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:643 msgid "Records instruction pointer." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:643 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:646 msgid "Records the process and thread IDs." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:646 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:649 msgid "Records a timestamp." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:649 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:652 msgid "Records an address, if applicable." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:652 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:655 msgid "Record counter values for all events in a group, not just the group leader." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:655 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:658 msgid "Records the callchain (stack backtrace)." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:658 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:661 msgid "Records a unique ID for the opened event's group leader." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:661 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:664 msgid "Records CPU number." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:664 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:667 msgid "Records the current sampling period." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:667 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:675 msgid "" "Records a unique ID for the opened event. Unlike B the " "actual ID is returned, not the group leader. This ID is the same as the one " "returned by B." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:675 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:679 msgid "" "Records additional data, if applicable. Usually returned by tracepoint " "events." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:679 #, no-wrap msgid "B (since Linux 3.4)" msgstr "" #. commit bce38cd53e5ddba9cb6d708c4ef3d04a4016ec7e #. type: Plain text #: build/C/man2/perf_event_open.2:685 msgid "" "This provides a record of recent branches, as provided by CPU branch " "sampling hardware (such as Intel Last Branch Record). Not all hardware " "supports this feature." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:689 msgid "" "See the I field for how to filter which branches are " "reported." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:689 #, no-wrap msgid "B (since Linux 3.7)" msgstr "" #. commit 4018994f3d8785275ef0e7391b75c3462c029e56 #. type: Plain text #: build/C/man2/perf_event_open.2:694 msgid "" "Records the current user-level CPU register state (the values in the process " "before the kernel was called)." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:694 #, no-wrap msgid "B (since Linux 3.7)" msgstr "" #. commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 #. type: Plain text #: build/C/man2/perf_event_open.2:698 msgid "Records the user level stack, allowing stack unwinding." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:698 #, no-wrap msgid "B (since Linux 3.10)" msgstr "" #. commit c3feedf2aaf9ac8bad6f19f5d21e4ee0b4b87e9c #. type: Plain text #: build/C/man2/perf_event_open.2:705 msgid "" "Records a hardware provided weight value that expresses how costly the " "sampled event was. This allows the hardware to highlight expensive events " "in a profile." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:705 #, no-wrap msgid "B (since Linux 3.10)" msgstr "" #. commit d6be9ad6c960f43800a6f118932bc8a5a4eadcd1 #. type: Plain text #: build/C/man2/perf_event_open.2:712 msgid "" "Records the data source: where in the memory hierarchy the data associated " "with the sampled instruction came from. This is available only if the " "underlying hardware supports this feature." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:712 #, no-wrap msgid "B (since Linux 3.12)" msgstr "" #. commit ff3d527cebc1fa3707c617bfe9e74f53fcfb0955 #. type: Plain text #: build/C/man2/perf_event_open.2:720 msgid "" "Places the B value in a fixed position in the record, either at " "the beginning (for sample events) or at the end (if a non-sample event)." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:732 msgid "" "This was necessary because a sample stream may have records from various " "different event sources with different I settings. Parsing the " "event stream properly was not possible because the format of the record was " "needed to find B, but the format could not be found without " "knowing what event the sample belonged to (causing a circular dependency)." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:742 msgid "" "The B setting makes the event stream always parsable " "by putting B in a fixed location, even though it means having " "duplicate B values in records." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:742 #, no-wrap msgid "B (since Linux 3.13)" msgstr "" #. commit fdfbbd07e91f8fe387140776f3fd94605f0c89e5 #. type: Plain text #: build/C/man2/perf_event_open.2:747 msgid "" "Records reasons for transactional memory abort events (for example, from " "Intel TSX transactional memory support)." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:755 msgid "" "The I setting must be greater than 0 and a transactional memory " "abort event must be measured or no values will be recorded. Also note that " "some perf_event measurements, such as sampled cycle counting, may cause " "extraneous aborts (by causing an interrupt during a transaction)." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:756 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:763 msgid "" "This field specifies the format of the data returned by B(2) on a " "B() file descriptor." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:764 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:771 msgid "" "Adds the 64-bit I field. This can be used to calculate " "estimated totals if the PMU is overcommitted and multiplexing is happening." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:771 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:778 msgid "" "Adds the 64-bit I field. This can be used to calculate " "estimated totals if the PMU is overcommitted and multiplexing is happening." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:778 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:781 msgid "Adds a 64-bit unique value that corresponds to the event group." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:781 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:784 msgid "Allows all counter values in an event group to be read with one read." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:785 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:795 msgid "" "The I bit specifies whether the counter starts out disabled or " "enabled. If disabled, the event can later be enabled by B(2), " "B(2), or I." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:806 msgid "" "When creating an event group, typically the group leader is initialized with " "I set to 1 and any child events are initialized with I " "set to 0. Despite I being 0, the child events will not start " "until the group leader is enabled." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:806 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:815 msgid "" "The I bit specifies that this counter should count events of child " "tasks as well as the task specified. This applies only to new children, not " "to any existing children at the time the counter is created (nor to any new " "children of existing children)." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:820 msgid "" "Inherit does not work for some combinations of Is, such as " "B." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:820 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:833 msgid "" "The I bit specifies that the counter should always be on the CPU if " "at all possible. It applies only to hardware counters and only to group " "leaders. If a pinned counter cannot be put onto the CPU (e.g., because " "there are not enough hardware counters or because of a conflict with some " "other event), then the counter goes into an 'error' state, where reads " "return end-of-file (i.e., B(2) returns 0) until the counter is " "subsequently enabled or disabled." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:833 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:842 msgid "" "The I bit specifies that when this counter's group is on the CPU, " "it should be the only group using the CPU's counters. In the future this " "may allow monitoring programs to support PMU features that need to run alone " "so that they do not disrupt other hardware counters." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:849 msgid "" "Note that many unexpected situations may prevent events with the " "I bit set from ever running. This includes any users running a " "system-wide measurement as well as any kernel use of the performance " "counters (including the commonly enabled NMI Watchdog Timer interface)." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:849 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:852 msgid "If this bit is set, the count excludes events that happen in user space." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:852 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:855 msgid "If this bit is set, the count excludes events that happen in kernel-space." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:855 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:863 msgid "" "If this bit is set, the count excludes events that happen in the " "hypervisor. This is mainly for PMUs that have built-in support for handling " "this (such as POWER). Extra support is needed for handling hypervisor " "measurements on most machines." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:863 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:866 msgid "If set, don't count when the CPU is idle." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:866 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:880 msgid "" "The I bit enables generation of B samples for every " "B(2) call that has B set. This allows tools to notice new " "executable code being mapped into a program (dynamic shared libraries for " "example) so that addresses can be mapped back to the original code." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:880 build/C/man2/perf_event_open.2:1761 #, no-wrap msgid "I" msgstr "" #. commit 82b897782d10fcc4930c9d4a15b175348fdd2871 #. type: Plain text #: build/C/man2/perf_event_open.2:899 msgid "" "The I bit enables tracking of process command name as modified by the " "B(2) and B(PR_SET_NAME) system calls as well as writing to " "I. If the I flag is also successfully set " "(possible since Linux 3.16), then the misc flag " "B can be used to differentiate the B(2) " "case from the others." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:899 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:906 msgid "" "If this bit is set, then I not I is used " "when setting up the sampling interval." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:906 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:913 msgid "" "This bit enables saving of event counts on context switch for inherited " "tasks. This is meaningful only if the I field is set." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:913 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:918 msgid "" "If this bit is set, a counter is automatically enabled after a call to " "B(2)." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:918 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:922 msgid "" "If this bit is set, then fork/exit notifications are included in the ring " "buffer." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:922 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:930 msgid "" "If set, have an overflow notification happen when we cross the " "I boundary. Otherwise, overflow notifications happen " "after I samples." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:930 #, no-wrap msgid "I (since Linux 2.6.35)" msgstr "" #. commit ab608344bcbde4f55ec4cd911b686b0ce3eae076 #. type: Plain text #: build/C/man2/perf_event_open.2:941 msgid "" "This controls the amount of skid. Skid is how many instructions execute " "between an event of interest happening and the kernel being able to stop and " "record the event. Smaller skid is better and allows more accurate reporting " "of which events correspond to which instructions, but hardware is often " "limited with how small this can be." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:943 msgid "The values of this are the following:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:944 #, no-wrap msgid "0 -" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:948 msgid "B can have arbitrary skid." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:948 #, no-wrap msgid "1 -" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:952 msgid "B must have constant skid." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:952 #, no-wrap msgid "2 -" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:956 msgid "B requested to have 0 skid." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:956 #, no-wrap msgid "3 -" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:962 msgid "B must have 0 skid. See also B." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:963 #, no-wrap msgid "I (since Linux 2.6.36)" msgstr "" #. commit 3af9e859281bda7eb7c20b51879cf43aa788ac2e #. type: Plain text #: build/C/man2/perf_event_open.2:976 msgid "" "The counterpart of the I field. This enables generation of " "B samples for B(2) calls that do not have " "B set (for example data and SysV shared memory)." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:976 #, no-wrap msgid "I (since Linux 2.6.38)" msgstr "" #. commit c980d1091810df13f21aabbce545fd98f545bbf7 #. type: Plain text #: build/C/man2/perf_event_open.2:985 msgid "" "If set, then TID, TIME, ID, STREAM_ID, and CPU can additionally be included " "in non-Bs if the corresponding I is " "selected." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:993 msgid "" "If B is specified, then an additional ID value is " "included as the last value to ease parsing the record stream. This may lead " "to the I value appearing twice." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:995 msgid "The layout is described by this pseudo-structure:" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1005 #, no-wrap msgid "" "struct sample_id {\n" " { u32 pid, tid; } /* if PERF_SAMPLE_TID set */\n" " { u64 time; } /* if PERF_SAMPLE_TIME set */\n" " { u64 id; } /* if PERF_SAMPLE_ID set */\n" " { u64 stream_id;} /* if PERF_SAMPLE_STREAM_ID set */\n" " { u32 cpu, res; } /* if PERF_SAMPLE_CPU set */\n" " { u64 id; } /* if PERF_SAMPLE_IDENTIFIER set */\n" "};\n" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1006 #, no-wrap msgid "I (since Linux 3.2)" msgstr "" #. commit a240f76165e6255384d4bdb8139895fac7988799 #. type: Plain text #: build/C/man2/perf_event_open.2:1010 msgid "Do not measure time spent in VM host." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1010 #, no-wrap msgid "I (since Linux 3.2)" msgstr "" #. commit a240f76165e6255384d4bdb8139895fac7988799 #. type: Plain text #: build/C/man2/perf_event_open.2:1014 msgid "Do not measure time spent in VM guest." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1014 #, no-wrap msgid "I (since Linux 3.7)" msgstr "" #. commit d077526485d5c9b12fe85d0b2b3b7041e6bc5f91 #. type: Plain text #: build/C/man2/perf_event_open.2:1018 msgid "Do not include kernel callchains." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1018 #, no-wrap msgid "I (since Linux 3.7)" msgstr "" #. commit d077526485d5c9b12fe85d0b2b3b7041e6bc5f91 #. type: Plain text #: build/C/man2/perf_event_open.2:1022 msgid "Do not include user callchains." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1022 #, no-wrap msgid "I (since Linux 3.16)" msgstr "" #. commit 13d7a2410fa637f450a29ecb515ac318ee40c741 #. This is tricky; was committed during 3.12 development #. but right before release was disabled. #. So while you could select mmap2 starting with 3.12 #. it did not work until 3.16 #. commit a5a5ba72843dd05f991184d6cb9a4471acce1005 #. type: Plain text #: build/C/man2/perf_event_open.2:1035 msgid "" "Generate an extended executable mmap record that contains enough additional " "information to uniquely identify shared mappings. The I flag must " "also be set for this to work." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1035 #, no-wrap msgid "I (since Linux 3.16)" msgstr "" #. commit 82b897782d10fcc4930c9d4a15b175348fdd2871 #. type: Plain text #: build/C/man2/perf_event_open.2:1051 msgid "" "This is purely a feature-detection flag, it does not change kernel " "behavior. If this flag can successfully be set, then, when I is " "enabled, the B flag will be set in the I " "field of a comm record header if the rename event being reported was caused " "by a call to B(2). This allows tools to distinguish between the " "various types of process renaming." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1051 #, no-wrap msgid "I, I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1061 msgid "" "This union sets how many samples (I) or bytes " "(I) happen before an overflow notification happens. " "Which one is used is selected by the I bit flag." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1071 msgid "" "I counts only B record types. To receive " "overflow notification for all B types choose watermark and set " "I to 1." msgstr "" #. commit f506b3dc0ec454a16d40cab9ee5d75435b39dc50 #. type: Plain text #: build/C/man2/perf_event_open.2:1077 msgid "" "Prior to Linux 3.0 setting I to 0 resulted in no overflow " "notifications; more recent kernels treat 0 the same as 1." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1077 #, no-wrap msgid "I (since Linux 2.6.33)" msgstr "" #. commit 24f1e32c60c45c89a997c73395b69c8af6f0a84e #. type: Plain text #: build/C/man2/perf_event_open.2:1082 msgid "This chooses the breakpoint type. It is one of:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1083 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1086 msgid "No breakpoint." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1086 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1089 msgid "Count when we read the memory location." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1089 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1092 msgid "Count when we write the memory location." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1092 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1095 msgid "Count when we read or write the memory location." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1095 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1098 msgid "Count when we execute code at the memory location." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1107 msgid "" "The values can be combined via a bitwise or, but the combination of " "B or B with B is not " "allowed." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1108 #, no-wrap msgid "I (since Linux 2.6.33)" msgstr "" #. commit 24f1e32c60c45c89a997c73395b69c8af6f0a84e #. type: Plain text #: build/C/man2/perf_event_open.2:1116 msgid "" "I address of the breakpoint. For execution breakpoints this is the " "memory address of the instruction of interest; for read and write " "breakpoints it is the memory address of the memory location of interest." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1116 #, no-wrap msgid "I (since Linux 2.6.39)" msgstr "" #. commit a7e3ed1e470116c9d12c2f778431a481a6be8ab6 #. type: Plain text #: build/C/man2/perf_event_open.2:1124 msgid "" "I is used for setting events that need an extra register or " "otherwise do not fit in the regular config field. Raw OFFCORE_EVENTS on " "Nehalem/Westmere/SandyBridge use this field on 3.3 and later kernels." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1124 #, no-wrap msgid "I (since Linux 2.6.33)" msgstr "" #. commit 24f1e32c60c45c89a997c73395b69c8af6f0a84e #. type: Plain text #: build/C/man2/perf_event_open.2:1139 msgid "" "I is the length of the breakpoint being measured if I is " "B. Options are B, " "B, B, B. For " "an execution breakpoint, set this to I." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1139 #, no-wrap msgid "I (since Linux 2.6.39)" msgstr "" #. commit a7e3ed1e470116c9d12c2f778431a481a6be8ab6 #. type: Plain text #: build/C/man2/perf_event_open.2:1147 msgid "I is a further extension of the I field." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1147 #, no-wrap msgid "I (since Linux 3.4)" msgstr "" #. commit bce38cd53e5ddba9cb6d708c4ef3d04a4016ec7e #. type: Plain text #: build/C/man2/perf_event_open.2:1154 msgid "" "If B is enabled, then this specifies what branches " "to include in the branch record." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1160 msgid "" "The first part of the value is the privilege level, which is a combination " "of one of the following values. If the user does not set privilege level " "explicitly, the kernel will use the event's privilege level. Event and " "branch privilege levels do not have to match." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1161 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1164 msgid "Branch target is in user space." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1164 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1167 msgid "Branch target is in kernel space." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1167 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1170 msgid "Branch target is in hypervisor." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1170 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1173 msgid "A convenience value that is the three preceding values ORed together." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1177 msgid "" "In addition to the privilege value, at least one or more of the following " "bits must be set." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1178 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1181 msgid "Any branch type." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1181 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1184 msgid "Any call branch." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1184 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1187 msgid "Any return branch." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1187 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1190 msgid "Indirect calls." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1190 #, no-wrap msgid "B (since Linux 3.16)" msgstr "" #. commit bac52139f0b7ab31330e98fd87fc5a2664951050 #. type: Plain text #: build/C/man2/perf_event_open.2:1194 msgid "Conditional branches." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1194 #, no-wrap msgid "B (since Linux 3.11)" msgstr "" #. commit 135c5612c460f89657c4698fe2ea753f6f667963 #. type: Plain text #: build/C/man2/perf_event_open.2:1198 msgid "Transactional memory aborts." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1198 #, no-wrap msgid "B (since Linux 3.11)" msgstr "" #. commit 135c5612c460f89657c4698fe2ea753f6f667963 #. type: Plain text #: build/C/man2/perf_event_open.2:1202 msgid "Branch in transactional memory transaction." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1202 #, no-wrap msgid "B (since Linux 3.11)" msgstr "" #. commit 135c5612c460f89657c4698fe2ea753f6f667963 #. type: Plain text #: build/C/man2/perf_event_open.2:1206 msgid "Branch not in transactional memory transaction." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1208 #, no-wrap msgid "I (since Linux 3.7)" msgstr "" #. commit 4018994f3d8785275ef0e7391b75c3462c029e56 #. type: Plain text #: build/C/man2/perf_event_open.2:1215 msgid "" "This bit mask defines the set of user CPU registers to dump on samples. The " "layout of the register mask is architecture-specific and described in the " "kernel header I." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1215 #, no-wrap msgid "I (since Linux 3.7)" msgstr "" #. commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 #. type: Plain text #: build/C/man2/perf_event_open.2:1221 msgid "" "This defines the size of the user stack to dump if B " "is specified." msgstr "" #. type: SS #: build/C/man2/perf_event_open.2:1221 #, no-wrap msgid "Reading results" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1231 msgid "" "Once a B() file descriptor has been opened, the values of " "the events can be read from the file descriptor. The values that are there " "are specified by the I field in the I structure at open " "time." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1236 msgid "" "If you attempt to read into a buffer that is not big enough to hold the data " "B is returned" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1238 msgid "Here is the layout of the data returned by a read:" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1242 msgid "" "If B was specified to allow reading all events in a group " "at once:" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1254 #, no-wrap msgid "" "struct read_format {\n" " u64 nr; /* The number of events */\n" " u64 time_enabled; /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n" " u64 time_running; /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n" " struct {\n" " u64 value; /* The value of the event */\n" " u64 id; /* if PERF_FORMAT_ID */\n" " } values[nr];\n" "};\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1262 msgid "If B was I specified:" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1271 #, no-wrap msgid "" "struct read_format {\n" " u64 value; /* The value of the event */\n" " u64 time_enabled; /* if PERF_FORMAT_TOTAL_TIME_ENABLED */\n" " u64 time_running; /* if PERF_FORMAT_TOTAL_TIME_RUNNING */\n" " u64 id; /* if PERF_FORMAT_ID */\n" "};\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1275 msgid "The values read are as follows:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1275 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1281 msgid "" "The number of events in this file descriptor. Only available if " "B was specified." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1281 #, no-wrap msgid "I, I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1293 msgid "" "Total time the event was enabled and running. Normally these are the same. " "If more events are started, then available counter slots on the PMU, then " "multiplexing happens and events run only part of the time. In that case, " "the I and I