From 57629d2f3260588f71311ec6aee1da16e25313a3 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 14 May 2014 08:25:08 -0500 Subject: schedsim_smppriority_affinity: New simulator instance --- schedsim/configure.ac | 1 + schedsim/rtems/Makefile.am | 4 ++ schedsim/shell/Makefile.am | 2 + .../schedsim_smppriority_affinity/Makefile.am | 50 ++++++++++++++++++++++ .../shell/schedsim_smppriority_affinity/config.c | 18 ++++++++ 5 files changed, 75 insertions(+) create mode 100644 schedsim/shell/schedsim_smppriority_affinity/Makefile.am create mode 100644 schedsim/shell/schedsim_smppriority_affinity/config.c diff --git a/schedsim/configure.ac b/schedsim/configure.ac index 727b994..91b215c 100644 --- a/schedsim/configure.ac +++ b/schedsim/configure.ac @@ -188,5 +188,6 @@ shell/shared/Makefile shell/schedsim_priority/Makefile shell/schedsim_smpsimple/Makefile shell/schedsim_smppriority/Makefile +shell/schedsim_smppriority_affinity/Makefile ]) AC_OUTPUT diff --git a/schedsim/rtems/Makefile.am b/schedsim/rtems/Makefile.am index ffa9b33..056bb43 100644 --- a/schedsim/rtems/Makefile.am +++ b/schedsim/rtems/Makefile.am @@ -251,7 +251,11 @@ librtems_a_SOURCES += $(cpukitdir)/score/src/debugisthreaddispatchingallowed.c librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerdefaultgetaffinity.c librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerdefaultsetaffinity.c librtems_a_SOURCES += $(cpukitdir)/score/src/schedulersmpvalidstatechanges.c +librtems_a_SOURCES += $(cpukitdir)/score/src/schedulergetaffinity.c +librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerpriorityaffinitysmp.c +librtems_a_SOURCES += $(cpukitdir)/score/src/schedulersetaffinity.c librtems_a_SOURCES += $(cpukitdir)/score/src/cpuset.c + endif schedsim_includedir = $(includedir)/schedsim diff --git a/schedsim/shell/Makefile.am b/schedsim/shell/Makefile.am index 2df602d..11af9c5 100644 --- a/schedsim/shell/Makefile.am +++ b/schedsim/shell/Makefile.am @@ -8,6 +8,8 @@ SUBDIRS += schedsim_smpsimple DIST_SUBDIRS += schedsim_smpsimple SUBDIRS += schedsim_smppriority DIST_SUBDIRS += schedsim_smppriority +SUBDIRS += schedsim_smppriority_affinity +DIST_SUBDIRS += schedsim_smppriority_affinity endif include $(top_srcdir)/../automake/subdirs.am diff --git a/schedsim/shell/schedsim_smppriority_affinity/Makefile.am b/schedsim/shell/schedsim_smppriority_affinity/Makefile.am new file mode 100644 index 0000000..1c65cf2 --- /dev/null +++ b/schedsim/shell/schedsim_smppriority_affinity/Makefile.am @@ -0,0 +1,50 @@ +bin_PROGRAMS = schedsim_smppriority_affinity + +SOURCES = config.c +SOURCES += $(srcdir)/../schedsim_smpsimple/add_commands.c +SOURCES += $(srcdir)/../schedsim_smpsimple/main_current_cpu.c +SOURCES += $(srcdir)/../schedsim_smpsimple/main_dispatch.c +SOURCES += $(srcdir)/../schedsim_smpsimple/main_dump_all_cpus.c +SOURCES += $(srcdir)/../schedsim_smpsimple/main_dump_ready_tasks.c +SOURCES += $(srcdir)/../schedsim_smpsimple/printheir_executing.c +SOURCES += $(srcdir)/../schedsim_smpsimple/smp_stub.c +SOURCES += $(srcdir)/../schedsim_smpsimple/wrap_thread_dispatch.c +SOURCES += $(srcdir)/../schedsim_smpsimple/schedsim.cc +schedsim_smppriority_affinity_SOURCES = $(SOURCES) + +cpukitdir=@rtems_srcdir@/cpukit +schedsim_smppriority_affinity_CPPFLAGS = -I$(top_builddir)/score/include +schedsim_smppriority_affinity_CPPFLAGS += -I$(srcdir)/sched_cpu +schedsim_smppriority_affinity_CPPFLAGS += -I$(srcdir)/../../rtems +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/include +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/score/include +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/score/inline +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/rtems/include +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/rtems/inline +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/sapi/include +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/sapi/inline +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/libcsupport/include +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/libmisc/stringto +schedsim_smppriority_affinity_CPPFLAGS += -I$(srcdir)/../../rtems/sched_cpu +schedsim_smppriority_affinity_CPPFLAGS += -I$(srcdir)/../shared/include +schedsim_smppriority_affinity_CPPFLAGS += -I$(srcdir)/../shared +if HAS_PTHREADS +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/posix/include +schedsim_smppriority_affinity_CPPFLAGS += -I$(cpukitdir)/posix/inline +endif +## Ensure all linker provided symbols are available +schedsim_smppriority_affinity_LDFLAGS = +schedsim_smppriority_affinity_LDFLAGS += -Wl,--defsym=_TLS_Data_begin=0 +schedsim_smppriority_affinity_LDFLAGS += -Wl,--defsym=_TLS_BSS_end=0 +schedsim_smppriority_affinity_LDFLAGS += -Wl,--defsym=_TLS_Alignment=4 + +## Wrap _Thread_Dispatch so we can see context switches +schedsim_smppriority_affinity_LDFLAGS +=-Wl,--wrap=_Thread_Dispatch + +## schedsim_smppriority_affinity_LDADD +=-Wl,--start-group +schedsim_smppriority_affinity_LDADD = ../shared/libschedsim.a +schedsim_smppriority_affinity_LDADD += ../../rtems/librtems.a +schedsim_smppriority_affinity_LDADD += ../shared/libschedsim.a +## schedsim_smppriority_affinity_LDADD +=-Wl,--end-group + +include $(top_srcdir)/../automake/host.am diff --git a/schedsim/shell/schedsim_smppriority_affinity/config.c b/schedsim/shell/schedsim_smppriority_affinity/config.c new file mode 100644 index 0000000..25395df --- /dev/null +++ b/schedsim/shell/schedsim_smppriority_affinity/config.c @@ -0,0 +1,18 @@ +/** + * @file + * + * Configuration file for Scheduler Simulator using Priority SMP + */ + +#include + +#define CONFIGURE_INIT +#define CONFIGURE_MAXIMUM_TASKS 1000 +#define CONFIGURE_MAXIMUM_SEMAPHORES 1000 + +#define CONFIGURE_SMP_APPLICATION +#define CONFIGURE_SMP_MAXIMUM_PROCESSORS 4 +#define CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP + +#define CONFIGURE_DISABLE_BSP_SETTINGS +#include -- cgit v1.2.3