Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Low-level optimizations (spinlocks, atomics) #45

Open
tobias-schuele opened this issue Jan 18, 2017 · 0 comments
Open

Low-level optimizations (spinlocks, atomics) #45

tobias-schuele opened this issue Jan 18, 2017 · 0 comments

Comments

@tobias-schuele
Copy link
Member

tobias-schuele commented Jan 18, 2017

Proposals for reducing overhead when processing extremely small tasks (to be discussed):

  • Align embb_atomic_int atomic_spin_variable_ using EMBB_PLATFORM_ALIGN (central definition of cache line size woud be useful as well as an additional macro for padding, e.g. EMBB_PLATFORM_ALIGN_PADDING; background: the aligned variable may be followed by an unaligned one for which reason char padding[CACHE_LINE_SIZE-SIZEOF(var)] should follow)
  • Inline atomics on Windows (problem: inline assemblies not supported on x86_64, solution: compiler intrinsics?)
  • Release spinlock without mfence (requires explicit barrier specification for atomics)
  • Inline spinlock functions (lock/unlock) to avoid function calls
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant