1 .\" Copyright (c) 2015, 2016 IBM Corporation.
3 .\" SPDX-License-Identifier: Linux-man-pages-copyleft
5 .TH __ppc_set_ppr_med 3 (date) "Linux man-pages (unreleased)"
8 __ppc_set_ppr_med, __ppc_set_ppr_very_low, __ppc_set_ppr_low,
9 __ppc_set_ppr_med_low, __ppc_set_ppr_med_high \-
10 Set the Program Priority Register
13 .RI ( libc ", " \-lc )
16 .B #include <sys/platform/ppc.h>
18 .B void __ppc_set_ppr_med(void);
19 .B void __ppc_set_ppr_very_low(void);
20 .B void __ppc_set_ppr_low(void);
21 .B void __ppc_set_ppr_med_low(void);
22 .B void __ppc_set_ppr_med_high(void);
25 These functions provide access to the
26 .I Program Priority Register
27 (PPR) on the Power architecture.
29 The PPR is a 64-bit register that controls the program's priority.
30 By adjusting the PPR value the programmer may improve system
31 throughput by causing system resources to be used more
32 efficiently, especially in contention situations.
33 The available unprivileged states are covered by the following functions:
35 .BR __ppc_set_ppr_med ()
36 sets the Program Priority Register value to
40 .BR __ppc_set_ppr_very_low ()
41 sets the Program Priority Register value to
44 .BR __ppc_set_ppr_low ()
45 sets the Program Priority Register value to
48 .BR __ppc_set_ppr_med_low ()
49 sets the Program Priority Register value to
54 may also be set during certain time intervals by problem-state (unprivileged)
55 programs, with the following function:
57 .BR __ppc_set_ppr_med_high ()
58 sets the Program Priority to
61 If the program priority is medium high when the time interval expires or if an
62 attempt is made to set the priority to medium high when it is not allowed, the
63 priority is set to medium.
66 .BR __ppc_set_ppr_med (),
67 .BR __ppc_set_ppr_low (),
69 .BR __ppc_set_ppr_med_low ()
70 are provided by glibc since version 2.18.
72 .BR __ppc_set_ppr_very_low ()
74 .BR __ppc_set_ppr_med_high ()
75 first appeared in glibc in version 2.23.
77 For an explanation of the terms used in this section, see
85 Interface Attribute Value
87 .BR __ppc_set_ppr_med (),
88 .BR __ppc_set_ppr_very_low (),
89 .BR __ppc_set_ppr_low (),
90 .BR __ppc_set_ppr_med_low (),
91 .BR __ppc_set_ppr_med_high ()
92 T} Thread safety MT-Safe
98 These functions are nonstandard GNU extensions.
101 .BR __ppc_set_ppr_very_low ()
103 .BR __ppc_set_ppr_med_high ()
105 .I <sys/platform/ppc.h>
109 Availability of these functions can be tested using
110 .BR "#ifdef _ARCH_PWR8" .
114 .I Power ISA, Book\~II - Section\ 3.1 (Program Priority Registers)