Commit afd20b9
af_unix: Replace the big lock with small locks.
The hash table of AF_UNIX sockets is protected by the single lock. This
patch replaces it with per-hash locks.
The effect is noticeable when we handle multiple sockets simultaneously.
Here is a test result on an EC2 c5.24xlarge instance. It shows latency
(under 10us only) in unix_insert_unbound_socket() while 64 CPUs creating
1024 sockets for each in parallel.
Without this patch:
nsec : count distribution
0 : 179 | |
500 : 3021 |********* |
1000 : 6271 |******************* |
1500 : 6318 |******************* |
2000 : 5828 |***************** |
2500 : 5124 |*************** |
3000 : 4426 |************* |
3500 : 3672 |*********** |
4000 : 3138 |********* |
4500 : 2811 |******** |
5000 : 2384 |******* |
5500 : 2023 |****** |
6000 : 1954 |***** |
6500 : 1737 |***** |
7000 : 1749 |***** |
7500 : 1520 |**** |
8000 : 1469 |**** |
8500 : 1394 |**** |
9000 : 1232 |*** |
9500 : 1138 |*** |
10000 : 994 |*** |
With this patch:
nsec : count distribution
0 : 1634 |**** |
500 : 13170 |****************************************|
1000 : 13156 |*************************************** |
1500 : 9010 |*************************** |
2000 : 6363 |******************* |
2500 : 4443 |************* |
3000 : 3240 |********* |
3500 : 2549 |******* |
4000 : 1872 |***** |
4500 : 1504 |**** |
5000 : 1247 |*** |
5500 : 1035 |*** |
6000 : 889 |** |
6500 : 744 |** |
7000 : 634 |* |
7500 : 498 |* |
8000 : 433 |* |
8500 : 355 |* |
9000 : 336 |* |
9500 : 284 | |
10000 : 243 | |
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.co.jp>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>1 parent e6b4b87 commit afd20b9
3 files changed
+71
-49
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| 120 | + | |
| 121 | + | |
120 | 122 | | |
121 | 123 | | |
122 | | - | |
123 | | - | |
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
127 | | - | |
| 127 | + | |
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
160 | 179 | | |
161 | 180 | | |
162 | 181 | | |
| |||
298 | 317 | | |
299 | 318 | | |
300 | 319 | | |
301 | | - | |
| 320 | + | |
302 | 321 | | |
303 | | - | |
| 322 | + | |
304 | 323 | | |
305 | 324 | | |
306 | 325 | | |
307 | 326 | | |
308 | | - | |
| 327 | + | |
309 | 328 | | |
310 | | - | |
| 329 | + | |
311 | 330 | | |
312 | 331 | | |
313 | 332 | | |
| |||
335 | 354 | | |
336 | 355 | | |
337 | 356 | | |
338 | | - | |
| 357 | + | |
339 | 358 | | |
340 | 359 | | |
341 | 360 | | |
342 | | - | |
| 361 | + | |
343 | 362 | | |
344 | 363 | | |
345 | 364 | | |
| |||
348 | 367 | | |
349 | 368 | | |
350 | 369 | | |
351 | | - | |
| 370 | + | |
352 | 371 | | |
353 | 372 | | |
354 | 373 | | |
355 | 374 | | |
356 | 375 | | |
357 | | - | |
| 376 | + | |
| 377 | + | |
358 | 378 | | |
359 | 379 | | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
| 380 | + | |
| 381 | + | |
364 | 382 | | |
365 | 383 | | |
366 | 384 | | |
| |||
1053 | 1071 | | |
1054 | 1072 | | |
1055 | 1073 | | |
| 1074 | + | |
1056 | 1075 | | |
1057 | 1076 | | |
1058 | 1077 | | |
1059 | 1078 | | |
1060 | | - | |
1061 | 1079 | | |
1062 | 1080 | | |
1063 | 1081 | | |
| |||
1081 | 1099 | | |
1082 | 1100 | | |
1083 | 1101 | | |
1084 | | - | |
| 1102 | + | |
1085 | 1103 | | |
1086 | 1104 | | |
1087 | 1105 | | |
1088 | 1106 | | |
1089 | | - | |
| 1107 | + | |
| 1108 | + | |
1090 | 1109 | | |
1091 | 1110 | | |
1092 | 1111 | | |
| |||
1102 | 1121 | | |
1103 | 1122 | | |
1104 | 1123 | | |
1105 | | - | |
| 1124 | + | |
1106 | 1125 | | |
1107 | 1126 | | |
1108 | 1127 | | |
| |||
1114 | 1133 | | |
1115 | 1134 | | |
1116 | 1135 | | |
| 1136 | + | |
1117 | 1137 | | |
1118 | 1138 | | |
1119 | 1139 | | |
1120 | | - | |
1121 | 1140 | | |
1122 | 1141 | | |
1123 | 1142 | | |
| |||
1156 | 1175 | | |
1157 | 1176 | | |
1158 | 1177 | | |
1159 | | - | |
| 1178 | + | |
1160 | 1179 | | |
1161 | 1180 | | |
1162 | 1181 | | |
1163 | | - | |
| 1182 | + | |
1164 | 1183 | | |
1165 | 1184 | | |
1166 | 1185 | | |
| |||
1181 | 1200 | | |
1182 | 1201 | | |
1183 | 1202 | | |
| 1203 | + | |
1184 | 1204 | | |
1185 | 1205 | | |
1186 | | - | |
1187 | 1206 | | |
1188 | 1207 | | |
1189 | 1208 | | |
| |||
1200 | 1219 | | |
1201 | 1220 | | |
1202 | 1221 | | |
1203 | | - | |
| 1222 | + | |
1204 | 1223 | | |
1205 | 1224 | | |
1206 | 1225 | | |
1207 | 1226 | | |
1208 | 1227 | | |
1209 | 1228 | | |
1210 | | - | |
| 1229 | + | |
1211 | 1230 | | |
1212 | 1231 | | |
1213 | 1232 | | |
1214 | 1233 | | |
1215 | | - | |
| 1234 | + | |
1216 | 1235 | | |
1217 | 1236 | | |
1218 | 1237 | | |
| |||
1519 | 1538 | | |
1520 | 1539 | | |
1521 | 1540 | | |
1522 | | - | |
| 1541 | + | |
1523 | 1542 | | |
1524 | | - | |
| 1543 | + | |
1525 | 1544 | | |
1526 | 1545 | | |
1527 | 1546 | | |
| |||
3198 | 3217 | | |
3199 | 3218 | | |
3200 | 3219 | | |
3201 | | - | |
| 3220 | + | |
3202 | 3221 | | |
3203 | 3222 | | |
3204 | 3223 | | |
| |||
3222 | 3241 | | |
3223 | 3242 | | |
3224 | 3243 | | |
3225 | | - | |
| 3244 | + | |
3226 | 3245 | | |
3227 | 3246 | | |
3228 | 3247 | | |
| |||
3233 | 3252 | | |
3234 | 3253 | | |
3235 | 3254 | | |
| 3255 | + | |
3236 | 3256 | | |
3237 | 3257 | | |
3238 | 3258 | | |
3239 | 3259 | | |
3240 | 3260 | | |
3241 | | - | |
| 3261 | + | |
3242 | 3262 | | |
3243 | 3263 | | |
3244 | 3264 | | |
3245 | 3265 | | |
3246 | 3266 | | |
3247 | 3267 | | |
3248 | 3268 | | |
3249 | | - | |
3250 | 3269 | | |
3251 | | - | |
3252 | | - | |
3253 | 3270 | | |
3254 | 3271 | | |
3255 | 3272 | | |
| |||
3266 | 3283 | | |
3267 | 3284 | | |
3268 | 3285 | | |
3269 | | - | |
3270 | 3286 | | |
3271 | | - | |
| 3287 | + | |
| 3288 | + | |
| 3289 | + | |
| 3290 | + | |
3272 | 3291 | | |
3273 | 3292 | | |
3274 | 3293 | | |
| |||
3293 | 3312 | | |
3294 | 3313 | | |
3295 | 3314 | | |
3296 | | - | |
| 3315 | + | |
3297 | 3316 | | |
3298 | 3317 | | |
3299 | 3318 | | |
| |||
3452 | 3471 | | |
3453 | 3472 | | |
3454 | 3473 | | |
3455 | | - | |
| 3474 | + | |
3456 | 3475 | | |
3457 | 3476 | | |
3458 | 3477 | | |
| 3478 | + | |
| 3479 | + | |
| 3480 | + | |
3459 | 3481 | | |
3460 | 3482 | | |
3461 | 3483 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
208 | 207 | | |
209 | 208 | | |
210 | 209 | | |
211 | 210 | | |
212 | 211 | | |
213 | 212 | | |
| 213 | + | |
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
| |||
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
224 | | - | |
| 224 | + | |
| 225 | + | |
225 | 226 | | |
| 227 | + | |
226 | 228 | | |
227 | 229 | | |
228 | 230 | | |
| 231 | + | |
229 | 232 | | |
230 | 233 | | |
231 | | - | |
232 | 234 | | |
233 | 235 | | |
234 | 236 | | |
| |||
237 | 239 | | |
238 | 240 | | |
239 | 241 | | |
240 | | - | |
241 | 242 | | |
| 243 | + | |
242 | 244 | | |
243 | | - | |
244 | 245 | | |
| 246 | + | |
245 | 247 | | |
246 | 248 | | |
247 | 249 | | |
248 | | - | |
249 | | - | |
| 250 | + | |
250 | 251 | | |
251 | 252 | | |
| 253 | + | |
252 | 254 | | |
253 | | - | |
254 | | - | |
255 | 255 | | |
256 | 256 | | |
257 | 257 | | |
| |||
0 commit comments