Looks like I posted a wee bit too soon. On a 32-bit system: bill@Ub16-32:~/linaro/armschedv9$ make distcheck make dist-gzip am__post_remove_distdir='@:' make[1]: Entering directory '/home/bill/linaro/armschedv9' if test -d "opendataplane-1.14.0.0"; then find "opendataplane-1.14.0.0" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "opendataplane-1.14.0.0" || { sleep 5 && rm -rf "opendataplane-1.14.0.0"; }; else :; fi test -d "opendataplane-1.14.0.0" || mkdir "opendataplane-1.14.0.0" (cd platform/linux-generic && make top_distdir=../../opendataplane-1.14.0.0 distdir=../../opendataplane-1.14.0.0/platform/linux-generic \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory '/home/bill/linaro/armschedv9/platform/linux-generic' make[2]: *** No rule to make target 'arch/x86/odp_atomic.h', needed by 'distdir'. Stop. make[2]: Leaving directory '/home/bill/linaro/armschedv9/platform/linux-generic' Makefile:603: recipe for target 'distdir' failed make[1]: *** [distdir] Error 1 make[1]: Leaving directory '/home/bill/linaro/armschedv9' Makefile:702: recipe for target 'dist' failed make: *** [dist] Error 2
On Mon, Jun 19, 2017 at 6:11 PM, Bill Fischofer <bill.fischo...@linaro.org> wrote: > For the v9 series: > > Reviewed-and-tested-by: Bill Fischofer <bill.fischo...@linaro.org> > > I also verified that there are no conflicts between this series and > Petri's queue cleanup patch, so this can apply and run just fine on > top of it. Maxim should be able to merge both tomorrow. > > On Mon, Jun 19, 2017 at 2:12 PM, Brian Brooks <brian.bro...@arm.com> wrote: >> This work derives from Ola Liljedahl's prototype [1] which introduced a >> scalable scheduler design based on primarily lock-free algorithms and >> data structures designed to decrease contention. A thread searches >> through a data structure containing only queues that are both non-empty >> and allowed to be scheduled to that thread. Strict priority scheduling is >> respected, and (W)RR scheduling may be used within queues of the same >> priority. >> Lastly, pre-scheduling or stashing is not employed since it is optional >> functionality that can be implemented in the application. >> >> In addition to scalable ring buffers, the algorithm also uses unbounded >> concurrent queues. LL/SC and CAS variants exist in cases where absense of >> ABA problem cannot be proved, and also in cases where the compiler's atomic >> built-ins may not be lowered to the desired instruction(s). Finally, a >> version >> of the algorithm that uses locks is also provided. >> >> Use --enable-schedule-scalable to conditionally compile this scheduler >> into the library. >> >> [1] https://lists.linaro.org/pipermail/lng-odp/2016-September/025682.html >> >> On checkpatch.pl: >> - [2/6] and [5/6] have checkpatch.pl issues that are superfluous >> >> v9: >> - Include patch to enable scalable scheduler in Travis CI >> - Fix 'make distcheck' >> >> v8: >> - Reword commit messages >> >> v7: >> - Rebase against new modular queue interface >> - Duplicate arch files under mips64 and powerpc >> - Fix sched->order_lock() >> - Loop until all deferred events have been enqueued >> - Implement ord_enq_multi() >> - Fix ordered_lock/unlock >> - Revert stylistic changes >> - Add default xfactor >> - Remove changes to odp_sched_latency >> - Remove ULL suffix to alleviate Clang build >> >> v6: >> - Move conversions into scalable scheduler to alleviate #ifdefs >> - Remove unnecessary prefetch >> - Fix ARMv8 build >> >> v5: >> - Allocate cache aligned memory using shm pool APIs >> - Move more code to scalable scheduler specific files >> - Remove CONFIG_SPLIT_READWRITE >> - Fix 'make distcheck' issue >> >> v4: >> - Fix a couple more checkpatch.pl issues >> >> v3: >> - Only conditionally compile scalable scheduler and queue >> - Move some code to arch/ dir >> - Use a single shm block for queues instead of block-per-queue >> - De-interleave odp_llqueue.h >> - Use compiler macros to determine ATOM_BITSET_SIZE >> - Incorporated queue size changes >> - Dropped 'ODP_' prefix on config and moved to other files >> - Dropped a few patches that were send independently to the list >> >> v2: >> - Move ARMv8 issues and other fixes into separate patches >> - Abstract away some #ifdefs >> - Fix some checkpatch.pl warnings >> >> Brian Brooks (5): >> test: odp_pktio_ordered: add queue size >> linux-gen: sched scalable: add arch files >> linux-gen: sched scalable: add a bitset >> linux-gen: sched scalable: add a concurrent queue >> linux-gen: sched scalable: add scalable scheduler >> >> Honnappa Nagarahalli (1): >> travis: add scalable scheduler in CI >> >> .travis.yml | 1 + >> configure.ac | 1 + >> platform/linux-generic/Makefile.am | 17 + >> platform/linux-generic/arch/arm/odp_atomic.h | 210 +++ >> platform/linux-generic/arch/arm/odp_cpu.h | 65 + >> platform/linux-generic/arch/arm/odp_cpu_idling.h | 51 + >> platform/linux-generic/arch/arm/odp_llsc.h | 249 +++ >> platform/linux-generic/arch/default/odp_cpu.h | 41 + >> platform/linux-generic/arch/mips64/odp_cpu.h | 41 + >> platform/linux-generic/arch/powerpc/odp_cpu.h | 41 + >> platform/linux-generic/arch/x86/odp_cpu.h | 41 + >> .../include/odp/api/plat/schedule_types.h | 4 +- >> platform/linux-generic/include/odp_bitset.h | 210 +++ >> .../linux-generic/include/odp_config_internal.h | 17 +- >> platform/linux-generic/include/odp_llqueue.h | 309 +++ >> .../include/odp_queue_scalable_internal.h | 102 + >> platform/linux-generic/include/odp_schedule_if.h | 2 +- >> .../linux-generic/include/odp_schedule_scalable.h | 137 ++ >> .../include/odp_schedule_scalable_config.h | 55 + >> .../include/odp_schedule_scalable_ordered.h | 132 ++ >> platform/linux-generic/m4/odp_schedule.m4 | 55 +- >> platform/linux-generic/odp_queue_if.c | 8 + >> platform/linux-generic/odp_queue_scalable.c | 1020 ++++++++++ >> platform/linux-generic/odp_schedule_if.c | 6 + >> platform/linux-generic/odp_schedule_scalable.c | 1978 >> ++++++++++++++++++++ >> .../linux-generic/odp_schedule_scalable_ordered.c | 347 ++++ >> test/common_plat/performance/odp_pktio_ordered.c | 4 + >> 27 files changed, 5122 insertions(+), 22 deletions(-) >> create mode 100644 platform/linux-generic/arch/arm/odp_atomic.h >> create mode 100644 platform/linux-generic/arch/arm/odp_cpu.h >> create mode 100644 platform/linux-generic/arch/arm/odp_cpu_idling.h >> create mode 100644 platform/linux-generic/arch/arm/odp_llsc.h >> create mode 100644 platform/linux-generic/arch/default/odp_cpu.h >> create mode 100644 platform/linux-generic/arch/mips64/odp_cpu.h >> create mode 100644 platform/linux-generic/arch/powerpc/odp_cpu.h >> create mode 100644 platform/linux-generic/arch/x86/odp_cpu.h >> create mode 100644 platform/linux-generic/include/odp_bitset.h >> create mode 100644 platform/linux-generic/include/odp_llqueue.h >> create mode 100644 >> platform/linux-generic/include/odp_queue_scalable_internal.h >> create mode 100644 platform/linux-generic/include/odp_schedule_scalable.h >> create mode 100644 >> platform/linux-generic/include/odp_schedule_scalable_config.h >> create mode 100644 >> platform/linux-generic/include/odp_schedule_scalable_ordered.h >> create mode 100644 platform/linux-generic/odp_queue_scalable.c >> create mode 100644 platform/linux-generic/odp_schedule_scalable.c >> create mode 100644 platform/linux-generic/odp_schedule_scalable_ordered.c >> >> -- >> 2.13.1 >>