Sandipan Das <sandi...@linux.ibm.com> writes: > The size of the CPU affinity mask must be large enough for > systems with a very large number of CPUs. Otherwise, tests > which try to determine the first online CPU by calling > sched_getaffinity() will fail. This makes sure that the size > of the allocated affinity mask is dependent on the number of > CPUs as reported by get_nprocs(). > > Fixes: 3752e453f6ba ("selftests/powerpc: Add tests of PMU EBBs") > Reported-by: Shirisha Ganta <shiga...@in.ibm.com> > Signed-off-by: Sandipan Das <sandi...@linux.ibm.com> > Reviewed-by: Kamalesh Babulal <kamal...@linux.vnet.ibm.com> > --- > Previous versions can be found at: > v1: > https://lore.kernel.org/linuxppc-dev/20200608144212.985144-1-sandi...@linux.ibm.com/ > > Changes in v2: > - Added NULL check for the affinity mask as suggested by Kamalesh. > - Changed "cpu set" to "CPU affinity mask" in the commit message.
This sometimes breaks, eg: # ./count_instructions test: count_instructions tags: git_version:v5.8-rc2-327-g9a1d992a7eb7 sched_getaffinity: Invalid argument [FAIL] Test FAILED on line 123 failure: count_instructions This system has a messed up SMT setup, but the old code was able to cope with it: # ppc64_cpu --info Core 0: 0* 1* 2 3 4 5 6 7 Core 1: 8 9 10* 11* 12 13 14 15 Core 2: 16 17 18 19 20 21 22 23 Core 3: 24 25 26 27 28 29 30 31 Core 4: 32 33 34 35 36 37 38 39 Core 5: 40 41 42 43 44 45 46 47 Core 6: 48 49 50 51 52 53 54 55 Core 7: 56 57 58 59 60 61 62 63 Core 8: 64 65 66 67 68 69 70 71 Core 9: 72 73 74 75 76 77 78 79 Core 10: 80 81 82 83 84 85 86 87 Core 11: 88 89 90 91 92 93 94 95 Core 12: 96 97 98 99 100* 101* 102* 103* Core 13: 104* 105* 106* 107* 108* 109* 110* 111* Core 14: 112* 113* 114* 115* 116* 117* 118* 119* Core 15: 120 121 122 123 124 125 126 127 Core 16: 128 129 130 131 132 133 134 135 Core 17: 136 137 138 139 140 141 142 143 Core 18: 144 145 146 147 148 149 150 151 Core 19: 152 153 154 155 156 157 158 159 cheers