[erlang-questions] Improve performance of IO bounded server written in Erlang via having pollset for each scheduler and bind port to scheduler together with process

Wei Cao <>
Thu Jul 12 11:52:15 CEST 2012


it seems you enable lcnt,  do you include --enable-lock-counter in
your ./configure command?

lcnt is broken in master branch at the time I branched to commit
patches, and it's fixed in the lastest otp master branch.


2012/7/12 Zabrane Mickael <>:
> Wei,
>
> On Jul 12, 2012, at 11:23 AM, Wei Cao wrote:
>
> Not really,  bind_port_to_scheduler is based on pollset_per_scheduler,
> you can use bind_port_to_scheduler only,
>
> git fetch git://github.com/weicao/otp.git bind_port_to_scheduler
>
>
> can't compile the VM wihth your new patch:
>
> git clone git://github.com/weicao/otp.git
> cd otp
> git fetch git://github.com/weicao/otp.git bind_port_to_scheduler
> ./otp_build autoconf
> CFLAGS="-DERTS_POLLSET_PER_SCHEDULER -g -O3 -fomit-frame-pointer"
> ./configure --prefix=/SOMEWHERE/usr
> make && make install
> make clean (WITH OR WITHOUT make clean, it doesn't compile)
> make
> [...]
> gcc  -m32 -DERTS_POLLSET_PER_SCHEDULER -g -O3 -fomit-frame-pointer
> -I/opt/otp/erts/i686-pc-linux-gnu  -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -fno-tree-copyrename  -D_GNU_SOURCE -DERTS_SMP
> -DHAVE_CONFIG_H -Wall -Wstrict-prototypes -Wmissing-prototypes
> -Wdeclaration-after-statement -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT
> -DPOSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS -DERTS_ENABLE_LOCK_COUNT
> -Ii686-pc-linux-gnu/opt/smp -Ibeam -Isys/unix -Isys/common
> -Ii686-pc-linux-gnu -Izlib  -Ipcre -Ihipe -I../include
> -I../include/i686-pc-linux-gnu -I../include/internal
> -I../include/internal/i686-pc-linux-gnu -c beam/erl_process_lock.c -o
> obj/i686-pc-linux-gnu/opt/smp/erl_process_lock.o
> beam/erl_process_lock.c: In function 'erts_lcnt_enable_proc_lock_count':
> beam/erl_process_lock.c:1275:15: error: 'process_tab' undeclared (first use
> in this function)
> beam/erl_process_lock.c:1275:15: note: each undeclared identifier is
> reported only once for each function it appears in
> make[3]: *** [obj/i686-pc-linux-gnu/opt/smp/erl_process_lock.o] Error 1
> make[3]: Leaving directory `/opt/otp/erts/emulator'
> make[2]: *** [opt] Error 2
> make[2]: Leaving directory `/opt/otp/erts/emulator'
> make[1]: *** [smp] Error 2
> make[1]: Leaving directory `/opt/otp/erts'
>
> Regards,
> Zabrane
>
>
>
>
>
> 2012/7/12 Zabrane Mickael <>:
>
>
> On Jul 12, 2012, at 11:12 AM, Wei Cao wrote:
>
>
> The fix is git-pushed to patch branches, retrieved by
>
>
> git fetch git://github.com/weicao/otp.git bind_port_to_scheduler
>
> git fetch git://github.com/weicao/otp.git pollset_per_scheduler
>
>
> I used git push --force, so it's better to fetch it whole again.
>
>
>
> So I need both patches? Right?
>
>
> Regards,
>
> Zabrane
>
>
>
>
>
> --
>
> Best,
>
> Wei Cao
>
>
>
>



-- 

Best,

Wei Cao



More information about the erlang-questions mailing list