| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/lib/nproc.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||
| 2 | - | |||||||||||||||||||
| 3 | - | |||||||||||||||||||
| 4 | - | |||||||||||||||||||
| 5 | - | |||||||||||||||||||
| 6 | - | |||||||||||||||||||
| 7 | - | |||||||||||||||||||
| 8 | - | |||||||||||||||||||
| 9 | - | |||||||||||||||||||
| 10 | - | |||||||||||||||||||
| 11 | - | |||||||||||||||||||
| 12 | - | |||||||||||||||||||
| 13 | - | |||||||||||||||||||
| 14 | - | |||||||||||||||||||
| 15 | - | |||||||||||||||||||
| 16 | - | |||||||||||||||||||
| 17 | - | |||||||||||||||||||
| 18 | - | |||||||||||||||||||
| 19 | - | |||||||||||||||||||
| 20 | - | |||||||||||||||||||
| 21 | - | |||||||||||||||||||
| 22 | - | |||||||||||||||||||
| 23 | - | |||||||||||||||||||
| 24 | - | |||||||||||||||||||
| 25 | - | |||||||||||||||||||
| 26 | - | |||||||||||||||||||
| 27 | - | |||||||||||||||||||
| 28 | static unsigned long | - | ||||||||||||||||||
| 29 | num_processors_via_affinity_mask (void) | - | ||||||||||||||||||
| 30 | { | - | ||||||||||||||||||
| 31 | { | - | ||||||||||||||||||
| 32 | cpu_set_t set; | - | ||||||||||||||||||
| 33 | - | |||||||||||||||||||
| 34 | if (sched_getaffinity (0, sizeof (set), &set) == 0
| 0-714 | ||||||||||||||||||
| 35 | { | - | ||||||||||||||||||
| 36 | unsigned long count; | - | ||||||||||||||||||
| 37 | - | |||||||||||||||||||
| 38 | - | |||||||||||||||||||
| 39 | - | |||||||||||||||||||
| 40 | count = | - | ||||||||||||||||||
| 41 | __sched_cpucount (sizeof (cpu_set_t), | - | ||||||||||||||||||
| 42 | &set | - | ||||||||||||||||||
| 43 | ) | - | ||||||||||||||||||
| 44 | ; | - | ||||||||||||||||||
| 45 | if (count > 0
| 0-714 | ||||||||||||||||||
| 46 | return executed 714 times by 2 tests: count;return count;Executed by:
executed 714 times by 2 tests: return count;Executed by:
| 714 | ||||||||||||||||||
| 47 | } never executed: end of block | 0 | ||||||||||||||||||
| 48 | } | - | ||||||||||||||||||
| 49 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 50 | } | - | ||||||||||||||||||
| 51 | - | |||||||||||||||||||
| 52 | - | |||||||||||||||||||
| 53 | - | |||||||||||||||||||
| 54 | - | |||||||||||||||||||
| 55 | static unsigned long int | - | ||||||||||||||||||
| 56 | num_processors_ignoring_omp (enum nproc_query query) | - | ||||||||||||||||||
| 57 | { | - | ||||||||||||||||||
| 58 | if (query == NPROC_CURRENT
| 2-714 | ||||||||||||||||||
| 59 | { | - | ||||||||||||||||||
| 60 | - | |||||||||||||||||||
| 61 | { | - | ||||||||||||||||||
| 62 | unsigned long nprocs = num_processors_via_affinity_mask (); | - | ||||||||||||||||||
| 63 | - | |||||||||||||||||||
| 64 | if (nprocs > 0
| 0-714 | ||||||||||||||||||
| 65 | return executed 714 times by 2 tests: nprocs;return nprocs;Executed by:
executed 714 times by 2 tests: return nprocs;Executed by:
| 714 | ||||||||||||||||||
| 66 | } | - | ||||||||||||||||||
| 67 | - | |||||||||||||||||||
| 68 | - | |||||||||||||||||||
| 69 | { | - | ||||||||||||||||||
| 70 | - | |||||||||||||||||||
| 71 | long int nprocs = sysconf ( | - | ||||||||||||||||||
| 72 | _SC_NPROCESSORS_ONLN | - | ||||||||||||||||||
| 73 | ); | - | ||||||||||||||||||
| 74 | if (nprocs > 0
| 0 | ||||||||||||||||||
| 75 | return never executed: nprocs;return nprocs;never executed: return nprocs; | 0 | ||||||||||||||||||
| 76 | } | - | ||||||||||||||||||
| 77 | - | |||||||||||||||||||
| 78 | } never executed: end of block | 0 | ||||||||||||||||||
| 79 | else | - | ||||||||||||||||||
| 80 | { | - | ||||||||||||||||||
| 81 | - | |||||||||||||||||||
| 82 | { | - | ||||||||||||||||||
| 83 | - | |||||||||||||||||||
| 84 | long int nprocs = sysconf ( | - | ||||||||||||||||||
| 85 | _SC_NPROCESSORS_CONF | - | ||||||||||||||||||
| 86 | ); | - | ||||||||||||||||||
| 87 | - | |||||||||||||||||||
| 88 | - | |||||||||||||||||||
| 89 | - | |||||||||||||||||||
| 90 | - | |||||||||||||||||||
| 91 | - | |||||||||||||||||||
| 92 | - | |||||||||||||||||||
| 93 | - | |||||||||||||||||||
| 94 | if (nprocs == 1
| 0-2 | ||||||||||||||||||
| 95 | { | - | ||||||||||||||||||
| 96 | unsigned long nprocs_current = num_processors_via_affinity_mask (); | - | ||||||||||||||||||
| 97 | - | |||||||||||||||||||
| 98 | if (nprocs_current > 0
| 0 | ||||||||||||||||||
| 99 | nprocs = nprocs_current; never executed: nprocs = nprocs_current; | 0 | ||||||||||||||||||
| 100 | } never executed: end of block | 0 | ||||||||||||||||||
| 101 | - | |||||||||||||||||||
| 102 | - | |||||||||||||||||||
| 103 | if (nprocs > 0
| 0-2 | ||||||||||||||||||
| 104 | return executed 2 times by 1 test: nprocs;return nprocs;Executed by:
executed 2 times by 1 test: return nprocs;Executed by:
| 2 | ||||||||||||||||||
| 105 | } | - | ||||||||||||||||||
| 106 | - | |||||||||||||||||||
| 107 | } never executed: end of block | 0 | ||||||||||||||||||
| 108 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||
| 109 | } | - | ||||||||||||||||||
| 110 | - | |||||||||||||||||||
| 111 | - | |||||||||||||||||||
| 112 | - | |||||||||||||||||||
| 113 | static unsigned long int | - | ||||||||||||||||||
| 114 | parse_omp_threads (char const* threads) | - | ||||||||||||||||||
| 115 | { | - | ||||||||||||||||||
| 116 | unsigned long int ret = 0; | - | ||||||||||||||||||
| 117 | - | |||||||||||||||||||
| 118 | if (threads ==
| 29-1425 | ||||||||||||||||||
| 119 | ((void *)0)
| 29-1425 | ||||||||||||||||||
| 120 | ) | - | ||||||||||||||||||
| 121 | return executed 1425 times by 2 tests: ret;return ret;Executed by:
executed 1425 times by 2 tests: return ret;Executed by:
| 1425 | ||||||||||||||||||
| 122 | - | |||||||||||||||||||
| 123 | - | |||||||||||||||||||
| 124 | - | |||||||||||||||||||
| 125 | while (*
| 0-28 | ||||||||||||||||||
| 126 | threads++; never executed: threads++; | 0 | ||||||||||||||||||
| 127 | - | |||||||||||||||||||
| 128 | - | |||||||||||||||||||
| 129 | if (c_isdigit (*threads)
| 3-26 | ||||||||||||||||||
| 130 | { | - | ||||||||||||||||||
| 131 | char *endptr = | - | ||||||||||||||||||
| 132 | ((void *)0) | - | ||||||||||||||||||
| 133 | ; | - | ||||||||||||||||||
| 134 | unsigned long int value = strtoul (threads, &endptr, 10); | - | ||||||||||||||||||
| 135 | - | |||||||||||||||||||
| 136 | if (endptr !=
| 0-26 | ||||||||||||||||||
| 137 | ((void *)0)
| 0-26 | ||||||||||||||||||
| 138 | ) | - | ||||||||||||||||||
| 139 | { | - | ||||||||||||||||||
| 140 | while (*
| 0-17 | ||||||||||||||||||
| 141 | endptr++; never executed: endptr++; | 0 | ||||||||||||||||||
| 142 | if (*
| 9-17 | ||||||||||||||||||
| 143 | return executed 17 times by 1 test: value;return value;Executed by:
executed 17 times by 1 test: return value;Executed by:
| 17 | ||||||||||||||||||
| 144 | - | |||||||||||||||||||
| 145 | - | |||||||||||||||||||
| 146 | else if (*
| 3-6 | ||||||||||||||||||
| 147 | return executed 6 times by 1 test: value;return value;Executed by:
executed 6 times by 1 test: return value;Executed by:
| 6 | ||||||||||||||||||
| 148 | } executed 3 times by 1 test: end of blockExecuted by:
| 3 | ||||||||||||||||||
| 149 | } executed 3 times by 1 test: end of blockExecuted by:
| 3 | ||||||||||||||||||
| 150 | - | |||||||||||||||||||
| 151 | return executed 6 times by 1 test: ret;return ret;Executed by:
executed 6 times by 1 test: return ret;Executed by:
| 6 | ||||||||||||||||||
| 152 | } | - | ||||||||||||||||||
| 153 | - | |||||||||||||||||||
| 154 | unsigned long int | - | ||||||||||||||||||
| 155 | num_processors (enum nproc_query query) | - | ||||||||||||||||||
| 156 | { | - | ||||||||||||||||||
| 157 | unsigned long int omp_env_limit = | - | ||||||||||||||||||
| 158 | (0x7fffffffffffffffL * 2UL + 1UL) | - | ||||||||||||||||||
| 159 | ; | - | ||||||||||||||||||
| 160 | - | |||||||||||||||||||
| 161 | if (query == NPROC_CURRENT_OVERRIDABLE
| 2-727 | ||||||||||||||||||
| 162 | { | - | ||||||||||||||||||
| 163 | unsigned long int omp_env_threads; | - | ||||||||||||||||||
| 164 | - | |||||||||||||||||||
| 165 | - | |||||||||||||||||||
| 166 | omp_env_threads = parse_omp_threads (getenv ("OMP_NUM_THREADS")); | - | ||||||||||||||||||
| 167 | omp_env_limit = parse_omp_threads (getenv ("OMP_THREAD_LIMIT")); | - | ||||||||||||||||||
| 168 | if (! omp_env_limit
| 6-721 | ||||||||||||||||||
| 169 | omp_env_limit = executed 721 times by 2 tests: omp_env_limit = (0x7fffffffffffffffL * 2UL + 1UL) ;Executed by:
| 721 | ||||||||||||||||||
| 170 | (0x7fffffffffffffffL * 2UL + 1UL) executed 721 times by 2 tests: omp_env_limit = (0x7fffffffffffffffL * 2UL + 1UL) ;Executed by:
| 721 | ||||||||||||||||||
| 171 | ; executed 721 times by 2 tests: omp_env_limit = (0x7fffffffffffffffL * 2UL + 1UL) ;Executed by:
| 721 | ||||||||||||||||||
| 172 | - | |||||||||||||||||||
| 173 | if (omp_env_threads
| 13-714 | ||||||||||||||||||
| 174 | return executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 175 | ((( executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 176 | omp_env_threads executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 177 | )<( executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 178 | omp_env_limit executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 179 | ))?( executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 180 | omp_env_threads executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 181 | ):( executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 182 | omp_env_limit executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 183 | )) executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 184 | ; executed 13 times by 1 test: return ((( omp_env_threads )<( omp_env_limit ))?( omp_env_threads ):( omp_env_limit )) ;Executed by:
| 13 | ||||||||||||||||||
| 185 | - | |||||||||||||||||||
| 186 | query = NPROC_CURRENT; | - | ||||||||||||||||||
| 187 | } executed 714 times by 2 tests: end of blockExecuted by:
| 714 | ||||||||||||||||||
| 188 | - | |||||||||||||||||||
| 189 | { | - | ||||||||||||||||||
| 190 | unsigned long nprocs = num_processors_ignoring_omp (query); | - | ||||||||||||||||||
| 191 | return executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 192 | ((( executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 193 | nprocs executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 194 | )<( executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 195 | omp_env_limit executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 196 | ))?( executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 197 | nprocs executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 198 | ):( executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 199 | omp_env_limit executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 200 | )) executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 201 | ; executed 716 times by 2 tests: return ((( nprocs )<( omp_env_limit ))?( nprocs ):( omp_env_limit )) ;Executed by:
| 716 | ||||||||||||||||||
| 202 | } | - | ||||||||||||||||||
| 203 | } | - | ||||||||||||||||||
| Switch to Source code | Preprocessed file |