Hi Krishna and Willy, ----- Mail original ----- > De: "Krishna Kumar (Engineering)" <krishna...@flipkart.com> > À: "HAProxy" <haproxy@formilux.org> > Envoyé: Lundi 12 Mars 2018 07:48:50 > Objet: Idle HAProxy 1.8 spins at 100% in user space > > As an aside, could someone also post a simple configuration file to > enable 40 listeners (thread)? > > I get 100% cpu util when running high number (>30, on a 48 core > system) > of threads, I have tried both these versions: > > HA-Proxy version 1.8.4-1ppa1~xenial 2018/02/10: Installed via .deb > file > HA-Proxy version 1.8.4-1deb90d 2018/02/08: Built from source > http://www.haproxy.org/download/1.8/src/haproxy-1.8.4.tar.gz > > 1. Distro/kernel: Ubuntu 16.04.1 LTS, 4.4.0-36-generic > > > 2. Top: > # top -d 1 -b | head -12 > top - 11:59:06 up 4 days, 41 min, 1 user, load average: 1.00, 1.00, > 2.14 > Tasks: 492 total, 2 running, 464 sleeping, 0 stopped, 26 zombie > %Cpu(s): 0.5 us, 0.2 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 > st > KiB Mem : 13191999+total, 77779520 free, 1222684 used, 52917792 > buff/cache > KiB Swap: 0 total, 0 free, 0 used. 12986652+avail Mem > > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND > 87994 haproxy 20 0 896624 14996 1468 R 100.0 0.0 3:09.60 haproxy > 1 root 20 0 38856 7088 4132 S 0.0 0.0 0:08.69 systemd > 2 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kthreadd > 3 root 20 0 0 0 0 S 0.0 0.0 4:05.79 ksoftirqd/0 > 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H > > > 3. As to what it is doing: > %Cpu0 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 > st > > > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 > st > %Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 > st > > > 4. Minimal configuration file to reproduce this (using this blog: > https://www.haproxy.com/blog/multithreading-in-haproxy/ ): > > > > global > daemon > nbproc 1 > nbthread 40 > cpu-map auto:1/1-40 0-39
I confirm I can reproduce the issue once 32 (and more) threads are used : the main process enters an endless loop. I think the same issue may occur with nbproc on FreeBSD (the same code in an #ifdef ____FreeBSD__). Can you try the patch attached ? I'll send a clean one later. > > > frontend test-fe > mode http > bind 10.33.110.118:80 process all/all > use_backend test-be > > > backend test-be > mode http > server 10.33.5.62 10.33.5.62:80 weight 255 > > > 5. Problem disappears when " cpu-map auto:1/1-40 0-39" is commented > out. > Same strace output, so it is in user space as shown by 'top' above. > > > 6. Version/build (gcc version 5.4.0 20160609 (Ubuntu > 5.4.0-6ubuntu1~16.04.2)) > > > > # haproxy -vv > HA-Proxy version 1.8.4-1deb90d 2018/02/08 > Copyright 2000-2018 Willy Tarreau < wi...@haproxy.org > > > > Build options : > TARGET = linux2628 > CPU = generic > CC = gcc > CFLAGS = -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement > -fwrapv -Wno-unused-label > OPTIONS = USE_ZLIB=yes USE_OPENSSL=1 USE_PCRE=1 > > > Default settings : > maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = > 200 > > > Built with OpenSSL version : OpenSSL 1.0.2g 1 Mar 2016 > Running on OpenSSL version : OpenSSL 1.0.2g 1 Mar 2016 > OpenSSL library supports TLS extensions : yes > OpenSSL library supports SNI : yes > OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 > Built with transparent proxy support using: IP_TRANSPARENT > IPV6_TRANSPARENT IP_FREEBIND > Encrypted password support via crypt(3): yes > Built with multi-threading support. > Built with PCRE version : 8.38 2015-11-23 > Running on PCRE version : 8.38 2015-11-23 > PCRE library supports JIT : no (USE_PCRE_JIT not set) > Built with zlib version : 1.2.8 > Running on zlib version : 1.2.8 > Compression algorithms supported : identity("identity"), > deflate("deflate"), raw-deflate("deflate"), gzip("gzip") > Built with network namespace support. > > > Available polling systems : > epoll : pref=300, test result OK > poll : pref=200, test result OK > select : pref=150, test result OK > Total: 3 (3 usable), will use epoll. > > > Available filters : > [SPOE] spoe > [COMP] compression > [TRACE] trace > > > 7. Strace of the process: > 88033 11:57:18.946030 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001144> > 88032 11:57:18.946046 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001149> > 88033 11:57:18.946078 epoll_wait(47, <unfinished ...> > 88034 11:57:18.946092 epoll_wait(48, <unfinished ...> > 88032 11:57:18.946104 epoll_wait(46, <unfinished ...> > 88031 11:57:18.946115 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001153> > 88030 11:57:18.946128 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001154> > 88029 11:57:18.946140 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001155> > 88028 11:57:18.946152 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001216> > 88031 11:57:18.946169 epoll_wait(44, <unfinished ...> > 88027 11:57:18.946181 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001183> > 88030 11:57:18.946196 epoll_wait(43, <unfinished ...> > 88029 11:57:18.946208 epoll_wait(40, <unfinished ...> > 88028 11:57:18.946219 epoll_wait(39, <unfinished ...> > 88027 11:57:18.946231 epoll_wait(38, <unfinished ...> > 88026 11:57:18.946244 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001296> > 88025 11:57:18.946257 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001248> > 88024 11:57:18.946269 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001226> > 88023 11:57:18.946282 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001210> > 88026 11:57:18.946293 epoll_wait(37, <unfinished ...> > 88022 11:57:18.946307 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001224> > 88025 11:57:18.946320 epoll_wait(36, <unfinished ...> > 88024 11:57:18.946332 epoll_wait(35, <unfinished ...> > 88023 11:57:18.946344 epoll_wait(34, <unfinished ...> > 88022 11:57:18.946356 epoll_wait(33, <unfinished ...> > 88021 11:57:18.946368 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001267> > 88020 11:57:18.946380 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001269> > 88021 11:57:18.946393 epoll_wait(32, <unfinished ...> > 88020 11:57:18.946444 epoll_wait(31, <unfinished ...> > 88019 11:57:18.946472 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001331> > 88018 11:57:18.946486 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001319> > 88019 11:57:18.946514 epoll_wait(30, <unfinished ...> > 88017 11:57:18.946526 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001345> > 88016 11:57:18.946538 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001346> > 88018 11:57:18.946571 epoll_wait(29, <unfinished ...> > 88016 11:57:18.946602 epoll_wait(27, <unfinished ...> > 88017 11:57:18.946617 epoll_wait(28, <unfinished ...> > 88015 11:57:18.946628 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001422> > 88014 11:57:18.946640 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001423> > 88013 11:57:18.946657 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001427> > 88012 11:57:18.946669 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001428> > 88015 11:57:18.946708 epoll_wait(25, <unfinished ...> > 88014 11:57:18.946724 epoll_wait(42, <unfinished ...> > 88013 11:57:18.946738 epoll_wait(41, <unfinished ...> > 88012 11:57:18.946749 epoll_wait(45, <unfinished ...> > 88011 11:57:18.946761 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001460> > 88010 11:57:18.946773 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001460> > 88009 11:57:18.946788 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001463> > 88008 11:57:18.946806 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001469> > 88011 11:57:18.946847 epoll_wait(22, <unfinished ...> > 88010 11:57:18.946860 epoll_wait(26, <unfinished ...> > 88009 11:57:18.946874 epoll_wait(21, <unfinished ...> > 88008 11:57:18.946885 epoll_wait(14, <unfinished ...> > 88007 11:57:18.946897 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001548> > 88006 11:57:18.946909 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001549> > 88005 11:57:18.946925 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001552> > 88003 11:57:18.946943 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001548> > 88007 11:57:18.946978 epoll_wait(11, <unfinished ...> > 88006 11:57:18.946990 epoll_wait(24, <unfinished ...> > 88005 11:57:18.947005 epoll_wait(18, <unfinished ...> > 88003 11:57:18.947020 epoll_wait(19, <unfinished ...> > 88001 11:57:18.947032 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001626> > 88000 11:57:18.947046 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001628> > 87999 11:57:18.947065 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001615> > 87998 11:57:18.947079 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001507> > 88001 11:57:18.947097 epoll_wait(17, <unfinished ...> > 87997 11:57:18.947111 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001519> > 88000 11:57:18.947130 epoll_wait(13, <unfinished ...> > 87999 11:57:18.947143 epoll_wait(23, <unfinished ...> > 87998 11:57:18.947156 epoll_wait(20, <unfinished ...> > 87997 11:57:18.947173 epoll_wait(15, <unfinished ...> > 87996 11:57:18.947185 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001582> > 87995 11:57:18.947198 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001581> > 88004 11:57:18.947265 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001879> > 87996 11:57:18.947307 epoll_wait(12, <unfinished ...> > 87995 11:57:18.947323 epoll_wait(10, <unfinished ...> > 88004 11:57:18.947355 epoll_wait(16, <unfinished ...> > 88034 11:57:19.947175 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001073> > 88033 11:57:19.947220 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001133> > 88032 11:57:19.947236 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001124> > 88031 11:57:19.947248 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001072> > 88030 11:57:19.947264 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001060> > 88034 11:57:19.947284 epoll_wait(48, <unfinished ...> > 88033 11:57:19.947297 epoll_wait(47, <unfinished ...> > 88032 11:57:19.947310 epoll_wait(46, <unfinished ...> > 88031 11:57:19.947322 epoll_wait(44, <unfinished ...> > 88030 11:57:19.947333 epoll_wait(43, <unfinished ...> > 88029 11:57:19.947349 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001135> > 88028 11:57:19.947361 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001135> > 88027 11:57:19.947373 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001136> > 88026 11:57:19.947386 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001085> > 88029 11:57:19.947409 epoll_wait(40, <unfinished ...> > 88028 11:57:19.947422 epoll_wait(39, <unfinished ...> > 88027 11:57:19.947434 epoll_wait(38, <unfinished ...> > 88026 11:57:19.947446 epoll_wait(37, <unfinished ...> > 88025 11:57:19.947459 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001131> > 88024 11:57:19.947471 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001132> > 88023 11:57:19.947483 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001132> > 88022 11:57:19.947495 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001132> > 88025 11:57:19.947511 epoll_wait(36, <unfinished ...> > 88024 11:57:19.947528 epoll_wait(35, <unfinished ...> > 88023 11:57:19.947540 epoll_wait(34, <unfinished ...> > 88022 11:57:19.947553 epoll_wait(33, <unfinished ...> > 88021 11:57:19.947565 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001164> > 88020 11:57:19.947576 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001112> > 88019 11:57:19.947590 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001069> > 88016 11:57:19.947602 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.000993> > 88021 11:57:19.947619 epoll_wait(32, <unfinished ...> > 88020 11:57:19.947638 epoll_wait(31, <unfinished ...> > 88019 11:57:19.947650 epoll_wait(30, <unfinished ...> > 88018 11:57:19.947661 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001083> > 88016 11:57:19.947674 epoll_wait(27, <unfinished ...> > 88017 11:57:19.947690 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001067> > 88018 11:57:19.947703 epoll_wait(29, <unfinished ...> > 88017 11:57:19.947716 epoll_wait(28, <unfinished ...> > 88015 11:57:19.947728 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001012> > 88014 11:57:19.947740 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001008> > 88015 11:57:19.947753 epoll_wait(25, <unfinished ...> > 88013 11:57:19.947764 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001020> > 88012 11:57:19.947776 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001021> > 88014 11:57:19.947789 epoll_wait(42, <unfinished ...> > 88010 11:57:19.947801 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.000933> > 88008 11:57:19.947813 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.000921> > 88012 11:57:19.947826 epoll_wait(45, <unfinished ...> > 88013 11:57:19.947845 epoll_wait(41, <unfinished ...> > 88011 11:57:19.947860 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001005> > 88010 11:57:19.947872 epoll_wait(26, <unfinished ...> > 88011 11:57:19.947885 epoll_wait(22, <unfinished ...> > 88009 11:57:19.947896 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001016> > 88008 11:57:19.947908 epoll_wait(14, <unfinished ...> > 88001 11:57:19.947920 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.000815> > 88009 11:57:19.947933 epoll_wait(21, <unfinished ...> > 88007 11:57:19.947979 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.000987> > 88006 11:57:19.948022 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001024> > 88005 11:57:19.948038 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001027> > 88006 11:57:19.948053 epoll_wait(24, <unfinished ...> > 88001 11:57:19.948067 epoll_wait(17, <unfinished ...> > 88007 11:57:19.948078 epoll_wait(11, <unfinished ...> > 88003 11:57:19.948117 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001089> > 88005 11:57:19.948134 epoll_wait(18, <unfinished ...> > 88003 11:57:19.948146 epoll_wait(19, <unfinished ...> > 88000 11:57:19.948158 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001021> > 87998 11:57:19.948171 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001008> > 88000 11:57:19.948239 epoll_wait(13, <unfinished ...> > 87999 11:57:19.948275 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001125> > 87998 11:57:19.948293 epoll_wait(20, <unfinished ...> > 87997 11:57:19.948305 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001125> > 87999 11:57:19.948336 epoll_wait(23, <unfinished ...> > 87997 11:57:19.948355 epoll_wait(15, <unfinished ...> > 88004 11:57:19.948460 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001093> > 87996 11:57:19.948500 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001182> > 87995 11:57:19.948518 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001187> > 88004 11:57:19.948536 epoll_wait(16, <unfinished ...> > 87996 11:57:19.948560 epoll_wait(12, <unfinished ...> > 87995 11:57:19.948576 epoll_wait(10, <unfinished ...> > 88034 11:57:20.948304 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001009> > 88001 11:57:20.948348 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.000275> > 88033 11:57:20.948365 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001060> > 88032 11:57:20.948382 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001064> > 88034 11:57:20.948397 epoll_wait(48, <unfinished ...> > 88033 11:57:20.948412 epoll_wait(47, <unfinished ...> > 88032 11:57:20.948424 epoll_wait(46, <unfinished ...> > 88031 11:57:20.948436 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001107> > 88030 11:57:20.948449 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001110> > 88031 11:57:20.948467 epoll_wait(44, <unfinished ...> > 88029 11:57:20.948479 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001061> > 88028 11:57:20.948492 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001062> > 88027 11:57:20.948505 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001063> > 88030 11:57:20.948518 epoll_wait(43, <unfinished ...> > 88028 11:57:20.948530 epoll_wait(39, <unfinished ...> > 88029 11:57:20.948541 epoll_wait(40, <unfinished ...> > 88027 11:57:20.948553 epoll_wait(38, <unfinished ...> > 88026 11:57:20.948564 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001111> > 88025 11:57:20.948578 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001060> > 88024 11:57:20.948590 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001056> > 88023 11:57:20.948603 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001055> > 88026 11:57:20.948615 epoll_wait(37, <unfinished ...> > 88022 11:57:20.948627 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001068> > 88025 11:57:20.948640 epoll_wait(36, <unfinished ...> > 88024 11:57:20.948653 epoll_wait(35, <unfinished ...> > 88023 11:57:20.948665 epoll_wait(34, <unfinished ...> > 88022 11:57:20.948682 epoll_wait(33, <unfinished ...> > 88021 11:57:20.948694 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001060> > 88020 11:57:20.948707 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001061> > 88021 11:57:20.948724 epoll_wait(32, <unfinished ...> > 88020 11:57:20.948735 epoll_wait(31, <unfinished ...> > 88019 11:57:20.948747 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001090> > 88018 11:57:20.948764 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001055> > 88019 11:57:20.948778 epoll_wait(30, <unfinished ...> > 88017 11:57:20.948791 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001068> > 88018 11:57:20.948809 epoll_wait(29, <unfinished ...> > 88016 11:57:20.948822 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001140> > 88015 11:57:20.948834 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001074> > 88014 11:57:20.948846 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001050> > 88017 11:57:20.948860 epoll_wait(28, <unfinished ...> > 88016 11:57:20.948871 epoll_wait(27, <unfinished ...> > 88013 11:57:20.948884 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001031> > 88015 11:57:20.948902 epoll_wait(25, <unfinished ...> > 88014 11:57:20.948914 epoll_wait(42, <unfinished ...> > 88012 11:57:20.948926 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001093> > 88013 11:57:20.948939 epoll_wait(41, <unfinished ...> > 88011 11:57:20.948951 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001059> > 88010 11:57:20.948963 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001084> > 88012 11:57:20.948978 epoll_wait(45, <unfinished ...> > 88009 11:57:20.948990 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001050> > 88008 11:57:20.949002 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001087> > 88011 11:57:20.949020 epoll_wait(22, <unfinished ...> > 88010 11:57:20.949032 epoll_wait(26, <unfinished ...> > 88001 11:57:20.949044 epoll_wait(17, <unfinished ...> > 88009 11:57:20.949057 epoll_wait(21, <unfinished ...> > 88008 11:57:20.949069 epoll_wait(14, <unfinished ...> > 88007 11:57:20.949081 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.000996> > 88006 11:57:20.949094 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001033> > 88007 11:57:20.949123 epoll_wait(11, <unfinished ...> > 88006 11:57:20.949136 epoll_wait(24, <unfinished ...> > 88005 11:57:20.949149 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001009> > 88005 11:57:20.949199 epoll_wait(18, <unfinished ...> > 88003 11:57:20.949214 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001061> > 88003 11:57:20.949255 epoll_wait(19, <unfinished ...> > 88000 11:57:20.949295 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001026> > 88000 11:57:20.949437 epoll_wait(13, <unfinished ...> > 87999 11:57:20.949477 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001130> > 87998 11:57:20.949494 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001193> > 87997 11:57:20.949508 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001145> > 87999 11:57:20.949574 epoll_wait(23, <unfinished ...> > 88004 11:57:20.949613 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001058> > 87998 11:57:20.949629 epoll_wait(20, <unfinished ...> > 87997 11:57:20.949642 epoll_wait(15, <unfinished ...> > 87996 11:57:20.949653 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001085> > 87995 11:57:20.949666 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001082> > 88004 11:57:20.949678 epoll_wait(16, <unfinished ...> > 87996 11:57:20.949710 epoll_wait(12, <unfinished ...> > 87995 11:57:20.949723 epoll_wait(10, <unfinished ...> > 88033 11:57:21.949419 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.000997> > 88032 11:57:21.949461 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001030> > 88034 11:57:21.949477 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001071> > 88031 11:57:21.949493 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001018> > 88033 11:57:21.949525 epoll_wait(47, <unfinished ...> > 88034 11:57:21.949545 epoll_wait(48, <unfinished ...> > 88032 11:57:21.949557 epoll_wait(46, <unfinished ...> > 88031 11:57:21.949568 epoll_wait(44, <unfinished ...> > 88030 11:57:21.949580 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001054> > 88029 11:57:21.949592 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001044> > 88028 11:57:21.949610 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001074> > 88027 11:57:21.949631 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001071> > 88030 11:57:21.949645 epoll_wait(43, <unfinished ...> > 88029 11:57:21.949657 epoll_wait(40, <unfinished ...> > 88028 11:57:21.949669 epoll_wait(39, <unfinished ...> > 88026 11:57:21.949681 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001060> > 88027 11:57:21.949695 epoll_wait(38, <unfinished ...> > 88026 11:57:21.949714 epoll_wait(37, <unfinished ...> > 88025 11:57:21.949728 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001080> > 88024 11:57:21.949746 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001086> > 88023 11:57:21.949759 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001086> > 88022 11:57:21.949772 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001083> > 88025 11:57:21.949791 epoll_wait(36, <unfinished ...> > 88024 11:57:21.949802 epoll_wait(35, <unfinished ...> > 88023 11:57:21.949815 epoll_wait(34, <unfinished ...> > 88021 11:57:21.949827 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001096> > 88022 11:57:21.949839 epoll_wait(33, <unfinished ...> > 88020 11:57:21.949855 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001108> > 88019 11:57:21.949875 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001091> > 88018 11:57:21.949887 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001072> > 88021 11:57:21.949901 epoll_wait(32, <unfinished ...> > 88020 11:57:21.949916 epoll_wait(31, <unfinished ...> > 88019 11:57:21.949929 epoll_wait(30, <unfinished ...> > 88018 11:57:21.949941 epoll_wait(29, <unfinished ...> > 88017 11:57:21.949957 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001090> > 88016 11:57:21.949969 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001091> > 88015 11:57:21.949982 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001072> > 88014 11:57:21.949993 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001073> > 88017 11:57:21.950031 epoll_wait(28, <unfinished ...> > 88016 11:57:21.950044 epoll_wait(27, <unfinished ...> > 88015 11:57:21.950057 epoll_wait(25, <unfinished ...> > 88014 11:57:21.950068 epoll_wait(42, <unfinished ...> > 88013 11:57:21.950080 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001134> > 88012 11:57:21.950093 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001107> > 88011 11:57:21.950117 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001089> > 88010 11:57:21.950130 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001092> > 88013 11:57:21.950144 epoll_wait(41, <unfinished ...> > 88012 11:57:21.950156 epoll_wait(45, <unfinished ...> > 88009 11:57:21.950168 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001103> > 88010 11:57:21.950180 epoll_wait(26, <unfinished ...> > 88011 11:57:21.950193 epoll_wait(22, <unfinished ...> > 88008 11:57:21.950204 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001129> > 88007 11:57:21.950225 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001092> > 88009 11:57:21.950237 epoll_wait(21, <unfinished ...> > 88006 11:57:21.950249 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001105> > 88008 11:57:21.950261 epoll_wait(14, <unfinished ...> > 88005 11:57:21.950274 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001065> > 88007 11:57:21.950287 epoll_wait(11, <unfinished ...> > 88006 11:57:21.950299 epoll_wait(24, <unfinished ...> > 88001 11:57:21.950311 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001259> > 88005 11:57:21.950357 epoll_wait(18, <unfinished ...> > 88001 11:57:21.950371 epoll_wait(17, <unfinished ...> > 88003 11:57:21.950392 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001104> > 88003 11:57:21.950463 epoll_wait(19, <unfinished ...> > 88000 11:57:21.950505 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001034> > 88000 11:57:21.950636 epoll_wait(13, <unfinished ...> > 87999 11:57:21.950675 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001071> > 88004 11:57:21.950762 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001075> > 87999 11:57:21.950807 epoll_wait(23, <unfinished ...> > 87998 11:57:21.950822 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001186> > 88004 11:57:21.950843 epoll_wait(16, <unfinished ...> > 87997 11:57:21.950856 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001208> > 87996 11:57:21.950869 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001151> > 87995 11:57:21.950883 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001152> > 87998 11:57:21.950899 epoll_wait(20, <unfinished ...> > 87997 11:57:21.950913 epoll_wait(15, <unfinished ...> > 87996 11:57:21.950925 epoll_wait(12, <unfinished ...> > 87995 11:57:21.950938 epoll_wait(10, <unfinished ...> > 88033 11:57:22.950577 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001042> > 88034 11:57:22.950620 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001067> > 88032 11:57:22.950637 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001073> > 88031 11:57:22.950651 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001076> > 88033 11:57:22.950678 epoll_wait(47, <unfinished ...> > 88034 11:57:22.950700 epoll_wait(48, <unfinished ...> > 88032 11:57:22.950713 epoll_wait(46, <unfinished ...> > 88031 11:57:22.950735 epoll_wait(44, <unfinished ...> > 88030 11:57:22.950748 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001095> > 88029 11:57:22.950762 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001098> > 88030 11:57:22.950776 epoll_wait(43, <unfinished ...> > 88029 11:57:22.950789 epoll_wait(40, <unfinished ...> > 88028 11:57:22.950801 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001125> > 88027 11:57:22.950814 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001107> > 88028 11:57:22.950828 epoll_wait(39, <unfinished ...> > 88027 11:57:22.950841 epoll_wait(38, <unfinished ...> > 88026 11:57:22.950854 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001131> > 88025 11:57:22.950867 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001068> > 88024 11:57:22.950879 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001070> > 88023 11:57:22.950892 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001069> > 88026 11:57:22.950906 epoll_wait(37, <unfinished ...> > 88024 11:57:22.950918 epoll_wait(35, <unfinished ...> > 88025 11:57:22.950930 epoll_wait(36, <unfinished ...> > 88023 11:57:22.950942 epoll_wait(34, <unfinished ...> > 88022 11:57:22.950954 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001107> > 88021 11:57:22.950966 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001058> > 88020 11:57:22.950979 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001055> > 88019 11:57:22.950990 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001054> > 88022 11:57:22.951014 epoll_wait(33, <unfinished ...> > 88021 11:57:22.951027 epoll_wait(32, <unfinished ...> > 88020 11:57:22.951040 epoll_wait(31, <unfinished ...> > 88019 11:57:22.951051 epoll_wait(30, <unfinished ...> > 88018 11:57:22.951063 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001115> > 88017 11:57:22.951075 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001035> > 88016 11:57:22.951087 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001037> > 88015 11:57:22.951099 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001035> > 88018 11:57:22.951114 epoll_wait(29, <unfinished ...> > 88017 11:57:22.951126 epoll_wait(28, <unfinished ...> > 88016 11:57:22.951138 epoll_wait(27, <unfinished ...> > 88015 11:57:22.951150 epoll_wait(25, <unfinished ...> > 88014 11:57:22.951162 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001086> > 88013 11:57:22.951173 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001022> > 88012 11:57:22.951186 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001023> > 88011 11:57:22.951198 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.000998> > 88014 11:57:22.951213 epoll_wait(42, <unfinished ...> > 88013 11:57:22.951225 epoll_wait(41, <unfinished ...> > 88012 11:57:22.951238 epoll_wait(45, <unfinished ...> > 88011 11:57:22.951249 epoll_wait(22, <unfinished ...> > 88010 11:57:22.951261 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001073> > 88009 11:57:22.951273 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001028> > 88008 11:57:22.951285 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001017> > 88009 11:57:22.951297 epoll_wait(21, <unfinished ...> > 88007 11:57:22.951310 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001016> > 88010 11:57:22.951323 epoll_wait(26, <unfinished ...> > 88008 11:57:22.951336 epoll_wait(14, <unfinished ...> > 88006 11:57:22.951348 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001042> > 88007 11:57:22.951364 epoll_wait(11, <unfinished ...> > 88005 11:57:22.951376 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001011> > 88005 11:57:22.951403 epoll_wait(18, <unfinished ...> > 88006 11:57:22.951420 epoll_wait(24, <unfinished ...> > 88001 11:57:22.951432 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001055> > 88003 11:57:22.951500 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001024> > 88001 11:57:22.951541 epoll_wait(17, <unfinished ...> > 88003 11:57:22.951611 epoll_wait(19, <unfinished ...> > 88000 11:57:22.951721 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001053> > 88000 11:57:22.951755 epoll_wait(13, <unfinished ...> > 87999 11:57:22.951895 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001075> > 88004 11:57:22.951937 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001085> > 87998 11:57:22.951956 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001049> > 87997 11:57:22.951974 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001055> > 87999 11:57:22.951989 epoll_wait(23, <unfinished ...> > 88004 11:57:22.952003 epoll_wait(16, <unfinished ...> > 87998 11:57:22.952015 epoll_wait(20, <unfinished ...> > 87997 11:57:22.952027 epoll_wait(15, <unfinished ...> > 87996 11:57:22.952040 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001108> > 87995 11:57:22.952053 <... epoll_wait resumed> [], 200, 1000) = 0 > <1.001107> > >
diff --git a/src/haproxy.c b/src/haproxy.c index 8785b9f94..0c823c497 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -2837,7 +2837,7 @@ int main(int argc, char **argv) CPU_ZERO(&cpuset); while ((i = ffsl(cpu_map)) > 0) { CPU_SET(i - 1, &cpuset); - cpu_map &= ~(1 << (i - 1)); + cpu_map &= ~(1UL << (i - 1)); } ret = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, sizeof(cpuset), &cpuset); } @@ -3037,7 +3037,7 @@ int main(int argc, char **argv) while ((j = ffsl(cpu_map)) > 0) { CPU_SET(j - 1, &cpuset); - cpu_map &= ~(1 << (j - 1)); + cpu_map &= ~(1UL << (j - 1)); } pthread_setaffinity_np(threads[i], sizeof(cpuset), &cpuset);