From c25e61343f5ed2d3acabb033efa4305f91ad86ce Mon Sep 17 00:00:00 2001 From: FritzFlorian Date: Mon, 3 Feb 2020 19:25:06 +0100 Subject: [PATCH] WIP: Add fcontext and thread sanitizer support to our coroutine abstraction. --- app/benchmark_fft/main.cpp | 2 +- app/benchmark_fib/main.cpp | 3 ++- app/playground/main.cpp | 27 +++++++-------------------- cmake/SetupThreadSanitizer.cmake | 2 ++ lib/context_switcher/CMakeLists.txt | 51 +++++++++++++++++++++++++++++++++++++++++---------- lib/context_switcher/asm/cscontext/SelectAssemblyFiles.cmake | 20 ++++++++++++++++++++ lib/context_switcher/asm/cscontext/enter_context_x86_64_sysv_elf.s | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/cscontext/switch_context_x86_64_sysv_elf.s | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/enter_context_arm32.s | 53 ----------------------------------------------------- lib/context_switcher/asm/enter_context_x86_64.s | 84 ------------------------------------------------------------------------------------ lib/context_switcher/asm/fcontext/SelectAssemblyFiles.cmake | 27 +++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_arm64_aapcs_elf_gas.S | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_arm64_aapcs_macho_gas.S | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_arm_aapcs_elf_gas.S | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_arm_aapcs_macho_gas.S | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_arm_aapcs_pe_armasm.asm | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_combined_sysv_macho_gas.S | 20 ++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_i386_ms_pe_gas.asm | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_i386_ms_pe_masm.asm | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_i386_sysv_elf_gas.S | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_i386_sysv_macho_gas.S | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_i386_x86_64_sysv_macho_gas.S | 16 ++++++++++++++++ lib/context_switcher/asm/fcontext/jump_mips32_o32_elf_gas.S | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_mips64_n64_elf_gas.S | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_ppc32_ppc64_sysv_macho_gas.S | 16 ++++++++++++++++ lib/context_switcher/asm/fcontext/jump_ppc32_sysv_elf_gas.S | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_ppc32_sysv_macho_gas.S | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_ppc32_sysv_xcoff_gas.S | 203 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_ppc64_sysv_elf_gas.S | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_ppc64_sysv_macho_gas.S | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_ppc64_sysv_xcoff_gas.S | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_riscv64_sysv_elf_gas.S | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_s390x_sysv_elf_gas.S | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_x86_64_ms_pe_gas.asm | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_x86_64_ms_pe_masm.asm | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_x86_64_sysv_elf_gas.S | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/jump_x86_64_sysv_macho_gas.S | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_arm64_aapcs_elf_gas.S | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_arm64_aapcs_macho_gas.S | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_arm_aapcs_elf_gas.S | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_arm_aapcs_macho_gas.S | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_arm_aapcs_pe_armasm.asm | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_combined_sysv_macho_gas.S | 20 ++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_i386_ms_pe_gas.asm | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_i386_ms_pe_masm.asm | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_i386_sysv_elf_gas.S | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_i386_sysv_macho_gas.S | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_i386_x86_64_sysv_macho_gas.S | 16 ++++++++++++++++ lib/context_switcher/asm/fcontext/make_mips32_o32_elf_gas.S | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_mips64_n64_elf_gas.S | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_ppc32_ppc64_sysv_macho_gas.S | 16 ++++++++++++++++ lib/context_switcher/asm/fcontext/make_ppc32_sysv_elf_gas.S | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_ppc32_sysv_macho_gas.S | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_ppc32_sysv_xcoff_gas.S | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_ppc64_sysv_elf_gas.S | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_ppc64_sysv_macho_gas.S | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_ppc64_sysv_xcoff_gas.S | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_riscv64_sysv_elf_gas.S | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_s390x_sysv_elf_gas.S | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_x86_64_ms_pe_gas.asm | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_x86_64_ms_pe_masm.asm | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_x86_64_sysv_elf_gas.S | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/make_x86_64_sysv_macho_gas.S | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_arm64_aapcs_elf_gas.S | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_arm64_aapcs_macho_gas.S | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_arm_aapcs_elf_gas.S | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_arm_aapcs_macho_gas.S | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_arm_aapcs_pe_armasm.asm | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_combined_sysv_macho_gas.S | 20 ++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_i386_ms_pe_gas.asm | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_i386_ms_pe_masm.asm | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_i386_sysv_elf_gas.S | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_i386_sysv_macho_gas.S | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_i386_x86_64_sysv_macho_gas.S | 16 ++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_mips32_o32_elf_gas.S | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_mips64_n64_elf_gas.S | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_ppc32_ppc64_sysv_macho_gas.S | 16 ++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_ppc32_sysv_elf_gas.S | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_ppc32_sysv_macho_gas.S | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_ppc32_sysv_xcoff_gas.S | 203 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_ppc64_sysv_elf_gas.S | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_ppc64_sysv_macho_gas.S | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_ppc64_sysv_xcoff_gas.S | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_riscv64_sysv_elf_gas.S | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_s390x_sysv_elf_gas.S | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_x86_64_ms_pe_gas.asm | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_x86_64_ms_pe_masm.asm | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_x86_64_sysv_elf_gas.S | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/ontop_x86_64_sysv_macho_gas.S | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/context_switcher/asm/fcontext/tail_ppc32_sysv_elf_gas.cpp | 18 ++++++++++++++++++ lib/context_switcher/asm/switch_context_arm32.s | 38 -------------------------------------- lib/context_switcher/asm/switch_context_x86_64.s | 56 -------------------------------------------------------- lib/context_switcher/include/context_switcher/assembly_bindings.h | 36 ------------------------------------ lib/context_switcher/include/context_switcher/context.h | 25 +++++++++++++++++++++++++ lib/context_switcher/include/context_switcher/context_switcher.h | 52 ++++++++++++++++++++++++++++++++++++++++++---------- lib/context_switcher/include/context_switcher/continuation.h | 30 ++++++++++++++++++++++++------ lib/context_switcher/include/context_switcher/cscontext.h | 37 +++++++++++++++++++++++++++++++++++++ lib/context_switcher/include/context_switcher/fcontext.h | 36 ++++++++++++++++++++++++++++++++++++ lib/context_switcher/include/context_switcher/lambda_capture.h | 49 +++++++++++++++++++++++++++++++++++++++++-------- lib/context_switcher/include/context_switcher/tsan_fiber_api.h | 21 +++++++++++++++++++++ lib/context_switcher/src/context_switcher.cpp | 37 ++++++++++++++++++++++++++++++++++--- lib/pls/include/pls/internal/base/error_handling.h | 2 +- lib/pls/include/pls/internal/helpers/tsan_fiber_api.h | 21 +++++++++++++++++++++ 103 files changed, 9390 insertions(+), 327 deletions(-) create mode 100644 lib/context_switcher/asm/cscontext/SelectAssemblyFiles.cmake create mode 100644 lib/context_switcher/asm/cscontext/enter_context_x86_64_sysv_elf.s create mode 100644 lib/context_switcher/asm/cscontext/switch_context_x86_64_sysv_elf.s delete mode 100644 lib/context_switcher/asm/enter_context_arm32.s delete mode 100644 lib/context_switcher/asm/enter_context_x86_64.s create mode 100644 lib/context_switcher/asm/fcontext/SelectAssemblyFiles.cmake create mode 100644 lib/context_switcher/asm/fcontext/jump_arm64_aapcs_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_arm64_aapcs_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_arm_aapcs_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_arm_aapcs_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_arm_aapcs_pe_armasm.asm create mode 100644 lib/context_switcher/asm/fcontext/jump_combined_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_i386_ms_pe_gas.asm create mode 100644 lib/context_switcher/asm/fcontext/jump_i386_ms_pe_masm.asm create mode 100644 lib/context_switcher/asm/fcontext/jump_i386_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_i386_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_i386_x86_64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_mips32_o32_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_mips64_n64_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_ppc32_ppc64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_ppc32_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_ppc32_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_ppc32_sysv_xcoff_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_ppc64_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_ppc64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_ppc64_sysv_xcoff_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_riscv64_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_s390x_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_x86_64_ms_pe_gas.asm create mode 100644 lib/context_switcher/asm/fcontext/jump_x86_64_ms_pe_masm.asm create mode 100644 lib/context_switcher/asm/fcontext/jump_x86_64_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/jump_x86_64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_arm64_aapcs_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_arm64_aapcs_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_arm_aapcs_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_arm_aapcs_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_arm_aapcs_pe_armasm.asm create mode 100644 lib/context_switcher/asm/fcontext/make_combined_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_i386_ms_pe_gas.asm create mode 100644 lib/context_switcher/asm/fcontext/make_i386_ms_pe_masm.asm create mode 100644 lib/context_switcher/asm/fcontext/make_i386_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_i386_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_i386_x86_64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_mips32_o32_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_mips64_n64_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_ppc32_ppc64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_ppc32_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_ppc32_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_ppc32_sysv_xcoff_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_ppc64_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_ppc64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_ppc64_sysv_xcoff_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_riscv64_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_s390x_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_x86_64_ms_pe_gas.asm create mode 100644 lib/context_switcher/asm/fcontext/make_x86_64_ms_pe_masm.asm create mode 100644 lib/context_switcher/asm/fcontext/make_x86_64_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/make_x86_64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_arm64_aapcs_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_arm64_aapcs_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_arm_aapcs_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_arm_aapcs_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_arm_aapcs_pe_armasm.asm create mode 100644 lib/context_switcher/asm/fcontext/ontop_combined_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_i386_ms_pe_gas.asm create mode 100644 lib/context_switcher/asm/fcontext/ontop_i386_ms_pe_masm.asm create mode 100644 lib/context_switcher/asm/fcontext/ontop_i386_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_i386_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_i386_x86_64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_mips32_o32_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_mips64_n64_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_ppc32_ppc64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_ppc32_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_ppc32_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_ppc32_sysv_xcoff_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_ppc64_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_ppc64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_ppc64_sysv_xcoff_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_riscv64_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_s390x_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_x86_64_ms_pe_gas.asm create mode 100644 lib/context_switcher/asm/fcontext/ontop_x86_64_ms_pe_masm.asm create mode 100644 lib/context_switcher/asm/fcontext/ontop_x86_64_sysv_elf_gas.S create mode 100644 lib/context_switcher/asm/fcontext/ontop_x86_64_sysv_macho_gas.S create mode 100644 lib/context_switcher/asm/fcontext/tail_ppc32_sysv_elf_gas.cpp delete mode 100644 lib/context_switcher/asm/switch_context_arm32.s delete mode 100644 lib/context_switcher/asm/switch_context_x86_64.s delete mode 100644 lib/context_switcher/include/context_switcher/assembly_bindings.h create mode 100644 lib/context_switcher/include/context_switcher/context.h create mode 100644 lib/context_switcher/include/context_switcher/cscontext.h create mode 100644 lib/context_switcher/include/context_switcher/fcontext.h create mode 100644 lib/context_switcher/include/context_switcher/tsan_fiber_api.h create mode 100644 lib/pls/include/pls/internal/helpers/tsan_fiber_api.h diff --git a/app/benchmark_fft/main.cpp b/app/benchmark_fft/main.cpp index 73c9a1f..0a34b30 100644 --- a/app/benchmark_fft/main.cpp +++ b/app/benchmark_fft/main.cpp @@ -37,7 +37,7 @@ void conquer(fft::complex_vector::iterator data, int n) { constexpr int MAX_NUM_THREADS = 8; constexpr int MAX_NUM_TASKS = 32; -constexpr int MAX_STACK_SIZE = 1024 * 1; +constexpr int MAX_STACK_SIZE = 1024 * 4; static_scheduler_memory