[erlang-questions] Why system_flag(scheduler_bind_type) is deprecated?
Angel J. Alvarez Miguel
clist@REDACTED
Wed Jan 9 18:08:20 CET 2013
Thanks for the explanations!
On Martes, 8 de Enero de 2013 13:57:49 Rickard Green escribió:
> On Jan 8, 2013, at 1:04 PM, "Angel J. Alvarez Miguel" <clist@REDACTED> wrote:
> > On Martes, 8 de Enero de 2013 12:08:41 Jesper Louis Andersen escribió:
> >> On Jan 8, 2013, at 12:04 PM, Max Lapshin <max.lapshin@REDACTED> wrote:
> >>> If erlyvideo is launched without +sbt spread flag, it looses packets
> >>> from UDP because too many tasks are on one core. There are some erlang
> >>> distributions (OS X, ubuntu package, some others) that are just
> >>> halting if you pass +sbt flag. So I can't write proper init script
> >>> that passes this flag or don't pass.
> >>
> >> I think Rickard already said he would implement a "silent failure" flag
> >> for this, so you could do something like
> >>
> >> erl +sbt db +sat-ignore-failure
> >
> > This seems to be a good falloff, here we use scritptized rebars
> > deployments for our projects and this fits very well to be included in
> > the
> > escript_emu_args variable... provided the user cant change default vm
> > args per se
> >
> >> and have it work on, say, OSX because it would silently disable the
> >> flag. As you say, +sbt has too much of an impact in the real world to
> >> be ignored for certain types of load, so I still like the default of
> >> refusing to start if the bind type can't be satisfied.
> >>
> >> Jesper Louis Andersen
> >>
> >> Erlang Solutions Ltd., Copenhagen
>
> I'll add an +stbt ("try bind type") switch that will do the same thing as
> +sbt, but if it fails this will silently be ignored and the runtime will
> be started anyway. I can add the +stbt switch to r16. The change will be
> quite simple, so I guess that it should be quite easy to apply the change
> on the r15b03 source if you want to.
>
> Regarding support for automatic detection of cpu-topology and binding of
> schedulers. I think this is an area really suitable for user
> contributions. Since the APIs that need to be used often differ between
> OSes and sometimes also between hardware architectures on the same OS, we
> will never have the time to implement support for this on all platforms
> users are interested in. Therefore, user contributions implementing this
> on various platforms are much appreciated (other contributions are of
> course also appreciated).
>
> If +sbt fails on a newer Linux, the problem is most likely that no
> cpu-topology were automatically detected. On Linux, the runtime tries to
> detect this by inspecting the /sys filesystem. The content under
> /sys/devices/system/{cpu,node} varies quite a lot depending on hw arch.
> Sometimes there aren't enough info there to determine the topology, but it
> could also be that the information is just formatted another way than we
> expected.
>
> Detection of cpu-topology and binding of threads to logical processors are
> implemented in $ERL_TOP/erts/lib_src/common/erl_misc_utils.c
>
> Regards,
> Rickard Green, Erlang/OTP, Ericsson AB
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
More information about the erlang-questions
mailing list