Conversation
Add .note.GNU-stack section to gth_ctx_trampoline to prevent executable stack warnings.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces major improvements to the build system, continuous integration, documentation, and benchmarking for the
gthreadsproject. The changes add a CI workflow, expand the CMake build to include architecture-specific assembly and new source files, update the documentation for clarity and completeness, and introduce a suite of performance benchmarks for context switching, thread creation, mutex, and semaphore operations.Build System and CI Improvements:
.github/workflows/ci.yml) that runs formatting checks, builds, tests, and sanitizer checks on multiple compilers and build types, ensuring code quality and correctness on every push and pull request.CMakeLists.txtto:src/context/ctx_x86_64.S.Documentation Updates:
README.mdto provide a clear project overview, rationale, build instructions, performance metrics, API summary, and links to architectural and testing documentation. This makes the project much more accessible to new contributors and users.Benchmark Suite:
benchmarks/directory:bench_context_switch.c: Measures context switch latency.bench_thread_create.c: Measures thread creation and join overhead.bench_mutex.c: Measures mutex lock/unlock throughput under contention.bench_semaphore.c: Measures semaphore throughput in a producer-consumer scenario.These changes significantly improve the project's robustness, usability, and ability to measure and communicate performance.
Most important changes:
Build System and CI:
.github/workflows/ci.yml.CMakeLists.txtto support x86_64 assembly context switching, add new source files for tracing, replay, and fuzzing, and build new tests, examples, and benchmarks. [1] [2] [3] [4]Documentation:
README.mdfor clarity, providing project overview, rationale, build instructions, performance data, API summary, and documentation links.Benchmarking:
bench_context_switch.c), thread creation (bench_thread_create.c), mutex throughput (bench_mutex.c), and semaphore throughput (bench_semaphore.c). [1] [2] [3] [4]