[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
Zabrane Mickael
zabrane3@REDACTED
Thu Jul 12 12:14:18 CEST 2012
Awesome analysis Wei.
you were right about LCNT (--enable-lock-counter), now it's compiling just fine.
I'll keep you informed.
Regards,
Zabrane
On Jul 12, 2012, at 11:52 AM, Wei Cao wrote:
> 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 <zabrane3@REDACTED>:
>> 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 <zabrane3@REDACTED>:
>>
>>
>> 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