[nanomsg] Re: Getting rid of nn_init() and nn_term()

  • From: David Nyström <david.c.nystrom@xxxxxxxxx>
  • To: Martin Sustrik <sustrik@xxxxxxxxxx>
  • Date: Tue, 05 Feb 2013 10:19:47 +0100

On Tue 05 Feb 2013 10:11:32 AM CET, Martin Sustrik wrote:
On 05/02/13 09:10, David Nyström wrote:

In my usecase(Process threads spread out over cores), I would see global
state within a process as a definite problem. Where cache-line bouncing
of global state data-structures would become a very problematic
artefact, if accessed "under the hood" when creating and/or destroying a
socket.

Does that apply even in the case where global structures are almost
never changing? Then the relevant chachelines are loaded in individual
CPU caches and that's in, no?

Martin

No,

Cacheline bouncing would only become prevalent when the shared datastructures change, and cache needs to be invalidated. If this datastructure changes when a socket is created/destroy:ed, this would mean trouble. What nanomsg API calls could potentially cause a write to this datastructure ?

Br,
David

Other related posts: