Changeset d19b3fc in mainline
- Timestamp:
- 2018-11-07T22:29:27Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ef4218f
- Parents:
- aae365bc
- git-author:
- Jakub Jermar <jakub@…> (2018-11-07 21:38:15)
- git-committer:
- Jakub Jermar <jakub@…> (2018-11-07 22:29:27)
- Location:
- kernel
- Files:
-
- 10 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/Makefile
raae365bc rd19b3fc 230 230 generic/src/smp/ipi.c \ 231 231 generic/src/smp/smp.c \ 232 generic/src/smp/smp_call.c \233 232 generic/src/ipc/ipc.c \ 234 233 generic/src/ipc/sysipc.c \ … … 293 292 test/print/print4.c \ 294 293 test/print/print5.c \ 295 test/thread/thread1.c \ 296 test/smpcall/smpcall1.c 294 test/thread/thread1.c 297 295 298 296 ifeq ($(KARCH),mips32) -
kernel/arch/abs32le/Makefile.inc
raae365bc rd19b3fc 51 51 arch/$(KARCH)/src/cpu/cpu.c \ 52 52 arch/$(KARCH)/src/smp/smp.c \ 53 arch/$(KARCH)/src/smp/smp_call.c \54 53 arch/$(KARCH)/src/smp/ipi.c \ 55 54 arch/$(KARCH)/src/mm/km.c \ -
kernel/arch/amd64/Makefile.inc
raae365bc rd19b3fc 85 85 arch/$(KARCH)/src/smp/ipi.c \ 86 86 arch/$(KARCH)/src/smp/mps.c \ 87 arch/$(KARCH)/src/smp/smp_call.c \88 87 arch/$(KARCH)/src/smp/smp.c 89 88 endif -
kernel/arch/amd64/include/arch/interrupt.h
raae365bc rd19b3fc 81 81 #define VECTOR_TLB_SHOOTDOWN_IPI (IVT_FREEBASE + 1) 82 82 #define VECTOR_DEBUG_IPI (IVT_FREEBASE + 2) 83 #define VECTOR_SMP_CALL_IPI (IVT_FREEBASE + 3)84 83 85 84 extern void (*disable_irqs_function)(uint16_t); -
kernel/arch/amd64/src/interrupt.c
raae365bc rd19b3fc 53 53 #include <symtab.h> 54 54 #include <stacktrace.h> 55 #include <smp/smp_call.h>56 55 57 56 /* … … 161 160 tlb_shootdown_ipi_recv(); 162 161 } 163 164 static void arch_smp_call_ipi_recv(unsigned int n, istate_t *istate)165 {166 trap_virtual_eoi();167 smp_call_ipi_recv();168 }169 162 #endif 170 163 … … 229 222 exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", true, 230 223 (iroutine_t) tlb_shootdown_ipi); 231 exc_register(VECTOR_SMP_CALL_IPI, "smp_call", true,232 (iroutine_t) arch_smp_call_ipi_recv);233 224 #endif 234 225 } -
kernel/arch/ia32/Makefile.inc
raae365bc rd19b3fc 76 76 arch/$(KARCH)/src/smp/mps.c \ 77 77 arch/$(KARCH)/src/smp/smp.c \ 78 arch/$(KARCH)/src/smp/smp_call.c \79 78 arch/$(KARCH)/src/atomic.S \ 80 79 arch/$(KARCH)/src/smp/ipi.c \ -
kernel/arch/ia32/include/arch/interrupt.h
raae365bc rd19b3fc 85 85 #define VECTOR_TLB_SHOOTDOWN_IPI (IVT_FREEBASE + 1) 86 86 #define VECTOR_DEBUG_IPI (IVT_FREEBASE + 2) 87 #define VECTOR_SMP_CALL_IPI (IVT_FREEBASE + 3)88 87 89 88 extern void (*disable_irqs_function)(uint16_t); -
kernel/arch/ia32/src/interrupt.c
raae365bc rd19b3fc 55 55 #include <symtab.h> 56 56 #include <stacktrace.h> 57 #include <smp/smp_call.h>58 57 #include <proc/task.h> 59 58 … … 183 182 tlb_shootdown_ipi_recv(); 184 183 } 185 186 static void arch_smp_call_ipi_recv(unsigned int n, istate_t *istate)187 {188 trap_virtual_eoi();189 smp_call_ipi_recv();190 }191 184 #endif 192 185 … … 250 243 exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", true, 251 244 (iroutine_t) tlb_shootdown_ipi); 252 exc_register(VECTOR_SMP_CALL_IPI, "smp_call", true,253 (iroutine_t) arch_smp_call_ipi_recv);254 245 #endif 255 246 } -
kernel/arch/ia64/Makefile.inc
raae365bc rd19b3fc 58 58 arch/$(KARCH)/src/smc.c \ 59 59 arch/$(KARCH)/src/smp/smp.c \ 60 arch/$(KARCH)/src/smp/smp_call.c \61 60 arch/$(KARCH)/src/drivers/it.c 62 61 -
kernel/arch/mips32/Makefile.inc
raae365bc rd19b3fc 68 68 arch/$(KARCH)/src/smc.c \ 69 69 arch/$(KARCH)/src/smp/smp.c \ 70 arch/$(KARCH)/src/smp/smp_call.c \71 70 arch/$(KARCH)/src/machine_func.c 72 71 -
kernel/arch/sparc64/Makefile.inc
raae365bc rd19b3fc 99 99 ARCH_SOURCES += \ 100 100 arch/$(KARCH)/src/smp/$(USARCH)/smp.c \ 101 arch/$(KARCH)/src/smp/$(USARCH)/smp_call.c \102 101 arch/$(KARCH)/src/smp/$(USARCH)/ipi.c 103 102 endif -
kernel/arch/sparc64/include/arch/interrupt.h
raae365bc rd19b3fc 47 47 enum { 48 48 IPI_TLB_SHOOTDOWN = VECTOR_TLB_SHOOTDOWN_IPI, 49 IPI_SMP_CALL50 49 }; 51 50 -
kernel/arch/sparc64/src/smp/sun4u/ipi.c
raae365bc rd19b3fc 35 35 #include <smp/ipi.h> 36 36 #include <arch/barrier.h> 37 #include <arch/smp/sun4u/ipi.h>38 37 #include <assert.h> 39 38 #include <cpu.h> … … 43 42 #include <config.h> 44 43 #include <mm/tlb.h> 45 #include <smp/smp_call.h>46 44 #include <arch/interrupt.h> 47 45 #include <arch/trap/interrupt.h> … … 175 173 } 176 174 177 /*178 * Deliver an IPI to the specified processors (except the current one).179 *180 * Interrupts must be disabled.181 *182 * @param cpu_id Destination cpu id (index into cpus array). Must not183 * be the current cpu.184 * @param ipi IPI number.185 */186 void ipi_unicast_arch(unsigned int cpu_id, int ipi)187 {188 assert(&cpus[cpu_id] != CPU);189 190 if (ipi == IPI_SMP_CALL) {191 cross_call(cpus[cpu_id].arch.mid, smp_call_ipi_recv);192 } else {193 panic("Unknown IPI (%d).\n", ipi);194 return;195 }196 }197 198 175 /** @} 199 176 */ -
kernel/generic/include/cpu.h
raae365bc rd19b3fc 98 98 99 99 /** 100 * SMP calls to invoke on this CPU.101 */102 SPINLOCK_DECLARE(smp_calls_lock);103 list_t smp_pending_calls;104 105 /**106 100 * Stack used by scheduler when there is no running thread. 107 101 */ -
kernel/generic/src/main/main.c
raae365bc rd19b3fc 78 78 #include <synch/waitq.h> 79 79 #include <synch/futex.h> 80 #include <smp/smp_call.h>81 80 #include <arch/arch.h> 82 81 #include <arch.h> … … 273 272 ARCH_OP(post_cpu_init); 274 273 275 smp_call_init();276 274 clock_counter_init(); 277 275 timeout_init(); … … 379 377 void main_ap_separated_stack(void) 380 378 { 381 smp_call_init();382 383 379 /* 384 380 * Configure timeouts for this cpu. -
kernel/test/test.c
raae365bc rd19b3fc 57 57 #include <print/print5.def> 58 58 #include <thread/thread1.def> 59 #include <smpcall/smpcall1.def>60 59 { 61 60 .name = NULL, -
kernel/test/test.h
raae365bc rd19b3fc 76 76 extern const char *test_print5(void); 77 77 extern const char *test_thread1(void); 78 extern const char *test_smpcall1(void);79 78 80 79 extern test_t tests[];
Note:
See TracChangeset
for help on using the changeset viewer.