# 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: 2014-04-24 00:51+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:26 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:44 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:26 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:44 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:27 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:45 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:29 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:47 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:68 build/C/man2/get_robust_list.2:44 build/C/man2/getunwind.2:40 build/C/man2/kexec_load.2:39 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:50 build/C/man2/ptrace.2:54 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:214 build/C/man2/get_robust_list.2:77 build/C/man2/getunwind.2:81 build/C/man2/kexec_load.2:114 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:2371 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:209 build/C/man2/ptrace.2:1853 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:127 build/C/man2/tee.2:85 build/C/man2/vm86.2:54 build/C/man2/vmsplice.2:113 #, 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:239 build/C/man2/get_robust_list.2:84 build/C/man2/getunwind.2:88 build/C/man2/kexec_load.2:121 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:2377 build/C/man2/personality.2:69 build/C/man2/pivot_root.2:105 build/C/man2/process_vm_readv.2:229 build/C/man2/ptrace.2:1868 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:142 build/C/man2/tee.2:100 build/C/man2/vm86.2:59 build/C/man2/vmsplice.2:122 #, no-wrap msgid "ERRORS" msgstr "" #. type: TP #: build/C/man2/arch_prctl.2:89 build/C/man2/futex.2:254 build/C/man2/get_robust_list.2:111 build/C/man2/lookup_dcookie.2:51 build/C/man2/modify_ldt.2:109 build/C/man2/perf_event_open.2:2423 build/C/man2/process_vm_readv.2:251 build/C/man2/process_vm_readv.2:256 build/C/man2/ptrace.2:1872 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:266 build/C/man2/get_robust_list.2:88 build/C/man2/kexec_load.2:126 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:2428 build/C/man2/personality.2:70 build/C/man2/pivot_root.2:114 build/C/man2/process_vm_readv.2:230 build/C/man2/process_vm_readv.2:241 build/C/man2/process_vm_readv.2:245 build/C/man2/ptrace.2:1883 build/C/man2/quotactl.2:434 build/C/man2/quotactl.2:501 build/C/man2/sendfile.2:128 build/C/man2/splice.2:147 build/C/man2/tee.2:101 build/C/man2/vmsplice.2:127 #, 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:98 build/C/man2/kexec_load.2:133 build/C/man2/lookup_dcookie.2:65 build/C/man2/pciconfig_read.2:105 build/C/man2/perf_event_open.2:2495 build/C/man2/pivot_root.2:120 build/C/man2/process_vm_readv.2:267 build/C/man2/ptrace.2:1893 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:301 build/C/man2/getunwind.2:96 build/C/man2/kexec_load.2:142 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:2516 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:279 build/C/man2/ptrace.2:1911 build/C/man2/sendfile.2:148 build/C/man2/set_tid_address.2:97 build/C/man2/splice.2:170 build/C/man2/tee.2:119 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:143 #, 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:303 build/C/man2/get_robust_list.2:119 build/C/man2/getunwind.2:99 build/C/man2/kexec_load.2:144 build/C/man2/lookup_dcookie.2:81 build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:2521 build/C/man2/perfmonctl.2:202 build/C/man2/pivot_root.2:131 build/C/man2/process_vm_readv.2:281 build/C/man2/ptrace.2:1913 build/C/man2/sendfile.2:155 build/C/man2/splice.2:172 build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145 #, 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:317 build/C/man2/get_robust_list.2:128 build/C/man2/getunwind.2:111 build/C/man2/kexec_load.2:159 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:2652 build/C/man2/perfmonctl.2:205 build/C/man2/pivot_root.2:143 build/C/man2/process_vm_readv.2:331 build/C/man2/ptrace.2:2079 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:226 build/C/man2/tee.2:197 build/C/man2/vmsplice.2:154 #, 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:331 build/C/man2/get_robust_list.2:137 build/C/man2/getunwind.2:113 build/C/man2/kexec_load.2:162 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:2658 build/C/man2/perfmonctl.2:209 build/C/man2/personality.2:77 build/C/man2/pivot_root.2:149 build/C/man2/process_vm_readv.2:334 build/C/man2/ptrace.2:2093 build/C/man2/quotactl.2:512 build/C/man2/sendfile.2:203 build/C/man2/set_tid_address.2:102 build/C/man2/splice.2:230 build/C/man2/tee.2:200 build/C/man2/vm86.2:76 build/C/man2/vmsplice.2:157 #, no-wrap msgid "COLOPHON" msgstr "" #. type: Plain text #: build/C/man2/arch_prctl.2:152 build/C/man2/futex.2:338 build/C/man2/get_robust_list.2:144 build/C/man2/getunwind.2:120 build/C/man2/kexec_load.2:169 build/C/man2/lookup_dcookie.2:95 build/C/man2/modify_ldt.2:145 build/C/man2/nfsservctl.2:67 build/C/man2/outb.2:106 build/C/man2/pciconfig_read.2:123 build/C/man2/perf_event_open.2:2665 build/C/man2/perfmonctl.2:216 build/C/man2/personality.2:84 build/C/man2/pivot_root.2:156 build/C/man2/process_vm_readv.2:341 build/C/man2/ptrace.2:2100 build/C/man2/quotactl.2:519 build/C/man2/sendfile.2:210 build/C/man2/set_tid_address.2:109 build/C/man2/splice.2:237 build/C/man2/tee.2:207 build/C/man2/vm86.2:83 build/C/man2/vmsplice.2:164 msgid "" "This page is part of release 3.65 of the Linux I project. A " "description of the project, and information about reporting bugs, 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 "2013-12-12" 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:84 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:91 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:98 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:106 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:108 msgid "Five operations are currently defined:" msgstr "" #. type: TP #: build/C/man2/futex.2:108 build/C/man2/futex.2:221 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:131 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:139 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:139 build/C/man2/futex.2:227 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:150 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:156 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:156 #, 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:172 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:177 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:181 msgid "" "Because it was inherently racy, B has been removed from Linux " "2.6.26 onward." msgstr "" #. type: TP #: build/C/man2/futex.2:181 #, no-wrap msgid "B (since Linux 2.5.70)" msgstr "" #. type: Plain text #: build/C/man2/futex.2:196 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:196 #, no-wrap msgid "B (since Linux 2.6.7)" msgstr "" #. type: Plain text #: build/C/man2/futex.2:214 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:221 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:227 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:230 build/C/man2/futex.2:236 build/C/man2/futex.2:239 msgid "Returns the number of processes woken up." msgstr "" #. type: TP #: build/C/man2/futex.2:230 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:233 msgid "Returns the new file descriptor associated with the futex." msgstr "" #. type: TP #: build/C/man2/futex.2:233 #, no-wrap msgid "B" msgstr "" #. type: TP #: build/C/man2/futex.2:236 #, no-wrap msgid "B" msgstr "" #. type: TP #: build/C/man2/futex.2:240 build/C/man2/perf_event_open.2:2399 build/C/man2/quotactl.2:486 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:243 msgid "No read access to futex memory." msgstr "" #. type: TP #: build/C/man2/futex.2:243 build/C/man2/sendfile.2:116 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:254 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:259 msgid "Error retrieving I information from user space." msgstr "" #. type: TP #: build/C/man2/futex.2:259 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:266 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:269 msgid "Invalid argument." msgstr "" #. type: TP #: build/C/man2/futex.2:269 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:272 msgid "The system limit on the total number of open files has been reached." msgstr "" #. type: TP #: build/C/man2/futex.2:272 build/C/man2/modify_ldt.2:126 build/C/man2/pciconfig_read.2:93 build/C/man2/perf_event_open.2:2481 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:276 msgid "Invalid operation specified in I." msgstr "" #. type: TP #: build/C/man2/futex.2:276 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:281 msgid "Timeout during the B operation." msgstr "" #. type: TP #: build/C/man2/futex.2:281 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/futex.2:291 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:291 build/C/man2/get_robust_list.2:115 build/C/man2/getunwind.2:94 build/C/man2/kexec_load.2:138 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:276 build/C/man2/sendfile.2:142 build/C/man2/set_tid_address.2:94 build/C/man2/splice.2:165 build/C/man2/tee.2:114 build/C/man2/vmsplice.2:138 #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: build/C/man2/futex.2:301 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:303 build/C/man2/kexec_load.2:144 build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:172 build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145 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:317 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:320 msgid "B(2), B(7)" msgstr "" #. type: Plain text #: build/C/man2/futex.2:323 msgid "" "I (proceedings " "of the Ottawa Linux Symposium 2002), online at" msgstr "" #. type: Plain text #: build/C/man2/futex.2:326 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:328 msgid "Futex example library, futex-*.tar.bz2 at" msgstr "" #. type: Plain text #: build/C/man2/futex.2:331 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/kexec_load.2:26 build/C/man2/modify_ldt.2:24 build/C/man2/pivot_root.2:10 #, no-wrap msgid "2012-07-13" 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:36 #, no-wrap msgid "" "B<#include Elinux/futex.hE>\n" "B<#include Esyscall.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:40 #, 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:44 msgid "I: There are no glibc wrappers for these system calls; see NOTES." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:49 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:65 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:77 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:84 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:88 msgid "The B() system call can fail with the following error:" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:94 msgid "" "I does not match the size of structure B " "expected by kernel." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:98 msgid "The B() system call can fail with the following errors:" msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:106 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:106 build/C/man2/perf_event_open.2:2508 build/C/man2/process_vm_readv.2:271 build/C/man2/ptrace.2:1906 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:111 msgid "No thread with the thread ID I could be found." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:115 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:119 msgid "" "These system calls were added in Linux 2.6.17. No library support is " "provided; use B(2)." msgstr "" #. type: Plain text #: build/C/man2/get_robust_list.2:124 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:128 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:131 msgid "B(2)" msgstr "" #. http://lwn.net/Articles/172149/ #. type: Plain text #: build/C/man2/get_robust_list.2:137 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 build/C/man2/perfmonctl.2:27 #, no-wrap msgid "2013-02-13" 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:40 build/C/man2/kexec_load.2:39 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/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 unwind table. 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:26 #, no-wrap msgid "KEXEC_LOAD" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:29 msgid "kexec_load - load a new kernel for later execution" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:31 msgid "B<#include Elinux/kexec.hE>" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:33 msgid "" "BIB<, unsigned long " ">IB<,>" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:36 msgid "B< struct kexec_segment *>IB<, unsigned long >IB<);>" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:44 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:50 msgid "" "The I argument is a mask whose high-order bits control the operation " "of the call. The following values can be specified in I:" msgstr "" #. type: TP #: build/C/man2/kexec_load.2:50 #, no-wrap msgid "B (since Linux 2.6.13)" msgstr "" #. FIXME figure out how this is really used #. type: Plain text #: build/C/man2/kexec_load.2:54 msgid "Execute the new kernel automatically on a system crash." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:54 #, no-wrap msgid "B (since Linux 2.6.27)" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:64 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:84 msgid "" "The low-order bits 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, and " "B. The architecture must be executable on the CPU of " "the system." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:98 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 I argument is an array of " "I structures which define the kernel layout:" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:107 #, 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 "" #. FIXME elaborate on the following: #. type: Plain text #: build/C/man2/kexec_load.2:114 msgid "" "The kernel image defined by I is copied from the calling process " "into previously reserved memory." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:121 msgid "" "On success, B() returns 0. On error, -1 is returned and " "I is set to indicate the error." msgstr "" #. type: TP #: build/C/man2/kexec_load.2:122 build/C/man2/pivot_root.2:110 build/C/man2/ptrace.2:1869 build/C/man2/quotactl.2:495 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:126 msgid "" "Another crash kernel is already being loaded or a crash kernel is already in " "use." msgstr "" #. KEXEC_SEGMENT_MAX == 16 #. type: Plain text #: build/C/man2/kexec_load.2:133 msgid "I is invalid; or I is too large" msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:138 msgid "The caller does not have the B capability." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:142 msgid "The B() system call first appeared in Linux 2.6.13." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:149 msgid "" "Currently, there is no glibc support for B(). Call it using " "B(2)." msgstr "" #. FIXME Andi submitted a patch for this. #. Check if it got accepted later. #. type: Plain text #: build/C/man2/kexec_load.2:156 msgid "" "The required constants are in the Linux kernel source file I, " "which is not currently exported to glibc. Therefore, these constants must " "be defined manually." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:159 msgid "" "This system call is available only if the kernel was configured with " "B." msgstr "" #. type: Plain text #: build/C/man2/kexec_load.2:162 msgid "B(2), B(2)" 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: TP #: build/C/man2/lookup_dcookie.2:61 build/C/man2/process_vm_readv.2:262 build/C/man2/sendfile.2:138 build/C/man2/splice.2:155 build/C/man2/tee.2:111 build/C/man2/vmsplice.2:135 #, no-wrap msgid "B" 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: 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 ? 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:1886 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:2460 #, 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:2488 #, 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 "2014-04-17" 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 "" #. type: Plain text #: build/C/man2/perf_event_open.2:150 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:150 #, no-wrap msgid "B" msgstr "" #. FIXME The following sentence is unclear #. FIXME So, why is it useful? #. type: Plain text #: build/C/man2/perf_event_open.2:157 msgid "" "This flag allows creating an event as part of an event group but having no " "group leader. It is unclear why this is useful." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:157 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:160 msgid "This flag reroutes the output from an event to the group leader." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:160 #, no-wrap msgid "B (since Linux 2.6.39)." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:183 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:188 msgid "" "The I structure provides detailed configuration information " "for the event being created." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:195 #, 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:200 #, 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:203 #, 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:229 #, 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" " __reserved_1 : 41;\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:234 #, 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:236 #, no-wrap msgid " __u32 bp_type; /* breakpoint type */\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:241 #, 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:251 #, 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:253 #, no-wrap msgid "};\n" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:259 msgid "" "The fields of the I structure are described in more detail " "below:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:259 build/C/man2/perf_event_open.2:1556 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:263 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:264 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:271 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:271 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:275 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:275 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:279 msgid "" "This indicates a tracepoint provided by the kernel tracepoint " "infrastructure." 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:285 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:285 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:289 msgid "" "This indicates a \"raw\" implementation-specific event in the I " "field." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:289 #, no-wrap msgid "B (since Linux 2.6.33)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:294 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:294 #, no-wrap msgid "dynamic PMU" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:313 msgid "" "Since Linux 2.6.39, 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:314 build/C/man2/perf_event_open.2:1504 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:323 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 "" #. type: Plain text #: build/C/man2/perf_event_open.2:338 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:338 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:349 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:355 msgid "" "The most significant bit (bit 63) of I signifies CPU-specific (raw) " "counter configuration data; if the most significant bit is unset, the next 7 " "bits are an event type and the rest of the bits are the event identifier." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:366 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:376 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:377 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:381 msgid "Total cycles. Be wary of what happens during CPU frequency scaling." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:381 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:386 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:386 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:393 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:393 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:400 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:400 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:405 msgid "" "Retired branch instructions. Prior to Linux 2.6.34, this used the wrong " "event on AMD processors." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:405 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:408 msgid "Mispredicted branch instructions." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:408 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:411 msgid "Bus cycles, which can be different from total cycles." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:411 #, no-wrap msgid "B (since Linux 3.0)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:414 msgid "Stalled cycles during issue." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:414 #, no-wrap msgid "B (since Linux 3.0)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:417 msgid "Stalled cycles during retirement." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:417 #, no-wrap msgid "B (since Linux 3.3)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:420 msgid "Total cycles; not affected by CPU frequency scaling." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:430 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:431 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:434 msgid "This reports the CPU clock, a high-resolution per-CPU timer." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:434 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:437 msgid "This reports a clock count specific to the task that is running." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:437 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:440 msgid "This reports the number of page faults." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:440 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:445 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:445 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:449 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:449 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:453 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:453 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:457 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:457 #, no-wrap msgid "B (since Linux 2.6.33)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:463 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:463 #, no-wrap msgid "B (since Linux 2.6.33)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:469 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:469 #, no-wrap msgid "B (since Linux 3.12)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:476 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:489 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:500 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:505 #, 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:510 msgid "where I is one of:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:511 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:514 msgid "for measuring Level 1 Data Cache" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:514 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:517 msgid "for measuring Level 1 Instruction Cache" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:517 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:520 msgid "for measuring Last-Level Cache" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:520 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:523 msgid "for measuring the Data TLB" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:523 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:526 msgid "for measuring the Instruction TLB" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:526 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:529 msgid "for measuring the branch prediction unit" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:529 #, no-wrap msgid "B (since Linux 3.0)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:532 msgid "for measuring local memory accesses" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:537 msgid "and I is one of" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:538 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:541 msgid "for read accesses" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:541 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:544 msgid "for write accesses" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:544 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:547 msgid "for prefetch accesses" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:552 msgid "and I is one of" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:553 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:556 msgid "to measure accesses" 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 "to measure misses" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:577 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:586 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:587 #, no-wrap msgid "I, I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:599 msgid "" "A \"sampling\" counter is one that generates an interrupt every N events, " "where N is given by I. A sampling counter has " "I E 0. When an overflow interrupt occurs, requested data " "is recorded in the mmap buffer. The I field controls what data " "is recorded on each interrupt." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:609 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:609 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:621 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:622 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:625 msgid "Records instruction pointer." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:625 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:628 msgid "Records the process and thread IDs." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:628 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:631 msgid "Records a timestamp." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:631 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:634 msgid "Records an address, if applicable." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:634 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:637 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:637 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:640 msgid "Records the callchain (stack backtrace)." 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 a unique ID for the opened event's group leader." 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 CPU number." 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 the current sampling period." 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:657 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:657 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:661 msgid "" "Records additional data, if applicable. Usually returned by tracepoint " "events." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:661 #, no-wrap msgid "B (since Linux 3.4)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:666 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:670 msgid "" "See the I field for how to filter which branches are " "reported." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:670 #, no-wrap msgid "B (since Linux 3.7)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:674 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:674 #, no-wrap msgid "B (since Linux 3.7)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:677 msgid "Records the user level stack, allowing stack unwinding." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:677 #, no-wrap msgid "B (since Linux 3.10)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:683 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:683 #, no-wrap msgid "B (since Linux 3.10)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:689 msgid "" "Records the data source: where in the memory hierarchy the data associated " "with the sampled instruction came from. This is only available if the " "underlying hardware supports this feature." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:689 #, no-wrap msgid "B (since Linux 3.12)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:696 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:708 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:718 msgid "" "This new 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:718 #, no-wrap msgid "B (Since Linux 3.13)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:722 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:730 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:731 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:738 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:739 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:746 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:746 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:753 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:753 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:756 msgid "Adds a 64-bit unique value that corresponds to the event group." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:756 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:759 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:760 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:770 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:781 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:781 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:790 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:795 msgid "" "Inherit does not work for some combinations of Is, such as " "B." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:795 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:808 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:808 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:817 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:824 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:824 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:827 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:827 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:830 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:830 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:838 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:838 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:841 msgid "If set, don't count when the CPU is idle." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:841 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:855 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:855 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:866 msgid "" "The I bit enables tracking of process command name as modified by the " "B(2) and B(PR_SET_NAME) system calls. Unfortunately for " "tools, there is no way to distinguish one system call versus the other." 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:873 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:873 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:880 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:880 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:885 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:885 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:889 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:889 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:897 msgid "" "If set, have a sampling interrupt happen when we cross the " "I boundary. Otherwise interrupts happen after " "I samples." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:897 #, no-wrap msgid "I (since Linux 2.6.35)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:907 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:909 msgid "The values of this are the following:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:910 #, no-wrap msgid "0 -" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:914 msgid "B can have arbitrary skid." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:914 #, no-wrap msgid "1 -" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:918 msgid "B must have constant skid." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:918 #, no-wrap msgid "2 -" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:922 msgid "B requested to have 0 skid." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:922 #, no-wrap msgid "3 -" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:928 msgid "B must have 0 skid. See also B." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:929 #, no-wrap msgid "I (since Linux 2.6.36)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:941 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:941 #, no-wrap msgid "I (since Linux 2.6.38)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:949 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:957 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:959 msgid "The layout is described by this pseudo-structure:" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:969 #, 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:970 #, no-wrap msgid "I (since Linux 3.2)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:973 msgid "Do not measure time spent in VM host." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:973 #, no-wrap msgid "I (since Linux 3.2)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:976 msgid "Do not measure time spent in VM guest." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:976 #, no-wrap msgid "I (since Linux 3.7)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:979 msgid "Do not include kernel callchains." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:979 #, no-wrap msgid "I (since Linux 3.7)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:982 msgid "Do not include user callchains." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:982 #, no-wrap msgid "I, I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:992 msgid "" "This union sets how many samples (I) or bytes " "(I) happen before an overflow signal happens. Which one " "is used is selected by the I bitflag." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1002 msgid "" "I only counts B record types. To receive " "a signal for every incoming B type set I to " "1." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1002 #, no-wrap msgid "I (since Linux 2.6.33)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1006 msgid "This chooses the breakpoint type. It is one of:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1007 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1010 msgid "No breakpoint." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1010 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1013 msgid "Count when we read the memory location." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1013 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1016 msgid "Count when we write the memory location." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1016 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1019 msgid "Count when we read or write the memory location." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1019 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1022 msgid "Count when we execute code at the memory location." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1031 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:1032 #, no-wrap msgid "I (since Linux 2.6.33)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1039 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:1039 #, no-wrap msgid "I (since Linux 2.6.39)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1046 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:1046 #, no-wrap msgid "I (since Linux 2.6.33)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1060 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:1060 #, no-wrap msgid "I (since Linux 2.6.39)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1067 msgid "I is a further extension of the I field." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1067 #, no-wrap msgid "I (since Linux 3.4)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1073 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:1079 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:1080 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1083 msgid "Branch target is in user space." 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 "Branch target is in kernel space." 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 "Branch target is in hypervisor." 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 "A convenience value that is the three preceding values ORed together." msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1096 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:1097 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1100 msgid "Any branch type." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1100 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1103 msgid "Any call branch." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1103 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1106 msgid "Any return branch." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1106 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1109 msgid "Indirect calls." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1109 #, no-wrap msgid "B (since Linux 3.11)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1112 msgid "Transactional memory aborts." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1112 #, no-wrap msgid "B (since Linux 3.11)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1115 msgid "Branch in transactional memory transaction." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1115 #, no-wrap msgid "B (since Linux 3.11)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1118 msgid "Branch not in transactional memory transaction." msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1120 #, no-wrap msgid "I (since Linux 3.7)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1126 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:1126 #, no-wrap msgid "I (since Linux 3.7)" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1131 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:1131 #, no-wrap msgid "Reading results" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1141 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:1146 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:1148 msgid "Here is the layout of the data returned by a read:" msgstr "" #. type: IP #: build/C/man2/perf_event_open.2:1148 build/C/man2/perf_event_open.2:1166 build/C/man2/ptrace.2:1692 build/C/man2/ptrace.2:1702 build/C/man2/ptrace.2:1710 build/C/man2/ptrace.2:1716 build/C/man2/ptrace.2:1845 #, no-wrap msgid "*" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1152 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:1164 #, 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:1172 msgid "If B was I specified:" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1181 #, 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:1185 msgid "The values read are as follows:" msgstr "" #. type: TP #: build/C/man2/perf_event_open.2:1185 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1191 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:1191 #, no-wrap msgid "I, I" msgstr "" #. type: Plain text #: build/C/man2/perf_event_open.2:1203 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